Le but de ce howto/tuto est de fournir une documentation pour configurer un serveur RBL avec Bind. Je vous déconseille d’utiliser des listes d’adresse IP blacklistées sur internet. En effet, dans beaucoup de ces listes se trouve des serveurs tel que free, wanadoo, paypal, et bien d’autre. Les mails venant de ces serveurs seraient automatiquement ignorés. De plus, la configuration de Bind ne sera pas détaillée.
Logiciels utilisés :
Par convention :
# foo : commande à taper en root
$ bar : commande à taper en utilisateur simple
foo bar : à adapté à votre configuration
De plus, dans les détails des fichiers de configuration, ce qui n’est pas mentionné doit etre commenté.
Installation de Bind 9 :
# cd /usr/ports/dns/bind9
# make install clean
Considérons le domaine mon-domaine.com. Nous souhaitons donc créer un sous-domaine pour les requetes RBL : rbl.mon-domaine.com. Il faut faire une délégation DNS pour ce sous-domaine pour plus de simplicité.
Ajoutez ces lignes à la zone de mon-domaine.com :
rbl IN NS ns1.mon-domaine.com. rbl IN NS ns2.mon-domaine.com.
Maintenant, ajouter la zone DNS dans le fichier de configuration de Bind /etc/namedb/named.conf :
zone "rbl.mon-domaine.com" IN {
type master;
file "master/rbl.mon-domaine.com";
notify yes;
allow-transfer { xxx.xxx.xxx.xxx; };
};
Où xxx.xxx.xxx.xxx est l’adresse IP de votre serveur DNS secondaire.
Si vous désirez que votre RBL soit privé, ajoutez plutot ces lignes ci :
zone "rbl.mon-domaine.com" IN {
type master;
file "master/rbl.mon-domaine.com";
notify yes;
allow-query { localhost; yyy.yyy.yyy.yyy; zzz.zzz.zzz.zzz; };
allow-transfer { xxx.xxx.xxx.xxx; };
};
Où xxx.xxx.xxx.xxx est l’adresse IP de votre serveur DNS secondaire, yyy.yyy.yyy.yyy et zzz.zzz.zzz.zzz les adresses IP des serveurs autorisés à faire des requetes.
Lorsque Postfix, par exemple, fait une requete à une RBL, elle se fait sous une forme précise. Considérons le client SMTP avec l’adresse IP abc.def.ghi.jkl qui se connecte à notre serveur Mail (configurer pour fonctionner avec une RBL). Après la commande “RCPT TO: .....”, postfix va faire cette requete DNS : jkl.ghi.def.abc.rbl.mon-domaine.com. Si cette adresse IP est considéré comme blacklisté, la réponse type A sera 127.0.0.x (le x sert pour le “classement”, mais le serveur mail ne s’en occupe pas) et la réponse type TXT qui contient la raison (ou un message). Voici un extrait de log :
jjj jj heure:min:sec hostname postfix/smtpd[pid]: NOQUEUE: reject: RCPT from host-client[ip-client]: 554 Service unavailable; Client host [ip-client] blocked using rbl.mon-domaine.com; message; from=<...> to=<...> proto=SMTP helo=<...>
Donc, pour interdire une IP, il faut deux entrées DNS : A et TXT.
Lors de l’inspection de vos log mails, vous constatez que l’IP abc.def.ghi.jkl tente d’envoyer du spam via votre serveur. Nous allons donc ajouter cette IP dans la zone DNS de votre rbl :
jkl.ghi.def.abc IN A 127.0.0.2 jkl.ghi.def.abc IN TXT "Vous êtes banni de mon serveur mail"
Vous recharger les zones DNS :
rndc reload
Maintenant, quand ce client passera la commande “RCPT TO” à votre serveur mail, il aura cette erreur :
554 Service unavailable; Client host [ip-client] blocked using rbl.mon-domaine.com; Vous êtes banni de mon serveur mail;
et sera déconnecté.
Auteur : Yann Le Bris.