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

Lernen von NFS durch Server- und Client-Konfiguration

Ich benutze NFS seit Jahren in begrenztem Umfang. Ich war mit dem Konzept vertraut und hatte auf NFS-Freigaben zugegriffen, aber ich hatte noch nie eine konfiguriert. Die Chancen stehen gut, dass ich damit nicht alleine bin. Ich dachte, ich würde lernen, wie man alles aufbaut, und Sie sogar alle mitnehmen. Beginnen wir mit dem Anfängerleitfaden zum Erlernen von NFS.

Was ist NFS?

Network File System (NFS) ist ein verteiltes Dateisystem, das es verschiedenen Remote-Systemen ermöglicht, auf eine Dateifreigabe zuzugreifen. Wir alle wissen, dass Dateien aus Sicherheitsgründen und zur einfachen Sicherung auf einem zentralen Server gespeichert werden sollten. NFS bietet uns einen Dateifreigabedienst, der einfach zu verwalten ist und den Clientzugriff auf Ressourcen steuert.

Was wird benötigt?

Bevor wir beginnen können, müssen wir ein paar Voraussetzungen schaffen. Zunächst einmal brauchen wir zwei unterschiedliche Systeme, die über das Netzwerk miteinander kommunizieren können. Da NFS eine Server-zu-Client(s)-Beziehung verwendet, verwenden wir Folgendes:

  • NFS-Server - server.example.com - 172.25.1.5
  • NFS-Client – ​​client.example.com – 172.25.1.4

Sie können den ping verwenden Befehl, um die Kommunikation zwischen den beiden Systemen zu bestätigen. Ich habe diese beiden Maschinen in einem NAT-Netzwerk und habe die Verbindungen in beide Richtungen getestet.

Stellen Sie danach sicher, dass unsere beiden Systeme auf dem neuesten Stand sind. Da es sich bei diesen Systemen um RHEL 8.2 und Fedora 32 handelt, verwenden wir den folgenden Befehl sowohl auf dem Server als auch auf dem Client:

[root@rhel tcarrigan]# sudo yum -y update

Und schließlich müssen wir die nfs-utils installieren Paket auf unsere beiden Systeme.

[root@rhel tcarrigan]# sudo yum -y install nfs-utils (must do on both servers)
Updating Subscription Management repositories.
Last metadata expiration check: 0:55:54 ago on Wed 24 Jun 2020 11:53:45 AM EDT.
Package nfs-utils-1:2.3.3-31.el8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

*Hinweis:Das Paket ist im obigen Beispiel bereits installiert.

Lassen Sie uns nun mit der Konfiguration des Servers beginnen.

Server konfigurieren

Schritt 1:Starten und aktivieren Sie die neu installierten nfs-utils Dienst.

[tcarrigan@rhel ~]$ sudo systemctl start nfs-server.service
[tcarrigan@rhel ~]$ sudo systemctl enable nfs-server.service

Schritt 2:Bestätigen Sie den nfs-server Der Dienst ist eingerichtet und läuft.

[tcarrigan@rhel ~]$ sudo systemctl status nfs-server.service
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabl>
   Active: active (exited) since Wed 2020-06-24 12:50:23 EDT; 18min >
 Main PID: 61026 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 50657)
   Memory: 0B
   CGroup: /system.slice/nfs-server.service
    
 Jun 24 12:50:23 server.example.com systemd[1]: Starting NFS server a>
 Jun 24 12:50:23 server.example.com systemd[1]: Started NFS server an>
lines 1-10/10 (END)

Schritt 3:Überprüfen Sie die NFS-Version (Sie können diese Informationen in Spalte zwei sehen).

[tcarrigan@rhel ~]$ rpcinfo -p | grep nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049  nfs_acl

*Beachten Sie, dass Sie die NFS-Daemon-Konfigurationsdateien unter /etc/nfs.conf finden . Sie finden die Konfigurationsdatei für den Mount auch unter /etc/nfsmount.conf .

Der NFS-Dienst ist jetzt auf Ihrem Server eingerichtet und wird ausgeführt. Als Nächstes erstellen wir eine NFS-Freigabe.

Erstellen und exportieren Sie die Freigabe

Zuerst müssen wir einen Ordner für die Freigabe festlegen. Da noch keines auf meinem System existiert, werde ich ein Verzeichnis zum Teilen erstellen.

[tcarrigan@rhel ~]$ sudo mkdir -p /test/nfs_share/docs

Nun habe ich aus einigen Versuchen und Fehlern und dann gut geschriebenen Ressourcen gelernt, dass Sie eine Menge Kopfschmerzen vermeiden können, indem Sie die Berechtigungen und den Besitz so ändern, dass sie wie folgt übereinstimmen:

[tcarrigan@rhel ~]$ sudo chown -R nobody: /test/nfs_share/docs/
[tcarrigan@rhel ~]$ sudo chmod -R 777 /test/nfs_share/docs/

*Hinweis:Dies ist möglicherweise aus Sicherheitsgründen in einer Produktionsumgebung nicht möglich. Stellen Sie sicher, dass Sie wissen, was Sie tun, bevor Sie alle Beschränkungen von einer Datei oder einem Verzeichnis entfernen.

Als nächstes müssen wir eine /etc/exports erstellen Datei.

[root@server docs]# vi /etc/exports

Machen Sie in der neuen Datei folgenden Eintrag:

/test/nfs_share   172.25.1.0/24(rw,sync,no_all_squash,root_squash)

Um die hier verwendeten Parameter besser zu verstehen, wollen wir sie nacheinander aufschlüsseln.

  • rw - Erlaubt uns, die NFS-Freigabe zu lesen und zu schreiben.
  • sync - Erfordert das Schreiben von Änderungen auf die Festplatte, bevor andere Vorgänge abgeschlossen werden.
  • no_all_squash - Bildet alle UIDs und GIDs von der Client-Anfrage auf die identischen UIDs und GIDs auf dem NFS-Server ab.
  • root_squash - Ordnet Anfragen vom clientseitigen Root-Benutzer einer anonymen UID/GID zu.

Nachdem wir die Freigabe erstellt haben, exportieren wir sie an den/die Client(s).

[root@server docs]# exportfs -rav
exporting 172.25.1.0/24:/test/nfs_share

Beachten Sie, dass ich hier das gesamte Subnetz abgebildet habe. Sie können hier nur eine einzelne IP oder einen einzelnen Hostnamen angeben, wenn Sie dies bevorzugen.

Ändern Sie die Firewall

Wir haben den Server installiert und dann die Freigabe erstellt und exportiert. Als nächstes konfigurieren wir einen Tunnel durch die Firewall. Wir werden Regeln für nfs hinzufügen , rpc-bind , und mountd . Vergessen Sie nicht, die Firewall-Konfiguration neu zu laden, wenn Sie fertig sind.

Hier zu sehen:

[root@server]# firewall-cmd --permanent --add-service=nfs
success
[root@server]# firewall-cmd --permanent --add-service=rpc-bind
success
[root@server]# firewall-cmd --permanent --add-service=mountd
success
[root@server]# firewall-cmd --reload
success

Nachdem die Serverseite abgeschlossen ist, können wir uns nun auf den Client-Rechner konzentrieren.

Client konfigurieren

*Hinweis:Alle weiteren Schritte werden auf dem Client-Rechner ausgeführt.

Da wir unser System bereits aktualisiert und die nfs-utils installiert haben Paket, sollte dies ziemlich einfach sein.

Wir beginnen damit, einen Eintrag in /etc/hosts zu erstellen für den NFS-Server. Es sollte ungefähr so ​​aussehen:

[root@client]# cat /etc/hosts
127.0.0.1  localhost
::1        localhost
172.25.1.5 localhost

Sehen wir uns nun an, ob etwas vom NFS-Server freigegeben wird. Wenn Sie den vorherigen Abschnitten gefolgt sind, sollten Sie /test/nfs_share/docs sehen als freigegebenes Verzeichnis.

[root@client ~]# showmount --exports nfs-server
Export list for nfs-server: 
/test/nfs_share/docs 172.25.1.0/24

Erstellen Sie als Nächstes ein Verzeichnis auf dem Client-Rechner, um die Remote-Freigabe zu mounten.

[tcarrigan@client ~]$ sudo  mkdir p /test/client_share

Nachdem wir nun ein Mount-Verzeichnis erstellt haben, wollen wir die Freigabe mounten.

[tcarrigan@client ~]$ sudo mount -t nfs 172.25.1.5:/test/nfs_share/docs /home/tcarrigan/test/client_share

Führen Sie den folgenden Befehl aus, um die Freigabe zu überprüfen:

[tcarrigan@client ~]$ sudo mount | grep -i nfs

Um schließlich sicherzustellen, dass der Mount über Neustarts hinweg bestehen bleibt, fügen Sie die folgende Zeile zu /etc/fstab hinzu Datei:

172.25.0.5:/test/nfs_share/docs /home/tcarrigan/test/client_share  nfs defaults 0 0 

Leichter Tag.

Konzeptnachweis

Lassen Sie uns als Höhepunkt unserer Bemühungen die konfigurierte Freigabe testen. Erstellen Sie eine Datei auf dem Server unter /test/nfs_share/docs mit dem Namen test_doc .

[tcarrigan@server docs]$ ls -lrt
total 4
-rw-r--r--. 1 root root 39 Jun 25 16:21 test_doc

Mal sehen, ob unser test_doc wird über NFS auf unseren Client-Rechner exportiert.

Auf dem Client-Rechner:

[tcarrigan@client ~]$ cd test/client_share/
[tcarrigan@client client_share]$ ls
docs
[tcarrigan@client client_share]$ ls docs/
test_doc
[tcarrigan@client client_share]$

Hier sehen wir das test_doc existiert auf dem NFS-Server.

Um in die andere Richtung zu testen, erstelle ich auf dem Client eine Datei mit dem Namen client-test-doc .

[tcarrigan@client docs]$ vi client-test-doc

Lassen Sie uns zum Server springen und sehen, ob wir die neu erstellte Datei sehen können.

NFS-Server:

[tcarrigan@server docs]$ ls -lrt
   total 8
   -rw-r--r--. 1 root      root      39 Jun 25 16:21 test_doc
   -rw-rw-r--. 1 tcarrigan tcarrigan  5 Jul  6 13:25 client-test-doc

Wir können sowohl die Originaldatei test_doc sehen sowie die neu erstellte Datei client-test-doc .

Herzlichen Glückwunsch zum Einrichten eines funktionierenden NFS-Server/Client-Paares.

[ Kostenloser Online-Kurs:Technischer Überblick zu Red Hat Enterprise Linux. ]


Linux
  1. Einrichten eines NFS-Servers und -Clients unter Scientific Linux 6.3

  2. Einrichten eines NFS-Servers und -Clients unter CentOS 7.2

  3. Installieren Sie vnc-Server und -Client auf Ubuntu

  4. CentOS / RHEL 7 :Konfigurieren eines NFS-Servers und NFS-Clients

  5. Grundlegende NFS-Sicherheit – NFS, no_root_squash und SUID

So installieren Sie NFS-Server und -Client unter Ubuntu

So konfigurieren Sie NFS-Client und -Server unter Linux

So richten Sie NFS-Server und -Client unter Debian 10 ein

Installieren Sie NFS-Server und -Client auf Ubuntu

NIS-Client und -Server

So richten Sie NFS-Server und -Client unter CentOS 8 ein