Restreindre l’accès à la page de connexion WordPress par IP
Pour se protéger des tentatives de Brute Force à l’administration de WordPress, découvrez comment mettre en place une restriction par adresse IP.
Pour limiter les tentatives de Brute Force sur la page de connexion à l’administration de WordPress, nous avons vu l’excellent plugin Limit Login Attempts. Ce plugin permet de sécuriser son site WordPress en luttant contre le Brute Force.
Pour aller plus loin et avoir une protection encore plus radicale, il est possible de restreindre l’accès à la page de connexion par adresse IP. Cette alternative est à mon sens la plus sécurisée, mais elle contraint de connaître la liste des adresses IP autorisées.
Sur un serveur Apache, la mise en place de cette restriction se fait à partir du fichier .htaccess comme ci-dessous :
[pastacode lang=”php” message=”” highlight=”” provider=”manual”]
<Files wp-login.php>
order deny,allow
Deny from all
allow from 78.198.73.195
allow from 98.93.210.247
allow from 81.210.10.186
</Files>
[/pastacode]
Dans cet exemple, toutes les adresses IP autorisées sont indiquées à l’aide d’un allow from
. Toutes les autres IP seront automatiquement rejetées lorsqu’elles tenteront d’accéder à la page de connexion.
Pour ceux qui utilisent NGINX à la place d’Apache, il faut modifier le fichier de configuration en ajoutant le code suivant :
[pastacode lang=”php” message=”” highlight=”” provider=”manual”]
location ~ wp-login.php {
allow 78.198.73.195;
allow 98.93.210.247;
allow 81.210.10.186;
deny all;
}
[/pastacode]
Attention, si vous utilisez PHP-FPM, vous devez ajouté quelques lignes supplémentaires pour que le code fonctionne correctement :
[pastacode lang=”php” message=”” highlight=”” provider=”manual”]
location ~ wp-login.php {
fastcgi_buffers 8 256k;
fastcgi_buffer_size 128k;
fastcgi_intercept_errors on;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/dev/shm/php-fpm-www.sock;
allow 78.198.73.195;
allow 98.93.210.247;
allow 81.210.10.186;
deny all;
}
[/pastacode]
Grâce à ces quelques lignes de code, vous n’aurez plus aucun problème de Brute Force sur la page de connexion. C’est un peu radical, mais à mon avis, c’est la solution la plus efficace pour lutter contre le robot.
37 Commentaires
merci pour l’astuce .
le plugin est insuffisant pour se protéger contre l’qttaque brute force ,je pense que l’utlisation des fichier .htpasswd et .htaccess sera aussi utile
Merci pour cet excellent article pour sécuriser facilement vos sites WordPress je vous recommande le plugin WP better security.
merci pour votre article ainsi que pour le plugin. J’ai installé Better WP security mais je n’étais pas satisfaite car il consomme beaucoup de ressources ainsi que le temps de chargement du site. Donc je vais essayer ce plugin pour voir en espérant qu’il soit meilleur.
Merci pour l’article.
Personnellement, j’ai simplement mis un mot de passe de type http ayant une ip non fixe …
C’est bien utile et très facile à faire. Merci pour ces astuces. Comme on dit, la sécurité est la seule voie de salut !!!
Je n’y avais pas pensé mais ça me semble assez évident comme mesure de sécurité. Je trouve ça terriblement efficace (à moins qu’un hacker arrive à toucher au .htaccess, mais dans ce cas il faut changer d’hébergeur…) et diablement simple. Je vais de ce pas appliquer cette astuce sur mon site (c’est pas un wordpress mais un prestashop, mais ça change rien l’astuce est toujours valide).
Reste le problème du client ‘boulet’ à IP non fixe :(
Pour le wp-admin, attention à ne pas bloquer tout le dossier notamment pour ne pas bloquer des actions ajax
Attention si vous partez en vacances, l’impossibilité de se connecter pourrait faire très mal ! Pensez donc à désactiver le test d’ip si vous partez, à moins que vous n’utilisiez un vpn ( mais c’est probablement rare ).
Merci pour le parage !
Merci pour le partage
Merci pour l’astuce,
Ce code est-il également fonctionnel pour joomla ?
Il y t-il possibilité de bloquer en général des IP provenant de certains pays ?
Merci :) bonne astuce contre les intrusions non-désirées ;)
@Laetitia: Oui, ce code fonctionne quelque soit le CMS. Par contre, vous devez l’adapter ;)
Merci beaucoup c’est une astuce intérréssante, est ce que ca marche également pour protéger l’ administration de phpmyadmin ?
cordialement
très bonne astuces pour éviter les intrusions sur son blog WordPress….
pour de raisons de sécurité il faut essayer de mettre à jour son CMS avec la dernière version…et d’éviter d’installer des plugins à tous va sans vérifier leur origine..
Wow what an great solution and fab post fight agains spamming Ips thank you so much for greatest tip…..and can i use this code for my manual Programing Site ?
Bonjour, merci pour l’article, comme vous le dites dans l’article, c’est une technique un peu radicale mais pour ma part depuis que je l’utilise je n’ai plus eu de problèmes d’intrusion sur mon site.
@inspirich: Yes sure!
Avec un mot de passe http et une ip non fixe j’ai l’impression que ça fonctionne. Je dis l”impression car c’est en place depuis peu.
@Benoit
Éventuellement, si le client “boulet” est toujours chez le même FAI, tu peux autoriser une classe d’IP
order deny,allow
Deny from all
allow from 78.198.73 # par exemple, pour autoriser toutes adresses commençant par 78.198.73
Bonjour,
Une question : cela restreint-il seulement l’accès à l’admin ou les utilisateurs qui veulent se connecter sur le front-end en sont aussi affectés ?
Merci d’avance pour votre réponse !
Pas mal, j’ai régulièrement des tentatives d’attaques brute force qui viennent du monde entier donc ça sera pratique. Cependant, j’ai un peu peur de me planter sur les adresses ip concernées. Les ip venant de connection 3G ou 4G sont localisées également ?
Pour éviter les tentatives de Brut force, on peut aussi cacher porte d’entrée en renommant autrement les pages de connexions (ce que permet le plug in gratuit iThemes Security).
J’ai eu un problème de ce genre récemment, mais avec l’option de gérer les IP, j’ai pu eu ce problème depuis! Excellent conseil!
Pour l’avoir testé en site classique (avec succès) et multi-site (sans succès), je crois bien que cela ne s’applique pas au multisite de WorDPress…
Quelqu’un a les mêmes résultats ?
Super astuce ! J’espère que ça m’évitera de mauvaises surprises car j’ai aussi été confronté à une attaque récemment.
Bonjour, merci pour l’article !
J’ai mis en place ce blocage par IP, il fonctionne (lorsque j’essaye de me connecter depuis une autre ip j’ai bien un message 403) mais je constate quand même dans mes log du plugin itheme security des tentatives de login avec des IP de pays lointains.
Avez vous une idée du procédé utilisé ?
Merci !
Merci beaucoup pour l’astuce ! Je me demandais comment faire pour restreindre son accès, ça me dépanne beaucoup !
Hello ! C’est une bonne idée cependant elle est un peu contraignante. Car à chaque nouvelle IP attribué à votre box il faudra la mettre dans le .htaccess et surtout enlever les précédentes (car les IP tournent).
Une solution serait de protéger tout simplement la page de co à l’admin par un htaccess . ;)
Le tout couplé bien entendu au plugin wp-rename-login qui permet de donner une adresse web différente que wp-admin à la page de connexion. Cela met deja un gros baton dans les roues des fameux pirates etc …
Bisous, Maelys.
merci pour l’astuce ! ça évitera peut etre au mec qui tente de me bruteforce de perdre son temps… (il essaie sur le login “adm1n”, va savoir pourquoi)
ça c’est une astuce, Merci infiniment pour vous
Article intéressant. Après avoir testé tout un tas d’addon genre block country et autres cette astuce me semble excellente.
Effectivement le problème lié à l’IP dynamique est problématique et si quelqu’un connait les range IP d’orange je suis preneur.
@patrice : en cas de vacances, j’imagine que l’on peut régler le problème en se connectant à son htaccess depuis son hébergeur et en le modifiant de là.
Merci pour l’astuce.La solution est bonne mais pour celui ayant une adresse ip dynamique fournit par son FAI comme est ce que le mieux serait pas d’utiliser Login limits attemps ?
Bonjour Dimitri, oui si vous avez une IP dynamique, il vaut mieux utiliser le plugin Login Limit Attemps
C’est intéressant comme idée mais cela me semble particulièrement contraignant dans mon cas. Au Québec (je ne suis pas certain pour les européens ) nos adresses IP changent continuellement. Je garde rarement plus de quelques jours la même adresse. Mais sinon le plugin est certe très intéressant… si on est pas obligé d’aller le modifier régulièrement.
Bonjour,
Cette solution à l’air pas mal du tout mais pour les administrateurs qui voyagent faut anticiper car après l’accès ne pourra que se faire aux adresses IP désirées.
hello
ca amrche pour une classe complette ?
car je suis sur une ip tournante au bureaux …
pas super pratique