Table des matières

Filtrage de mails avec Postfix

Plusieurs actions sont possible que niveau de ce service qui sera plus réactif que d'utiliser Dovecot bien qu'il ne sera pas possible pour un utilisateur lambda d'avoir la main sur la modification de ces listes.

Enlever des en tête

Admettons que l'on veuille enlever la ligne X-Options dans le mail, ajoutons cette directive dans le fichier /etc/postfix/header_checks :

/^X-Options:/    IGNORE

Disons au service mail de prendre en compte ce changement dans le fichier /etc/postfix/main.cf :

mime_header_checks = regexp:/etc/postfix/header_checks
header_checks = regexp:/etc/postfix/header_checks

Construisons la table et rechargeons la configuration :

postmap /etc/postfix/header_checks
systemctl reload postfix

Bloquer

Admettons que l'on veuille bloquer des adresses mails qui peut se faire en seulement quelques actions:

nano /etc/postfix/sender_access

Ajoutons les domaines, comptes mails ou compte utilisateur :

# ADDRESS PATTERNS         # ACTION
sender@example.com         550 Blacklisted
domain.com                 REJECT
user@                      REJECT

La commande suivante va permettre de re-créer la base adapté à postfix en enlevant les caractères superflues:

postmap /etc/postfix/sender_access

Ajoutons la directive suivant dans le fichier suivant :

nano /etc/postfix/main.cf
mtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/sender_access,...

Il nous reste plus qu'a recharger la configuration:

service postfix reload

Voici le comportement attendu avec un test:

$ telnet mail.lase.org 25
Trying 89.234.177.160...
Connected to mail.lase.org.
Escape character is '^]'.
220 reverse.lase.org ESMTP mail server
helo lase.org
250 reverse.lase.org
mail from: info@pro2red.com
250 2.1.0 Ok
rcpt to: contact@lase.org
550 5.7.1 <info@pro2red.com>: Sender address rejected: Blacklisted