So installierst du NFS Server und Client unter Ubuntu 22.04
Was ist NFS?
NFS oder Network File System ist ein Protokoll, das es lokalen Benutzern ermöglicht, auf entfernte Daten von mehreren Festplatten und Verzeichnissen auf die gleiche Weise zuzugreifen wie auf lokale. Das NFS-Protokoll wurde ursprünglich von Sun Microsystem entwickelt und ist heute das Standardprotokoll für die gemeinsame Nutzung von Dateien über ein Netzwerk. Es wird häufig in einer zentralisierten Umgebung verwendet, in der Benutzer oder Client-Computer Daten auf einem zentralen Remote-Server speichern und darauf zugreifen können.
Auf den meisten Linux-Systemen kann NFS einfach installiert und für NFS Server und Client konfiguriert werden. Fast jede Linux-Distribution bietet standardmäßig NFS-Pakete in ihrem eigenen Repository an. Der Paketname ist unterschiedlich, aber die Konfiguration ist bei fast allen Linux-Distributionen gleich.
In diesem Lernprogramm erfährst du, wie du NFS Server und Client auf dem Ubuntu 22.04 Server installierst. Außerdem erfährst du, wie du das gemeinsame NFS-Verzeichnis automatisch beim Systemstart auf dem Client-Rechner einhängst.
Voraussetzungen
Für diesen Leitfaden brauchst du die folgenden Voraussetzungen:
- Einen Ubuntu Server 22.04 – Für die Installation des NFS-Servers.
- Einen Linux-Client-Rechner – In diesem Beispiel wird der Ubuntu-Client-Rechner verwendet.
- Einen Nicht-Root-Benutzer mit Root-/Administrator-Rechten.
Installieren und Konfigurieren von NFS Server
Als Erstes wirst du den NFS Server installieren und konfigurieren. Bevor du beginnst, melde dich bei deinem Server an und verschaffe dir die Root-Rechte.
Du kannst dich mit dem unten stehenden ssh-Befehl anmelden. Führe dann den Befehl„sudo su“ aus, um die Root-Rechte zu erhalten.
ssh user@SERVER-IP sudo su
NFS Server Paket installieren
Bevor du Pakete installierst, führe den Befehl apt aus, um dein Ubuntu-Repository zu aktualisieren.
sudo apt update
Installiere nun das NFS-Server-Paket mit dem unten stehenden Befehl. Gib Y ein, um die Installation zu bestätigen, und drücke ENTER, um die Installation zu starten.
sudo apt install nfs-kernel-server
Nachdem die Installation des NFS-Servers abgeschlossen ist, überprüfe und bestätige den NFS-Serverdienst mit dem folgenden Befehl. Bei der Ubuntu-Installation wird der NFS-Server automatisch aktiviert und läuft automatisch beim Systemstart.
sudo systemctl is-enabled nfs-server sudo systemctl status nfs-server
Auf dem Ubuntu 22.04 Server hat sich die NFS-Konfiguration geändert. Die Hauptkonfiguration für NFS befindet sich in der Datei„/etc/nfs.conf„, mit der du den NFS-Server einrichten und konfigurieren kannst. Eine weitere Konfiguration für den NFS-Dienst befindet sich in der Datei„/etc/default/nfs-*„, mit der du den NFS-Dienst so einrichten kannst, wie er laufen soll.
Außerdem sind bei der Standardinstallation standardmäßig die NFS-Versionen NFSv3 und NFSv4 aktiviert. Du kannst die standardmäßig aktivierten NFS-Versionen mit dem unten stehenden Befehl überprüfen.
cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
Gemeinsames Verzeichnis einrichten
Nach der Installation des NFS-Serverpakets musst du nun die gemeinsamen Verzeichnisse einrichten. NFS-Freigabeverzeichnisse können über die Datei„/etc/exports“ definiert werden. Außerdem kannst du die IP-Adresse des Clients für das gemeinsame Verzeichnis angeben oder die Lese- und Schreibrechte für das gemeinsame Verzeichnis einrichten.
Führe den folgenden Befehl aus, um neue gemeinsame Verzeichnisse zu erstellen. In diesem Beispiel stehen den Clients zwei gemeinsame Verzeichnisse zur Verfügung:„/srv/backups“ und„/mnt/shared„.
sudo mkdir -p /srv/backups /mnt/shared
Ändere nun die Eigentümerschaft und die Berechtigung der gemeinsamen Verzeichnisse mit dem unten stehenden Befehl. Der Benutzer und die Gruppe sollten„nobody:nogroup“ lauten und die Berechtigung wird auf„777“ gesetzt, damit die gemeinsamen Verzeichnisse beschreibbar sind.
sudo chown -R nobody:nogroup /srv/backups /mnt/shared sudo chmod 777 /srv/backups /mnt/shared
Als nächstes änderst du die Datei„/etc/exports“ mit dem folgenden Befehl.
sudo nano /etc/exports
Füge die folgende Konfiguration in die Datei ein.
/srv/backups 192.168.5.100(rw,sync,no_subtree_check) /mnt/shared 192.168.10.0/24(rw,sync,no_subtree_check)
Speichere und schließe die Datei, wenn du fertig bist.
- Das Verzeichnis„/srv/backups“ wird nur für den NFS-Client mit der IP-Adresse„192.168.5.100“ verfügbar sein.
- Das Verzeichnis „/mnt/shared“ wird für alle Clients im gesamten Netzwerk„192.168.10.0/24“ verfügbar sein.
- rw – Lese- und Schreibrechte für das freigegebene Verzeichnis aktivieren.
- sync – erlaubt es NFS, Änderungen zu schreiben, bevor es den Klienten antwortet und stellt sicher, dass der NFS-Server den Klienten immer präsentiert wird.
- no_subtree_check – deaktiviert die Überprüfung von Teilbäumen und stellt sicher, dass es keine Konflikte gibt, wenn Benutzer den Dateinamen ändern.
Führe als Nächstes den folgenden Befehl aus, um alle Verzeichnisse anzuwenden und zu exportieren. Wenn du keine Meldung erhältst, sind deine Einstellungen korrekt.
sudo exportfs -a
Führe nun den folgenden Befehl aus, um den NFS-Dienst neu zu starten und zu überprüfen. Du solltest sehen, dass der NFS-Dienst mit einem neuen exportierten Verzeichnis läuft.
sudo systemctl restart nfs-server sudo systemctl status nfs-server
Führe den folgenden Befehl aus, um die verfügbaren gemeinsamen Verzeichnisse auf dem NFS-Server zu überprüfen. Du solltest sehen, dass die beiden Verzeichnisse„/srv/backups“ und„/mnt/shared“ als gemeinsame Verzeichnisse für Clients verfügbar sind.
sudo exportfs -v
Absicherung des NFS-Servers mit der Firewall
Nachdem du das gemeinsame NFS-Verzeichnis eingerichtet hast, ist es an der Zeit, den NFS-Server mit der Firewall zu sichern, in diesem Fall ist die Standard-Firewall von Ubuntu die UFW.
Wie du oben sehen kannst, ist jedes gemeinsame Verzeichnis über eine bestimmte Client-IP-Adresse und ein bestimmtes Netzwerk zugänglich. Du musst also die IP-Adresse oder das Netzwerk des Clients in der UFW-Firewall-Regel angeben, die auf den Port des NFS-Dienstes zugreifen dürfen.
Führe den folgenden ufw-Befehl aus, um der Client-IP-Adresse„192.168.5.100“ und dem Netzwerk„192.168.10.0/24“ den Zugriff auf den NFS-Service-Port zu erlauben.
sudo ufw allow from 192.168.5.100 to any port nfs sudo ufw allow from 192.168.10.0/24 to any port nfs
Lade nun die UFW-Firewall-Regel neu und überprüfe die Liste der Firewall-Regeln mit dem unten stehenden Befehl. Du solltest sehen, dass der Standard-NFS-Service-Port„2049“ über bestimmte Client-IP-Adressen und Netzwerke zugänglich ist.
sudo ufw reload sudo ufw status
Installieren und Konfigurieren des NFS-Client
Nachdem du den NFS-Server installiert hast, ist es nun an der Zeit, den NFS-Client einzurichten und das gemeinsame Verzeichnis auf dem Client-Rechner einzuhängen. In diesem Beispiel wird der Client ebenfalls ein Ubuntu-Rechner sein.
Melde dich bei deinem Ubuntu-Client-Rechner an. Wenn du den Ubuntu Desktop verwendest, kannst du einfach das Terminal auf deinem System öffnen. Wenn du jedoch die Ubuntu Server-Version für den Client verwendest, kannst du dich mit dem ssh-Befehl wie unten beschrieben verbinden.
ssh root@CLIENT-IP
Installation des NFS-Client-Pakets
Der erste Schritt auf dem Client-Rechner ist die Installation des Pakets „nfs-common“, mit dem du den NFS-Server auf deinem Client-Rechner einbinden kannst.
Führe den folgenden apt-Befehl aus, um deine Ubuntu-Repositories zu aktualisieren und aufzufrischen.
sudo apt update
Installiere nun das Paket„nfs-common“ mit dem folgenden Befehl. Gib Y ein, um die Installation zu bestätigen und drücke ENTER. Jetzt beginnt die Installation.
sudo apt install nfs-common
Mount-Verzeichnis einrichten
Bevor du mit dem Einhängen des NFS-Freigabeverzeichnisses beginnst, musst du ein neues Verzeichnis für das Einhängeziel erstellen. In diesem Beispiel ist das Zielverzeichnis für das Einhängen der NFS-Freigaben das Verzeichnis „/mnt/data“.
Führe den folgenden Befehl aus, um ein neues Verzeichnis„/mnt/data“ zu erstellen.
sudo mkdir -p /mnt/data
Um das NFS-Freigabeverzeichnis einzuhängen, führe den unten stehenden Einhängebefehl aus. In dieser Demo wirst du das gemeinsame Verzeichnis „/srv/backups“ in das Zielverzeichnis„/mnt/data“ einhängen.
sudo mount nfs_server_ip:/srv/backups /mnt/data
Führe nun den folgenden Befehl aus, um die Liste der gemounteten Laufwerke auf deinem Ubuntu-Rechner zu überprüfen und zu verifizieren. Du solltest sehen, dass das gemeinsame NFS-Verzeichnis „/srv/backups“ auf deinem lokalen Rechner in das Verzeichnis „/mnt/data“ eingehängt ist.
sudo df -h
Überprüfen des Schreibzugriffs auf den NFS-Server
Nachdem du das gemeinsame NFS-Verzeichnis erfolgreich eingehängt hast, ist es an der Zeit, den Schreibzugriff auf das gemeinsame NFS-Verzeichnis zu überprüfen.
Führe nun den folgenden Befehl aus, um eine neue Datei„write.txt“ zu erstellen und in das gemountete NFS-Zielverzeichnis„/mnt/data/“ zu schreiben.
echo "This file from client" > /mnt/data/write.txt cat /mnt/data/write.txt
Gehe als Nächstes zurück zum NFS-Server und führe den folgenden Befehl aus, um die Datei„write.txt“ zu prüfen und zu verifizieren. Du solltest genau die gleiche Datei sehen, die du gerade auf dem NFS-Client-Rechner erstellt hast.
cat /srv/backups/write.txt ls /srv/backups/
NFS Server mit /etc/fstab automatisch einhängen
Jetzt hast du das gemeinsame NFS-Verzeichnis auf dem Ubuntu-Client-Rechner erfolgreich eingehängt und den Schreibzugriff auf das gemeinsame Verzeichnis überprüft. Jetzt musst du das gemeinsame NFS-Verzeichnis so einrichten, dass es beim Systemstart automatisch eingehängt wird, und zwar über die Datei /etc/fstab.
Bevor du die Datei /etc/fstab bearbeitest, führe den folgenden Befehl aus, um das NFS-Freigabeverzeichnis vom Ziel„/mnt/data“ auszuhängen.
sudo umount /mnt/data
Bearbeite die Datei„/etc/fstab“ mit dem folgenden Befehl.
sudo nano /etc/fstab
Füge die folgende Konfiguration in die Datei ein.
nfs_server_ip:/srv/backups /mnt/data nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Speichere und schließe die Datei, wenn du fertig bist.
Als Nächstes führst du den unten stehenden Mount-Befehl aus, um die Datei „/etc/fstab“ zu überprüfen und zu verifizieren. Wenn deine Konfiguration korrekt ist, werden alle Dateisysteme in der Datei„/etc/fstab“ in deinem Rechner eingehängt.
sudo mount -a
Überprüfe die Liste der gemounteten Laufwerke auf deinem Client-Rechner mit dem unten stehenden Befehl. Du solltest sehen, dass das NFS-Freigabeverzeichnis„/srv/backups“ in das Zielverzeichnis „/mnt/data“ eingehängt ist. Wenn du den Client-Rechner neu startest, wird das gemeinsame NFS-Verzeichnis automatisch in das Verzeichnis„/mnt/data“ eingehängt.
sudo df -h
Fazit
Herzlichen Glückwunsch! Du hast nun erfolgreich den NFS Server auf dem Ubuntu 22.04 Server installiert. Außerdem hast du den Zugriff auf den NFS Server mit der UFW Firewall gesichert. Schließlich hast du auch gelernt, wie du einen Ubuntu-Client-Rechner so einrichtest, dass er das gemeinsame NFS-Verzeichnis einbindet. Dazu gehört auch, wie du das gemeinsame NFS-Verzeichnis beim Systemstart automatisch über die Datei „/etc/fstab“ einbindest.