Condividi tramite


Disabilitare SMB 1 nei client Linux

Molte organizzazioni e provider di servizi Internet bloccano la porta usata da SMB per comunicare, porta 445. Questa pratica deriva dalle linee guida sulla sicurezza relative alle versioni legacy e deprecate del protocollo SMB. Anche se SMB 3.x è un protocollo sicuro da Internet, le versioni precedenti di SMB, in particolare SMB 1, non lo sono. SMB 1, noto anche come CIFS (Common Internet File System), è incluso in molte distribuzioni Linux.

SMB 1 è un protocollo obsoleto, inefficiente e non sicuro. La buona notizia è che File di Azure non supporta SMB 1. Inoltre, a partire dalla versione 4.18 del kernel Linux, Linux consente di disabilitare SMB 1. È consigliabile disabilitare SMB 1 nei client Linux prima di usare condivisioni file SMB nell'ambiente di produzione.

Attenzione

Questo articolo fa riferimento a CentOS, una distribuzione Linux che non sarà più supportata dopo giugno 2024. Valutare le proprie esigenze e pianificare di conseguenza. Per ulteriori informazioni, consultare la Guida alla fine del ciclo di vita di CentOS.

Stato della distribuzione Linux

A partire dal kernel Linux 4.18, il modulo kernel SMB, chiamato cifs per motivi legacy, espone un nuovo parametro del modulo (spesso definito parm da varie documentazioni esterne) denominato disable_legacy_dialects. Anche se introdotto nel kernel Linux 4.18, alcuni fornitori hanno eseguito il backporting di questa modifica ai kernel meno recenti supportati. La tabella seguente illustra in dettaglio la disponibilità di questo parametro di modulo nelle distribuzioni Linux comuni.

Distribuzione Può disabilitare SMB 1
Ubuntu 14.04-16.04 No
Ubuntu 18.04
Ubuntu 19.04+
Debian 8-9 No
Debian 10+
Fedora 29+
CentOS 7 No
CentOS 8+
Red Hat Enterprise Linux 6.x-7.x No
Red Hat Enterprise Linux 8+
openSU edizione Standard Leap 15.0 No
openSU edizione Standard Leap 15.1+
openSUSE Tumbleweed
SU edizione Standard Linux Enterprise 11.x-12.x No
SUSE Linux Enterprise 15 No
SU edizione Standard Linux Enterprise 15.1 No

È possibile verificare se la distribuzione linux supporta il parametro module disable_legacy_dialects tramite il comando seguente:

sudo modinfo -p cifs | grep disable_legacy_dialects

Questo comando dovrebbe restituire il messaggio seguente:

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)

Rimuovere SMB 1

Prima di disabilitare SMB 1, verificare che il modulo SMB non sia attualmente caricato nel sistema (che avviene automaticamente se è stata montata una condivisione SMB). Eseguire il comando seguente, che non dovrebbe restituire nulla se SMB non viene caricato:

lsmod | grep cifs

Per scaricare il modulo, smontare prima tutte le condivisioni SMB usando il umount comando . È possibile identificare tutte le condivisioni SMB montate nel sistema con il comando seguente:

mount | grep cifs

Dopo aver smontato tutte le condivisioni file SMB, è possibile scaricare il modulo in modo sicuro. Eseguire il comando modprobe:

sudo modprobe -r cifs

È possibile caricare manualmente il modulo con SMB 1 scaricato usando il modprobe comando :

sudo modprobe cifs disable_legacy_dialects=Y

Infine, è possibile verificare che il modulo SMB sia stato caricato con il parametro esaminando i parametri caricati in /sys/module/cifs/parameters:

cat /sys/module/cifs/parameters/disable_legacy_dialects

Per disabilitare in modo permanente SMB 1 nelle distribuzioni basate su Ubuntu e Debian, è necessario creare un nuovo file (se non sono già disponibili opzioni personalizzate per altri moduli) chiamate /etc/modprobe.d/local.conf con l'impostazione . Esegui questo comando:

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

È possibile verificare che questo abbia funzionato caricando il modulo SMB:

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

Passaggi successivi

Per altre informazioni su File di Azure, vedere i collegamenti seguenti: