Titre

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 :

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 :

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

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

Lien vers le fichier : cliquez ici

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

Lien vers le fichier : cliquez ici

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

Lien vers le fichier : cliquez ici

Résultat

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

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 :

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

Lien vers le fichier : cliquez ici