在 Windows Server 2022 Azure Edition 和 Windows Server 2025 中配置 SMB over QUIC 客户端访问控制
通过 QUIC 客户端访问控制 SMB,可以限制哪些客户端可以通过 QUIC 服务器访问 SMB。 客户端访问控制为连接到文件服务器的设备创建允许列表和阻止列表。 客户端访问控制为组织提供了更多的保护,而无需更改进行 SMB 连接时使用的身份验证,也不会改变最终用户体验。
本文介绍如何使用 PowerShell 在 Windows 11 和 Windows Server 2022 Datacenter:Azure Edition 上为 SMB over QUIC 配置客户端访问控制。 若要继续说明,必须安装 3 月更新KB5035853或KB5035857,才能运行最新的 Windows 11 版本 24H2 或 Windows Server 2025。
若要详细了解如何配置基于 QUIC 的 SMB,请参阅基于 QUIC 的 SMB。
客户端访问控制的工作原理
客户端访问控制检查连接到服务器的客户端正在使用已知的客户端证书,或者具有由共享根证书颁发的证书。 管理员将此证书颁发给客户端,并将哈希添加到服务器维护的允许列表。 当客户端尝试连接到服务器时,服务器会将客户端证书与允许列表进行比较。 如果证书有效,则服务器证书通过 UDP 端口 443 创建 TLS 1.3 加密隧道,并授予客户端对共享的访问权限。 客户端访问控制还支持具有使用者可选名称的证书。
还可以将基于 QUIC 的 SMB 配置为通过吊销证书或明确拒绝某些设备访问来阻止访问。
注意
建议将基于 QUIC 的 SMB 与 Active Directory 域配合使用,但这不是必需的。 还可以在具有本地用户凭据和 NTLM 的已加入工作组的服务器上使用基于 QUIC 的 SMB。
先决条件
在配置客户端访问控制之前,需要一个 SMB 服务器,并满足以下先决条件。
- 运行 Windows Server 2022 Datacenter:Azure Edition 并已安装 2024 年 3 月 12 日 - KB5035857 更新或 Windows Server 2025 或更高版本的 SMB 服务器。 若要解锁预览功能,还必须安装 Windows Server 2022 KB5035857 240302_030531 功能预览。
- 在服务器上启用并配置了基于 QUIC 的 SMB。 若要了解如何配置基于 QUIC 的 SMB,请参阅基于 QUIC 的 SMB。
- 如果使用的是由其他证书颁发机构 (CA) 颁发的客户端证书,则需要确保服务器信任该 CA。
- 对正在配置的 SMB 服务器的管理权限。
重要
安装 KB5035857 后,必须在组策略中启用此功能:
- 单击开始,键入 gpedit,然后选择编辑组策略。
- 导航到 Computer Configuration\Administrative Templates\KB5035857 240302_030531 Feature Preview\Windows Server 2022。
- 打开 KB5035857 240302_030531 功能预览策略,然后选择已启用。
还需要一个 SMB 客户端,并满足以下先决条件。
- 在以下某一操作系统上运行的 SMB 客户端:
- 已安装 2024 年 3 月 12 日—KB5035857 更新的 Windows Server 2022 Datacenter:Azure Edition。 若要解锁预览功能,还必须安装 Windows Server 2022 KB5035857 240302_030531 功能预览。
- 已安装 2024 年 3 月 12 日—KB5035853 更新的 Windows 11。 若要解锁预览功能,还必须安装 Windows Server 11(原始版本)KB5035854 240302_030535 功能预览。
- Windows Server 2025 或更高版本。
- Windows 11 版本 24H2 或更高版本。
- 客户端证书,该证书为:
- 为客户端身份验证 (EKU 1.3.6.1.5.5.7.3.2) 发布。
- 由 SMB 服务器信任的证书颁发机构颁发。
- 安装在客户端的证书存储中。
- 对正在配置的 SMB 服务器的管理权限。
重要
安装 KB5035854 后,必须在组策略中启用此功能:
- 单击开始,键入 gpedit,然后选择编辑组策略。
- 导航到 Computer Configuration\Administrative Templates\KB5035854 240302_030535 Feature Preview\Windows 11(原始版本)。
- 打开 KB5035854 240302_030535 功能预览策略,然后选择已启用。
配置 SMB 客户端
收集 SMB 客户端证书信息
若要使用 PowerShell 收集客户端证书哈希,请执行以下操作:
在 SMB 客户端上打开权限提升的 PowerShell 提示符。
运行以下命令,列出客户端证书存储中的证书。
Get-ChildItem -Path Cert:\LocalMachine\My
运行以下命令,将证书存储在变量中。 将
<subject name>
替换为想要使用的证书的使用者名称。$clientCert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -Match "<subject name>"}
运行以下命令,记下客户端证书的 SHA256 哈希。 配置客户端访问控制时,需要此标识符。
$clientCert.GetCertHashString("SHA256")
注意
存储在 $clientCert
对象中的指纹使用 SHA1 算法。 New-SmbClientCertificateMapping
等命令使用此方法。 还需要 SHA256 指纹来配置客户端访问控制,这些指纹将使用针对同一证书的不同算法获得不同的指纹。
将客户端证书映射到 SMB 客户端
若要将客户端证书映射到 SMB 客户端,请执行以下操作:
在 SMB 客户端上打开权限提升的 PowerShell 提示符。
运行
New-SmbClientCertificateMapping
命令以映射客户端证书。 将<namespace>
替换为 SMB 服务器的完全限定域名 (FQDN),并使用在上一节中使用变量收集的 SHA1 客户端证书指纹。New-SmbClientCertificateMapping -Namespace <namespace> -Thumbprint $clientCert.Thumbprint -StoreName My
完成后,SMB 客户端将使用经过证书验证的客户端向匹配 FQDN 的 SMB 服务器进行身份验证。
配置客户端访问控制
授予单个客户端
按照步骤,使用客户端访问控制授予特定客户端对 SMB 服务器的访问权限。
登录 SMB 服务器。
在 SMB 服务器上打开权限提升的 PowerShell 提示符。
运行
Grant-SmbClientAccessToServer
以授予对客户端证书的访问权限。 将<name>
替换为 SMB 服务器的主机名,将<hash>
替换为在收集 SMB 客户端证书信息部分中收集的 SHA256 客户端证书标识符。Grant-SmbClientAccessToServer -Name <name> -IdentifierType SHA256 -Identifier <hash>
现在已授予对客户端证书的访问权限。 可以通过运行 Get-SmbClientAccessToServer
命令,验证客户端证书访问权限。
授予特定证书颁发机构
按照步骤,使用客户端访问控制向特定证书颁发机构(也称为颁发者)授予对客户端的权限。
登录 SMB 服务器。
在 SMB 服务器上打开权限提升的 PowerShell 提示符。
运行
Grant-SmbClientAccessToServer
以授予对客户端证书的访问权限。 将<name>
替换为 SMB 服务器的主机名,将<subject name>
替换为颁发者证书的完整 X.500 可分辨名称。 例如,CN=Contoso CA, DC=Contoso, DC=com
。Grant-SmbClientAccessToServer -Name <name> -IdentifierType ISSUER -Identifier "<subject name>"
禁用 SMB over QUIC
从 Windows 11 版本 24H2 开始,管理员现在可以通过运行以下命令在 QUIC 上为客户端禁用 SMB:
Set-SmbClientConfiguration -EnableSMBQUIC $false
同样,可以通过在以下路径中禁用启用 SMB over QUIC 策略,在组策略中执行此操作:
- Computer Configuration\Administrative Templates\Network\Lanman Workstation
连接到 SMB Server
完成后,运行以下命令之一,测试是否可以连接到服务器:
NET USE \\<server DNS name>\<share name> /TRANSPORT:QUIC
或
New-SmbMapping -RemotePath \\<server DNS name>\<share name> -TransportType QUIC
如果可以连接到服务器,那么已经使用客户端访问控制成功地配置了基于 QUIC 的 SMB。