dla*_*nod 3 security windows active-directory group-policy server-message-block
我们已在测试 GPO 上将“ Microsoft 网络服务器:服务器 SPN 目标名称验证级别”设置为“客户端需要”。
我们的测试系统在其主机文件中具有一些自定义计算机别名,但是一旦打开该选项,我们就无法再使用计算机别名访问 SMB 共享。
我一直在努力寻找有关此交互的信息,因此希望有人能够在这里解释交互,以及是否有办法补救?
这与“hosts”文件 xe2x80x93 无关,它破坏了通过与服务器“真实”名称不同的主机名访问的共享。您的结果是正常的,因为这实际上就是 GPO 的全部目的。
\n有问题的 GPO 很像某些 Web 服务器中发现的 TLS SNI 强制:客户端声明“我在这里与服务器 SRV01.EXAMPLE.COM 交谈”,并且如果服务器无法将该名称识别为以下名称之一:它所服务的虚拟主机,它完全拒绝客户端。因此,如果客户端声明它想要与您的 /etc/hosts 别名之一对话,但服务器不知道该别名,则会拒绝客户端。
\nKerberos 已经内置了类似的强制措施(这就是您需要使用 为别名注册 SPN 的原因setspn),但 GPO 使其更加严格,并将相同的保护扩展到 NTLM。
(正如文档页面中已经提到的,这应该是为了防止 NTLM 中继攻击,其中恶意服务器 A 接受 NTLM 身份验证,然后将完全相同的 NTLM 数据包转发到真实服务器 B \xe2\x80\x93 ,因此可以防止攻击,因为服务器 B 会从客户端看到“我想与服务器 A 交谈”。)
\n仍然可以使用主机别名,但它需要不断增加的注册表旋钮。netdom computername REALHOST /add:THEALIAS官方方法是像这篇 TechNet 文章中那样使用,我发现博客文章声称即使经过严格的 SPN 验证,也足以使别名可用,但它确实似乎还不够\xe2\x80 \x93 它忘记触及的注册表值至少有一个(如果不是两个的话)。
NETDOM 在 AD 中为别名注册Kerberos SPN,允许为它们获取 Kerberos 票证,类似于手动发出这两个命令:
\nsetspn -S HOST/THEALIAS REALHOST$\nsetspn -S HOST/thealias.example.com REALHOST$\nRun Code Online (Sandbox Code Playgroud)\n这是 Kerberos 所必需的,并且没有理由不在 AD 环境中使用 Kerberos,因此无论您选择使用 NETDOM 还是手动操作,您都应该注册别名 SPN。
\n(从技术上讲,SMB 使用“cifs/”主体,但在 AD 中,只要注册“host/”SPN,它们就会隐式存在。)
\n然后 NETDOM 在服务器注册表的两个位置添加别名,使服务器在 AD DNS 中注册其附加名称并通过 NetBIOS 浏览器宣布它们:
\n路径: HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Dnscache\\Parameters
\n名称: AlternateComputerNames
\n类型: REG_MULTI_SZ
\n数据: { thealias.example.com}
路径: HKLM:\\SYSTEM\\CurrentControlSet\\Services\\LanmanServer\\Parameters
\n名称: OptionalNames
\n类型: REG_MULTI_SZ
\n数据: { THEALIAS}
它们似乎对身份验证没有任何影响(甚至 Kerberos 也没有),所以我相信如果您使用 /etc/hosts 或在 DNS 中创建手动 CNAME 记录,这两者都是完全可选的。
\nNETDOM不会创建但我发现从服务器本身访问别名所必需的另一个参数是:
\nHKLM:\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\MSV1_0BackConnectionHostNamesthealias.example.com}仅“环回”连接需要此选项,因此一般情况下可能不是严格必要的,但至少在我的情况下,服务器确实需要连接到其自己的别名,因此需要进行设置。
\n最后,我发现“SPN 目标名称验证”功能有自己的允许名称列表,必须手动更新 \xe2\x80\x93 否则,即使存在上述所有设置,别名也会由于严格的 SPN 验证而被拒绝:
\nHKLM:\\SYSTEM\\CurrentControlSet\\Services\\LanmanServer\\ParametersSrvAllowedServerNamesTHEALIASthealias.example.com您需要列出我的实验中每个别名 \xe2\x80\x93 的短名称和FQDN,列出一个并不自动暗示另一个。
\n注册 Kerberos SPN 并SrvAllowedServerNames设置注册表值后,即使经过严格的目标验证,别名最终也应该可以正常工作。
| 归档时间: |
|
| 查看次数: |
2624 次 |
| 最近记录: |