Skip to content
Skip to content
Menu
Info Cafe
Info Cafe

Installation und Konfiguration eines NFS-Servers unter Ubuntu 18.04

By admin on Februar 1, 2021

Network File System (NFS) ist ein verteiltes Dateisystemprotokoll, mit dem Sie entfernte Verzeichnisse über ein Netzwerk freigeben 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 eingeschränkt.

In dieser Anleitung gehen wir darauf ein, wie Sie einen NFSv4-Server unter Ubuntu 18.04 einrichten. Außerdem zeigen wir Ihnen, wie Sie ein NFS-Dateisystem auf dem Client einhängen.

Voraussetzungen

Dieses Beispiel setzt voraus, dass Sie einen Server mit Ubuntu 18.04 und einen weiteren mit einer beliebigen anderen Linux-Distribution haben. 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 der Verkehr auf Port 2049 nur von vertrauenswürdigen Quellen zugelassen wird.

Die Rechner in diesem Beispiel haben folgende IPs:

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

Einrichten des NFS-Servers

Zunächst installieren und konfigurieren wir den NFS-Server.

Installation des NFS-Servers #

Erneuern Sie den Paketindex und installieren Sie das NFS-Server-Paket:

sudo apt updatesudo apt install nfs-kernel-server

Nach Abschluss der Installation werden die NFS-Dienste automatisch gestartet.

Standardmäßig ist unter Ubuntu 18.04 NFS Version 2 deaktiviert. Die Versionen 3 und 4 sind aktiviert. Sie können das überprüfen, indem Sie den folgenden cat Befehl ausführen:

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

NFSv2 ist mittlerweile ziemlich alt und es gibt keinen Grund, es zu aktivieren.

Die Konfigurationsoptionen des NFS-Servers werden in /etc/default/nfs-kernel-server und /etc/default/nfs-common Dateien eingestellt. Die Standardeinstellungen sind in unserem Fall ausreichend.

Anlegen der Dateisysteme

Bei der Konfiguration eines NFSv4-Servers ist es eine gute Praxis, ein globales NFS-Root-Verzeichnis zu verwenden und die eigentlichen Verzeichnisse an den Freigabe-Einhängepunkt zu binden. In diesem Beispiel werden wir das /srv/nfs4-Verzeichnis als NFS-Root verwenden.

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

Das /var/www/ gehört dem Benutzer und der Gruppe www-data und das /opt/backups gehört dem Benutzer root.

Erzeugen Sie das Export-Dateisystem mit dem mkdirBefehl:

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

Mounten Sie die aktuellen Verzeichnisse:

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

Um die Bindungen dauerhaft zu machen, öffnen Sie die /etc/fstabDatei:

sudo nano /etc/fstab

und fügen Sie die folgenden Zeilen ein:

/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 sollen, die Freigabeoptionen und die Clients, die auf diese Dateisysteme zugreifen dürfen. Öffnen Sie dazu die Datei /etc/exports:

sudo nano /etc/exports
Die Datei /etc/exports enthält auch Kommentare, die beschreiben, wie man ein Verzeichnis exportiert.

In unserem Fall müssen wir die Verzeichnisse www und backups exportieren und den Zugriff nur von Clients aus dem 192.168.33.0/24 Netzwerk erlauben:

/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-Root-Verzeichnis /srv/nfs definiert. Der Zugriff auf dieses NFS-Volume ist nur den Clients aus dem 192.168.33.0/24 Subnetz erlaubt. Die Option crossmnt wird benötigt, um Verzeichnisse freizugeben, die Unterverzeichnisse eines exportierten Verzeichnisses sind.

In der zweiten Zeile wird gezeigt, wie Sie mehrere Exportregeln für ein Dateisystem festlegen. Sie exportiert das Verzeichnis /srv/nfs4/backups und erlaubt nur Lesezugriff auf den gesamten 192.168.33.0/24-Bereich und sowohl Lese- als auch Schreibzugriff auf 192.168.33.3. Die Option sync weist NFS an, Änderungen auf die Platte zu schreiben, bevor es antwortet.

Die letzte Zeile sollte selbsterklärend sein. Für weitere Informationen über alle verfügbaren Optionen 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 /etc/exports-Datei ändern. Wenn es irgendwelche Fehler oder Warnungen gibt, werden diese im Terminal angezeigt.

Um die aktuell aktiven Exporte und deren Status zu sehen, verwenden Sie:

sudo exportfs -v

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

/srv/nfs4/backups192.168.33.3(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)/srv/nfs4/www 192.168.33.110(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)/srv/nfs4 192.168.33.0/24(rw,wdelay,crossmnt,root_squash,no_subtree_check,fsid=0,sec=sys,rw,secure,root_squash,no_all_squash)/srv/nfs4/backups192.168.33.0/24(ro,wdelay,root_squash,no_subtree_check,sec=sys,ro,secure,root_squash,no_all_squash)

Unter Ubuntu ist root_squash standardmäßig aktiviert. Dies ist eine der wichtigsten Optionen bezüglich der NFS-Sicherheit. Sie verhindert, dass Root-Benutzer, die von den Clients aus verbunden sind, Root-Rechte auf den eingehängten Freigaben haben. Es wird Root UID und GID auf nobodynogroupUIDGID zuordnen.

Damit die Benutzer auf den Client-Rechnern Zugriff haben, erwartet NFS, dass die Benutzer- und Gruppen-IDs der Clients mit denen des Servers übereinstimmen. Eine andere Möglichkeit ist die Verwendung der NFSv4-Funktion idmapping, die Benutzer- und Gruppen-IDs in Namen übersetzt und umgekehrt.

Das war’s. An diesem Punkt haben Sie einen NFS-Server auf Ihrem Ubuntu-Server eingerichtet. Sie können nun zum nächsten Schritt übergehen und die Clients konfigurieren und mit dem NFS-Server verbinden.

Firewall-Konfiguration

Wenn Sie eine Firewall in Ihrem Netzwerk betreiben, müssen Sie eine Regel hinzufügen, die den Verkehr auf dem NFS-Port freigibt.

Angenommen, Sie verwenden UFWzur Verwaltung Ihrer Firewall, um den Zugriff aus dem 192.168.33.0/24-Subnetz zu erlauben, müssen Sie den folgenden Befehl ausführen:

sudo ufw allow from 192.168.33.0/24 to any port nfs

Um die Änderung zu überprüfen, führen Sie aus:

sudo ufw status

Die Ausgabe sollte zeigen, dass der Verkehr auf Port 2049 erlaubt ist:

To Action From-- ------ ----2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6) 

Einrichten der NFS-Clients

Nun, da der NFS-Server eingerichtet ist und Freigaben exportiert wurden, werden im nächsten Schritt die Clients konfiguriert und die entfernten Dateisysteme eingehängt.

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

Installieren des NFS-Clients

Auf den Client-Rechnern müssen wir nur die Tools installieren, die zum Einhängen eines entfernten NFS-Dateisystems erforderlich sind.

  • NFS-Client auf Debian und Ubuntu installieren

    Der Name des Pakets, das Programme zum Einhängen von NFS-Dateisystemen auf Debian-basierten Distributionen enthält, lautet nfs-common. Zur Installation führen Sie aus:

    sudo apt updatesudo apt install nfs-common
  • NFS-Client auf CentOS und Fedora installieren

    Auf Red Hat und seinen Derivaten installieren Sie das Paket nfs-utils:

    sudo yum install nfs-utils

Dateisysteme einhängen

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

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

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

Mounten Sie die exportierten Dateisysteme mit dem mountBefehl:

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

Wobei 192.168.33.10 die IP des NFS-Servers ist. Sie können auch den Hostnamen anstelle der IP-Adresse verwenden, aber er muss vom Client-Rechner auflösbar sein. Dies geschieht in der Regel durch Zuordnung des Hostnamens zur IP in der /etc/hostsDatei.

Wenn Sie ein NFSv4-Dateisystem einhängen, müssen Sie das NFS-Root-Verzeichnis weglassen, also müssen Sie statt /srv/nfs4/backups/backups verwenden.

Überprüfen Sie, ob die entfernten Dateisysteme erfolgreich eingehängt wurden, indem Sie entweder den Befehl mount oder df verwenden:

df -h

Der Befehl gibt alle eingehängten Dateisysteme aus. Die letzten beiden Zeilen sind die eingehängten Freigaben:

Filesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol00 38G 1.7G 36G 5% /devtmpfs 236M 0 236M 0% /devtmpfs 244M 0 244M 0% /dev/shmtmpfs 244M 4.5M 240M 2% /runtmpfs 244M 0 244M 0% /sys/fs/cgroup/dev/sda2 1014M 87M 928M 9% /boottmpfs 49M 0 49M 0% /run/user/1000192.168.33.10:/backups 9.7G 1.2G 8.5G 13% /backups192.168.33.10:/www 9.7G 1.2G 8.5G 13% /srv/www

Um die Einhängungen bei einem Neustart dauerhaft zu machen, öffnen Sie die /etc/fstabDatei:

sudo nano /etc/fstab

und fügen Sie die folgenden Zeilen hinzu:

/etc/fstab
192.168.33.10:/backups /backups nfs defaults,timeo=900,retrans=5,_netdev0 0192.168.33.10:/www /srv/www nfs defaults,timeo=900,retrans=5,_netdev0 0

Um weitere Informationen über die verfügbaren Optionen beim Einhängen eines NFS-Dateisystems zu erhalten, geben Sie man nfs in Ihr Terminal ein.

Eine weitere Möglichkeit, die entfernten Dateisysteme einzuhängen, besteht darin, entweder das Werkzeug autofs zu verwenden oder eine systemd-Unit zu erstellen.

Testen des NFS-Zugriffs

Lassen Sie uns den Zugriff auf die Freigaben testen, indem wir für jede von ihnen eine neue Datei erstellen.

Zunächst versuchen Sie, mit dem touchBefehl eine Testdatei im /backupsVerzeichnis zu erstellen:

sudo touch /backups/test.txt

Das /backupDateisystem wird als schreibgeschützt exportiert und Sie erhalten erwartungsgemäß eine Permission deniedFehlermeldung:

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

Als Nächstes versuchen Sie, mit dem sudoBefehl eine Testdatei im /srv/wwwVerzeichnis als Root zu erstellen:

sudo touch /srv/www/test.txt

Auch hier erhalten Sie die Permission deniedMeldung.

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

Wenn Sie sich erinnern, dass das /var/www-Verzeichnis dem www-data-Benutzer gehört und diese Freigabe die root_squash Option gesetzt, die den Root-Benutzer auf den nobody-Benutzer und die nogroup-Gruppe abbildet, die keine Schreibrechte auf die entfernte Freigabe hat.

Angenommen, Sie haben auf dem Client-Rechner einen www-data mit den gleichen UID und GID wie auf dem Remote-Server (was der Fall sein sollte, wenn bspw, Sie nginx auf beiden Rechnern installiert haben), können Sie testen, ob Sie eine Datei als Benutzer www-data erstellen können:

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

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

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

ls -la /srv/www

Die Ausgabe sollte die neu erstellte Datei zeigen:

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

NFS-Dateisystem aushängen

Wenn Sie die entfernte NFS-Freigabe nicht mehr benötigen, können Sie sie wie jedes andere eingehängte Dateisystem mit dem Befehl umount aushängen. Um zum Beispiel die /backup-Freigabe auszuhängen, würden Sie ausführen:

sudo umount /backups

Wenn der Einhängepunkt in der Datei /etc/fstab definiert ist, stellen Sie sicher, dass Sie die Zeile entfernen oder auskommentieren, indem Sie # am Anfang der Zeile hinzufügen.

Abschluss

In dieser Anleitung haben wir Ihnen gezeigt, wie Sie einen NFS-Server einrichten und wie Sie die entfernten Dateisysteme auf den Client-Rechnern einhängen. Wenn Sie NFS in der Produktion einsetzen und sensible Daten freigeben, ist es eine gute Idee, die Kerberos-Authentifizierung zu aktivieren.

Als Alternative zu NFS können Sie SSHFS verwenden, um entfernte Verzeichnisse über eine SSH-Verbindung einzuhängen. SSHFS ist standardmäßig verschlüsselt und viel einfacher zu konfigurieren und zu verwenden.

Beitrags-Navigation

What Is a Probationary Period and How Does It Work?
Endliche Zustandsautomaten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Neueste Beiträge

  • Firebush
  • 9 beste Hundevitamine und Nahrungsergänzungsmittel für verbesserte Gesundheit
  • CD-Zins-Prognose für 2021: Die Zinsen werden wahrscheinlich niedrig bleiben, aber sie könnten später im Jahr steigen
  • Wie man die Dokumentation des Qualitätsmanagementsystems strukturiert
  • Chronische Beckenschmerzen und Prostatitis: Symptome, Diagnose und Behandlung
  • Mixed Berry Crisp (Deutsch)
  • Low-Carb-Schokoladenpudding-Rezept
  • Gesunde Spiele und Aktivitäten für Kinder | UIC Online Informatics
  • Wheat Ales (amerikanisch)
  • Die Vorteile des Stillens über ein Jahr hinaus

Meta

  • Anmelden
  • Feed der Einträge
  • Kommentare-Feed
  • WordPress.org

Archive

  • März 2021
  • Februar 2021
  • Januar 2021
  • Dezember 2020
  • DeutschDeutsch
  • NederlandsNederlands
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • PolskiPolski
  • 日本語日本語
©2021 Info Cafe | WordPress Theme by SuperbThemes.com