SSH - 1s travam em “Entrando na sessão interativa” (não DNS; possivelmente relacionado ao SELinux)

9

Estou tendo um problema no CentOS 6.7, em que os logins SSH são 1s a mais do que qualquer máquina que não seja 6.7 nesta rede (por exemplo, 7.2, 5.11). A execução da depuração no lado do cliente mostrou o travar em "Entrando na sessão interativa".

O comando que estou usando para basear esse teste é time ssh <host> truedo meu laptop, usando Chaves SSH.

As duas coisas que eu já verifiquei / modifiquei são UseDNSe GSSAPIAuthentication, e ambas estão desabilitadas.

Iniciei um daemon separado em uma porta diferente com a depuração ativada e descobri onde ocorre a interrupção curta:

debug1: SELinux support enabled
debug3: ssh_selinux_setup_exec_context: setting execution context

{1s hang}

debug3: ssh_selinux_setup_exec_context: done

O SELinux está definido como 'permissivo'. Não sei ao certo por que isso se incomodaria em "definir contextos". Existe alguma maneira de fazer com que esses dois se dêem melhor sem desabilitar completamente o SELinux? Sei que 1s não é muito, mas uso essa máquina em particular como um gateway SSH para hosts com listas de permissões de IP (esta é uma máquina de IP estática) e aumenta ao longo do dia.

Depois de executar um rastreio, o travamento é um pouco mais granular:

22:16:05.445032 open("/selinux/user", O_RDWR|O_LARGEFILE) = 4 <0.000090>
22:16:05.445235 write(4, "unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 unconfined_u", 56) = 56 <0.334742>
22:16:05.780128 read(4, "18\0unconfined_u:system_r:prelink_mask_t:s0-s0:c0.c1023\0unconfined_u:system_r:unconfined_mount_t:s0-s0:c0.c1023\0unconfined_u:system_r:abrt_helper_t:s0-s0:c0.c1023\0unconfined_u:system_r:oddjob_mkhomedir_t:s0-s0:c0.c1023\0unconfined_u:system_r:unconfined_notrans_t:s0-s0:c0.c1023\0unconfined_u:system_r:unconfined_execmem_t:s0-s0:c0.c1023\0unconfined_u:system_r:unconfined_java_t:s0-s0:c0.c1023\0unconfined_u:system_r:unconfined_mono_t:s0-s0:c0.c1023\0unconfined_u:system_r:chkpwd_t:s0-s0:c0.c1023\0unconfined_u:system_r:passwd_t:s0-s0:c0.c1023\0unconfined_u:system_r:updpwd_t:s0-s0:c0.c1023\0unconfined_u:system_r:mount_t:s0-s0:c0.c1023\0unconfined_u:system_r:rssh_t:s0-s0:c0.c1023\0unconfined_u:system_r:xauth_t:s0-s0:c0.c1023\0unconfined_u:system_r:unconfined_t:s0-s0:c0.c1023\0unconfined_u:system_r:openshift_t:s0-s0:c0.c1023\0unconfined_u:unconfined_r:oddjob_mkhomedir_t:s0-s0:c0.c1023\0unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023\0", 4095) = 929 <0.000079>

Escrever para /selinux/userleva 350ms sozinho.

Atualização 1 - Coisas que tentei desde então :

  • Atualizando. Muitas das caixas exigiam atualizações. Isso não teve nenhum efeito material nos tempos de login.
  • semodule -d unconfined- Isso teve um efeito positivo, reduzindo o tempo de login em aproximadamente 500ms. No entanto, minhas caixas C7 e C5.11 (que eu aprendi desde então) têm o SELinux desativado) em média ~ 525ms
  • Comparando minhas máquinas C6.7 - Acontece que as caixas de 64 bits são mais rápidas que as minhas caixas de 32 bits. Talvez este seja um momento de 'duh' para alguns, mas como nenhuma dessas caixas é particularmente tributada, eu não esperava uma variação de 100 a 300ms. Consegui quebrar a marca 1s (850ms) em um dos hosts de 64 bits. O mais baixo em 32 bits foi 1.085s

Estou pedindo demais? 10-1200ms é um tempo de login aceitável para máquinas perminivas com selinux? Curioso para saber quais são os benchmarks de outras pessoas.

Morgon
fonte
Verifique os logs do sistema.
Michael Hampton
Eu tenho ... Infelizmente, nada digno de nota em messagesousecure
Morgon
@Morgon: Você verificou se está executando algo como "fail2ban" - fail2ban.org - nessa máquina e / ou se configurou o "iptables" de alguma forma que possa estar fazendo algum tipo de "limitação de taxa" para conexões SSH recebidas, dependendo do (s) endereço (s) IP de origem?
Ricmarques 17/01
4
Se os logs não estiverem ajudando, você provavelmente deve usar stracee ver em que chamada está pendente.
Andrew B
1
Obrigado, @AndrewB. Publiquei aqui: pastebin.com/raw/3c08tcMd . se você procurar "/ selinux / user", verá o tempo de espera 1s ao tentar gravar nesse arquivo. - Seguindo esse caminho, encontrei um post marginalmente relacionado sobre como desativar domínios "não confinados" ( bugzilla.redhat.com/show_bug.cgi?id=811656#c9 ). Isso raspa ~ 0,5 segundos dos meus logins, mas ainda 0,5 segundos mais lento que o Cent7 / FC4. Ainda procurando obter esse último pedaço de desempenho, se possível.
Morgon

Respostas:

1

Isso pode não estar relacionado, mas a lentidão relacionada ao selinux foi relatada para contas baseadas em IPA aqui: https://access.redhat.com/discussions/3499951

A solução para esse caso é:

Procurei nos fóruns de usuários SSSD e IPA e, como meus sistemas não usam o SELINUX, fui adiante e adicionei isso à seção domínio na configuração do sssd:

selinux_provider=none

Após isso, o processo de login é imediato, conforme o esperado.

chutz
fonte