Filtre antispam Postfix

Spam Scanner filtre un serveur Postfix en cinq minutes environ. Il fonctionne comme milterMail filter : un protocole issu de Sendmail, également utilisé par Postfix, qui permet à un programme distinct d’inspecter chaque message pendant la session SMTP. : Postfix l’interroge sur chaque message pendant la session SMTP et peut refuser le spam avant de l’accepter.

Installer et lancer#

Shell
npm install --global spamscanner
spamscanner milter --port 7831 --auth --subject-tag "[SPAM]"

--auth vérifie SPFSender Policy Framework : un enregistrement DNS qui liste les serveurs autorisés à envoyer du courrier pour un domaine., DKIMDomainKeys Identified Mail : une signature portant sur un message, vérifiée avec une clé publique publiée dans le DNS de l’expéditeur., DMARCUne politique DNS qui indique aux destinataires quoi faire d’un message qui se réclame d’un domaine mais échoue à l’alignement SPF et DKIM. et ARCAuthenticated Received Chain : des signatures qui transmettent les résultats d’authentification d’un serveur de réexpédition à l’autre. ; --subject-tag marque le spam dans l’objet. Chaque message reçoit les en-têtes X-Spam-Flag, X-Spam-Score, X-Spam-Status et X-Spam-Action, et tout en-tête X-Spam-* ajouté par l’expéditeur est d’abord supprimé.

Raccorder Postfix#

INI
# /etc/postfix/main.cf
smtpd_milters = inet:127.0.0.1:7831
milter_protocol = 6
milter_default_action = accept
Shell
sudo postfix reload

milter_default_action = accept laisse passer le courrier sans filtrage si le milter est arrêté ; tempfail demande plutôt aux expéditeurs de réessayer.

Refuser le spam pendant la session SMTP#

Shell
spamscanner milter --port 7831 --auth --reject

Les messages au seuil de rejet (15 points) sont refusés avec 451 4.7.1 Message rejected as spam. Un 451 est temporaire : l’expéditeur conserve le message et réessaie ; une mauvaise décision coûte donc un délai, pas un message perdu. Une fois que les résultats semblent corrects, --reject-code 550 rend le refus définitif.

Sans milter#

Un filtre de contenu s’exécute après que Postfix a accepté un message : Postfix le transmet par un pipe à spamscanner filter, qui ajoute des en-têtes et le lui rend. Rien n’est jamais refusé pendant la session, et un échec diffère toujours la distribution au lieu de renvoyer le message à l’expéditeur. Configuration du filtre de contenu

Le spam dans Junk#

Avec Dovecot, une règle Sieve range le courrier marqué :

Text
require ["fileinto"];
if header :is "X-Spam-Flag" "YES" { fileinto "Junk"; stop; }

Testé avec un vrai Postfix#

Les tests de bout en bout du projet font tourner Postfix avec le milter et le filtre de contenu : le hamCourrier légitime : le contraire du spam. est distribué avec des en-têtes et un X-Spam-Flag falsifié supprimé, le spam est marqué, et GTUBEGeneric Test for Unsolicited Bulk Email : une chaîne fixe que tout filtre antispam traite comme du spam, pour les tests. est refusé avec un 550 pendant la session SMTP.

Ensuite : le guide complet Postfix et Sendmail, avec une unité systemd et le INPUT_MAIL_FILTER de Sendmail.

Modifier cette page sur GitHub · Markdown ·