Ce que fait ce module #
fail2ban est le gardien qui surveille les journaux de votre serveur et qui, lorsqu'il détecte des tentatives d'accès malveillantes (par exemple, de nombreux échecs de mot de passe en SSH), bannit automatiquement l'IP coupable pendant un certain temps. Chaque service surveillé est organisé dans une jail (par exemple sshd).
Le module fail2ban vous donne le contrôle de ces bannissements à l'exécution, sans avoir à mémoriser la syntaxe de fail2ban-client : consultez l'état des jails, listez qui est banni, vérifiez si une IP précise est bloquée, bannissez ou débannissez à la main, débloquez tout d'un coup en cas d'urgence et rechargez la configuration après un changement.
Ce module agit sur un fail2ban déjà installé et en fonctionnement. Toutes les sous-commandes consultent ou modifient l'état du service, elles nécessitent donc des privilèges root (utilisez sudo). Si vous vous êtes retrouvé bloqué par votre propre IP, passez directement au déblocage d'urgence.
Tâches courantes #
Choisissez ce que vous voulez faire. Chaque recette fournit la commande déjà écrite — il suffit de remplacer l'IP ou la jail par les vôtres, puis de cliquer sur Copier.
1
Voir l'état et les jails
Vérifiez d'un coup d'œil si fail2ban est actif et combien d'IP sont bannies.
Connectez-vous en SSH à votre serveur avec l'utilisateur ubuntu et demandez l'état général :
$ sudo imaxe fail2ban statusVous le voulez dans un format lisible par machine, pour un script ou un tableau de bord ? Ajoutez --json :
$ sudo imaxe fail2ban status --jsonsshd) et le nombre d'IP bannies dans chacune.2
Voir quelles IP sont bannies
Listez les bannissements actifs, de toutes les jails ou d'une seule.
Toutes les IP bannies, de toutes les jails à la fois :
$ sudo imaxe fail2ban bannedSeule une jail vous intéresse ? Indiquez-la en argument :
$ sudo imaxe fail2ban banned sshd3
Vérifier si une IP est bannie
Découvrez dans quelles jails une adresse précise est bloquée.
Interrogez directement l'IP ; on vous indiquera dans quelles jails elle apparaît bannie :
$ sudo imaxe fail2ban check 203.0.113.74
Bannir ou débannir une IP
Bloquez à la main une adresse abusive ou libérez un utilisateur légitime.
Bannissez une IP dans une jail précise (s'il n'y a qu'une seule jail, elle est déduite automatiquement) :
$ sudo imaxe fail2ban ban 203.0.113.7 --jail sshdVous avez banni quelqu'un de légitime ? Débannissez-le de toutes les jails d'un coup :
$ sudo imaxe fail2ban unban 203.0.113.7imaxe fail2ban check sur cette même IP.5
Tout débloquer (urgence)
Vous êtes bloqué à l'extérieur : libérez toutes les IP de toutes les jails.
Si votre propre IP s'est retrouvée piégée et que vous devez récupérer l'accès sur-le-champ, débannissez-les toutes. Ajoutez --yes pour sauter la confirmation :
$ sudo imaxe fail2ban unban-all --yesAprès un changement dans la configuration des jails, rechargez-la pour qu'elle s'applique :
$ sudo imaxe fail2ban reloadunban-allC'est une opération destructive des bannissements : elle laisse toutes les IP débloquées, y compris les malveillantes. Utilisez-la uniquement pour récupérer l'accès en cas d'urgence et vérifiez ensuite l'état avec imaxe fail2ban status.
Synopsis #
imaxe fail2ban <subcomando> [<ip>|<jail>] [--jail JAIL] [flags]Toutes les sous-commandes nécessitent des privilèges root (utilisez sudo) car elles consultent ou modifient l'état de fail2ban via fail2ban-client. Ajoutez --json à status, banned ou check pour obtenir une sortie lisible par machine, adaptée au scripting.
Sous-commandes #
| Sous-commande | Rôle | Flags pertinents |
|---|---|---|
| status | État de fail2ban : actif, jails et nombre d'IP bannies par jail. | --json |
| banned | Liste les IP bannies (toutes les jails ou une seule). | --json |
| check | Indique dans quelles jails une IP est bannie. | --json |
| ban | Bannit manuellement une IP dans une jail. | --jail |
| unban | Débannit une IP de toutes les jails. | — |
| unban-all | URGENCE : débannit TOUTES les IP de toutes les jails. | --yes |
| reload | Recharge la configuration de fail2ban (valide jail.local). | — |
Arguments et flags #
| Argument / Flag | Type | Par défaut | Description |
|---|---|---|---|
| <ip> req. | string | — | L'IP sur laquelle opérer. Obligatoire pour check, ban et unban. |
| <jail> | string | toutes | Dans banned, jail précise à lister. Sans argument, toutes les jails sont listées. |
| --jail | string | auto | Dans ban, jail de destination du bannissement. S'il n'y a qu'une seule jail, elle est déduite automatiquement. |
| --yes | bool | false | Dans unban-all, confirme sans demander (opération destructive des bannissements). |
| --json | bool | false | Dans status/banned/check, émet le résultat en JSON sur stdout. |
Fichiers et chemins #
| Chemin | Contenu |
|---|---|
| /etc/fail2ban/jail.local | Configuration locale de fail2ban : jails actives, durées de bannissement et seuils. Ce que valide reload. |
| /var/run/fail2ban/fail2ban.sock | Socket de contrôle par lequel fail2ban-client dialogue avec le service. |
| /var/log/fail2ban.log | Journal de fail2ban lui-même : bannissements, débannissements et rechargements. |
Codes de sortie et logs #
Chaque exécution renvoie un code que vous pouvez vérifier avec echo $? — utile pour l'enchaîner dans des scripts :
Suivez le log en direct pendant que vous déboguez :
$ sudo journalctl -u fail2ban -f
$ sudo tail -f /var/log/fail2ban.logRésolution des problèmes #
| Symptôme | Cause probable | Solution |
|---|---|---|
| Sort SERVICE (code 3) | fail2ban est arrêté ou le socket ne répond pas. | Démarrez le service avec systemctl start fail2ban et réessayez. |
| Sort JAIL (code 4) | La jail de --jail n'existe pas ou il y en a plusieurs et elle ne peut être déduite. | Consultez les jails avec imaxe fail2ban status et indiquez la bonne dans --jail. |
| Sort RELOAD (code 5) | Il y a une erreur de syntaxe dans jail.local. | Corrigez /etc/fail2ban/jail.local et relancez reload. |
| Je me suis retrouvé bloqué en SSH | Votre propre IP a accumulé des échecs et s'est retrouvée bannie dans sshd. | Depuis une autre voie, débannissez-la avec unban ou libérez-les toutes avec unban-all --yes. |
Bloqué sur le module Fail2ban ?
Écrivez-nous avec la sortie de « imaxe <module> status --json » et nous vous répondons rapidement.