阻止 SMB 上的 NTLM 连接

SMB 客户端现在支持阻止远程出站连接的 NTLM 身份验证。 阻止 NTLM 身份验证可以防止不良行为者诱骗客户端向恶意服务器发送 NTLM 请求,从而对抗暴力攻击、破解和哈希传递攻击。 将组织的身份验证协议切换到 Kerberos 时也需要 NTLM 阻止,Kerberos 比 NTLM 更安全,因为它可以通过其票证系统验证服务器身份。 但是,组织也可以启用此保护层,而不必完全禁用 NTLM。

先决条件

SMB 客户端的 NTLM 阻止需要满足以下先决条件:

  • 在以下某一操作系统上运行的 SMB 客户端。
    • Windows Server 2025 或更高版本。
    • Windows 11 版本 24H2 或更高版本。
  • 允许使用 Kerberos 的 SMB 服务器。

提示

NTLM 阻止只是 SMB 客户端功能。 SMB 客户端内置于 Windows Server 和 Windows 客户端操作系统中。 目标 SMB 服务器可以是任何可以使用 PKU2U 或 kerberos 的操作系统。

配置 SMB 客户端 NTLM 阻止

从 Windows Server 2025 和 Windows 11 版本 24H2 开始,可以选择将 SMB 配置为阻止 NTLM。 若要提高运行早期版本的 Windows 的部署的安全性,必须通过编辑相关的组策略或在 PowerShell 中运行特定命令来手动禁用 NTLM。

配置 NTLM 阻止:

  1. 打开“组策略管理控制台”

  2. 在控制台树中,转到计算机配置>管理模板>网络>Lanman 工作站

  3. 右键单击阻止 NTLM(LM、NTLM、NTLMv2)并选择编辑

  4. 选择“启用”。

启用 NTLM 阻止的异常

在某些情况下,可能需要允许某些计算机使用 NTLM,而不是全局阻止。 例如,当尝试连接的 SMB 服务器未加入 Active Directory 域时。

若要启用 NTLM 阻止的异常列表,请:

  1. 组策略编辑器控制台树中,转到计算机配置>管理模板>网络>Lanman 工作站

  2. 右键单击阻止 NTLM 服务器异常列表,然后选择编辑

  3. 选择“启用”。

  4. 输入要允许 NTLM 身份验证的远程计算机的 IP 地址、NetBIOS 名称和完全限定的域名 (FQDN)。

映射 SMB 驱动器时阻止 NTLM

还可以通过运行以下命令在映射新 SMB 驱动器时阻止 NTLM。

使用 NET USE 映射驱动器时,运行此命令可指定 NTLM 阻止:

NET USE \\server\share /BLOCKNTLM

运行此命令可在映射 SMB 驱动器时指定 NTLM 阻止:

New-SmbMapping -RemotePath \\server\share -BlockNTLM $true