,
Le 19/02/2019 à 11:42 dans /Journal/2018/

Solution pour le greylisting trop agressif

Depuis qu'OpenBSD 6.3 est disponible, une nouvelle commande est apparue :

smtpctl spf walk

Ces trois mots sont la solution à tous vos problèmes de greylisting trop agressifs.

Pour rappel, le greylisting est une technique pour lutter contre le spam qui consiste à mettre temporairement sur liste grise un nouvel expéditeur. Normalement, ce dernier doit tenter de renvoyer son message une deuxième fois après un délai raisonnable : à ce moment là, il est mis sur liste blanche et on accepte son message. Sinon, il y a de bonnes chances que ce soit un vilain spammeur, son message ne sera jamais délivré.
Ça permet d'épurer très efficacement les messages reçus, mais ne fonctionne pas bien avec certains fournisseurs de messagerie qui utilisent toute une rangée d'IPs différentes pour leurs envois : un message légitime sera alors renvoyé depuis des IPs différentes, qui resteront toujours sur liste grise.

Pour résoudre ce problème, on va indiquer dans le configuration de spamd (/etc/mail/spamd.conf) une nouvelle entrée sous forme de liste blanche :

all:\
         :nixspam:bgp-spamd:bsdlyblack:whitelist:
 
 whitelist:\
         :white:\
         :method=file:\
         :file=/etc/mail/whitelist.txt:
 

Pour remplir le fichier /etc/mail/whitelist.txt qui contient toutes les IPs de "grands fournisseurs", on crée un script qui sera appelé régulièrement dans le fichier /etc/weekly.local. Voici son contenu :

#!/bin/sh
 # Auteur :      thuban <thuban@yeuxdelibad.net>
 # licence :     MIT
 
 # add to spamd some ip to whitelis from domain list
 # to /etc/mail/whitelist.txt
 
 # insert this to /etc/mail/spamd.conf (whitelist must be last)
 
 
 #all:\
 #                      :nixspam:whitelist:
 
 
 #whitelist:\
 #              :white:\
 #              :method=file:\
 #              :file=/etc/mail/whitelist.txt:
 
 TMP=$(mktemp)
 
 WHITELIST=/etc/mail/whitelist.txt
 
 DOMAINS='outlook.com
 gmail.com
 hotmail.com
 gog.com
 yahoo.com
 google.com
 live.fr
 mail-out.ovh.net
 mxb.ovh.net
 gandi.net
 '
 
 for d in $DOMAINS; do
    echo "$d" | smtpctl spf walk >> "$TMP" 
 done
 mv "$TMP" "$WHITELIST"
 exit 0
 

Recharger spamd puis profitez ;)

rcctl restart spamd