Protéger son serveur web des attaques avec Fail2ban

Posséder son propre serveur est aujourd’hui une chose relativement simple à faire, d’un simple clic et pour quelques euros par mois on peut disposer d’un espace sur internet. VPS, serveur Web, serveur dédié… Mais avez-vous pensé à le protéger des attaques ? Bruteforce de vos comptes, SPAMS, DDOS… si ce n’est pas le cas, il n’est pas trop tard ! La solution se nomme Fail2ban et s’installe facilement et rapidement sur une machine. Comment faire ? A quoi sert exactement Fail2ban ? Suivez ce tuto !

C’est en naviguant dans le guide de 1&1 que je suis tombé sur cet article qui explique l’utilité de Fail2ban sur un serveur, je me suis donc dit qu’il serait bien que je partage ça avec vous.

Qu’est-ce que Fail2ban ?

Fail2ban est un outil de sécurité développé en langage Python bénéficiant de la licence GPL2 (Licence publique générale). Il fonctionne via les fichiers de logs présents sur les serveurs en repérant les adresses IP potentiellement suspectes, par exemple : des tentatives à plusieurs reprises de s’identifier sur un compte. Un certain nombre de tentatives échouées entraînera automatiquement le blocage de l’adresse IP pendant une période préalablement programmée par vous.

Il est également possible de créer un système d’alerte, permettant d’envoyer automatiquement un email à l’administrateur en cas d'”attaque” détectée et bloquée.

Par défaut, Fail2ban contient une gamme de filtres pour fonctionner avec des services tels qu’Apache, Postfix ou Courier Mail Server qui peuvent être reconnus grâce à une séquence particulière de caractères (REGEX) dans les fichiers de logs. Ces filtres peuvent enclencher des actions : il s’agit de commandes paramétrées pour une période définie. La combinaison d’un filtre et d’une action, par exemple le blocage d’une adresse IP grâce à Fail2ban.

Fail2ban : installation et configuration

Avant d’installer et de configurer Fail2ban, il est important de s’assurer que vous disposiz d’au moins la version 2.4 2.4 de Python sur votre système d’exploitation.

Vous trouverez ici des indications sur la configuration ainsi que sur l’utilisation de Fail2ban sur Debian et Ubuntu :

Commencez par l’installation de Fail2ban en saisissant la commande suivante :

sudo apt-get install fail2ban

Après avoir fini l’installation, vous trouverez le framework dans le répertoire /etc/fail2ban. Par précaution, faites une copie du fichier de configuration jail.conf en tant que jail.local par exemple. Pour cela :

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

On démarre Fail2ban avec la commande suivante :

sudo service fail2ban start

Dans le fichier de configuration, vous pouvez activer et désactiver les règles déjà présentes mais aussi créer vos propres paramètres. Par ailleurs, il est possible d’ajouter des prisons personnalisées. Voici comment configurer les paramè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 tentatives échouées
Findtime : période en secondes pendant laquelle les IPs suspicieuses sont recherchées
Bantime : période en secondes pendant laquelle une IP est bloquée

Si vous avez fait des changements dans la configuration de Fail2ban, relancez le service :

sudo service fail2ban reload

Fail2ban et WordPress

Il est possible de configurer Fail2ban partout où les fichiers de logs sont triés par des filtres, ce qui offre énormément de possibilités d’utilisation pour ce framework de sécurité, notamment de fonctionner avec WordPress.

Le plugin de WordPress Antispam Bee permet d’identifier des commentaires spams dans les blogs de la plateforme. Vous pouvez cocher la case « marquer comme spam et ne pas supprimer » ainsi, cela va générer des fichiers de logs (erreur 403) dans WordPress (access.log)… et donc utilisable par Fail2ban grâce à une prison.

Fail2ban ne protège pas seulement WordPress des spams, il le fait aussi pour les authentifications non autorisées. En effet, le statut 403 des logs peut être donné en réponse à plusieurs tentatives échouées d’authentification.

Si vous souhaitez allez plus loin avec fail2ban, je vous invite à lire ce tuto pour créer vos propres règles fail2ban.

Fondateur de networkshare.fr, ce site me permet de publier tout ce que j'adore : des tests de produits, des tutoriels et des astuces ! Toujours en rapport avec le vaste monde high-tech... Le tout dans la bonne humeur !