Article publiée le 6 Décembre 2015
Fail2ban est un outil développé en Python.Cette outil vous permettra de parser vos logs à la recherche de tentatives d’attaques brut force ou DOS et de bloquer au bout d’un certain nombre d’essais l’IP concernée. Fail2ban fonctionne avec tout les services courants: ssh, apache, etc…
1) Installation
Sous Debian :apt-get install fail2ban
Sous RedHat/Centos: Fail2ban n’est pas disponible via les dépôts officiels. Vous devez ajouter les dépots EPEL pour pouvoir l’installer via yum:
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm && rpm -ivh epel-release-7*.rpm && yum install fail2ban
2) Configuration
Pour notre exemple de configuration nous allons sécuriser notre service SSH avec fail2ban:
- Éditez le fichier /etc/fail2ban/jail.conf:
Ce fichier permet de paramétrer le comportement de fail2ban par rapport à un service donnée.
Dans notre cas nous allons bloquer au bout de 3 essais les tentatives de connexions infructueuses via SSH à notre machine:
Explications:
enabled: active ou non la protection
port: Le protocole concerné
filter: indique le nom du filtre qui va parser (mots ou suite de mots qui seront recherché) les logs
logpath: indique le chemin de la log à parser:
maxretry: le nombre maximums d’essais.
Il ne reste plus qu’à redémarrer le service fail2ban: service fail2ban restart
3) Autre configurations
Pour ignorer une IP (non soumis aux blocages de fail2ban):
- Editez le fichier jail.conf et ajouter les IP ou les plages d’adresses IP dans la partie « ignoreip = »
Pour paramétrer le temps de bannissement
- Éditez le fichier jail.conf et indiquez le temps de bannissement avec le paramètre « bantime »
Pour ajouter ou configurer des parsers de logs (filter):
- Vous pouvez ajouter ou modifier des parsers de logs grâce aux fichiers de configuration situés dans le répertoire /etc/fail2ban/filter.d
Si nous ouvrons sshd.conf nous pourrons voir la configuration du parser:
Enjoy 🙂