Chez Ptit Gars

Accueil > Informatique > Poweredge T105 > fail2ban

fail2ban

mardi 26 août 2008, par Pti Gars

Après un petit moment d’utilisation sur internet, les serveurs se font “agresser” par des robots, pas forcément gentil. Ils utilisent principalement une Attaque par force brute. Il existe une méthode qui permet de les bloquer au bout de quelques essais infructueux. Le principe consiste à banir l’adresse IP de l’attaquant pendant un moment.

« fail2ban » permet de réaliser tout cela très simplement.

Installation

pour l’installation sous ubuntu serveur :

apt-get install fail2ban

Configuration

La configuration de ce service se fait par l’intermédiaire du fichier :
/etc/fail2ban/jail.conf

Au début du fichier dans la section [DEFAULT] on peut trouver ça par exemple :

ignoreip = 127.0.0.1
bantime  = 600
maxretry = 3

Ceci indique qu’après détection de plus de 3 tentatives de connexion (maxretry) venant de la même adresse IP, cette adresse sera automatiquement bloquée pendant 600 secondes (bantime). Dans la plupart des cas vous ne les reverrez pas car les bots passeront à un autre serveur.

Dans la section [jail] on trouve des bloques avec les principaux services, il suffit de les activer et configurer :

[ssh]

enabled = true
port    = ssh
filter  = sshd
logpath  = /var/log/auth.log
maxretry = 6

Ici le service ssh est actif « enabled = true »
le port à bloquer avec les services iptables, le nom du filtre (expression régulière).
logpath correspond au fichier log à lire et maxretry le nombre de d’echec avant le blocage.

Par défaut presque tout est désactiver, il suffit de mettre enabled à true pour activer els service souhaité.

Pour activer les modifications, il suffit de relancer le service :

sudo /etc/init.d/fail2ban-client reload

pour vérifier le résultat :

fail2ban-client status
Status
|- Number of jail:      3
`- Jail list:           apache, vsftpd, ssh

Configuration avancée

A chaque service est associé un fichier de configuration dans le dossier /etc/fail2ban/filter.d

Une expression régulière définit les lignes du log qui signalent une erreur d’authentification. Il est possible de spécifier via une regex des exceptions, ie des lignes à ignorer. Cela peut être utile par exemple pour ne pas bannir les IP provenant de votre réseau local.