为 Windows 配置 SMB 身份验证速率限制器

SMB 身份验证速率限制器是适用于 Windows Server 和 Windows 客户端的 SMB 服务器的一项功能,旨在解决暴力身份验证攻击。 暴力身份验证攻击每秒使用多个用户名和密码猜测尝试轰炸 SMB 服务器。 从 Windows Server 2025 和 Windows 11 版本 24H2 开始,默认启用 SMB 身份验证速率限制器。 每个失败的基于 NTLM 或 PKU2U 的身份验证尝试之间的默认延迟为 2 秒,并且可以进行配置。 在本文中, 了解 SMB 身份验证速率限制器的工作原理以及如何对其进行配置。

如果管理员允许通过 Windows 防火墙访问 SMB 服务器服务以打开或复制远程文件,则不良行为可以使用 SMB 访问作为尝试身份验证的方法。 知道用户名后,攻击者可以使用多种方法将本地或基于 Active Directory 的 NTLM 登录发送到计算机。 密码猜测频率从每秒数十次到数千次登录尝试不等。 要了解有关 NTLM 的详细信息,请参阅 NTLM 概述

如果组织没有入侵检测软件或未设置密码锁定策略,则攻击者可以猜测用户的密码。 尽管 SMB 服务器默认在所有版本的 Windows 上运行,但除非允许防火墙规则,否则默认情况下无法访问。 关闭防火墙并将设备连接到不安全网络的最终用户也面临类似的问题。

SMB 身份验证速率限制器的工作原理

SMB 服务器服务使用 SMB 身份验证速率限制器在每次失败的基于 NTLM 或 PKU2U 的身份验证尝试之间实现 2 秒的延迟。 这意味着,如果攻击者以前在 5 分钟内每秒从客户端发送 300 次暴力尝试(90,000 个密码),那么现在同样的尝试次数将需要 50 小时或更长时间。 与类似的深层防御技术一样,SMB 身份验证速率限制器的目的是通过增加攻击成本,使 Windows 计算机成为不具吸引力的目标。

先决条件

在配置 SMB 身份验证速率限制器之前,需要:

  • 在以下操作系统之一上运行的 SMB 服务器。
    • Windows Server 2025。
    • Windows 11 版本 24H2 或更高版本。
  • 计算机的管理权限。
  • 如果对域使用组策略,则需特权才能创建或编辑组策略对象 (GPO) 并将其链接到相应的组织单位 (OU)。

配置 SMB 身份验证速率限制器

使用 SMB 身份验证速率限制器,可以设置身份验证尝试失败之间的延迟。 也可以在 PowerShell 中手动启用或禁用 SMB 身份验证速率限制器,或使用组策略。 若要启用 SMB 身份验证速率限制器,请执行以下步骤。

以下介绍如何在 PowerShell 中使用 SmbServerConfiguration cmdlet 配置 SMB 身份验证速率限制器。

  1. 以管理员身份打开 PowerShell 窗口。

  2. 确定每次基于 NTLM 或 PKU2U 的身份验证尝试失败之间要延迟的毫秒数。 默认值为 2000 毫秒(2 秒)。 值必须是 100 的倍数,允许的范围为 0-10000。

  3. 运行以下命令,以启用 SMB 身份验证速率限制器。

     Set-SmbServerConfiguration -InvalidAuthenticationDelayTimeInMs <Milliseconds>
    

注意

将变量设置为 0 将禁用 SMB 身份验证速率限制器。

若要查看当前值,请运行以下命令:

Get-SmbServerConfiguration | Format-List -Property InvalidAuthenticationDelayTimeInMs

SMB 身份验证速率限制器不影响 Kerberos;Kerberos 在应用程序协议(如 SMB)连接之前进行身份验证。 SMB 身份验证速率限制器被设计为另一层深层防御,特别是对于未加入域的设备。