Voici mon dernier plugin pour WordPress qui passe en version 1.0 stable après plusieurs mois de bêta : Move Login, il est donc temps que je vous en parle un peu.
Ça fait quoi ?
Ce plugin va changer l’url de connexion/déconnexion de votre site WordPress.
Par exemple, https://www.screenfeed.fr/wp-login.php va devenir https://www.screenfeed.fr/login/, ou https://www.screenfeed.fr/wp-login.php?action=logout deviendra https://www.screenfeed.fr/logout/.
En parallèle, l’accès à https://www.screenfeed.fr/wp-login.php sera interdit (un message d’erreur sera affiché).
À noter pour les installations MultiSite que chaque site aura droit à sa propre page de connexion, avec des url différentes.
C’est un plugin que j’ai développé avec l’aide de l’ami Julio :) (ouais comme ça j’ai droit au label de qualité « Approved by SecuPress » ^^ ).
Et ça sert à quoi ?
On pourrait penser au premier abord que le but est de faire de jolies url faciles à retenir, mais il n’en est rien. Le but recherché est de bloquer l’accès à la page https://www.screenfeed.fr/wp-login.php afin de couper court aux tentatives de brute force de votre page de connexion.
Brute-quoi ? Wikipedia nous dit :
La méthode « Brute Force » est une approche exhaustive des problèmes : la solution est trouvée en testant tous les cas possibles jusqu’à la découverte de la solution.
En clair, on essaie toutes les combinaisons possibles de login/mot de passe jusqu’à trouver la bonne. Le but recherché étant bien sûr de pénétrer dans l’administration du site et d’y mettre un joli bordel.
Mais au final, on ne fait que déplacer le problème ailleurs ?
Oui mais non. Certes, on peut toujours tenter de « brute forcer » votre login à la nouvelle adresse, mais ce n’est pas un humain qui fait ces tentatives, mais un robot (comprendre : un script/logiciel présent sur un serveur ou un ordinateur). Et le robot est bête (en général). Sur un site WordPress, la page de connexion se situe à l’adresse https://www.screenfeed.fr/wp-login.php, il va donc tenter ses vils desseins à cette adresse, et pas ailleurs.
Configuration
Rien. On active le plugin, ça marche.
Si jamais le plugin ne peut pas écrire dans le fichier .htaccess
de votre site, il vous le fera savoir au moment de son activation. Il faudra alors se munir d’un logiciel ftp et ajouter les lignes nécessaires soi-même.
Où trouve t’on ces lignes ? Facile, le plugin vous l’indiquera aussi. Pour un site WordPress « normal » il faut se rendre dans la page de réglage des permaliens. Pour un site WordPress MultiSite, une nouvelle page est créée dans l’administration du réseau, sous l’onglet « Réglages » (le plugin n’est activable que sur le réseau).
Ha oui, il faut bien sûr que les permaliens soient activés sur le site (sur tous les blogs pour un MultiSite).
Le plugin prend en charge les serveurs IIS, mais ça n’a pas été testé.
Filtres et actions
Une action est introduite avec cette version 1.0, elle permet de modifier l’action à entreprendre lorsque quelqu’un tente d’accéder à wp-login.php
:
'sfml_wp_login_error'
(action) : d’origine le plugin va utiliser wp_die()
pour afficher le message d’erreur. Ce hook va vous permettre de personnaliser le message d’erreur, ou bien de renvoyer une erreur 404 au lieu de 500, ou encore de rediriger le « visiteur » vers une autre page de votre choix.
Exemple, redirection vers l’accueil du site :
123456
remove_action( 'sfml_wp_login_error', 'sfml_wp_login_error' );
add_action( 'sfml_wp_login_error', 'my_wp_login_error' );
function my_wp_login_error() {
wp_safe_redirect( home_url() );
exit;
}
Au secours !
Bloqué à l’extérieur ? Un truc qui foire ? Vous ne pouvez plus vous connecter ?
Il y a une solution. Avec un logiciel ftp, ajoutez la ligne suivante à votre fichier wp-config.php
(situé à la racine du site) : define('SFML_ALLOW_LOGIN_ACCESS', true);
Vous aurez alors accès à la page de connexion traditionnelle, le temps de trouver où se situe le problème.
Besoin d’aide ? Les commentaires sont ouverts, ainsi que le forum sur le site de WordPress.
Commentaires
Commentaire de Cédric.
Simple et efficace. Que dire de plus à part merci ? C’est exactement ce que je cherchais.
Commentaire de Dipera D. Apecesinesa.
Bonjour;
On peut utiliser ce plugin pour changer l’url d’admin WP ?
Merci
Commentaire de Grégory Viguier.
Bonjour.
Non, mais on peut faire en sorte d’afficher un message d’erreur si quelqu’un tente d’y accéder. Voir la capture d’écran sur la page de l’extension.
Commentaire de Dipera D. Apecesinesa.
OK Merci mais y’a t’il un autre plugin ou une autre technique pour changer ou déplacer l’url de l’admin WP ?
En vous remrciant
Commentaire de Grégory Viguier.
Je suppose qu’en ajoutant une ligne dans le fichier .htaccess c’est faisable oui. Quelque chose comme ça peut-être, à adapter :
Commentaire de Dipera D. Apecesinesa.
Mon but c’est de déplacer l’admin Wp et pas juste de définir une règle pour interdire l’accès. J’ai trouvé cet article masi elle n’ai pas propre :http://www.seomix.fr/deplacer-administration-wordpress/
Commentaire de Grégory Viguier.
Ce n’est pas possible.
Commentaire de Dipera D. Apecesinesa.
Bjr Grégory;
Tu penses de quoi de l’article ? En plus de htaccess, on peut renforcer la protéction de l’admin par d’autres techniques ?
Merci
Commentaire de Manhattan.
Bonjour,
Je ne comprends pas quelque-chose :
J’ai installé move login sur un blog et il semble fonctionner : le htaccess a bien été modifié correctement et si l’on teste wp-login ou autre il renvoie sur la page d’accueil comme je le lui demande. Mais pour autant, sucuri security m’indique que chaque jour j’ai des tentatives de connexion qui échouent. (il ne m’indique pas l’url testée, mais vu qu’un login est tapé, le bot arrive bien sur une page de connexion).
De plus, si je prends mon url et que je lui rajoute /rp à la fin, je suis tout à fait capable de déduire mon nouveau nom de connexion avec le message d’erreur qui suit. Ce qui me fait penser que si le bot prend mon domaine suivi de /rp il aura accès à ma nouvelle url en 2 secondes.
Qu’est ce que je ne comprends pas ? :)
Commentaire de Grégory Viguier.
Bonjour.
Y a t-il quelque part sur le site un lien vers la page de connexion ? À moins qu’il y en ai un, je ne vois pas comment l’adresse peut être retrouvée :|
C’est bien dommage :(
En effet, mais ça voudrait dire que le bot a été prévu pour contourner Move Login.
Le but originel de Move Login était de contrer le bots « bêtes », ceux qui vont taper wp-login.php et qui ne vont pas aller chercher plus loin. Si un bot va sur /rp pour retrouver l’URL actuelle de la page de login, c’est une autre histoire, et en effet le plugin n’est pas pensé pour ça.
Je vais voir pour prendre ça en compte.
En attendant il y a toujours la possibilité de modifier les 3 slugs « cachés » (rp, retrievepassword et postpass) via le filtre ‘sfml_options’.
Commentaire de Manhattan.
J’ai bien pensé à un lien existant (vu que ce n’est pas moi qui ait conçu le site) mais je n’en ai pas trouvé. Donc j’ai pensé à /rp.
Et je pensais aussi corriger moi-même les 3 slugs, mais je voulais être sur d’avoir bien compris la problématique avant :)
Donc merci tout de même pour ce plugin utile et pas cher ^^ et merci pour la réponse :)
Commentaire de Grégory Viguier.
De rien :)
Je viens de penser à un truc là. Je ne sais pas comment fonctionne Securi pour les tentatives de connexion mais je me dis qu’il pourrait les logguer avant que Move Login ne fasse son boulot (Move Login intervient sur le hook
'login_init'
) et sur wp-login.php (faisant fi de la nouvelle adresse). Cela aurait pour résultat qu’il enregistre des tentatives qui se font dans le vide, et c’est une explication qui me parait tout à fait possible.Depuis peu je réfléchis à avoir la possibilité de gérer le « blocage » de Move Login par .htaccess, ce qui donnerait de meilleures performances lors d’attaques à mon avis, et ça permettrait peut-être à Securi de ne pas logguer tout ça.
Commentaire de Manhattan.
Alors là, je ne suis pas assez compétent pour dire si l’hypothèse avancée est la bonne, mais maybe :)
Commentaire de Julianinho.
Bonjour,
J’ai installé ce plugin sur plusieurs de mes sites, il fonctionne bien, mais il y a un truc que je comprends pas, c’est comment les bots peuvent détecter ma page de connexion alors que j’ai modifié les urls pour chaque page (login,logout, register, lostpassword, resetpass).
Je reçois quand même des mails disant que certains ont essayé de se connecter à ma page de connexion (sans que je connaisse l’url).
J’ai testé en tapant /rp à la fin de mon url mais on à pas accès à la page login, donc je vois pas où la personne pourrait trouvé la page login.
Commentaire de Grégory Viguier.
Bonjour.
Wordfence ?
Commentaire de Julianinho.
Non j’ai pas wordfence d’installé, tu penses qu’il utilise une faille d’un plugin pour avoir accès au login ?
Commentaire de Grégory Viguier.
À moins d’avoir sur le site un lien vers la page de connexion, je ne vois pas comment on peut la trouver. As-tu gardé les valeur par défaut pour les URL ou tu les as changées ?
Commentaire de Julianinho.
J’ai pas mis de widget pour se connecter, et j’ai à nouveau vérifié je n’ai rien sur le site qui donne le lien de connexion.
Les valeurs par défaut des url ont été changé.
C’est bizarre !!
Du coup avec Limit login attempt, je bloque les tentatives de connexion au bout de 2 erreurs de mot de passe, mais la personne change souvent d’ip et test avec un autre login/mot de passe.
J’ai le même problème sur plusieurs de mes sites et il est vrai que certains plugins sont identique sur tous les sites, peut être qu’un des plugins est vulnérable.
Commentaire de Grégory Viguier.
Peut-être, c’est la seule explication que je vois en effet :/
Commentaire de Julianinho.
Je vais chercher de ce côté là.
Merci pour ton aide ;)
Commentaire de Grégory Viguier.
Je pense à un truc : robots.txt ?
Commentaire de Julianinho.
C’est bizarre que tu me parles de ça, parce que j’ai reçu un mail de google il y à 1h disant que le robot.txt n’avait pas accès à mon site pour l’explorer.
Commentaire de Manhattan.
J’ai le même problème que Julianinho. Comme je l’avais expliqué précédemment, c’est Sucuri qui m’enregistre les tentatives et j’en étais resté sur le fait qu’il enregistrait peut-être des tentatives à vide. J’ai réglé le problème en bloquant le dossier wp-admin par ip via htaccess. Il est toujours possible de se connecter via l’url movelogin via n’importe quelle ip, mais les url classiques sont bloquées. N’ayant pas eu non plus beaucoup de temps pour étudier le problème, je ne suis pas sur de bien comprendre tout ce qui se passe non plus ^^
Commentaire de Grégory Viguier.
Attention car
wp-admin/admin-post.php
etwp-admin/admin-ajax.php
ne doivent pas être bloqués.Commentaire de Manhattan.
D’accord. Et correction : lorsque je teste la connexion avec Tor j’arrive sur le formulaire de login mais ensuite je suis bloqué. Bref, ne sachant si Sucuri enregistre de véritables tentatives de connexion ou non, j’ai bloqué par ip ^^
Commentaire de Julianinho.
Même soucis, parfois je reçois un mail du plugin disant qu’il y à eu des tentatives de connexion sur mon site et j’avais retiré le page de login ce jour là pour faire un test, donc je comprends pas comment c’est possible ^^
Commentaire de bruno.
Salut,
Juste Merci pour ce plug’in
bruno