Fail2ban-client est une commande incluse dans le paquet fail2ban afin de gérer ce dernier.
Vous pouvez bannir, débannir une adresse IP, vérifiez le fonctionnement d’un jail/prisons et bien d’autres actions.
Dans ce tutoriel, nous allons voir les principales utilisations de la commande fail2ban-client avec des exemples.

Table des matières
- 1 Fail2ban-client : utiliser la commande pour administrer fail2ban
- 1.1 Lister les prisons
- 1.2 Vérifier la configuration d’une prison
- 1.3 Bannir une adresse IP
- 1.4 Lister les adresses IP bannies
- 1.5 Débannir une adresse IP
- 1.6 Débannir toutes les adresses IP
- 1.7 Afficher la configuration d’une prison (jail)
- 1.8 Modifier la configuration générale d’un Jail
- 1.9 Modifier les actions d’un jail
- 1.10 Interroger la configuration d’un jail
- 1.11 Redémarrez fail2ban
- 2 Liens
Fail2ban-client : utiliser la commande pour administrer fail2ban
Lister les prisons
Tout d’abord, vous pouvez afficher la liste des jails de fail2ban avec Fail2ban avec l’option status :
sudo fail2ban-client status
Status
|- Number of jail: 4
`- Jail list: ban1day, nginx-limit-req, ssh-reflection, sshd
Le nombre de prisons (jail) s’affichent avec la liste. Ici nous en avons 4, il faut bien vérifier que sshd est présent.
Vérifier la configuration d’une prison
Lorsque vous spécifiez le nom d’un jail dans status, on obtient des informations supplémentaires sur ce dernier.
Par exemple les journaux Linux qui sont parcourus par fail2ban et les actions avec le nombre total d’IP bannies et la liste quand celle-ci est courte.
sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 8
| |- Total failed: 2134
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 0
|- Total banned: 223
`- Banned IP list:
Par exemple, ici nous avons eu 2134 tentatives de connexion au service SSH et 223 adresses IP sont bannies depuis le lancement de fail2ban.
Bannir une adresse IP
Pour bannir une adresse IP dans une prison (jail), on utilise la commande banip de cette manière :
fail2ban-client set <JAIL> banip <IP>
Par exemple pour bannir l’adresse IP 1.1.1.1 dans la jail ssh :
fail2ban-client set sshd banip 1.1.1.1
Si cela réussi, cela retourne 1 sinon 0.
Lister les adresses IP bannies
Pour lister l’intégralité des adresses IP dans les différents jail de fail2ban :
fail2ban-client banned
[{'sshd': ['1.1.1.1', '126.77.170.137', '179.43.187.37', '116.105.164.98', '59.29.227.55', '176.111.173.238']}, {'nginx-limit-req': []}, {'ban1day': []}, {'ssh-reflection': ['180.253.92.146', '221.131.165.56', '185.220.103.4', '162.247.72.199', '23.154.177.5', '185.100.87.202', '151.115.60.113', '162.247.74.27', '185.220.103.8', '107.189.14.165', '45.153.160.2', '91.132.147.168', '23.129.64.130', '216.186.250.53', '171.25.193.25', '162.247.74.200', '198.98.62.74', '62.102.148.69', '198.98.60.97', '103.167.53.253', '101.96.76.241']}]
Si vous désirez afficher que les adresses IP bannies sur un jail en particulier :
fail2ban-client get sshd banned
['126.77.170.137', '179.43.187.37', '116.105.164.98', '59.29.227.55', '176.111.173.238']
Débannir une adresse IP
Pour retirer une adresse IP d’une prison, on utilise la commande unbanip :
fail2ban-client set <JAIL> unbanip <IP>
Ainsi, par exemple pour retirer l’adresse IP 1.1.1.1. de la prison sshd :
fail2ban-client set sshd unbanip 1.1.1.1
Débannir toutes les adresses IP
Il est aussi possible de supprimer l’intégralité des adresses IP bannies sur fail2ban.
Pour cela, on utilise l’option unban avec l’option –all :
sudo fail2ban-client unban --all
Afficher la configuration d’une prison (jail)
L’option -d permet de faire un dump de la configuration.
Vous obtenez alors la configuration complète de fail2ban :
fail2ban-client -d
On peut utiliser grep pour filtrer la sortie et ne lister qu’une prison en particulier, par exemple pour sshd :
fail2ban-client -d|grep "'sshd', "
Enfin un pour une sortie en mode “human readable”, utilisez l’option –dp :
fail2ban-client --dp
Enfin pour lister les fichiers de configuration, passez en mode verbose avec l’option -v :
fail2ban-client --dp -v
Modifier la configuration générale d’un Jail
fail2ban-client permet aussi de modifier la configuration des prisons de fail2ban grâce à la commande set.
On indique alors la prison avec <JAIL> et la configuration et parfois la valeur nécessaire.
Commandes | Description |
set <JAIL>idle on|off | Définit l’état de ralenti de <JAIL> |
set <JAIL> ignoreself true|false | Permet d’ignorer la propre adresse IP adresses pour <JAIL> |
set <JAIL> addignoreip | Ajouter une ip dans la liste des ignore pour <JAIL> |
set <JAIL> delignoreip | Supprimer une IP de la liste des ignore de <JAIL> |
set <JAIL> ignorecommand | Définit ignorecommand pour <JAIL> |
set <JAIL> ignorecache | Définit ignorecache pour <JAIL> |
set <JAIL> addlogpath <FILE>[‘tail’] | Ajoute à la liste de surveillance de, éventuellement à partir de la “queue” (tail) du fichier (par défaut ‘head’). |
set <JAIL> dellogpath | Supprime de la liste de surveillance <JAIL> |
set <JAIL> logencoding | Définit le journal fichiers pour <JAIL> |
set <JAIL> addjournalmatch <MATCH> | Ajoute <MATCH>au filtre de journal de <JAIL> |
set <JAIL> deljournalmatch <MATCH> | Supprime <MATCH> du journal <JAIL> filtrer |
set <JAIL> addfailregex <REGEX> | Ajoute l’expression régulière <REGEX> qui doit correspondre aux échecs pour <JAIL> |
set <JAIL> delfailregex <REGEX> | Supprime l’expression régulière <REGEX> à <JAIL> |
set <JAIL> addignoreregex <REGEX> | Ajoute l’expression régulière <REGEX> qui devrait correspondre modèle exclure pour <JAIL> |
set <JAIL> delignoreregex <REGEX> | Supprime l’expression régulière <REGEX> à <JAIL> |
set <JAIL> ignoreregex | Obtient la liste des expressions régulières |
set <JAIL> findtime <TIME> | Définit <TIME> le nombre de secondes pour lequel le filtre cherchera de retour pour <JAIL> |
set <JAIL> bantime <TIME> | Définit <TIME> le nombre de secondes un hôte sera banni pour <JAIL> |
set <JAIL> datepattern <PATTERN> | Définit le pattern <PATTERN> pour les correspondances à utiliser pour <JAIL> |
set <JAIL> usedns | Définit le mode usedns utilisé pour <JAIL> |
set <JAIL> <IP> attempt [ … ] | Notifier manuellement sur l’échec de <IP> |
set <JAIL> banip <IP> | Ban une adresse IP <IP> |
set <JAIL> unbanip <IP> [–report-absent] | Débannir une adresse IP <IP> |
set <JAIL> maxretry | Définit le nombre d’échecs Avant d’interdire l’hôte pour |
set <JAIL> maxlines | Définit le nombre de pour tampon pour la recherche de regex de |
Modifier les actions d’un jail
En suivant le même principe, on peut aussi modifier la configuration des actions d’un Jail.
Commandes | Description |
set <JAIL> addaction <ACT> | Ajoute une nouvelle action nommée <ACT> pour <JAIL> |
set <JAIL> delaction <ACT> | Supprime l’action <ACT> de <JAIL> |
set <JAIL> action <ACT> actionstart <CMD> | Définit la commande <CMD> pour l’action de démarrage<ACT> pour <JAIL> |
set <JAIL> action <ACT> actionstop <CMD> | Définit la commande <CMD> pour l’action d’arrêt <ACT> pour <JAIL> |
set <JAIL> action <ACT> actioncheck <CMD> | Définit la commande <CMD> pour l’action de vérification <ACT> pour <JAIL> |
set <JAIL> action <ACT> actionban <CMD> | Définit la commande <CMD> pour l’action de ban <ACT> pour <JAIL> |
set <JAIL> action <ACT> actionunban <CMD> | Définit la commande <CMD> pour l’action de déban <ACT> pour <JAIL> |
set <JAIL> action <ACT> timeout <TIMEOUT> | Définit la commande <CMD> pour l’action timeout <ACT> pour <JAIL> |
set <JAIL> action <ACT> <PROPERTY> <VALUE> | sets the of for the action for Définit la valeur <VALUE> de la propriété <PROPERTY> de l’action <ACT> pour <JAIL> |
set <JAIL> action <ACT> <METHOD>[ <JSONKWARGS>] calls the <METHOD> with <JSONKWARGS> for the action <ACT> for <JAIL> | Appel <METHOD> avec <JSONKWARGS> pour l’action <ACT> de <JAIL> |
Interroger la configuration d’un jail
Il est tout à fait possible d’afficher la configuration fail2ban avec la commande fail2ban-client.
Pour cela, on utilise l’option GET qui reprend la plupart des options disponibles dans le premier tableau.
Par exemple pour connaître le délai de ban du jail sshd :
fail2ban-client get sshd bantime
216000
Redémarrez fail2ban
fail2ban-client permet aussi de relancer le service fail2ban avec un fonctionnement similaire à systemctl.
Pour recharger la configuration, utilisez la commande reload comme ceci :
sudo fail2ban-client reload
Pour relancer le service fail2ban :
sudo fail2ban-client restart