Installer et configurer Fail2Ban
Fail2ban est un outil très utile pour protéger vos serveurs contre les attaques par force brute en surveillant les fichiers journaux de services comme SSH, Apache, Nginx, etc. Il détecte les tentatives de connexion suspectes et bloque les IP des attaquants.
sudo apt install fail2ban
sudo apt install rsyslogFail2ban est configuré à l’aide de fichiers situés dans le répertoire /etc/fail2ban/. Les deux fichiers principaux sont :
/etc/fail2ban/jail.conf : Le fichier de configuration principal.
/etc/fail2ban/jail.local : Un fichier où vous pouvez personnaliser votre configuration sans modifier le fichier original jail.conf.
Ne modifiez jamais directement jail.conf car ce fichier peut être remplacé lors des mises à jour. Il est préférable d’utiliser jail.local pour vos configurations personnalisées.
Vous pouvez créer le fichier /etc/fail2ban/jail.local en copiant le fichier jail.conf :
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localOn va maintenant pouvoir l’éditer, de nombreux paramètres vont permettre la configuration de notre Fail2Ban
sudo vim /etc/fail2ban/jail.localOn retrouve à partir de la ligne 100 la durée pendant laquelle une IP sera bannie,
le temps pendant lequel Fail2ban doit détecter les échecs de connexion avant d’agir
et le nombre de tentatives autorisées
sudo sed -n '100,109p' jail.local
# "bantime" is the number of seconds that a host is banned.
bantime = 10m
# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 10m
# "maxretry" is the number of failures before a host get banned.
maxretry = 5Nous pouvons aussi configurer un jail spécifique pour différents services, comme ssh dans /etc/fail2ban/jail.d où on va créer le fichier sshd.conf
vim sshd.conf
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h
findtime = 600Après avoir modifié la configuration, redémarrez Fail2ban pour appliquer les changements
sudo systemctl restart fail2banVérifier les jails actives avec
sudo fail2ban-client status
Status
|- Number of jail: 1
- Jail list: sshd