Fail2Ban est un outil open-source qui permet de protéger votre serveur contre les attaques par force brute en bannissant les adresses IP qui présentent un comportement suspect
L'application lit des fichiers log de services comme SSHD ou du serveur Apache et bannit les adresses IP qui ont obtenu un trop grand nombre d'échecs lors de l'authentification.
Il met à jour les règles du pare-feu pour rejeter cette adresse IP. Ces règles peuvent êtres définies par l'utilisateur.
sudo dnf update -y
sudo dnf install fail2ban -y
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
[sshd]
enabled = true
bantime = 1296000
findtime = 86400
maxretry = 3
La valeur de bantime est le temps en secondes pendant lequel un utilisateur sera bloqué après dépassement de la limite de tentatives de connexion. Dans ce cas, bantime = 1296000 signifie que l'utilisateur sera bloqué pendant 15 jours (1296000 secondes = 15 jours x 24 heures x 3600 secondes).
La valeur de findtime est le temps en secondes pendant lequel les tentatives de connexion sont surveillées. findtime = 86400 signifie que les tentatives de connexion sont surveillées sur une période de 24 heures.
La valeur de maxretry est le nombre maximum de tentatives de connexion autorisées. maxretry = 3 signifie que l'utilisateur sera bloqué après 3 tentatives de connexion échouées.
la configuration est terminée, vous pouvez enregistrer et fermer le fichier de configuration.
sudo systemctl restart fail2ban
sudo systemctl status fail2ban
Félicitation, Fail2ban va maintenant surveiller les tentatives de connexion ssh et bloquer un utilisateur après 3 tentatives de connexion échouées sur une période de 24 heures et cela pendant 15 jours.
Pour afficher les tentatives vous pouvez utiliser les commandes fail2ban-client et consulter les journaux système.
Voici quelques exemples de commandes utiles :
Pour obtenir la liste des jails (règles de filtrage) actives dans Fail2Ban, utilisez la commande suivante :
sudo fail2ban-client status
Pour afficher des informations détaillées sur une jail spécifique, utilisez la commande suivante (remplacez <jail_name> par le nom de la jail)
Par exemple, pour afficher le statut de la jail SSH (généralement nommée "sshd") :
sudo fail2ban-client status sshd
Les journaux de Fail2Ban peuvent être consultés pour voir les tentatives de connexion échouées et les actions prises par Fail2Ban. Par défaut, les journaux sont stockés dans /var/log/fail2ban.log. Pour afficher les dernières lignes du journal, utilisez la commande suivante :
sudo tail -n 50 /var/log/fail2ban.log
Cette commande affiche les 50 dernières lignes du fichier de journal. Vous pouvez remplacer 50 par le nombre de lignes que vous souhaitez afficher.
Pour rechercher des tentatives de connexion échouées dans les journaux système (par exemple, pour SSH), vous pouvez utiliser la commande grep. Par exemple :
sudo grep 'Failed password' /var/log/secure
Remplacez /var/log/secure par le chemin d'accès au fichier journal approprié pour le service que vous souhaitez surveiller.
Ces commandes vous aideront à surveiller les tentatives de connexion échouées et les actions prises par Fail2Ban pour protéger votre système.