Autres

Configuration de Fail2ban pour protéger Apache contre les attaques DDOS

Apache est largement reconnu comme l’un des serveurs Web les plus répandus à l’échelle mondiale. Face à cette popularité, il est essentiel de mettre en place des mesures de sécurité robustes pour protéger les sites Web et leurs utilisateurs des menaces de type attaque DDoS. Fail2ban se présente comme une solution open source, conçue pour prévenir les intrusions en surveillant les journaux des différents services et en intervenant lorsqu’une menace est détectée.

Pourquoi utiliser Fail2ban ?

Fail2ban analyse les logs de services tels qu’Apache, SSH, et d’autres, pour identifier les tentatives d’accès malveillantes. Lorsqu’une adresse IP suspecte est reconnue – par exemple, suite à des échecs de connexion répétés – Fail2ban agit en configurant le pare-feu pour bloquer cette adresse. Cela contribue à réduire les risques de compromission de votre serveur en limitant les menaces potentielles.

Exigences nécessaires à la configuration

  • Un serveur exécutant Ubuntu 14.04, avec Apache préalablement installé.
  • Apache configuré pour exiger une authentification par mot de passe.

Procédure d’installation de Fail2ban

Avant toute chose, vérifiez que votre serveur Apache fonctionne correctement avec l’authentification par mot de passe. Pour installer Fail2ban, il suffit d’exécuter les commandes suivantes :

sudo apt-get update
sudo apt-get install fail2ban

Configuration de Fail2ban pour protéger Apache contre les attaques DDoS

Fail2ban utilise un fichier de configuration central, « jail.conf », situé dans le répertoire « /etc/fail2ban/ ». Il est conseillé de ne pas modifier ce fichier directement. Au lieu de cela, il faut créer un fichier « jail.local » pour ajouter vos personnalisations. Pour ce faire, exécutez cette commande :

sudo nano /etc/fail2ban/jail.local

Dans ce fichier, insérez le code suivant pour configurer les différentes prisons (jails) pour Apache :

[apache]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/*error.log
maxretry = 3
findtime = 600
ignoreip = 192.168.1.227

[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache2/*error.log
maxretry = 3
findtime = 600
ignoreip = 192.168.1.227

[apache-overflows]
enabled = true
port = http,https
filter = apache-overflows
logpath = /var/log/apache2/*error.log
maxretry = 2
findtime = 600
ignoreip = 192.168.1.227

[apache-badbots]
enabled = true
port = http,https
filter = apache-badbots
logpath = /var/log/apache2/*error.log
maxretry = 2
findtime = 600
ignoreip = 192.168.1.227

Enregistrez et fermez le fichier. Pour appliquer les modifications effectuées, redémarrez Fail2ban :

sudo service fail2ban restart

Pour vérifier si Fail2ban bloque correctement les adresses IP, vous pouvez exécuter la commande suivante :

sudo iptables -L

Compréhension des différentes jails et options

Chaque prison configurée avec Fail2ban a un rôles spécifique et est caractérisée par plusieurs options :

  • enabled : active ou désactive la protection pour ce service spécifique.
  • port : indique les ports que Fail2ban doit surveiller.
  • filter : référence le fichier contenant les critères de filtrage des logs.
  • logpath : spécifie l’emplacement des fichiers journaux à surveiller.
  • maxretry : le nombre maximal d’échecs de connexion avant qu’une adresse IP ne soit bannie.
  • ignoreip : permet de spécifier des adresses IP qui ne seront pas bloquées même en cas de tentatives infructueuses.
A lire :  Puis-je télécharger la version bêta d'iOS 13 ?

Vérification de la configuration de Fail2ban

Après avoir activé les prisons, vous pouvez contrôler l’état de Fail2ban avec la commande :

sudo fail2ban-client status

Cette commande affichera la liste des prisons activées sur votre système. Pour obtenir des informations détaillées sur une prison spécifique, telle que [apache], vous pouvez exécuter :

sudo fail2ban-client status apache

Test de fonctionnement de Fail2ban

Il est crucial de vérifier que Fail2ban fonctionne comme prévu. Pour ce faire, depuis une machine distante, accédez à votre site Web. Lors de l’invite de connexion, tentez de vous authentifier avec des mauvaises informations plusieurs fois. Après avoir atteint le nombre maximum de tentatives infructueuses, votre adresse IP devrait être bloquée. Pour valider cela, exécutez à nouveau :

sudo fail2ban-client status apache

Vous devriez voir votre adresse IP y figurer comme étant bannie.

FAQ

1. Quel est l’objectif principal de Fail2ban ?

Fail2ban est conçu pour protéger les serveurs contre les tentatives d’accès non autorisées en surveillant les fichiers journaux et en bloquant automatiquement les adresses IP suspects.

2. Est-ce que Fail2ban peut être utilisé avec d’autres services que Apache ?

Oui, Fail2ban prend en charge de nombreux services, y compris SSH, Postfix, et d’autres systèmes qui génèrent des fichiers journaux détectables.

3. Comment puis-je débloquer une adresse IP bannie ?

Pour débloquer une adresse IP, utilisez la commande suivante : sudo fail2ban-client set apache unbanip , en remplaçant par l’adresse que vous souhaitez débloquer.