QUIC クライアント アクセス制御経由で SMB を構成する
SMB over QUIC クライアント アクセス制御によって、SMB over QUIC サーバーにアクセスできるクライアントを制限できます。 クライアント アクセス制御を使用すると、デバイスがファイル サーバーに接続するための許可リストとブロックリストを作成できます。 クライアント アクセス制御により、SMB 接続の作成時に使用される認証を変更することなく、エンド ユーザー エクスペリエンスも変更されることなく、組織の保護が強化されます。
クライアント アクセス制御のしくみ
クライアント アクセス制御では、サーバーが証明書のアクセス制御リストをチェックして、クライアントがサーバーとの QUIC 接続を確立できるかどうかを判断します。 サーバーはクライアント証明書チェーンを検証し、アクセス制御チェックに進む前に信頼されていることを確認します。 クライアント アクセス制御を構成するために、管理者はクライアントに証明書を発行し、サーバーによって管理されているアクセス制御リストに証明書のハッシュを追加できます。
クライアントが QUIC 経由でサーバーへの接続を許可されている場合は、UDP ポート 443 経由の TLS 1.3 で暗号化されたトンネルが作成されます。 クライアント アクセス制御では、サブジェクトの別名での証明書もサポートされています。 証明書を失効させたり、特定のデバイスのアクセスを明示的に拒否したりして、アクセスをブロックするように SMB over QUIC を構成することもできます。 サーバー管理者は、クライアントのアクセス制御のみに依存するのではなく、クライアント証明書を取り消すことで、クライアントがサーバーにアクセスできないようにすることができます。
Note
Active Directory ドメインでは SMB over QUIC を使うことをお勧めしますが、必須ではありません。 ローカル ユーザー資格情報と NTLM を使って、ワークグループ参加済みサーバーで SMB over QUIC を使うこともできます。
アクセス制御の許可エントリは、それぞれ Grant-SmbClientAccessToServer
コマンドレットと Revoke-SmbClientAccessToServer
コマンドレットを使用して追加および削除できます。 拒否アクセス制御エントリは、それぞれ Block-SmbClientAccessToServer
コマンドレットと Unblock-SmbClientAccessToServer
コマンドレットを使用して追加および削除できます。 アクセス制御リストのエントリは、Get-SmbClientAccessToServer
コマンドレットを使用して表示できます。
リーフ証明書は、SHA256 ハッシュによって証明書を識別するアクセス制御エントリを追加することで、アクセスを許可または拒否できます。 共通発行者を持つリーフ証明書のグループはすべて、共通発行者の発行者アクセス制御エントリを追加することで、アクセスを許可または拒否できます。 中間 CA 証明書とルート CA 証明書の発行者エントリを追加できます。 発行者エントリを使用すると、追加する必要があるエントリの合計数を減らすのに役立ちます。 クライアントの証明書チェーン内のどの証明書もアクセスを拒否されておらず、少なくとも 1 つがアクセスを許可されている場合、クライアントにはアクセス権が付与されます。 例えば:
CA 証明書に許可エントリが追加され、いずれかのリーフ証明書に対して拒否エントリが追加された場合、拒否エントリが追加された証明書を除き、CA によって発行されたすべての証明書にアクセス権が付与されます。
CA 証明書の拒否エントリが追加され、いずれかのリード証明書に許可エントリが追加されると、CA によって発行されたすべての証明書のアクセスが拒否されます。 許可エントリが追加された証明書は、証明書チェーン内の拒否エントリが許可エントリよりも優先されるため、アクセスが拒否されます。
ルート CA に中間 CA 1 と中間 CA 2 という中間 CA が 2 つあるとします。 ルート CA に許可エントリが追加され、中間 CA 2 に対して拒否エントリが追加された場合、中間 CA 1 によって発行された証明書にはアクセスが許可され、中間 CA 2 によって発行された証明書はアクセスを拒否されます。
前提条件
クライアント アクセス制御を構成する前に、次の前提条件を満たす SMB サーバーが必要です。
- March 12, 2024—KB5035857 Update または 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 がインストールされたら、グループ ポリシーでこの機能を有効にする必要があります。
- [スタート] をクリックし、「gpedit」と入力して、[グループ ポリシーの編集] を選択します。
- Computer Configuration\Administrative Templates\KB5035857 240302_030531 Feature Preview\Windows Server 2022 に移動します。
- KB5035857 240302_030531 Feature Preview ポリシーを開き、[有効] を選択します。
次の前提条件を満たす SMB クライアントも必要です。
- 次のいずれかのオペレーティング システムで実行されている SMB クライアント:
- March 12, 2024—KB5035857 Update の Windows Server 2022 Datacenter: Azure Edition。 プレビュー機能のロックを解除するには、Windows Server 2022 KB5035857 240302_030531 Feature Preview
インストールする必要もあります。 - March 12, 2024—KB5035853 Update の Windows 11。 プレビュー機能のロックを解除するには、Windows 11 (元のリリース) KB5035854 240302_030535 Feature Previewもインストールする必要があります。
- Windows Server 2025 以降。
- Windows 11 バージョン 24H2 以降。
- March 12, 2024—KB5035857 Update の Windows Server 2022 Datacenter: Azure Edition。 プレビュー機能のロックを解除するには、Windows Server 2022 KB5035857 240302_030531 Feature Preview
- 次のようなクライアント証明書。
- クライアント認証 (EKU 1.3.6.1.5.5.7.3.2) 用に発行。
- SMB サーバーによって信頼されている証明機関によって発行されている。
- クライアントの証明書ストアにインストールされている。
- 構成する SMB サーバーに対する管理者特権です。
重要
KB5035854 がインストールされたら、グループ ポリシーでこの機能を有効にする必要があります。
- [スタート] をクリックし、「gpedit」と入力して、[グループ ポリシーの編集] を選択します。
- Computer Configuration\Administrative Templates\KB5035854 240302_030535 Feature Preview\Windows 11 (original release) に移動します。
- KB5035854 240302_030535 Feature Preview ポリシーを開き、[有効] を選択します。
SMB サーバーを構成する
SMB クライアントの設定を管理するには、まず、クライアントが有効で信頼された証明書チェーンを送信し、クライアント証明書チェーンに基づいてアクセス制御チェックを実行するように SMB サーバーを構成する必要があります。 このアクションを実行するには、次のコマンドを実行します。
Set-SmbServerCertificateMapping -RequireClientAuthentication $true
Note
RequireClientAuthentication
SMB クライアントを構成する
SMB クライアント証明書情報を収集する
PowerShell を使用してクライアント証明書ハッシュを収集するには、次の手順を実施します。
SMB クライアントで管理者特権の PowerShell プロンプトを開きます。
次のコマンドを実行して、クライアントの証明書ストア内の証明書を一覧表示します。
Get-ChildItem -Path Cert:\LocalMachine\My
次のコマンドを実行して、証明書を変数に保存します。
<subject name>
を、使用する証明書のサブジェクト名に置き換えます。$clientCert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -Match "<subject name>"}
次のコマンドを実行して、クライアント証明書の SHA256 ハッシュを書き留めます。 この識別子は、クライアント アクセス制御を構成するときに必要です。
$clientCert.GetCertHashString("SHA256")
Note
$clientCert
オブジェクトに格納されているサムプリントでは、SHA1 アルゴリズムを使用します。 これは、New-SmbClientCertificateMapping
のようなコマンドで使用されます。 クライアント アクセス制御を構成するには SHA256 サムプリントも必要です。これらのサムプリントは、同じ証明書に対して異なるアルゴリズムを使用して異なる派生になります。
クライアント証明書を SMB クライアントにマップする
クライアント証明書を SMB クライアントにマップするには、次の手順を実施します。
SMB クライアントで管理者特権の PowerShell プロンプトを開きます。
New-SmbClientCertificateMapping
コマンドを実行して、クライアント証明をマップします。<namespace>
を SMB サーバーの完全修飾ドメイン名 (FQDN) に置き換え、変数を使用して前のセクションで収集した SHA1 クライアント証明書のサムプリントを使用します。New-SmbClientCertificateMapping -Namespace <namespace> -Thumbprint $clientCert.Thumbprint -StoreName My
完了すると、証明書付きクライアントは、FQDN に一致する SMB サーバーに対して認証を行うために SMB クライアントによって使用されます。
マッピング接続のテスト
サーバーまたはクライアント デバイスの共有をマッピングして、接続テストを実行します。 これを実行するには、次のいずれかのコマンドを実行します。
NET USE \\<server DNS name>\<share name> /TRANSPORT:QUIC
または
New-SmbMapping -RemotePath \\<server DNS name>\<share name> -TransportType QUIC
サーバーによってアクセスが拒否されたことを示すエラー メッセージが表示された場合は、サーバー証明書マッピングとクライアント証明書マッピングが構成されていることを確認するため、次の手順に進む準備が整います。
クライアント アクセス制御の構成
個々のクライアントに付与する
クライアント アクセス制御を使用して、SMB サーバーへの特定のクライアント アクセスを許可する手順に従います。
SMB サーバーにサインインします。
SMB サーバーで管理者特権の PowerShell プロンプトを開きます。
Grant-SmbClientAccessToServer
を実行して、クライアント証明書へのアクセス許可を付与します。 「<name>
」セクションで収集した SHA256 クライアント証明書識別子を使用して、<hash>
を SMB サーバーのホスト名と に置き換えます。Grant-SmbClientAccessToServer -Name <name> -IdentifierType SHA256 -Identifier <hash>
これで、クライアント証明書へのアクセス権が付与されました。 Get-SmbClientAccessToServer
コマンドレットを実行して、クライアント証明書へのアクセスを確認できます。
特定の証明機関に付与する
クライアント アクセス制御を使用して、特定の証明機関 (別名: 発行者) からクライアントに付与する手順に従います。
SMB サーバーにサインインします。
SMB サーバーで管理者特権の PowerShell プロンプトを開きます。
Grant-SmbClientAccessToServer
を実行して、クライアント証明書へのアクセス許可を付与します。 発行者の証明書の完全な X.500 識別名で、<name>
を SMB サーバーのホスト名と<subject name>
に置き換えます。 たとえば、CN=Contoso CA, DC=Contoso, DC=com
のようにします。Grant-SmbClientAccessToServer -Name <name> -IdentifierType ISSUER -Identifier "<subject name>"
この手順が完了したら、「Test mapping connectivity」で説明されているように、New-SmbMapping
コマンドレットを実行します。クライアント アクセス制御が正しく構成されていることを確認するには、2 回目の実行をお勧めします。
監査イベント ログ
特定のイベント (アクセス許可やアクセス拒否など) は、トラブルシューティングのためにキャプチャされます。 これらのイベントは、サブジェクト、発行者、シリアル番号、SHA1 および SHA256 ハッシュ、およびこれらの証明書に適用されるアクセス制御エントリなど、クライアント証明書 (ルート証明書を除く) に関する情報を提供します。 これらのイベントには、接続 ID が表示されます。 この ID は、特定のクライアント接続イベントに表示されます。これにより、管理者は、接続を確立しようとしたクライアントとサーバーを簡単に照合できます。
これらのイベントの監査は既定で無効になっており、次のコマンドを実行して有効にすることができます。
Set-SmbServerConfiguration -AuditClientCertificateAccess $true
有効にすると、次のパスの イベント ビューアー でこれらのイベントがキャプチャされます。
パス | イベント ID |
---|---|
アプリケーションとサービス ログ\Microsoft\Windows\SMBServer\Audit | 3007 3008 3009 |
アプリケーションとサービス ログ\Microsoft\Windows\SMBClient\Connectivity | 30831 |