Spamhaus
Présentation
Même s'il faut en général se méfier des SystemesRBL en général, Spamhaus est non seulement tout à fait utilisable, mais très efficace, de part la façon dont est gérée leur liste d'ip à bloquer :
Les adresses ip listées ont été confirmées être utilisées activement pour envoyer des spams (par comparaison avec beaucoup d'autres bases de données de ce genre, qui listent des adresses ip pouvant théoriquement servir à envoyer du spam). A chaque mail bloqué, le message d'erreur renvoie vers une page où sont listés en détails les élements ayant poussé leur équipe à rajouter cette adresses ip à leur base. Et leur base ne contient pas de listing du type "On bloque toutes les ip d'Asie et d'Amérique du Sud parce qu'il y a trop de spammeurs là-bas et que personne n'a besoin de recevoir de mails de ces régions." (si, si, ça existe. Voir http://www.blars.org, par exemple)
- Les entrées, sauf pour les ip "récidivistes", sont temporaires, et supprimées au bout de quelques jours.
- Il est facile de contester une entrée, et de la faire supprimer (ce qui n'est pas le cas avec tous les SystemesRBL)
Vous pouvez consulter leur site web, où est détaillé leur politique (en anglais).
Ce genre de système est complémentaires d'un système tel que SpamAssassin, qui analyse le contenu des mails. En effet, SpamAssassin se base sur le contenu des mails, donc il est necessaire de recevoir la totalité du mail afin de l'analyser. Ensuite, en général, le mail est marqué ou non "spam", et passé au destinataire final qui décide de ce qu'il doit en faire (refuser le mail et renvoyer un message d'erreur à l'expéditeur n'étant pas une bonne idée, une erreur directement au niveau du protocol SMTP étant préférable expliquer pourquoi ailleurs). Au contraire, en utilisant ce type de liste de blocage, qui se base sur la source du mail, le message n'entre même pas sur le réseau : le MTA renvoie tout de suite un code d'erreur (550) avec un message explicatif. C'est beacoup plus économique en ressources, et évite de voir ses utilisateurs noyés sous des pages et des pages de mails marqués "***SPAM***" qu'il leur faut quand même trier pour savoir si SpamAssassin ne s'est pas trompé.
Dans le cas (très très rare) où un mail légitime aurait été quand même bloqué par le système, le MTA expéditeur tiendra compte du code d'erreur du MTA destinataire, et renverra un message d'erreur contenant la raison du blocaque à l'expéditeur du mail, qui sera ainsi informé que son courrier n'est pas passé, et de la raison du blocage.
En cas de besoin, il est possible de faire des exceptions pour certaines adresses ip listées dans la base de données, en les ajoutant dans une "liste blanche", si on souhaite malgré tout recevoir des mails de ces sources.
En plus de leur liste principale slb.spamhaus.org, Spamhaus gére aussi une deuxième liste, xbl.spamhaus.org, qui se base sur des sources extérieures à leur organisation, et qui bloque les expéditeurs de "proxies/worms/trojans". En pratique, j'ai constaté que cette deuxième liste donne aussi d'excellents résultats, surtout pour les virus.
Côté technique
Le schéma de fonctionnement est le suivant :
- une machine se connecte sur votre serveur de mail
- votre MTA vérifie si l'adresse ip de la machine faisant la connexion est listée dans votre fichier des serveurs "connus". Si oui, le mail passe.
- votre MTA vérifie, via une requête DNS, si l'adresse ip de la machine faisant la connexion est listée dans la base de donnée spamhaus.
- si oui, le MTA répond "550" (c'est-à-dire "non") avec une explication, sinon, le mail passe (en fonction des autres tests qui pourraient venir ensuite)
Donc, très important, pour un fonctionnement optimal, il faut que le système soit installé sur votre serveur principal, mais aussi sur les MX secondaires. En effet, de nombreux spammeurs/virus semblent preferer utiliser directement les MX secondaires (sans doute selon le principe que les configurations y seront moins stricte), et, dans ce cas, c'est l'ip de vos serveurs secondaires qui seront comparés avec la base de spamhaus, et non l'expéditeur initial.
Exemple d'utilisation avec Postfix
Pour utiliser cette liste avec Postfix, ajouter dans son fichier /etc/postfix/main.cf les directives suivantes :
smtpd_client_restrictions=hash:/etc/postfix/spamhaus-ok, reject_rbl_client zen.spamhaus.org
La première partie hash:/etc/postfix/spamhaus-ok est optionnelle, mais conseillée, car cela permettra de faire des exceptions dans certains cas pour des adresses ip qui se retrouveraient dans la liste de spamhaus.org, mais dont, pour une raison ou une autre, vous souhaitez néanmoins recevoir les mails. Je conseille d'y mettre au moins les adresses ip des serveurs secondaires pour vos domaines mails.
Il faut ensuite créer le fichier spamhaus-ok avec les ip dont vous ne voulez pas qu'elles soient filtrées. Par exemple, si vous faites aveuglement confiance aux réseaux de AUF Montréal, Paris et Dakar :
# cat /etc/postfix/spamhaus-ok 207.50.225 OK 199.84.140 OK 81.80.122 OK # postmap /etc/postfix/spamhaus-ok
Il ne suffit plus que de redémarrer Postfix pour lui faire prendre en compte ce nouveau paramètre.
Attention : commencez par tester avec le mot clé warn_if_reject devant reject_rbl_client sans quoi vous risqueriez de perdre des courriels si le service spamhaus vous refuse l'accès (pour ma part je trouve ça très regrettable, mais bon...) !
historique AUF
Note : Aujourd'hui (16 avril 2005) tous les vietnamiens passant par VDC sont banis de spamhaus et ce depuis le 24 mars 2006 (Cf http://www.spamhaus.org/sbl/sbl.lasso?query=SBL39408 ). Je viens d'écrire aux personnes concernées (du moins celles indiquées dans la base whois) pour leur demander d'intervenir (avec un postscriptum proposant mon aide au besoin). Aucune réponse des personnes concernées, mais ils ne sont plus dans la liste.