<Palmito's blog src="Boite" alt="Biscuit" />

Un peu de Html / css / php / sql, GNU/Linux, d'informatique en général et même de la radio communication :)

Sécuriser Wordpress xmlrpc.php / login


Palmito, le 2019-04-14 23:55:29

J'avais publié cet article à l'époque ou j'utilisaos sur Wordpress, je le remet en ligne au cas ou ça puisse encore servir aujourd'hui en sachant que cette façon de faire peut s'adapter à d'autres fichiers

J'ai pu constater très rapidement après installation de wordpress que je subissais des attaques sur mon serveur....célébrité quand tu nous tiens!! (pas moi hein! wordpress...)

Les attaques ciblaient le fichier xmlrpc.php qui, dans des versions plus anciennes, avait une faille de sécurité....avec les nouvelles versions (depuis la 3.9.2 d'après ce que j'ai pu trouver) le problème n'est plus.

Le souci, qui n'en est finalement pas un, est que me prendre des requêtes à longueur de journée sur ce fichier a eu tendance à légèrement m'énerver :/ (à tort sûrement? puisque apparemment ça ne craindrait plus rien?) et a surcharger mon fichier de log. De plus, ce genre de requête ne se faisait pas bannir par fail2ban, vu que ça ne générait pas d'erreur dans error.log.

Il y a très sûrement d'autres solution mais dans "l'urgence", j'ai fait au plus simple...(si vous qui passerez peut être lire ce billet, n'hésitez pas si meilleurs solutions vous avez)

J'ai donc fouiné un peu et j'ai trouvé mon bonheur...enfin...pour l'instant.

Tout d'abord il suffit de bloquer l'accès à xmlrpc.php via un .htaccess comme ceci:

ErrorDocument 403 "Error 403: Forbidden Access"
<Files xmlrpc.php>
order allow,deny
deny from all
</Files>

Maintenant, ce fichier n'est plus accessible et la personne désirant l’exécuter se retrouve sur une page "Error 403: Forbidden Access".

Protéger sa page login:

Je n'ai pas été confronté à ce problème, pas encore, mais apparemment les utilisateurs de wordpress sont aussi confronté à des attaques brute force sur la page de connexion wp-login.php.

Une petite astuce simple à mettre en place est de transiter par un autre fichier php pour se logger et de bloquer l'accès à celui d'origine...celui d'origine ne peut pas être appelé directement..

La subtilité dans cette méthode est de choisir un nom peut commun pour le fichier par lequel nous allons "transiter" et de ce fait sortir des fichiers par défaut pour se connecter.

Je pense donc qu'il faut éviter d'appeler ce nouveau fichier connect / login / connexion / log / identification etc....mais plutôt choisir un nom qui n'a absolument rien à voir tel que iciPourSeConnecter.php (par exemple...ça devrait être plus compliqué à trouver et certainement impossible pour un robot).

Il faut éditer de nouveau notre fichier .htaccess et y placer à la suite:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} !^.*cookie\-mona\-securisation=4532698754.*$ [NC]
RewriteRule wp-login.php - [F]
</IfModule>

Puis créer notre nouveau fichier

vim iciPourSeConnecter.php

Dans lequel nous allons mettre:

<?php
setcookie("cookie-mona-securisation", 4532698754);
header('Location: wp-login.php');
?>

On enregistre et c'est plié, nous n'avons plus l'accès à wp-login.php qui nous retourne une erreur 403. Pour ce connecter à notre site il faut maintenant passer par le nouveau fichier:

http://monsite.com/iciPourSeConnecter.php
Commentaires

Pas de commentaire pour cet article

Quelque chose à dire?