Cela fait maintenant quelques années que je m'intéresse de près à tout ce qui tourne autour des mails. J'ai eu l'occasion lors de mes différents stages de mettre en place des anti-spam aux fonctionnements assez variés, certains marchant beaucoup mieux que d'autre. Mais ce n'est que depuis peu que je suis penché sur la fonctionnalité de délégation de politique d'accès de Postfix.

A l'heure actuelle, beaucoup de personne utilise Gmail pour leur mail perso. et même pour leur mail pro. Je ne suis pas fan de cette engouement que les gens ont pour Gmail. En effet, il ne gère pas les threads correctement, introduit de mauvaises habitudes... Mais ce n'est pas le seul Webmail à faire cela.

Le problème du SPAM vient se poser là quand on ne veut pas utiliser les services d'un hosteur quelconque comme Gmail. En effet toutes les grosses boites achètent des solutions anti-spam toute faites. Personnellement j'aime à croire que les outils libres disponibles actuellement sont tout aussi efficace voir plus.

J'ai donc décidé de programmer mon propre anti-spam en exploitant la fonctionnalité précédemment cité de Postfix. Pour des raison de simplicité, je l'ai développé en Python qui permet de développer très rapidement et de rendre mon programme portable. Le principe est simple, le programme ne travail que sur les informations disponibles avant la commande SMTP DATA. Pour le moment HAMMER effectue les tests suivants:

  • Vérification de l'existence du Reverse
  • Vérification de la correspondance HELO <--> Reverse
  • Vérification de la correspondance HELO <--> Domaine de l'adresse de l'émetteur
  • Vérification de la correspondance Reverse <--> Domaine de l'adresse de l'émetteur
  • Vérification de l'existence du domaine HELO
  • Vérification de l'existence d'un MX pour le domaine HELO
  • Vérification de la correspondance adresse du serveur <--> MX du domaine HELO
  • Vérification de la présence de l'IP dans des DNSRBL
  • Vérification de l'adresse de l'émetteur.
Toutes ces vérifications entrainent la modification du score du mail, qui lorsqu'il dépasse un certain seuil permet de déclarer avec certitude que le mail est un SPAM.