Blog
7.2 Configuration de fail2ban[1]
Fail2ban a son principal fichier de configuration caché dans le fichier
/etc/fail2ban/jail.conf
Nous allons d’abord le copier dans un nouveau fichier afin de ne pas endommager le fichier original :
cd /etc/fail2ban
sudo cp jail.conf jail.local
Puis nous allons modifier le fichier jail.local :
sudo nano jail.local

Le fichier de configuration est constitué de lignes et de sections. Les sections sont entre crochets ; par exemple, « [DEFAULT] » est la section de paramètres par défaut. Ne pas confondre dans les premières lignes « # [DEFAULT] » qui n’est pas une section mais un commentaire !
Pour chercher la section « [DEFAULT] », dans nano, tapez Ctrl+W + [DEFAULT]
Cela vous amènera à la première ligne contenant « [DEFAULT] ». Si la ligne contient le signe « # », c’est que c’est un commentaire. Retapez sur Ctrl+W pour aller à l’occurrence suivante :

La section [DEFAULT] contient plusieurs paramètres. Vous les trouverez en utilisant votre curseur pour aller vers le bas : par exemple, le paramètre « bantime ». Il correspond au temps de bannissement d’un utilisateur frauduleux. Sa valeur par défaut est d’une heure (1h). Si on souhaite un temps de bannissement plus petit, il va falloir mettre une valeur différente en ajoutant une ligne, ou en décommentant la ligne (les lignes commentées commencent toutes par le signe « # »). Je vous conseille d’ajouter une ligne, cela vous permettra de garder une trace du fichier tel qu’il était initialement, et de commenter la valeur initiale en ajoutant « # » en début de ligne.
Pour mettre un temps de bannissement de 10 minutes, on ajoutera sous la ligne « # bantime = 1h », une nouvelle ligne comme suit :
bantime = 10m
En ce qui concerne notre serveur, nous voulons configurer plusieurs variables :
Nom de variable | Signification | Valeur |
Bantime | Durée de bannissement | 10m |
Findtime | Intervalle de recherche | 10m |
maxretry | Nombre d’échecs d’identification avant bannissement | 5 |
destemail | Destinataire de l’email envoyé en cas de bannissement d’un intrus | root@localhost |
Sender | Emetteur de l’email envoyé en cas de bannissement d’un intrus | root@localhost |
Mta | Logiciel utilisé pour l’envoi de mail | sendmail |
Vous devez donc, dans la section [DEFAULT] chercher tous les noms de variables et les mettre à la bonne valeur. Il se peut que les valeurs soient déjà les bonnes dans le fichier. Dans ce cas, pas besoin de les modifier !


Nous allons également ajouter une « action » supplémentaire qui sera réalisée par fail2ban : bannissement + envoi d’un email contenant un rapport whois + des lignes de log. Pour ce faire, vous allez rechercher la ligne « action = %(action_)s » dans le fichier, la commenter, et la remplacer par :
#action = %(action_)s
action = %(action_mw)s
« action_mw » est une action prédéfinie dans fail2ban :

Ensuite, vous allez rechercher la section « [sshd] » dans le fichier afin d’activer le bannissement pour les tentatives de connexion ssh frauduleuses. Il faudra mettre la valeur « enabled » dans cette section à « true » :

Nous en avons maintenant terminé avec la configuration de fail2ban pour le service ssh. Vous pouvez quitter l’éditeur de texte nano en ayant pris soin de sauvegarder le fichier ouver (Ctrl+O, puis Ctrl+X).
Il ne nous reste plus qu’à lancer le service fail2ban via la commande suivante :
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
On pourra verifier que le service est bien lancé via la commande vue plus haut :
systemctl status fail2ban.service
…qui affiche :

On constate que le service est « enabled » (en vert), et « running » (en vert au niveau de la ligne « Active »).
💡Bon à savoir :
· Vous pouvez avoir la liste des services actifs sur fail2ban via la commande :
sudo fail2ban-client status
· Et la liste des clients bannis pour ssh via la commande :
sudo fail2ban-client status sshd
