Installer et configurer Fail2ban pour bloquer les adresses IP qui tentent de forcer l'accès SSH.
Un serveur Debian 13 avec SSH actif (fiche précédente). Avoir les droits sudo. Connaissance de base des logs (journalctl).
sudo apt update sudo apt install fail2ban -y
sudo systemctl status fail2ban
active (running)).Fail2ban utilise deux fichiers de configuration : /etc/fail2ban/jail.conf (original, à ne pas toucher) et /etc/fail2ban/jail.local (surcharge personnalisée).
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
Dans jail.local, cherchez la section [sshd] et modifiez (ou ajoutez) les lignes suivantes :
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 600 findtime = 600
maxretry = 3 : 3 tentatives échouées. findtime = 600 (10 minutes) : fenêtre de temps pour compter les tentatives. bantime = 600 (10 minutes) : durée du bannissement.sudo systemctl restart fail2ban
jail.local, redémarrez fail2ban. Vérifiez la syntaxe avec sudo fail2ban-client -d.Pour renforcer la protection, on peut augmenter bantime et activer la récidive (recidive).
[sshd] enabled = true maxretry = 3 bantime = 3600 # 1 heure [recidive] enabled = true logpath = /var/log/fail2ban.log maxretry = 3 bantime = 86400 # 1 jour findtime = 86400
recidive avec prudence : une IP qui est bannie plusieurs fois sera bloquée très longtemps. Cela peut vous exclure vous-même si vous faites trop d’erreurs.Pour tester, simulez des échecs de connexion SSH depuis une autre machine ou depuis le serveur lui‑même en utilisant une adresse IP locale (127.0.0.1 ne sera pas bannie).
# Depuis le serveur, tentez de vous connecter avec un mauvais mot de passe
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no utilisateur_inexistant@localhost
# Surveiller les logs de fail2ban en temps réel
sudo tail -f /var/log/fail2ban.log
# Voir l'état de la prison SSH
sudo fail2ban-client status sshd
sudo fail2ban-client set sshd unbanip <IP>.# Lister toutes les prisons actives sudo fail2ban-client status # Voir les IP bannies pour une prison spécifique sudo fail2ban-client status sshd | grep "Banned IP list" # Débannir une IP sudo fail2ban-client set sshd unbanip 192.168.1.100 # Recharger la configuration sans redémarrer le service sudo fail2ban-client reload
✅ Réponse : /etc/fail2ban/jail.local
maxretry = 3 signifie :✅ Réponse : 3 tentatives autorisées avant bannissement
sshd ?✅ Réponse : sudo fail2ban-client status sshd
✅ Réponse : sudo fail2ban-client set sshd unbanip 192.168.1.100
recidive permet de :✅ Réponse : augmenter la durée de bannissement pour les IP déjà bannies