共用方式為


透過 QUIC 用戶端存取控制設定 SMB

SMB over QUIC 用戶端存取控制可讓您限制哪些用戶端可以存取 SMB over QUIC 伺服器。 用戶端存取控制可讓您建立允許清單和封鎖清單,讓裝置連線到檔案伺服器。 用戶端存取控制為組織提供更多保護,無需變更建立 SMB 連線時使用的驗證,也不會改變最終使用者體驗。

用戶端存取控制的運作方式

用戶端存取控制牽涉到伺服器檢查憑證的訪問控制清單,以判斷用戶端是否允許與伺服器建立 QUIC 連線。 伺服器會驗證客戶端憑證鏈結,並確保在繼續進行訪問控制檢查之前,信任該憑證鏈結。 若要設定用戶端訪問控制,系統管理員會向用戶端發出憑證,並將憑證的哈希新增至伺服器所維護的訪問控制清單。

如果允許用戶端透過 QUIC 連線到伺服器,則會透過 UDP 連接埠 443 建立 TLS 1.3 加密通道。 用戶端存取控制也支援具有主體別名的憑證。 您也可以將 SMB over QUIC 設定為封鎖存取,方法是撤銷憑證或明確拒絕特定裝置存取。 伺服器管理員能夠藉由撤銷客戶端憑證來防止用戶端存取伺服器,而不是只依賴客戶端存取控制。

注意

我們建議對 Active Directory 網域使用 SMB over QUIC,但這不是必要的。 您也可以在具有本機使用者憑證和 NTLM 的工作群組伺服器上使用 SMB over QUIC。

您可以分別使用 Grant-SmbClientAccessToServerRevoke-SmbClientAccessToServer Cmdlet 來新增和移除存取控制專案。 您可以分別使用 Block-SmbClientAccessToServerUnblock-SmbClientAccessToServer Cmdlet 來新增和移除拒絕存取控制專案。 訪問控制清單中的條目可以使用 Get-SmbClientAccessToServer 命令 Cmdlet 顯示。

您可以藉由新增存取控制項目,根據其 SHA256 哈希來識別憑證,授予或拒絕分葉憑證的存取權限。 一組具有共同簽發者的葉憑證,可藉由為此共同簽發者新增簽發者訪問控制項目來授予或拒絕存取權。 您可以新增中繼 CA 憑證和根 CA 憑證的簽發者條目。 使用簽發者條目很有用,因為它們有助於減少需要新增的條目總數。 如果客戶端的憑證鏈結中沒有任何憑證遭到拒絕存取,且至少允許一個憑證,則會授與用戶端存取權。 例如:

  • 如果為 CA 憑證新增允許條目,且為其中一個子憑證新增拒絕條目,則 CA 簽發的所有憑證都會被授予存取權,但新增拒絕條目的憑證除外。

  • 如果為 CA 憑證新增了一個拒絕條目,且為其中一個主要憑證新增了一個允許條目,則由該 CA 簽發的所有憑證都將拒絕存取。 憑證被拒絕存取,即使其中新增了允許條目,因為在憑證鏈中,任何拒絕條目都優先於允許條目。

  • 假設根 CA 有兩個中繼 CA,稱為中繼 CA 1 和中繼 CA 2。 如果為根 CA 新增允許條目,並為中繼 CA 2 新增拒絕條目,那麼由中繼 CA 1 簽發的憑證將被授予存取權,而由中繼 CA 2 簽發的憑證將被拒絕存取權限。

必要條件

設定用戶端存取控制之前,您需要具有下列必要條件的 SMB 伺服器

  • 執行含 March 12, 2024—KB5035857 更新 或 Windows Server 2025 或更新版本之 Windows Server 2022 Datacenter: Azure Edition 的 SMB 伺服器。 若要解除鎖定預覽功能,您也必須安裝 Windows Server 2022 KB5035857 240302_030531 Feature Preview
  • 伺服器已啟用並設定 SMB over QUIC。 若要了解如何設定 SMB over QUIC,請參閱 SMB over QUIC
  • 如果您使用由不同憑證授權單位 (CA) 核發的用戶端憑證,您必須確定伺服器信任該 CA。
  • 您正在設定之 SMB 伺服器的系統管理權限。

重要

安裝 KB5035857 之後,您必須在群組原則中啟用此功能:

  1. 按一下開始,輸入 gpedit,然後選取編輯群組原則
  2. 瀏覽至 Computer Configuration\Administrative Templates\KB5035857 240302_030531 Feature Preview\Windows Server 2022
  3. 開啟 KB5035857 240302_030531 功能預覽 原則,然後選取 [已啟用]

您也需要具有下列必要條件的 SMB 用戶端

重要

安裝 KB5035854 之後,您必須在群組原則中啟用此功能:

  1. 按一下開始,輸入 gpedit,然後選取編輯群組原則
  2. 瀏覽至 Computer Configuration\Administrative Templates\KB5035854 240302_030535 Feature Preview\Windows Server 11 (original release)
  3. 開啟 KB5035854 240302_030535 功能預覽 原則,然後選取 [已啟用]

設定SMB伺服器

若要管理 SMB 用戶端的設定,必須先設定 SMB 伺服器,以授權用戶端傳送有效且受信任的憑證鏈結,並根據用戶端憑證鏈結執行訪問控制檢查。 若要執行此動作,請執行下列命令:

Set-SmbServerCertificateMapping -RequireClientAuthentication $true

注意

如果同時 RequireClientAuthenticationSkipClientCertificateAccessCheck 都設定為 $true,則伺服器會驗證客戶端憑證鏈結的有效性和可信度,但不會執行訪問控制檢查。

設定 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 伺服器進行驗證。

測試映射連線能力

透過將裝置對應到伺服器或用戶端的共享資源來執行連線測試。 若要執行此動作,請執行下列其中一個命令:

NET USE \\<server DNS name>\<share name> /TRANSPORT:QUIC

Or

New-SmbMapping -RemotePath \\<server DNS name>\<share name> -TransportType QUIC

如果您收到錯誤訊息,指出伺服器拒絕存取,則表示您已準備好繼續進行下一個步驟,因為這樣會驗證伺服器證書對應和客戶端憑證對應已設定。

設定用戶端存取控制

授予個別用戶端

請依照下列步驟,使用用戶端存取控制,將特定用戶端存取權授予 SMB 伺服器。

  1. 登入 SMB 伺服器。

  2. 在 SMB 伺服器上開啟提升權限的 PowerShell 命令提示字元。

  3. 執行 Grant-SmbClientAccessToServer 以授予對用戶端憑證的存取權。 將 <name> 替換為 SMB 伺服器的主機名,將 <hash> 替換為您在收集 SMB 用戶端憑證資訊一節中收集的 SHA256 用戶端憑證識別碼。

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

您現在已授予對用戶端憑證的存取權。 您可以執行 Get-SmbClientAccessToServer Cmdlet 來驗證客戶端憑證存取權。

授予特定憑證授權單位

請依照下列步驟,使用用戶端存取控制,從特定的憑證授權單位 (也稱為簽發者) 向用戶端授予。

  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>"
    

完成此步驟之後,請執行 New-SmbMapping cmdlet,如 測試對應連線中所述,建議再執行一次,以確認用戶端訪問控制已正確設定。

稽核事件記錄

為了進行疑難解答,會擷取特定事件,例如允許存取和拒絕存取。 這些事件提供用戶端憑證的相關資訊(不包括根憑證),例如憑證主體、發行者、序列號、SHA1 和 SHA256 哈希,以及適用於這些憑證的存取控制項目。 這些事件會顯示連線標識碼。 此標識符會顯示在特定用戶端連線事件中,這可讓系統管理員輕鬆地比對伺服器與嘗試建立連線的用戶端。

預設會停用稽核這些事件,而且可以執行下列命令來啟用:

Set-SmbServerConfiguration -AuditClientCertificateAccess $true

啟用之後,這些事件會記錄在 事件檢視器 的下列路徑中:

路徑 事件標識碼
應用程式和服務記錄\Microsoft\Windows\SMBServer\Audit 3007
3008
3009
應用程式和服務記錄\Microsoft\Windows\SMBClient\Connectivity 30831