spamCe soir je vais prendre quelques minutes pour vous parler d'un véritable fléau des temps modernes: le spam. Si on considère que les publicités indésirables dans les boites au lettres sont du spam alors ce phénomène existe depuis longtemps mais c'est avec internet et le courrier électronique que celui-ci a pris toute son ampleur.

Revenons tout d'abord sur les origines du mail, pour pouvoir échanger des courriels il faut 2 type de serveurs / protocoles:

- Smtp pour l'envoi.
- Pop3 / imap pour la réception.

Ceux-ci ont été créés au début des année 80 lorsque l'on ne se souciait pas vraiment des problèmes de sécurité: spam, phishing, malware etc. Ce ne sont donc pas des protocoles sécurisés qui aujourd'hui montrent leurs limites notamment face au spam.

Cependant plusieurs techniques existent pour lutter contre le courrier indésirable comme par exemple le scoring ou encore les milters. Ce soir je vais vous expliquer plus précisément le fonctionnement du milter greylist qui constitue une première barrière de défense contre le spam très intéressante.

Qu'est-ce qu'un milter?

Un milter est un interface permettant la programmation de filtres. L'intérêt est que ces filtres interviennent à différents étapes du dialogue smtp pour effectuer des actions assez variés comme du masquerading ou bien encore lutter contre le spam (ce que nous allons vois avec greylist). A la base milter à été développée pour sendmail et fonctionne aujourd'hui également sous postfix (peu-être exim4 également). Désolé pour les fanboy microsoft je ne sais pas si exchange gère ce genre de choses.

Le principe de greylist:

C'est en réalité assez simple, lorsque le serveur reçoit un message il identifie l'adresse ip du serveur smtp émetteur, l’adresse email de l’expéditeur et l’adresse email du destinataire et si cette combinaison (appelée triplet) apparait pour la première fois il rejette temporairement le message. Si le serveur émetteur est un véritable serveur smtp (et non un logiciels de spam bidon) il réexpédiera le message ultérieurement et lorsque la combinaison réapparait le serveur émetteur est whitelisté pour un temps t.

Alors pourquoi ce système est efficace? En général les logiciels de spam ne prennent pas la peine de renvoyer les mails qui n'ont pas aboutis, de plus dans le cas où le mail est réexpédié avant un délais que l'on aura configuré il est de nouveau temporairement refusé.

L'expérience montre que ce système bloque correctement les spammeurs sauf ceux émettant depuis les états unis qui semblent avoir une longueur d'avance sur leurs amis des pays de l'est.

Installer greylist avec sendmail:

Pour tout ce qui suit j'ai travaillé sous une debian lenny mise à jour avec un sendmail fonctionnel. Installer greylist est relativement simple et nous allons procéder en 2 étapes:

1 - Installation du paquet milter-greylist qui doit être sur le dépôts officiels debian:

aptitude install milter-greylist

Si tout c'est bien passé vous devriez trouver le fichier de conf dans /etc/milter-greylist/greylist.conf qui vous permet de déterminer:

- Les serveur à whitelister (les amis)
- Les utilisateurs à soumettre au greylist ou à whitelister
- Des blacklist de type DNSRBL

Et j'attire votre attention plus particulièrement sur la ligne "acl greylist list "grey users" delay 30m autowhite 3d". Comme vous le constatez par défaut le délais de greylist est de 30 minutes que vous configurerez en fonction de vos besoin (en général 5 min?) ainsi que le délais de whitelist.

Pour executer le daemon milter-greylist il faut comme d'habitude utiliser "/etc/init.d/milter-greylist start/restart/stop". (attention il vous faudra peu-être passer ENABLED à 1 dans /etc/default/milter-greylist)

2 - Interfacer milter-greylist avec sendmail:

Je pars du principe que vous savez utiliser le fichier sendmail.mc et m4.

Il faut ajouter dans sendmail.mc la ligne suivante: "INPUT_MAIL_FILTER(`greylist', `S=local:/var/run/milter-greylist/milter-greylist.sock')dnl" le chemin vers milter-greylis.sock peut changer en fonction de votre distrib et est configurable dans greylist.conf.

Il faut maintenant régénérer le fichier sendmail.cf dans "/etc/mail/" avec la commande "m4 sendmail.mc > sendmail.cf" (et restarter sendmail ?).

A présent votre greylist fonctionne.

Vérifier le fonctionnement de milter-greylist:

Il est très intéressant de voir greylist travailler. Pour cela vous pouvez effectuer un "tail -f /var/log/mail.log | grep greylist". Lors de la réception de nouveaux triplets vous observerez alors des messages du type "le_nouveau_triplet delayed for mon_temps_greylist" qui indiquent que le milter fonctionne.

Aussi je vous invite à simuler l'envoi de mails. Si vous essayez d'en envoyer plusieurs avec le même triplet avant la fin du temps de greylist vous verrez apparaitre des messages comme "Greylisting in action, please come back later" ce qui signifie que le message à bien été rejeté.

Pour finir, pour être certain qu'un message à été soumis au greylist il suffit de regarder les entête lors de la réception d'un mail puisque greylist laisse bien entendu un tag du type "X-Greylist". Il est cependant amusant de regarder les informations laissés par greylist. Pour le premier mail soumis au greylist on constate le temps de délais:

X-Greylist: Delayed for 00:08:28 by milter-greylist-3.0 (mon_serveur_smtp [mon_adresse_ip]); la_date (CEST)

Puis pour les messages suivant on remarque que le triplet à été whitelisté:

X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-3.0 (mon_serveur_smtp [mon_adresse_ip]); la_date (CEST)

Conclusion:

Greylist n'est pas LA solution ultime contre le spam mais est aujourd'hui facile à installer et offre encore des résultats satisfaisant contre de nombreux spammeurs et j'espère que ce dossier vous aura permis de découvrir, mieux comprendre voir déployer Greylist.

Sendmail et greylist sont nouveau pour moi donc n'hésitez pas à me corriger en cas d'erreur ou à compléter mon billet (les commentaires ou la section contact sont la pour ça).
Partager sur:
A propos de l'auteur:
Guillaume Jeantet: titulaire d'une licence pro et fort de quelques années d'expériences je suis administrateur système et développeur mais surtout un autodidacte dynamique et passionné. Je partage sur UBDT mes coups de coeurs et astuces.

Autres articles qui pourraient vous intéresser.

windows 10 mobile anniversary updateWindows 10 mobile anniversary update disponible
L'anniversary update de windows 10 mobile est maintenant disponible.
windows 10 rapideRendre windows 10 plus réactif
Une astuce toute simple pour accélérer windows, le rendre plus rapide et réactif.
thunderbird 38Thunderbird 38: bug "adjonction de" résolu?
Thunderbird n'est pas mort et cette semaine la version 38 est publié. C'est une étape importante pour l'équipe de thunderbird car c'est la première release entièrement gérée par les volontaires.
firefox confidentialiteFirefox 33.1: affirmez votre liberté
Firefox célèbre ses 10 ans avec la version 33.1 mettant l'accent sur la confidentialité de vos données: Ajout de DuckDuckGo et bouton d’effacement de l'historique récent.
firefox 33Retour sur les nouveautés de firefox 33
Voici ce qu'il faut retenir à propos des nouveautés de firefox 33, explications sur openh264, améliorations de recherche, performances, restauration de sessions et outils pour développeurs.

Proposer un nouveau commentaire

Votre pseudo s'il vous plaît :

Email (Facultatif, n'est pas affiché et permet de recevoir des notifications de validation / réponses):

Votre site Web (facultatif) :

Exprimez vous :

:arrow::D:confused::cool::cry::eek::evil::!::idea:lol:mad::|:?::p:redface::rolleyes::(:):wink: