NFS-Server: Linux-Verzeichnisse mit NFS für das Netzwerk freigeben (Anleitung)

In dieser Anleitung installieren wir auf den aktuellen Linux Distributionen (Ubuntu 22.04 / Debian 11) einen NFS Server für die Freigabe von Linux-Verzeichnissen über das Netzwerk. Nach der Installation und Konfiguration von NFS unter Linux können wir auf die freigegebenen Verzeichnisse von anderen Linux-, Mac- und Windows-Computer aus zugreifen. Das Network-File-System ist schnell eingerichtet und leistungsstärker als das SMB-Netzwerkprotokoll.

Das Netzwerkprotokoll wurde von Sun Microsystem entwickelt und gehört heute zu einer der effizientesten Lösungen, wenn wir Dateifreigaben von einem Linux-Server oder Linux-Client für andere Geräte im Netzwerk bereitstellen möchten. Die Installation von NFS unter Linux funktioniert nach dieser Anleitung auf fast allen Linux-Distributionen gleich, da das NFS-Paket bereits zum festen Bestandteil von den Standard-Repositorys der meisten Betriebssystemherausgeber gehört.

Wir installieren zuerst die notwendigen NFS-Pakete auf den Server mit installiertem Ubuntu 22.04 oder Debian 11 und geben ein für die Netzwerkfreigabe konfiguriertes Verzeichnis mit allen Rechten zum Lesen und Schreiben frei. 

Nach der Installation eines NFS-Servers zeige ich euch, wie ihr auf die Linux-Freigaben über das NFS-Netzwerkprotokoll von eurem Linux- und Windows-PC aus darauf zugreifen könnt. Dabei steht es uns frei, die NFS-Freigabe als einfache Netzwerkfreigabe zu verwenden oder als Netzlaufwerk zu mounten, sodass die Freigabe als richtige Festplatte erkannt und verwendet werden kann.

Inhaltsverzeichnis: NFS auf Ubuntu 22.04 / Debian 11 installierten und Linux-Verzeichnisse freigeben

Voraussetzungen für die Installation eines NFS-Servers nach dieser Anleitung

Einen NFS-Server installieren für die Freigabe und Einbindung von Linux-Verzeichnissen
  • Einen Serverhost mit einer aktuellen Linux-Distribution (z.B. Ubuntu 22.04, Debian 11 oder Fedora)
  • Einen Zugriff auf das System als Administrator (root)
  • Eine aktive Internetverbindung
  • Das System wurde vor Installationsbeginn auf den neusten Stand gebracht (Aktualisierung)

Hinweis: Für den Installationsprozess ist es unter Linux-Ubuntu Distributionen komfortabler, wenn wir auf den Root-Account wechseln, damit wir nicht nach jedem einzelnen Befehl das Passwort für die Authentifizierung eingeben müssen. Das kann wie folgt erledigt werden: sudo su root

Bevor wir mit der NFS-Server Installation beginnen, führe zunächst eine Aktualisierung der Paketquellen (Repositorys) durch:

apt update

NFS-Server installieren: Software beziehen und Installation durchführen

Installiere das NFS-Server-Paket auf deinem Linux-Server mit dem folgenden Befehl:

apt install nfs-kernel-server

Sobald das Paket erfolgreich installiert wurde, startet der NFS-Server unter Ubuntu und Debian in der Regel automatisch. Überprüfen lässt sich der Dienst mit dem nachfolgenden Befehlen.

Ist der NFS-Server aktiviert?

systemctl is-enabled nfs-server

Läuft der NFS-Server-Dienst?

systemctl status nfs-server

Die Installation von NFS unter Linux ist an diesem Punkt bereits erfolgt. Jetzt müssen Berechtigungen für die Verzeichnisse erteilt werden, die wir über das Netzwerk für andere Geräte freigeben möchten.

Verzeichnisse (Ordner) über NFS freigeben: Berechtigungen erteilen und Freigabe erstellen

Installation von NFS für Server mit Linux Ubuntu 22.04 und Debian 11

Damit wir auf gemeinsame Verzeichnisse unseres Hostsystems über NFS zugreifen können, müssen wir zunächst die erforderlichen Berechtigungen erteilen. Wir erstellen für diese Anleitung ein neues Verzeichnis. Verwende gerne das bereits bestehende, welches für die NFS-Freigabe konfiguriert werden soll.

Hinweis: Wir erstellen die Freigabe hier im Beispiel im Mount-Verzeichnis unter Linux. Für produktive Umgebungen eignen sich die Verzeichnisse /srv und /home besser!

Ein neues Verzeichnis für den gemeinsamen Zugriff erstellen:

mkdir -p /mnt/freigabe

Besitzer für das Verzeichnis konfigurieren:

chown -R nobody:nogroup /mnt/freigabe

Berechtigungen für Lese- und Schreibzugriffe festlegen:

chmod 777 /mnt/freigabe

Die Verzeichnisse werden auf dem NFS-Server über die Datei „exports“ Konfiguriert. Hier werden alle Freigaben manuell eingepflegt. Wir verwenden dafür den Nano-Editor und konfigurieren die Verzeichnisfreigaben für das oben angelegte Beispielverzeichnis.

Die exports-Datei mit dem Nano-Editor bearbeiten:

nano /etc/exports

Freigabe für ein IP-Adressbereich konfigurieren:

/mnt/freigabe 192.168.178.0/24(rw,sync,no_subtree_check)

Freigabe für ein IP-Adressbereich konfigurieren:

/mnt/freigabe  192.168.178.100(rw,sync,no_subtree_check)

Nachdem die NFS-Freigaben auf deinem Server erfolgreich eingepflegt worden sind, speichere die Änderungen ab (STRG + S) und verlasse den Nano-Editor wieder (STRG + X).

Beschreibung der verwendeten Parameter:

rw = Aktivierung von Lese- und Schreiboperationen

sync = Synchronisierung des Datentransfers

no_subtree_check = Erhöht die Verlässlichkeit und die Performance durch die Deaktivierung von Unterverzeichnisbäumen

Die Änderungen wirksam machen (Freigaben aktivieren):

exportfs -a

Hinweis: Wird nach der Absendung von diesem Befehl eine Fehlermeldung im Terminal ausgegeben, ist dir höchstwahrscheinlich ein Fehler bei der Syntax in der Datei „exports“ unterlaufen. Überprüfe diese gegebenenfalls noch einmal mit dem Editor.

Starte den NFS-Service unter Ubuntu 22.04 / Debian 11 mit diesem Befehl neu:

systemctl restart nfs-server

Überprüfe nun, ob der NFS-Server seinen Dienst wieder aufgenommen hat:

systemctl status nfs-server

Verifiziere mit diesem Befehl abschließend, ob die Linux-Verzeichnisse erfolgreich über NFS freigegeben worden sind:

exportfs -v

Die Freigaben von deinen Verzeichnissen sind an diesem Punkt erfolgreich abgeschlossen. Clients und andere Server können nun ohne Authentifizierung auf die Freigaben zugreifen. Eine Freigabe ohne Benutzerauthentifizierung ist natürlich nur in sicheren Netzwerken zu empfehlen!

Firewall-Konfigurationen für den Zugriff auf die Freigaben des NFS-Servers-Dienstes unter Debian 11 und Ubuntu 22.04

Konfigurationen der Firewall für die NFS-Freigaben

Dieser Schritt ist optional und nur dann zwingend erforderlich, wenn wir eine Firewall auf dem Server aktiviert haben. Ohne die Freigabe der NFS-Ports können keine Zugriffe auf die Verzeichnisse über das Netzwerk erfolgen. Standesgemäß wird für den NFS-Dienst der Port 2049 verwendet. 

Es folgt eine kurze Anleitung, wie die NFS-Ports unter Linux Debian und Ubuntu bei der Verwendung von der UFW-Firewall und iptables freigegeben werden können.

UFW-Firewall:

ufw allow from 192.168.178.100 to any port nfs

ufw allow from 192.168.178.0/24 to any port nfs

iptables:

iptables -I INPUT -p tcp --dport 2049 -j ACCEPT

iptables -I INPUT -p udp --dport 2049 -j ACCEPT

Damit die Änderungen wirksam werden, muss der Firewall-Dienst jetzt neu gestartet werden.

UFW-Firewall (Neustart):

ufw reload

iptables-Firewall (Neustart):

service iptables restart

Das freigegebene Verzeichnis auf andere Linux-Systeme einbinden (NFS-Mount)

NFS-Mount Tutorial für die Implementierung der Freihabe vom NFS-Server auf den Client

Es folgt eine Anleitung, wie das Verzeichnis vom Ubuntu-NFS-Server auf einem anderen Linux basierten Client oder Server eingebunden werden kann. Dafür installieren wir das Paket „nfs-common“ und erstellen ein Mount-Verzeichnis.

Authentifiziere dich als Administrator (root) an dem System, auf dem die Freigabe eingebunden werden soll. Installiere das folgende Paket aus dem Repository mit diesem Befehl:

apt install nfs-common

Führe anschließend den folgenden Befehl aus, um ein neues Verzeichnis zu erstellen:

mkdir -p /mnt/freigabe

Das Verzeichnis wird mit dem folgenden Befehl gemountet:

mount 192.168.178.10:/mnt/freigabe /mnt/freigabe

Hinweis: Die IP-Adresse deines NFS-Servers und der Pfad zu deiner erstellten Freigabe muss natürlich vor Absendung des Befehls ergänzt werden.

Um die erfolgreiche Einbindung der Freigabe zu überprüfen, kannst du den Befehl für die Ausgabe der bereitgestellten Festplatten verwenden:

df -h

Die Freigabe sollte nun einschließlich der vorhandenen Kapazität in Gigabyte in der Liste angezeigt werden. Erstelle eine Datei in das gemountete Verzeichnis und überprüfe, ob Schreib- und Leseberechtigungen existieren. Sollte die Erstellung und Bearbeitung einer beliebigen Datei nicht möglich sein, kehre zu dem Schritt mit den Berechtigungen zurück und wiederhole die zwei Befehle.

Die Freigabe vom NFS-Server automatisch nach einem Systemneustart mounten

Nach einem Neustart wäre die NFS-Freigabe von dem Verzeichnis jetzt jedoch nicht mehr gemountet. Deshalb aktivieren wir jetzt die automatische Mountfunktion unter Debian/Ubuntu. So wird das Verzeichnis auch nach einem Systemneustart wieder direkt einsatzbereit sein.

Dafür bietet sich eine Konfiguration innerhalb der fstab-Konfigurationsdatei an. Damit wir dies Bearbeiten können, sollte das bereits eingebundene Verzeichnis noch einmal mit dem unmount-Befehl ausgeworfen werden:

umount /mnt/freigabe

Öffne nun die fstab-Datei mit dem Nano-Editor:

nano /etc/fstab

Füge die nachfolgende Zeile der Datei hinzu:

192.168.178.10:/mnt/freigabe /mnt/freigabe nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

Hinweis: Auch hier muss die IP-Adresse deines NFS-Servers und der Pfad deiner Freigabe mit dem Wert aus dem Beispiel ergänzt werden.

Speichere die Änderungen ab (STRG + S) und verlasse den Nano-Editor wieder (STRG + X).

Führe anschließend den folgenden Mountbefehl aus, um die neuen Einträge in der fstab-Datei zu verifizieren. Wenn dir keine Fehler bei der Einpflegung der Freigabe unterlaufen sind, sollte das Verzeichnis nun erfolgreich gemountet sein.

mount -a

Das Verzeichnis vom Linux-Server über NFS als Netzwerkfreigabe auf einen Windows-Computer einbinden

Dieser Beitrag wäre nicht komplett, ohne auch die Mountoptionen für Windows-Computer zu berücksichtigen. In diesem Abschnitt erfährst du, wie du die Freigabe deines NFS-Servers auf einem aktuellen Windowsbetriebssystem als Netzlaufwerk oder als Netzfreigabe einbinden kannst. Dafür müssen wir zuerst die Dienste für NFS unter Windows aktivieren. Das erledigen wir über die Installation als Windows-Feature.

Schritt 1:

Begebe dich auf die Suchleiste und gebe den Begriff „Windows Features“ in die Suchmaske von Windows ein. Klicke auf die Schaltfläche „Windows-Features aktivieren oder deaktivieren“.

NFS auf Windows aktivieren und die Freigabe auf dem Computer einbinden

Schritt 2:

Setze einen Haken bei der Auswahlmöglichkeit „Dienste für NFS“ und bestätige die Aktivierung des Windows-Features mit einem Mausklick auf den OK-Button.

Nach der erfolgreichen Aktivierung können wir das Linux-Verzeichnis als Netzlaufwerk oder als Netzfreigabe auf unserem Windows-Computer hinzufügen. Das geht am einfachsten über den Explorer.

NFS-Freigabe auf Microsoft Windows einbinden:

Öffne den Windows-Explorer mit der Tastenkombination: WIN + E

Navigiere mit dem Mauszeiger auf den Reiter „Dieser PC/Computer“ und führe einen Rechtsklick aus. Es öffnet sich ein Kontextmenü mit den Optionen „Netzlaufwerk verbinden“ und „Netzwerkadresse hinzufügen“.

Entscheide selbst, welche Art des Zugriffes die für dich beste Option darstellt. Ich empfehle die Verwendung einer gewöhnlichen Netzfreigabe. Hast du eine Auswahl getroffen? Dann trage die IP-Adresse von deinem NFS-Server und den freigegebenen Pfad in die Eingabemöglichkeit ein und bestätige die Eingabe mit der Schaltfläche „Weiter“.

Vergebe einen beliebigen Namen für die Freigabe und überprüfe den Zugriff über den Windows-Explorer. Die Freigabe sollte nun direkt unter deinen Systemfestplatten ersichtlich sein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert