Utiliser Spam-RBL.fr 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.fr automatiquement. Pour plus d'information sur
Spam-RBL.fr, 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.fr. C'est
/usr/local/bin/rblsmtpd qui va faire ce travail. Il enverra une requête DNS à spam-rbl.fr (pour l'IP
213.186.33.3 par exemple, ce sera :
3.33.186.213.spam-rbl.fr), 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" CHKUSER_START="DOMAIN" \
tcpserver -v -H -R -x /etc/tcp.smtp.cdb -c100 -u508 -g503 0 smtp \
/var/qmail/bin/qmail-smtpd 2>&1 \
| /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog s500000 n60 /var/log/qmailsmtp/ &
eend $
par :
env - PATH="/var/qmail/bin:/usr/local/bin" CHKUSER_START="DOMAIN" \
tcpserver -v -H -R -x /etc/tcp.smtp.cdb -c100 -u508 -g503 0 smtp \
/usr/local/bin/rblsmtpd -r all.spam-rbl.fr /var/qmail/bin/qmail-smtpd >> /var/log/qmail/rbl.log 2>&1 \
| /usr/local/bin/tai64n \
| /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog s500000 n60 /var/log/qmailsmtp/ &
eend $?
/usr/local/bin/rblsmtpd est donc appelé à la place de
/var/qmail/bin/qmail-smtpd avec la map (-r) all.spam-rbl.fr.
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 all.spam-rbl.fr"
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