Fail2ban ou comment limiter l’attaque par brute-force/dictionnaire

Présentation

De nos jours, les attaques par brute-force sont monnaies courante au sein d’une infrastructure. Une attaque par brute-force consiste à essayer toutes les combinaisons de mots de passe possible afin de trouver le bon mot de passe à casser. Ce genre d’attaque prend souvent du temps mais reste très efficace :) .

Fail2ban

Fail2ban est un script fonctionnant avec iptables et qui permet de bloquer une adresse IP après plusieurs tentatives de connexions infructueuses.

Installation

[root@localhost ~]# wget http://sourceforge.net/projects/fail2ban/files/fail2ban-stable/fail2ban-0.8.4/fail2ban-0.8.4.tar.bz2/download
[root@localhost ~]# tar xvf fail2ban-0.8.4.tar.bz2
[root@localhost ~]# cd fail2ban-0.8.4
[root@localhost ~]# python setup.py install

Nous allons le configurer comme un service et le lancer au démarrage du serveur :

[root@localhost ~]# cp files/redhat-initd /etc/init.d/fail2ban
[root@localhost ~]# chkconfig –add fail2ban
[root@localhost ~]# chkconfig fail2ban on
[root@localhost ~]# service fail2ban start

Configuration globale
Le fichier de configuration de fail2ban se trouve ici : /etc/fail2ban/jail.conf. Pour l’éditer :

[root@localhost ~]# vim /etc/fail2ban/jail.conf

Quelques variables se trouvent dans ce fichier :

  • ignoreip : définit les adresses IP qui ne seront jamais bloquées par fail2ban
  • bantime : définit le nombre de secondes durant lequel fail2ban va empecher l’adresse IP incriminée de se connecter
  • maxretry : définit le nombre d’essais maximum avant de bloquer l’adresse IP

Configuration specifique

Nous allons maintenant activer fail2ban pour SSH, trouvez la ligne [ssh-iptables], juste en dessous trouvez enabled = false et remplacez par enabled = true.
Vous pouvez faire de même avec [proftpd-iptables] pour activer fail2ban pour votre serveur proftpd.

Dans ces sections vous trouverez sans doute dest=adresse@mail cela définit l’adresse mail qui sera contacté si jamais fail2ban bloque une adresse IP.

Comment fonctionne fail2ban ?

Fail2ban va parser les fichiers de logs de chaque service définit afin de définir quelles adresses IP ont été bloquées. Pour trouver ces adresses dans les fichiers de logs, il va utiliser une failregex définit dans le dossier /etc/fail2ban/filter.d/.

Chaque fichier de conf définit une failregex propre à chaque service. Le fichier de logs à parser est définit dans chaque catégorie de type [ssh-iptables] dans le fichier de configuration /etc/fail2ban/jail.conf, dans la variable : logpath.

Application des changements

Pour appliquer les changements de configuration, vous devez redémarrer le service fail2ban :

[root@localhost ~]# service fail2ban restart

Conclusion

Fail2ban est un script très performant, qui en plus d’être très fiable est très modulable suivant le service que vous utilisez. Nous pouvons souligner son incapacité à gérer les attaques de type ip-spoofing. Cependant, je le conseil à toutes les personnes désireuses de bien sécuriser leurs serveurs.

Et vous amis lecteurs, avez-vous déjà utilisé fail2ban ? Qu’en pensez-vous ? Souhaiteriez-vous l’implémenter ?

Vus : 1943
Publié par Lolokai : 77