Outils pour utilisateurs

Outils du site


Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
200-postfix-dovecot-etc:120-spamassassin [le 30/05/2025 à 09:14] – supprimée - modification externe (Date inconnue) 127.0.0.1200-postfix-dovecot-etc:120-spamassassin [le 18/07/2025 à 16:03] (Version actuelle) – [Contrôle] prof
Ligne 1: Ligne 1:
 +====== 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.
 +  * ''spamassassin'' //«est un filtre anti-pourriel très puissant et entièrement configurable.»// 
 +  * ''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:
 +<html><pre class="code">
 +<b>systemctl status spamd</b>
  
 +spamd.service - Perl-based spam filter using text analysis
 +     Loaded: loaded (/usr/lib/systemd/system/spamd.service; enabled; preset: enabled)
 +     <span class="hly">Active: active (running)</span> 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]: <span class="hly">spamd: server started on IO::Socket::IP [::1]:783, IO::Socket::IP [127.0.0.1]:783</span> (running version 4.0.1)
 +</pre></html>
 +De même, systemd démarre automatiquement ''spamass-milter'':
 +<html><pre class="code">
 +<b>systemctl status spamass-milter</b>
 +
 +spamass-milter.service - LSB: milter for spamassassin
 +     Loaded: loaded (/etc/init.d/spamass-milter; generated)
 +     <span class="hly">Active: active (running)</span> 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 <span class="hly">/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</span>
 +...
 +</pre></html>
 +===== Configuration de base =====
 +Il n'est pas question ici d'entrer dans le détail de la configuration de cette usine. Voyons juste une façon simple de mettre en œuvre ce filtre complexe.
 +
 +Un fichier ''/etc/default/spamd'' est créé et peut être laissé tel quel. Un autre fichier; ''/etc/default/spamass-milter'' est également créé. Il peut également laissé 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:
 +<html><pre class="code">
 +<span class="hly"><b>X-Spam-Status: No, score=-2.1 required=5.0</b> 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</span>
 +</pre></html>
 +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:
 +<html><pre class="code">
 +OPTIONS="-u spamass-milter -i 127.0.0.1 <span class="hly">-I -r 10 --</span><span class="hlo"> -s 100000000</span>"
 +</pre></html>
 +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.
 +===== Court-circuiter spamassassin =====
 +==== whitelist et blacklist ====
 +Il peut être utile dans certains cas d'exempter de filtrage certains messages. Le «plug-in» ''Shortcircuit'' activé par défaut dans notre installation permet d'utiliser des listes d'exceptions qui dispenseront du filtrage, soit pour laisser passer sans filtrer (whitelist), soit, au  contraire,  pour bloquer sans faire d'analyse supplémentaire.
 +
 +Par exemple, pour autoriser sans filtre les messages provenant de toute adresse @mondomaine.tld , il faudra dans le fichier ''/etc/spamassassin/local.cf'' décommenter la ligne:
 +  shortcircuit USER_IN_WHITELIST       on
 +et ajouter ceci en fin de fichier:
 +  whitelist_from *@mondomaine.tld
 +==== Adresse IP ou sous-réseau sûr ====
 +Il est également possible de dispenser de filtrage les messages provenant d'une adresse IP réputée sûre (ou d'un sous-réseau). Par exemple, notre réseau local est connecté au Net par un routeur NAT (La box du F.A.I) qui dispose d'une adresse IP publique, disons 82.67.12.48. La directive:
 +  trusted_networks 82.67.12.48
 +ajoutée au fichier '/etc/spamassassin/local.cf'' dispensera de filtrage tout message issu de notre réseau local 
 +
 +Bien entendu, redémarrer les services smapd et spamass-milter après toute modification du fichier de configuration.
Spamassassin: Dernière modification le: 01/01/1970 à 00:00 par