Postfix possède un système de liste noire (blacklist) qui permet un rejet de mails provenant d’adresse IP, adresse email ou HELO spécifique.
Cela peut donc s’avérer pratique, si vous souhaitez interdire la réception de mail provenant de certaines sources.
Ce tutoriel vous montre comment créer cette liste noire.
Ajouter une liste noire sur postfix
Edite le fichier /etc/postfix/main.cf pour y ajouter les lignes suivantes :
smtpd_delay_reject = yes smtpd_helo_required = yes smtpd_helo_restrictions = permit_mynetworks, check_helo_access hash:/etc/postfix/helo_access, check_client_access hash:/etc/postfix/client_checks, check_sender_access hash:/etc/postfix/sender_checks, permit
- check_client_access : permet de bloquer l’IP d’un client, hostname ou une classe d’IP
- check_sender_access : permet de bloquer des adresses emails d’expéditeur
- check_helo_access : bloque un HELO spécifique
Les fichiers sont des tables, avec à gauche, l’IP, adresse email ou HELO, l’action à mener, OK ou REJECT suivi de la raison.
Exemple :
/etc/postfix/client_checks # Restricts which clients this system accepts SMTP connections from. example.com REJECT No spammers .example.com REJECT No spammers, from your subdomain 123.456.789.123 REJECT Your IP is spammer 123.456.789.0/24 REJECT Your IP range is spammer 321.987.654.321 OK example1.com OK /etc/postfix/sender_checks # Restricts sender addresses this system accepts in MAIL FROM commands. example.com REJECT env. from addr [email protected] rejected .example.com REJECT env. from addr [email protected] rejected [email protected] REJECT We don't want your email example2.com OK
Une fois que vous avez créer les fichiers, pensez à utiliser la commande postmap pour créer le fichier .db
postmap /etc/postfix/helo_access postmap /etc/postfix/client_checks postmap /etc/postfix/sender_checks
Relancez Postfix :
/etc/init.d/postfix reload
Veillez a bien créer tous les fichiers, s’ils sont vides (vous n’avez rien à rejeter), mettez un #, sinon vous risquez d’avoir des erreurs de configuration dans vos logs Postfix.
Tester la liste noire
cat /etc/postfix/sender_checks
[email protected] REJECT vos mails ne sont pas acceptes
Lorsque l’on envoie un mail, on obtient bien un RCPT 554 et le message indiqué.
un 25 10:05:03 www postfix/smtpd[22294]: NOQUEUE: reject: RCPT from mail-pg0-f50.google.com[74.125.83.50]: 554 5.7.1 <[email protected]>: Sender address rejected: vos mails ne sont pas acceptes; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-pg0-f50.google.com>
On reçoit bien une notification Mail Delivery Subsystem et le message indiqué dans le rejet :