SSH - 1s hängen bei "Eingabe einer interaktiven Sitzung" (nicht DNS; möglicherweise im Zusammenhang mit SELinux)

9

Ich habe ein Problem unter CentOS 6.7, bei dem SSH-Anmeldungen 1s mehr sind als bei Nicht-6.7-Computern in diesem Netzwerk (z. B. 7.2, 5.11). Das Ausführen des Debuggens auf der Clientseite zeigte den Hang bei "Eingabe einer interaktiven Sitzung".

Der Befehl, auf den ich diesen Test time ssh <host> truestütze, stammt von meinem Laptop und verwendet SSH-Schlüssel.

Die beiden Dinge, die ich bereits überprüft / geändert habe, sind UseDNSund GSSAPIAuthenticationund beide sind deaktiviert.

Ich habe einen separaten Daemon an einem anderen Port mit aktiviertem Debugging gestartet und festgestellt, wo der kurze Hang auftritt:

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

{1s hang}

debug3: ssh_selinux_setup_exec_context: done

SELinux ist auf "zulässig" eingestellt. Ich bin mir nicht sicher, warum es überhaupt darum geht, "Kontexte zu setzen". Gibt es eine Möglichkeit, diese beiden besser miteinander auszukommen, ohne SELinux vollständig zu deaktivieren? Mir ist klar, dass 1s nicht viel ist, aber ich verwende diesen bestimmten Computer als SSH-Gateway für Hosts mit IP-Whitelists (dies ist ein statischer IP-Computer) und er summiert sich im Laufe des Tages.

Nach dem Laufen einer Strace ist der Hang etwas körniger:

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>

Das Schreiben /selinux/userdauert allein 350 ms.

Update 1 - Dinge, die ich seitdem versucht habe :

  • Aktualisierung. Viele der Boxen mussten aktualisiert werden. Dies hat keine wesentlichen Auswirkungen auf die Anmeldezeiten.
  • semodule -d unconfined- Dies hat sich positiv ausgewirkt und die Anmeldezeiten um ca. 500 ms verkürzt. Meine C7- und C5.11-Boxen (die ich seitdem (wieder) gelernt habe, haben SELinux deaktiviert) haben jedoch einen Durchschnitt von ~ 525 ms
  • Vergleich meiner C6.7-Maschinen - Es stellt sich heraus, dass die 64-Bit-Boxen schneller sind als meine 32-Bit-Boxen. Vielleicht ist dies für einige ein "duh" -Moment, aber da keine dieser Boxen besonders besteuert wird, hatte ich keine Abweichung von 100-300 ms erwartet. Ich konnte die 1s-Marke (850 ms) auf einem der 64-Bit-Hosts überschreiten. Das niedrigste auf 32bit war 1.085s

Frage ich zu viel Ist 10-1200 ms eine akzeptable Anmeldezeit für selinux-zulässige Maschinen? Neugierig, was die Benchmarks anderer Leute sind.

Morgon
quelle
Überprüfen Sie Ihre Systemprotokolle.
Michael Hampton
Ich habe ... Leider nichts Besonderes in messagesodersecure
Morgon
@Morgon: Haben Sie überprüft, ob Sie auf diesem Computer etwas wie "fail2ban" - fail2ban.org - ausführen und / oder ob Sie "iptables" auf eine Weise eingerichtet haben, die möglicherweise eine Art "Ratenbegrenzung" bewirkt? eingehende SSH-Verbindungen abhängig von der Quell-IP-Adresse (n)?
Ricmarques
4
Wenn Protokolle nicht helfen, sollten Sie wahrscheinlich verwenden straceund sehen, an welchem ​​Anruf es hängt.
Andrew B
1
Danke, @ AndrewB. Ich habe es hier gepostet: pastebin.com/raw/3c08tcMd . Wenn Sie nach "/ selinux / user" suchen, wird beim Versuch, in diese Datei zu schreiben, die Wartezeit von 1s angezeigt. - Auf diesem Weg habe ich einen geringfügig verwandten Beitrag zum Deaktivieren von "nicht eingeschränkten" Domains gefunden ( bugzilla.redhat.com/show_bug.cgi?id=811656#c9 ). Dies spart ~ 0,5 Sekunden nach meinen Anmeldungen, ist aber immer noch 0,5 Sekunden langsamer als Cent7 / FC4. Ich bin immer noch auf der Suche nach dem letzten Stück Leistung, wenn möglich.
Morgon

Antworten:

1

Dies hängt möglicherweise nicht zusammen, aber Selinux-bezogene Langsamkeit wurde für IPA-basierte Konten hier gemeldet: https://access.redhat.com/discussions/3499951

Die Lösung für diesen Fall lautet:

Ich habe in SSSD- und IPA-Benutzerforen nachgesehen und da meine Systeme SELINUX nicht verwenden, habe ich dies dem Domänenabschnitt in der sssd-Konfiguration hinzugefügt:

selinux_provider=none

Danach erfolgt der Anmeldevorgang erwartungsgemäß sofort.

Chutz
quelle