Tutoriel | Protégez votre serveur avec fail2ban

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 🙂