Konfigurowanie protokołu SMB za pośrednictwem kontroli dostępu klienta QUIC
Protokół SMB za pośrednictwem kontroli dostępu klienta QUIC umożliwia ograniczenie, którzy klienci mogą uzyskiwać dostęp do protokołu SMB za pośrednictwem serwerów QUIC. Kontrola dostępu klienta umożliwia tworzenie list dozwolonych i list zablokowanych dla urządzeń w celu nawiązania połączenia z serwerem plików. Kontrola dostępu klienta zapewnia organizacjom większą ochronę bez zmiany uwierzytelniania używanego podczas nawiązywania połączenia SMB ani nie zmienia środowiska użytkownika końcowego.
Jak działa kontrola dostępu klienta
Kontrola dostępu klienta obejmuje serwer sprawdzający listę certyfikatów kontroli dostępu w celu określenia, czy klient może nawiązać połączenie QUIC z serwerem. Serwer weryfikuje łańcuch certyfikatów klienta i zapewnia, że jest zaufany przed kontynuowaniem kontroli dostępu. Aby skonfigurować kontrolę dostępu klienta, administrator wystawia certyfikat klientowi i może dodać skrót certyfikatu do listy kontroli dostępu obsługiwanej przez serwer.
Jeśli klient może nawiązać połączenie z serwerem za pośrednictwem protokołu QUIC, zostanie utworzony tunel szyfrowany protokołem TLS 1.3 za pośrednictwem portu UDP 443. Kontrola dostępu klienta obsługuje również certyfikaty z alternatywnymi nazwami podmiotów. Możesz również skonfigurować protokół SMB za pośrednictwem quiC, aby zablokować dostęp, odwołując certyfikaty lub jawnie odmawiając dostępu do określonych urządzeń. Administrator serwera może uniemożliwić klientowi dostęp do serwera, odwołując certyfikat klienta, zamiast polegać wyłącznie na kontroli dostępu klienta.
Notatka
Zalecamy używanie protokołu SMB przez QUIC z domenami usługi Active Directory, jednak nie jest to wymagane. Można również użyć protokołu SMB over QUIC na serwerze przyłączonym do grupy roboczej z poświadczeniami użytkownika lokalnego i NTLM.
Wpisy kontroli dostępu można dodawać i usuwać odpowiednio przy użyciu poleceń cmdlet Grant-SmbClientAccessToServer
i Revoke-SmbClientAccessToServer
. Za pomocą poleceń cmdlet Block-SmbClientAccessToServer
i Unblock-SmbClientAccessToServer
można dodawać i usuwać wpisy kontroli dostępu. Wpisy na liście kontroli dostępu można wyświetlić przy użyciu polecenia cmdlet Get-SmbClientAccessToServer
.
Certyfikat liścia można udzielić lub odmówić dostępu, dodając wpis kontroli dostępu, który identyfikuje certyfikat przy użyciu skrótu SHA256. Grupie certyfikatów końcowych ze wspólnym wystawcą można udzielić lub odmówić dostępu, dodając wpis kontroli dostępu dla tego wspólnego wystawcy. Wpis wystawcy można dodać dla certyfikatów pośredniego urzędu certyfikacji i certyfikatów głównego urzędu certyfikacji. Użycie wpisów wystawcy może być przydatne, ponieważ pomaga zmniejszyć całkowitą liczbę wpisów, które należy dodać. Jeśli żaden z certyfikatów w łańcuchu certyfikatów klienta nie jest odrzucony i co najmniej jeden z nich ma dostęp, klient otrzymuje dostęp. Na przykład:
Jeśli został dodany wpis zezwolenia dla certyfikatu urzędu certyfikacji, a wpis odmowy został dodany dla jednego z certyfikatów końcowych, to wszystkie certyfikaty wystawione przez urząd certyfikacji mają dostęp z wyjątkiem certyfikatu, dla którego wpis odmowy został dodany.
Jeśli dla certyfikatu CA zostanie dodany wpis odmowy, a wpis zezwalający zostanie dodany dla jednego z certyfikatów głównych, zostanie odmówiony dostęp do wszystkich certyfikatów wystawionych przez CA. Certyfikat, któremu dodano wpis zezwalający, ma odmówiony dostęp, ponieważ każdy wpis odmowy w łańcuchu certyfikatów ma priorytet nad wpisami zezwalającymi.
Załóżmy, że główny urząd certyfikacji ma dwa pośrednie urzędy certyfikacji nazywane pośrednim urzędem certyfikacji 1 i pośrednim urzędem certyfikacji 2. Jeśli wpis zezwalania zostanie dodany dla głównego urzędu certyfikacji, a wpis odmowy zostanie dodany dla pośredniego urzędu certyfikacji 2, certyfikaty wystawione przez pośredni urząd certyfikacji 1 otrzymują dostęp, a certyfikaty wystawione przez pośredni urząd certyfikacji 2 odmawia się dostępu.
Warunki wstępne
Przed skonfigurowaniem kontroli dostępu klienta potrzebny jest serwer SMB z następującymi wymaganiami wstępnymi.
- Serwer SMB z systemem Windows Server 2022 Datacenter: Azure Edition z aktualizacją KB5035857 z 12 marca 2024 r. albo Windows Server 2025 lub nowszym. Aby odblokować funkcję w wersji zapoznawczej, należy również zainstalować windows Server 2022 KB5035857 240302_030531 Feature Preview.
- Protokół SMB za pośrednictwem platformy QUIC jest włączony i skonfigurowany na serwerze. Aby dowiedzieć się, jak skonfigurować protokół SMB za pośrednictwem usługi QUIC, zobacz SMB over QUIC.
- Jeśli używasz certyfikatów klienta wystawionych przez inny urząd certyfikacji, musisz upewnić się, że urząd certyfikacji jest zaufany przez serwer.
- Uprawnienia administracyjne dla konfigurowanych serwerów SMB.
Ważny
Po zainstalowaniu KB5035857 należy włączyć tę funkcję w zasadach grupy:
- Kliknij przycisk Start, wpisz gpediti wybierz pozycję Edytuj zasady grupy.
- Przejdź do Konfiguracja komputera\Szablony administracyjne\KB5035857 240302_030531 Feature Preview\Windows Server 2022.
- Otwórz zasady funkcji
KB5035857 240302_030531 i wybierz pozycję Włączone .
Potrzebujesz również klienta SMB
- Klient SMB uruchomiony w jednym z następujących systemów operacyjnych:
- Windows Server 2022 Datacenter: Azure Edition z 12 marca 2024 r. — Aktualizacja KB5035857. Aby odblokować funkcję w wersji zapoznawczej, należy również zainstalować windows Server 2022 KB5035857 240302_030531 Feature Preview.
- Windows 11 z 12 marca 2024 — aktualizacja KB5035853. Aby odblokować funkcję w wersji zapoznawczej, należy również zainstalować Windows 11 (oryginalna wersja) KB5035854 240302_030535 Funkcja zapoznawcza.
- Windows Server 2025 lub nowszy.
- Windows 11, wersja 24H2 lub nowsza.
- Certyfikat klienta, który jest:
- Wystawiono do uwierzytelniania klienta (EKU 1.3.6.1.5.5.7.3.2).
- Wystawione przez urząd certyfikacji, któremu ufa serwer SMB.
- Zainstalowane w magazynie certyfikatów klienta.
- Uprawnienia administracyjne dla konfigurowanych serwerów SMB.
Ważny
Po zainstalowaniu KB5035854 należy włączyć tę funkcję w zasadach grupy:
- Kliknij przycisk Start, wpisz gpediti wybierz opcję Edytuj zasady grupy.
- Przejdź do Konfiguracja komputera\Szablony administracyjne\KB5035854 240302_030535 Feature Preview\Windows 11 (oryginalna wersja).
- Otwórz zasady Podglądu funkcji KB5035854 240302_030535 i wybierz pozycję Włączone.
Konfigurowanie serwera SMB
Aby zarządzać ustawieniami klienta SMB, należy najpierw skonfigurować serwer SMB, aby wymagał od klienta wysyłania prawidłowego i zaufanego łańcucha certyfikatów oraz aby przeprowadzać kontrole dostępu na jego podstawie. Aby wykonać tę akcję, uruchom następujące polecenie:
Set-SmbServerCertificateMapping -RequireClientAuthentication $true
Notatka
Jeśli obie RequireClientAuthentication i SkipClientCertificateAccessCheck są ustawione na $true
, serwer weryfikuje ważność i wiarygodność łańcucha certyfikatów klienta, lecz nie przeprowadza kontroli dostępu.
Konfigurowanie klienta SMB
Zbieranie informacji o certyfikacie klienta SMB
Aby zebrać skrót certyfikatu klienta przy użyciu programu PowerShell:
Otwórz okno programu PowerShell z podwyższonymi uprawnieniami na kliencie SMB.
Wyświetl listę certyfikatów w magazynie certyfikatów klienta, uruchamiając następujące polecenie.
Get-ChildItem -Path Cert:\LocalMachine\My
Uruchom następujące polecenie, aby zapisać certyfikat w zmiennej. Zastąp
<subject name>
nazwą tematu certyfikatu, którego chcesz użyć.$clientCert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -Match "<subject name>"}
Zanotuj skrót SHA256 certyfikatu klienta, uruchamiając następujące polecenie. Ten identyfikator jest potrzebny podczas konfigurowania kontroli dostępu klienta.
$clientCert.GetCertHashString("SHA256")
Notatka
Odcisk palca przechowywany w obiekcie $clientCert
używa algorytmu SHA1. Jest to używane przez polecenia, takie jak New-SmbClientCertificateMapping
. Aby skonfigurować kontrolę dostępu klienta, potrzebny będzie również odcisk palca SHA256. Te odciski palca będą różne, ponieważ zostaną utworzone przy użyciu różnych algorytmów na bazie tego samego certyfikatu.
Przypisz certyfikat klienta do klienta SMB
Aby zamapować certyfikat klienta do klienta SMB:
Otwórz wiersz polecenia programu PowerShell z podwyższonym poziomem uprawnień na kliencie SMB.
Uruchom polecenie
New-SmbClientCertificateMapping
, aby zamapować certyfikat klienta. Zastąp<namespace>
w pełni kwalifikowaną nazwą domeny serwera SMB (FQDN) i użyj odcisku palca certyfikatu klienta SHA1 zebranego w poprzedniej sekcji przy użyciu zmiennej .New-SmbClientCertificateMapping -Namespace <namespace> -Thumbprint $clientCert.Thumbprint -StoreName My
Po zakończeniu certyfikat klienta jest używany przez klienta SMB do uwierzytelniania na serwerze SMB zgodnym z FQDN.
Testowanie łączności mapowania
Uruchom test łączności, mapując udostępniony zasób na serwerze lub urządzeniu klienckim. Aby to zrobić, uruchom jedno z następujących poleceń:
NET USE \\<server DNS name>\<share name> /TRANSPORT:QUIC
Lub
New-SmbMapping -RemotePath \\<server DNS name>\<share name> -TransportType QUIC
Jeśli zostanie wyświetlony komunikat o błędzie wskazujący, że dostęp został odrzucony przez serwer, możesz przejść do następnego kroku, ponieważ sprawdza to, czy mapowanie certyfikatów serwera i mapowanie certyfikatów klienta są skonfigurowane.
Konfigurowanie kontroli dostępu klienta
Udzielanie poszczególnym klientom
Wykonaj kroki, aby udzielić określonemu klientowi dostępu do serwera SMB przy użyciu kontroli dostępu klienta.
Zaloguj się do serwera SMB.
Otwórz wiersz polecenia programu PowerShell z podwyższonym poziomem uprawnień na serwerze SMB.
Uruchom
Grant-SmbClientAccessToServer
, aby udzielić dostępu do certyfikatu klienta. Zastąp<name>
nazwą hosta serwera SMB, a<hash>
identyfikatorem certyfikatu klienta SHA256, który zebrałeś w sekcji "Zbierz informacje o certyfikacie klienta SMB".Grant-SmbClientAccessToServer -Name <name> -IdentifierType SHA256 -Identifier <hash>
Udzielono ci teraz dostępu do certyfikatu klienta. Dostęp do certyfikatu klienta można sprawdzić, uruchamiając polecenie cmdlet Get-SmbClientAccessToServer
.
Przyznać określonym urzędom certyfikacji
Postępuj zgodnie z instrukcjami, aby udzielić klientom z określonego urzędu certyfikacji, określanego również jako wystawca, przy użyciu kontroli dostępu klientów.
Zaloguj się do serwera SMB.
Otwórz wiersz polecenia programu PowerShell z podwyższonym poziomem uprawnień na serwerze SMB.
Uruchom
Grant-SmbClientAccessToServer
, aby udzielić dostępu do certyfikatu klienta. Zastąp<name>
nazwą hosta serwera SMB i<subject name>
pełną nazwą wyróżniającą X.500 certyfikatu wystawcy. Na przykładCN=Contoso CA, DC=Contoso, DC=com
.Grant-SmbClientAccessToServer -Name <name> -IdentifierType ISSUER -Identifier "<subject name>"
Po zakończeniu tego kroku, uruchom cmdlet New-SmbMapping
, jak to opisano w Testuj łączność mapowania, ponieważ zaleca się powtórne uruchomienie celem weryfikacji, że kontrola dostępu użytkowników została prawidłowo skonfigurowana.
Inspekcja dzienników zdarzeń
Niektóre zdarzenia, takie jak dozwolony dostęp i odmowa dostępu, są przechwytywane na potrzeby rozwiązywania problemów. Te zdarzenia zawierają informacje o certyfikatach klienta (z wyłączeniem certyfikatu głównego), takich jak podmiot, wystawca, numer seryjny, skrót SHA1 i SHA256 oraz wpisy kontroli dostępu, które mają zastosowanie do tych certyfikatów. Te zdarzenia wyświetlają identyfikator połączenia. Ten identyfikator jest wyświetlany w niektórych zdarzeniach łączności klienta, co umożliwia administratorowi łatwe dopasowanie serwera z klientem, który próbował nawiązać połączenie.
Inspekcja tych zdarzeń jest domyślnie wyłączona i można je włączyć, uruchamiając następujące polecenie:
Set-SmbServerConfiguration -AuditClientCertificateAccess $true
Po włączeniu te zdarzenia są przechwytywane w Podgląd zdarzeń w następujących ścieżkach:
Ścieżka | Identyfikator zdarzenia |
---|---|
Dzienniki aplikacji i usług\Microsoft\Windows\SMBServer\Audit | 3007 3008 3009 |
Dzienniki aplikacji i usług\Microsoft\Windows\SMBClient\Connectivity | 30831 |