Postfix

Sécuriser Postfix

Restrictions sur le client

1. Introduction

Le paramètre smtpd_client restrictions permet de définir des restrictions de connexion au service SMTP. Typiquement, les relais de messagerie utilisés par les spammeurs peuvent être détectées facilement avec ce type de comportement :

  • Ils s’annoncent généralement avec des adresse IP configurées avec un reverse DNS générique (utilisé par les FAI).
  • Ils s’annoncent avec une adresse IP ne disposant pas de reverse DNS.
  • Ils s’annoncent avec un nom de domaine fictif.

2. Restrictions IP

2.1. Configuration

Pour mettre en place une règle de filtrage par adresse IP, on va tout d’abord créer un fichier qui contiendra les adresses IP à blacklister :

  • Créer le fichier bl_reverse et l’enregistrer à la racine /etc/postfix/. Pour cette exemple, le fichier contiendra les deux lignes suivantes :

10.0.0.50__________REJECT__________Adresse IP blacklistée
10.0.0.51__________DEFER

  • Ensuite, nous générons le fichier de base – à partir du fichier de définition – à l’aide de la commande postmap :

root@alice.lan: > postmap /etc/postfix/bl_reverse

  • Enfin, dans le fichier de configuration /etc/postfix/main.cf il faut ajouter les deux lignes suivantes :

smtpd_client_restrictions =
__check_client_access hash:/etc/postfix/bl_reverse

2.2 Test de configuration

  • Pour commencer, se connecter au serveur SMTP depuis la machine 10.0.0.50 (adresse IP blacklisté précédemment) et tentons d’envoyer un courriel :

root@alice.lan: > telnet 10.0.0.44 25
Trying 10.0.0.44…
Connected to 10.0.0.44.
Escape character is ‘^]’.
220 alice.lan ESMTP Postfix
mail from:<root@mail.glx>
250 2.1.0 Ok
rcpt to:<alice@mail.glx>
450 4.7.1 <ncad.net.ncad.fr[10.0.0.50]>: Client host rejected: Access denied

  • D’après la réponse du serveur (en rouge), la requête est rejetée avec un code d’erreur temporaire (450). Si ce code est interprété par un serveur SMTP tentant d’acheminer un courriel, il retentera l’opération plus tard. En revanche, si ce code d’erreur est interprété par un client de messagerie (Thunderbird, Outlook, …), ce dernier annulera la tentative d’envoi.
  • Maintenant, répétons l’opération depuis la machine 10.0.0.51 :

root@alice.lan: > telnet 10.0.0.44 25
Trying 10.0.0.44…
Connected to 10.0.0.44.
Escape character is ‘^]’.
220 alice.lan ESMTP Postfix
mail from:<root@mail.glx>
250 2.1.0 Ok
rcpt to:<alice@mail.glx>
554 5.7.1 <oxtrode.net.ncad.fr[10.0.0.51]>: Client host rejected: Adresse IP blackliste

  • Cette fois-ci, le serveur renvoi un code d’erreur permanent (554). Si ce code est interprété par un serveur SMTP tentant d’acheminer un courriel, ce dernier renverra à l’émetteur un échec de remise avec le motif 554 5.7.1 : Client host rejected: Adresse IP blackliste. Si le code d’erreur est interprété par un client de messagerie, ce dernier annulera la tentative d’envoi.
  • Depuis les logs Postfix, il est possible d’observer les différentes tentatives de connexion qui ont été rejetées précédemment :

root@alice.lan: > cat /var/log/mail.log | grep « Client host rejected »
Jan 24 14:38:48 alice.lan postfix/smtpd[31423]: NOQUEUE: reject: RCPT from
ncad.net.ncad.fr[10.0.0.50]: 450 4.7.1 :
Client host rejected: Access denied; from=root@mail.glx to=alice@mail.glx
proto=ESMTP

Jan 24 14:58:00 alice.lan postfix/smtpd[31667]: NOQUEUE: reject: RCPT from
oxtrode.net.ncad.fr[10.0.0.51]: 554 5.7.1 :
Client host rejected: Adresse IP blacklist e; from=root@mail.glx to=alice@mail.glx proto=ESMTP

Laisser un commentaire

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