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> true
do meu laptop, usando Chaves SSH.
As duas coisas que eu já verifiquei / modifiquei são UseDNS
e 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/user
leva 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.
messages
ousecure
strace
e ver em que chamada está pendente.Respostas:
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 é:
fonte