meta données pour cette page
  •  

Ceci est une ancienne révision du document !


Stopper les mails avec Spamassassin

Cet outil permet de détecter et marquer les mails désignés comme étant du spam. En effet, on reçoit de nombreux mails et notamment ceux délivrés par les compagnes publicitaires tel que Cdiscount. Il arrive par ailleurs, que même si l'on se désinscrit d'une mailing list, on en reçoit encore… D'où l'intérêt de spamassassin qui va effectuer le trie à la place des utilisateurs finaux.


Documentation:

Installation et configuration

Commençons par les paquets requis :

apt-get install spamc spamassassin

Par défaut, le daemon va utiliser l'utilisateur root mais on peut attribuer ce rôle à l'utilisateur debian-spamd qui a été crée suite à l'installation des paquets ci-dessus. Par la même occasion, dans la situation je dispose d'un petit serveur et ne recevant pas beaucoup de mails, je réduis volontairement le nombre maximal de processus enfants à seulement deux.

vim /etc/default/spamassassin
OPTIONS="--create-prefs --max-children 2 --helper-home-dir --username debian-spamd -H /var/lib/spamassassin -s /var/log/spamd.log"

Ensuite, je souhaite m’apercevoir que spamassassin fonctionne bien en modifiant l'entête du mail ainsi que d'autres paramètres utiles pour commencer à découvrir comment il fonctionne :

vim /etc/spamassassin/local.cf
rewrite_header Subject ***-**SPAM**-***
required_score 3.0
report_safe 0
use_bayes 1
bayes_auto_learn 1

On adapte la configuration pour avertir Postfix de sa présence :

vim /etc/postfix/master.cf
smtp 	inet  n 	-	-	-	- 	smtpd
    -o content_filter=spamassassin

spamassassin unix - n n - - pipe
  user=debian-spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

Enfin, il nous reste plus qu'a mettre à jours les configurations :

/etc/init.d/spamassassin restart
/etc/init.d/postfix reload

Vérification

Effectuons un test rapide qui nous permettra de savoir si tout fonctionne correctement. Connectez vous à un compte utilisateur et envoyez dans le corps du mail cette chaîne de caractère :

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

Celle-ci permet au daemon spamd de considérer directement ce mail en tant que spam avec un score maximal : 999.0

Dans la boite mail du destinataire non seulement le sujet à changé mais les en-têtes aussi et nous pouvons remarquer ces informations :

X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on debian64
X-Spam-Flag: YES
X-Spam-Level: **************************************************
X-Spam-Status: Yes, score=999.0 required=3.0 tests=ALL_TRUSTED,GTUBE
        autolearn=no autolearn_force=no version=3.4.1
X-Spam-Report:
        * -1.0 ALL_TRUSTED Passed through trusted hosts only via SMTP
        * 1000 GTUBE BODY: Generic Test for Unsolicited Bulk Email

D'ailleurs, il comprend très bien que c'est un mail de test d'après la dernière ligne du champ X-Spam-Report : “Generic Test for Unsolicited Bulk Email”

Bloquer domaines/comptes mails

vim /etc/spamassassin/local.cf
blacklist_from btatu@domaine.com
blacklist_from *@domaine.fr

Maintenance

Pour bloquer les nouveaux spammer, il faudra mettre à jour les règles de filtrage que l'on ferra automatiquement chaque Dimanche matin :

crontab -e 

Et ajouter cette ligne :

5 1 * * */7 /usr/bin/sa-update && /etc/init.d/spamassassin reload