fail2ban et Postfix

De Vulgum Techus
Version du 5 avril 2019 à 23:05 par Admin2 (discuter | contributions)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : Navigation, rechercher
Lien court vers cette page : https://vt.cx/f2bPx
QR code vers cette page : https://vt.cx/f2bPx.qr

Présentation

Un rapide coup d'œil au log de Postfix au lien suivant :

/var/log/maillog ou /var/log/mail.log

peut révéler de nombreuses tentatives d'identification SMTP visant à casser le mot de passe dans l'optique de l'utiliser à des fins de spam. Ces tentatives sont identifiées par les messages suivants que l'on trouve en grand nombre :

<date heure host>: lost connection after AUTH from unknown[<IP>]
<date heure host>: disconnect from unknown[<IP>]

La procédure permettant d'y mettre fin grâce à fail2ban est ici décrit. Elle permet de tester sur les tentatives d'authentification erronée et de bloquer l'IP dont elles sont originaires.

Procédure

L'opération se passe en 3 temps :

  1. Ajout du jail postfix-auth dans jail.local
  2. Création de postfix.auth.conf
  3. Relance de fail2ban

Ajout du jail

  • Se loguer sur le serveur à protéger
  • Éditer jail.local en y ajoutant le code suivant :
[postfix-auth]
enabled = true
filter = postfix.auth
maxretry = 5
action = iptables-multiport[name=postfix, port="http,https,smtp,submission,pop3,pop3s,imap,imaps,sieve", protocol=tcp]
# 	sendmail[name=Postfix, dest=<email_admin>]
logpath = /var/log/maillog
  • Le sendmail sert à avertir l'admin du blocage d'une IP par postfix-auth -> il est inopérant par défaut du fait du # (commentaire) en début de ligne
  • Supprimer le # pour rendre sendmail opérationnel et indiquer l'email de l'admin en lieu et place de <email_admin>
  • maxretry = 5 indique le nombre de tentatives avant le bannissement. On peut réduire ou augmenter ce nombre.
  • Sauvegarder le fichier ainsi modifié

Création de postfix.auth.conf

  • Dans /etc/fail2ban/filter.d créer le fichier postfix.auth.conf avec le contenu suivant :
[Definition]
failregex = lost connection after AUTH from (.*)\[<HOST>\]
ignoreregex =
  • Le sauvegarder

Relance de fail2ban

  • Cette opération se fait par service fail2ban restart
  • D'éventuels messages d'erreurs à ce moment précis peuvent indiquer un problème

Désactivation du jail

Il est possible de désactiver le jail à tout moment comme suit :

  • Mettre false à la place de true à enabled au niveau de postfix-auth dans jail.local
  • Sauvegarder jail.local ainsi modifié
  • Relancer fail2ban par service fail2ban restart

Articles Vulgum Techus

Commentaires

blog comments powered by Disqus