NFS (Network File System) von Sun Microsystems ist eine RPC-basierte verteilte Dateisystemstruktur, die es vernetzten Geräten ermöglicht, Server mit NFS über ein Netzwerk als lokale Laufwerke zu verwenden.

Hier ist eine Schritt-für-Schritt-Anleitung zum Einrichten und Konfigurieren eines NFS-Servers auf einem Linux-Computer.

Was ist ein Netzwerkdateisystem?

Das NFS-Dateisystem hat vier Protokolle. Wenn der Server bereit ist, benachrichtigt er portmap (den Server, der das Protokoll in Portnummern umwandelt) über den zu verwendenden Port und stellt die kontrollierte RPC-Programmnummer bereit.

Wenn Sie ein eingebettetes Linux-System verwenden, ist es sehr praktisch, Ihr Gerät über eine NFS-Dateifreigabe zu booten über das Netzwerk, anstatt es direkt vom Speichergerät zu starten (NAND-Flash, eMMC, MMC, etc.).

Obwohl seltener, möchten Sie vielleicht auch eine NFS-Freigabe mounten und Dateifreigaben damit ausführen, nachdem das System hochgefahren ist, selbst wenn Sie Ihr System nicht direkt von der NFS-Freigabe booten. Damit beide Szenarien funktionieren, müssen Sie zunächst einen NFS-Server auf dem Computer installieren, auf dem Sie entwickeln.

instagram viewer

So installieren Sie NFS unter Linux

Wenn Sie eine verwenden Debian-basiertes System B. Ubuntu oder Linux Mint, sollten Sie installieren nfs-kernel-server Paket wie folgt:

sudo apt Installieren nfs-kernel-Server

Unter Arch-Linux:

sudo pacman -S nfs-utils

Unter Fedora, CentOS und RHEL:

sudo dnf -y Installieren nfs-utils

Am Ende des Vorgangs wird Ihr NFS-Server automatisch ausgeführt. Zu diesem Zeitpunkt weiß es jedoch noch nicht, welche Verzeichnisse auf Ihrem Computer Sie über das Netzwerk freigeben möchten. Daher bietet es standardmäßig keine Freigabe.

Sie können mehrere Verzeichnisse auf demselben Server öffnen, um die Netzwerkfreigabe mit unterschiedlichen Berechtigungen und Einschränkungen zu ermöglichen.

Konfigurieren des NFS-Servers unter Linux

Um ein beliebiges Verzeichnis über den NFS-Server freizugeben, muss eine verzeichnisbezogene Einstellung in der konfiguriert werden /etc/exports Datei. Öffnen Sie die Datei mit einem beliebigen Texteditor Ihrer Wahl. Stellen Sie sicher, dass Sie dem Befehl das Präfix sudo hinzufügen.

sudo vim /etc/Exporte

Sie fragen sich vielleicht, was die hier angezeigten Zuordnungsoptionen bedeuten:

  • root_squash: Markiert sudo-autorisierte Clientbenutzer als Benutzer und Gruppe auf NFS
  • no_root_squash: Deaktiviert Root-Squashing
  • all_squash: Im Gegensatz zu root_squash können alle Benutzer als Benutzer und Gruppe "nobody" zugeordnet werden. Es wird im Allgemeinen für den öffentlichen Zugang verwendet.
  • no_all_squash: Das Gegenteil von all_squash; diese Option ist die Standardeinstellung

Wenn ein System außerhalb der IP-Bereiche, die Sie in der Datei /etc/exports auf dem NFS-Server zulassen, versucht, auf die relevante Ressource zuzugreifen, lehnt der NFS-Server die Anfrage ab.

Möglicherweise erhalten Sie beim Mounten auf Ihrem eingebetteten System die Meldung „Zugriff vom Server verweigert“. Fehlermeldungen ähnlich der folgenden werden am Ende des angezeigt /var/log/syslog Datei auf dem Computer, auf dem der NFS-Server läuft:

rpc.mountd[1041]: Mount-Anforderung abgelehnt aus192.168.2.2zum /home/example/casper/target (/home/example/casper/target): unübertroffener Host

Wenn Sie eine nicht übereinstimmende Host-Protokollmeldung wie die obige sehen, sollten Sie den Abschnitt IP/Netzmaske der relevanten Regel in der Datei /etc/exports erweitern oder die verwenden Sternchen (*) Sonderzeichen, wenn Sie allen IP-Adressen Zugriff gewähren möchten.

Sie müssen den NFS-Dienst neu starten, nachdem Sie Änderungen an der vorgenommen haben /etc/exports Datei:

sudo service nfs-kernel-server neustarten

Oder, wenn Ihre Distribution mit systemctl ausgeliefert wird, führen Sie den folgenden Befehl aus:

sudosystemctlneu startennfs-server.Service

Sie können auch die geben -r Parameter zum exportfs Befehl, damit er Verzeichnisse wieder freigibt, die Einstellungen in Bezug auf die Freigabe geändert haben:

sudo exportfs -r

Behebung des Mount-Latenzproblems

Wenn Sie auf Ihrem Server die NFS-Protokollversion 4 und höher verwenden, kann es während des Vorgangs zu Verzögerungen von bis zu 15 Sekunden kommen der clientseitige Mount-Prozess in herkömmlichen Betriebsszenarien mit den Standardkonfigurationen des NFS Server. Dieses Problem kann bei einigen Versionen von Debian, Fedora und Ubuntu auftreten.

Wenn Sie eine ähnliche Mount-Verzögerung haben, können Sie dies tun Überprüfen Sie die serverseitigen Protokolldateien (/var/log/syslog, /var/log/messages) für eine Protokollmeldung ähnlich der folgenden:

... RPC: Zeitüberschreitung beim AUTH_GSS-Upcall

Diese Meldung weist darauf hin, dass die Kerberos-Authentifizierung fehlgeschlagen ist und das Zeitlimit überschritten wurde. Wahrscheinlich benötigen Sie das Kerberos-Protokoll nicht für die Sicherheitsauthentifizierung im Netzwerk in Ihrer Umgebung. Selbst wenn Sie sich in einem so konfigurierten Netzwerk befinden, müssen Sie zumindest mit Ihren eingebetteten Linux-Systemen die Kerberos-Authentifizierung nicht aktivieren.

Obwohl Alternativen zum Ausführen des GSSD-Dienstes mit NFS angeboten wurden, um das Problem zu beheben, haben diese Ansätze keine die gleichen Auswirkungen in allen Distributionen und Paketversionen, und daher ist es am vernünftigsten, dieses Problem von der Seite aus anzugehen Wurzel.

Sie müssen die blockieren (oder auf die schwarze Liste setzen). rpcsec_gss_krb5 verhindert, dass das Kernel-Modul auf dem Linux-System geladen wird, auf dem der NFS-Server ausgeführt wird.

Damit diese Option bei jedem Neustart Ihres Computers wirksam wird, eine neue Datei erstellen genannt /etc/modprobe.d/nfs-gss-blacklist.conf und fügen Sie die folgenden Zeilen hinzu:

Schwarze Liste rpcsec_gss_krb5

Sobald Sie die Datei gespeichert und das System neu gestartet haben, wird das Mount-Latenzproblem behoben.

Warum einen NFS-Server verwenden?

NFS ist einfach und kostengünstig einzurichten. Es ermöglicht eine zentralisierte Verwaltung, wodurch der Bedarf an zusätzlicher Software und Speicherplatz auf dem PC eines einzelnen Benutzers reduziert wird. Auf einem einzelnen Computer können sich mehrere Benutzer denselben Speicherplatz teilen. Sie können diese Festplatten auf ihr Dateisystem legen, um den Speicherplatz zu erweitern.

Durch die NFS-Freigabe können Programme, die viel Speicherplatz benötigen, auf einem einzigen Server gruppiert werden. Dies kann zu enormen Speicherplatzeinsparungen führen. Während frühere NFS-Versionen anfällig sind, haben neuere Versionen zusätzliche Schutzebenen eingeführt, einschließlich der Kerberos-Authentifizierung.

Allerdings gibt es auch einige Nachteile. Es wurde festgestellt, dass NFS in einigen Fällen bei starkem Netzwerkverkehr langsamer wird. Die gemeinsame Nutzung mit Windows ist möglich, erfordert jedoch möglicherweise einige Anwendungen von Drittanbietern. Dies ist jedoch in Bezug auf die Sicherheit keine sehr sinnvolle Vorgehensweise. Wenn die Konfiguration nicht korrekt ist, kann es zu unbefugtem Zugriff kommen.

Dateisystemfreigabe leicht gemacht unter Linux mit NFS

Sicherheitsprobleme zu kennen und Lösungen zu finden, ist eine der wichtigsten Aufgaben eines Systemadministrators. Es ist notwendig, die Sicherheitsverfahren für alle Filesharing-Systeme und Verwaltungstools zu kennen, nicht nur für NFS.