Configuration de la sécurité, des RBL et Whitelist sur Postfix

Afin de limiter la réception de spams, nous allons voir la configuration des RBL et de plus de sécurité sur Postfix, puis comment mettre en place une Whitelist.

Configuration RBL sécurité et Whitelist sur Postfix

Ajout de sécurité

On commence par mettre en place une restriction sur les domaines qui n’existent pas, tout en permettant à notre réseau d’envoyer des mails.

Pour ceci on édite le fichier « /etc/postfix/main.cf ».
On ajoute les lignes suivantes :

smtpd_sender_restrictions =
         permit_mynetworks,
         reject_unknown_sender_domain,
         reject_unknown_reverse_client_hostname,
         reject_unknown_client_hostname
         permit

Ensuite on met en place une restriction des connexions depuis le réseau uniquement.

smtpd_client_restrictions =
         permit_mynetworks

Enfin on ajoute la vérification des informations HELO.

smtpd_helo_restrictions =
         permit_mynetworks,
         reject_invalid_helo_hostname,
         reject_non_fqdn_helo_hostname,
         reject_unknown_helo_hostname

Pour Postfix en version 2.3 et plus, il faudra utiliser « reject_unknown_hostname« 

Une fois vos modifications terminées, pensez à effectuer un postmap de votre fichier main.cf et à recharger votre service.

postmap /etc/postfix/main.cf
service postfix reload

RBL

On ajoute la restriction sur la réception des mails via l’ajout de RBL.

Là aussi il faut modifier le fichier « main.cf ».

smtpd_recipient_restrictions =
         permit_mynetworks,
         reject_rhsbl_helo bl.0spam.org,
         reject_rhsbl_helo dnsbl.sorbs.net,
         reject_rhsbl_helo rbl.realtimeblacklist.com,
         reject_rhsbl_sender bl.0spam.org,
         reject_rhsbl_sender dnsbl.sorbs.net,
         reject_rhsbl_sender rbl.realtimeblacklist.com,
         reject_rbl_client bl.0spam.org,
         reject_rbl_client dnsbl.sorbs.net,
         reject_rbl_client rbl.realtimeblacklist.com,
         reject_unauth_destination

C’est un exemple de liste de RBL classique, vous pouvez les modifier en fonction de vos besoins.

Whitelist

Afin de pouvoir mettre des exceptions, nous allons ajouter une whitelist/blacklist (en fonction des paramètres que vous indiquez).

Pour cela on crée un fichier « /etc/postfix/rbl_override ».

Dans celui-ci on ajoute les adresses que l’on souhaite autoriser explicitement via :

1.2.3.4  OK

Et celles que l’on veut refuser via :

1.2.3.4  REJECT

Ensuite, effectuez un postmap de votre fichier.

postmap /etc/postfix/rbl_override

Finalement, ajouter la ligne suivante dans le main.cf, dans la partie « smtpd_sender_restrictions », au-dessus des « reject ».

smtpd_recipient_restrictions =
        check_sender_access hash:/etc/postfix/sender_access,

Fichier main.cf complet (exemple)

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
 biff = no
 appending .domain is the MUA's job.
 append_dot_mydomain = no
 TLS parameters
 smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
 smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
 smtpd_use_tls = yes
 smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
 smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
 myhostname = mail.sqx-bki.fr
 mydomain = sqx-bki.fr
 myorigin = $mydomain
 mydestination = localhost, $mydomain, localhost.$mydomain, exemple.fr, exemple2.fr
 mynetworks = 127.0.0.0/8 192.168.66.0/24 192.168.44.0/24 192.168.1.0/24 192.168.2.0/24
 mailbox_command = procmail -a "$EXTENSION"
 recipient_delimiter = +
 content_filter = amavis:[127.0.0.1]:10024
 alias_maps = hash:/etc/aliases
 Taille maxi d'un mail : 20Mo
 message_size_limit = 20971520
 taille maxi d'une Bal : 2500 Mo
 mailbox_size_limit = 2621440000
 Securite d'acces au serveur SMTP
 smtpd_helo_required = yes
 smtpd_delay_reject = yes
 --- Verif de la presentation du serveur distant
 smtpd_helo_restrictions =
         permit_mynetworks,
         reject_invalid_helo_hostname,
         reject_non_fqdn_helo_hostname,
         reject_unknown_helo_hostname,
         check_helo_access       hash:/etc/postfix/helo_access
 --- Verification de l'adresse IP du client qui veut envoyer un mail
 --- (exception pour les informations présentes dans "client_access")
 smtpd_client_restrictions =
         permit_mynetworks
         check_client_access hash:/etc/postfix/client_access
         reject_rbl_client bl.0spam.org,
         reject_rbl_client rbl.realtimeblacklist.com,
         reject_rbl_client bl.spamcop.net,
         permit
 --- Verification du nom de l'emetteur du mail
 --- (exception pour les informations présentes dans "sender_access") 
 smtpd_sender_restrictions =
         permit_mynetworks,
         check_sender_access     hash:/etc/postfix/sender_access,
         reject_unknown_sender_domain,
         reject_unknown_reverse_client_hostname,
         reject_unknown_client_hostname
 --- Verification du nom du destinataire du mail
 --- (exception pour les informations présentes dans "rbl_override") 
 smtpd_recipient_restrictions =
         permit_mynetworks,
         check_sender_access hash:/etc/postfix/rbl_override
         reject_rhsbl_helo bl.0spam.org,
         reject_rhsbl_helo dnsbl.sorbs.net,
         reject_rhsbl_helo rbl.realtimeblacklist.com,
         reject_rhsbl_sender bl.0spam.org,
         reject_rhsbl_sender dnsbl.sorbs.net,
         reject_rhsbl_sender rbl.realtimeblacklist.com,
         reject_rbl_client bl.0spam.org,
         reject_rbl_client dnsbl.sorbs.net,
         reject_rbl_client rbl.realtimeblacklist.com,
         reject_unauth_destination,
         reject_rhsbl_reverse_client dnsbl.sorbs.net
 dovecot_destination_recipient_limit = 1
 virtual_transport = dovecot
 transport_maps = hash:/etc/postfix/transport
 slow_destination_concurrency_limit = 3
 slow_destination_rate_delay = 3s

Vous savez à présent comment effectuer la configuration des RBL, améliorer la sécurité et ajouter une Whitelist sur Postfix.

Retrouvez les articles en lien avec Postfix à cette adresse :

https://sqx-bki.fr/categorie/linux/postfix/

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *