Inaktivera SMB 1 på Linux-klienter
Många organisationer och Internetleverantörer blockerar den port som SMB använder för att kommunicera, port 445. Den här metoden kommer från säkerhetsvägledning om äldre och inaktuella versioner av SMB-protokollet. Även om SMB 3.x är ett internetsäkert protokoll är äldre versioner av SMB, särskilt SMB 1, inte det. SMB 1, även kallat CIFS (Common Internet File System), ingår i många Linux-distributioner.
SMB 1 är ett inaktuellt, ineffektivt och osäkert protokoll. Den goda nyheten är att Azure Files inte stöder SMB 1. Från och med Linux kernel version 4.18 gör Linux det också möjligt att inaktivera SMB 1. Vi rekommenderar starkt att du inaktiverar SMB 1 på dina Linux-klienter innan du använder SMB-filresurser i produktion.
Varning
Den här artikeln refererar till CentOS, en Linux-distribution som inte längre stöds efter juni 2024. Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledningen.
Distributionsstatus för Linux
Från och med Linux kernel 4.18 exponerar SMB-kernelmodulen, som anropas cifs
av äldre skäl, en ny modulparameter (kallas ofta parm av olika externa dokumentationer) med namnet disable_legacy_dialects
. Även om den introducerades i Linux kernel 4.18 har vissa leverantörer serverporterat den här ändringen till äldre kernels som de stöder. I följande tabell beskrivs tillgängligheten för den här modulparametern för vanliga Linux-distributioner.
Distribution | Kan inaktivera SMB 1 |
---|---|
Ubuntu 14.04-16.04 | Nej |
Ubuntu 18.04 | Ja |
Ubuntu 19.04+ | Ja |
Debian 8-9 | Nej |
Debian 10+ | Ja |
Fedora 29+ | Ja |
CentOS 7 | Nej |
CentOS 8+ | Ja |
Red Hat Enterprise Linux 6.x-7.x | Nej |
Red Hat Enterprise Linux 8+ | Ja |
openSUSE Leap 15.0 | Nej |
openSUSE Leap 15.1+ | Ja |
openSUSE Tumbleweed | Ja |
SUSE Linux Enterprise 11.x-12.x | Nej |
SUSE Linux Enterprise 15 | Nej |
SUSE Linux Enterprise 15.1 | Nej |
Du kan kontrollera om Linux-distributionen disable_legacy_dialects
stöder modulparametern via följande kommando:
sudo modinfo -p cifs | grep disable_legacy_dialects
Det här kommandot bör skicka följande meddelande:
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)
Ta bort SMB 1
Innan du inaktiverar SMB 1 kontrollerar du att SMB-modulen för närvarande inte har lästs in i systemet (vilket sker automatiskt om du har monterat en SMB-resurs). Kör följande kommando, som inte bör mata ut något om SMB inte läses in:
lsmod | grep cifs
Om du vill ta bort modulen demonterar du först alla SMB-resurser med kommandot umount
. Du kan identifiera alla monterade SMB-resurser i systemet med följande kommando:
mount | grep cifs
När du har demonterat alla SMB-filresurser är det säkert att ta bort modulen. modprobe
Kör kommandot:
sudo modprobe -r cifs
Du kan läsa in modulen manuellt med SMB 1 borttagen modprobe
med kommandot :
sudo modprobe cifs disable_legacy_dialects=Y
Slutligen kan du kontrollera att SMB-modulen har lästs in med parametern genom att titta på de inlästa parametrarna i /sys/module/cifs/parameters
:
cat /sys/module/cifs/parameters/disable_legacy_dialects
För att permanent inaktivera SMB 1 på Ubuntu- och Debianbaserade distributioner måste du skapa en ny fil (om du inte redan har anpassade alternativ för andra moduler) som anropas /etc/modprobe.d/local.conf
med inställningen. Kör följande kommando:
echo "options cifs disable_legacy_dialects=Y" | sudo tee -a /etc/modprobe.d/local.conf > /dev/null
Du kan kontrollera att detta har fungerat genom att läsa in SMB-modulen:
sudo modprobe cifs
cat /sys/module/cifs/parameters/disable_legacy_dialects
Nästa steg
Mer information om Azure Files finns på följande länkar: