| Système | Debian 13 (trixie) |
|---|---|
| firewalld | 2.3.1 |
apt install -y fail2ban # Vérifier l'état du service systemctl status fail2ban.service # Si besoin démarrer le service systemctl enable --now fail2ban.service
Créer un fichier de configuration /etc/fail2ban/fail2ban.local (il sera prioritaire sur la configuration du paquet *.conf).
[DEFAULT] allowipv6 = auto bantime = 10m # Fenêtre d’observation des échecs findtime = 10m # Nombre d’échecs avant bannissement maxretry = 5 # Adresse(s) à ne jamais bannir ignoreip = 127.0.0.1/8 ::1 192.168.0.123 # Lecture de logs via systemd (souvent plus fiable sur Ubuntu/Debian) backend = systemd # Choisissez l’action selon votre pare‑feu banaction = firewallcmd-rich-rules banaction_allports = firewallcmd-rich-rules [sshd] enabled = true port = 22 # Le filtre sshd est fourni par défaut filter = sshd
Le point important ici est de bien utiliser les actions
Tester la syntaxe du nouveau fichier de configuration :
fail2ban-client -t
Recharger la configuration :
systemctl reload fail2ban.service
# équivalent
fail2ban-client reload
fail2ban-client status
Etat initial :
# Vérifier l'état du pare-feu firewall-cmd --state # Identifier les zones utilisées firewall-cmd --get-active-zones # afficher le détail des zones utilisées firewall-cmd --get-active-zones
Après quelques échecs d'authentification SSH, le client n'obtient plus de réponse. Un nouvel essai retourne le message :
ssh: connect to host 192.168.0.10 port 22: Connection refused
Côté serveur, on doit avoir l'IP du client dans la prison ssd :
fail2ban-client status sshd
Le