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

So installieren und konfigurieren Sie einen Linux Ubuntu NFS-Server

Suchen Sie nach einer Anwendung, mit der Sie Dateien und Verzeichnisse über das Netzwerk gemeinsam nutzen können? Für mehrere Kunden? Sie benötigen wahrscheinlich NFS (Network File System)! Ein Ubuntu NFS-Server ermöglicht es Ihnen, gemeinsam genutzte Verzeichnisse für verschiedene Clients mit zusätzlicher Zugriffskontrolle zu erstellen.

Kein Leser? Sehen Sie sich dieses zugehörige Video-Tutorial an! Sie sehen das Video nicht? Stellen Sie sicher, dass Ihr Werbeblocker deaktiviert ist.

In diesem Lernprogramm erfahren Sie, wie Sie einen NFS-Server einrichten und Dateien sicher zwischen mehreren Computern freigeben.

Bereit? Lesen Sie weiter und starten Sie Ihre sichere Dateifreigabe!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Um mitzumachen, stellen Sie sicher, dass Sie die folgenden Voraussetzungen erfüllen:

  • Ein Linux-Server und -Client im selben Netzwerk – Diese Demo verwendet einen Ubuntu 20.04-Server mit dem Hostnamen nfs-server und ein Ubuntu 20.04-Client mit dem Hostnamen client . Sie können aber auch eine andere Linux-Distribution wie Debian, CentOS oder Fedora verwenden.
  • Ein Nicht-Root-Benutzer mit sudo-Berechtigungen.

Installieren eines Ubuntu-NFS-Servers

NFS ermöglicht Benutzern einen sicheren Dateizugriff auf entfernten Systemen, als wären es nur lokal gespeicherte Dateien. Bevor Sie jedoch Dateien und Verzeichnisse freigeben, installieren Sie zunächst einen Ubuntu NFS-Server. Unter Ubuntu installieren Sie den nfs-kernel-server Paket auf nfs-server Maschine.

Einige Befehle im gesamten Tutorial haben keine Ausgaben. Aber ein Ergebnis der gesammelten Schritte, die Sie unternommen haben, wird beim letzten Schritt jedes Abschnitts angezeigt.

1. Melden Sie sich bei Ihrem Linux-Server an und führen Sie sudo su aus Befehl unten, um die Root-Rechte zu erhalten.

sudo su

2. Führen Sie die folgenden Befehle zu update aus den Paketindex für Ihr Repository und installieren Sie das Ubuntu NFS-Serverpaket (nfs-kernel-server ).

sudo apt update
sudo apt install nfs-kernel-server -y

3. Führen Sie zuletzt den systemctl aus Befehle unten, um den NFS-Dienst nfs-kernel-server zu starten und zu aktivieren , überprüfen Sie dann nfs-kernel-server Dienststatus ist aktiv.

# start and enable NFS service
sudo systemctl enable --now nfs-kernel-server.service

# verify status NFS service
sudo systemctl status nfs-kernel-server.service

Wie Sie unten sehen, ist das aktiv (beendet) status zeigt an, dass der NFS-Dienst ausgeführt wird. Die beendet Nachricht teilt Ihnen mit, dass der systemd-Manager keinen Daemon zum Überwachen finden kann.

Einrichten des freigegebenen NFS-Verzeichnisses

Nach der Installation des NFS-Serverpakets richten Sie nun das freigegebene NFS-Verzeichnis ein, indem Sie neue Verzeichnisse erstellen. Sie teilen diese Verzeichnisse mit Kunden und fügen neue Konfigurationen zu /etc/exports hinzu Datei.

1. Führen Sie den folgenden Befehl aus, um ein neues freigegebenes NFS-Verzeichnis zu erstellen. In diesem Beispiel teilen Sie den /srv/data Verzeichnis und /srv/test an Kunden.

sudo mkdir -p /srv/{data,test}

2. Führen Sie als Nächstes chown aus Befehl unten, um den Besitz des freigegebenen NFS-Verzeichnisses /srv/data zu ändern und /srv/test an den Benutzer nobody und Gruppe nogroup . Dieser Befehl stellt sicher, dass das freigegebene NFS-Verzeichnis von Clients beschreibbar ist. sudo chown -R nobody:nogroup /srv/{data,test}

Dieser Befehl stellt sicher, dass das freigegebene NFS-Verzeichnis von Clients beschreibbar ist.

sudo chown -R nobody:nogroup /srv/{data,test}

3. Bearbeiten Sie die NFS-Konfiguration /etc/exports Verwenden Sie Ihren bevorzugten Editor und füllen Sie die Datei mit der folgenden Konfiguration.

Die folgende Konfiguration ermöglicht Client-Rechnern den Zugriff auf das freigegebene NFS-Verzeichnis mit angegebenem Benutzerzugriff, entweder lesend oder schreibend (rw ) oder schreibgeschützt (ro ). Stellen Sie sicher, dass Sie die IP-Adressen ändern (172.16.1.25 und 172.16.1.0/24 ) mit den IP-Adressen der Client-Rechner.

# sync - forces NFS to write change from the shared directory to disk immediately.
# no_subtree_check - disabling the subtree checking to get more performance.

# rw - set read/write access to NFS shared directory for clients.
# share /srv/data to client 172.16.1.25 with read and write access.
/srv/data 172.16.1.25(rw,sync,no_subtree_check,root_squash)

# r0 - set read-only access to NFS shared directory for clients.
# share /srv/test to network 172.16.1.0/24 with read only access.
/srv/test 172.16.1.0/24(ro,sync,no_subtree_check)

4. Führen Sie den folgenden Befehl aus, um das freigegebene Verzeichnis anzuwenden, und überprüfen Sie den /etc/exports Konfigurationsdatei. Wenn Sie keine Ausgabemeldungen erhalten, ist die NFS-Konfiguration korrekt.

sudo exportfs -a

5. Führen Sie nun den systemctl aus Befehl unten, um den nfs-kernel-server neu zu starten Service.

sudo systemctl restart nfs-kernel-server

6. Führen Sie zuletzt den showmount aus Befehl unten, um die freigegebenen Verzeichnisse auf dem Ubuntu NFS-Server aufzulisten. Achten Sie darauf, die IP-Adresse zu ändern (172.16.1.20 ) durch die IP-Adresse des NFS-Servers.

showmount --exports 172.16.1.20

Jetzt sollten Sie die freigegebene Verzeichnisliste auf dem NFS-Server mit der IP-Adresse sehen, die Ihnen den Zugriff auf den Ubuntu-NFS-Server ermöglicht hat.

Sichern des freigegebenen NFS-Verzeichnisses mit der UFW-Firewall

Sie haben das freigegebene NFS-Verzeichnis konfiguriert, aber normalerweise möchten Sie verhindern, dass zufällige Benutzer auf das freigegebene Verzeichnis zugreifen.

Stellen Sie sicher, dass nur die zugelassene IP-Adresse auf das freigegebene Verzeichnis zugreifen kann. Wie? Durch Einrichten der UFW-Firewall und Angabe der IP-Adresse zum NFS-Port.

1. Führen Sie die folgenden Befehle aus, um den NFS-Port (2049 ) und Clients auf den IP-Adressen 172.16.1.25 zulassen und 172.16.1.0/24 Zugriff auf den Ubuntu NFS-Server. Stellen Sie sicher, dass Sie die IP-Adresse durch die IP-Adresse Ihres Clients ersetzen.

# allow client IP 172.16.1.25 to access NFS server
sudo ufw allow from 172.16.1.25 to any port nfs

# allow network 172.16.1.0/24 to access NFS server
sudo ufw allow from 172.16.1.0/24 to any port nfs

2. Als nächstes führen Sie ufw aus Befehl unten, um die UFW-Firewall neu zu laden und eine neue Konfiguration anzuwenden.

sudo ufw reload

3. Führen Sie zuletzt den ufw aus Befehl unten, um den Status der UFW-Firewall zu überprüfen.

sudo ufw status

Unten sehen Sie, dass der NFS-Serverport 2049 zur Firewall hinzugefügt wurde und nur über die Client-IP-Adresse 172.16.1.25 und das Netzwerk 172.16.1.0/24 zugänglich ist.

Mounten des freigegebenen NFS-Verzeichnisses auf dem Client-Rechner

An diesem Punkt haben Sie den Ubuntu NFS-Server vollständig konfiguriert. Aber wie können Client-Rechner auf das freigegebene NFS-Verzeichnis zugreifen? Ausführen von mount Der Befehl zum Zugriff auf das freigegebene NFS-Verzeichnis reicht aus. Aber zuerst installieren Sie nfs-common (für die Debian-Linux-Distribution) oder nfs-utils (für RHEL, CentOS-Distribution) auf den Clientcomputer.

1. Melden Sie sich bei Ihrem Client-Rechner an, öffnen Sie das Terminal und führen Sie den sudo su aus Befehl, um die Root-Rechte zu erhalten.

sudo su

2. Führen Sie als Nächstes je nach Betriebssystem einen der folgenden Befehle aus, um NFS-Pakete auf dem Clientcomputer zu installieren.

# for Ubuntu/Debian based distribution
sudo apt install nfs-common -y

# for RHEL/CentOS/Fedora Linux distribution
sudo dnf install nfs-utils -y

3. Führen Sie den folgenden Befehl aus, um das Ziel-Mount-Verzeichnis zu erstellen. Das freigegebene NFS-Verzeichnis wird auf dem Client-Rechner /data gemountet und /test Verzeichnisse in diesem Beispiel.

mkdir -p /{data,test}

4. Führen Sie jeden mount aus Befehlen unten, um auf das freigegebene NFS-Verzeichnis zuzugreifen.

Der -t nfs Option gibt den Typ des Dateisystems als NFS-Server an. Dieser Befehl hängt den /srv/data ein freigegebenes Verzeichnis auf dem Ubuntu-NFS-Server zum lokalen Clientverzeichnis (/data ). Und die /srv/test freigegebenes Verzeichnis in das lokale Verzeichnis des Klicks /test .

# mount shared directory `/srv/data on the nfs server 172.16.1.20
# to the local client directory /data
sudo mount -t nfs 172.16.1.20:/srv/data /data

# mount shared directory `/srv/test on the nfs server 172.16.1.20
# to the local client directory /test
sudo mount -t nfs 172.16.1.20:/srv/test /test

5. Führen Sie df aus Befehl unten, um die Liste der gemounteten Dateisysteme auf dem Client-Rechner zu überprüfen.

sudo df -h

In der Ausgabe unten sehen Sie, dass das freigegebene NFS-Verzeichnis /srv/data im /data -Verzeichnis auf dem Client-Computer gemountet ist. Gleichzeitig wird das freigegebene Verzeichnis (/srv/test) in das lokale Verzeichnis (/test) auf dem Clientcomputer eingebunden.

6. Führen Sie als Nächstes die folgenden Befehle aus, um zum Ziel-Mount-Verzeichnis (/data ) und erstellen Sie eine Datei mit dem Namen file.txt .

Da das freigegebene Verzeichnis (/srv/data ) Lese- und Schreibrechte hat, können Sie eine neue Datei erstellen.

# navigate to /data directory
cd /data

# create a new file with "This file from client machine!" as content
echo "This file from client machine!" > file.txt

7. Führen Sie ls aus und cat Befehle unten, um zu überprüfen, ob die Datei im Mount-Verzeichnis /data verfügbar ist .

# list files on the current directory
ls -lah

# showing the content of the file.txt
cat file.txt

8. Führen Sie abschließend jeden der folgenden Befehle aus, um zum Mount-Verzeichnis zu navigieren (/test) und erstellen Sie eine Datei namens file.txt . Mit diesem Befehl können Sie Schreibzugriffsbeschränkungen auf dem Nur-Lese-Dateisystem testen.

# navigate to /test directory
cd /test

# create new file
echo "Test create a file on Read-only filesystem" > file.txt

Wie in der Ausgabe unten erhalten Sie eine Fehlermeldung, weil das freigegebene Verzeichnis (/srv/test) nur schreibgeschützt ist.

NFS Shared Directory permanent mounten

Jetzt haben Sie das freigegebene NFS-Verzeichnis erfolgreich auf dem Client-Computer gemountet, aber es wird nach dem Neustart des Systems verschwunden sein. Wie kann ich das freigegebene NFS-Verzeichnis dauerhaft mounten? Durch Definieren des freigegebenen NFS-Verzeichnisses in /etc/fstab Datei.

1. Bearbeiten Sie die /etc/fstab Konfigurationsdatei mit Ihrem bevorzugten Editor und fügen Sie die folgende Konfiguration hinzu. Ändern Sie die IP-Adresse mit der IP-Adresse des NFS-Servers, dem freigegebenen Verzeichnis und dem Mount-Zielverzeichnis.

# rw/ro - allow read and write or read-only to the target mount.
# hard - enable client machine to always try to connect to the NFS whenever fail.
# noexec - disable binary file execution on the file system.
# rsize - maximum READ requests that client machine can handle.
# wzise - maximum WRITE requests that client machine can handle.
# timeo - timeout for NFS client before retries requests to the NFS server.

# NFS Shared Directory - target - type - options - dump - pass
172.16.1.20:/srv/data /data nfs rw,hard,noexec,rsize=8192,wsize=8192,timeo=14 0 0
172.16.1.20:/srv/test /test nfs ro,hard,noexec,rsize=8192,wsize=8192,timeo=14 0 0

2. Führen Sie als Nächstes mount aus Befehl unten, um das gesamte Dateisystem auf /etc/fstab zu mounten Datei und verifizieren Sie den /etc/fstab Aufbau. Wenn keine Fehlermeldung angezeigt wird, ist die Konfiguration korrekt.

sudo mount -a

3. Führen Sie df aus Befehl unten, um das gemountete Dateisystem auf dem Client-Rechner zu überprüfen.

sudo df -h

Ähnlich wie in der Ausgabe unten sollten Sie sehen, dass das freigegebene NFS-Verzeichnis automatisch auf Ihrem Client-Rechner gemountet wird.

4. Führen Sie zuletzt den reboot aus Befehl zum Neustarten des Clientcomputers. Melden Sie sich nach dem Neustart an und führen Sie den df erneut aus Befehl, wie Sie es in Schritt drei getan haben, um das freigegebene NFS-Verzeichnis zu überprüfen.

sudo df -h

Wie Sie unten sehen, ist das freigegebene NFS-Verzeichnis immer noch dauerhaft auf dem Client-Rechner eingehängt.

Schlussfolgerung

In diesem Lernprogramm haben Sie gelernt, wie Sie einen NFS-Server auf einem Linux-Server einrichten, um ein Verzeichnis sicher freizugeben. Sie haben auch das permanente Mounten des freigegebenen NFS-Verzeichnisses angesprochen, sodass Sie das freigegebene Verzeichnis nicht bei jedem Neustart Ihres Computers manuell mounten müssen.

An diesem Punkt haben Sie einen voll funktionsfähigen NFS-Server. Was kommt als nächstes? Vielleicht erfahren Sie, wie Sie mithilfe der Kerberos-Authentifizierung eine Sicherheitsebene für NFS hinzufügen?


Linux
  1. So installieren und konfigurieren Sie Nginx unter Ubuntu 20.04

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

  3. So installieren und konfigurieren Sie VNC unter Ubuntu 20.04

  4. So installieren und konfigurieren Sie den SVN-Server unter Ubuntu und LinuxMint

  5. So installieren und konfigurieren Sie Linux NTP-Server und -Client

So installieren und konfigurieren Sie einen NFS-Server auf einem Linux-System

So installieren und konfigurieren Sie KVM unter Ubuntu Linux

So installieren und konfigurieren Sie Parse Server unter Ubuntu 20.04

So installieren und konfigurieren Sie einen TeamSpeak Server auf Ubuntu 18.04

So installieren und konfigurieren Sie einen Minecraft-Server unter Ubuntu 18.04

So installieren und konfigurieren Sie den DNS-Server unter Linux