Sécurité native multisite : une seule solution pour l'ensemble du réseau
La sécurité des sites WordPress multisite présente une faille structurelle : une attaque par force brute menée contre un sous-site passe inaperçue pour les autres. ReportedIP 2.0 comble cette lacune en synchronisant l'état de sécurité sur l'ensemble du réseau : un seul blocage de l'adresse IP s'applique partout.
Ce guide explique le modèle exclusivement réseau, comment les attaques intersites s'agrègent, ainsi que ce que les administrateurs de site peuvent et ne peuvent pas modifier.
Qu'est-ce que ReportedIP ?
ReportedIP est un plugin de sécurité WordPress complet — 12 capteurs d'attaques, quatre méthodes d'authentification à deux facteurs (2FA), un système de blocage progressif et un service d'informations sur les menaces communautaire accessible sur inscription — entièrement compatible avec Multisite depuis la version 2.0. L'ensemble des fonctionnalités ReportedIP s'applique à l'ensemble du réseau.
Activation uniquement sur le réseau, un état de menace partagé
Sur Multisite, le plugin est activé uniquement au niveau du réseau — l'activation par site est masquée par WordPress. Les sept tables sont déplacées vers $wpdb->base_prefix, de sorte qu'une seule décision s'applique à l'ensemble du réseau : les tentatives de force brute provenant de différents sites sont regroupées en un seul point central attempts ligne, et une entrée dans le blocked La table bloque l'adresse IP sur tous les sous-sites en même temps. Un botnet passant d'un sous-site à l'autre est considéré comme une seule campagne, et non comme une série de nuisances isolées.
Ce que contrôlent respectivement les super-administrateurs et les administrateurs de site
Les super-administrateurs gèrent les paramètres réseau et sont tenus de configurer l'authentification à deux facteurs (2FA) sans exception (le reportedip_hive_2fa_enforce_super_admins (réglages par défaut activés). Les administrateurs de site d'un sous-site disposent d'une vue « Statut et journaux » en lecture seule, ainsi que d'une page « Paramètres du site » dédiée à l'authentification à deux facteurs (2FA) comportant exactement deux options modifiables : le slug « Frontend-2FA » propre au site, et additif rôles soumis à l'obligation de 2FA — un administrateur de site peut ajouter un rôle à la liste des rôles soumis à l'obligation de 2FA, mais ne peut pas en supprimer un qui est requis par le réseau.
Le cookie de l'appareil de confiance s'étend à SITECOOKIEPATH, de sorte qu'une simple décision de « faire confiance à cet appareil » s'applique à l'ensemble du réseau. Cron n'est programmé que sur le site principal (protégé par is_main_site()) afin d'éviter les exécutions en double par sous-site.
La migration s'effectue en toute transparence
Une installation sur un seul site mise à niveau vers la version 2.0 effectue une migration automatique lors de la première connexion de l'administrateur — la seule modification apportée au schéma est une ALTER TABLE … ADD COLUMN blog_id (valeur par défaut : 1, pas de transfert de données). Dédié Schema, Migration_Manager et Option_Routing Les classes de service gèrent tous les accès liés au mode multisite, et cette modification est couverte par 435 tests PHPUnit en mode mono-site et 19 tests PHPUnit en mode multisite à chaque validation.
Limites du forfait pour plusieurs domaines
La protection du réseau est gratuite, mais le relais géré et le tableau de bord multisite s'adaptent en fonction de la formule choisie : 3 domaines pour la formule Professionnelle, 15 pour Business et une limite personnalisée pour la formule Entreprise. Le pare-feu local, les capteurs et l'authentification à deux facteurs (2FA) fonctionnent sur l'ensemble du réseau, quelle que soit la formule choisie.
Guides connexes
- Bouclier local vs réseau communautaire sur un réseau
- L'échelle de blocs progressive, appliquée à l'ensemble du réseau
- L'assistant de configuration et le tableau de bord sur Multisite
La documentation du plugin WordPress traite de la configuration du réseau. Consultez l'intégralité des guides du pluginReportedIP ou consultez la section consacrée à la couche de routage sur GitHub.