Kennisbank › Inbraakdetectie › Configurer et gérer Fail2Ban sur Linux
inbraakdetectie starter 26 August 2026

Configurer et gérer Fail2Ban sur Linux

Configurer et gérer Fail2Ban sur LinuxCet article explique comment Fail2Ban fonctionne, comment le configurer et comment utiliser les commandes d’administration courantes.

Configurer et gérer Fail2Ban sur Linux

Cet article explique comment Fail2Ban fonctionne, comment le configurer et comment utiliser les commandes d'administration courantes. Destiné aux administrateurs qui sécurisent un serveur Linux contre les attaques par force brute.

Prérequis

- Serveur Linux avec accès root ou droits sudo - Fail2Ban version 0.11.x ou 1.x (vérifiez avec `fail2ban-client --version`) - Un pare-feu actif : `ufw`, `iptables` ou `nftables` - Accès aux fichiers journaux dans `/var/log/` (par défaut sur Debian/Ubuntu)

Étapes

1. Vérifiez la version de Fail2Ban

fail2ban-client --version

Fail2Ban 1.x est la version stable actuelle. La version 0.11.x est encore prise en charge mais ne reçoit plus de nouvelles fonctionnalités. Les commandes de cet article fonctionnent sur les deux versions.

2. Vérifiez si le serveur tourne

fail2ban-client ping

Le serveur doit répondre par `PONG`. Si vous voyez `Fail2Ban is not running`, démarrez le service avec :

sudo systemctl start fail2ban

3. Consultez le statut d'une jail

Une jail est un ensemble de règles qui détermine quel fichier journal est suivi, quels motifs sont recherchés et quelle action est entreprise en cas de tentatives échouées répétées. La jail SSH standard s'appelle `sshd`.

fail2ban-client status sshd

Cela affiche le nombre d'adresses IP actuellement bannies, le total des bans et les règles de pare-feu actives.

4. Ajoutez manuellement une adresse IP à une jail

sudo fail2ban-client set sshd banip 203.0.113.25

Cela bloque l'adresse IP immédiatement, sans attendre le seuil. Utilisez cela pour les adresses IP dont vous êtes certain qu'elles sont malveillantes.

5. Retirez une adresse IP d'une jail

sudo fail2ban-client set sshd unbanip 203.0.113.25

Cela retire l'adresse IP directement de la table de blocage et annule la règle de pare-feu. Pratique en cas de faux positifs ou après avoir résolu un problème.

6. Testez une expression régulière avec fail2ban-regex

fail2ban-regex /var/log/auth.log 'sshd.<em>Failed password.</em>from <HOST>'

Cela teste si les motifs `failregex` de votre configuration de filtre correspondent réellement aux lignes de votre fichier journal. Remplacez `` par l'adresse IP que vous souhaitez faire correspondre. La commande affiche combien de lignes ont été reconnues et lesquelles ne l'ont pas été.

7. Configurez une jail dans jail.local

Créez un fichier de configuration local qui écrase les valeurs par défaut :

sudo nano /etc/fail2ban/jail.local

Ajoutez ceci pour une jail SSH avec des seuils personnalisés :

[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h

- `maxretry` : nombre de tentatives échouées avant qu'un ban ne soit imposé - `findtime` : fenêtre de temps dans laquelle les tentatives doivent avoir lieu - `bantime` : durée du blocage en secondes (ou avec un suffixe comme `1h`)

Redémarrez Fail2Ban après les modifications de configuration :

sudo systemctl restart fail2ban

8. Consultez les règles de pare-feu gérées par Fail2Ban

sudo iptables -L f2b-sshd -n

Cela affiche les règles de pare-feu Fail2Ban actives pour la jail sshd. La chaîne `f2b-sshd` contient toutes les adresses IP bannies. Avec `nftables`, utilisez `sudo nft list ruleset` et filtrez sur `f2b-`.

Vérification

Vérifiez que Fail2Ban fonctionne correctement :

sudo fail2ban-client status

Cela affiche toutes les jails actives. Pour chaque jail, vous voyez le nombre d'adresses IP bannies. Pour confirmer qu'une adresse IP spécifique est bloquée :

sudo fail2ban-client status sshd | grep "Banned IP list"

Une liste vide signifie qu'aucune adresse IP n'est bloquée. C'est normal sur un serveur bien sécurisé.

Problèmes fréquents

Fail2Ban ne démarre pas après une modification de configuration

Vérifiez la configuration pour détecter les erreurs de syntaxe :

sudo fail2ban-client -t

Cela teste tous les fichiers de configuration et affiche les éventuelles erreurs. Cause fréquente : une section `[DEFAULT]` manquante ou un format `bantime` invalide.

Les adresses IP ne sont pas bloquées malgré les tentatives échouées

Vérifiez que le bon fichier journal est suivi. Sur les systèmes avec systemd-journald, vous devrez peut-être adapter la jail :

[sshd]
backend = systemd

Testez ensuite si les lignes du journal sont reconnues :

sudo fail2ban-regex systemd[sshd] 'sshd.*Failed password'

Fail2Ban bloque des utilisateurs légitimes

Augmentez `maxretry` ou diminuez `findtime` dans `jail.local`. Vous pouvez aussi définir une liste blanche :

[DEFAULT]
ignoreip = 127.0.0.1/8 192.168.1.0/24

Cela empêche que les adresses IP de ces plages soient bloquées. Attention : `ignoreip` s'applique à toutes les jails. Le serveur lui-même tourne rarement en root, ce qui limite l'impact d'une vulnérabilité dans Fail2Ban — mais une configuration `ignoreip` erronée peut exclure tout un sous-réseau de la sécurité.

Fail2Ban lit les fichiers journaux comme `/var/log/auth.log` et active les règles de pare-feu via `fail2ban-server`, tandis que `fail2ban-client` offre l'interface de configuration via une connexion socket. Cette séparation entre serveur et client maintient le système stable, mais signifie aussi que vous devez toujours vérifier les deux processus lorsque vous apportez des modifications — un serveur qui tourne avec une configuration obsolète est tout aussi dangereux qu'un serveur qui ne tourne pas.

← Retour à la base de connaissances
← Terug naar kennisbank