On ne présente plus spamassassin, un filtre antispam à la réception. Avec spamd, il est utilisé par OpeBSD sur leurs listes de diffusion. Voyons comment le faire communiquer avec smtpd.
C'est parti, on commence par installer les paquets utiles :
# pkg_add p5-Mail-SpamAssassin spampd
Pour que spampd puisse faire le lien entre le serveur smtpd et spamassassin qui vérifie les messages, il doit tourner en arrière-plan. On active donc ce service :
# rcctl enable spampd
Vous pouvez préciser certaines options pour spampd afin d'être sûr qu'il fonctionne comme prévu :
# rcctl set spampd flags "--relayhost=127.0.0.1:10026"
Ensuite, on démarre le service :
# rcctl start spampd
Il en va de même pour spamassassin qui doit être actif :
# rcctl enable spamassassin # rcctl start spamassassin
Nous allons maintenant faire passer tous les messages entrants par spamassassin qui va les vérifier. Pour cela, il faut les envoyer sur le port 10025. S'il ne s'agit pas de spam, alors spampd se charge de les renvoyer sur le port 10026. Tous les messages arrivant ainsi recevront l'étiquette “SPAMASSASSIN”, pour que l'on sache qu'il faut les distribuer.
Voici donc les lignes à ajouter au fichier /etc/mail/smtpd.conf
:
... # Messages verifies par spamassassin listen on lo0 port 10026 tag SPAMASSASSIN ... action spamassassin relay host smtp://127.0.0.1:10025 ... # Message venant du système accept from local for local alias <aliases> deliver to maildir "~/Maildir" # Message SPAMASSASSIN match tag SPAMASSASSIN from any for domain "chezmoi.tld" action virtual_maildir ### Messages a faire verifier par spamassassin match from any for domain "chezmoi.tld" action spamassassin ...
Référez-vous à l'exemple plus complet à la fin du document si vous le souhaitez pour bien comprendre comment les choses fonctionnent.
Actuellement, spamassassin modifie le sujet des mails spams en indiquant clairement leur nature. Vous pouvez modifier la configuration de spamassassin pour que les spams soient directement supprimés mais c'est déconseillé en cas de faux positifs.
Spamassassin ajoute un entête “X-spam” aux messages indésirables. On va modifier l'action de distribution pour ajouter le
mot-clé “junk
” afin que ces messages soient automatiquement classés dans le
dossier des spams lorsqu'ils seront livrés :
# Dans /etc/mail/smtpd.conf action virtual_maildir maildir "/var/vmail/%{dest.domain}/%{dest.user}/Maildir" junk virtual <virtuals>
À ce point du document, le serveur smtp fonctionne ainsi :