SSH-1s 在“进入交互式会话”处挂起(不是 DNS;可能与 SELinux 有关)

SSH-1s 在“进入交互式会话”处挂起(不是 DNS;可能与 SELinux 有关)

我在 CentOS 6.7 上遇到了一个问题,SSH 登录时间比此网络上任何非 6.7 的机器(例如 7.2、5.11)都长 1 秒。在客户端运行调试时,在“进入交互式会话”处显示挂起。

我用来进行此测试的命令来自time ssh <host> true我的笔记本电脑,使用 SSH 密钥。

我已经检查/修改的两件事是UseDNSGSSAPIAuthentication,并且都已被禁用。

我在另一个端口上启动了一个单独的守护进程并开启了调试,并发现了短暂挂起发生的位置:

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

{1s hang}

debug3: ssh_selinux_setup_exec_context: done

SELinux 设置为“宽容”。我不确定它为什么还要费心“设置上下文”。有没有办法让这两者更好地相处,而无需完全禁用 SELinux?我知道 1s 并不多,但我将这台特定的机器用作具有 IP 白名单的主机的 SSH 网关(这是一台静态 IP 机器),并且它在一天中不断累积。

运行 strace 之后,挂起的情况更加明显:

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>

仅写入就/selinux/user需要 350 毫秒。

更新 1 - 我尝试过的方法

  • 更新。许多盒子需要更新。这对登录时间没有任何实质性影响。
  • semodule -d unconfined- 这产生了积极的影响,将登录时间减少了大约 500 毫秒。但是,我的 C7 和 C5.11 盒子(我后来(重新)了解到它们已禁用 SELinux)平均约为 525 毫秒
  • 比较我的 C6.7 机器 - 结果表明 64 位机器比我的 32 位机器更快。对于某些人来说,这可能是一个“愚蠢”的时刻,但由于这些机器都没有特别耗电,所以我没想到会有 100-300 毫秒的差异。我能够在其中一台 64 位主机上打破 1 秒的记录(850 毫秒)。32 位上的最低记录是 1.085 秒

我要求太多了吗?10-1200ms 是允许 selinux 的机器可以接受的登录时间吗?好奇其他人的基准是什么。

答案1

这可能没有关系,但此处已报告了基于 IPA 的帐户与 selinux 相关的缓慢问题:https://access.redhat.com/discussions/3499951

该案例的解决方案是:

我查看了 SSSD 和 IPA 用户论坛,由于我的系统不使用 SELINUX,因此我继续将其添加到 sssd 配置中的域部分:

selinux_provider=none

此后,登录过程立即完成,正如预期的那样。

相关内容