Postfix permet de faire énormément de vérifications sur l’émetteur et le récepteur. Nous allons voir ici comment blacklister proprement une adresse mail en utilisant une map postfix.
Créez un fichier /etc/postfix/sender_access et insérez le contenu suivant:
spam@beautifulhorses.co.uk REJECT
spammonster.fr REJECT
unix-experience.fr OK
La syntaxe de ce fichier est la suivante:
<adresse|domaine> <action>
Dans le cas présent nous rejetons la première adresse ainsi que le domaine spammonster.fr. En revanche le domaine unix-experience.fr est autorisé.
Compilez ensuite la map:
postmap /etc/postfix/sender_access
Appliquons maintenant notre map. Elle sera ici appliquée sur notre relai de mails et donc sur le processus smtp de postfix. Ouvrez le fichier /etc/postfix/master.cf et éditez la ligne associée au processus smtp:
smtp inet n - - - - smtpd
-o smtpd_sender_restrictions=check_sender_access,hash:/etc/postfix/sender_access
Redémarrez ensuite le service postfix.
Lorsque le domaine sera bloqué vous devriez voir le message suivant dans vos logs:
Sender address rejected: Access denied
Si aucun domaine ne correspond à la map générée, postfix passera le mail au filtre suivant. Dans l’exemple ci-dessus il n’y en a pas, les mails seront donc acceptés.
Vous savez désormais comment bloquer un nom de domaine ou une adresse précise sur vos relais SMTP. Cette configuration est à prendre avec des pincettes car elle n’exclut pas de potentiels faux positifs mais elle offre une méthode rapide et efficace afin de rejeter rapidement un comportement indésirable.
N’hésitez pas à utiliser un antispam de type spamassassin couplé à cette solution ainsi que du greylisting afin de pouvoir contrer le SPAM.