通过 QUIC 的 SMB (预览版)

适用于:Windows Server 2022 Datacenter: Azure Edition Preview, Windows 11 Insider Preview

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

  • 所有数据包始终加密,握手通过 TLS 1.3 进行身份验证
  • 可靠且不可靠的应用程序数据的并行流
  • 交换第一次往返 0-RTT (中的应用程序)
  • 改进了拥塞控制和丢失恢复
  • 在客户端 IP 地址或端口中保留更改

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

文件服务器管理员必须选择通过 QUIC 启用 SMB。 默认情况下,它未打开,并且客户端无法强制文件服务器通过 QUIC 启用 SMB。 Windows默认情况下,SMB 客户端仍使用 TCP,并且仅在 TCP 尝试首先失败或有意要求使用 或 的 QUIC 时,才尝试通过 QUIC 进行 NET USE /TRANSPORT:QUIC New-SmbMapping -TransportType QUIC SMB。

备注

通过 QUIC 的 SMB 为预览版,不支持用于生产工作负荷,但可以在评估时获得 Microsoft 的支持。

先决条件

若要通过 QUIC 使用 SMB,需要以下各项:

  • 运行 Windows Server 2022 Datacenter 的文件服务器:Azure Edition 预览版 (Microsoft Server 操作系统预览版)
  • 预览Windows预览体验成员 11 (Windows预览体验)
  • Windows管理中心 (主页)
  • 用于颁发证书(如 Active Directory 证书服务器)或访问受信任的第三方证书颁发者(如 Verisign、Digicert、Let's Encrypt 等)的公钥基础结构。

通过 QUIC 部署 SMB

步骤 1:安装服务器证书

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

    • 密钥用法:数字签名
    • 目的:使用 EKU (1.3.6.1.5.5.7.3.1)
    • 签名算法:SHA256RSA (或)
    • 签名哈希:SHA256 (或更大)
    • 公钥算法 :ECDCA_P256 (或更高。还可以将 RSA 与至少 2048 长度的)
    • SAN (可选名称) : (用于访问 SMB 服务器名称的每个完全限定 DNS 名称的 DNS)
    • 主题 : (CN= 任何内容,但必须存在于)
    • 包含的私钥:是

    证书设置,显示值为 sha256RSA 的签名算法、sha256 的签名哈希算法值和主题值 ws2022-quic "详细信息"选项卡下的证书设置,显示 ECC (256 位的公钥值) 公钥参数 ECDSA-P256 和应用程序策略 1 应用程序证书策略 证书详细信息:将主题可选名称值显示为"DNS 名称"等于 ws2022-quic.corp,将"密钥用法"值显示为"数字签名"和"非否认"

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

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

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

    1. MMC.EXE 服务器上启动启动。
    2. 添加"证书"管理单元,然后选择"计算机 帐户"。
    3. 展开 "本地 (证书")"个人",然后右键单击"证书 ",然后单击"请求新证书"。
    4. 点击“下一步”
    5. 选择 "Active Directory 注册策略"
    6. 点击“下一步”
    7. 选择在 Active Directory 中发布的 SMB over QUIC 的证书模板。
    8. 单击 "注册此证书需要更多信息"。单击此处配置设置
    9. 因此,用户可以使用 查找文件服务器,使用公用名填写值"使用者",并使用一个或多个 DNS 名称 填写"使用者可选名称"。
    10. 单击 "确定", 然后单击"注册"。

    显示涵盖的步骤的图像 1 显示涵盖的步骤的图像 2 显示涵盖的步骤的图像 3

备注

如果使用第三方证书颁发机构颁发的证书文件,可以使用证书管理单元或Windows管理中心导入该文件。

步骤 2:通过 QUIC 配置 SMB

  1. 部署 Windows Server 2022 Datacenter: Azure Edition预览服务器。

  2. 在管理电脑或Windows服务器上安装最新版本的 Windows 管理中心。 需要最新版本的文件扩展 名&文件共享扩展 名。 如果在 Windows 中启用了自动更新扩展,则由管理中心 设置 >安装

  3. 将 Windows Server 2022 Datacenter: Azure Edition 文件服务器加入 Active Directory 域,并添加适用于 UDP/443 入站的防火墙允许规则,使 Windows Insider 客户端能够访问 Azure 公共接口。 不允许 TCP/445 入站到文件服务器。 文件服务器必须有权访问至少一个域控制器进行身份验证,但没有任何域控制器需要任何 Internet 访问。

  4. 连接管理中心Windows服务器,然后单击 设置左下 角的图标。 在 "SMB (文件共享) 部分,在"通过 QUIC 通过 SMB 通过 Internet 进行文件共享"下,单击"配置 "。

  5. 单击"选择此文件 服务器 的计算机证书"下的证书,单击客户端可以连接到的服务器地址,或单击"全 ",然后单击"启用 "。

    显示通过 QUIC1 配置 SMB 的步骤的图像

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

    显示通过 QUIC2 配置 SMB 的步骤的图像

  7. 单击" 文件和文件共享"菜单 选项。 记下现有的 SMB 共享或创建新的 SMB 共享。

有关通过 QUIC 配置和使用 SMB 的演示,请观看此视频:

步骤 3:连接 SMB 共享

  1. 将 Windows 11 Insider Preview 加入域。确保通过 QUIC 文件服务器的证书主体替代名称的 SMB 名称发布到 DNS,并且完全限定或添加到Windows 11 Insider Preview 的 HOST 文件中。 确保服务器的证书主体可选名称发布到 DNS 或添加到 Windows 11 Insider Preview 的 HOSTS 文件中。

  2. 将 Windows 11 Insider Preview 移动到外部网络,该外部网络不再具有对域控制器或文件服务器内部 IP 地址的任何网络访问权限。

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

    NET USE * \\fsedge1.contoso.com\sales(自动尝试 TCP,然后尝试 QUIC)

    NET USE * \\fsedge1.contoso.com\sales /TRANSPORT:QUIC(只尝试 QUIC)

    New-SmbMapping -LocalPath 'Z:' -RemotePath '\\fsedge1.contoso.com\sales' -TransportType QUIC(只尝试 QUIC)

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

备注

无法在配置 KDC 代理Windows服务器上使用 TCP 端口 443 在网关模式下配置管理中心。 在文件服务器上配置 WAC 时,将端口更改为不使用且不是 443 的端口。 如果已在端口 443 上配置 WAC,请重新运行 WAC 安装程序 MSI,在系统提示时选择其他端口。

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

    NETSH http add urlacl url=https://+:443/KdcProxy user="NT authority\Network Service"

    REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\KPSSVC\Settings" /v HttpsClientAuth /t REG_DWORD /d 0x0 /f

    REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\KPSSVC\Settings" /v DisallowUnprotectedPasswordAuth /t REG_DWORD /d 0x0 /f

    Get-SmbServerCertificateMapping

  2. 通过 QUIC 证书从与 SMB 关联的证书复制指纹值 (可能有多个行,但它们将具有相同的指纹) 并将其粘贴为以下命令的 Certhash 值:

    $guid = [Guid]::NewGuid()

    Add-NetIPHttpsCertBinding -ipport 0.0.0.0:443 -CertificateHash <thumbprint> -CertificateStoreName "my" -ApplicationId "{$guid}" -NullEncryption $false

  3. 在 Kerberos 的 Active Directory 中,将文件服务器的 SMB 通过 QUIC 名称添加为 SNS。 例如:

    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 11 Insider Preview:

    系统> Kerberos >管理>>为 Kerberos 客户端指定 KDC 代理服务器

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

    value name: corp.contoso.com

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

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

  6. 创建一Windows Defender防火墙规则,该规则允许 KDC 代理服务通过入站启用 TCP 端口 443 来接收身份验证请求。

  7. 确保边缘防火墙允许 HTTPS/443 入站到文件服务器。

  8. 应用组策略,并重启 Windows 11 Insider Preview。

备注

稍后将在 SMB 中通过 QUIC 预览版自动配置 KDC 代理,不需要执行这些服务器步骤。

说明

  • WindowsServer 2022 Datacenter:Azure 版本预览版也将在Azure Stack HCI 21H2 预览版上提供,供未使用 Azure 公有云的客户使用。
  • 建议仅对文件服务器使用配置为使用移动用户密码的只读域控制器。
  • 用户应具有强密码,或者最好使用无密码策略和 Windows Hello企业 MFA智能卡 进行配置。 通过精细密码策略为移动用户配置帐户锁定策略,应部署入侵防护软件来检测暴力破解或密码喷射攻击。

更多参考

存储 Microsoft 博客

QUIC 工作组主页

Microsoft MsQuic GitHub主页

QUIC Wikipedia

TLS 1.3 工作组主页

Microsoft TLS 1.3 支持参考