
Gostaria que um usuário local do Linux fosse autenticado com suas credenciais ao acessar um site. Estou usando o ngx_http_auth_pam_module. No arquivo nginx.conf tenho a seguinte configuração para a diretiva location:
location / {
proxy_pass http://somewebsite:5000;
root html;
index index.html index.htm;
auth_pam "Secure area";
auth_pam_service_name "nginx";
}
Com as sintaxes "auth_pam" e "auth_pam_service_name" em meu arquivo nginx.conf, ao acessar o site, sou solicitado a inserir as credenciais. No diretório /etc/pam.d criei um arquivo de serviço "nginx" com o seguinte:
auth required pam_unix.so
account required pam_unix.so
Estou executando isso em um servidor CentOS 7. Entendo que teria que criar um usuário e/ou grupo local do Linux e possivelmente fornecer acesso ao arquivo /etc/shadow, mas usando os tutoriais que encontrei on-line, ainda não consigo fazer login com um usuário local. Alguém poderia me fornecer etapas sobre como fazê-lo funcionar para que eu possa fazer login com um usuário Linux local ao acessar o site?
Obrigado, qualquer ajuda será apreciada e posso dar mais informações se necessário.
Responder1
OLeia-mepara este módulo nginx de terceiros diz:
Observe que o módulo é executado como usuário do servidor web, portanto os módulos PAM utilizados devem ser capazes de autenticar os usuários sem serem root; isso significa que se você quiser usar o
pam_unix.so
módulo para autenticar usuários você precisa permitir que o usuário do servidor web leia o/etc/shadow
arquivo se isso não te assusta (em sistemas como o Debian você pode adicionar owww-data
usuário aoshadow
grupo).
Observe bem as implicações de segurança de permitir que seu servidor web e/ou aplicativo web leia o arquivo shadow.