Tout savoir sur WordPress
Tutoriel WordPress

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.

Cet article a été mis à jour il y a 3747 jours - Il n'est peut être plus à jour !

Article écrit par Jonathan B.

Jonathan est le co-fondateur de WP Media, startup connue pour être l’auteur de WP Rocket et Imagify. Il est aussi co-organisateur du WordCamp Lyon et Paris.

37 Commentaires

  1. 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

  2. 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.

  3. 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 !!!

  4. 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).

  5. 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

  6. 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 ).

  7. 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 ?

  8. @Laetitia: Oui, ce code fonctionne quelque soit le CMS. Par contre, vous devez l’adapter ;)

  9. Merci beaucoup c’est une astuce intérréssante, est ce que ca marche également pour protéger l’ administration de phpmyadmin ?

    cordialement

  10. 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..

  11. 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 ?

  12. 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.

  13. @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

  14. 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 !

  15. 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 ?

  16. 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).

  17. 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 ?

  18. 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 !

  19. 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.

  20. 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)

  21. 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à.

  22. 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

  23. 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.

  24. 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.