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.