GNU/Linux >> LINUX-Kenntnisse >  >> Rocky Linux

So richten Sie einen NFS-Mount unter Rocky Linux 8 ein

Network File System oder NFS ist ein verteiltes Dateisystemprotokoll, das es entfernten Hosts ermöglicht, Dateisysteme über ein Netzwerk zu mounten und Dateioperationen auf ihnen auszuführen, als ob sie lokal gemountet wären. Dies ist besonders nützlich, wenn Sie Ressourcen von einem Server auf mehrere Clients verteilen oder mehreren Clients erlauben möchten, auf einen einzigen Speicherplatz zu schreiben.

In diesem Tutorial erfahren Sie, wie Sie den NFS-Server und die NFS-Clients basierend auf Rocky Linux 8 installieren und konfigurieren. Dazu richten wir einen Host oder Server zum Freigeben von Dateien und einen Client zum Zugreifen auf die Host-Dateien über ein NFS-Mount ein .

Voraussetzungen

  • Zwei Rocky Linux 8-Server. Jeder von ihnen sollte einen Nicht-Root-Benutzer mit sudo-Berechtigungen haben.
  • Sowohl der Host als auch der Client sollten eine statische IP-Adresse haben. Sie können sogar beide über ein privates Netzwerk einrichten. Für unser Tutorial verwenden wir host_ip um die IP-Adresse des Hosts und client_ip anzugeben um auf die IP-Adresse des Clients zu verweisen.

Schritt 1 – NFS auf Host und Client installieren

Host

Um NFS-Pakete zu installieren, müssen Sie die nfs-utils installieren Paket. Es bietet einen Daemon für den NFS-Server und zugehörige Tools.

Installieren Sie das Paket.

$ sudo dnf install nfs-utils

Aktivieren und starten Sie den nfs-server Service. Verbleibende Dienste, die für das Einhängen und Freigeben von NFS erforderlich sind, wie z. B. nfsd , nfs-idmapd , rpcbind , rpc.mountd , lockd , rpc.statd , rpc.quotad und rpc.idmapd automatisch mit starten.

$ sudo systemctl enable nfs-server --now

Überprüfen Sie die Version der NFS-Installation.

$ sudo cat /proc/fs/nfsd/versions-2 +3 +4 +4.1 +4.2

Die NFS-Versionen 3 und 4 sind standardmäßig aktiviert und Version 2 ist deaktiviert. NFSv2 ist ziemlich alt und veraltet, und daher können Sie das -ve sehen Zeichen davor.

NFS speichert seine Konfigurationen in /etc/nfsmount.conf und /etc/nfs.conf Dateien. Die /etc/nfsmount.conf ist, NFS-Mounts zu konfigurieren, während /etc/nfs.conf besteht darin, den NFS-Daemon und die zugehörigen Tools zu konfigurieren. Die Standardeinstellungen sind für unser Tutorial ausreichend und es sind keine Änderungen erforderlich.

Kunde

Installieren Sie auf dem Client die nfs-utils und nfs4-acl-tools Pakete.

$ sudo dnf install nfs-utils nfs4-acl-tools

Schritt2 – Erstellen Sie die Freigabeverzeichnisse auf dem Host

Wir werden zwei Beispiele mit unterschiedlichen Konfigurationseinstellungen verwenden - eines mit einem Allzweck-Mount und eines durch gemeinsame Nutzung des Home-Verzeichnisses des Hosts.

NFS-gemountete Verzeichnisse sind nicht Teil des Clients. Daher kann NFS keine Aufgaben ausführen, für die Superuser-Berechtigungen erforderlich sind. Dies bedeutet, dass der Client die Eigentümerschaft nicht ändern, als Root-Benutzer darauf schreiben oder Aufgaben auf hoher Ebene ausführen kann. Es gibt jedoch Fälle, in denen ein vertrauenswürdiger Benutzer auf dem Client solche Aufgaben ausführen muss, ohne dass Superuser-Zugriff auf den Host erforderlich ist. Der NFS-Server kann so konfiguriert werden, dass dies möglich ist, aber es besteht die Gefahr, dass ein Client auf den Host zugreifen kann.

Arbeiten mit einem Allzweck-Reittier

Für unseren ersten Fall erstellen wir einen einfachen Mount, der das standardmäßige NFS-Verhalten verwendet, was bedeutet, dass der Client keine Aufgaben ausführen kann, die Superuser-Privilegien erfordern.

Erstellen Sie ein Freigabeverzeichnis.

host:$ sudo mkdir /var/nfs/share -p

Der Root-Benutzer des Hosts wird dieses Verzeichnis besitzen, da wir sudo verwendet haben um es zu erstellen.

host:$ ls -l /var/nfstotal 0drwxr-xr-x. 2 root root 6 Dez. 13 07:30 Aktie

NFS übersetzt alle Root-Operationen auf der Client-Seite in nobody:nobody Zugangsdaten aus Sicherheitsgründen. Daher müssen wir sie auf der Hostseite abgleichen.

host:$ sudo chown niemand:nobody /var/nfs/general

Arbeiten mit dem Home-Verzeichnis

In unserem zweiten Fall stellen wir dem Client das Home-Verzeichnis auf dem Host zur Verfügung. Wir müssen es nicht erstellen, da es bereits existiert. Wir müssen keine Berechtigungen ändern, da dies Auswirkungen auf Benutzer auf dem Hostcomputer hätte.

Schritt 3 – NFS-Exporte auf dem Host konfigurieren

Öffnen Sie die Datei /etc/exports auf dem Host-Rechner zum Bearbeiten.

host:$ sudo nano /etc/exports

Fügen Sie den folgenden Code in die Datei ein.

/var/nfs/share client_ip(rw,sync,no_subtree_check)/home client_ip(rw,sync,no_root_squash,no_subtree_check)

Jedes Verzeichnis und seine Konfiguration müssen in einer separaten Zeile stehen. Ersetzen Sie die client_ip Wert durch die tatsächliche IP-Adresse des Client-Rechners.

Lassen Sie uns alle Optionen für NFS-Exporte durchgehen.

  • w - gibt dem Client-Rechner Lese- und Schreibzugriff auf das NFS-Volume.
  • synchronisieren - Diese Option zwingt NFS, Änderungen auf die Festplatte zu schreiben, bevor es antwortet. Diese Option gilt als zuverlässiger. Es verringert jedoch auch die Geschwindigkeit von Dateioperationen.
  • no_subtree_check - Diese Option verhindert die Unterbaumprüfung, ein Prozess, bei dem der Host prüfen muss, ob die Datei zusammen mit den Berechtigungen für jede Anfrage verfügbar ist. Es kann auch Probleme verursachen, wenn eine Datei auf dem Host umbenannt wird, während sie auf dem Client noch geöffnet ist. Durch Deaktivieren wird die Zuverlässigkeit von NFS verbessert.
  • no_root_squash - Standardmäßig übersetzt NFS Anfragen von einem Root-Benutzer auf dem Client in einen nicht privilegierten Benutzer auf dem Host. Diese Option deaktiviert dieses Verhalten und sollte vorsichtig verwendet werden, um dem Client den Zugriff auf den Host zu ermöglichen.

Wenn Sie fertig sind, speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Führen Sie den folgenden Befehl aus, um die Freigaben zu exportieren.

host:$ sudo exportfs -arvexporting client_ip:/homeexporting client_ip:/var/nfs/share
  • -a - Diese Option bewirkt, dass alle Verzeichnisse exportiert werden.
  • -r - Diese Option bewirkt, dass alle Verzeichnisse exportiert werden, indem eine neue Liste in /var/lib/nfs/etab erstellt wird Verzeichnis. Diese Option wird verwendet, um die Exportliste mit allen Änderungen zu aktualisieren, die an /etc/exports vorgenommen wurden .
  • -v - aktiviert die ausführliche Ausgabe.

Führen Sie den folgenden Befehl aus, um alle exportierten Verzeichnisse aufzulisten. Es zeigt alle Optionen, einschließlich der Standardoptionen, die nicht in /etc/exports angegeben wurden Datei.

host:$ sudo exportfs -s/var/nfs/share client_ip(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)/home client_ip(sync,wdelay,hide,no_subtree_check, sec=sys,rw,secure,no_root_squash,no_all_squash)

Schritt 4 – Konfigurieren der Firewall auf dem Host

Rocky Linux verwendet Firewalld Firewall. Überprüfen Sie den Status der Firewall.

host:$ sudo firewall-cmd --staterunning

Dies zeigt an, dass es erfolgreich ausgeführt wird.

Die Firewall arbeitet mit verschiedenen Zonen, und die öffentliche Zone ist die Standardzone, die wir verwenden werden. Listet alle Dienste und Ports auf, die auf der Firewall aktiv sind.

host:$ sudo firewall-cmd --permanent --list-services

Es sollte die folgende Ausgabe zeigen.

cockpit dhcpv6-client ssh

Als nächstes müssen wir den Datenverkehr zu den erforderlichen NFS-Diensten zulassen - mountd , nfs und rpc-bind . Wir müssen auch den Zugriff von der Client-IP zulassen. Wenn sich Ihre Clients und Hostserver im selben Subnetz befinden, müssen Sie die IP-Adresse des Clients nicht hinzufügen.

host:$ sudo firewall-cmd --permanent --add-service=nfshost:$ sudo firewall-cmd --permanent --add-service=rpc-bindhost:$ sudo firewall-cmd --permanent --add -service=mountdhost:$ sudo firewall-cmd --permanent --add-source=client_IP 

Laden Sie die Firewall neu, um die Änderungen zu übernehmen.

host:$ sudo firewall-cmd --reload

Schritt 5 – Erstellen von Mountpunkten und Verzeichnissen auf dem Client

Nachdem der NFS-Server/Host nun konfiguriert ist, besteht der nächste Schritt darin, Mount-Punkte und Verzeichnisse auf dem Client einzurichten. Sie können showmount ausführen Befehl auf dem Client, um die Liste der exportierten Dateisysteme auf dem Host zu überprüfen.

client:$ showmount -e host_ipExportiere Liste für host_ip:/home host_ip/var/nfs/share host_ip

Erstellen Sie immer ein neues Verzeichnis als Einhängepunkte auf dem Client oder verwenden Sie ein vorhandenes leeres Verzeichnis. Wenn es eine Datei in einem Verzeichnis gibt, das Sie mounten, wird sie versteckt.

Erstellen Sie die Mount-Verzeichnisse.

client:$ sudo mkdir -p /nfs/shareclient:$ sudo mkdir -p /nfs/home

Hängen Sie die Freigaben mit der IP-Adresse des Hosts ein.

client:$ sudo mount host_ip:/var/nfs/share /nfs/shareclient:$ sudo mount host_ip:/home /nfs/home

Überprüfen Sie, ob das Mounten erfolgreich war.

client:$ df -hFilesystem Size Used Avail Use% Mounted ondevtmpfs 370M 0 370M 0% /devtmpfs 405M 0 405M 0% /dev/shmtmpfs 405M 16M 389M 4% /runtmpfs 405M 0 405M 0% /sys/fs/cgroup /dev/vda1 25G 2.4G 23G 10% /tmpfs 81M 0 81M 0% /run/user/1000host_ip:/var/nfs/share 25G 2.4G 23G 10% /nfs/sharehost_ip:/home 25G 2.4G 23G 10% / nfs/home

Beide Freigaben werden vom selben Dateisystem gemountet. Daher zeigen sie die gleiche Festplattennutzung.

Sie können auch den mount verwenden Befehl zur Überprüfung.

client:$ mount | grep nfsrpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)host_ip:/var/nfs/share on /nfs/share type nfs4 (rw,relatime,vers=4.2,rsize=131072,wsize=131072, namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip)host_ip:/home on /nfs/home type nfs4 (rw,relatime, vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=client_ip,local_lock=none,addr=host_ip)

Schritt 6 – NFS-Zugriff testen

Allgemeine Freigabe testen

Schreiben Sie eine Testdatei nach /var/nfs/share teilen.

client:$ sudo touch /nfs/share/test.txt

Überprüfen Sie die Inhaberschaft.

client:$ ls -l /nfs/share/test.txt-rw-r--r--. 1 niemand niemand 0 Dez. 13 08:08 /nfs/share/test.txt

Da wir dieses Volume mit den Standard-NFS-Einstellungen gemountet und die Datei auf dem Client mit sudo erstellt haben , ist der Besitz der Datei standardmäßig nobody:nobody . Client-Superuser können keine administrativen Aufgaben auf der Freigabe ausführen.

Testen der Home-Verzeichnisfreigabe

Schreiben Sie eine Testdatei nach /nfs/home teilen.

client:$ sudo touch /nfs/home/home.txt

Überprüfen Sie die Inhaberschaft.

client:$ ls -l /nfs/home/home.txt-rw-r--r--. 1 root root 0 Dez. 13 08:09 /nfs/home/home.txt

Da wir den no_root_squash verwendet haben Option erlaubte es dem Root-Benutzer des Clients, auf der Freigabe selbst als Root zu fungieren.

Schritt 7 – Machen Sie die Mount-Punkte dauerhaft

NFS-Freigaben sind standardmäßig temporär und müssen beim Booten gemountet werden. Wir können sie dauerhaft machen, indem wir /etc/fstab bearbeiten Datei auf dem Client.

Öffnen Sie die Datei /etc/fstab zum Bearbeiten.

client:$ sudo nano /etc/fstab

Fügen Sie die folgenden Zeilen am Ende der Datei ein.

. . .host_ip:/var/nfs/share /nfs/share nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0host_ip:/home /nfs/home nfs auto,nofail,noatime,nolock,intr,tcp ,actimeo=1800 0 0

Sie können mehr über die oben aufgeführten Optionen erfahren, indem Sie die folgenden Befehle ausführen.

client:$ man nfsclient:$ man mount

Wenn Sie sie online lesen möchten, können Sie den Begriff man nfs googeln und man mount um mehr über diese Optionen zu erfahren.

Schritt 8 – Unmounten der NFS-Freigabe

Wenn Sie die Remote-Mounts nicht mehr auf Ihrem System haben möchten, können Sie sie mit umount aushängen Befehl. Beachten Sie, dass der Befehl umount heißt und nicht aushängen das ist ein häufiger Fehler.

Bewegen Sie sich aus den gemeinsam genutzten Bereitstellungen heraus und heben Sie die Bereitstellung auf.

client:$ cd ~client:$ sudo umount /nfs/shareclient:$ sudo umount /nfs/home

Wenn Sie die Freigaben beim Neustart nicht mehr benötigen, kommentieren Sie die entsprechenden Einträge in /etc/fstab unbedingt aus Datei durch Einfügen eines # Zeichen vor ihnen.

Schlussfolgerung

In diesem Tutorial haben wir gelernt, wie man einen NFS-Hostserver erstellt und Verzeichnisse damit einbindet, die wir mit einem NFS-Client geteilt haben. Wenn Sie es in einem privaten Netzwerk implementieren, sollte es kein Problem geben, aber wenn Sie es in der Produktion verwenden, sollten Sie daran denken, dass das Protokoll nicht verschlüsselt ist, und Sie sollten eine Authentifizierung implementieren, um Ihre Daten zu schützen.

Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.


Rocky Linux
  1. So mounten Sie eine NFS-Freigabe unter Linux

  2. So installieren Sie Python 3.9 auf Rocky Linux 8

  3. So richten Sie den Pritunl VPN-Server unter Rocky Linux 8 ein

  4. So richten Sie NFS-Server und -Client unter Rocky/Alma Linux 8 ein

  5. So installieren Sie Redis unter Rocky Linux 8

So installieren Sie Anydesk auf Rocky Linux 8

So installieren Sie TeamViewer unter Rocky Linux 8

So stellen Sie Datum und Uhrzeit auf Rocky Linux 8 Desktop und Server ein

So installieren Sie Anaconda auf Rocky Linux 8

So installieren Sie Snap unter Rocky Linux 8

So installieren Sie PHP 7.4 auf Rocky Linux 8