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: