Table des matières

, , , , ,

Debian : Installer fail2ban avec le pare-feu firewalld

:TODO_DOCUPDATE:

Environnement

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

Tester la nouvelle configuration

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

Références