Outils pour utilisateurs

Outils du site


Ceci est une ancienne révision du document !


Spamassassin

L'anti-spam ultime peut se greffer sur Postfix sous la forme d'un milter.

 apt install spamass-milter

Une impressionnante liste de dépendances s'impose, dans laquelle nous retrouvons spamassassin, spamc et spamd.

  • spamd est le démon de spamassassin
  • spamc est le client qui se connecte à spamd pour l'analyse du message

L'installation fait ce qu'il faut pour que spamd soit démarré automatiquement par systemd:

systemctl status spamd

spamd.service - Perl-based spam filter using text analysis
     Loaded: loaded (/usr/lib/systemd/system/spamd.service; enabled; preset: enabled)
     Active: active (running) since Thu 2025-05-29 17:05:46 CEST; 39s ago
...
     CGroup: /system.slice/spamd.service
             ├─3414 /usr/bin/perl "-T -w" /usr/sbin/spamd --pidfile=/run/spamd.pid --create-prefs --max-children 5 --helper-home-dir
             ├─3418 "spamd child"
             └─3419 "spamd child"
...
mai 29 17:05:47 mail spamd[3414]: spamd: server started on IO::Socket::IP [::1]:783, IO::Socket::IP [127.0.0.1]:783 (running version 4.0.1)
De même, systemd démarre automatiquement spamass-milter:
systemctl status spamass-milter

spamass-milter.service - LSB: milter for spamassassin
     Loaded: loaded (/etc/init.d/spamass-milter; generated)
     Active: active (running) since Thu 2025-05-29 17:33:10 CEST; 6s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 42590 ExecStart=/etc/init.d/spamass-milter start (code=exited, status=0/SUCCESS)
      Tasks: 5 (limit: 2248)
     Memory: 492.0K
        CPU: 19ms
     CGroup: /system.slice/spamass-milter.service
             └─42604 /usr/sbin/spamass-milter -P /var/run/spamass/spamass.pid -f -p /var/spool/postfix/spamass/spamass.sock -u spamass-milter -i 127.0.0.1 -I
...

Configuration de base

Un fichier /etc/default/spamd est créé et peut être resté tel quel. Un autre fichier; /etc/default/spamass-milter est également créé. Il peut également retester tel quel. Il permet de définir les paramètres de démarrage de spamass-milter, mais il n'est pas inutile de consulter le manuel du milter pour éventuellement modifier ces valeurs ou en ajouter.

Ajouter à la liste des milters dans le main.cf de Postfix qui est désormais de la forme:

smtpd_milters = unix:opendkim/opendkim.sock unix:opendmarc/opendmarc.sock unix:/spamass/spamass.sock

Et rafraîchir avec un:

postfix reload

ou si l'on préfère:

systemctl reload postfix

Contrôle

À réception d'un message, nous trouvons dans l'en-tête:

X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,
	RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,
	RCVD_IN_ZEN_BLOCKED_OPENDNS,TVD_SPACE_RATIO autolearn=ham
	autolearn_force=no version=4.0.1
X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on mail.nain-t.net
Le «score» requis pour décréter que le message est un spam est par défaut réglé à 5. C'est peut-être excessif. Par ailleurs, spamc par défaut ne passe pas à spamd les messages dont la taille est supérieure à 500 KB, ce qui laissera certainement passer des messages pourris.

Ces paramètres peuvent être revus dans /etc/default/spamass-milter de la façon suivante:

OPTIONS="-u spamass-milter -i 127.0.0.1 -I -r 10 -- -s 100000000"
Le surlignage jaune indique ce qui est ajouté à la configuration par défaut:

  • -I pour ne pas traiter les messages si l'émetteur s'est authentifié (SMTP AUTH),
  • -r 10 modifie le score à partir duquel le message est considéré comme spam (la valeur par défaut étant 5),
  • indique que ce qui suit est la liste des paramètres à passer à spamc.

Ce qui est surligné en orange indique à spamc qu'il ne doit court-circuiter les messages que si leur taille est >= à 100 MB (la valeur par défaut étant de seulement 500 KB).

En cas de modification, relancer tous les services concernés: spamass-milter, mais aussi spamd et postfix.

Spamassassin: Dernière modification le: 30/05/2025 à 09:14 par prof