Un pot de miel avec Postfix

Créer un pot de miel avec Postfix

Problématique

Lorsqu'on possède un serveur Postfix, il peut être utile de lui faire apprendre des choses au fur et à mesure du temps, comme par exemple des adresses à ne pas accepter en entrée. Cela peut être utile si vous êtes obligé de laisser de temps en temps votre adresse sur internet. Pour récolter des adresses à éviter, rien de tel qu'un pot de miel qui va attirer les spammeurs et vous pourrez ainsi collecter toutes les informations qu'il convient d'avoir et surtout de leur fermer la porte.

Solution

Création d'un nouvel alias

Commençons par mettre en place un alias qui va permettre de récupérer les messages inopportuns. pour cela, éditer le fichier aliases de postfix et ajouter un nouvel alias, par exemple :

nouvel.alias "|/scripts/spam.sh"

Puis, reconstruisons les alias avec la commande :

postalias /usr/local/etc/postfix/aliases
postfix reload

Ce qui signifie qu'à la réception d'un message du la boîte nouvel.alias, le message sera envoyé au shell spam.sh.

traitement du message dès sa réception

Créons ce shell :

#!/bin/sh
#met de cote les messages envoyes sur une adresse bidon
read MESSAGE
echo "-------------------------------" >> /var/log/spam.log
echo "SPAM ${MESSAGE}" >> /var/log/spam.log
echo "add spam address in blacklist">> /var/log/spam.log
echo ${MESSAGE} | awk '{print $2 "	REJECT"}' >>  /tmp/blacklist

La commande read lit le message en entrée, ou plus exactement la première ligne à cause du retour chariot. Or, il se trouve que sur cette ligne ce trouve justement l'adresse de l'expéditeur. Cet expéditeur est redirigé vers un fichier /tmp/blacklist.

Astuce

Le fichier de log permet d'avoir une trace de ce qui se passe (ne pas oublier de le créer avec touch) et aussi, en cas de problèmes, de recréer la liste noire à partir de l'historique.

Mise à jour de la liste noire

Le problème est que dans ce fichier, nous pouvons avoir plusieurs fois la même adresse. Il faut donc faire un peu de nettoyage avant de créer la liste noire :

#!/bin/sh
#constitue la liste noire des expéditeurs (spam)
cat /tmp/blacklist | sort | uniq > /usr/local/etc/postfix/blacklist
postmap /usr/local/etc/postfix/blacklist
postfix reload

Il ne reste plus qu'à ajouter l'exécution de ce script dans crontab (par exemple tous les soirs à minuit afin de mettre la liste à jour pour postfix).

Modification de main.cf

Pour indiquer à postfix d'utiliser votre liste noire pour bannir les expéditeurs, il ne faudra pas oublier d'ajouter ou de modifier le fichier main.cf comme suit :

smtpd_sender_restrictions = check_sender_access hash :/usr/local/etc/postfix/blacklist

Puis d'effectuer un rechargement de configuration pour appliquer les modifications :

postfix reload

Mise en place du pot de miel

Si tout est prêt à fonctionner, encore faut il ouvrir le pot de miel. Pour cela, il suffira de laisser traîner la nouvelle adresse (alias) sur internet, des forums, des sites web, en indiquant bien aux internautes qu'il s'agit là d'un piège… sauf pour les robots collecteurs qui ne manqueront pas de récupérer l'adresse afin d'y envoyer des messages…