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.
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
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.
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
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
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
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
Si une adresse IP se trompe 3 fois en 1 journée (86400s) elle se fait bannir pendant 1 semaine (604800s).
$ sudo systemctl restart 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