Funkcje SMB / CIFS w różnych wersjach, w
SMB to protokół sieciowy, który pozwala nam udostępniać pliki, foldery i drukarki w sieci lokalnej między różnymi systemami operacyjnymi, w tym Windows, Linux, MacOS i dowolnym systemem operacyjnym Unix zawierającym Sambę. Ten protokół jest na poziomie aplikacji i poniżej wykorzystuje port TCP 445, więc transfery danych są niezawodne, ponieważ w przypadku problemu następuje retransmisja danych. Od narodzin SMB/CIFS do dziś mamy kilka wersji, które zawierają usprawnienia działania i bezpieczeństwa protokołu, jednak nie wszystkie serwery z SMB/CIFS korzystają z najnowszych wersji protokołu. Podczas próby połączenia z lokalnym serwerem SMB mogą wystąpić nieoczekiwane błędy.
Dostęp do zasobów SMB/CIFS można uzyskać poprzez uwierzytelnianie z użytkownikami lokalnymi, uwierzytelnianie w oparciu o serwer RADIUS lub LDAP i oczywiście uwierzytelnianie Active Directory. Na poziomie konfiguracji moglibyśmy skonfigurować serwer, aby uniknąć pustych haseł, moglibyśmy również utworzyć konta gości, które umożliwiłyby dostęp do niektórych zasobów bez jakiegokolwiek uwierzytelnienia. Inne funkcje SMB / CIFS obejmują możliwość włączenia obsługi rozszerzonych funkcji OS / 2 we współdzielonym zasobie, a także przechowywanie tych funkcji DOS, jeśli używasz systemów operacyjnych Microsoft. Oczywiście możemy stworzyć maskę do tworzenia plików jak i katalogów, aby nowe pliki lub foldery miały określone uprawnienia.
Jeśli chodzi o wydajność SMB/CIFS, możemy pozwolić, aby asynchroniczne wejścia/wyjścia miały lepsze prędkości odczytu i zapisu na zasobach Samby, ponadto można go używać tylko do plików większych niż te określone w konfiguracji serwera. Podczas konfigurowania serwera SMB/CIFS bardzo ważna jest używana wersja, zarówno na serwerze, jak i na komputerze klienckim. Na poziomie konfiguracji możemy skonfigurować różne parametry, aby ustawić maksymalny protokół obsługiwany na poziomie serwera, a także minimalny protokół na poziomie serwera, aby zapewnić najlepsze bezpieczeństwo klientom. Na przykład bardzo bezpieczne ustawienie będzie obsługiwać tylko SMB3, jednak możemy mieć problemy z niektórymi klientami obsługującymi tylko SMB2,
PME / CIFS wersja 1
Pierwsza wersja tego protokołu została stworzona w 1983 roku i została zbudowana przy użyciu NetBIOS firmy Microsoft, ale NetBIOS nie był już używany w późniejszych wersjach. Wszystkie starsze wersje systemu Microsoft Windows korzystają z protokołu SMBv1, jednak nowsze wersje systemu Windows 10 i Windows Server nie mają zainstalowanego protokołu SMBv1 w systemie operacyjnym ze względów bezpieczeństwa, ponieważ ten protokół nie działa. stosowanie nie jest zalecane. Na przykład Windows Server 2016 i nowsze oraz Windows 10 Fall Creators Update domyślnie nie zawierają tej wersji.
Prawdą jest również, że niektóre routery nadal korzystają z pierwszej wersji protokołu na serwerach SMB/CIFS, w którym to przypadku niewiele lub nic można zrobić, aby skonfigurować wyższe wersje, ponieważ w zdecydowanej większości przypadków zależy to od producenta. Na przykład, jeśli masz oprogramowanie układowe innej firmy, takie jak OpenWRT lub DD-WRT, możesz wyłączyć ten protokół SMBv1 i włączyć najnowsze wersje obsługiwane przez oprogramowanie układowe.
PME / CIFS wersja 2
Microsoft wydał SMBv2 dla Windows Vista w 2006 i Windows Server 2008. Chociaż ten protokół jest prywatny, wszystkie jego specyfikacje zostały wydane, aby umożliwić programom takim jak Samba dla Linuxa i Uniksa używanie go w różnych systemach operacyjnych. W przeciwnym razie tylko systemy operacyjne Windows mogą wymieniać między sobą informacje.
SMB2 to duża zmiana w stosunku do pierwszej wersji, zarówno pod względem działania, jak i bezpieczeństwa. SMB2 zmniejsza konfigurację połączenia w porównaniu do SMB1.0, zmniejszając liczbę poleceń i podkomend oraz umożliwia wysyłanie dodatkowych żądań przed odpowiedzią na poprzednie żądanie, oszczędzając czas i poprawiając prędkość, gdy mamy duże opóźnienia w połączeniu lub gdy chcemy uzyskać lepsza mocna wydajność. Kolejną bardzo ważną opcją jest możliwość łączenia wielu działań w jedno żądanie, zmniejszając tym samym ilość wymienianych informacji. Protokół SMB 2.0 zawiera szereg identyfikatorów, aby zapobiec ponownemu połączeniu od samego początku w przypadku krótkiej awarii sieci, dzięki czemu nie będziemy musieli ponownie nawiązać połączenia.
Ta nowa wersja protokołu SMB 2.0 obsługuje logowanie symboliczne, buforowanie, podpisywanie wiadomości za pomocą HMAC-SHA256 i rozszerzoną skalowalność, aby mieć wielu jednoczesnych użytkowników na tym samym serwerze, a także pomaga zwiększyć liczbę udostępnionych zasobów i plików otwieranych przez serwer. ten Podczas gdy SMBv1 używa 16-bitowego rozmiaru danych, a maksymalny rozmiar bloku wynosi 64 KB, SMB2 32 lub 64-bitowy jest używany do przechowywania, co oznacza, że w przypadku superszybkich połączeń sieciowych, takich jak sieci Gigabit, Multigigabit lub 10G, przesyłanie plików jest znacznie szybszy przy wysyłaniu bardzo dużych plików.
W RedesZone udało nam się osiągnąć 1,2 Gb/s w sieci 10G przy użyciu SMB2, z QNAP TS-1277 NAS z pamięcią SSD, a także mieliśmy pamięć SSD na komputerze źródłowym, ponieważ tradycyjne dyski twarde nie obsługują tak wysokich prędkości, myślę, że używać wielu dysków RAID.
Systemy Windows Vista i Windows Server 2008 i nowsze domyślnie używają protokołu SMB2, ale na niektórych komputerach może nadal występować protokół SMB1, więc może być konieczne włączenie go specjalnie w celu łączenia się ze starszymi serwerami. Wreszcie, protokół SMB 2.1, który został wprowadzony w systemach Windows 7 i Windows Server 2008 R2, dodatkowo poprawił wydajność dzięki nowemu mechanizmowi sporadycznego blokowania.
PME / CIFS wersja 3
Ta wersja protokołu SMB 3.0, wcześniej nazywana SMB 2.2, została wprowadzona w systemach Windows 8 i Windows Server 2012 z kilkoma bardzo ważnymi nowymi zmianami, które dodają nowe funkcje i poprawiają wydajność SMB2 w wirtualnych centrach danych. Niektóre z wprowadzonych zmian to:
- SMB Direct Protocol: umożliwia korzystanie z SMB z bezpośrednim dostępem do zdalnej pamięci RDMA, każdy serwer z tą wersją zawiera tę funkcję, aby znacznie poprawić wydajność.
- Wielokanałowe SMB: ta funkcja pozwala nam na wykonywanie wielu połączeń na sesję SMB, aby wymusić jak największą komunikację i skompresować sieć lokalną, w której działa serwer i klienci.
- W pełni przezroczysty stok.
Jednak najważniejszą funkcją jest uwierzytelnianie SMB, teraz jest ono w pełni szyfrowane, zanim zawsze zostanie wykonane w postaci zwykłego tekstu, aby złośliwy użytkownik mógł umieścić sniffera sieciowego i przechwycić dane uwierzytelniające użytkownika. Gwarantuje to, że uwierzytelnianie odbywa się w bezpieczny sposób. Wprowadzono również możliwość pełnego szyfrowania za pomocą AES do szyfrowania lub szyfrowania transferów plików i folderów. Dlatego w SMB 3.0 mamy dwie opcje konfiguracji:
- Bezpieczne uwierzytelnianie poprzez szyfrowanie i przesyłanie niezaszyfrowanych plików i folderów.
- Uwierzytelnianie oraz wymiana plików i folderów z szyfrowaniem symetrycznym zapewni nam maksymalne bezpieczeństwo, ale wydajność może ulec pogorszeniu.
Jeśli serwer SMB nie obsługuje AES-NI na swoim procesorze, wydajność, jaką mamy podczas przesyłania plików i folderów, jest prawdopodobnie bardzo niska, dlatego zdecydowanie zaleca się posiadanie wydajnego procesora ze sprzętowym silnikiem szyfrowania. W tej chwili wszystkie procesory z 2015 roku mają tę technologię, ale warto to uwzględnić w jej specyfikacjach technicznych.
Oprócz SMB w wersji 3.0, Windows 3.0.2 i Windows Server 8.1 R2012 wprowadziły również SMB w wersji 2, poprawiając funkcjonalność i wydajność. Ponadto w tych systemach operacyjnych można już wyłączyć protokół SMB w wersji 1.0 w celu zwiększenia bezpieczeństwa, ponieważ klienci mogą negocjować, których SMB używać podczas łączenia.
Wreszcie firma Microsoft wprowadziła SMB w wersji 3.1.1 w systemie Windows 10 i Windows Server 2016 i nowszych. Ta nowa wersja zawiera symetryczne szyfrowanie AES-128-GCM, aby zapewnić najlepsze możliwe bezpieczeństwo oraz najlepszą wydajność odczytu i zapisu, mamy również możliwość skonfigurowania funkcji szyfrowania CCM. Ponadto wdraża wstępne sprawdzanie integralności przy użyciu fragmentacji SHA2-512, jednej z najbezpieczniejszych obecnie. Wreszcie, ta wersja SMB 3.1.1 zmusza klientów do negocjowania protokołu SMB 2.0 lub nowszego z zabezpieczeniami, tj. uwierzytelnianiem szyfrowania.
Włącz lub wyłącz różne protokoły SMB w systemie Windows
Obecnie, jeśli korzystasz z najnowszych wersji systemu operacyjnego Windows, wersja 1.0 protokołu SMB jest domyślnie wyłączona ze względów bezpieczeństwa, ponieważ jest to protokół, który nie jest uważany za bezpieczny, konieczne jest użycie protokołu SMB 2.0 lub nowszego, aby uniknąć problemy bezpieczeństwa. Jednak wskazane byłoby sprawdzenie, czy mamy włączone różne protokoły, aby wiedzieć, które włączyć lub wyłączyć.
Następnie wyjaśnimy, jak wykrywać, wyłączać lub włączać różne wersje Samby. Pierwszą rzeczą do zrobienia jest kliknięcie przycisku „Windows”, a następnie wyszukanie „ PowerShell „Kliknij prawym przyciskiem i” działać jako administrator ”.
SMBv1 zarówno dla klienta, jak i serwera
Jeśli chcemy włączyć lub wyłączyć obsługę SMBv1 na naszym komputerze, musimy najpierw sprawdzić, czy ją włączyliśmy lub wyłączyliśmy.
Wykryć:
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Aby włączyć SMBv1 (niezalecane ze względów bezpieczeństwa), dołącz:
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Aby go wyłączyć:
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
SMBv2 / SMB3 zarówno dla klienta, jak i serwera
Jeśli chcemy włączyć lub wyłączyć obsługę SMBv2 lub SMBv3 na naszym komputerze, musimy najpierw sprawdzić, czy ją włączyliśmy lub wyłączyliśmy.
Get-SmbServerConfiguration | Select EnableSMB2Protocol
Aby go włączyć:
Set-SmbServerConfiguration -EnableSMB2Protocol $true
Aby go wyłączyć:
Set-SmbServerConfiguration -EnableSMB2Protocol $false
Działa zarówno w wersjach SMBv2, jak i SMBv3, w ten sposób nie będziemy mieć konkretnego polecenia dla SMBv3, ponieważ jest ono już wbudowane w SMBv2, ale musimy sprawdzić, czy włączone jest szyfrowanie danych, funkcja unikalna dla najnowszej wersji .SMBv3:
Get-SmbServerConfiguration | Select EncryptData
Jeśli jest napisane „False”, oznacza to, że szyfrowanie danych nie jest włączone, aby je włączyć, musimy wykonać następujące polecenie:
Set-SmbServerConfiguration -EncryptData $True
Musisz upewnić się, że zdalny serwer obsługuje SMBv3, w przeciwnym razie podczas próby uzyskania dostępu do udostępnionych zasobów dowolnego serwera wystąpi błąd.