Android

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

NFS-Kernel-Server installieren und konfigurieren (Debian)

NFS-Kernel-Server installieren und konfigurieren (Debian)

Inhaltsverzeichnis:

Anonim

Network File System (NFS) ist ein verteiltes Dateisystemprotokoll, mit dem Sie Remoteverzeichnisse über ein Netzwerk freigeben können. Mit NFS können Sie Remoteverzeichnisse auf Ihrem System bereitstellen und mit den Dateien auf dem Remotecomputer arbeiten, als wären sie 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 eingeschränkt.

In diesem Lernprogramm werden die Schritte zum Einrichten eines NFSv4-Servers unter CentOS 8 beschrieben. Außerdem erfahren Sie, wie Sie ein NFS-Dateisystem auf dem Client bereitstellen.

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 über ein privates Netzwerk miteinander kommunizieren können. Wenn Ihr Hosting-Provider keine privaten IP-Adressen anbietet, können Sie die öffentlichen IP-Adressen verwenden und die Server-Firewall so konfigurieren, dass nur Datenverkehr von vertrauenswürdigen Quellen auf Port 2049 .

Die Maschinen 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

In diesem Abschnitt wird erläutert, wie Sie die erforderlichen Pakete installieren, die NFS-Verzeichnisse erstellen und exportieren und die Firewall konfigurieren.

NFS-Server installieren

Das Paket "nfs-utils" enthält die NFS-Dienstprogramme und -Dämonen für den NFS-Server. Führen Sie zum Installieren den folgenden Befehl aus:

sudo dnf install nfs-utils

Aktivieren und starten Sie nach Abschluss der Installation den NFS-Dienst, indem Sie Folgendes eingeben:

sudo systemctl enable --now nfs-server

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

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

Die Konfigurationsoptionen für den NFS-Server werden in den Dateien /etc/nfsmount.conf und /etc/nfs.conf . Die Standardeinstellungen sind für unser Tutorial ausreichend.

Dateisysteme erstellen

Bei der Konfiguration eines NFSv4-Servers empfiehlt es sich, ein globales NFS-Stammverzeichnis zu verwenden und die tatsächlichen Verzeichnisse an den Bereitstellungspunkt für die Freigabe zu binden. In diesem Beispiel wird der /srv/nfs4 als NFS-Root verwendet.

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

Das /var/www/ gehört dem Benutzer und die Gruppe apache und /opt/backups gehört root .

Erstellen Sie das Export-Dateisystem mit dem Befehl mkdir :

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

Hängen Sie die aktuellen Verzeichnisse ein:

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

/etc/fstab Datei /etc/fstab die folgenden Einträge hinzu, um die Bindungsbereitstellungen dauerhaft zu machen:

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

Im nächsten Schritt definieren Sie die Dateisysteme, 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 :

sudo nano /etc/exports

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

/ 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 wodurch das NFS-Stammverzeichnis /srv/nfs definiert wird. Der Zugriff auf dieses NFS-Volume ist nur für Clients aus dem Subnetz 192.168.33.0/24 zulässig. Die Option crossmnt ist erforderlich, um Verzeichnisse crossmnt , die Unterverzeichnisse eines exportierten Verzeichnisses sind.

In der zweiten Zeile wird gezeigt, wie Sie mehrere Exportregeln für ein Dateisystem festlegen. Es exportiert das /srv/nfs4/backups und ermöglicht nur Lesezugriff auf den gesamten Bereich 192.168.33.0/24 sowie Lese- und Schreibzugriff auf 192.168.33.3 . Die sync weist NFS an, Änderungen vor dem Antworten auf die Festplatte zu schreiben.

Die letzte Zeile sollte selbsterklärend sein. Um weitere Informationen zu allen verfügbaren Optionen zu erhalten, geben Sie man exports in Ihr Terminal ein.

Speichern Sie die Datei und exportieren Sie die Freigaben:

sudo exportfs -ra

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

Verwenden Sie zum Anzeigen der aktuell aktiven Exporte und ihres Status Folgendes:

sudo exportfs -v

Die Ausgabe umfasst alle Aktien mit ihren Optionen. Wie Sie sehen, gibt es auch Optionen, die wir in der Datei /etc/exports nicht definiert haben. 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 für die NFS-Sicherheit. Es verhindert, dass Root-Benutzer, die mit den Clients verbunden sind, über Root-Berechtigungen für die bereitgestellten Freigaben verfügen. Es nogroup Root- UID und GID nobody / nogroup UID / GID .

Damit die Benutzer auf den Clientcomputern 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-Zuordnungsfunktion, mit der Benutzer- und Gruppen-IDs in Namen übersetzt werden und umgekehrt.

Das ist es. Zu diesem Zeitpunkt haben Sie einen NFS-Server auf Ihrem CentOS-Server eingerichtet. Sie können jetzt mit dem nächsten Schritt fortfahren, die Clients konfigurieren und eine Verbindung zum NFS-Server herstellen.

Firewall-Konfiguration

FirewallD ist die Standard-Firewall-Lösung für Centos 8.

Der NFS-Dienst enthält vordefinierte Regeln für den Zugriff auf den NFS-Server.

Die folgenden Befehle ermöglichen den permanenten Zugriff vom Subnetz 192.168.33.0/24 :

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

Richten Sie die NFS-Clients ein

Nachdem der NFS-Server eingerichtet und Freigaben exportiert wurden, konfigurieren Sie im nächsten Schritt die Clients und hängen Sie die Remote-Dateisysteme ein.

Sie können die NFS-Freigabe auch auf MacOS- und Windows-Computern bereitstellen, wir konzentrieren uns jedoch auf Linux-Systeme.

NFS-Client installieren

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

  • Installieren Sie den NFS-Client unter Debian und Ubuntu

    Der Name des Pakets, das Programme zum Mounten von NFS-Dateisystemen auf Debian-basierten Distributionen enthält, ist nfs-common . So installieren Sie es:

    sudo apt update sudo apt install nfs-common

    Installieren Sie den NFS-Client unter CentOS und Fedora

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

    sudo yum install nfs-utils

Dateisysteme mounten

Wir arbeiten auf dem Client-Computer mit der IP- /srv/nfs4/www 192.168.33.110 , die Lese- und Schreibzugriff auf das Dateisystem /srv/nfs4/www und schreibgeschützten Zugriff auf das /srv/nfs4/backups hat.

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

sudo mkdir -p /backups sudo mkdir -p /srv/www

Hängen Sie die exportierten Dateisysteme mit dem Befehl mount :

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

Wobei 192.168.33.148 die IP des NFS-Servers ist. Sie können auch den Hostnamen anstelle der IP-Adresse verwenden, dieser muss jedoch vom Client-Computer aufgelöst werden können. Dies geschieht normalerweise, indem der Hostname der IP in der Datei /etc/hosts wird.

Wenn Sie ein NFSv4-Dateisystem bereitstellen, müssen Sie das NFS-Stammverzeichnis /srv/nfs4/backups Sie daher anstelle von /srv/nfs4/backups .

Stellen Sie mit dem Befehl mount oder df sicher, dass die fernen Dateisysteme erfolgreich gemountet wurden:

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

Öffnen Sie die Datei /etc/fstab um die Bereitstellungen beim Neustart dauerhaft zu machen:

sudo nano /etc/fstab

und füge 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 in Ihr Terminal ein.

Eine andere Option zum Mounten der Remote-Dateisysteme besteht darin, entweder das autofs Tool zu verwenden oder eine systemd-Einheit zu erstellen.

Testen des NFS-Zugriffs

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

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

sudo touch /backups/test.txt

Das Dateisystem /backup wird schreibgeschützt exportiert, und wie erwartet wird Permission denied Fehlermeldung " Permission denied angezeigt:

touch: cannot touch '/backups/test': Permission denied

Versuchen Sie als Nächstes, mit dem Befehl sudo eine Testdatei im /srv/www als Root zu erstellen:

sudo touch /srv/www/test.txt

Erneut wird Permission denied Meldung " Permission denied angezeigt.

touch: cannot touch '/srv/www': Permission denied

Das Verzeichnis /var/www gehört dem apache Benutzer, und für diese Freigabe ist root_squash Option root_squash festgelegt, mit der der Root-Benutzer dem Benutzer nobody und der Gruppe nogroup , die keine Schreibrechte für die Remote-Freigabe haben.

Angenommen, auf dem Clientcomputer ist ein Benutzer- apache mit derselben UID und GID wie auf dem Remoteserver vorhanden (was der Fall sein sollte, wenn Sie beispielsweise Apache auf beiden Computern installiert haben), können Sie testen, ob Sie eine Datei als Benutzer- apache erstellen mit:

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

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

So überprüfen Sie, ob die Dateien im Verzeichnis /srv/www :

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

Deinstallation des NFS-Dateisystems

sudo umount /backups

Wenn der /etc/fstab Datei /etc/fstab definiert ist, müssen Sie die Zeile entfernen oder auskommentieren, indem Sie am Zeilenanfang ein # einfügen.

Fazit

In diesem Lernprogramm haben wir Ihnen gezeigt, wie Sie einen NFS-Server einrichten und die Remote-Dateisysteme auf den Client-Computern bereitstellen. Wenn Sie NFS in der Produktion implementieren und sensible Daten gemeinsam nutzen, empfiehlt es sich, die Kerberos-Authentifizierung zu aktivieren.

Alternativ zu NFS können Sie mithilfe von SSHFS Remoteverzeichnisse über eine SSH-Verbindung bereitstellen. SSHFS ist standardmäßig verschlüsselt und viel einfacher zu konfigurieren und zu verwenden.

Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.

centos nfs mount terminal