Protéger SSH sur Debian avec Fail2ban

fail2ban-logo

Un serveur Debian exposé sur Internet via SSH est souvent la cible d’attaques par force brute : des bots tentent de deviner le mot de passe en multipliant les connexions.
Fail2ban est un outil qui détecte ces tentatives dans les journaux et bloque automatiquement les adresses IP responsables.

Dans cet article, nous allons voir comment installer Fail2ban sur Debian et le configurer pour bannir définitivement une adresse IP après 3 tentatives échouées sur SSH, tout en évitant les erreurs de configuration comme allowipv6 not defined.


1. Installer Fail2ban

Mettez à jour votre système :

sudo apt update && sudo apt upgrade -y

Installez Fail2ban :

sudo apt install fail2ban -y

Activez et démarrez le service :

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

2. Créer une configuration personnalisée

Au lieu de modifier le fichier principal /etc/fail2ban/jail.conf, nous allons créer un fichier /etc/fail2ban/jail.local :

sudo nano /etc/fail2ban/jail.local

Collez cette configuration :

[DEFAULT]
# Nombre maximum de tentatives infructueuses avant bannissement
maxretry = 3
# Fenêtre de temps (10 minutes)
findtime = 10m
# Bannissement permanent (-1) ou longue durée (ex: 1y)
bantime = -1

# Lecture des logs via systemd (Debian)
backend = systemd
# Action par défaut (nftables sur Debian 11+)
banaction = nftables
banaction_allports = nftables-allports

# Autoriser IPv6 automatiquement (évite l’erreur 'allowipv6 not defined')
allowipv6 = auto

# IP à ne jamais bannir
ignoreip = 127.0.0.1/8 ::1

[sshd]
enabled = true
port = 22
filter = sshd
logpath = %(sshd_log)s

💡 Remarque : Si votre version de Fail2ban ne supporte pas bantime = -1, remplacez-le par 1y (1 an) ou 10y (10 ans).


3. Vérifier la configuration

Avant de redémarrer le service, testez le fichier :

sudo fail2ban-client -t

Si tout est correct, vous verrez :

Configuration test OK

4. Redémarrer et vérifier Fail2ban

Rechargez la configuration :

sudo systemctl restart fail2ban

Vérifiez l’état :

sudo systemctl status fail2ban

Contrôlez la protection SSH :

sudo fail2ban-client status sshd

5. Gestion des IP bannies

  • Voir les IP bannies :
sudo fail2ban-client status sshd
  • Débannir une IP :
sudo fail2ban-client set sshd unbanip 192.168.1.100

6. Dépannage

Si le service ne démarre pas, consultez le log :

sudo tail -n 50 /var/log/fail2ban.log

Et assurez-vous que les fins de lignes du fichier sont au format Linux :

sudo sed -i 's/\r$//' /etc/fail2ban/jail.local

Conclusion

Avec cette configuration, toute IP ayant échoué 3 fois à se connecter en SSH sera bannie de façon permanente.
Nous avons aussi ajouté allowipv6 = auto pour éviter l’erreur fréquente sur Debian récentes. Fail2ban devient ainsi un rempart efficace contre les attaques par force brute.

Share this content:

Laisser un commentaire

You May Have Missed