So installierst du NFS Server und Client unter AlmaLinux 9

Was ist NFS? NFS, oder Network File System, ist ein Protokoll, das es lokalen Nutzern ermöglicht, auf entfernte Daten von mehreren Festplatten und Verzeichnissen zuzugreifen, wie bei einem lokalen Zugriff. 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 eingesetzt, in der Benutzer oder Client-Computer Daten auf einem zentralen Remote-Server speichern und darauf zugreifen können.

NFS kann auf den meisten Linux-Systemen sowohl als NFS-Server als auch als NFS-Client einfach installiert und konfiguriert werden. Fast jede Linux-Distribution bietet standardmäßig NFS-Pakete in ihrem Repository an. Der Paketname ist unterschiedlich, aber die Konfiguration ist bei fast allen Linux-Distributionen gleich.

In dieser Anleitung erfährst du, wie du NFS Server auf AlmaLinux 9 installierst. Außerdem wirst du einen Client-Rechner so einrichten, dass er freigegebene Verzeichnisse von NFS Server einbindet und die automatische Einbindung beim Booten über die Datei /etc/fstab einrichtet.

Voraussetzungen

Bevor du beginnst, musst du sicherstellen, dass du Folgendes hast:

  • Einen AlmaLinux 9 Server – In dieser Demo verwenden wir einen Server mit dem Hostnamen almalinux9-server und der IP-Adresse 192.168.10.15.
  • Ein Nicht-Root-Benutzer mit sudo/administrator Root-Rechten.
  • Ein oder mehrere Client-Rechner – Das kann jede RHEL-basierte Distribution sein.

Installation des NFS-Servers

Um einen NFS (Network File Storage) unter Almalinux einzurichten, musst du nur die nfs-utils auf dem NFS-Server und dem Client installieren. Es ist im AppStream Repository verfügbar und kann ganz einfach über DNF installiert werden.

Führe den folgenden Befehl aus, um das Paket nfs-utils zu installieren. Gib y ein, wenn du dazu aufgefordert wirst, und drücke dann ENTER.

sudo dnf install nfs-utils

nfs installieren

Öffne nun die Datei /etc/idmapd.conf mit dem unten stehenden nano-Editor-Befehl.

sudo nano /etc/idmapd.conf

Entferne das Kommentarzeichen bei dem Parameter Domain und ändere den Wert in den FQDN (fully qualified domain name) deines Servers oder verwende den Hostnamen.

Domain = almalinux9-server

Speichere und beende die Datei, wenn du fertig bist.

Als Nächstes führst du den folgenden Befehl aus, um den NFS-Dienst zu starten und zu aktivieren.

sudo systemctl start nfs-server
sudo systemctl enable nfs-server

Überprüfe dann den NFS-Dienst mit dem folgenden Befehl, um sicherzustellen, dass NFS läuft.

sudo systemctl status nfs-server

Wenn deine Installation erfolgreich war, solltest du eine Ausgabe wie diese erhalten:

start enable verify nfs-server

Gemeinsame Verzeichnisse erstellen

Jetzt, da der NFS-Server läuft, musst du als Nächstes das gemeinsame Verzeichnis für die Clients einrichten. Fangen wir also an.

Erstelle zunächst zwei Verzeichnisse /mnt/shared und /mnt/backup mit dem folgenden Befehl.

sudo mkdir -p /mnt/shared /mnt/backup

Ändere die Eigentümerschaft beider Verzeichnisse auf den Benutzer und die Gruppe nobody und ändere dann die Standardberechtigung auf 775.

sudo chown -R nobody:nobody /mnt/shared /mnt/backup
sudo chmod 775 /mnt/shared /mnt/backup

Als Nächstes erstellst du mit dem nano-Editor eine neue Konfigurationsdatei aa.

sudo nano /etc/exports

Füge die folgenden Zeilen in die Datei ein. In diesem Beispiel werden wir drei gemeinsame Verzeichnisse /mnt/backup und /home für den Client 192.168.10.21 und /mnt/shared für das gesamte Netzwerk 192.168.10.0/24 einrichten.

/mnt/backup  192.168.10.21(rw,sync,no_subtree_check)
/home 192.168.10.21(rw,sync,no_root_squash,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.

Hier sind einige wichtige NFS-Parameter, die du kennen solltest:

  • rw: Aktiviere das Lesen und Schreiben für das gemeinsame Zielverzeichnis.
  • sync: Mit dieser Option wird sichergestellt, dass die Daten zuerst auf die Festplatte geschrieben werden, bevor der Client eine neue Anfrage stellt. Auf diese Weise sind deine Daten sicher, aber die Geschwindigkeit der Lese- und Schreibvorgänge ist langsamer.
  • no_subtree_check: Deaktiviere die Teilbaumprüfung, um die Geschwindigkeit und Leistung des NFS-Servers zu verbessern. Die Teilbaumprüfung stellt sicher, dass es keine Konflikte gibt, wenn Nutzer den Dateinamen ändern.
  • no_root_squash: Damit wird das Squashing deaktiviert, das es NFS-Klienten ermöglicht, die Root-Rechte im gemeinsamen Verzeichnis zu erhalten. In diesem Beispiel deaktivieren wir das Squashing nur für das gemeinsame Verzeichnis /home.

Führe nun den folgenden Befehl aus, um den NFS-Server neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart nfs-server

Sobald NFS neu gestartet wurde, führe den folgenden Befehl aus, um die Liste der freigegebenen Verzeichnisse auf dem NFS-Server zu überprüfen.

sudo exportfs -v

Wenn die Operationen erfolgreich waren, solltest du die Liste der freigegebenen NFS-Verzeichnisse wie folgt auf deinem Terminal sehen:

Gemeinsames Verzeichnis prüfen

Absicherung des NFS-Servers mit Firewalld

Nachdem du das gemeinsame NFS-Verzeichnis konfiguriert hast, musst du im nächsten Schritt Firewalld einrichten und einige Ports/Dienste für Clients öffnen. Bevor du beginnst, stelle sicher, dass du Firewalld eingerichtet hast.

Führe nun den folgenden Befehl aus, um einige NFS-Dienste zur Firewalld hinzuzufügen.

sudo firewall-cmd --add-service={nfs,nfs3,mountd,rpc-bind} --permanent

Lade dann die Firewalld neu, um die Änderungen zu übernehmen.

sudo firewall-cmd --reload

nfs firewalld sichern

Danach überprüfst du deine Firewalld-Regeln mit dem folgenden Befehl.

sudo firewall-cmd --list-all

Die erwartete Ausgabe sollte wie folgt aussehen:

Überprüfung des Firewalld-Status

NFS-Client einrichten

In diesem Abschnitt erfährst du, wie du einen NFS-Client mit einem AlmaLinux-Server einrichtest, der auf den meisten RHEL-basierten Distributionen eingesetzt werden kann.

Melde dich bei deinem Client an und führe dann den folgenden Befehl aus, um das Paket nfs-utils zu installieren. Wenn du dazu aufgefordert wirst, gibst du zur Bestätigung y ein und drückst ENTER.

sudo dnf install nfs-utils

Führe nun den folgenden Befehl aus, um die verfügbaren gemeinsamen Verzeichnisse auf dem NFS-Server 192.168.10.15 zu überprüfen.

sudo showmount -e 192.168.10.15

Du solltest erwarten, dass auf deinem NFS-Server drei verschiedene gemeinsame Verzeichnisse verfügbar sind: /mnt/backup, /mnt/shared und /home.

Überprüfung der Liste gemeinsamer Verzeichnisse vom Kunden

Gib als Nächstes den folgenden Befehl ein, um die neuen Verzeichnisse/data, /backup und /shared zu erstellen, die zum Einhängen der gemeinsamen NFS-Verzeichnisse verwendet werden sollen.

sudo mkdir -p /data /backup /shared

Führe den folgenden Befehl aus, um NFS-freigegebene Verzeichnisse einzuhängen. In diesem Beispiel werden wir das gemeinsame Verzeichnis /mnt/backup in /backup, /mnt/shared in /shared und /home in /data einhängen.

sudo mount 192.168.10.15:/mnt/backup /backup
sudo mount 192.168.10.15:/mnt/shared /shared
sudo mount 192.168.10.15:/home /data

Überprüfe abschließend die Liste der eingehängten Dateisysteme auf dem Client-Rechner mit dem folgenden Befehl.

sudo df -h

Wenn der Vorgang erfolgreich war, siehst du die auf dem Client-Rechner gemounteten NFS-Freigabeverzeichnisse wie folgt:

Überprüfung eines gemounteten nfs-Servers

Überprüfe Schreibzugriff vom Client

Nachdem die gemeinsamen NFS-Verzeichnisse auf dem Client-Rechner eingehängt wurden, musst du den Lese- und Schreibzugriff auf die gemeinsamen Verzeichnisse sicherstellen.

Führen Sie auf dem Client-Rechner den folgenden Befehl aus, um neue Dateien /backup/test-write1.txt, /shared/test-write2.txt und /home/alice/test-write3.txt zu erstellen.

echo "This file from client" > /backup/test-write1.txt
echo "This file from client" > /shared/test-write2.txt
echo "This file from client" > /data/alice/test-write3.txt

Wenn die Installation des NFS-Servers und des Clients erfolgreich war, sind die neuen Dateien, die du auf dem Client-Rechner erstellt hast, auch auf dem NFS-Server verfügbar.

Schreibzugriff testen

Gehe nun zurück zum NFS-Server und führe den folgenden Befehl aus, um sicherzustellen, dass die neuen Dateien auf dem NFS-Server verfügbar sind.

cat /mnt/backup/test-write1.txt
cat /mnt/shared/test-write2.txt
cat /home/alice/test-write3.txt

Anhand der folgenden Ausgabe können wir sehen, dass die Datei auf dem NFS-Server verfügbar ist.

Dateien von einem NFS-Server verifizieren

Konfigurieren des automatisch eingehängten NFS-Freigabeverzeichnisses über /etc/fstab

Nachdem du den Lese- und Schreibzugriff auf NFS überprüft hast, musst du eventuell auch das automatische Einhängen des NFS-Servers auf dem Client-Rechner einrichten. Wenn der Client-Rechner neu gestartet wird, wird das gemeinsame NFS-Verzeichnis beim Booten automatisch eingehängt, und zwar über die Datei /etc/fstab.

Hänge zunächst die NFS-Freigabeverzeichnisse auf dem Client-Rechner um und überprüfe sie mit dem folgenden Befehl.

sudo umount /data /backup /shared
sudo df -h

gemeinsame Verzeichnisse umhängen

Öffne die Datei /etc/fstab mit dem folgenden Befehl des Editors nano.

sudo nano /etc/fstab

Füge die folgenden Optionen hinzu und achte darauf, dass du die Details der freigegebenen Verzeichnisse und der Ziel-Mount-Verzeichnisse anpasst.

192.168.10.15:/mnt/backup    /backup   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.10.15:/mnt/shared    /shared   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.10.15:/home    /data   nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0

Speichere die Datei und beende den Editor, sobald du fertig bist.

auto-mount nfs /etc/fstab

Als Nächstes führst du den folgenden Befehl aus, um die Konfiguration der /etc/fstab zu überprüfen. Wenn du eine korrekte fstab-Datei hast, werden die NFS-Freigabeverzeichnisse nach Ausführung des Befehls eingehängt.

sudo mount -a

Überprüfe mit folgendem Befehl die Liste der gemounteten Dateisysteme deines Clients.

sudo df -h

Du solltest sehen, dass die NFS-Freigabeverzeichnisse auf dem Client mit demBefehl „mount -a“ auf der Grundlage der Datei /etc/fstab eingehängt werden.

nfs-Server über /etc/fstab automatisch einhängen

Der Client-Rechner hängt NFS-freigegebene Verzeichnisse beim Systemstart automatisch ein.

Fazit

Herzlichen Glückwunsch! Du hast NFS Server und Client erfolgreich auf dem AlmaLinux 9 Server installiert. Du hast auch die grundlegende Verwendung einiger Befehle gelernt, z. B. mount zum Einhängen von Dateisystemen, exportfs zur Verwaltung von NFS-Freigabeverzeichnissen und df zur Anzeige von eingehängten Dateisystemen. Außerdem hast du das automatische Einhängen von gemeinsamen NFS-Verzeichnissen auf dem Client-Rechner über die Datei /etc/fstab konfiguriert.

Im nächsten Schritt wirfst du einen Blick auf zusätzliche Sicherheitsmaßnahmen für den NFS-Server.

Das könnte dich auch interessieren …