在 Windows Server 2022 Azure Edition 和 Windows Server Insider(预览版)中配置 SMB over QUIC 客户端访问控制

重要

Windows Insider 和 Windows Server Insider 内部版本提供预览版。 此信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 Microsoft 不对此处提供的信息作任何明示或默示的担保。

通过 QUIC 客户端访问控制 SMB,可以限制哪些客户端可以通过 QUIC 服务器访问 SMB。 客户端访问控制为连接到文件服务器的设备创建允许列表和阻止列表。 客户端访问控制为组织提供了更多的保护,而无需更改进行 SMB 连接时使用的身份验证,也不会改变最终用户体验。

本文介绍如何使用 PowerShell 在 Windows 11 和 Windows Server 2022 Datacenter:Azure Edition 上为 SMB over QUIC 配置客户端访问控制。 若要继续执行说明,必须安装三月更新 KB5035853 或 KB5035857,才能运行最新的 Windows 11 Insider 内部版本或 Windows Server Insider 内部版本。

若要详细了解如何配置基于 QUIC 的 SMB,请参阅基于 QUIC 的 SMB

客户端访问控制的工作原理

客户端访问控制检查连接到服务器的客户端正在使用已知的客户端证书,或者具有由共享根证书颁发的证书。 管理员将此证书颁发给客户端,并将哈希添加到服务器维护的允许列表。 当客户端尝试连接到服务器时,服务器会将客户端证书与允许列表进行比较。 如果证书有效,则服务器证书通过 UDP 端口 443 创建 TLS 1.3 加密隧道,并授予客户端对共享的访问权限。 客户端访问控制还支持具有使用者可选名称的证书。

还可以将基于 QUIC 的 SMB 配置为通过吊销证书或明确拒绝某些设备访问来阻止访问。

先决条件

在配置客户端访问控制之前,需要一个 SMB 服务器,并满足以下先决条件。

还需要一个 SMB 客户端,并满足以下先决条件。

注意

建议将基于 QUIC 的 SMB 与 Active Directory 域配合使用,但这不是必需的。 还可以在具有本地用户凭据和 NTLM 的已加入工作组的服务器上使用基于 QUIC 的 SMB。

配置 SMB 客户端

收集 SMB 客户端证书信息

若要使用 PowerShell 收集客户端证书哈希,请执行以下操作:

  1. 在 SMB 客户端上打开权限提升的 PowerShell 提示符。

  2. 运行以下命令,列出客户端证书存储中的证书。

    Get-ChildItem -Path Cert:\LocalMachine\My
    
  3. 运行以下命令,将证书存储在变量中。 将 <subject name> 替换为想要使用的证书的使用者名称。

    $clientCert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -Match "<subject name>"}
    
  4. 运行以下命令,记下客户端证书的 SHA256 哈希。 配置客户端访问控制时,需要此标识符。

    $clientCert.GetCertHashString("SHA256")
    

注意

存储在 $clientCert 对象中的指纹使用 SHA1 算法。 New-SmbClientCertificateMapping 等命令使用此方法。 还需要 SHA256 指纹来配置客户端访问控制,这些指纹将使用针对同一证书的不同算法获得不同的指纹。

将客户端证书映射到 SMB 客户端

若要将客户端证书映射到 SMB 客户端,请执行以下操作:

  1. 在 SMB 客户端上打开权限提升的 PowerShell 提示符。

  2. 运行 New-SmbClientCertificateMapping 命令以映射客户端证书。 将 <namespace> 替换为 SMB 服务器的完全限定域名 (FQDN),并使用在上一节中使用变量收集的 SHA1 客户端证书指纹。

    New-SmbClientCertificateMapping -Namespace <namespace> -Thumbprint $clientCert.Thumbprint -StoreName My
    

完成后,SMB 客户端将使用经过证书验证的客户端向匹配 FQDN 的 SMB 服务器进行身份验证。

配置客户端访问控制

授予单个客户端

按照步骤,使用客户端访问控制授予特定客户端对 SMB 服务器的访问权限。

  1. 登录 SMB 服务器。

  2. 在 SMB 服务器上打开权限提升的 PowerShell 提示符。

  3. 运行 Grant-SmbClientAccessToServer 以授予对客户端证书的访问权限。 将 <name> 替换为 SMB 服务器的主机名,将 <hash> 替换为在收集 SMB 客户端证书信息部分中收集的 SHA256 客户端证书标识符。

    Grant-SmbClientAccessToServer -Name <name> -IdentifierType SHA256 -Identifier <hash>
    

现在已授予对客户端证书的访问权限。 可以通过运行 Get-SmbClientAccessToServer 命令,验证客户端证书访问权限。

授予特定证书颁发机构

按照步骤,使用客户端访问控制向特定证书颁发机构(也称为颁发者)授予对客户端的权限。

  1. 登录 SMB 服务器。

  2. 在 SMB 服务器上打开权限提升的 PowerShell 提示符。

  3. 运行 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 Insider 内部版本 26090 开始,管理员现在可以通过运行以下命令为客户端禁用 SMB over QUIC:

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。