如果 Linux 系统和 LDAP 服务器之间出现用户冲突会发生什么情况?

如果 Linux 系统和 LDAP 服务器之间出现用户冲突会发生什么情况?

我的 LAN 内的 Debian 系统上有一个运行 (Open)LDAP 服务器,并且有多个运行 Linux Mint 的系统配置为 LDAP 客户端。

以下是我的/etc/nsswitch.conf

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

hosts:          files mdns4_minimal [NOTFOUND=return] dns myhostname
networks:       files

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

netgroup:       ldap

我的问题是:如果 LDAP 服务器引入用户冲突(uid/用户名)会发生什么?可以利用此问题来获取客户端的 root 访问权限吗?LDAP 服务器在这方面是否是单点故障?可以预防这种情况吗?

我知道我问了 4 个问题,但它们都是关于同一主题:“用户冲突”。

谢谢!

答案1

  • 与 uid 冲突:如果 LDAP 中的用户 A 和用户 B/etc/passwd具有相同的 UID,则两者都可以访问对方的文件 - 实际上他们是同一个用户。
  • 与用户名冲突:登录时,将查询第一个数据库。在您的示例中,LDAP 用户无法登录
  • Root 漏洞:如果发生 UID 冲突,并且其中一个用户拥有sudo权限或类似权限,则另一个用户也会拥有权限(正如我所说,他们实际上是同一个用户)。
  • LDAP 不是导致此问题的原因 - 您甚至可以在 中拥有多个具有相同 uid 的用户名/etc/passwd。防止这种情况意味着在连接到 LDAP 之前确保没有冲突,之后仅将用户添加到 LDAP,而不是本地文件(服务帐户除外)。这是您的责任,在这种情况下系统不会保护您。

答案2

所发生的情况是,您获得的 UID/GID 号码在各个服务器之间不一致。

情况:

  • 一个用户/组可以在跨服务器中拥有多个不同的 UID/GID 号码
  • 同一 UID/GID 号码可由跨服务器的多个不同用户/组使用

服务器之间不一致的 UID/GID 号码可能会导致一些问题,例如 NFS 导出时的文件所有权问题或在服务器之间切换 SAN 存储/文件系统时的文件所有权问题。

如果您没有一致的 UID/GID 号码,则无法成功使用中央用户身份验证系统(如 LDAP)。

因此,您应该做的是从所有服务器收集信息,以便确定:

  • 跨服务器的唯一用户/组数量
  • 冲突的 UID/GID 数量
  • 每个 UID/GID 的用户/组冲突数是多少
  • 跨服务器具有多个不同 UID/GID 编号的用户/组数量
  • 每个服务器上用户/组的每个 UID/GID 拥有多少个账户的详细分类

基本上,你要对一切有一个总体的了解。通过进行与上述类似的分析并采取措施将所有问题统一起来,你就可以预防所有问题。

至于单点故障部分,您应该检查以下列出的最佳实践这里

为了保护您的 LDAP 服务器,请检查本指南

另请参阅相关漏洞

相关内容