Para configurar la autenticación para una Web o un directorio de ella en NGINX, puedes utilizar la utilidad htpasswd de Apache para almacenar las contraseñas de los usuarios. En este artículo se explicará cómo realizarlo utilizando el módulo "ngx_http_auth_basic_module" de NGINX y las directivas "auth_basic" y "auth_basic_user_file". Tienes más información en la documentación oficial de NGINX haciendo clic aquí.
Cómo instalar htpasswd
Primero deberás instalar el paquete de utilidades de Apache que incluyen htpasswd:
# apt install apache2-utils -y
Cómo utilizar htpasswd para introducir credenciales
# htpasswd -c /etc/nginx/.htpasswd usuario_ejemplo
# htpasswd /etc/nginx/.htpasswd usuario_ejemplo_dos
Cómo configurar autentificación en un site de NGINX
auth_basic "Acceso restringido";
auth_basic_user_file /etc/nginx/.htpasswd;
Una vez agregadas las directivas "auth_basic" y "auth_basic_user_file" a el archivo de configuración de NGINX, guarda el archivo y recarga la configuración para que los cambios surtan efecto. Puedes hacerlo ejecutando el siguiente comando:
# nginx -s reload
Ten en cuenta que deberás utilizar sudo si no estas utilizando el usuario root, para ejecutar este comando y recargar la configuración de NGINX. Con esto, ya deberías poder acceder a tu sitio web protegido mediante autenticación. Cuando intentes acceder a la página, se te pedirá ingresar un nombre de usuario y contraseña válidos del archivo htpasswd.
Cómo proteger el archivo htpasswd
Es importante recordar que el archivo htpasswd contiene información sensible, como los nombres de usuario y contraseñas de tus usuarios. Por lo tanto, debes asegurarte de protegerlo adecuadamente. Una forma de hacerlo es restringir el acceso al archivo mediante permisos de usuario y grupo en Linux. Por ejemplo, puedes ejecutar el siguiente comando en una ventana de terminal para restringir el acceso al archivo htpasswd a solo el usuario "root" y el grupo "www-data":
# chown root:www-data /etc/nginx/.htpasswd
También puedes ejecutar el siguiente comando para restringir el acceso de lectura y escritura al archivo htpasswd a solo el usuario "root":
# chmod 640 /etc/nginx/.htpasswd
Con estos cambios de permisos, solo el usuario "root" y el grupo "www-data" podrán leer y escribir en el archivo htpasswd, lo que lo protege de posibles ataques. Sin embargo, es importante recordar que esto es solo un ejemplo y debes ajustar los permisos de acuerdo a tus necesidades y requerimientos de seguridad.
Recuerda, si tienes consultas sobre esta u otra cuestión relacionada con tus servidores en Clouding, no dudes en escribir a soporte@clouding.io ¡Estamos a tu lado para lo que necesites, consúltanos!