当将其用于 PAM/NSS 时如何处理 LDAP 故障?

当将其用于 PAM/NSS 时如何处理 LDAP 故障?

我使用一对冗余的 OpenLDAP 服务器通过 NSS 进行 PAM 身份验证和目录服务。到目前为止,它 100% 可靠,但没有什么东西可以永远完美运行。

我现在应该采取什么步骤,以便有机会从 LDAP 服务器故障中恢复?在我的非正式测试中,似乎即使已经通过身份验证的 shell 也基本上无用,因为所有用户名/uid 查找都会挂起,直到目录服务器恢复。

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

  1. 不要在 LDAP 服务器本身上使用 NSS-LDAP 和 PAM-LDAP。
  2. 在所有仅接受来自本地子网的公钥身份验证的框上创建一个根级帐户,并妥善保护该密钥。我不确定这会给我带来多大好处,因为一旦我登录,我怀疑我将无法完成任何事情,因为所有用户 ID 查找都会挂起。

还有其他建议吗?

答案1

基于网络的身份验证规则 1:始终有一个可用的本地帐户。

除了规则 #1 之外(为了使其有用,而不会被 nss_ldap 阻塞,试图与死服务器通信):

使用 pam_ldap/nss_ldap 您可以将设置bind_policy为“软”(服务器发生故障时立即返回),从而消除阻塞问题。您还可以设置值timelimit以使 nss_ldap 在无法联系 LDAP 服务器时返回。请注意,这还有其他影响(例如,在 SSH 连接期间发生软故障将使您的 LDAP 帐户无法访问,并且偶尔的故障将导致某些 LDAP UID 的用户名未知)。

还有一些未记录的 nss_ldap 选项:nss_reconnect_tries,,,& ,它们nss_reconnect_sleeptime的作用正如其名称所暗示的那样,可以帮助您解决 LDAP 服务器故障nss_reconnect_maxsleeptimenss_reconnect_maxconntries没有将您的 bind_policy 设置为 soft (这是我正在做的 - 3 次重新连接尝试,最大睡眠时间为 10 秒 = 最大延迟 30 秒等待 LDAP 服务器)。

相关内容