Fail2ban

Fiche logiciel validé
  • Création ou MAJ importante : 30/03/13
  • Correction mineure : 30/03/13
Mots-clés
Pour aller plus loin

Fail2ban : détecte les attaques en "force brute" et stoppe les adresses IP des attaquants

Description
Fonctionnalités générales

Fail2ban est un outil de sécurité informatique qui permet, à partir de l'exploitation des fichiers journaux ("logs"), de protéger un serveur en bloquant temporairement ou définitivement des adresses IP de machines à partir desquelles des attaques réseau ont été remarquées. De façon générale, fail2ban peut exploiter n'importe quel fichier de log, pour détecter par exemple de multiples tentatives de connexion, des soumissions d'url malveillante, etc ...

Lors de la détection d'une attaque ou d'une action malveillante, fail2ban est capable de mettre à jour dynamiquement les règles du pare-feu local du serveur pour bloquer pendant un temps donné les flux en provenance de l'adresse IP d'où provient l'attaque, mais il peut aussi exécuter, si nécessaire, n'importe quelle autre action.

La version 0.8.7 introduit la possibilité de traiter différemment les adresses IP qui se sont déjà faites bannir plusieurs fois.

Autres fonctionnalités

Fail2ban est très flexible et permet de surveiller un grand nombre de services système différents comme par exemple ssh, ftp, mail, web, ... Il suffit de disposer d'un fichier de log à analyser et de définir un "filtre" qui indique quelles sont les lignes qui correspondent a priori à une activité malveillante. Fail2ban est fourni par défaut avec de nombreux filtres prédéfinis pour repérer les attaques les plus fréquentes, notamment, sur des services standards.

Il est également très flexible par rapport à la conduite à tenir, qui est définie dans des fichiers "actions". Au delà d'un seuil configuré pour chaque service à surveiller, une action est exécutée. Fail2ban peut bloquer l'adresse IP de l'attaquant au moyen d'une configuration appropriée dans iptables, ou par les fichiers hosts.deny ou encore envoyer un mail ou remonter l'information à un système centralisé, etc.

Un certain nombre d'actions de base sont disponibles par défaut.

Contexte d'utilisation dans mon laboratoire/service

Fail2ban est utilisé sur la machine "sas" d'entrée du campus de Luminy. La plupart des services du campus ne sont autorisés de l'extérieur que depuis les machines sas. En rajoutant fail2ban, ces machines "sas" sont un peu plus sécurisées de manière, notamment, à éviter les attaques en force brute.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré
  • Fail2ban est disponible de base, entre autres, dans les dépôts Debian, Ubuntu, Fedora, Mandriva, OpenSUSE, FreeBSD. * Disponible via dépôt additionnel dans la plupart des autres distributions.
Plates-formes

Toute plateforme disposant du langage Python.

Logiciels connexes

Pour arrêter les tentatives d'intrusion en force brute, fail2ban utilise des logiciels de filtrage d'adresse IP comme :
- iptables
- netfilter

Autres logiciels aux fonctionnalités équivalentes

Denyhosts, dernière version en 2009

Environnement de développement
Type de structure associée au développement

Trois développeurs, plus de multiples contributeurs pour le maintien des paquetages.

Eléments de pérennité

Le projet est assez actif avec une nouvelle version tous les ans à peu près (non seulement des corrections de bugs, mais aussi de nouvelles fonctionnalités)

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)

Par défaut, l'action d'exclusion des adresses IP effectue une configuration des iptables. Dans le cas de machines virtuelles notamment sous openvz, iptables n'est utilisable que sur l'hôte. Si l'on souhaite gérer les exclusions dans les machines virtuelles, il faut utiliser l'action hostsdeny de fail2ban qui se base sur le fichier /etc/hosts.deny

Contributions

Commentaires

Utilisateurs institutionnels

Sans trop rentrer dans le détail, on pourrait mentionner qu'une certaine expérience en astrophysique utilise l'outil pour protéger ses serveurs web.
Je sais que c'est délicat de dévoiler des détails de protection sur un système. Mais est-ce qu'on ne pourrait pas donner quelques précisions du genre "En général, toutes les machines du labo X sont protégées par fail2ban pré-installé." ou "Moi Y, en tant qu'administrateur ai intégré l'installation de fail2ban dans toutes les machines de mon parc par défaut." ?