【问题标题】:How to use Kerberos for samba authentication如何使用 Kerberos 进行 samba 身份验证
【发布时间】:2021-05-05 15:19:55
【问题描述】:

我有 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?

【问题讨论】:

  • 您是否在登录到 AD 用户帐户时连接 from 已加入 AD 的计算机?您在尝试连接时是否收到凭据提示(如果是,您输入的是什么用户名)?
  • 我正在从 android 设备连接到 Samba 服务器,但(据我所知)我无法加入域。我尝试使用域 (DOMAIN\username) 和不使用 (username) 登录,在这两种情况下我都得到与上述相同的错误。在浏览互联网时,我注意到需要正确设置一些特殊配置(用于 samba 共享服务器的 CIFS 和 SPN)才能使其正常工作。在大多数在线页面上,我看到需要在运行 Samba 的服务器的 keytab 中生成 CIFS SPN,但是当我加入我的 Samba 机器时,会自动为该用户生成 keytab 文件。

标签: active-directory kerberos ntlm samba


【解决方案1】:

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

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

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

【讨论】:

  • 这似乎是个问题。我假设 android SMB 客户端支持 kerberos。
【解决方案2】:

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

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

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

因此,根据这两个策略定义的服务器能够使用 NTLM。

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

【讨论】:

    猜你喜欢
    • 2011-04-03
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多