SSH - 1s se bloquea en "Entrar en sesión interactiva" (No DNS; posiblemente relacionado con SELinux)

9

Tengo un problema en CentOS 6.7 donde los inicios de sesión SSH son 1s más que cualquier máquina que no sea 6.7 en esta red (por ejemplo, 7.2, 5.11). La ejecución de la depuración en el lado del cliente mostró el bloqueo en "Entrar en la sesión interactiva".

El comando que estoy usando para basar esta prueba es time ssh <host> truedesde mi computadora portátil, usando SSH Keys.

Las dos cosas que ya he verificado / modificado son UseDNSy GSSAPIAuthentication, y ambas están deshabilitadas.

Comencé un demonio separado en un puerto diferente con la depuración activada, y descubrí dónde se produce el breve bloqueo:

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

{1s hang}

debug3: ssh_selinux_setup_exec_context: done

SELinux está configurado en 'permisivo'. No estoy seguro de por qué incluso se molestaría con "establecer contextos". ¿Hay alguna manera de que estos dos se lleven mejor sin desactivar SELinux por completo? Me doy cuenta de que 1s no es mucho, pero uso esta máquina en particular como una puerta de enlace SSH a hosts con listas blancas de IP (esta es una máquina de IP estática), y se acumula durante todo el día.

Después de ejecutar un strace, el bloqueo es un poco más 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>

Escribir en /selinux/usertoma 350ms solo.

Actualización 1 - Cosas que he probado desde entonces :

  • Actualizando Muchas de las cajas requieren actualizaciones. Esto no ha tenido ningún efecto material en los tiempos de inicio de sesión.
  • semodule -d unconfined- Esto ha tenido un efecto positivo, reduciendo los tiempos de inicio de sesión en aproximadamente 500 ms. Sin embargo, mis cajas C7 y C5.11 (que he aprendido (re) aprendido tienen SELinux desactivado) promedio ~ 525ms
  • Comparando mis máquinas C6.7: Resulta que las cajas de 64 bits son más rápidas que mis cajas de 32 bits. Tal vez este sea un momento 'duh' para algunos, pero como ninguna de estas cajas está particularmente gravada, no esperaba una variación de 100-300ms. Pude romper la marca de 1s (850 ms) en uno de los hosts de 64 bits. El más bajo en 32 bits ha sido 1.085s

¿Estoy pidiendo demasiado? ¿Es 10-1200 ms un tiempo de inicio de sesión aceptable para las máquinas con permiso selinux? Curioso sobre los puntos de referencia de otras personas.

Morgon
fuente
Verifique los registros de su sistema.
Michael Hampton
Tengo ... Desafortunadamente, nada digno de mención en messagesosecure
Morgon
@Morgon: ¿Ha verificado si está ejecutando algo como "fail2ban" - fail2ban.org - en esa máquina y / o si ha configurado "iptables" de alguna manera que puede estar haciendo algún tipo de "limitación de velocidad" para conexiones SSH entrantes dependiendo de las direcciones IP de origen?
ricmarques
44
Si los registros no están ayudando, probablemente debería usar stracey ver qué llamada está pendiente.
Andrew B
1
Gracias, @ AndrewB. Lo publiqué aquí: pastebin.com/raw/3c08tcMd . si busca "/ selinux / user", verá el tiempo de espera de 1s mientras intenta escribir en ese archivo. - Al seguir ese camino, encontré una publicación marginalmente relacionada sobre la desactivación de dominios 'no confinados' ( bugzilla.redhat.com/show_bug.cgi?id=811656#c9 ). Esto afeita ~ .5 segundos desde mis inicios de sesión, pero aún así .5 segundos más lento que Cent7 / FC4. Todavía estoy buscando sacar ese último rendimiento, si es posible.
Morgon

Respuestas:

1

Esto puede no estar relacionado, pero la lentitud relacionada con Selinux se ha informado para las cuentas basadas en IPA aquí: https://access.redhat.com/discussions/3499951

La solución para ese caso es:

Revisé los foros de usuarios de SSSD e IPA y como mis sistemas no usan SELINUX, seguí adelante y agregué esto a la sección de dominio en la configuración de sssd:

selinux_provider=none

Después de esto, el proceso de inicio de sesión es inmediato, como se esperaba.

chutz
fuente