WordPress : protéger l’accès au fichier xmlrpc.php avec CloudFlare

Dans ce tutoriel, je vais vous expliquer comment protéger l’accès au fichier xmlrpc.php de votre site WordPress avec le service CloudFlare en créant une règle de Pare-feu.

Avant de commencer, quelques explications :

Le fichier xmlrpc.php de WordPress est l’ancêtre de l’API-REST, comme toute API, le fichier xmlrpc.php permet de faire différentes actions sur votre site comme :

  • Récupérer les articles
  • Poster des articles
  • Les pingbacks
  • S’authentifier

Comme vous pouvez vous en douter, beaucoup d’attaque brute force de site WordPress se font par le biais du fichier xmlrpc.php.

Dans un « grand nombre de cas », vous pouvez simplement bloquer l’accès, par contre si vous utilisez le plugin Jetpack, il est nécessaire de laisser l’accès au fichier xmlprc.php pour les services WordPress.com.

Maintenant, je vais vous dire deux mots sur CloudFlare, c’est un serv ice Cloud « gratuit » qui permet plusieurs choses :

  • CDN : accélération de la distribution des contenus statiques (images, CSS, JS) avec un système de cache au plus près des utilisateurs
  • Optimisation des pages
  • SSL
  • Sécurité
  • Et bien plus …

Protéger le fichier xmlprc.php avec le pare-feu CloudFlare

Avec un abonnement gratuit à CloudFlare, il est possible de créer 5 règles de pare-feu, je vais donc ce tutoriel vous expliquer comment protéger votre fichier xmlrpc.php avec une exception pour les services WordPress.com.

Depuis le tableau de bord CloudFlare, cliquer sur Pare-feu 1 qui se trouve dans le menu de navigation en haut.

Vous arrivez sur une page, qui affiche l’activité du pare-feu, si vous n’avez pas encore de règles l’affichage est normalement vide, cliquer sur Règle de pare-feu 1.

Ici s’affiche les règles, pour le moment vide aussi, cliquer sur le bouton Créer une règle de pare-feu 1.

Vous arrivez sur une page, qui va permettre la création de la règle, donner un nom à la règle de pare-feu 1, puis indiquer les conditions de la règle 2, ensuite l’action si la règle est validée 3 et cliquer sur le bouton Déployer 4.

Sur la capture ci-dessus, vous pouvez voir la règle, par de panique, je vous l’explique maintenant.
Comment vous pouvez le voir, il y a deux conditions :

La première condition vérifie si url contient xmlrpc.php

Ensuite nous avons un opérateur qui est : ET (ce qui veut dire que les 2 conditions doivent correspondre)

Et la deuxième condition indique si le réseau (Numéro de système autonome AS) est différent XXXX (identifiant du réseau IP WordPress.com)

Si vous avez du mal à comprendre, voici comment l’interpréter en humain :

Si l’url contient xmlrpc.php ET que le numéro de réseau (AS) est différent de 2635 alors on bloque la requête.

Après avoir cliquer sur le bouton Déployer, vous êtes redirigé vers la liste des règles, où l’on peut voir la règle que l’on vient de créer.

Le point bleu signifie que la règle est cours de déploiement sur les serveurs CloudFlare.

Laisser passer un peu de temps et retourner sur la liste des règles, vous pourrez voir le nombre de fois que celle-ci a été utilisée pendant 24H.

Depuis le tableau de bord du pare-feu dans CloudFlare, vous avez aussi l’historique des blocages, en cliquant sur un enregistrement, il est possible d’avoir plus de détail.


Vous savez maintenant comment protéger l’accès à votre fichier xmlrpc.php de WordPress à l’aide du pare-feu CloudFlare.

Si vous avez des questions n’hésitez à venir sur le forum.

Personnellement je préfère utiliser cette solution à la désactivation de XML-RPC dans WordPress, car le blocage se fait avant même que la requête arrive sur le serveur et avec les logs, il est possible d’analyser les attaques.

Il est possible de créer d’autres règles pour augmenter le niveau de sécurité de WordPress comment filtrer le pays d’origine de la requête qui tente d’accéder à l’administration de WordPress ou s’assurer que l’accès au dossier /wp-content/plugins/ se fait par un appel de votre site




Laisser un commentaire