如何使用 Kerberos 进行 samba 身份验证

时间:2021-05-05 15:19:55

标签: active-directory kerberos ntlm samba

我将 WS 2016 作为 AD/DC 运行,其中禁用了 NTLM/NTLMv2(Kerberos 是一种可行的方法)。我已经使用本教程“Integrate Ubuntu with AD”成功地将 Ubuntu 机器加入了它。如果一切正常(Samba 除外),可以查看 AD 上的用户和组,并可以使用 AD 用户登录 Ubuntu 机器。

现在,当我尝试使用 AD 用户登录到 samba 共享时,我得到 NT_STATUS_NTLM_BLOCKED,这是预期的,感觉 NTLM 被 AD 阻止了。

现在我的问题是如何设置(强制)Samba 使用 kerberos 代替 NTLM?

2 个答案:

答案 0 :(得分:0)

听起来您认为 SMB 服务器只是接收您的密码,然后使用 NTLM 或 Kerberos 对其进行验证。这不是它的工作原理。

在 SMB 中,客户端在连接到服务器时使用 NTLM 或 Kerberos。您不能强制服务器使用 Kerberos,因为这不是服务器的决定;它可以提供 Kerberos 或不提供,但如果客户端不支持 Kerberos,它就不能让客户端支持 Kerberos。

大多数移动 SMB 客户端库没有任何 Kerberos 支持(由于复杂性);他们只会使用 NTLM。

答案 1 :(得分:0)

我对此问题的“解决方案”只是从 NTLM 限制策略中排除特定服务器。

Active Directory 服务器上的“本地组策略/计算机配置/Windows 设置/安全设置/本地策略/安全选项”中有两个策略:

  • 网络安全:限制 NTLM:在此域中添加服务器例外
  • 网络安全:限制 NTLM:为 NTLM 身份验证添加远程服务器例外

因此在这两个策略下定义的服务器能够使用 NTLM。

不是解决方案,但目前是一种解决方法。