Deaktivieren von SMB 1 auf Linux-Clients
Viele Organisationen und Internetdienstanbieter (Internet Service Providers, ISPs) blockieren Port 445, der von SMB für die Kommunikation verwendet wird. Diese Praxis geht auf Sicherheitsempfehlungen im Zusammenhang mit alten und veralteten Versionen des SMB-Protokolls zurück. SMB 3.x ist zwar ein internetsicheres Protokoll, das gilt jedoch nicht für ältere SMB-Versionen (insbesondere SMB 1). SMB 1, auch bekannt als CIFS (Common Internet File System), ist in zahlreichen Linux-Distributionen enthalten.
SMB 1 ist ein veraltetes, ineffizientes und unsicheres Protokoll. Die gute Nachricht ist, dass Azure Files SMB 1 nicht unterstützt. Ab der Linux-Kernelversion 4.18 ermöglicht Linux die Deaktivierung von SMB 1. Es wird dringend empfohlen, SMB 1 auf Ihren Linux-Clients zu deaktivieren, bevor Sie SMB-Dateifreigaben in der Produktion verwenden.
Achtung
Dieser Artikel verweist auf CentOS, eine Linux-Distribution, die seit Juni 2024 nicht mehr unterstützt wird. Sie sollten Ihre Nutzung entsprechend planen. Weitere Informationen finden Sie im CentOS End-of-Life-Leitfaden.
Linux-Distributionsstatus
Ab der Linux-Kernelversion 4.18 stellt das SMB-Kernelmodul (cifs
genannt, weil es sich um eine Legacyversion handelt) einen neuen Modulparameter (in verschiedenen Dokumentationen häufig als parm bezeichnet) zur Verfügung, der hier als disable_legacy_dialects
bezeichnet wird. Obwohl dies mit der Linux-Kernelversion 4.18 eingeführt wurde, haben einige Anbieter diese Änderung auf ältere von ihnen unterstützte Kernelversionen zurückportiert. In der folgenden Tabelle wird die Verfügbarkeit dieses Modulparameters für gängige Linux-Distributionen erläutert.
Distribution | SMB 1 deaktivierbar |
---|---|
Ubuntu 14.04–16.04 | Nein |
Ubuntu 18.04 | Ja |
Ubuntu 19.04 und höher | Ja |
Debian 8–9 | Nein |
Debian 10 und höher | Ja |
Fedora 29 und höher | Ja |
CentOS 7 | Nein |
CentOS 8 und höher | Ja |
Red Hat Enterprise Linux 6.x–7.x | Nein |
Red Hat Enterprise Linux 8 und höher | Ja |
openSUSE Leap 15.0 | Nein |
openSUSE Leap 15.1 und höher | Ja |
openSUSE Tumbleweed | Ja |
SUSE Linux Enterprise 11.x–12.x | Nein |
SUSE Linux Enterprise 15 | Nein |
SUSE Linux Enterprise 15.1 | Nein |
Mithilfe des folgenden Befehls können Sie überprüfen, ob Ihre Linux-Distribution den Modulparameter disable_legacy_dialects
unterstützt:
sudo modinfo -p cifs | grep disable_legacy_dialects
Es sollte die folgende Meldung ausgegeben werden:
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)
Entfernen von SMB 1
Bevor Sie SMB 1 deaktivieren, vergewissern Sie sich, dass das SMB-Modul in Ihrem System nicht geladen ist (was bei der Einbindung einer SMB-Freigabe automatisch geschieht). Führen Sie den folgenden Befehl aus, der nichts ausgeben sollte, wenn SMB nicht geladen ist:
lsmod | grep cifs
Wenn Sie das Modul entladen möchten, entfernen Sie zuerst mit dem Befehl umount
alle SMB-Freigaben. Mithilfe des folgenden Befehls können Sie alle eingebunden SMB-Freigaben auf Ihrem System identifizieren:
mount | grep cifs
Nachdem Sie alle SMB-Dateifreigaben entfernt haben, ist es sicher, das Modul zu entladen. Führen Sie den Befehl modprobe
aus:
sudo modprobe -r cifs
Sie können das Modul mithilfe des Befehls modprobe
manuell laden, wenn SMB 1 entladen ist:
sudo modprobe cifs disable_legacy_dialects=Y
Zum Schluss können Sie überprüfen, ob das SMB-Modul mit dem Parameter geladen wurde, indem Sie sich die geladenen Parameter in /sys/module/cifs/parameters
ansehen:
cat /sys/module/cifs/parameters/disable_legacy_dialects
Wenn Sie SMB 1 für Ubuntu- und Debian-basierte Distributionen dauerhaft aktivieren möchten, müssen Sie eine neue Datei mit dem Namen /etc/modprobe.d/local.conf
und der entsprechenden Einstellung erstellen (wenn Sie noch nicht über benutzerdefinierte Optionen für andere Module verfügen). Führen Sie den folgenden Befehl aus:
echo "options cifs disable_legacy_dialects=Y" | sudo tee -a /etc/modprobe.d/local.conf > /dev/null
Wenn Sie das SMB-Modul laden, können Sie überprüfen, ob der Vorgang erfolgreich war:
sudo modprobe cifs
cat /sys/module/cifs/parameters/disable_legacy_dialects
Nächste Schritte
Weitere Informationen zu Azure Files finden Sie unter diesen Links: