对 LDAP 的意外严重依赖

对 LDAP 的意外严重依赖

我使用 LDAP 进行用户身份验证仅有的(下面的 nsswitch.conf)在 Ubuntu 18.04 上。但是,如果主机在启动时无法连接到 LDAP 服务器,则启动会被 NTP 和 DNS 阻止。

LDAP 集成由 ldap-auth-client (不是 sssd)实现。

A start job is running for Network Name Resolution
A start job is running for Network Time Synchronization

从 nsswitch.conf 中删除 LDAP 条目允许系统启动。

我可以删除依赖项并仍然允许主机启动吗?

nsswitch.conf:

passwd:         compat systemd ldap
group:          compat systemd ldap
shadow:         compat ldap
gshadow:        files

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

答案1

在正常操作和正常启动期间,可能会执行大量用户 ID (uid)、组 ID (gid) 和组成员身份验证。如果您为用户/组查找配置了 LDAP,那么如果与 LDAP 服务器通信出现问题,这可能会成为问题。即使启动处理系统帐户(例如 ntp、root)的任务也可能导致 LDAP 查找发生。有一种方法可以告诉您的客户端系统避免对某些帐户(例如系统帐户)进行某些 LDAP 查找,而 LDAP 无论如何都不太可能提供任何好处/信息。

我最好的猜测是,您可以通过在 /etc/ldap.conf 文件中添加“nss_initgroups_ignoreusers”条目来修复启动延迟/阻止。

/etc/ldap.conf 中的示例条目:

nss_initgroups_ignoreusers ntp

但是,我不知道为什么带有“nss_initgroups_ignoreusers”的条目还不存在。由于你有带有 ldap-auth-client 的 Ubuntu 18.04,我希望安装 libnss-ldap (这是 ldap-auth-client 的依赖项),并且使用 libnss-ldap 你会得到 /etc/init.d/libnss -ldap,调用 nssldap-update-ignoreusers。 nssldap-update-ignoreusers 将为 nss_initgroups_ignoreusers 创建一个条目。

您可以尝试手动运行(以 root 身份或使用 sudo)nssldap-update-ignoreusers,而不是直接编辑 ldap.conf(事实上,这可能比上面仅使用“ntp”的示例更好,因为它将创建一个更LDAP 组查找时要忽略的用户的完整列表):

 nssldap-update-ignoreusers

在执行任何操作之前,您可能需要保存 ldap.conf 文件的副本,尽管 nssldap-update-ignoreusers 确实在某处保存了 diff 文件。

相关内容