NFS-Kernel-Server installieren und konfigurieren (Debian)
Inhaltsverzeichnis:
- Voraussetzungen
- Richten Sie den NFS-Server ein
- NFS-Server installieren
- Dateisysteme erstellen
- Exportieren der Dateisysteme
- Firewall-Konfiguration
- Richten Sie die NFS-Clients ein
- NFS-Client installieren
- Dateisysteme mounten
- Testen des NFS-Zugriffs
- Deinstallation des NFS-Dateisystems
- Fazit
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
:
/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 terminalSo installieren und konfigurieren Sie redis unter Ubuntu 18.04
Redis ist ein Open-Source-Speicher für In-Memory-Datenstrukturen. Es kann als Datenbank-, Cache- und Nachrichtenbroker verwendet werden und unterstützt verschiedene Datenstrukturen wie Strings, Hashes, Listen, Sets usw. Dieses Tutorial beschreibt die Installation und Konfiguration von Redis auf einem Ubuntu 18.04-Server.
So installieren und konfigurieren Sie den Squid-Proxy unter Ubuntu 18.04
Squid ist ein voll ausgestatteter Caching-Proxy, der gängige Netzwerkprotokolle wie HTTP, HTTPS, FTP und mehr unterstützt. Dieses Tutorial führt Sie durch die Einrichtung eines Squid-Proxys unter Ubuntu 18.04.
So installieren und konfigurieren Sie owncloud mit Apache unter Ubuntu 18.04
ownCloud ist eine selbst gehostete Open-Source-Plattform für die Dateisynchronisierung und -freigabe. In diesem Tutorial zeigen wir Ihnen, wie Sie ownCloud mit Apache auf einem Ubuntu 18.04-Rechner installieren und konfigurieren.