SMB over QUIC:在 Windows Server 2025 上通過 Internet 掛載文件共享,無需 VPN
基於 QUIC 的 SMB是 Windows Server 2025 上提供的一項新功能,允許您配置通過 Internet 對 Windows 文件共享的安全訪問,而無需使用 VPN(之前僅在 Windows Server 2022 Azure 版本中提供)。過去,遠程訪問 SMB 文件服務器需要部署額外的 VPN 或 RDS 解決方案。現在,借助 QUIC 上的 SMB,您可以直接從不受信任的公共網絡安全地訪問文件服務器。
主要特點基於 QUIC 的 SMB協議是:
- SMB 服務器和用戶之間的連接受到保護帶證書的 TLS 1.3 加密。用戶身份驗證發生在安全 TLS 隧道內。
- UDP/443用於代替傳統的 SMB 端口 TCP/445。
- QUIC 是一種現代傳輸協議,可提供改進的性能並抵抗不良網絡通道。它還包括新的壓縮算法。
- 通過 QUIC 客戶端訪問控制,您可以使用證書限制客戶端對文件服務器的訪問。
- SMB 3.1.1 在 TLS 隧道內使用。
SMB over QUIC 通常被稱為中小企業VPN因為它允許遠程用戶通過 Internet 安全地訪問公司文件服務器,而無需額外的 VPN。
讓我們看看如何通過 SMB over QUIC 共享 Windows Server 2025 文件服務器上的文件夾,並使用證書身份驗證從客戶端提供對其的安全訪問。 Windows Admin Center (WAC) 和 PowerShell 可用於通過 QUIC 配置 SMB。
首先,在 Windows Server 2025 上配置具有 SMB over QUIC 支持的文件服務器。儘管首選 Active Directory 域,但可以針對具有本地用戶帳戶的工作組方案配置 QUIC 上的 SMB。
您需要一個 SSL 證書,其中包含文件服務器的 FQDN主題備用名稱 (SAN)。您可以使用來自外部證書頒發機構的證書,包括 Let's Encrypt 證書、來自內部 CA 的證書或自簽名證書,這是可以接受的,但不建議使用。證書的增強型密鑰用法 (EKU) 字段必須包含用於服務器認證。
在此示例中,我將使用服務器上有自簽名證書的場景。為文件服務器的 FQDN 生成自簽名證書。
$todaydate = Get-Date
$add3year = $todaydate.AddYears(3)
New-SelfSignedCertificate -dnsname mfs01.woshub.com -notafter $add3year -CertStoreLocation cert:\LocalMachine\My
通過指紋選擇證書:
$cert=Get-ChildItem -Path "Cert:\LocalMachine\My" | Where-Object Thumbprint -eq D4CB32344D21EB9E38168EA04540DBE509BBD650
將證書分配給 QUIC SMB 服務器。
New-SmbServerCertificateMapping -Name mfs01.woshub.com -Thumbprint $cert.Thumbprint -StoreName My


為文件服務器啟用 SMB over QUIC 支持。
Set-SmbServerConfiguration -EnableSMBQUIC $true
驗證 SMB 服務器正在偵聽 UDP 端口 443。
netstat -a | Select-String 443


要允許通過 SMB QUIC 訪問文件共享,必須在 Windows Defender 防火牆中啟用適當的規則:
Get-NetFirewallRule -DisplayName "File and Printer Sharing (SMB-QUIC-In)"|select name,enabled,profile
默認情況下,會向域配置文件授予 SMB QUIC 訪問權限,但會拒絕專用和公共網絡配置文件類型(根據您的環境啟用所需的規則)。


請注意,連接到共享文件夾時,SMB 客戶端會嘗試使用標準 TCP 端口 445。如果該端口不可用,客戶端將切換到 QUIC。因此,建議配置服務器的防火牆規則,限制外部客戶端通過標準端口 445 訪問 SMB。
接下來,在客戶端計算機上通過 QUIC 配置與 SMB 共享文件夾的連接(支持以下操作系統作為客戶端:Windows 11、Windows Server 2025 和具有 Samba 版本 4.23 或更高版本的 Linux。但是,Windows 10 不支持 QUIC 協議。
檢查 Windows 11 客戶端上是否啟用了 SMB over QUIC 支持:
Get-SmbClientConfiguration | select EnableSMBQUIC


客戶端計算機必須信任文件服務器上安裝的證書。使用企業 CA 時,您可以分發 CA 的根證書和中間證書,並將它們添加到客戶端設備上的受信任證書存儲中(可以通過 GPO 部署證書)。如果您使用自簽名證書,則需要將其導入客戶端的受信任證書存儲中。
現在,您可以使用 New-SmbMapping PowerShell cmdlet 從文件服務器映射共享文件夾:
New-SmbMapping -LocalPath W: -RemotePath \\mfs01.woshub.com\Docs -TransportType QUIC
或者使用 net use 命令:
net use W: \\mfs01.woshub.com\Docs /TRANSPORT:QUIC


要確保使用 QIUC 傳輸來連接共享文件夾,請檢查客戶端上的事件查看器日誌中的事件 ID30832(事件查看器 -> 應用程序和服務日誌 -> Microsoft -> Windows -> SMBClient -> 連接)。
The initial connection to the share was established. Share name: \xxxxx Server address: xxxxxxx:443 Session ID: 0x1900014000079 Tree ID: 0xD Transport type: Quic Signing used: true


如果您看到事件 ID30803在日誌中,這很可能意味著客戶端上沒有安裝服務器證書,或者客戶端不信任它。
Failed to establish a network connection. Error: The QUIC connection encountered a bad certificate during TLS.


您可以使用客戶端訪問控制僅當客戶端擁有必要的證書時才允許通過 QUIC 協議訪問服務器共享的規則。為與文件服務器的連接啟用強制 SMB 客戶端證書身份驗證。
Set-SmbServerCertificateMapping -Name mfs01.woshub.com -RequireClientAuthentication $true
讓我們在客戶端計算機上創建一個有效期為三個月的自簽名證書。
$clientCert = New-SelfSignedCertificate -DnsName mfs01.woshub.com -CertStoreLocation "Cert:\LocalMachine\My" -NotAfter (Get-Date).AddMonths(3) -KeyAlgorithm "RSA" -KeyLength "2048"
在客戶端設備上綁定此證書,以便在連接到企業文件服務器時使用:
New-SmbClientCertificateMapping -Namespace mfs01.woshub.com -Thumbprint $clientCert.Thumbprint -Store My
獲取客戶端證書的 SHA-256 哈希值。
$clientCert.GetCertHashString("SHA256")


允許來自具有 QUIC 共享(通過其 SHA-256 哈希)的 SMB 服務器上的此證書的客戶端的連接。
Grant-SmbClientAccessToServer -Name mfs01.woshub.com -IdentifierType SHA256 -Identifier "B05E517D9FCA15BE3A38D95AA97A87003F55D524FE67DB7D7E81BB99B5C1D50B"


列出文件服務器上的所有客戶端訪問控制規則:
Get-SmbClientAccessToServer -Name mfs01.woshub.com
或者,您可以允許來自具有特定發布者(以 X.500 格式指定)的證書的所有客戶端的連接。此 CA 的根證書和中間證書必須受到 SMB 服務器的信任:
Grant-SmbClientAccessToServer -Name mfs01.woshub.com -IdentifierType ISSUER -Identifier "<subject name>"
啟用證書身份驗證事件審核(應用程序和服務日誌\Microsoft\Windows\SMBServer\Audit):
Set-SmbServerConfiguration -AuditClientCertificateAccess $true
因此,只有具有批准證書的客戶端才能連接到您的 SMB 文件服務器。
通過 QUIC 上的 SMB,所有 SMB 流量(包括身份驗證)均完全加密。如果域控制器無法進行客戶端身份驗證,則將使用 NTLMv2 身份驗證而不是 Kerberos 身份驗證。這種加密可以保護 NTLM 身份驗證免遭攻擊者攔截或獲取,從而確保即使在使用 NTLM 時,憑證和身份驗證過程在加密的 QUIC 通道內仍然受到保護。
要使客戶端能夠使用 Kerberos 進行身份驗證,請在文件服務器上部署 KDC 代理。此代理通過 HTTPS 將 Kerberos 請求從外部客戶端轉發到域控制器(查看帖子SMB over QUIC:配置 KDC 代理)。
相比 QUIC 協議,SMB 的一個缺點是它不支持舊版 SMB 客戶端,包括 Windows 10 及更早版本以及 4.23 之前的 Samba 版本。
