Posséder son propre serveur présente de nombreux avantages mais implique également de grandes res­pon­sa­bi­li­tés ainsi que des contrôles réguliers. Si vous ne voulez pas qu’un tiers accède à votre serveur sans votre au­to­ri­sa­tion, il vous faut alors prêter une attention par­ti­cu­lière à sa sécurité. Les cy­ber­cri­mi­nels ont maintes raisons d’attaquer un serveur et chaque attaque réussie présente gé­né­ra­le­ment un gros risque pour un ad­mi­nis­tra­teur.

Qu’est-ce que Fail2ban ?

Fail2ban, le logiciel libre de sécurité développé en langage Python (lit­té­ra­le­ment « un échec de tentative entraîne une in­ter­dic­tion » ) est un module de serveur Web que l’on peut utiliser sur les systèmes Linux et POSIX ac­com­pag­nés soit de pare-feu soit de filtres de paquets. Fail2ban com­mu­nique dans les fichiers de logs les adresses IP po­ten­tiel­le­ment suspectes : par exemple, au cas où ces adresses essayent à plusieurs reprises de s’iden­ti­fier sur un compte email avec de mauvais iden­ti­fiants. Un certain nombre de ten­ta­tives échouées entraîne ensuite au­to­ma­ti­que­ment le blocage de l’adresse IP pendant une période préa­la­ble­ment pro­gram­mée. Par ailleurs, l’ad­mi­nis­tra­teur a la pos­si­bi­lité de con­fi­gu­rer Fail2ban de sorte que chaque adresse IP suspecte lui soit com­mu­ni­quée par email.

Par défaut, un Fail2ban contient toute une gamme de filtres tels que pour Apache, Postfix ou Courier Mail Server qui peuvent être reconnues grâce à une séquence par­ti­cu­lière de ca­rac­tères dans les fichiers de logs. Les filtres peuvent en­clen­cher des actions : il s’agit de commandes pa­ra­mé­trées pour une période définie. La com­bi­nai­son d’un filtre et d’une action, par exemple le blocage d’une adresse IP grâce à Fail2ban, est nommée prison (jail). Il est possible de pro­gram­mer ces prisons avec Fail2ban via n’importe quel logiciel pouvant créer des fichiers de logs. Etant donné que Fail2ban est un framework open source bé­né­fi­ciant de la licence GPL2 (Licence publique générale), il peut être utilisé et étendu gra­tui­te­ment.

Fail2ban : ins­tal­la­tion et con­fi­gu­ra­tion

Avant d’installer et de con­fi­gu­rer Fail2ban, il est important de s’assurer que vous disposiez d’au moins la version 2.4 2.4 de Python sur votre système d’ex­ploi­ta­tion. Nous vous re­com­man­dons les pare-feu suivants comme outils de con­fi­gu­ra­tion : iptables, Shorewall et TCP Wrappers. Vous trouverez ici des in­di­ca­tions sur la con­fi­gu­ra­tion ainsi que sur l’uti­li­sa­tion de Fail2ban sur Debian et Ubuntu : 

  1. Commencez par l’ins­tal­la­tion de Fail2ban en sai­sis­sant la commande suivante :

    sudo apt-get install fail2ban

  2. Après avoir fini l’ins­tal­la­tion, vous trouverez le framework dans le ré­per­toire /etc/fail2ban. Il est conseillé de copier par pré­cau­tion le fichier de con­fi­gu­ra­tion jail.conf lo­ca­le­ment en tant que jail.local afin de protéger les réglages face aux mises à jour. Voici les deux saisies de commandes né­ces­saires :

    cd /etc/fail2ban</pre><pre>
    sudo cp jail.conf jail.local

  3. Démarrez Fail2ban avec la commande suivante :

    sudo service fail2ban start

  4. Dans le fichier de con­fi­gu­ra­tion, vous pouvez activer et dé­sac­ti­ver les règles déjà formulées ainsi qu’adapter vos pa­ra­mètres. Par ailleurs, il est possible d’ajouter des prisons per­son­na­li­sées. Voici comment con­fi­gu­rer les pa­ra­mètres de ces prisons :

    Enabled : active (true) ou désactive (false) la règle
    Filter : nom du filtre provenant du fichier /etc/fail2ban/filter.d
    Port : donnée du port (ex : SSH, HTTP, HTTPS)
    Logpath : chemin d’accès vers le fichier de logs qui doit être trié
    Maxretry : nombre maximal de ten­ta­tives échouées
    Findtime : période en secondes pendant laquelle les IPs sus­pi­cieuses sont re­cher­chées
    Bantime : période en secondes pendant laquelle une IP est bloquée

  5. Si vous avez procédé à des chan­ge­ments dans les pa­ra­mètres, chargez Fail2ban à nouveau :

    sudo service fail2ban reload

  6. Les résultats de son éva­lua­tion en­re­gistrent Fail2ban dans un fichier log séparé que vous pouvez charger de la façon suivante :

    tail -100f /var/log/fail2ban.log

  7. Afin de fermer le framework de sécurité, procédez à la saisie suivante :

    sudo service fail2ban stop

Efficace aussi contre les bots et les scripts

Il est possible de con­fi­gu­rer Fail2ban partout où les fichiers de logs sont triés par des filtres, ce qui entraîne une pléthore de pos­si­bi­li­tés d’uti­li­sa­tion pour ce framework de sécurité. Pour illustrer notre propos, nous pouvons citer le plugin de WordPress Antispam Bee, qui permet d’iden­ti­fier des com­men­taires spams dans les blogs de la pla­te­forme. Vous pouvez cocher la case « marquer comme spam et ne pas supprimer » afin d’ac­com­pag­ner les pu­bli­ca­tions des spammeurs du code d’erreur 403. Les adresses IP, les messages ainsi que les séquences d’erreurs ap­pa­rais­sent par la suite dans le fichier de logs de WordPress (access.log). Grâce à une prison (Jail) qui scanne une saisie du log dans le code d’erreur, vous avez la pos­si­bi­lité d’in­ter­cep­ter des spams sur le serveur.

En revanche, Fail2ban ne protège pas seulement WordPress des spams mais aussi des au­then­ti­fi­ca­tions non au­to­ri­sées. Par extension, le statut 403 peut être donné en réponse à plusieurs ten­ta­tives échouées d’au­then­ti­fi­ca­tion. Cela décourage di­rec­te­ment les bots et les scripts afin qu’ils arrêtent tout de suite leurs activités. Par ailleurs, l’extension permet également, grâce à des règles pro­gram­mées de Fail2ban, de choisir la technique de blocage.

Fail2ban : un framework de sécurité

En s’opposant aux bots, scripts et autres attaques de hackers, Fail2ban met à la dis­po­si­tion de l’ad­mi­nis­tra­teur du serveur une pro­tec­tion flexible et efficace. Ce framework permet non seulement de vérifier les fichiers de logs ainsi que les modèles sus­pi­cieux mais bloque aussi les adresses IP cor­res­pon­dantes de manières pro­vi­soire ou per­ma­nente. Le pa­ra­mé­trage de Fail2ban revient à l’uti­li­sa­teur qui pourra ainsi décider des services à vérifier. Il lui ap­par­tient aussi de bloquer ou de débloquer une adresse IP de son choix.

S’il est bien configuré, Fail2ban constitue un com­plé­ment important pour la sécurité d’un serveur. Cependant, il ne rem­pla­cera jamais à lui seul les mesures de pro­tec­tion tra­di­tion­nelles telles que les logiciels antivirus, les struc­tures de sau­ve­garde bien pro­gram­mée ou les codages et les sé­cu­ri­sa­tions de mots de passe. Ces outils se com­plè­tent et ne sont efficaces contre des attaques im­por­tantes et fré­quentes que s’ils sont mis ensembles.

Aller au menu principal