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
Set-SmbServerConfiguration -EnableSMB1Protocol $ false