Blocage IP progressif : arrêter la force brute sur WordPress sans faux positifs
Pour bloquer les attaques par force brute sur WordPress sans exclure de vraies personnes, ReportedIP Hive donne à chaque blocage la durée que l’adresse a méritée : une première infraction coûte un blocage court, et seule une adresse qui revient sans cesse monte vers des bannissements longs. Un mot de passe mal tapé ne coûte donc jamais une journée entière à un client.
Ce guide explique l’échelle d’escalade, le moment où elle se réinitialise, la place des blocages manuels et de la liste blanche, et ce que voit réellement un visiteur bloqué. L’interface de Hive est en anglais, les libellés sont donc cités tels qu’ils s’affichent.
Pourquoi une durée de blocage fixe échoue-t-elle face à la force brute ?
Une durée unique impose un mauvais compromis. Courte, un botnet attend simplement et recommence. Longue, l’employée derrière la connexion partagée du bureau ou le client derrière le NAT d’un opérateur mobile reste bloqué une journée après quelques fautes de frappe. L’OWASP Authentication Cheat Sheet met en garde exactement contre cela : des verrouillages trop stricts deviennent un déni de service contre vos propres utilisateurs.
Le blocage progressif règle le problème en laissant l’historique de l’adresse décider. Qui déclenche un capteur une fois obtient une courte pause. Qui continue d’attaquer obtient des blocages de plus en plus longs, jusqu’à un plafond qui se compte en jours.
Comment fonctionne l’échelle d’escalade
- Un capteur, par exemple celui des échecs de connexion, voit une adresse dépasser sa limite.
- Hive bloque l’adresse. Son premier blocage correspond au palier le plus court de l’échelle.
- Si la même adresse est de nouveau bloquée pendant la fenêtre de réinitialisation, elle monte d’un palier et le blocage dure plus longtemps.
- Une rafale très violente, un multiple de la limite d’un seul coup, peut sauter des paliers : une attaque évidente ne commence donc pas tout en bas.
- Quand une adresse reste propre pendant toute une fenêtre de réinitialisation, elle repart du premier palier. Une erreur isolée ne laisse aucune trace durable.
L’échelle compte les blocages antérieurs d’une adresse, pas les tentatives échouées une à une. Les codes à deux facteurs et les codes de réinitialisation erronés sont en outre freinés par un délai croissant avant de se transformer en blocage : deviner un code est donc aussi vain que deviner un mot de passe.
Comment observer l’échelle en action
Chaque blocage apparaît deux fois. L’Event Log, sous Activity, enregistre l’événement qui l’a causé, avec le capteur, l’adresse et l’heure. La liste Blocked, sous IP Lists, montre le blocage lui-même avec son type et la colonne Blocked Until. Si la même adresse réapparaît quelques jours plus tard avec une échéance plus lointaine, l’échelle l’a fait monter d’un palier. Une adresse qui reste à l’écart assez longtemps disparaît de la liste et repart de zéro si elle revient un jour.
Sur un site fréquenté, le schéma se lit facilement : la plupart des adresses sont bloquées une fois et ne reviennent jamais, quelques-unes reviennent encore et encore et finissent sur les paliers les plus longs. Ce sont elles qui méritent un blocage manuel permanent ou un signalement à leur hébergeur.
Où activer le blocage et le tester
Ouvrez Protection, carte Blocking & Escalation. La vue normale affiche les deux interrupteurs utiles au quotidien :
- Automatic blocking refuse une adresse dès qu’une limite de capteur est dépassée. Désactivé, les capteurs se contentent d’enregistrer.
- Report-only mode enregistre chaque décision sans l’appliquer, pour voir ce que feraient les réglages avant qu’ils ne le fassent.

Le mode expert affiche l’échelle elle-même
Activez le mode expert dans l’en-tête de la page pour modifier l’échelle. Ces réglages apparaissent alors dans la même carte :
| Réglage | Ce qu’il fait |
|---|---|
| Escalation ladder | Active ou désactive le blocage progressif |
| Escalation ladder steps (minutes) | La durée de chaque palier, sous forme de liste séparée par des virgules |
| Ladder reset window (days) | Combien de temps une adresse doit rester propre avant de repartir du premier palier |
| Block duration (hours) | Une durée fixe pour chaque blocage, utilisée seulement quand l’échelle est désactivée |
| Community block threshold (%) | À partir de quel score de confiance une adresse connue du réseau est refusée |
| Block Tor exit nodes | Refuse le trafic issu du réseau Tor, avec la formule Professional |
| Contact URL on the block page | Une page où les visiteurs bloqués peuvent vous joindre |
Les valeurs par défaut conviennent à la plupart des sites. Raccourcissez les premiers paliers si vos visiteurs partagent souvent des adresses, allongez les paliers supérieurs si un botnet revient après chaque blocage.
Les blocages manuels et la liste blanche priment toujours
Sous Activity, onglet IP Lists, le formulaire Block an IP Address accepte une adresse seule ou une plage CIDR, un motif et une durée : 24 Hours, 3 Days, 1 Week, 30 Days ou Permanent. Import Blocked IPs from CSV ajoute d’un coup une liste d’adresses individuelles. Un blocage manuel conserve la durée choisie, car le traitement automatique ignore toute adresse déjà bloquée.

Le filtre Block Type distingue les blocages manuels, les blocages automatiques, ceux fondés sur la réputation communautaire et les bannissements de groupe. Chaque ligne propose Unblock et Move to Whitelist. Les adresses et plages de la liste blanche ne sont jamais bloquées automatiquement : le réseau du bureau, votre VPN et votre service de surveillance y ont leur place en premier.
Ce que voit un visiteur bloqué
Une adresse bloquée reçoit une page HTTP 403 intitulée Access Denied. Elle affiche l’IP du visiteur, l’heure, le motif et un code de référence, et propose un bouton Contact administrator dès que vous indiquez une URL de contact. Quand quelqu’un vous écrit, la référence vous mène directement à la bonne entrée du journal.

La page demande à chaque extension de cache de ne pas la stocker : WP Rocket, W3 Total Cache, WP Super Cache, LiteSpeed Cache et Cloudflare ne servent donc jamais un blocage à un visiteur légitime. Les requêtes AJAX et REST reçoivent une courte erreur JSON au lieu de la page. Si vous utilisez le drop-in facultatif Extended Protection de la page Tools, les adresses bloquées sont refusées avant même le chargement de WordPress, avec un simple 403 et sans la page, ce qui allège le serveur pendant une attaque.
Quelle formule inclut le blocage progressif ?
L’échelle d’escalade, les blocages manuels, la liste blanche et la page de blocage font partie de la formule gratuite et fonctionnent en Local Shield sans aucune connexion externe. Professional ajoute le blocage de Tor et le Hardening Mode, qui resserre automatiquement les limites pendant une attaque coordonnée. En mode Community Network, chaque blocage devient en plus un signalement anonymisé qui avertit les autres sites du réseau.
Questions sur le blocage des IP de force brute dans WordPress
Comment me débloquer si je me suis bloqué moi-même ?
Connectez-vous depuis un autre réseau, par exemple la connexion mobile de votre téléphone, et supprimez l’entrée sous Activity, onglet IP Lists, avec Unblock. Avec un accès shell, la commande WP-CLI de l’extension lève aussi le blocage. Ajoutez ensuite votre propre réseau à la liste blanche pour que cela ne se reproduise pas.
Le blocage progressif exclut-il les utilisateurs derrière une IP partagée ?
Une adresse partagée ne monte l’échelle que si les attaques qui en proviennent continuent, et une fenêtre de réinitialisation propre la ramène au palier le plus court. Les bureaux et les écoles avec une adresse fixe peuvent être placés sur la liste blanche. Sur les réseaux mobiles, le premier palier court limite les dégâts à quelques minutes.
Puis-je utiliser une durée de blocage fixe au lieu de l’échelle ?
Désactivez Escalation ladder en mode expert et renseignez Block duration (hours). Chaque blocage automatique dure alors exactement ce temps, quel que soit l’historique de l’adresse. La plupart des sites ont intérêt à garder l’échelle, car elle frappe plus fort les récidivistes sans pénaliser les erreurs ponctuelles.
Pourquoi l’adresse de mon proxy apparaît-elle dans la liste des blocages ?
Derrière Cloudflare, un répartiteur de charge ou un proxy inverse, WordPress voit le proxy au lieu du visiteur. Renseignez en mode expert, dans la carte Detection & Thresholds, l’en-tête de l’IP client et les plages de proxy de confiance. Sans cela, un seul blocage exclurait tous les visiteurs qui passent par le même proxy.
Pour aller plus loin
- Les 16 capteurs d’attaque
- Le Hardening Mode sous attaque
- Le renseignement communautaire sur les menaces
- Le démarrage rapide de Hive
La documentation de Hive détaille l’escalade des blocages, les réglages de proxy et la compatibilité avec les extensions de cache.