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

8

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

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

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

Eu iniciei um daemon separado em uma porta diferente com depuração e descobri onde ocorre o atalho:

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'. Eu não tenho certeza por que iria se preocupar com "contextos de configuração". Existe alguma maneira de ter esses dois se dando melhor sem desabilitar o SELinux completamente? Eu percebo que 1s não é muito, mas eu uso essa máquina em particular como um gateway SSH para hosts com listas brancas de IP (esta é uma máquina IP estática), e ela se soma ao longo do dia.

Depois de executar um strace, 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
debug1: SELinux support enabled
debug3: ssh_selinux_setup_exec_context: setting execution context

{1s hang}

debug3: ssh_selinux_setup_exec_context: done
unconfined_u:system_r:prelink_mask_t:s0-s0:c0.c1023
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%pre%unconfined_u:system_r:prelink_mask_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:unconfined_mount_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:abrt_helper_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:oddjob_mkhomedir_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:unconfined_notrans_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:unconfined_execmem_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:unconfined_java_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:unconfined_mono_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:chkpwd_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:passwd_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:updpwd_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:mount_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:rssh_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:xauth_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:unconfined_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:openshift_t:s0-s0:c0.c1023%pre%unconfined_u:unconfined_r:oddjob_mkhomedir_t:s0-s0:c0.c1023%pre%unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023%pre%", 4095) = 929 <0.000079>
unconfined_u:system_r:unconfined_mount_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:abrt_helper_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:oddjob_mkhomedir_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:unconfined_notrans_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:unconfined_execmem_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:unconfined_java_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:unconfined_mono_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:chkpwd_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:passwd_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:updpwd_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:mount_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:rssh_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:xauth_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:unconfined_t:s0-s0:c0.c1023%pre%unconfined_u:system_r:openshift_t:s0-s0:c0.c1023%pre%unconfined_u:unconfined_r:oddjob_mkhomedir_t:s0-s0:c0.c1023%pre%unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023%pre%", 4095) = 929 <0.000079>

Escrever para /selinux/user leva apenas 350ms.

Atualização 1 - coisas que tentei desde :

  • 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 os tempos de login em aproximadamente 500 ms. No entanto, minhas caixas C7 e C5.11 (que eu já (re) aprendi possuem o SELinux desabilitado) têm média ~ 525ms
  • Comparando minhas máquinas C6.7 - Acontece que as caixas de 64 bits são mais rápidas que minhas caixas de 32 bits. Talvez este seja um momento de 'duh' para alguns, mas como nenhuma dessas caixas é particularmente sobrecarregada, eu não esperava uma variância de 100 a 300 ms. Consegui quebrar a marca 1s (850ms) em um dos hosts de 64 bits. O menor em 32 bits foi 1.085s

Estou pedindo demais? É 10-1200ms um tempo de login aceitável para máquinas permissivas selinux? Curioso como são os benchmarks das outras pessoas.

    
por Morgon 17.01.2016 / 16:11

0 respostas