Métodos de pago Abuse

Cómo configurar Auth Basic NGINX

14.03.2021, 22:14

Puede que nunca hayas pensado mucho en qué es Auth Basic, pero seguro que te lo has encontrado al entrar en la configuración de tu router. Se llama así al mecanismo de autorización por nombre de usuario y contraseña a nivel de servidor web. Dicha autorización está soportada tanto en Apache como en Nginx. En esta instrucción sugerimos considerar la cuestión de cómo configurar Auth Basic para una ruta específica o un sitio específico.

Configuración de Auth Basic en NGINX

Este es el aspecto de la ventana de autorización de Auth Basic:

Окно авторизации Basic Auth

Ahora debería entender de qué va esta instrucción. Es posible configurar la autorización para una URL específica, para todo el sitio o para todos los sitios. Pero lo primero que hay que hacer es crear un archivo con una lista de usuarios y contraseñas. Para ello utilizaremos la utilidad htpasswd. La sintaxis del comando es la siguiente:

$ sudo htpasswd -c /path/to/file username

En este caso, la opción -c se utiliza para crear un nuevo fichero, no es necesario utilizarla para editar ficheros previamente creados. Por ejemplo:

$ sudo htpasswd -c /etc/nginx/auth.basic admin

Basic Auth

El programa hará una doble petición de contraseña. Por motivos de seguridad, la contraseña no se muestra, pero se introduce. Una vez que haya creado un archivo de este tipo, puede ir directamente a la configuración de Nginx.

Para proteger con contraseña todos los recursos, es necesario añadir una directiva a la sección http del archivo /etc/nginx/nginx.conf:

auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;

настройка Nginx

Para proteger una dirección de página específica (URL), es necesario agregar una directiva al bloque de ubicación correspondiente. Podría ser /wp-admin/admin-ajax.php:

location /wp-admin/admin-ajax.php {
auth_basic "Restricted area";
auth_basic_user_file /etc/nginx/auth.basic;
}

настройка Nginx

Si el sitio está en WordPress, es mejor colocar la ubicación en location/. Todas las reglas descritas anteriormente funcionarán, y además se proporciona protección. Si necesita permitir el acceso para una ubicación específica, la directiva se verá como auth_basic "off":

location /wp-admin/admin-ajax.php {
auth_basic "off";
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9002;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}

создание location

Será necesario añadir el procesamiento PHP al bloque de ubicación, de lo contrario se pedirá al usuario que descargue el script al que está accediendo.

Por lo tanto, configurar el acceso en Nginx no es demasiado difícil. Basta con configurar correctamente el bloque de ubicación.