Eu odeio o PAM desde que surgiu.
Como ativo a depuração do PAM no Debian Squeeze no nível de administrador?
Eu verifiquei todos os recursos que consegui encontrar. Google, páginas de manual, tanto faz. A única coisa que ainda não tentei (simplesmente não me atrevo, mencionei que odeio o PAM?) É procurar na fonte da biblioteca do PAM.
Eu tentei pesquisar no google por uma solução, nada. O que eu encontrei até agora:
http://www.bitbull.ch/wiki/index.php/Pam_debugging_funktion ( /etc/pam_debug
) e
http://nixdoc.net/man-pages/HP-UX/man4/pam.conf.4.html ( debug
opção nas entradas do PAM in /etc/pam.d/
).
Não, não funciona. Sem saída PAM, nada, silêncio absoluto.
Enquanto procurava por uma solução, eu até segui os links para Pam, que são postos de gasolina aqui na Alemanha. Bem, sim, talvez em todos esses bilhões de acessos possa esconder uma pista, mas atire em mim, eu estaria morto antes de descobrir.
O resto é FYI:
Que problema eu tive?
Depois de atualizar para o Debian Squeeze, algo ficou estranho (bem, ei, era uma vez o que estava certo sobre o Etch ... ah, sim, Woody). Portanto, provavelmente não é culpa do Debian, apenas uma configuração complicada e duradoura. Imediatamente tive a impressão de que tem a ver com o PAM, mas realmente não sabia o que estava acontecendo. Eu estava completamente no escuro, deixado sozinho, indefeso como um bebê, YKWIM. Alguns logins ssh funcionaram, outros não. Foi meio engraçado. Nenhuma pista ssh -v
, nenhuma pista /var/log/*
, nada. Apenas "autenticação bem-sucedida" ou "falha na autenticação", às vezes o mesmo usuário que efetuou login paralelamente teve sucesso em uma sessão e falhou na outra, ao mesmo tempo. E nada que você realmente possa se apossar.
Depois de cavar cargas de trem de outras opções, pude descobrir. Existe nullok
e nullok_secure
, um especial do Debian. Algo estragado /etc/securetty
e dependendo do tty
(que é um tanto aleatório) um login foi rejeitado ou não. REALMENTE AGRADÁVEL, ufa!
A correção foi fácil e agora está tudo bem novamente.
No entanto, isso me deixou com a pergunta: como depurar essa bagunça no futuro. Não é a primeira vez que o PAM me deixa louco. Então, eu gostaria de ver uma solução final. Final como em "resolvido", não final como em "armageddon". Obrigado.
Ah, BTW, isso novamente fortaleceu minha crença de que é bom odiar o PAM desde que surgiu. Eu mencionei isso?
passwd -d user
e tente ssh dentro da caixa como estauser
. A saída "senha com falha" no syslog não tem nada a ver com a depuração do PAM, portanto o PAM permanece silencioso.PermitEmptyPasswords yes
em/etc/ssh/sshd_config
claro, em seguida, PAM saídas algo comopam_unix(sshd:auth): authentication failure
, mas ainda nada para o canal de depuração nem qualquer indício qual módulo PAM causou a falha./var/log/auth.log
arquivo? Descobri recentemente que o Ubuntu o possui e registra todas as coisas relacionadas ao pam por lá. Nenhuma das respostas aqui me ajudou, mas procurar/var/log/auth.log
me ajudou a resolver meu problema./var/log/auth.log
ésyslog
. O problema não é log, mas depuração. Se, por exemplo, a pilha PAM falhar mais cedo, você não verá nada, porque os módulos para os quais a saídasyslog
não é chamada. Ou algo falha e algo não, mas ambos registram exatamente as mesmas linhas. É correto que, suponho, 95% de todos os casos possam ser resolvidos examinando os logs usuais, mas 5% não, pois simplesmente não há vestígios do que realmente acontece nos bastidores.Respostas:
Algumas coisas para você tentar:
Você ativou o log de mensagens de depuração no syslog?
Adicione a seguinte linha:
Saia com
:wq!
.Você pode ativar a depuração para todos os módulos, assim:
OU você pode ativar a depuração apenas para os módulos nos quais deseja adicionar "debug" ao final das linhas relevantes
/etc/pam.d/system-auth
ou nos outros/etc/pam.d/*
arquivos:As mensagens de depuração devem começar a aparecer
/var/log/debug.log
. Espero que isto te ajude!fonte
nullok
especial que apenas este módulo esteja sem depuração. Deixe-me dizer com estas palavras: a falta de depuração em um pedaço de código central tão crucial é um pesadelo pior do que ser assombrado por Freddy Kruger.PAM
é muda. Por enquanto, eu a aceito como "solução" atéPAM
capitular. Obrigado.Pelo menos no CentOS 6.4,
/etc/pam_debug
NÃO é usado.Se o módulo pam_warn.so estiver instalado, você poderá obter alguns resultados de log desta maneira:
etc. Este módulo garante que não irá interferir com o processo de autenticação a qualquer momento, mas registra coisas significativas via syslog.
Atualizar
Após examinar o código e fazer algumas compilações, descobri que (1) é possível ativar esse modo de depuração pela fonte e (2) um patch RHEL torna o recurso quase inutilizável (pelo menos o módulo pam_unix) e (3) é provavelmente é melhor corrigir o código de qualquer maneira.
Para que isso funcione no RHEL, você pode obter o Linux-PAM ... src.rpm (para qualquer versão 1.1) e alterar o arquivo de especificação da seguinte maneira:
Encontre a linha que começa com
% configure \
e depois, adicione --enable-debug \
Em seguida, crie o rpm e instale (com força, para substituir os pacotes existentes). Agora crie o arquivo /var/run/pam-debug.log:
Se o arquivo não existir, a saída de depuração será enviada para o stderr.
Esse envio ao stderr é, na minha opinião, estúpido e é o que causa o conflito do patch. Você pode alterar esse comportamento acessando o arquivo libpam / include / security / _pam_macros.h e substituindo as 4 linhas de
arquivo de log = stderr;
com
Na construção, você recebe avisos sobre instruções inacessíveis, mas elas podem ser ignoradas. Você pode fazer essa alteração em um script sed (e colocá-lo na seção% prep do RPM após os patches) ...
Se você fizer esse pequeno patch, poderá restaurar o% patch2, pois ele deve funcionar novamente corretamente.
fonte
Passei várias horas tentando descobrir como habilitar logs de depuração no PAM no CentOS 6.4. Embora essa pergunta seja para o Debian, ainda vou escrever como fazê-lo no CentOS, na esperança de que outras pessoas não tenham que gastar o tempo que eu já tenho.
Como se viu, a ativação dos logs de depuração no
pam
pacote do CentOS é simples. A dificuldade decorre do fato de envolver recompilação do pacote. Então, primeiro encontre o SRPM (por exemplopam-1.1.1-13.el6.src.rpm
) a partir daqui . Pessoas que não sabem sobre a compilação de pacotes a partir de SRPMs, podem consultar as etapas de configuração de um ambiente de criação de RPM .Aqui está o passo principal. Abra o arquivo de especificações e adicione
--enable-debug
à%build
seção naconfigure
chamada. Recompile! Reinstale o pacote recém-criado. Por fim, crie o arquivo em que os logs de depuração serão gravados.Se você não criar o arquivo, muitos logs serão exibidos no terminal, o que pode não ser muito útil.
fonte
O Debian e o Ubuntu (e talvez outras distros) têm um arquivo de log especial no qual toda a saída do pam é registrada:
/var/log/auth.log
Estou lutando com um problema relacionado ao pam há um dia e meio, finalmente descobri esse arquivo de log e me salvei da loucura.
Aqui está uma amostra do conteúdo desse arquivo quando as coisas não saem como planejado.
Veja como fica quando funciona:
Observe que nenhuma das outras possibilidades para ativar o log de depuração do pam funcionou para mim.
fonte
pam_*
realmente são PAM realated. As outras linhas são produzidas pelas ferramentas de qualquer maneira, independentemente de usarem PAM ou não. Isso significa: Se o PAM negar, por qualquer motivo, é realmente difícil encontrar a causa real, se estiver no PAM. As linhas que não são do PAM não são úteis (pois o problema está no PAM) e as linhas do PAM também não são úteis, pois geralmente são silenciosas demais. Com a presença de muitos módulos PAM, é realmente difícil adivinhar qual módulo pode ser o culpado, e muito menos descobrir como habilitar a depuração, pois isso é diferente para cada um.Você poderia expandir um pouco isso?
Por página de manual da securetty :
O comportamento que você descreve parece bastante com o fato de a segurança estar funcionando normalmente (supondo que você esteja realmente fazendo logon como root).
Também aqui pode haver restrições que não são do PAM, portanto, pode ajudar a fornecer algumas dicas sobre como é sua
/etc/ssh/sshd_config
aparência.Notavelmente, da sua descrição:
sshd_config
:PermitRootLogin no
sshd_config
deAllowGroups
ouAllowUsers
. Uma linha de amostra pode se parecer com:AllowGroups users admins
É claro que é perfeitamente possível que o PAM faça parte do problema, mas seus principais 'sintomas' parecem-me que poderiam ser explicados por outros meios.
fonte
Asket ... Eu realmente amei o seu post :) Eu estava lutando com coisas desse tipo nas últimas 15 horas ... (Eu poderia ter feito uma pausa de 30 minutos)
De alguma forma, consegui fazer tudo o que você fez, o que significa que eu tenho um / etc / pam_debug e depuro nas entradas do pam. MAS, como no meu caso, eu estava lutando
pam_mysql
, tive que colocar outroverbose=1
depoisdebug
nas minhas entradas no pam:Esse "sqllog" serve apenas para gravar logs no banco de dados.
Então, talvez isso ajude você um pouco.
Todos nós odiamos o PAM. Boa sorte!
fonte
pam_unix(sshd:auth): unrecognized option [verbose=1]