Protéger les accès SSH avec fail2ban

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 :

bruteforcessh

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é.

installfail2ban

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.

installinitrd

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 :

jaillocal

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 :

running2

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.