Installer gratuitement →
contact@alesta-ai.comv1.3.20
🛡️

Protection Brute Force — fail2ban intégré à WordPress.

Blocage automatique des IPs après 5 tentatives de connexion échouées, plus triple anti-bot sur l'écran wp-login.php (case à cocher, honeypot caché, check temporel). Vous passez de 359 tentatives + 6 mails par nuit à 0 attaque qui aboutit + 1 mail informatif.

Seuil par défaut5 tentatives
Fenêtre5 minutes
Durée ban15 minutes
ÉditionFree + Premium

Comment ça marche

Deux couches indépendantes qui se complètent : anti-bot en amont, fail2ban en aval.

1. Anti-bot sur l'écran de login

Triple protection : case à cocher visible « Je ne suis pas un robot », honeypot caché en CSS, check temporel (rejette les submits < 2 s). Bloque ~99 % des bots avant qu'ils n'arrivent au système de mot de passe.

2. Compteur par IP

Si un bot passe l'anti-bot ou si un humain se trompe vraiment, chaque échec incrémente un compteur stocké en transient WordPress (IP hashée SHA-256, RGPD-safe). Compteur remis à zéro à la première connexion réussie.

3. Ban automatique

Au 5ᵉ échec en moins de 5 minutes, l'IP est ajoutée à la blocklist pendant 15 minutes. La page wp-login.php répond HTTP 429 et les appels XML-RPC sont également bloqués (vecteur d'attaque classique).

4. Notification intelligente

Un seul mail à l'admin au moment du ban (pas un mail par tentative). Le mail contient l'IP, le nombre de tentatives, la durée du ban et un lien direct vers la page d'administration pour débloquer si besoin.

La triple anti-bot

Trois couches indépendantes injectées dans le formulaire wp-login.php. Un attaquant doit contourner les trois pour passer.

01

☑ Case à cocher visible

Une case « Je ne suis pas un robot » ajoutée juste au-dessus du bouton « Se connecter ». L'utilisateur doit la cocher pour valider. Bots basiques qui POST sans cocher → rejetés avec un message clair (« Vous devez cocher la case »).

Bloque : la majorité des bots open-source qui ne savent pas exécuter de logique HTML.

02

👁 Honeypot caché

Un champ <input name="alesta_website"> est ajouté au formulaire, caché en CSS hors écran (position:absolute; left:-9999px). Les humains ne le voient pas, mais les bots qui scannent le HTML et remplissent automatiquement tous les champs textes vont aussi le remplir. Au submit, si ce champ contient quoi que ce soit → bot, rejeté.

Bloque : les bots avancés qui filtrent display:none mais ratent les autres techniques d'occultation.

03

⏱ Check temporel

Un timestamp est injecté lors du rendu du formulaire (hidden input). Au submit, on vérifie qu'au moins 2 secondes se sont écoulées entre le rendu et la soumission. Aucun humain ne soumet en moins de 2 s — c'est forcément un bot qui POST directement sans charger la page.

Bloque : les scrapers et scripts brute force qui POST directement /wp-login.php sans rendre le HTML.

Le tableau de bord d'administration

Tout est centralisé dans Alesta AI → Sécurité → Protection Brute Force.

🛡️
Protection Brute Force
Blocage automatique des IPs
✓ ACTIVE
🚫 IPs bannies actuellement (2)
185.220.101.4212 tentatives · expire dans 9 min
45.155.205.135 tentatives · expire dans 14 min

La documentation

Tout ce qu'il faut savoir pour configurer, comprendre et déléguer.

📋 Paramètres par défaut (recommandés)

Seuil tentatives5 échecs
Fenêtre de comptage5 minutes (300 s)
Durée du ban15 minutes (900 s)
Anti-bot case à cocher✅ Activée
Anti-bot honeypot✅ Activée
Anti-bot check temporel✅ Activée (min 2 s)
WhitelistVide (à compléter par l'admin)

Ces valeurs reproduisent les standards fail2ban pour SSH : assez strict pour bloquer les bots, assez tolérant pour éviter de bloquer un humain qui se trompe deux ou trois fois.

🔌 Compatibilité reverse-proxy & CDN

Le module détecte automatiquement la vraie IP du visiteur même si vous êtes derrière un reverse-proxy ou un CDN. Ordre de priorité des headers :

  1. CF-Connecting-IP — Cloudflare
  2. X-Forwarded-For — premier hop = client originel
  3. X-Real-IP — convention nginx
  4. REMOTE_ADDR — fallback en connexion directe

Aucune configuration nécessaire : si vous êtes sur SiteGround, Kinsta, WP Engine, OVH Performance ou Galiance, ça marche directement.

🔒 Stockage des IPs et RGPD

Les IPs bannies sont stockées de deux manières :

  • Transients WordPress (blocklist active) : IP hashée en SHA-256 avant stockage. Impossible de retrouver l'IP en clair depuis un dump SQL.
  • Option admin (les 100 derniers bans) : IP en clair, mais accessible uniquement aux administrateurs connectés (capability manage_options). Permet le déblocage manuel et l'audit.

Aucune donnée n'est envoyée à un service tiers. 100 % du traitement reste sur votre serveur WordPress.

📧 Le mail d'alerte

Un seul mail est envoyé à l'admin au moment du ban (pas à chaque tentative). Le mail contient :

  • L'adresse IP bannie
  • Le nombre de tentatives
  • La durée du ban (15 minutes par défaut)
  • Le lien direct vers la page d'admin

Anti-flood : tant que l'IP reste bannie et continue à essayer, aucun nouveau mail n'est envoyé. Si une nouvelle IP attaque, vous recevez un mail pour celle-ci aussi.

Questions fréquentes

Est-ce que ça remplace fail2ban serveur ?

Non, c'est complémentaire. fail2ban serveur protège SSH, FTP et autres services système. Alesta AI Brute Force protège spécifiquement WordPress (wp-login.php et XML-RPC) en niveau application. Les deux peuvent cohabiter sans conflit, et la combinaison est idéale.

Et si je me bloque moi-même ?

Vous pouvez ajouter votre IP dans la whitelist depuis la page d'admin du module. Votre IP actuelle est affichée en haut de la page pour faciliter l'ajout. Si vous êtes déjà bloqué, vous pouvez attendre 15 minutes que le ban expire, ou utiliser une autre IP (4G mobile, VPN) pour vous reconnecter, ou demander un déblocage à un autre administrateur.

Ça marche aussi sur les sites multisites ?

Oui. Chaque site du réseau a sa propre blocklist (stockée en transient au niveau site). La whitelist est aussi par site, ce qui permet aux super-admins du réseau d'avoir des IPs whitelistées sur tous les sites en un seul ajout côté réseau (via un futur paramètre Network Admin — en roadmap).

Combien de bots ça bloque vraiment ?

Sur nos sites de test en production : ~99 % des bots ne passent pas l'anti-bot (échec sur l'une des 3 couches : case à cocher, honeypot, check temporel). Sur les 1 % restants (bots très sophistiqués), le système fail2ban les bloque après 5 tentatives. En pratique, vous passez de plusieurs centaines de tentatives par jour à zéro succès.

Est-ce que c'est dans la version Free ?

Oui. La sécurité anti-brute-force est un standard de base que tout site WordPress devrait avoir. Alesta AI l'inclut dans la version Free (téléchargeable sur wordpress.org) au même titre que les modules Sitemap, robots.txt, FAQ Schema, Bannière RGPD, etc.

Activer la protection en 30 secondes.

Installez Alesta AI, activez le module Sécurité → Protection Brute Force. La protection démarre immédiatement avec les paramètres recommandés. Plus jamais de mail "359 tentatives" en pleine nuit.

Besoin d'aide ? Notre équipe vous répond.

Une question, un cas d'usage spécifique, un problème technique ? Le support Alesta AI répond sous 24h en jours ouvrés.