Szyfrowanie ruchu w SMB 3.0

W wersji protokołu Serwer Wiadomość Zablokuj (SMB) 3.0, wprowadzone w systemie Windows Server 2012 / Windows 8 stało się możliwe szyfrowanie danych przesyłanych przez sieć między serwerem plików SMB a klientem. Szyfrowanie ruchu SMB pozwala chronić dane przesyłane przez niezaufaną lub otwartą sieć przed przechwyceniem i modyfikacją. Szyfrowanie danych jest przejrzyste z punktu widzenia klienta i nie wymaga znacznych kosztów organizacyjnych i zasobów, jak w przypadku implementacji infrastruktury VPN, IPSec i PKI. W najnowszej wersji protokołu SMB 3.1.1 (wprowadzony w Windows 10 i Windows Server 2016) stosowany jest typ szyfrowania AES 128 GCM, a wydajność algorytmu szyfrowania jest znacznie zwiększona. Ponadto wykonywane jest automatyczne podpisywanie i sprawdzanie integralności danych..

Przeanalizujemy funkcje wdrażania szyfrowania SMB w systemie Windows Server 2012. Przede wszystkim musisz zrozumieć, że jeśli klient i serwer obsługują różne wersje protokołu SMB, to podczas ustanawiania połączenia między serwerem a klientem do interakcji wybierana jest najwyższa obsługiwana wersja SMB zarówno klient, jak i serwer. Oznacza to, że wszyscy klienci z systemem operacyjnym niższym niż Windows 8 / Server 2012 nie będą mogli wchodzić w interakcje z katalogiem sieciowym, dla którego włączono szyfrowanie SMB..

Na serwerze plików można uzyskać wersję protokołu SMB używaną przez jednego lub drugiego klienta (wersja protokołu użytego w połączeniu jest wskazana w kolumnie Dialect):

Get-smbconnection

Domyślnie szyfrowanie do przesyłania ruchu SMB jest wyłączone na serwerze plików Windows Server 2012. Możesz włączyć szyfrowanie zarówno indywidualnie dla każdej piłki SMB, jak i dla całego serwera.

Jeśli chcesz włączyć szyfrowanie w określonym katalogu, otwórz konsolę na serwerze Menedżer serwera i przejdź do sekcji Usługi plików i przechowywania -> Udziały. Wybierz żądany folder publiczny i otwórz jego właściwości. Następnie przejdź do zakładki Ustawienia, gdzie włącz opcję Szyfruj dostęp do danych. Zapisz zmiany.

Możesz także włączyć szyfrowanie SMB z konsoli PowerShell. Włącz szyfrowanie dla jednego folderu:

Set-SmbShare -Name Install -EncryptData $ true

Lub dla wszystkich połączeń SMB z serwerem (niezależnie od tego, czy są to foldery współdzielone, czy zasoby administracyjne):

Set-SmbServerConfiguration -EncryptData $ true

Po włączeniu szyfrowania SMB dla udostępnionego folderu sieciowego, wszystkie starsze klienty (przed Windows 8) nie będą mogły połączyć się z tym katalogiem, ponieważ nie obsługują wersji protokołu SMB 3.0. Aby zezwolić na dostęp do takich klientów Windows (z reguły taki dostęp jest organizowany tymczasowo, w przeciwnym razie włączenie szyfrowania nie ma sensu), możesz zezwolić na połączenie z serwerem bez szyfrowania:

Set-SmbServerConfiguration -RejectUnencryptedAccess $ false

Wskazówka. Po włączeniu tego trybu łączący się klient będzie mógł przejść do całkowicie nieaktualnej wersji SMB 1.0 w trakcie negocjacji obsługiwanej wersji protokołu, która nie jest bezpieczna (w Windows Server 2012 R2 protokół SMB 1.0 jest już domyślnie wyłączony). W takim przypadku, aby przynajmniej częściowo zabezpieczyć serwer, zaleca się wyłączenie obsługi SMB 1.0:
Set-SmbServerConfiguration -EnableSMB1Protocol $ false