Featured image of post WordPress : Restreindre l'accès de l'admin par ip

WordPress : Restreindre l'accès de l'admin par ip

Si vous avez une adresse IP statique, chez vous ou au bureau, ou peut-être votre propre VPN, vous avez la chance de pouvoir augmenter votre sécurité.
La technique consiste à restreindre les accès à l’admin de wordpress par une ou plusieurs ip.

Nous allons voir comment le mettre en place sur Nginx.

1. Création d’un bloc map

Nous allons créer un bloc map pour y inclure la liste des adresses ip autorisées.

map $remote_addr $allowed_ip {

1.2.3.4 1;
1:: 1;
5.6.7.8 1;

default 0;
}

On assigne la valeur 1 aux adresses ip que l’on veut autoriser et 0 pour le reste.

2. Modification du bloc server

Nous allons modifier notre « bloc server » pour y inclure nos conditions. Nginx ne supporte pas les opérateurs logiques dans les bloc if , nous allons donc devoir contourner le problème en mettant plusieurs if.

server {
...
set $check ''; #initialisation de la variable  

if ( $allowed_ip = 0 ) {
  set $check "A";
}

if ( $request_uri ~ ^/wp-(login\.php|admin/) )  {
  set $check "${check}B";
}

if ( $check = "AB" ) {
return 403;
}
...
}

Donc si l’adresse n’est pas dans la liste du bloc map « check = A » et si l’uri correspond à /wp-login.php ou wp-admin/ « check = AB ». Si nous avons $check = AB nous retournons une 403 ( forbidden ).

Built with Hugo
Theme Stack designed by Jimmy