Udostępnij za pośrednictwem


Wyłączanie protokołu SMB 1 na klientach z systemem Linux

Wiele organizacji i dostawców usług internetowych (ISPs) blokuje port używany przez protokół SMB do komunikacji, port 445. Ta praktyka wynika ze wskazówek dotyczących zabezpieczeń dotyczących starszych i przestarzałych wersji protokołu SMB. Mimo że protokół SMB 3.x jest protokołem bezpiecznym z Internetu, starsze wersje protokołu SMB, zwłaszcza SMB 1, nie są. Protokół SMB 1, znany również jako CIFS (common Internet File System), jest dołączony do wielu dystrybucji systemu Linux.

Protokół SMB 1 jest nieaktualny, nieefektywny i niezabezpieczony protokół. Dobrą wiadomością jest to, że usługa Azure Files nie obsługuje protokołu SMB 1. Ponadto, począwszy od jądra systemu Linux w wersji 4.18, system Linux umożliwia wyłączenie protokołu SMB 1. Zdecydowanie zalecamy wyłączenie protokołu SMB 1 na klientach z systemem Linux przed użyciem udziałów plików SMB w środowisku produkcyjnym.

Uwaga

W tym artykule odwołuje się system CentOS — dystrybucja systemu Linux, która nie będzie już obsługiwana po czerwcu 2024 r. Rozważ odpowiednie użycie i zaplanuj. Aby uzyskać więcej informacji, zobacz wskazówki dotyczące zakończenia życia systemu CentOS.

Stan dystrybucji systemu Linux

Począwszy od jądra systemu Linux 4.18, moduł jądra SMB, nazywany cifs ze starszych powodów, uwidacznia nowy parametr modułu (często określany jako parm przez różne zewnętrzne dokumenty) o nazwie disable_legacy_dialects. Mimo że wprowadzono jądro systemu Linux w wersji 4.18, niektórzy dostawcy wycofali tę zmianę do starszych jąder, które obsługują. W poniższej tabeli przedstawiono dostępność tego parametru modułu w typowych dystrybucjach systemu Linux.

Dystrybucja Może wyłączyć protokół SMB 1
Ubuntu 14.04-16.04 Nie.
Ubuntu 18.04 Tak
Ubuntu 19.04+ Tak
Debian 8-9 Nie.
Debian 10+ Tak
Fedora 29+ Tak
CentOS 7 Nie.
CentOS 8+ Tak
Red Hat Enterprise Linux 6.x-7.x Nie.
Red Hat Enterprise Linux 8+ Tak
openSUSE Leap 15.0 Nie.
openSUSE Leap 15.1+ Tak
openSUSE Tumbleweed Tak
SUSE Linux Enterprise 11.x-12.x Nie.
SUSE Linux Enterprise 15 Nie.
SUSE Linux Enterprise 15.1 Nie.

Sprawdź, czy dystrybucja systemu Linux obsługuje parametr modułu disable_legacy_dialects za pomocą następującego polecenia:

sudo modinfo -p cifs | grep disable_legacy_dialects

To polecenie powinno wyświetlić następujący komunikat:

disable_legacy_dialects: To improve security it may be helpful to restrict the ability to override the default dialects (SMB2.1, SMB3 and SMB3.02) on mount with old dialects (CIFS/SMB1 and SMB2) since vers=1.0 (CIFS/SMB1) and vers=2.0 are weaker and less secure. Default: n/N/0 (bool)

Usuwanie protokołu SMB 1

Przed wyłączeniem protokołu SMB 1 upewnij się, że moduł SMB nie jest obecnie załadowany w systemie (co dzieje się automatycznie, jeśli został zainstalowany udział SMB). Uruchom następujące polecenie, które nie powinno zwracać żadnych danych, jeśli protokół SMB nie został załadowany:

lsmod | grep cifs

Aby zwolnić moduł, najpierw odinstaluj wszystkie udziały SMB przy użyciu umount polecenia . Wszystkie zainstalowane udziały SMB w systemie można zidentyfikować za pomocą następującego polecenia:

mount | grep cifs

Po usunięciu wszystkich udziałów plików SMB można bezpiecznie zwolnić moduł. modprobe Uruchom polecenie:

sudo modprobe -r cifs

Moduł można załadować ręcznie przy użyciu protokołu SMB 1 zwolniony przy modprobe użyciu polecenia :

sudo modprobe cifs disable_legacy_dialects=Y

Na koniec możesz sprawdzić, czy moduł SMB został załadowany z parametrem, sprawdzając załadowane parametry w pliku /sys/module/cifs/parameters:

cat /sys/module/cifs/parameters/disable_legacy_dialects

Aby trwale wyłączyć protokół SMB 1 w dystrybucjach opartych na systemie Ubuntu i Debian, należy utworzyć nowy plik (jeśli nie masz jeszcze niestandardowych opcji dla innych modułów) nazywany /etc/modprobe.d/local.conf ustawieniem. Uruchom następujące polecenie:

echo "options cifs disable_legacy_dialects=Y" | sudo tee -a /etc/modprobe.d/local.conf > /dev/null

Możesz sprawdzić, czy działa to przez załadowanie modułu SMB:

sudo modprobe cifs
cat /sys/module/cifs/parameters/disable_legacy_dialects

Następne kroki

Poniższe linki umożliwiają uzyskanie dodatkowych informacji na temat usługi Azure Files: