Die effiziente gemeinsame Nutzung von Dateien und Ressourcen in einem Netzwerk ist für viele Anwender von zentraler Bedeutung. Hierbei kommt NFS (Network File System) ins Spiel, ein weit verbreitetes Protokoll für die transparente Dateifreigabe zwischen Unix-ähnlichen Systemen. Insbesondere unter Ubuntu, einem der beliebtesten Linux-Betriebssysteme, bietet NFS eine leistungsstarke Lösung für die nahtlose Zusammenarbeit von Rechnern im Netzwerk. In diesem Beitrag werden wir einen genaueren Blick darauf werfen, wie man NFS-Freigaben erstellen und verwalten kann. Dabei gehen wir auch auf die spezielle Konfiguration mit einer ufw-Firewall unter Ubuntu ein. Egal, ob du eine Heimnetzwerkumgebung einrichten oder in einem Unternehmen arbeiten – NFS kann dir helfen, Dateien und Verzeichnisse einfach und effektiv über das Netzwerk zu teilen. Tauchen wir ein in die Welt der NFS-Freigaben unter Ubuntu und entdecken, wie wir Dateien unkompliziert mit anderen Geräten im Netzwerk teilen können.
Voraussetzungen
Um NFS-Freigaben erstellen und verwalten zu können, ist das Paket nfs-kernel-server notwendig und muss auf dem Server installiert sein. Falls es noch nicht installiert ist, kann dies einfach durch die Ausführung des folgenden Befehls nachgeholt werden:
sudo apt-get install nfs-kernel-server
NFS-Freigabe erstellen
Um eine NFS-Freigabe unter Ubuntu zu erstellen, müssen wir die Datei /etc/exports bearbeiten. Hier wird die Freigabe nach folgendem Muster festgelegt: Freigabepfad –TABULATOR– IPAdresse(Optionen)
Angenommen, wir möchten den Ordner/var/music freigeben, könnte die entsprechende Eintragung wie folgt aussehen:
/var/music 192.168.2.1/255.255.255.0(rw,sync,no_subtree_check,no_root_squash,insecure)
Freigabepfad
Der Freigabepfad bezieht sich auf die im Netzwerk erreichbaren Ressourcen, welches ein Ordner, eine Datei oder ganze Dateisysteme repräsentieren kann.
IP-Adressen
Die IP-Adresse dient dazu, den Zugriff für bestimmte Geräte oder IP-Netze zu steuern. Beachte, dass entweder eine spezifische IP-Adresse oder ein IP-Netz angeben werden kann.
Um deine aktuelle Netzwerk-IP-Adresse unter Windows zu ermitteln, öffne die CMD-Befehlszeile, gib den Befehl ipconfig
ein und bestätige mit Enter. In den angezeigten Informationen findest du einen Abschnitt zur IPv4-Adresse und Subnetzmaske. Die IPv4-Adresse repräsentiert die aktuelle IP deines mit dem Netzwerk verbundenen Geräts. Um das oben genannte Beispiel an deine Netzwerkkonfiguration anzupassen, ersetze die IP-Adresse durch deine eigene. Achte dabei darauf, die letzten Zahlen (hinter dem letzten Punkt) auf .0 zu ändern, da die .0 Adresse immer das Netz angibt.
Freigabeoptionen
Die Optionen in dem obigen Beispiel werden nachfolgend kurz erläutert. Eine detailliertere Übersicht der verschiedenen Optionen sind hier erläutert.
- rw: Gewährt Nutzern Lese- und Schreibrechte.
- sync: Nutzt einen synchronen Dateitransfer.
- no_subtree_check: Verhindert ständige Überprüfungen von Unterverzeichnissen während der Freigabe und erhöht die Kompatibilität bei Dateiverschiebungen.
- no_root_squash: Hebt die Standardregel auf, die bewirkt, dass Anfragen vom Root-Benutzer (UID 0) auf dem Client auf den anonymen Benutzer (nfsnobody) auf dem Server abgebildet werden.
- insecure: Verwendung von Ports oberhalb von 1024, notwendig z.B. bei der Einbindung eines Fire-TV-Sticks.
Nachdem die benötigen Freigaben eingetragen wurden, muss der NFS-Dienst neu gestartet werden, damit die Änderungen übernommen werden. Dies kann wie folgt durchgeführt werden:
sudo systemctl restart nfs-kernel-server
Anschließend sollten die Freigaben im angebenden Netz oder an einem spezifischen Gerät erreichbar sein.
Firewall und NFS
Um sicherzustellen, dass die NFS-Freigabe auch bei aktivierter Firewall erkannt und genutzt werden kann, sind bestimmte Konfigurationsschritte erforderlich. Diese unterscheiden sich je nach Ubuntu Version etwas.
Da rpc.mountd standardmäßig auf mehreren Ports lauscht, muss der Dienst rpc.mountd an einen Port gebunden und dann eine zusätzliche UFW-Regel hinzugefügt werden, um eingehende Verbindungen auf diesem bestimmten Port zu akzeptieren. Öffne dazu die Datei /etc/default/nfs-kernel-server
und kommentieren die Zeile
RPCMOUNTDOPTS=--manage-gids
aus und fügen die folgende Zeile hinzu
RPCMOUNTDOPTS="-p 13025"
13025
ist nur ein zufällig gewählter Port, der verfügbar ist und nicht bereits in /etc/services
definiert ist oder anderweitig genutzt wird. Anschließend muss der NFS-Dienst neu gestartet werden, damit die Änderungen übernommen werden. Dies kann wie folgt durchgeführt werden:
sudo systemctl restart nfs-kernel-server
Laut diesem Link werden die /etc/default/nfs-*
Dateien vom NFS-Server oder -Client in Ubuntu 22.04 ignoriert. Um trotzdessen eine Firewall mit NFS-Freigaben nutzen zu können, muss folgende Datei editiert werden: /etc/nfs.conf
Die Zeile #port=0 ein kommentieren (# entfernen) und den Port durch die gewünschte Nummer ersetzen (z.B. 13025 nach dem obigen Beispiel).
[mountd]
port=13025
Anschließend muss der NFS-Dienst neu gestartet werden, damit die Änderungen übernommen werden. Dies kann wie folgt durchgeführt werden:
sudo systemctl restart nfs-kernel-server
Danach muss sichergestellt werden, dass der Port 13025 nun korrekt geöffnet ist, indem rpcinfo -p
eingegeben wird und eine Ausgabe wie die folgende zu sehen ist:
programm vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 13025 mountd
100005 1 tcp 13025 mountd
100005 2 udp 13025 mountd
100005 2 tcp 13025 mountd
100005 3 udp 13025 mountd
100005 3 tcp 13025 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
Sind diese Vorbereitungen abgeschlossen so müssen folgende Firewall-Regeln hinzugefügt werden:
sudo ufw allow 111 (Standard NFS-Port)
sudo ufw allow 2049 (Standard NFS-Port)
sudo ufw allow 13025 (wie im obigen Beispiel gewählt)
Anschließend sind die NFS-Freigaben ebenfalls bei aktivierter Firewall erreichbar.
Ich hoffe euch hat der Beitrag NFS-Freigaben erstellen und verwalten gefallen hat. Gibt es Fragen? So meldet euch über das Kontaktformular oder hinterlasst einen Kommentar.
Hast du Interesse an einem neuem Servernamen? Unter dem folgenden Link findest du eine Auswahl.