为什么本地根用户能够变成任何 LDAP 用户?

为什么本地根用户能够变成任何 LDAP 用户?

我知道有人问过这个问题这里之前,但我对答案并不满意,不知道是否可以恢复并劫持一个旧问题。

我们有工作站在 LDAP 服务器上对用户进行身份验证。但是,本地 root 用户可以su无需密码即可成为任何 LDAP 用户。从我的角度来看,这听起来像是一个巨大的安全问题,我希望可以在服务器级别避免这个问题。

我可以想象以下场景,一个用户可以冒充另一个用户,但不知道如何防止这种情况:

  1. 用户 A 的权限有限,但可以使用其 LDAP 密码登录公司工作站。他们可以cat /etc/ldap.conf找出 LDAP 服务器的地址,并可以ifconfig查看自己的 IP 地址。(这只是获取 LDAP 地址的一个例子,我认为这通常不是一个秘密,而且模糊性并不难克服)
  2. 用户 A 拿出自己的个人笔记本电脑,配置身份验证和网络接口以匹配公司工作站,并将网线从工作站插入笔记本电脑,启动并以本地 root 身份登录(这是他的笔记本电脑,因此他具有本地 root 权限)
  3. 作为 root,他们su可以成为 LDAP 上任何其他可能有或可能没有更多权限的用户(无需密码!),但至少,他们可以毫无问题地模仿该用户。

这里的其他答案说这是正常的 UNIX 行为,但听起来确实不安全。

例如,模拟用户可以在 NFS 安装上充当该用户吗?(笔记本电脑甚至具有相同的 IP 地址)。我知道他们无法在远程计算机上充当 root 用户,但他们仍然可以成为他们想要的任何其他用户!

一定有办法在 LDAP 服务器级别防止这种情况发生,对吧?或者也许在 NFS 服务器级别?我是否遗漏了某些可以真正防止这种情况发生的流程部分?

谢谢!!

答案1

我认为你的情况不成立。

假设攻击者将遵循您的1、2、3点,并将成为他们自己带来的机器上的不同 UID(用户)。

然后到底怎么样?他们已经可以以 root 身份访问自己的计算机,并且在自己的系统上使用匿名 LDAP 作为用户后端,以 su 身份成为用户,这和以下方法一样好:

useradd differentUser
su - differentUser

... 根本不使用 LDAP。

因为 LDAP 只会替换本地用户存储(例如/etc/passwd)——请参阅nsswitch.conf其手册。

如果他们想登录到您网络上的任何其他机器,他们仍然需要为其他用户提供有效的凭据。

这怎么就不安全了?

NFS 挂载

不可以。为了能够在 NFS 挂载上充当该用户,他们首先必须能够从某处挂载 NFS 共享。

如果/etc/exportsNFS 服务器可以自由地允许他们挂载 NFS 共享,那么他们就不需要 LDAP,他们只需挂载并浏览它即可。

相关内容