============================================= Installation et configuration de SpamAssassin ============================================= SpamAssassin est un utilitaire de filtrage spams. Il permet de détecter automatiquement des messages considérés comme spams en ajoutant un en-tête ``X-Spam-Flag: YES``, ce qui permet de faire des règles de tri facilement dans les clients mail comme Thunderbird. SpamAssassin peut apprendre à détecter les spams d'après vos dossiers d'indésirables. **Pré-requis** * Un serveur mail Postfix fonctionnel. .. contents:: Installation ============ On commence par installer ``spamassassin``. :: # apt install spamassassin Cela va installer toutes les dépendances nécessaires, notamment ``spamc``, un client qui permet de communiquer avec le démon ``spamd`` pour lequel il faut créer un utilisateur système. :: # adduser --disabled-login --home /var/spamd spamd Dans le fichier ``/etc/default/spamassassin``, passer ``CRON`` à 1, cela indiquera à SpamAssassin de mettre à jour les règles chaque semaine. :: CRON=1 La configuration de SpamAssassin se fait dans le fichier ``/etc/spamassassin/local.cf``. La configuration par défaut convient parfaitement. Il faut cependant que ``spamassassin`` se lance automatiquement à chaque démarrage du serveur. :: # systemctl enable spamassassin Il faut indiquer à Postfix qu'on utilise SpamAssassin en modifiant ``/etc/postfix/master.cf``. On cherche la ligne : :: smtp inet n - - - - smtpd et on ajoute juste en dessous `` -o content_filter=spamassassin`` de manière à obtenir : :: smtp inet n - - - - smtpd -o content_filter=spamassassin À la fin de ce même fichier, il faut ajouter les lignes : :: spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient} On (re)démarre les services : :: # systemctl start spamassassin # postfix reload Vérifier que Postfix fonctionne bien en vous envoyant des mails ou en vérifiant les logs. Si c'est bon, on peut s'envoyer un mail de test pour voir si SpamAssassin fonctionne bien. Envoyez-vous un mail avec en corps de mail : :: XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X Cette châine de charactères appelée `GTUBE `_, *Generic Test for Unsolicited Bulk Email* (Test générique pour les mails en masse non sollicités). Elle est conçue pour tester SpamAssassin qui doit la reconnaître comme spam. Dans la boîte de réception, le mail devrait apparaître comme suit : :: ------------------ Début de Rapport SpamAssassin --------------------- Ce message est probablement du SPAM (message non sollicité envoyé en masse, publicité, escroquerie...). Cette notice a été ajoutée par le système d'analyse "SpamAssassin" sur votre serveur de courrier "votredomaine.fr", pour vous aider à identifier ce type de messages. Le système SpamAssassin ajoute un en-tête "X-Spam-Flag: YES" aux messages qu'il considère comme étant probablement du Spam. Vous pouvez si vous le souhaitez utiliser cette caractéristique pour régler un filtre dans votre logiciel de lecture de courrier, afin de détruire ou de classer à part ce type de message. Si ce robot a classifié incorrectement un message qui vous était destiné, ou pour toute question, veuillez contacter l'administrateur du système par e-mail à the administrator of that system. ...suivi des détails de l'analyse. Si c'est le cas, l'installation est réussie ! Apprentissage ============= On peut apprendre à SpamAssassin à reconnaître les spams. Pour cela, toutes les semaines par exemple, on lui donne des mails en lui indiquant que ce sont des spams, et on fait de même pour les mails non-spam (*ham*). On va dans le dossier d'un de nos comptes mails (en général dans ``/var/vmail`` et on exécute les commandes : :: sa-learn --showdots --spam .Junk/cur/* sa-learn --showdots --ham cur/* Cela suppose que vous avez déjà mis quelques mails indésirables dans le dossier ``Junk`` de votre boîte mail (Thunderbird appelle automatiquement le dossier d'indésirables ``Junk``), et que le courrier entrant ne contient pas de mails indésirables. Voilà, SpamAssassin a appris comment reconnaître vos mails et vos spams. Au bout de quelques mails (une centaine de spams analysés), SpamAssassin devrait reconnaître tout seul petit à petit tous vos spams ! Il peut être utile de créer une tâche dans ``cron`` qui exécuterait ces deux commandes à un intervalle de temps régulier. Source ====== * `Installing a mailserver on Debian 8/9 – Part 6: Spamfiltering: SpamAssassin `_