使用PAM进行PAM / NSS时处理LDAP失败?

我通过NSS使用冗余的OpenLDAP服务器对PAMvalidation和目录服务。 到目前为止,它一直是100%可靠的,但是永远没有完美的运行。

我现在应该采取哪些步骤,以便我有机会从LDAP服务器故障中恢复? 在我的非正式testing中,似乎甚至已经通过身份validation的shell在很大程度上是无用的,因为所有用户名/用户名查找都会挂起,直到目录服务器回来。

到目前为止,我只想出两件事:

  1. 不要在LDAP服务器上使用NSS-LDAP和PAM-LDAP。
  2. 在所有只接受来自本地子网的公钥authentication的盒子上创build一个根级帐户,并保护好密钥。 我不确定这样做会有多好,因为一旦我login了,我怀疑我将无法完成任何事情,因为所有的用户名查询都将被挂起。

还有其他build议吗?

基于networking的身份validation规则#1:始终有一个本地帐户可用。

除了规则#1(为了使其有用而不会被nss_ldap试图与死亡服务器对话)阻塞:

使用pam_ldap / bind_policy可以将bind_policy设置为“soft”(在服务器故障时立即返回),从而消除阻塞问题。 如果无法联系LDAP服务器,也可以设置timelimit值来使nss_ldap返回。 请注意,这具有其他的含义(如SSH中的软故障将使您的LDAP帐户无法访问,零星的故障将导致某些LDAP UID的未知用户名。

还有一些未nss_reconnect_tries选项: nss_reconnect_triesnss_reconnect_sleeptimenss_reconnect_maxsleeptimenss_reconnect_maxconntries ,它们的名字意味着什么,并且可以帮助您解决LDAP服务器的故障, 而无需将bind_policy设置为soft(这就是我正在做的 – 3次重新连接尝试,最大睡眠时间为10秒=等待LDAP服务器的最大延迟时间为30秒)。