我目前正在研究一个只出现过一次的问题.回到1月3日,当第一次出现时,我们能够重新启动服务器,一切似乎都很好,但现在又回来了.这是一个生产数据库系统,因此找到重启窗口有时会很困难.我希望能够牢牢掌握这次可能发生的事情,然后我们会在几天后重新启动,为问题提供另一个临时解决方案.开始了…
有问题的系统的用户身份验证通过红帽目录服务器9使用LDAP进行处理.下面描述的问题只能在这一台服务器上看到,即使是共享数据库的对应设备也不会显示相同的症状.截至目前,没有LDAP帐户能够进行身份验证并登录到服务器. SSHT正在处理LDAP身份验证,目前无法停止或重新启动.尝试执行任何操作时,SSH控制台都无法响应. (ctrl-c无法退出已发出的命令)
PS显示通常的sssd相关进程正在运行,但尝试kill -9似乎没有成功阻止它们中的任何一个.
ps aux | grep sss | grep -v grep root 1150 0.0 0.0 150828 2908 ? D 09:05 0:00 /usr/libexec/sssd/sssd_nss -d 0 --debug-to-files root 7025 0.0 0.0 93616 2504 pts/2 D 16:18 0:00 /usr/sbin/sssd -f -D root 11148 0.0 0.0 179436 5672 ? D Jan08 16:22 /usr/libexec/sssd/sssd_be -d 0 --debug-to-files --domain default root 32700 0.0 0.0 150784 2908 ? D 10:10 0:00 /usr/libexec/sssd/sssd_pam -d 0 --debug-to-files
使用strace getent -s sss passwd我可以看到一些连接尝试被拒绝,但我不确定该如何处理它们.
connect(3,{sa_family=AF_FILE,path="/var/lib/sss/pipes/nss"...},110) = -1 ECONNREFUSED (Connection refused) close(3) = 0 socket(PF_FILE,SOCK_STREAM,0) = 3 fcntl(3,F_GETFL) = 0x2 (flags O_RDWR) fcntl(3,F_SETFL,O_RDWR|O_NONBLOCK) = 0 fcntl(3,F_GETFD) = 0 fcntl(3,F_SETFD,FD_CLOEXEC) = 0 connect(3,110) = -1 ECONNREFUSED (Connection refused) close(3) = 0 socket(PF_FILE,110) = -1 ECONNREFUSED (Connection refused)
检查lsof |头-n1; lsof | grep / var / lib / sss / pipes /显示好坏系统之间的开放管道要少得多.这些管道的PID与ps aux报告的相同,因此在它们上尝试kill -9也毫无结果.
坏sssd
lsof | head -n1; lsof | grep /var/lib/sss/pipes/ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sssd_be 11148 root 15u unix 0xffff8806635911c0 0t0 31817638 /var/lib/sss/pipes/private/sbus-dp_default.11148 sssd_be 11148 root 16u unix 0xffff880d443d6180 0t0 31783555 /var/lib/sss/pipes/private/sbus-dp_default.11148 sssd_be 11148 root 17u unix 0xffff880c536d94c0 0t0 31783560 /var/lib/sss/pipes/private/sbus-dp_default.11148
好sssd
lsof | head -n1; lsof | grep /var/lib/sss/pipes/ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sssd 26793 root 13u unix 0xffff88030b5d8c40 0t0 3248762734 /var/lib/sss/pipes/private/sbus-monitor sssd 26793 root 14u unix 0xffff8808cc064bc0 0t0 3248762735 /var/lib/sss/pipes/private/sbus-monitor sssd 26793 root 15u unix 0xffff880a9d9bc840 0t0 3248768164 /var/lib/sss/pipes/private/sbus-monitor sssd 26793 root 16u unix 0xffff880040a32f00 0t0 3248768165 /var/lib/sss/pipes/private/sbus-monitor sssd_be 26794 root 15u unix 0xffff8808cc064200 0t0 3248767368 /var/lib/sss/pipes/private/sbus-dp_default.26794 sssd_be 26794 root 16u unix 0xffff880a9d9bd880 0t0 3248763661 /var/lib/sss/pipes/private/sbus-dp_default.26794 sssd_be 26794 root 17u unix 0xffff8809841b4480 0t0 3248763662 /var/lib/sss/pipes/private/sbus-dp_default.26794 sssd_nss 26795 root 16u unix 0xffff880a9d9bd200 0t0 3248751954 /var/lib/sss/pipes/nss sssd_pam 26796 root 16u unix 0xffff880859e26180 0t0 3248774325 /var/lib/sss/pipes/pam sssd_pam 26796 root 17u unix 0xffff880859e27b80 0t0 3248774326 /var/lib/sss/pipes/private/pam
此外,/ var / log / secure包含多个条目
sshd[9177]: pam_succeed_if(sshd:auth): error retrieving information about user su: pam_sss(su-l:session): Request to sssd Failed. Connection refuse crond[29568]: pam_sss(crond:session): Request to sssd Failed. Connection refused
另外,我注意到的第一件事是/ var / log / messages文件中没有数据.它和/ var / log / sssd / logs似乎已经在今天早上9点03分左右停止了收集,/ var / log / secure保持累积数据没有问题.重新启动syslog修复了mesages的问题,但是sssd日志仍然无法运行.
最后我发现dmesg充满了审计等消息:backlog limit exceeded audit audit:audit_backlog = 322> audit_backlog_limit = 320和audit_log_start:122个回调被抑制.我假设这些是从syslog无法正常工作的时候开始的,但尚未验证.
我还在研究这个问题,希望我能找到一些东西,但不仅仅是欢迎人们愿意提供的任何建议和反馈.
非常感谢!
-Omni
解决方法
pam-config -a --ldap
这会将LDAP添加到pam然后运行:
pam-config -d --sss
这将删除/etc/pam.d/中与pam相关的配置文件中的sssd设置
为了确保不使用sss,您可能还需要检查nsswitch.conf是否在正确的位置具有ldap(或者至少没有sss).这是一个启用了sss的/etc/nsswitch.conf:
# # /etc/nsswitch.conf # # An example Name Service Switch config file. This file should be # sorted with the most-used services at the beginning. # # The entry '[NOTFOUND=return]' means that the search for an # entry should stop if the search in the prevIoUs entry turned # up nothing. Note that if the search Failed due to some other reason # (like no NIS server responding) then the search continues with the # next entry. # # Legal entries are: # # compat Use compatibility setup # nisplus Use NIS+ (NIS version 3) # nis Use NIS (NIS version 2),also called YP # dns Use DNS (Domain Name Service) # files Use the local files # [NOTFOUND=return] Stop searching if not found so far # # For more information,please read the nsswitch.conf.5 manual page. # passwd: compat sss group: compat sss hosts: files mdns_minimal [NOTFOUND=return] dns networks: files dns services: files protocols: files rpc: files ethers: files netmasks: files netgroup: files publickey: files bootparams: files automount: files aliases: files passwd_compat: files group_compat: files
此文件已禁用sss并启用了ldap:
passwd: compat ldap group: compat ldap hosts: files mdns_minimal [NOTFOUND=return] dns networks: files dns services: files protocols: files rpc: files ethers: files netmasks: files netgroup: files publickey: files bootparams: files automount: files aliases: files passwd_compat: files group_compat: files