debian:fail2ban

Mise en place de fail2ban

Fail2ban est un logiciel populaire qui utilise le firewall du noyau Linux (iptables) pour bloquer les attaques brute force en SSH. Fail2ban lis les logs d’authentification et comptabilise le nombre de tentatives de connexions ratées par IP.

Si ce nombre dépasse une valeur seuil, il banni l’IP en rajoutant une règle dans Iptables. Plus généralement, on peut étendre cette surveillance à n’importe quel type de log grâce aux expressions régulières.

Iptables est installé par défaut sur toutes les distributions Linux (noyau OVH).

Installation de Fail2ban

- Sous Debian : apt-get update && apt-get install fail2ban.
- Sous Gentoo/Release2 : emerge fail2ban

Le fichier de configuration se nomme <strong> jail.conf </strong> et se trouve dans <strong> /etc/fail2ban/ </strong> (sinon taper <em> locate jail.conf </em> pour le localiser). On va éditer ce fichier pour modifier la configuration du soft :

   nano /etc/fail2ban/jail.conf  

Les options intéressantes :

   ignoreip = 127.0.0.1  // une IP qui ne sera jamais bannie par FAIL2BAN, ici il s'agit de la machine locale
   bantime  = 600          // le temps, en secondes, de bannissement d'une IP (10 minutes ici)
   maxretry = 3             // le nombre de tentatives erronnées autorisées avat de se faire bannir 

Fail2ban peut surveiller SSH mais aussi Apache, le serveur FTP ou le serveur mail. Par défaut il connait un certain nombre de programmes courants, il suffit juste de l’activer la config (par défaut seul le SSH est surveillé) :

   [ssh]   
   enabled = true   // true pour activer la surveillance SSH, false pour désactiver
   port    = ssh
   filter  = sshd
   logpath  = /var/log/auth.log  // le log où chercher les tentatives de brute force
   maxretry = 6           // le nombre de tentatives erronnées en SSH autorisées avant de se faire bannir 

Pour activer les autres (postfix, vsftpd, proftpd,courriersmtp, apache) il suffit de changer le enabled de false à true et de vérifier que le chemin du log correspond. Enfin, quand on a fini il faut redémarrer fail2ban :

   /etc/init.d/fail2ban restart 

Comment augmenter la verbosité?

Pour rendre Fail2ban plus bavard, vous pouvez utiliser l'option -vvv avec fail2ban-client et fail2ban (seulement pour la version 0.6.x).

- Paramètrez loglevel à 4 dans /etc/fail2ban/fail2ban.conf (seulement pour les versions > 0.6.x).
Comment voir les bannissements en cours?

avec la commande iptables iptables -L

Comment mettre fin à un bannissement non-terminé?

Il suffit d'utiliser la commande :

pour les connexions ftp:

  iptables -D fail2ban-proftpd -s <IP> -j DROP   1. pour les connexions ssh  
  iptables -D fail2ban-ssh -s <IP> -j DROP  en remplacant <IP> par l'ip bannie.\\

Comment empêcher le bannissement d'ip de son réseau local? Editer le fichier /etc/fail2ban/jail.conf Puis dans la section [DEFAULT], modifier la ligne comme suit :

  ignoreip =   *.*.*.0/24  ou  ip

Par exemple : 192.168.0.0/24

Pour aller plus loin Avec une simple regex, on peut utiliser fail2ban pour pratiquement n’importe quoi qui génère un log. Pour une configuration plus poussée de SSH, Apache2, Postfix et diverses attaques,

voir ce lien : http://j2c.org/informatique/linux/fail2ban07.php

  • debian/fail2ban.txt
  • Dernière modification : 2022/11/08 16:43
  • de 127.0.0.1