
fail2ban est un logiciel qui se charge d'analyser les logs de divers services installés sur la machine, pour bannir automatiquement un hôte via iptables pour une durée déterminée, en cas d'échec après X tentatives.
C'est un élément essentiel pour sécuriser son système, et éviter des intrusions via brute-force.
Pour installer fail2ban, installer le paquet
fail2ban.
Les dépôts EPEL doivent être activés.
Lancer le service au démarrage :
Voila, fail2ban est installé.
Il faut maintenant le configurer pour les différents services.
Les services se configurent dans le fichier /etc/fail2ban/jail.conf
La section
[DEFAULT] indique les prises de décisions par fail2ban si dans chaque service rien n'est défini
Pour ignorer plusieurs IP, on les sépare par un espace. Des adresses ou réseaux peuvent être spécifiés :
Nous allons configurer fail2ban pour bannir les intrus passant par ssh.
Voici un exemple de service actif, intrus banni au bout de 3 essais pour une durée de 15 minutes, juste sur le port SSH (paramètres par défaut).
Si on change le port de SSH par exemple 1234
On peut aussi « écraser » les valeurs par défaut (maxretry, bantime) en rappelant les options dans le service concerné
Si le client récidive, on peut activer le filtre recidive qui poursuit le temps de ban :
Sur le serveur on lance un
tailf /var/log/fail2ban.log.
On tente de se connecter en SSH (dans mon exemple) plus de 2 fois et on vérifie qu'on est bien banni:
Fail2ban est livré avec un client nommé
fail2ban-client.
Pour voir les jails actifs, on peut utiliser :
Exemple :
Pour voir le statut d'un jail particulier (exemple avec sshd) :
Pour débannir un client :
Exemple avec l'IP 212.227.108.142 (Celle du serveur Linuxtricks au moment de la rédac de l'article), bannie du jail sshd :
Si le recidive est actif, évidemment, débloquer recidive aussi :