Fail2Ban est un outil de sécurité pour les serveurs Linux qui aide à prévenir les attaques par force brute en bloquant les adresses IP suspectes après plusieurs tentatives de connexion échouées. Il fonctionne en surveillant les fichiers journaux des services (comme SSH, Apache, Nginx, etc.) et en analysant les tentatives de connexion pour détecter les comportements suspects. Lorsqu’il détecte des tentatives excessives de connexion échouées, il peut ajouter des règles de pare-feu pour bloquer ces adresses IP pendant une période définie.
1. Fonctionnement de Fail2Ban
- Surveillance des fichiers journaux : Fail2Ban analyse les fichiers de logs (comme
/var/log/auth.log
pour SSH) pour détecter des tentatives de connexion échouées répétées. - Blocage d’IP : Lorsqu’une adresse IP échoue plusieurs fois à se connecter (selon un seuil configurable), Fail2Ban la bloque en ajoutant une règle au pare-feu (généralement iptables ou firewalld) pour une durée déterminée.
- Prise en charge des services : Fail2Ban peut être configuré pour protéger plusieurs services tels que SSH, Apache, Nginx, FTP, Dovecot, Postfix, etc.
Cette installation est faite sur openSUSE Leap 15.5
# zypper in -y fail2ban
Répertoire des fichiers de configuration : /etc/fail2ban
Configuration contre les attaques DDoS :
# nano /etc/fail2ban/jail.local
# Ecrire les lignes suivantes
[ssh-ddos]
enabled = true
[pam-generic]
enabled = true
# Enregistrer et quitter
Régler le temps limite de blocage et le nombre maximum de tentatives :
#nano /etc/fail2ban/jail.conf
# chercher la ligne « # « bantime » is the number of seconds that… »,
# décommenter et spécifier le nombre de minutes (4m pour 4 minutes)
bantime = 4m
# chercher la ligne « findtime = 10m »
# décommenter (ou pas) et spécifier le temps maximum durant lequel un utilisateur a dépassé le maxretry
findtime = 4m
# chercher la ligne « # « maxmatches » is the number of matches stored … »,
# décommenter et spécifier le nombre de tentatives max avant blocage
maxretry = 2
# Enregistrer et quitter ESC:wq
Redémarrer le service pour activer les modifs
systemctl restart fail2ban
Pour visionner les tentatives de connexions et les blocages de fail2ban
tail -f /var/log/auth.log