Udostępnij za pośrednictwem


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:

  1. Kliknij przycisk Start, wpisz gpediti wybierz pozycję Edytuj zasady grupy.
  2. Przejdź do Konfiguracja komputera\Szablony administracyjne\KB5035857 240302_030531 Feature Preview\Windows Server 2022.
  3. Otwórz zasady funkcji KB5035857 240302_030531 i wybierz pozycję Włączone.

Potrzebujesz również klienta SMB z następującymi wymaganiami wstępnymi.

Ważny

Po zainstalowaniu KB5035854 należy włączyć tę funkcję w zasadach grupy:

  1. Kliknij przycisk Start, wpisz gpediti wybierz opcję Edytuj zasady grupy.
  2. Przejdź do Konfiguracja komputera\Szablony administracyjne\KB5035854 240302_030535 Feature Preview\Windows 11 (oryginalna wersja).
  3. 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:

  1. Otwórz okno programu PowerShell z podwyższonymi uprawnieniami na kliencie SMB.

  2. Wyświetl listę certyfikatów w magazynie certyfikatów klienta, uruchamiając następujące polecenie.

    Get-ChildItem -Path Cert:\LocalMachine\My
    
  3. 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>"}
    
  4. 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:

  1. Otwórz wiersz polecenia programu PowerShell z podwyższonym poziomem uprawnień na kliencie SMB.

  2. 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.

  1. Zaloguj się do serwera SMB.

  2. Otwórz wiersz polecenia programu PowerShell z podwyższonym poziomem uprawnień na serwerze SMB.

  3. 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.

  1. Zaloguj się do serwera SMB.

  2. Otwórz wiersz polecenia programu PowerShell z podwyższonym poziomem uprawnień na serwerze SMB.

  3. 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ład CN=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