GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren und konfigurieren Sie einen NFS-Server unter CentOS 8

Network File System (NFS) ist ein verteiltes Dateisystemprotokoll, mit dem Sie Remoteverzeichnisse über ein Netzwerk gemeinsam nutzen können. Mit NFS können Sie entfernte Verzeichnisse auf Ihrem System einhängen und mit den Dateien auf dem entfernten Rechner arbeiten, als wären es lokale Dateien.

Das NFS-Protokoll ist standardmäßig nicht verschlüsselt und bietet im Gegensatz zu Samba keine Benutzerauthentifizierung. Der Zugriff auf den Server wird durch die IP-Adressen oder Hostnamen der Clients beschränkt.

In diesem Tutorial führen Sie die Schritte durch, die zum Einrichten eines NFSv4-Servers unter CentOS 8 erforderlich sind. Außerdem zeigen wir Ihnen, wie Sie ein NFS-Dateisystem auf dem Client mounten.

Voraussetzungen #

Wir gehen davon aus, dass Sie einen Server mit CentOS 8 haben, auf dem wir den NFS-Server und andere Computer einrichten, die als NFS-Clients fungieren. Der Server und die Clients sollten in der Lage sein, über ein privates Netzwerk miteinander zu kommunizieren. Wenn Ihr Hosting-Provider keine privaten IP-Adressen anbietet, können Sie die öffentlichen IP-Adressen verwenden und die Server-Firewall so konfigurieren, dass Datenverkehr auf Port 2049 zugelassen wird nur aus vertrauenswürdigen Quellen.

Die Computer in diesem Beispiel haben die folgenden IPs:

NFS Server IP: 192.168.33.148
NFS Clients IPs: From the 192.168.33.0/24 range

Richten Sie den NFS-Server ein #

Dieser Abschnitt erklärt, wie Sie die erforderlichen Pakete installieren, die NFS-Verzeichnisse erstellen und exportieren und die Firewall konfigurieren.

Installieren des NFS-Servers #

Das Paket „nfs-utils“ stellt die NFS-Dienstprogramme und -Daemons für den NFS-Server bereit. Um es zu installieren, führen Sie den folgenden Befehl aus:

sudo dnf install nfs-utils

Sobald die Installation abgeschlossen ist, aktivieren und starten Sie den NFS-Dienst, indem Sie Folgendes eingeben:

sudo systemctl enable --now nfs-server

Standardmäßig sind auf CentOS 8 die NFS-Versionen 3 und 4.x aktiviert, Version 2 ist deaktiviert. NFSv2 ist jetzt ziemlich alt und es gibt keinen Grund, es zu aktivieren. Um dies zu überprüfen, führen Sie den folgenden cat aus Befehl:

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

NFS-Serverkonfigurationsoptionen werden in /etc/nfsmount.conf festgelegt und /etc/nfs.conf Dateien. Für unser Tutorial sind die Standardeinstellungen ausreichend.

Erstellen der Dateisysteme #

Bei der Konfiguration eines NFSv4-Servers empfiehlt es sich, ein globales NFS-Stammverzeichnis zu verwenden und die tatsächlichen Verzeichnisse an den Freigabe-Mount-Punkt zu binden. In diesem Beispiel verwenden wir /srv/nfs4 Verzeichnis als NFS-Root.

Um besser zu erklären, wie die NFS-Mounts konfiguriert werden können, teilen wir zwei Verzeichnisse (/var/www und /opt/backups ) mit unterschiedlichen Konfigurationseinstellungen.

Der /var/www/ gehört dem Benutzer und der Gruppe apache und /opt/backups gehört root .

Erstellen Sie das Exportdateisystem mit mkdir Befehl:

sudo mkdir -p /srv/nfs4/{backups,www}

Mounten Sie die aktuellen Verzeichnisse:

sudo mount --bind /opt/backups /srv/nfs4/backupssudo mount --bind /var/www /srv/nfs4/www

Um die Bind-Einhängungen dauerhaft zu machen, fügen Sie die folgenden Einträge zu /etc/fstab hinzu Datei:

sudo nano /etc/fstab
/etc/fstab
/opt/backups /srv/nfs4/backups  none   bind   0   0
/var/www     /srv/nfs4/www      none   bind   0   0

Exportieren der Dateisysteme #

Der nächste Schritt besteht darin, die Dateisysteme zu definieren, die vom NFS-Server exportiert werden, die Freigabeoptionen und die Clients, die auf diese Dateisysteme zugreifen dürfen. Öffnen Sie dazu die Datei /etc/exports Datei:

sudo nano /etc/exports

Exportieren Sie www und backups Verzeichnisse und erlauben den Zugriff nur von Clients auf 192.168.33.0/24 Netzwerk:

/etc/exports
/srv/nfs4         192.168.33.0/24(rw,sync,no_subtree_check,crossmnt,fsid=0)
/srv/nfs4/backups 192.168.33.0/24(ro,sync,no_subtree_check) 192.168.33.3(rw,sync,no_subtree_check)
/srv/nfs4/www     192.168.33.110(rw,sync,no_subtree_check)

Die erste Zeile enthält fsid=0 die das NFS-Stammverzeichnis /srv/nfs4 definiert . Der Zugriff auf dieses NFS-Volume ist nur den Clients von 192.168.33.0/24 erlaubt Subnetz. Die crossmnt Option ist erforderlich, um Verzeichnisse freizugeben, die Unterverzeichnisse eines exportierten Verzeichnisses sind.

Die zweite Zeile zeigt, wie Sie mehrere Exportregeln für ein Dateisystem festlegen. Es exportiert die Datei /srv/nfs4/backups Verzeichnis und erlaubt nur lesenden Zugriff auf die gesamte 192.168.33.0/24 Bereich und sowohl Lese- als auch Schreibzugriff auf 192.168.33.3 . Die sync Option weist NFS an, Änderungen auf die Festplatte zu schreiben, bevor es antwortet.

Die letzte Zeile sollte selbsterklärend sein. Geben Sie für weitere Informationen zu allen verfügbaren Optionen man exports ein in Ihrem Terminal.

Speichern Sie die Datei und exportieren Sie die Freigaben:

sudo exportfs -ra

Sie müssen den obigen Befehl jedes Mal ausführen, wenn Sie /etc/exports ändern Datei. Wenn Fehler oder Warnungen vorliegen, werden diese auf dem Terminal angezeigt.

Verwenden Sie zum Anzeigen der aktuellen aktiven Exporte und ihres Status:

sudo exportfs -v

Die Ausgabe enthält alle Aktien mit ihren Optionen. Wie Sie sehen können, gibt es auch Optionen, die wir nicht in /etc/exports definiert haben Datei. Dies sind Standardoptionen, und wenn Sie sie ändern möchten, müssen Sie diese Optionen explizit festlegen.

/srv/nfs4/backups
		192.168.33.3(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/www 	192.168.33.110(sync,wdelay,hide,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4     	192.168.33.0/24(sync,wdelay,hide,crossmnt,no_subtree_check,fsid=0,sec=sys,rw,secure,root_squash,no_all_squash)
/srv/nfs4/backups
		192.168.33.0/24(sync,wdelay,hide,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)

root_squash ist eine der wichtigsten Optionen in Bezug auf die NFS-Sicherheit. Es verhindert, dass Root-Benutzer, die von den Clients verbunden sind, Root-Berechtigungen für die gemounteten Freigaben haben. Es wird Root UID zuordnen und GID an nobody /nogroup UID /GID .

Damit die Benutzer auf den Client-Rechnern Zugriff haben, erwartet NFS, dass die Benutzer- und Gruppen-IDs des Clients mit denen auf dem Server übereinstimmen. Eine weitere Option ist die Verwendung der NFSv4-ID-Mapping-Funktion, die Benutzer- und Gruppen-IDs in Namen übersetzt und umgekehrt.

Das ist es. An diesem Punkt haben Sie einen NFS-Server auf Ihrem CentOS-Server eingerichtet. Sie können jetzt zum nächsten Schritt übergehen und die Clients konfigurieren und sich mit dem NFS-Server verbinden.

Firewall-Konfiguration #

FirewallD ist die Standard-Firewall-Lösung auf Centos 8.

Der NFS-Dienst enthält vordefinierte Regeln zum Zulassen des Zugriffs auf den NFS-Server.

Die folgenden Befehle erlauben dauerhaft den Zugriff von 192.168.33.0/24 Subnetz:

sudo firewall-cmd --new-zone=nfs --permanentsudo firewall-cmd --zone=nfs --add-service=nfs --permanentsudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanentsudo firewall-cmd --reload

Richten Sie die NFS-Clients ein #

Nachdem der NFS-Server eingerichtet und die Freigaben exportiert wurden, besteht der nächste Schritt darin, die Clients zu konfigurieren und die Remote-Dateisysteme einzuhängen.

Sie können die NFS-Freigabe auch auf macOS- und Windows-Rechnern mounten, aber wir konzentrieren uns auf Linux-Systeme.

Installieren des NFS-Clients #

Installieren Sie auf den Computern des Clients die Tools, die zum Mounten von Remote-NFS-Dateisystemen erforderlich sind.

  • Installieren Sie den NFS-Client auf Debian und Ubuntu

    Der Name des Pakets, das Programme zum Mounten von NFS-Dateisystemen auf Debian-basierten Distributionen enthält, ist nfs-common . Führen Sie zur Installation Folgendes aus:

    sudo apt updatesudo apt install nfs-common
  • Installieren Sie den NFS-Client auf CentOS und Fedora

    Installieren Sie auf Red Hat und seinen Derivaten die nfs-utils Paket:

    sudo yum install nfs-utils

Dateisysteme werden eingebunden #

Wir arbeiten auf dem Client-Rechner mit der IP 192.168.33.110 , die Lese- und Schreibzugriff auf /srv/nfs4/www hat Dateisystem und Lesezugriff auf /srv/nfs4/backups Dateisystem.

Erstellen Sie zwei neue Verzeichnisse für die Einhängepunkte. Sie können diese Verzeichnisse an jedem beliebigen Ort erstellen.

sudo mkdir -p /backupssudo mkdir -p /srv/www

Mounten Sie die exportierten Dateisysteme mit dem mount Befehl:

sudo mount -t nfs -o vers=4 192.168.33.148:/backups /backupssudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www

Wobei 192.168.33.148 ist die IP des NFS-Servers. Sie können auch den Hostnamen anstelle der IP-Adresse verwenden, dieser muss jedoch vom Clientcomputer aufgelöst werden können. Dies geschieht normalerweise durch Zuordnen des Hostnamens zur IP in /etc/hosts Datei.

Beim Mounten eines NFSv4-Dateisystems müssen Sie das NFS-Root-Verzeichnis weglassen, also statt /srv/nfs4/backups Sie müssen /backups verwenden .

Überprüfen Sie, ob die Remote-Dateisysteme erfolgreich gemountet wurden, indem Sie entweder mount oder df verwenden Befehl:

df -h

Der Befehl druckt alle gemounteten Dateisysteme. Die letzten beiden Zeilen sind die gemounteten Freigaben:

...
192.168.33.148:/backups           9.7G  1.2G  8.5G  13% /backups
192.168.33.148:/www               9.7G  1.2G  8.5G  13% /srv/www

Um die Mounts beim Neustart dauerhaft zu machen, öffnen Sie die Datei /etc/fstab Datei:

sudo nano /etc/fstab

und fügen Sie die folgenden Zeilen hinzu:

/etc/fstab
192.168.33.148:/backups /backups   nfs   defaults,timeo=900,retrans=5,_netdev	0 0
192.168.33.148:/www /srv/www       nfs   defaults,timeo=900,retrans=5,_netdev	0 0

Um weitere Informationen zu den verfügbaren Optionen beim Mounten eines NFS-Dateisystems zu erhalten, geben Sie man nfs ein in Ihrem Terminal.

Eine weitere Möglichkeit, die entfernten Dateisysteme einzuhängen, ist die Verwendung von autofs Tool oder zum Erstellen einer systemd-Unit.

Teste NFS-Zugriff #

Lassen Sie uns den Zugriff auf die Freigaben testen, indem wir in jeder von ihnen eine neue Datei erstellen.

Versuchen Sie zunächst, eine Testdatei im Verzeichnis /backups zu erstellen Verzeichnis mit touch Befehl:

sudo touch /backups/test.txt

Die Datei /backup Dateisystem als schreibgeschützt exportiert, und wie erwartet wird ein Permission denied angezeigt Fehlermeldung:

touch: cannot touch ‘/backups/test’: Permission denied

Versuchen Sie als Nächstes, eine Testdatei in /srv/www zu erstellen Verzeichnis als root mit sudo Befehl:

sudo touch /srv/www/test.txt

Auch hier sehen Sie Permission denied Nachricht.

touch: cannot touch ‘/srv/www’: Permission denied

Die Datei /var/www Verzeichnis gehört dem apache Benutzer, und diese Freigabe hat root_squash Optionssatz, der den Root-Benutzer dem nobody zuordnet user und nogroup Gruppe, die keine Schreibberechtigungen für die Remote-Freigabe hat.

Angenommen, ein Benutzer apache existiert auf dem Client-Rechner mit derselben UID und GID Wie auf dem Remote-Server (was der Fall sein sollte, wenn Sie zum Beispiel Apache auf beiden Maschinen installiert haben), können Sie testen, ob Sie als Benutzer apache eine Datei erstellen mit:

sudo -u apache touch /srv/www/test.txt

Der Befehl zeigt keine Ausgabe, was bedeutet, dass die Datei erfolgreich erstellt wurde.

Um dies zu überprüfen, listen Sie die Dateien in /srv/www auf Verzeichnis:

ls -la /srv/www

Die Ausgabe sollte die neu erstellte Datei zeigen:

drwxr-xr-x 3 apache apache 4096 Jun 23 22:18 .
drwxr-xr-x 3 root     root     4096 Jun 23 22:29 ..
-rw-r--r-- 1 apache apache    0 Jun 23 21:58 index.html
-rw-r--r-- 1 apache apache    0 Jun 23 22:18 test.txt

Unmounten des NFS-Dateisystems #

Wenn Sie die Remote-NFS-Freigabe nicht mehr benötigen, können Sie sie wie jedes andere gemountete Dateisystem mit dem Befehl umount aushängen. Zum Beispiel, um /backup zu unmounten share würdest du ausführen:

sudo umount /backups

Wenn der Einhängepunkt in /etc/fstab definiert ist entfernen Sie die Zeile oder kommentieren Sie sie aus, indem Sie # hinzufügen am Anfang der Zeile.


Cent OS
  1. So installieren und konfigurieren Sie Nginx unter CentOS 7

  2. So installieren und konfigurieren Sie einen NFS-Server unter Ubuntu 20.04

  3. So installieren und konfigurieren Sie einen NFS-Server unter Ubuntu 18.04

  4. So installieren und konfigurieren Sie Gitlab unter CentOS 8

  5. So installieren und konfigurieren Sie Postgres 13 auf Centos 8

So installieren und konfigurieren Sie Zimbra Multi Server unter CentOS 7

So installieren und konfigurieren Sie den VNC-Server in CentOS 7 / RHEL 7

So installieren und konfigurieren Sie Memcached unter CentOS 8

So installieren und konfigurieren Sie den DHCP-Server auf Centos 8

So installieren und konfigurieren Sie Sandstorm Server unter CentOS 8

So installieren und konfigurieren Sie VNC Server unter CentOS/RHEL 8