Tempos limite com authd no CentOS 7

0

No momento, estou tentando aumentar meu sistema de e-mail, permitindo que servidores que receberam e-mails de mim nos últimos dez segundos executem ident pesquisas. Embora as regras necessárias do iptables estejam funcionando perfeitamente, estou enfrentando problemas com o pacote authd instalado.

A chamada de in.authd da linha de comando produz os resultados desejados:

# in.authd -t60 --xerror --os -E 993,53558
993 , 53558 : USERID : OTHER :[U2FsdGVkX19EFvZ6dxXLJJl2oKKW/PVOKmX5ER0WWWs=]

No entanto, ao tentar o mesmo em um soquete de rede, recebo um atraso de até 10 segundos, seguido por um erro:

# time echo 993, 53558 | nc localhost 113
993 , 53558 : ERROR :NO-USER

real    0m5.036s
user    0m0.003s
sys 0m0.007s

O atraso me fez acreditar que havia um problema de permissão que levava a um tempo limite. Observando o código-fonte de authd, isso pode acontecer se a leitura de /proc/net/tcp* falhar ou se as pesquisas nesses arquivos falharem repetidamente. Mas:

Permissões Unix

Usuário de identidade

# finger ident
Login: ident                    Name: 
Directory: /                            Shell: /sbin/nologin
Never logged in.
No mail.
No Plan.

Associações de grupo

# id ident
uid=98(ident) gid=98(ident) groups=98(ident)

Com base nisso, invocar in.authd como o usuário ident funciona conforme o esperado:

# sudo -u ident in.authd -t60 --xerror --os -E 993,53558
993 , 53558 : USERID : OTHER :[U2FsdGVkX1/CxIcvTsEmTnhLSGjnwZ/X9TCwQ4ovZXk=]

Permissões de arquivo

# ls -alZ /proc/net/tcp*
-r--r--r--. root root system_u:object_r:proc_net_t:s0  /proc/net/tcp
-r--r--r--. root root system_u:object_r:proc_net_t:s0  /proc/net/tcp6

SELinux

Nada de suspeito aqui:

# grep ident /var/log/audit/audit.log | audit2why
Nothing to do
# grep auth /var/log/audit/audit.log | audit2why
Nothing to do

Estou um pouco sem idéias. Isso também acontece quando eu permito que in.authd seja iniciado como root. journalctl não é muito útil, pois registra a unidade em questão no estado com falha:

# journalctl -ln5 --unit=auth@*
systemd[1]: Started Authd Ident Protocol Requests Server ([::1]:55841).
systemd[1]: Starting Authd Ident Protocol Requests Server ([::1]:55841)...
systemd[1]: auth@7-::1:113-::1:55841.service: main process exited, code=exited, status=1/FAILURE
systemd[1]: Unit auth@7-::1:113-::1:55841.service entered failed state.
systemd[1]: auth@7-::1:113-::1:55841.service failed.

Colocar in.authd no modo "debug" (se você puder chamá-lo assim) não revela nenhuma informação adicional. Não estou conseguindo impor um nome de usuário via --username , pois estou mais preocupado com o atraso do que com a correção da saída. É claro que, no dia e na época da hospedagem em massa de usuários virtuais, os valores retornados dificilmente estarão corretos em primeiro lugar, mas eu realmente gosto da idéia de retornar algo significativo aqui. Qualquer ajuda é apreciada.

    
por DaSourcerer 09.03.2016 / 15:31

1 resposta

0

Que outros não caiam na mesma armadilha. Tudo está bem. Na seção de testes da documentação da authd:

Execute "telnet localhost auth" and type the two ports separated by a comma. The two ports selected must have a foreign address of localhost, or 127.0.0.1 as well as a matching local address. If they do not, a NO-USER error will be returned.

    
por 08.04.2016 / 02:28