基于 QUIC 的 SMB

适用于:Windows Server 2025、Windows Server 2022 Datacenter:Azure Edition、Windows 11 或更高版本

SMB over QUIC 引入了 TCP 网络传输的替代方案,通过不受信任的网络(如 Internet)提供到边缘文件服务器的安全、可靠的连接。 QUIC 是 IETF 标准化协议,与 TCP 相比具有许多优势:

  • 所有数据包始终加密,握手使用 TLS 1.3 进行身份验证
  • 可靠和不可靠应用程序数据并行流式传输
  • 在第一个往返行程 (0-RTT) 中交换应用数据
  • 改进了拥塞控制和丢失恢复
  • 在客户端 IP 地址或端口发生更改后仍然存在

SMB over QUIC 为远程工作者、移动设备用户和高安全性组织提供“SMB VPN”。 服务器证书通过 Internet 友好的 UDP 端口 443 而不是传统的 TCP 端口 445 创建 TLS 1.3 加密的隧道。 所有 SMB 流量(包括隧道内的身份验证和授权)都不会暴露给底层网络。 SMB 在 QUIC 隧道内的行为正常,这意味着用户体验不会更改。 SMB 功能(如多通道、签名、压缩、持续可用性、目录租用等等)可正常工作。

文件服务器管理员必须选择启用 SMB over QUIC。 默认不会打开,并且客户端无法强制文件服务器启用 SMB over QUIC。 默认情况下,Windows SMB 客户端仍使用 TCP,并且只有在 TCP 尝试失败或有意要求 QUIC 使用 NET USE /TRANSPORT:QUICNew-SmbMapping -TransportType QUIC 时,才会尝试 SMB over QUIC。

先决条件

要使用 SMB over QUIC,你需要具备以下条件:

  • 在以下操作系统之一上运行的 SMB 服务器。

    • Windows Server 2022 Datacenter:Azure Edition(Microsoft 服务器操作系统)或更高版本

    • 任何版本的 Windows Server 2025(预览版)或更高版本

    重要

    适用于 Windows Server 2025 的 SMB over QUIC 仍处于预览阶段。 此信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 Microsoft 不对此处提供的信息作任何明示或默示的担保。

  • Windows 11 设备(Windows 商业版

  • SMB 服务器和客户端必须加入 Active Directory 域,或者客户端必须在 SMB 服务器上拥有本地用户帐户。 SMB 服务器必须访问至少一个域控制器以进行身份验证,但任何域控制器都不需要任何 Internet 访问权限。 建议在 Active Directory 域中使用 SMB over QUIC,但这并非必需的。 还可以在具有本地用户凭据和 NTLM 的已加入工作组的服务器上使用基于 QUIC 的 SMB。

  • 通过添加允许 SMB over QUIC 的防火墙允许规则,服务器要必须能让客户通过其公共接口访问。 默认情况下,SMB over QUIC 使用 UDP/443 入站。 允许文件服务器的 TCP/445 入站。 要了解如何更改默认端口,请参阅配置备用 SMB 端口

  • 文件服务器必须访问至少一个域控制器以进行身份验证,但任何域控制器都不需要任何 Internet 访问权限。

  • Windows Admin Center (WAC)(主页

  • 公钥基础结构 (PKI),用于颁发证书(如 Active Directory Certificate Server)或访问受信任的第三方证书颁发公司(如 VeriSign、DigiCert、Let's Encrypt 等)。

  • 要配置的 SMB 服务器的管理权限或同等权限。

部署 SMB over QUIC

步骤 1:安装服务器证书

  1. 创建证书颁发机构颁发的证书且具有以下属性:

    • 密钥用法:数字签名
    • 用途:服务器身份验证 (EKU 1.3.6.1.5.5.7.3.1)
    • 签名算法:SHA256RSA(或更高版本)
    • 签名哈希:SHA256(或更高版本)
    • 公钥算法:ECDSA_P256(或更高。也可以使用长度至少为 2048 的 RSA)
    • 使用者可选名称 (SAN):(用于访问 SMB 服务器的每个完全限定 DNS 名称对应一个 DNS 名称条目)
    • 使用者:(CN= 任何内容,但必须存在)
    • 包含私钥:是

    证书设置,显示签名算法的值为 sha256RSA,签名哈希算法的值为 sha256,使用者的值为 ws2022-quic

    “详细信息”选项卡下的证书设置,显示公钥的值为 ECC(256 位),公钥参数为 ECDSA-P256,应用程序策略 1 应用程序证书策略

    证书详细信息,显示主题备用名称值为“DNS 名称等于 ws2022-quic.corp”,密钥使用值为“数字签名,不可否认”

    如果使用 Microsoft 企业证书颁发机构,则可以创建证书模板,并允许文件服务器管理员在请求时提供 DNS 名称。 有关创建证书模板的详细信息,请参阅设计和实施 PKI:第三部分 证书模板。 有关使用 Microsoft Enterprise 证书颁发机构通过 QUIC 为 SMB 创建证书的演示,请观看此视频:

    有关请求第三方证书的信息,请参阅供应商文档。

  2. 如果使用 Microsoft Enterprise 证书颁发机构:

    1. 在文件服务器上启动 MMC.EXE
    2. 添加证书管理单元,并选择计算机帐户
    3. 依次展开证书(本地计算机)个人,然后右键单击证书并选择申请新证书
    4. 选择下一个
    5. 选择 Active Directory 注册策略
    6. 选择下一个
    7. 选择在 Active Directory 中发布的 SMB over QUIC 的证书模板。
    8. 选择注册此证书需要详细信息。单击这里以配置设置。
    9. 因此用户可以使用来定位文件服务器,用一个通用名称填充使用者值,并用一个或多个 DNS 名称填充主题备用名称
    10. 选择确定,然后选择注册

    显示选中了“通过 SMB over QUIC 注册 Microsoft 管理控制台证书”的图像

    显示所选证书的“证书属性”窗口的图像

    显示 Microsoft 管理控制台中证书注册完成过程的图像

注意

不要通过 QUIC 服务器使用者可选名称对 SMB 使用 IP 地址。

  • 即使可从域控制器或通过 KDC 代理使用 Kerberos,IP 地址也需要使用 NTLM。
  • 通过 QUIC 上运行 SMB 的 Azure IaaS 虚拟机可使用 NAT 将公共接口转换回专用接口。 基于 QUIC 的 SMB 不支持通过 NAT 将 IP 地址用于服务器名称,只有在此情况下,才必须使用将解析为公共接口 IP 地址的完全限定 DNS 域名。

注意

如果使用的是第三方证书颁发机构颁发的证书文件,则可以使用“证书”管理单元或 WAC 导入该文件。

步骤 2:通过 SMB over QUIC

要配置 SMB over QUIC,请选择首选方法并按步骤操作。

重要

如果使用的是 Windows Server 2025,则需要使用 PowerShell 方法配置 SMB over QUIC。 Windows 管理中心方法目前不支持 Windows Server 2025。

有关配置和使用使用 SMB over QUIC 的演示,请观看以下视频:

  1. 以管理员身份登录文件服务器。

  2. 在管理 PC 或文件服务器上安装最新版本的 WAC。 你需要最新版本的文件和文件共享扩展。 如果在设置 > 扩展中启用了自动更新扩展,则 WAC 会自动安装此扩展。

  3. 使用 WAC 连接服务器,然后选择左下角的设置图标。 在文件共享(SMB 服务器)部分中,在通过 SMB over QUIC 跨 Internet 共享文件下,单击配置

  4. 选择此文件服务器的计算机证书下面选择一个证书,选择客户端可以连接到的服务器地址或选择全选,然后选择启用

    显示 Windows Admin Center 中 SMB over QUIC 的配置屏幕的图像

  5. 确保证书和 SMB over QUIC 报告正常。

    显示 Windows Admin Center 中已配置的 SMB over QUIC 设置可用的所有证书的图像

  6. 选择文件和文件共享菜单选项。 记下你现有的 SMB 共享或创建一个新共享。

如果要通过客户端对 SMB 实施控制,则可以使用客户端访问控制。 要详细了解如何限制哪些客户端可以访问 SMB over QUIC 服务器,请参阅配置 SMB over QUIC 客户端访问控制

步骤 3:连接到 SMB 共享

  1. 将 Windows 客户端设备加入域。 确保 SMB over QUIC 文件服务器的证书主题备用名称已被发布到 DNS 并已完全限定,或者添加到 Windows 客户端的 HOST 文件中。 确保将服务器的证书主题备用名称发布到 DNS 添加到 Windows 客户端的 HOSTS 文件中。

  2. 将 Windows 客户端设备移动到外部网络,使其不再具有对域控制器或文件服务器的内部 IP 地址的任何网络访问权限。

  3. 在 Windows 文件资源管理器的地址栏中,键入文件服务器上某个共享的 UNC 路径,并确认你可以访问该共享中的数据。 或者,可以将 NET USE /TRANSPORT:QUICNew-SmbMapping -TransportType QUIC 与 UNC 路径一起使用。 示例:

    REM Automatically tries TCP then QUIC
    NET USE * \\fsedge1.contoso.com\sales
    
    REM Tries only QUIC
    NET USE * \\fsedge1.contoso.com\sales /TRANSPORT:QUIC
    
    #Tries only QUIC
    New-SmbMapping -LocalPath 'Z:' -RemotePath '\\fsedge1.contoso.com\sales' -TransportType QUIC
    

SMB over QUIC 客户端审核

审核用于跟踪 SMB over QUIC 的客户端连接,将事件写入事件日志。 事件查看器为 QUIC 传输协议捕获此信息。 从 Windows 11 Insider 内部版本 26090 开始,SMB 客户端可以使用此功能。 要查看这些日志,请执行以下步骤:

  1. 打开“事件查看器”。
  2. 导航到 Applications and Services Logs\Microsoft\Windows\SMBClient\Connectivity
  3. 监视事件 ID 30832

默认情况下,Windows 客户端设备在连接到 SMB over QUIC 文件服务器时无法访问 Active Directory 域控制器。 这意味着身份验证使用 NTLMv2,其中文件服务器代表客户端进行身份验证。 不会在 TLS 1.3 加密的 QUIC 隧道之外进行 NTLMv2 身份验证或授权。 但是,我们仍然建议使用 Kerberos 作为一般安全最佳实践,并且不建议在部署中创建新的 NTLMv2 依赖项。 为此,你可以将 KDC 代理配置为代表用户转发票证请求,同时使用 Internet 友好的 HTTPS 加密通信通道。 SMB over QUIC 支持 KDC 代理,强烈建议使用。

注意

在配置 KDC 代理的文件服务器上,不能使用 TCP 端口 443 以网关模式配置 WAC。 在文件服务器上配置 WAC 时,请将端口更改为未使用且不是 443 的端口。 如果你已经在端口 443 上配置了 WAC,请重新运行 WAC 安装程序 MSI,并在出现提示时选择其他端口。

Windows Admin Center 方法

  1. 确保使用的是 WAC 2110 或更高版本。

  2. 正常配置 SMB over QUIC。 从 WAC 2110 开始,在 SMB over QUIC 中配置 KDC 代理的选项将自动启用,不需要在文件服务器上执行额外的步骤。 默认 KDC 代理端口为 443,由 WAC 自动分配。

    注意

    无法配置使用 WAC 加入工作组的 SMB over QUIC 服务器。 必须将服务器加入 Active Directory 域,或使用“手动方法”部分中的步骤。

  3. 配置以下组策略设置以应用于 Windows 客户端设备:

    Computer Configuration\Administrative Templates\System\Kerberos\Specify KDC proxy servers for Kerberos clients

    此组策略设置的格式是完全限定的 Active Directory 域名的值名称,该值将是成为你为 QUIC 服务器指定的外部名称。 例如,其中 Active Directory 域被命名 corp.contoso.com,外部 DNS 域被命名 contoso.com

    value name: corp.contoso.com

    value: <https fsedge1.contoso.com:443:kdcproxy />

    此 Kerberos 领域映射意味着,如果用户 ned@corp.contoso.com 尝试连接到名为 fs1edge.contoso.com 的文件服务器,KDC 代理将知道将 Kerberos 票证转发到内部 corp.contoso.com 域中的域控制器。 与客户端的通信将通过端口 443 以 HTTPS 方式进行,并且用户凭据不会直接暴露在客户端文件服务器网络上。

  4. 确保边缘防火墙允许端口 443 上的 HTTPS 进入文件服务器。

  5. 应用组策略并重新启动 Windows 11 设备。

手动方法

  1. 在文件服务器上,在提升的 PowerShell 提示符下运行:

    NETSH http add urlacl url=https://+:443/KdcProxy user="NT authority\Network Service"
    
    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\KPSSVC\Settings" -Name "HttpsClientAuth" -Value 0 -Type DWord -Force
    
    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\KPSSVC\Settings" -Name "DisallowUnprotectedPasswordAuth" -Value 0 -Type DWord -Force
    
    Get-SmbServerCertificateMapping
    
  2. 从与 SMB over QUIC 证书关联的证书中复制指纹值(可能有多行,但它们都具有相同的指纹),并将其粘贴为以下命令的 Certhash 值:

    $guid = [Guid]::NewGuid()
    
    Add-NetIPHttpsCertBinding -IPPort 0.0.0.0:443 -CertificateHash <thumbprint> -CertificateStoreName "My" -ApplicationId "{$guid}" -NullEncryption $false
    
  3. 将文件服务器的 SMB over QUIC 名称作为 Kerberos 的 Active Directory 中的 SPN 添加。 例如:

    NETDOM computername ws2022-quic.corp.contoso.com /add fsedge1.contoso.com`
    
  4. 将 KDC 代理服务设置为自动并启动:

    Set-Service -Name kpssvc -StartupType Automatic
    
    Start-Service -Name kpssvc
    
  5. 配置以下组策略以应用于 Windows 客户端设备:

    Computer Configuration\Administrative Templates\System\Kerberos\Specify KDC proxy servers for Kerberos clients

    此组策略设置的格式是完全限定的 Active Directory 域名的值名称,该值将是成为你为 QUIC 服务器指定的外部名称。 例如,如果 Active Directory 域名为“corp.contoso.com”,外部 DNS 域名为“contoso.com”:

    value name: corp.contoso.com

    value: <https fsedge1.contoso.com:443:kdcproxy />

    此 Kerberos 领域映射意味着,如果用户 ned@corp.contoso.com 尝试连接到名为 fs1edge.contoso.com" 的文件服务器,KDC 代理将知道将 Kerberos 票证转发到内部 corp.contoso.com 域中的域控制器。 与客户端的通信将通过端口 443 以 HTTPS 方式进行,并且用户凭据不会直接暴露在客户端文件服务器网络上。

  6. 创建一个 Windows Defender 防火墙规则,该规则为 KDC 代理服务启用 TCP 端口 443 以接收身份验证请求。

  7. 确保边缘防火墙允许端口 443 上的 HTTPS 进入文件服务器。

  8. 应用组策略并重新启动 Windows 客户端设备。

注意

稍后将在 SMB over QUIC 中自动配置 KDC 代理,这些服务器步骤将不是必需的。

证书过期和续订

用来自颁发者的新证书替换的过期 SMB over QUIC 证书将包含新指纹。 虽然你可以使用 Active Directory 证书服务在 SMB over QUIC 证书到期时自动续订,但续订的证书也会获得新的指纹。 这实际上意味着在证书过期时必须重新配置 SMB over QUIC,因为必须映射新的指纹。 在 WAC 中为现有 SMB over QUIC 配置选择新证书,或使用 Set-SMBServerCertificateMapping PowerShell 命令更新新证书的映射。 可以使用 Azure Automanage for Windows Server 来检测即将到期的证书并防止中断。 有关详细信息,请查看 Azure Automanage for Windows Server

说明

  • 对于不使用 Azure 公有云的客户,从版本 22H2 开始,Windows Server 2022 Datacenter:Azure Edition 在 Azure Stack HCI 上可用。
  • 建议将 SMB over QUIC 与 Active Directory 域配合使用,但这不是必需的。 还可在具有本地用户凭据和 NTLM 且已加入工作组的服务器上通过 QUIC 使用 SMB,或将 Azure IaaS 与已加入 Microsoft Entra 的 Windows Server 一起使用。 不支持将已加入 Microsoft Entra 的 Windows Server 用于非基于 Azure IaaS 的计算机。 已加入 Microsoft Entra 的 Windows Server 不支持针对远程 Windows 安全操作的凭据,因为 Microsoft Entra ID 不含用户或组 SID。 已加入 Microsoft Entra 的 Windows Server 必须使用基于域的用户帐户或本地用户帐户并通过 QUIC 共享来访问 SMB。
  • 当 SMB 服务器位于工作组中(即未加入 AD 域)时,无法使用 WAC 配置基于 QUIC 的 SMB。 在此方案中,必须使用 New-SMBServerCertificateMapping cmdlet。
  • 我们建议仅使用移动用户密码配置的只读域控制器可供文件服务器使用。
  • 用户应该具有强密码,或者理想情况下,应使用无密码策略来为用户配置 Windows Hello for Business MFA智能卡。 通过细粒度密码策略为移动用户配置帐户锁定策略,你应该部署入侵保护软件来检测暴力攻击或密码喷射攻击。

更多参考资料