Sdílet prostřednictvím


Zakázání protokolu SMB 1 v klientech s Linuxem

Řada organizací a poskytovatelů internetových služeb blokuje port, který protokol SMB používá ke komunikaci, port 445. Tento postup vychází z pokynů k zabezpečení starších a zastaralých verzí protokolu SMB. I když je protokol SMB 3.x internetovým bezpečným protokolem, starší verze SMB, zejména SMB 1, nejsou. Protokol SMB 1, označovaný také jako CIFS (Common Internet File System), je součástí mnoha distribucí Linuxu.

Protokol SMB 1 je zastaralý, neefektivní a nezabezpečený protokol. Dobrou zprávou je, že Azure Files nepodporuje protokol SMB 1. Kromě toho linuxové jádro verze 4.18 umožňuje Linux zakázat protokol SMB 1. Před použitím sdílených složek SMB v produkčním prostředí důrazně doporučujeme zakázat protokol SMB 1 na vašich klientech s Linuxem.

Upozornění

Tento článek odkazuje na CentOS, což je distribuce Linuxu, která už nebude podporována po červnu 2024. Zvažte své použití a odpovídajícím způsobem naplánujte. Další informace najdete v doprovodných materiálech CentOS End Of Life.

Stav distribuce Linuxu

Počínaje linuxovým jádrem 4.18 modul jádra SMB, který volal cifs ze starších důvodů, zveřejňuje nový parametr modulu (často označovaný jako parm v různých externích dokumentech).disable_legacy_dialects Přestože se v linuxovém jádru 4.18 zavedli, někteří dodavatelé tuto změnu backportovali do starších jader, která podporují. Následující tabulka podrobně popisuje dostupnost tohoto parametru modulu v běžných distribucích Linuxu.

Distribuce Může zakázat protokol SMB 1.
Ubuntu 14.04-16.04 No
Ubuntu 18.04 Ano
Ubuntu 19.04+ Ano
Debian 8-9 No
Debian 10+ Ano
Fedora 29 a novější Ano
CentOS 7 No
CentOS 8 a novější Ano
Red Hat Enterprise Linux 6.x-7.x No
Red Hat Enterprise Linux 8 a novější Ano
openSUSE Leap 15.0 No
openSUSE Leap 15.1+ Ano
openSUSE Tumbleweed Ano
SUSE Linux Enterprise 11.x-12.x No
SUSE Linux Enterprise 15 No
SUSE Linux Enterprise 15.1 No

Pomocí následujícího příkazu můžete zkontrolovat, jestli vaše distribuce Linuxu disable_legacy_dialects podporuje parametr modulu:

sudo modinfo -p cifs | grep disable_legacy_dialects

Tento příkaz by měl vypsat následující zprávu:

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)

Odebrání protokolu SMB 1

Před zakázáním protokolu SMB 1 ověřte, že se modul SMB aktuálně nenačítá ve vašem systému (k tomu dochází automaticky, pokud jste připojili sdílenou složku SMB). Spusťte následující příkaz, který by neměl být výstupem nic, pokud není načten protokol SMB:

lsmod | grep cifs

Pokud chcete modul uvolnit, nejprve pomocí příkazu odpojte všechny sdílené složky umount SMB. Všechny připojené sdílené složky SMB ve vašem systému můžete identifikovat pomocí následujícího příkazu:

mount | grep cifs

Jakmile odpojíte všechny sdílené složky SMB, je bezpečné modul uvolnit. modprobe Spusťte příkaz:

sudo modprobe -r cifs

Modul můžete ručně načíst s uvolněným protokolem SMB 1 pomocí modprobe příkazu:

sudo modprobe cifs disable_legacy_dialects=Y

Nakonec můžete zkontrolovat, jestli se modul SMB načetl s parametrem, a to tak, že se podíváte na načtené parametry v /sys/module/cifs/parameters:

cat /sys/module/cifs/parameters/disable_legacy_dialects

Pokud chcete protokol SMB 1 trvale zakázat v distribucích založených na Ubuntu a Debianu, musíte vytvořit nový soubor (pokud ještě nemáte vlastní možnosti pro jiné moduly) volaný /etc/modprobe.d/local.conf s nastavením. Spusťte následující příkaz:

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

Můžete ověřit, že to fungovalo načtením modulu SMB:

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

Další kroky

Další informace o službě Soubory Azure najdete na těchto odkazech: