如果一台Linux服务器采用LDAP进行认证,而这个LDAP服务器因为某种原因宕机了,那么用户如何登录呢?
我想答案是他们不能?所以我想我真正想问的是系统管理员应该怎么做才能防止这种情况发生?最佳做法是什么?
我的具体情况是,我们有一小群开发人员在少数几台服务器上工作。每台服务器上的个人用户帐户越来越麻烦,因此我们希望通过 LDAP 实现集中身份验证。我担心我们的 LDAP 服务器上的某些问题会导致任何人都无法登录任何内容。所以我想弄清楚我们应该怎么做。
我目前的想法是:
- 拥有多个复制的 LDAP 服务器以避免单点故障似乎是个好主意,但它会增加很多复杂性,而这是我们真正想要避免的。
- 我们是否应该确保每台服务器上始终本地配置一个用户,以便在 LDAP 无法正常工作时将其用作后门?这是否是一种严重的安全隐患?
- 用户会发现 LDAP 服务器宕机和他们输入错误密码之间有什么区别吗?
答案1
Linux(与带有 AD 的 Windows 类似)具有缓存成功登录的功能,并且可以在 LDAP 中断的情况下使用此缓存(这可以通过 SSSD 或 nscd 完成 - 如果您使用的是 RHEL/CentOS/Fedora,我建议使用 SSSD)。当然,这仅在用户最近成功登录该计算机时才有效。当然,这不适用于不使用 PAM 而是直接使用 LDAP 服务器进行身份验证的服务,例如某些 Web 服务。
在如此简单的设置中添加复制并不是很困难,而且我认为它不会增加很多复杂性,但在我看来,增加的弹性是值得的。
- 在我看来,拥有一个具有权限的工作本地用户
sudo
是强制性的,即使使用缓存也是如此(至少如果你通过 ssh 关闭 root 登录)。 - 用户是否看到差异取决于客户端实现。使用 PAM 和缓存,用户甚至不会注意到,除非用户不在缓存中(这看起来像是密码错误,直到您查看日志)。