TUTOS.EU

Installation de fail2ban

Comment installer fail2ban

Fail2ban permet de surveiller les échecs de connexion et de bloquer pour un temps donné les adresses IP à en sont à l'origine. Cela permet de bloquer la plupart des attaques de déni de service (DDOS) et la récupération des mots de passes par brute force.

Depuis une console lancez l'installation de fail2ban avec la commande suivante :

sudo apt-get fail2ban
Lien vers le fichier : cliquez ici

Appuyez sur Y et Entrée

Cela installe

Une fois terminé lancez sudo fail2ban-client -x start

Ici cela indique que le client est déjà lancé

Comme indiqué sur https://doc.ubuntu-fr.org/fail2ban
il est recommandé de ne pas travailler sur le fichier de configuration d'origine mais sur un fichier nommé jail.local
jail.local est automatiquement lu lors de l'initialisation de fail2ban.
Pour cela tapez les commandes suivantes :

cd /etc/fail2ban
sudo cp jail.conf jail.local
Lien vers le fichier : cliquez ici

Resultat

Sur http://www.ariege360.fr/2012/08/28/serveur-dedie-securite/
on indique que jail.local (qui est donc une copie de jail.conf) contient les services à monitorer.

Pour l'éditer on va utiliser nano a avec la commande
sudo nano jail.local

sudo nano jail.local
Lien vers le fichier : cliquez ici

Pour information les filtres utilisés dans fail2ban sont dans le répertoire filter.d

On y trouve le bantime qui est ici à 600 secondes par défaut.
Modifier la valeur et mettre 3600 afin que le ban soit d'1 heure.

Autres valeurs : findtime et maxretry
Le findtime doit toujours avoir une valeur inférieure au bantime
Si findtime est à 600 et maxretry à 3, cela veut dire que si je trouve 3 fois un host en moins de 600 secondes, alors on le bannie pour le temps du bantime.

Vous pouvez laisser la valeur par défaut de findtime et maxretry

Allez maintenant au niveau de ignoreip
ignoreip permet de paramétrer des exclusions
Typiquement si votre serveur est chez un fournisseur type OVH, cloudwatt etc.. et que vous le gérez de chez vous, il faut mettre une exclusion sur votre ip publique afin de ne pas vous bloquer vous même.
entrez plusieurs ip en les séparant avec un espace.
Pour l'exemple ici on a exclu l'ip 8.8.8.8

Dans la partie JAIL

On trouve des blocs qui correspondent aux services à surveiller comme ici SSH

Dans ce bloc on trouve :
_ si la règle est active ou non
_ les ports à bloquer. Ici il est indiqué ssh,ftp mais on peut mettre directement le numéro de port comme 22 pour ssh. Si vous avez changé le port par défaut, changez ici en conséquence
_ le nom du filtre (expression régulière) associé
_ le fichier de log à lire
_ le nombre maximal de tentatives

Votre fichier de configuration modifié, relancez le service avec la commande

sudo fail2ban-client reload
Lien vers le fichier : cliquez ici

Sur d'autres pages j'ai vu une autre commande pour redémarrer le service

sudo service fail2ban restart
Lien vers le fichier : cliquez ici

Vous pouvez vérifier si les prisons sont correctement lancées avec la commande

sudo fail2ban-client status
Lien vers le fichier : cliquez ici

Résultat

Vous pouvez arrêter une prison avec un stop. Exemple

sudo fail2ban-client stop ssh
Lien vers le fichier : cliquez ici

Résultat

Un
sudo fail2ban-client start ssh

doit normalement le faire repartir mais cela n'a pas fonctionné dans mon cas.
Aussi j'ai dû effecter un reload :

sudo fail2ban-client reload
Lien vers le fichier : cliquez ici

Suite à quoi un status indique bien que le jail de SSH est reparti

Les lignes ci-dessous permettent de créer un script qui regarde les ip bannies sur tous les jails

sudo nano checklist_ban
#!/bin/bash
#lancer le script en sudo 
JAILS=$(fail2ban-client status | grep " Jail list:" | sed 's/`- Jail list:\t//g' | sed 's/,//g')
for j in $JAILS
do
echo "$j $(fail2ban-client status $j | grep " Currently banned:" | sed 's/   |- Currently banned:\t//g')"
done
Lien vers le fichier : cliquez ici

Article(s) en relation(s)