Nginx com autenticação PAM através do pam_script

5

Alguém configurou essa configuração? Não está funcionando para mim.

Eu instalei o nginx-extras no Ubuntu 12.04 (ele é construído com o módulo PAM) e adicionei a configuração do site:

location ^~ /restricted_place/ {
    auth_pam              "Please specify login and password from main_site";
    auth_pam_service_name "nginx";
}

Depois, em /etc/pam.d/nginx :

auth    required    pam_script.so dir=/path/to/my/auth_scripts

E escrevi o mais simples /path/to/my/auth_scripts/pam_script_auth (também tentei escrever scripts complicados)

#!/bin/sh
exit 0 # should allow anyone

Não funciona. O script é iniciado (escrevi script funcional completo, que executa com êxito, verifica as credenciais, grava em seu próprio log e retorna o código de saída correto, além de ser consideravelmente longo). Mas nenhum acesso é concedido, apenas rejeitado.

Em /var/log/nginx/error.log aparece esta linha:

2012/09/13 10:44:42 [alert] 1666#0: waitpid() failed (10: No child processes)

Se eu especificar em /etc/pam.d/nginx :

auth    required    pam_unix.so

e conceda o direito de usuário www-data de ler /etc/shadow , a autorização unix funciona bem. Mas a autenticação do script não funciona.

Eu não consigo entender, onde está o problema. Está no módulo nginx ou no módulo pam_script?

    
por Envek 13.09.2012 / 03:40

2 respostas

2

O módulo PAM nginx também executa a operação PAM account , então você também precisa configurar isso. Você pode usar o módulo pam_permit para sempre ter sucesso:

auth    required    pam_script.so dir=/path/to/my/auth_scripts
account required    pam_permit.so
    
por 12.02.2013 / 00:31
1

Tente seguir o log de autenticação ( tail -f /var/log/auth.log ) durante a autenticação, ele mostrará todas as solicitações de pam e talvez também o erro / aviso / exceção que ficará claro para você.

    
por 16.10.2012 / 00:21