SSH - 1s se bloque à "Entrer dans une session interactive" (Pas DNS; peut-être lié à SELinux)

9

J'ai un problème sur CentOS 6.7 où les connexions SSH sont 1s de plus que toutes les machines non 6.7 sur ce réseau (par exemple 7.2, 5.11). L'exécution du débogage côté client a montré le blocage de "Entrée dans une session interactive".

La commande que j'utilise pour baser ce test provient time ssh <host> truede mon ordinateur portable, en utilisant les clés SSH.

Les deux choses que j'ai déjà vérifiées / modifiées sont UseDNSet GSSAPIAuthentication, et les deux sont désactivées.

J'ai démarré un démon distinct sur un port différent avec le débogage, et j'ai trouvé où se produit le blocage court:

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

{1s hang}

debug3: ssh_selinux_setup_exec_context: done

SELinux est défini sur «permissif». Je ne sais pas pourquoi cela dérangerait même avec "la mise en contexte". Existe-t-il un moyen de faire mieux s'entendre ces deux sans désactiver complètement SELinux? Je me rends compte que 1s n'est pas grand-chose, mais j'utilise cette machine particulière comme passerelle SSH vers des hôtes avec des listes blanches IP (il s'agit d'une machine IP statique), et cela s'ajoute tout au long de la journée.

Après avoir exécuté une strace, le blocage est un peu plus granulaire:

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>

L'écriture /selinux/userprend 350 ms seule.

Mise à jour 1 - Ce que j'ai essayé depuis :

  • Mise à jour. Beaucoup de boîtes nécessitaient des mises à jour. Cela n'a pas eu d'effet significatif sur les temps de connexion.
  • semodule -d unconfined- Cela a eu un effet positif, réduisant les temps de connexion d'environ 500 ms. Cependant, mes boîtes C7 et C5.11 (que j'ai depuis (ré) apprises ont désactivé SELinux) en moyenne ~ 525 ms
  • Comparer mes machines C6.7 - Il s'avère que les boîtiers 64 bits sont plus rapides que mes boîtiers 32 bits. Peut-être que c'est un moment «duh» pour certains, mais comme aucune de ces boîtes n'est particulièrement taxée, je ne m'attendais pas à un écart de 100 à 300 ms. J'ai pu briser la marque des 1 (850 ms) sur l'un des hôtes 64 bits. Le plus bas sur 32 bits a été de 1,085 s

Suis-je trop demander? 10-1200 ms est-il un temps de connexion acceptable pour les machines autorisant le selinux? Curieux de savoir quelles sont les références des autres.

Morgon
la source
Vérifiez vos journaux système.
Michael Hampton
J'ai ... Malheureusement, rien de remarquable dans messagesousecure
Morgon
@Morgon: Avez-vous vérifié si vous exécutez quelque chose comme "fail2ban" - fail2ban.org - dans cette machine et / ou si vous avez configuré "iptables" d'une manière ou d'une autre qui peut faire une sorte de "limitation de débit" pour connexions SSH entrantes en fonction de l'adresse IP source?
ricmarques
4
Si les journaux ne vous aident pas, vous devriez probablement utiliser straceet voir à quel appel il est suspendu.
Andrew B
1
Merci, @AndrewB. Je l'ai posté ici: pastebin.com/raw/3c08tcMd . si vous recherchez "/ selinux / user", vous verrez le temps d'arrêt 1s tout en essayant d'écrire dans ce fichier. - En suivant cette voie, j'ai trouvé un article marginalement lié sur la désactivation des domaines «non confinés» ( bugzilla.redhat.com/show_bug.cgi?id=811656#c9 ). Cela réduit de ~ 0,5 seconde mes connexions, mais toujours 0,5 seconde plus lentement que Cent7 / FC4. Toujours à la recherche de cette dernière performance, si possible.
Morgon

Réponses:

1

Cela peut ne pas être lié, mais la lenteur liée à selinux a été signalée pour les comptes basés sur IPA ici: https://access.redhat.com/discussions/3499951

La solution pour ce cas est:

J'ai regardé dans les forums d'utilisateurs SSSD et IPA et comme mes systèmes n'utilisent pas SELINUX, j'ai continué et ajouté ceci à la section domaine dans la configuration sssd:

selinux_provider=none

Après cela, le processus de connexion est immédiat, comme prévu.

chutz
la source