
Me gustaría poder autenticar a un usuario local de Linux con sus credenciales al acceder a un sitio. Estoy usando ngx_http_auth_pam_module. En el archivo nginx.conf tengo la siguiente configuración para la directiva de ubicación:
location / {
proxy_pass http://somewebsite:5000;
root html;
index index.html index.htm;
auth_pam "Secure area";
auth_pam_service_name "nginx";
}
Con las sintaxis "auth_pam" y "auth_pam_service_name" en mi archivo nginx.conf, cuando accedo al sitio, se me solicita que ingrese las credenciales. En el directorio /etc/pam.d he creado un archivo de servicio "nginx" con lo siguiente:
auth required pam_unix.so
account required pam_unix.so
Estoy ejecutando esto en un servidor CentOS 7. Entiendo que tendría que crear un usuario y/o grupo de Linux local y posiblemente proporcionar acceso al archivo /etc/shadow pero usando los tutoriales que encontré en línea todavía no puedo iniciar sesión con un usuario local. ¿Alguien podría indicarme los pasos para hacerlo funcionar y poder iniciar sesión con un usuario local de Linux al acceder al sitio?
Gracias, se agradece cualquier ayuda y puedo brindar más información si es necesario.
Respuesta1
ElLÉAMEpara este módulo nginx de terceros dice:
Tenga en cuenta que el módulo se ejecuta como usuario del servidor web, por lo que los módulos PAM utilizados deben poder autenticar a los usuarios sin ser root; eso significa que si desea utilizar el
pam_unix.so
módulo para autenticar usuarios, debe permitir que el usuario del servidor web lea el/etc/shadow
archivo si eso no le asusta (en sistemas tipo Debian puede agregar elwww-data
usuario alshadow
grupo).
Tenga en cuenta bien las implicaciones de seguridad de permitir que su servidor web y/o aplicación web lean el archivo oculto.