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) précédent(s)
Article(s) en relation(s)