如何禁止使用 LDAP root 帐户

如何禁止使用 LDAP root 帐户

我负责我大学的几台服务器。所有这些机器都配置为与我部门的 LDAP 服务器通信,以允许集中用户登录。在此 LDAP 服务器上有一个名为 的用户root

# getent passwd | grep root
root:x:0:0:root:/root:/bin/bash
root:x:0:0:Netbios Domain Administrator:/home/root:/bin/false

root最近,我在我负责的一台服务器上遇到了帐户问题:我的 SSH 连接尝试已成功针对本地root用户进行身份验证,但主目录是从 LDAP 中获取的/home/root.此外,我发现可以在任何服务器上使用 LDAP 凭据以 rootroot身份进行身份验证,即,如果针对本地的身份验证root失败,则会尝试 LDAP root,并且如果密码正确,则用户将以超级用户身份登录。

我认为这不是很安全,root应该消除两个帐户的歧义。然而,根据我们 IT 部门的说法,LDAProot是必要的。

如何root从 LDAP 中过滤掉帐户以禁止使用它进行身份验证?我正在使用pam_ldap.so中的一些 ldap 指令/etc/nsswitch.conf

答案1

方法有很多,以下是一些简单的方法:

  • 更改为/etc/ssh/sshd_configno PermitRootLogin(这通常是一个好主意,然后依靠su/sudo进行管理)。当然这仅影响 SSH。
  • 在各种 PAM 配置文件中使用该pam_listfile模块显式允许或拒绝某些帐户(需要为每个服务完成)
  • 在各个PAM配置文件中将pam_ldap模块配置pam_min_uid为1(或更高),以便root无法登录(需要为每个服务完成)
  • 修改 PAM LDAP 搜索过滤器 ( pam_filter) 以排除用户(例如pam_filter (uidNumber>=1),或者您可以修改基本/范围

最后两者中的任何一个可能最适合您。您可能还需要对本地 PAM 配置进行一些调整,以便本地 root 帐户pam_unix 在失败时也能成功pam_ldap(例如排序和必需/必需/充足)。

相关内容