Como autenticar o usuário Linux local com o módulo Nginx PAM?

Como autenticar o usuário Linux local com o módulo Nginx PAM?

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.somódulo para autenticar usuários você precisa permitir que o usuário do servidor web leia o /etc/shadowarquivo se isso não te assusta (em sistemas como o Debian você pode adicionar o www-datausuário ao shadowgrupo).

Observe bem as implicações de segurança de permitir que seu servidor web e/ou aplicativo web leia o arquivo shadow.

informação relacionada