Installation#
Pour installer fail2ban, il suffit d’exécuter les commandes suivantes :
sudo apt update # Met à jour le gestionnaire de paquets
sudo apt install fail2ban # Installe fail2ban
systemctl start fail2ban # Démarre fail2ban
systemctl enable fail2ban # Ajoute fail2ban au démarrage automatique
systemctl status fail2ban # Affiche le statut de fail2ban
Si vous avez Active: failed avec les erreursERROR Failed during configuration: Have not found any log file for sshd jail
etERROR Async configuration of server failed
lors de l’affichage du status de fail2ban, vous devez apporter les corrections suivantes :
- Créer le fichier de configuration
jail.local:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Dans la section
[DEFAULT], changer la valeur de la directivebackendàsystemd - Dans la section
[sshd], ajouter une directiveenableavec la valeurtrue - Redémarrer
fail2banavec la commande suivante :
sudo systemctl restart fail2ban
Une fois le correctif appliqué et fail2ban redémarré, vous devriez avoir Active: active (running) lors de l’affichage du status.
Configuration#
Tous les changements de configurations doivent être faits dans le fichier jail.local.
Il n’est pas recommandé de les faire dans le fichier jail.conf car celui-ci peut être écrasé lors d’une mise à jour du paquet.
La directive ignoreip permet de définir les IP qui ne sont pas concernées par le contrôle.
ignoreip = 127.0.0.1 124.32.5.48
La directive findtime définit le temps depuis lequel une anomalie est recherchée dans les logs.
La durée peut être en secondes (s), en minutes (m) ou en heures (h).
findtime = 10m
La directive bantime définit la durée de bannissement d’une adresse IP.
La durée peut être en secondes (s), en minutes (m) ou en heures (h).
bantime = 24h
La directive maxretry définit le nombre maximum de tentatives de connexion avortées avant un bannissement.
maxretry = 5
La directive backend définit le système utilisé pour récupérer les logs.
Les options sont :
pyinotify(Nécessite d’avoirpyinotifyd’installé)gamin(Nécessite d’avoirgamind’installé)pollingauto(Essaiera d’utiliser les options ci-dessus dans l’ordrepyinotify,gamin,polling.)systemd
backend = systemd
Après avoir modifié le fichier de configuration, vous devez redémarrer fail2ban pour que les changements soient pris en compte.
sudo systemctl restart fail2ban
Informations sur les jails (prisons)#
Liste des jails :
sudo fail2ban-client status
Détail d’une jail :
sudo fail2ban-client status [NOM_PRISON]
Bannissement et débannissement manuel#
Bannir une IP :
fail2ban-client set [NOM_PRISON] banip [ADRESSE_IP]
Dé-bannir une IP :
fail2ban-client set [NOM_PRISON] unbanip [ADRESSE_IP]