21 novembre 2024

Fail2ban, configuration pour Postfix et Dovecot

Les boulets qui tentent de se connecter à un de vos services, ca peut vite devenir…. pénible.

Avec les fuites de mot de passe qu’on retrouve un peu partout, n’importe qui ou presque peut maintenant faire le Jean-Kevin (mes excuses si un de mes lecteurs s’appelle Jean-Kevin, faudra que je parle à ses parents ceci dit..)

Bref, trêve de plaisanteries, et attaquons nous à ces petits malandrins qui n’ont rien d’autres à faire que de remplir nos fichiers de logs….

Comme on vient de terminer l’installation du serveur de messagerie, on va justement filtrer un peu les tentatives de login infructueuses sur l’IMAP et sur le SMTP.

 

I – Présentation et installation

Au niveau de son fonctionnement, Fail2ban est simple à comprendre.

Tout d’abord, on a des jails, c’est à dire une configuration que l’on créé et qui va s’occuper de surveiller un service en regardant ses logs. Ce sera dans le répertoire /etc/fail2ban/jail.d/.

Pour se faire, il faut savoir quoi chercher de suspect, c’est le rôle des filtres…. La, dans /etc/fail2ban/filter.d/, on en trouve déjà beaucoup de proposés. Bien sur, on pourra faire les siens.

Et ensuite, il faut dire ce qu’on fait avec les lourds que l’on trouve dans les logs après filtrage : ce sont les actions. La aussi, dans /etc/fail2ban/action.d/ on en trouve, et la aussi on pourra faire les nôtres.

Pour l’installation, rien de compliqué :

# apt-get install fail2ban

 

II – Configuration

Maintenant, il s’agit de créer les jails. On va en faire une pour Postfix, puis une pour Dovecot

A – Postfix

Dans un fichier /etc/fail2ban/jail.d/postfix.conf, mettez ceci :

[postfix-sasl]
enabled = true
filter = postfix-sasl
action = iptables-allports
         mail[name=Postfix SASL]
bantime = 3600
maxretry = 2
logpath = /var/log/mail.log

Au niveau du filtre, on se sert de celui qui existe déjà, et au niveau action, on utilise celle qui bloque tout au niveau du FW plus un p’tit mail d’info.

On active le ban au bout de deux tentatives et ce pour une heure.

 

B – Dovecot

Dans un fichier /etc/fail2ban/jail.d/dovecot.conf, mettez ceci :

[dovecot]
enabled = true
filter = dovecot
action = iptables-allports
         mail[name=Dovecot]
bantime = 3600
maxretry = 2
logpath = /var/log/mail.log

La, on utilise le filtre dovecot déjà existant et le reste, comme Postfix…

 

IV – Test

Ne reste plus qu’à recharger :

# service fail2ban reload

Puis, on peut déjà regarder le log voir si tout est OK :

# tail /var/log/fail2ban.log -f

On peut aussi en savoir plus sur les jails en cours :

# fail2ban-client status

Puis le détail :

# fail2ban-client status postfix-sasl

Pour bannir de force par exemple :

# fail2ban-client set postfix-sasl banip XXX.XXX.XXX.XXX

etc….

Après, il n’y a plus qu’à attendre pour voir si cela marche bien, et généralement, ça ne prend pas trop de temps.

 

V – Conclusion

Et voila, vous voyez, c’est très simple et ça marche… mais ceci dit, je n’aime pas car chaque serveur aura alors ses propres règles de blocages.

Et perso, si un lourd est lourd sur un service, je ne vois pas pourquoi il ne le serait pas sur un autre, ce serait donc mieux de le bloquer en amont, avec le firewall du routeur.

Et bien, cela tombe bien, c’est ce qu’on va voir dans l’article suivant avec la mise en place d’un système client-serveur en python.

Laisser un commentaire

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