Dela via


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: