J'expliquais, dans un précédent billet, comment combattre le spam sur son serveur Postfix avec les RBL, le greylisting et amavis. J'y racontais aussi que pour les domaines où le serveur est secondaire, il vaut parfois mieux ne rien filtrer du tout.
Mais il y a quelques jours, j'ai entendu parler du Greylisting conditionnel. L'idée principale est d'apporter un minimum de protection aussi pour ces domaines. Cette protection ne doit toutefois pas être intrusive. Comme je le disais, perdre ses mails c'est pas trop grave, perdre ceux des autres, ça craint !
Ce que nous voulons, c'est appliquer le greylisting aux mails qui proviennent d'une machine listée dans les RBL. On désactivera bien évidemment le filtre RBL "dur" pour les domaines concernés, sinon ça ne sert à rien.
Marche à suivre
whitefilter
Whiltefilter est un filtre pour postfix. Il est disponible en paquet Debian. On n'oubliera pas d'ajuster sa configuration.
sock: 127.0.0.1:60001
rbl: bl.spamcop.net
rbl: sbl-xbl.spamhaus.org
Vous pouvez constater que j'utilise les mêmes RBL que dans la configuration de postfix.
Mise à jour de la table MySQL
Reprenons notre table nommée filter. Dour la colonne postgrey, nous ajoutons la valeur greyrbl à l'énumération.
Configuration de postfix
Dans le fichier main.cf, il est d'abord nécessaire de déclarer cette nouvelle classe :
smtpd_restriction_classes = rbl0, rbl1, amavis0, amavis1,
grey0, grey1, greyrbl
Sa définition est alors la suivante :
greyrbl = check_policy_service inet:127.0.0.1:60001
check_policy_service inet:127.0.0.1:60000
Le premier des deux tests est whitefilter. Celui-ci retourne soit OK, auquel cas le mail est accepté; soit DUNNO, ce qui signifie qu'il faut effectuer les tests suivants. Dans notre cas, c'est l'appel à postgrey.
Bon filtrage de spam !