Fail2ban est un logiciel qui lit différents fichiers de logs (apache,ssh,cyrus-imap,…) et qui permet d’exécuter des actions en conséquence (envoi de mail, blocage via iptables, …).
En regardant d’un peu plus prêt les logs sur une machine dont le port ssh est ouvert, on remarque :
Ce sont des tentatives d’intrusion. Nous allons utiliser le logiciel fail2ban pour bloquer ce genre de tentatives.
L’installation (sous Ubuntu depuis les sources) se fait de manière très simple. Les pré-requis sont d’avoir python & gamin d’installé.
Il suffit de décompresser l’archive et ensuite de lancer la commande ./setup.py install
Une fois l’installation effectuée, il reste à copier un script de lancement présent dans le répertoire files du répertoire des sources. Il existe plusieurs scripts adaptés à différentes distributions ainsi que des plugins nagios.
Le fichier utilisé sera redhat-initd qui s’adapte facilement pour ubuntu, moyennant quelques légères modifications.
Effectuez ensuite les actions nécessaires pour que ce script soit lancé au démarrage de la machine en fonction de votre distribution.
Nous allons ensuite définir les jails, c’est a dire la configuration des services à surveiller.
Les fichiers de configuration se trouvent dans /etc/fail2ban. Ce derniers contient deux répertoires : filter.d qui défini les regexp a rechercher dans les fichiers de log et action.d qui défini les actions à effectuer en cas de dépassement du nombre d’échecs autorisés.
Le répertoire /etc/fail2ban contient aussi deux fichiers de configuration : fail2ban.conf et jail.conf.
Conformément à la documentation officielle, il est préférable de travailler dans les fichiers fail2ban.local et jail.local qui écrasent les paramètres par défaut définis dans fail2ban.conf et jail.conf.
Voici donc le contenu de mon fichier jail.local :
On défini un jail ssh-iptable. On regarde le nombre d’échecs successifs dans le fichier /var/log/auth.log grâce au filtre sshd (présent dans filter.d). Si le nombre d’échecs est supérieur à 5 durant une période de 180s, alors l’adresse IP est bannie durant 600s.
Il suffit ensuite de lancer fail2ban et de tracer le fichier /var/log/fail2ban.log :
That’s it …
Ceci n’est qu’une courte démonstration des possibilités du logiciel fail2ban, pour plus d’informations, vous pouvez lire la documentation officielle