Os logins demoram muito tempo

6

Após a atualização para a autenticação de senha Debian 7.4 de qualquer serviço, demore muito tempo. Isto é verdade para logins SSH, sudo'ing e autenticação com o dovecot (que é configurado para usar o PAM).

Eu posso reverter as entradas de DNS de pesquisa. Esse não parece ser o problema. Parece que algum mecanismo de autenticação está passando por um tempo limite. Eu tentei ativar pam_debug, mas não vejo qualquer saída de depuração em qualquer lugar.

Aqui está um exemplo de quanto tempo leva para fazer um sudo (com um prompt de senha, durante o tempo em que o sudo armazena a senha, ele funciona instantaneamente):

ceicke@h1633420:~$ time sudo who
[sudo] password for ceicke:
ceicke   pts/0        2014-08-01 09:19 (80.131.XXX.XXX)

real    0m27.976s
user    0m0.009s
sys 0m0.014s

Também o SSHing na caixa com a minha chave privada funciona instantaneamente. Então, realmente o processo de verificação de senha leva muito tempo.

Estou um pouco perdido com o que mais posso tentar, especialmente porque o módulo PAM é muito silencioso sobre o que está fazendo.

Atualização 1

Aqui está a saída do strace: link

Há um lote de chamadas de time(null) , o que eu acho que recebe o registro de data e hora atual do Unix. Parece que alguma coisa está ativamente verificando um tempo limite.

Eu noto duas coisas:

  1. a chamada time(null) geralmente é precedida por uma chamada aberta para /dev/urandom , pode ser que meu servidor esteja aguardando para reunir entropia suficiente?
  2. há muitas referências a krb5 em vários lugares. Eu não uso o Kerberos para autenticar, posso simplesmente remover pam_krb5.so das minhas configurações de pam?

Eu não tenho muitas experiências para ler a saída strace, talvez você possa ver mais?

Atualização nº 2

A entropia é bastante baixa no servidor, entre 100 e 200.

    
por Christoph Eicke 01.08.2014 / 07:29

2 respostas

5

Meu primeiro conselho também seria tentar strace -f sudo who . Mas isso não funcionará, já que strace não rastreará programas SUID. Você precisa se conectar ao seu shell usando strace como root e, em seguida, chamar sudo .

No seu tipo de shell

$ echo $$

para obter suas conchas PID. Em seguida, abra outro terminal e torne-se root nesse terminal. Lá você digita

# strace -f -t -T -p $pid -o /tmp/sudo.strace

onde $pid é o PID que você recebeu do outro terminal. Então volte para o seu primeiro terminal e comece

$ sudo who

Depois de obter a saída, volte para o terminal raiz, pare o processo strace com CTRL-C e analise /tmp/sudo.strace

Atualização: Desculpe, esqueci de mencionar duas opções para strace . Com -t prefixa cada linha com a hora do dia e com -T mostra o tempo gasto nas chamadas do sistema. Isso facilita encontrar o ponto em que fica lento.

Atualização 2: Dado que você não precisa do Kerberos, desabilitar o pam_krb5 pode ser uma opção. Você pode comentá-lo nos arquivos em /etc/pam.d / , geralmente nos arquivos chamados * common - **. O Kerberos precisa de alguma entropia e isso pode ser o culpado. Mas, no entanto, verifique essa suposição executando strace com -t .

E você deve alterar sua senha , já que ela pode ser lida no arquivo de texto que você enviou para o pastebin.

    
por 01.08.2014 / 08:25
1

Então, descobriu-se que o Kerberos em combinação com a baixa entropia estava causando o problema. Como eu não estava usando o Kerberos, executei pam-auth-update e desmarcou o Kerberos.

    
por 04.08.2014 / 07:48