Configuration Fail2Ban pour Nginx – bloquer les scanners et les tentatives d’exploitation sans bloquer l’administration WordPress

Ce guide présente une installation et une configuration complètes de Fail2Ban pour Nginx, conçues pour :

  • bloquer les véritables scanners et tentatives d’exploitation (par exemple les requêtes vers /.env, /.git, /phpmyadmin, etc.),
  • éviter le blocage accidentel des administrateurs (problème fréquent lorsque le bannissement repose uniquement sur les erreurs HTTP),
  • bannir les adresses IP après des activités suspectes répétées,
  • utiliser une courte durée de bannissement (5 minutes) afin de réduire le risque de s’auto-bloquer.

Pourquoi bannir uniquement sur la base des erreurs HTTP peut poser problème

De nombreux guides recommandent de bannir les adresses IP uniquement selon les codes de statut HTTP (4xx/499). En pratique, cela provoque souvent des auto-blocages, car les applications modernes génèrent de nombreuses requêtes (AJAX, panneaux d’administration, reconstruction du cache), ce qui peut entraîner des erreurs HTTP lors d’une utilisation normale.

Cette configuration adopte une approche plus sûre :

  • les chemins d’exploitation sont toujours considérés comme suspects,
  • les erreurs HTTP ne sont comptabilisées que lorsque la requête ne contient pas d’en-tête Referer (comportement typique des scanners),
  • les User-Agents malveillants connus sont pris en compte.

Étape 1 : Installer Fail2Ban

Installez Fail2Ban :

Activez et démarrez le service :

Vérifiez son fonctionnement :

Étape 2 : Créer le filtre nginx-secure

Créez le fichier de filtre :

Collez la configuration suivante :

Étape 3 : Créer le jail nginx-secure

Créez le fichier de configuration du jail :

Collez la configuration suivante :

Étape 4 : Redémarrer Fail2Ban

Étape 5 : Vérifier l’intégration avec le pare-feu

Vérifiez que la chaîne Fail2Ban existe :

Test depuis une machine externe

Test du chemin d’exploitation :

Test de la logique des erreurs sans Referer :

Après plusieurs requêtes suspectes, l’adresse IP sera bannie pendant 5 minutes.

Vérifier les adresses IP bannies

Débannir une adresse IP

Retirer un bannissement manuellement :

Résumé

  • bloque les véritables scanners et tentatives d’exploitation,
  • réduit le risque d’auto-blocage des administrateurs,
  • utilise un bannissement court de 5 minutes,
  • compatible avec iptables-nft,
  • facile à tester et à débannir.