Outils pour utilisateurs

Outils du site


fail2ban

Fail2ban

Afin de protéger au minimum un serveur d'attaques type Brute Force, j'ai décidé d'installer fail2ban. Cet article en détaille les étapes.

Installer Fail2ban et iptables

Fail2ban lit les fichiers de log et bannit les adresses IP qui ont obtenu un trop grand nombre d'échecs lors de l'authentification. Il met à jour les règles du pare-feu (iptables) pour rejeter ces adresses IP.

$ apt-get install fail2ban iptables

jail.conf : fichier de configuration par defaut

Chemin du fichier de configuration: /etc/fail2ban/jail.conf

Le serveur que je souhaite protégé n'est accessible qu'en ssh et fail2ban surveille par défaut le port 22 (ssh). Je n'est donc pas besoin d'éditer le fichier de config. Il y a, tout de même, quelques paramètres importants à modifier.

Personnaliser la configuration de fail2ban

Pour personnaliser la configuration de fail2ban il est nécessaire de créer un fichier nommé jail.local, qui sera appelé à la place de la configuration par défaut jail.conf.

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Bantime : Augmenter la durée de blocage

La première chose à faire est d'augmenter la durée du blocage. Pour cela il suffit de modifier la directive bantime du fichier jail.local. Par defaut il est de 600 secondes soit 10 minutes, il est donc impératif d'augmenter ce temps de blocage en passant par exemple à un blocage de 7 jours soit 604800 secondes.

# "bantime" is the number of seconds that a host is banned.
bantime  = 604800

Maxretry : Réduire le nombres de tentatives de connexion

La directive maxretry va, quand à elle, déterminer le nombres de tentatives de connexion avant bannissement de l'IP (5 par defaut).

# "maxretry" is the number of failures before a host get banned.
maxretry = 3

Findtime : Augmenter la période de prise en compte de maxretry

La directive findtime va déterminer la période pendant laquelle les tentatives de connexions (defini par maxtime) seront prises en compte.

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime  = 86400

Exemple pour maxretry = 3, findtime = 86400 et bantime = 604800

Si une adresse IP se trompe 3 fois en 1 journée (86400s) elle se fait bannir pendant 1 semaine (604800s).

Redémarrer fail2ban

$ sudo systemctl restart fail2ban

Vérifier la modification des règles d'ipatbles réalisée par fail2ban

$ sudo iptables -S | grep fail2ban

ou

$ sudo iptables -S | grep f2b

Afficher le nombre de règles:

$ iptables -S | grep f2b | wc -l

ref: wiki.debian-fr.xyz/Fail2ban - doc.ubuntu-fr.org/fail2ban - blog.garamotte.net/posts/2018/01/07/fr-limit-brute-force-attacks-on-the-ssh-service.html

Article créé le 22/07/2020

fail2ban.txt · Dernière modification: 2020/08/09 15:42 de steph