Utiliser Spam-RBL.com pour filtrer les spams sur un serveur Qmail

Introduction

Nous allons décrire dans ce guide la procédure (simple) pour que Qmail filtre les spams référencés par Spam-RBL.com automatiquement. Pour plus d'information sur Spam-RBL.com, voir le site du même nom :).

Principe

Lorsque l'on envoie un email à un serveur Qmail, c'est /var/qmail/bin/qmail-smtpd qui va normalement gérer la connexion avec l'autre serveur email et ensuite acheminer le mail à un autre programme interne à Qmail pour traitement. Pour arrêter le spam, nous allons ajouter une étape avant qmail-smtpd qui va vérifier si l'IP d'où provient le spam est référencée ou non chez Spam-RBL.com. C'est /usr/local/bin/rblsmtpd qui va faire ce travail. Il enverra une requête DNS à spam-rbl.com (pour l'IP 213.186.33.3 par exemple, ce sera : 3.33.186.213.map.spam-rbl.com), et si celui-ci retourne un champs DNS A pointant sur 127.0.0.2, c'est que l'IP est blacklistée.

Mise en oeuvre

Attention : Sauvegardez bien le fichier d'origine au cas où vous ne sauriez pas revenir en arrière après une modification.


Nous allons donc remplacer qmail-smtpd par rblsmtpd à la réception des emails qui lui-même transmettra l'email à qmail-smtpd si le test de la "map" est passé avec succès.

La manipulation est très simple à faire, éditez le fichier /etc/init.d/qmail et remplacez la section ainsi :

env - PATH="/var/qmail/bin:/usr/local/bin"
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u503 -g503 0 smtp
/var/qmail/bin/qmail-smtpd > /dev/null 2>&1 &


par :

env - PATH="/var/qmail/bin:/usr/local/bin"
tcpserver -H -R -x /etc/tcp.smtp.cdb -c100 -u503 -g503 0 smtp
/usr/local/bin/rblsmtpd -r map.spam-rbl.com /var/qmail/bin/qmail-smtpd >> /var/log/qmail/rbl.log 2>&1 &


/usr/local/bin/rblsmtpd est donc appelé à la place de /var/qmail/bin/qmail-smtpd avec la map (-r) map.spam-rbl.com.
la fin de la ligne permet de rediriger les logs de rblsmtpd vers un fichier de log : /var/log/qmail/rbl.log.
Ainsi, vous saurez les emails qui ont été arretés par spam-rbl en visualisant le contenu de ce fichier.

Vous pouvez ajouter d'autres maps en ajoutant d'autres " -r map.domaine.com" après " -r map.spam-rbl.com"

Quelques exemples d'autres maps permettant d'avoir un contrôle plus strict des spams :

  • list.dsbl.org,
  • relays.ordb.org.


Voici un lien répertoriant la liste des 'blacklists' connus :
http://openrbl.org/zones.htm.

Finalisation

Enfin, il ne nous reste plus qu'a redémarrer Qmail pour prendre en compte cette modification :

[root@nsXXXX root]# cd /
[root@nsXXXX root]# /etc/init.d/qmail restart
stopping qmail [ OK ]
Starting: qmail pop smtp