了解将 nscd 积极生存时间设置为较长持续时间的风险

了解将 nscd 积极生存时间设置为较长持续时间的风险

正如我在中提到的另一个线程,我有一个支持两打 Linux 服务器的 LDAP 系统。当 LDAP 服务器由于各种原因(防火墙规则更改、断电等)而关闭时,我的其余系统就会挂起。

我希望建立一些冗余,并偶然发现了有关使用nscdsssd本地缓存登录的文章。

我的所有服务器都安装了 nscd,并具有以下设置

enable-cache            passwd      yes
positive-time-to-live   passwd      600

这些是默认设置。如果我理解正确的话,nscd 每次登录都会缓存密码 10 分钟。

为了处理意外的 LDAP 服务器停机,我想知道是否可以将 增加到positive-time-to-live更大的数字,比如一整天(86400 秒)。

当 LDAP 服务器关闭时,这是否使我能够在 24 小时内登录?

这样做有什么风险吗?

我在各种线程中看到了sssd类似的目的,尽管我尝试过,但它破坏了我的 PAM 设置并使所有登录“权限被拒绝”。由于无法弄清楚原因,我决定sssd暂时删除 (),并专注于使用nscd

我的所有服务器都在各种 LTS 版本上运行 ubuntu

答案1

如果我理解正确的话,nscd 每次登录都会缓存密码 10 分钟。

不,它只缓存在 /etc/passwd 中找到的用户信息,这通常是所有内容除了密码。这就是shadow映射 – 但大多数 LDAP 配置不使用影子;他们根本不会向 nsswitch 透露密码哈希。

当 LDAP 服务器关闭时,这是否使我能够在 24 小时内登录?

很可能不会。在几乎所有设置中,通过 LDAP 登录不是通过 nsswitch 完成的(即不是通过检索密码哈希进行本地验证);这是通过 PAM 主动联系 LDAP 服务器并让它验证密码来完成的。

缓存的唯一方法是通过 PAM。如果您的 pam_ldap 模块没有内置缓存,则pam_ccache可以将该模块插入到其上方以提供类似的功能。

或者,如果您确实正在寻找冗余,那么设置第二个 LDAP 服务器。使用 OpenLDAP 的“Syncrepl”使其自动复制数据(甚至可以在两个方向上)。

(很奇怪的是,您的 LDAP 服务器比网络的其余部分更容易受到断电的影响,但如果例如有多个电路,则将第二个服务器放在断电较少的电路上......)

相关内容