Cómo proteger con contraseña el directorio en Nginx

En ocasiones, es posible que deba evitar el acceso no autorizado a archivos y directorios específicos en su sitio web. Para esto, puede configurar fácilmente la autenticación básica para esos directorios. En este artículo, veremos cómo proteger con contraseña el directorio en NGINX.

Cómo proteger con contraseña el directorio en Nginx

Estos son los pasos para proteger con contraseña el directorio en NGINX.

1. Instalar Apache Utiles

Necesitamos usar la utilidad htpasswd para proteger con contraseña los archivos y directorios en NGINX. Entonces necesitamos instalar apache2-utils o httpd-tools. Abra la terminal y ejecute el siguiente comando

                      # yum install httpd-tools [RHEL/
                      
                        CentOS
                      
                      ] 
$ sudo apt install apache2-utils [
                      
                        Debian
                      
                      /
                      
                        Ubuntu
                      
                      ]
                    

Lea también: NGINX restringir el acceso a directorios y subdirectorios

2. Crear usuario/contraseña

A continuación, ejecute el comando htpasswd para crear un usuario al que se le dará acceso a su sitio web. Reemplace desarrollador a continuación con su elección de nombre de usuario.

                      # htpasswd -c /etc/nginx/conf.d/.htpasswd developer
                    

Usamos la opción -c para especificar la ubicación del archivo de contraseña. Cuando presione enter, se le pedirá una contraseña.

Para examplecuando creamos otro usuario, no especificamos la ubicación del archivo de contraseña.

                      # htpasswd /etc/nginx/conf.d/.htpasswd developer2
                    

Lea también: NGINX Restringir el acceso a la URL

3. Abra el archivo de configuración de NGINX

Abra la terminal y ejecute el siguiente comando para abrir el archivo de configuración del servidor NGINX.

                      $ sudo vi /etc/nginx/nginx.conf

                    

Si ha configurado hosts virtuales separados para su sitio web (por ejemplo, www.googlesyndication.com), como /etc/nginx/sites-enabled/website.conf, luego abra su configuración con el siguiente comando

                      $ sudo vi /etc/nginx/sites-enabled/website.conf
                    

Como alternativa, también puede abrir el archivo de configuración de host virtual predeterminado.

                      $ sudo vi /etc/nginx/sites-enabled/default
                    

Lea también: Cómo configurar la rotación de registros NGINX

4. Proteger con contraseña NGINX

Para proteger con contraseña su directorio, o ciertas páginas web o incluso todo su sitio web, necesitamos usar las directivas auth_basic y auth_basic_user_file en la configuración del servidor NGINX.

Para examplesi desea configurar la autenticación básica para hosts virtuales (un bloque http completo), agregue las dos directivas anteriores como se muestra a continuación en el bloque http.

                      http{
   ...
   auth_basic "Restricted Access!"; 
   auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
   ...
}
                    

En el código anterior, especificamos la ruta del archivo de contraseña en la directiva auth_basic_user_file y el mensaje que se mostrará en la directiva auth_basic.

Del mismo modo, aquí está el código para proteger el bloqueo del servidor, es decir, implementar la autenticación básica para el sitio web o el dominio.

                      server{
    ...
    auth_basic "Restricted Access!";
    auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
    ...
}
                    

También puede configurar la autenticación básica para directorios/subdirectorios web específicos (por ejemplo, /admin) agregando las directivas auth_basic y auth_basic_user_file en un bloque de ubicación para ese directorio.

                      location /admin/ {
    ...
    auth_basic "Restricted Access!";
    auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
    ...
}
                    

Lea también: Cómo arreglar las conexiones de los trabajadores de NGINX que no son suficientes

5. Reinicie el servidor NGINX

Ejecute el siguiente comando para verificar la sintaxis de su archivo de configuración actualizado.

                      $ sudo nginx -t

                    

Si no hay errores, ejecute el siguiente comando para reiniciar el servidor NGINX.

                      $ sudo service nginx reload #debian/ubuntu
$ systemctl restart nginx #redhat/centos
                    

Lea también: Cómo deshabilitar ETag en NGINX

6. Verificar la autenticación básica

Abra el navegador y visite la URL (por ejemplo, www.example.con/admin) que ha protegido. Debería ver una pantalla de autenticación como la siguiente.

CodePre facilita la visualización de datos y la supervisión en paneles en tiempo real. Prueba CodePre gratis.

Acerca de CodePre

CodePre es una poderosa plataforma de informes y tableros para pequeñas y medianas empresas. Cree paneles, gráficos e informes para su negocio en minutos. Obtenga información de los datos rápidamente. ¡Pruébalo gratis hoy!

Related Posts