Menu Fermer

Postfix : Liste noire (blacklist) et rejet

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 :