Fehler/Info's/Anregungen an:
last update: 26.03.2020 / Besucher: 90 (63733)
Haftungsausschluss
Um NFS zu nutzen, müssen einige Schritte durchgeführt werden.
Dazu gehört das Installieren und Einrichten der benötigen Software und Konfiguration der Freigaben.

Installation:

Auf dem Server:

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

Auf dem Client:

sudo apt-get update
sudo apt-get install nfs-common

sudo apt-get upgrade

Nach dem Update der Datenbank mit "sudo apt-get update" kann man mit dem obigen Befehl das System auf den neusten Stand bringen. Wenn man dies nicht möchte, lässt man es einfach.

Wenn der Rechner sowohl auf Freigaben zugreifen soll, als auch Freigaben bereit stellen soll, müssen beide Paktete auf dem Rechner installiert werden.

Auf dem Server/Client:

sudo apt-get update
sudo apt-get install nfs-common nfs-kernel-server

Zugriffsrechte einrichtung:

Um die Zugriffsrechte anderer Systeme zu steuern, bearbeitet man die Dateien hosts.deny & hosts.allow.

nano hosts.deny:

ALL: ALL

nano hosts.allow:

ALL: 192.168.1.0/24 EXCEPT 192.168.1.1
In der hosts.deny werden alle Zugriffe auf das System unterbunden, die nicht in der hosts.allow frei gegeben sind.

Das System prüft zuerst die Datei hosts.allow nach Regeln und wenn dort eine Freigabe für einen Zugriff. Wenn eine gefunden wird, wird der Zugriff direkt erlaubt. Ist keine Regel für einen erlaubten Zugriff vorhanden, wird die Datei hosts.deny nachgeschaut, ob dort eine Regel ist, die den Zugriff verbietet. Ist auch dort nichts zu finden, wird der Zugriff ebenfalls erlaubt.

Im oben gezeigtem Beispiel, ist alles (ALL) verboten, was nicht in der Freigabeliste steht.

In der Freigabeliste steht das lokale Netzwerk ohne (EXCEPT) den Router. Dies gewährt dem lokalen Rechnern den Zugriff via NFS auf den Server. Alle anderen Zugriffe (auch über den Router als Bridge) werden geblockt.

Verzeichnisfreigaben einrichten: (Server)

NFS-Freigaben werden auf dem Server in der /etc/exports eingetragen.

nano /etc/exports:

/media   192.168.1.0/24(rw,async,no_root_squash,no_subtree_check,crossmnt)
/home/username/Freigabe   192.168.1.5(ro,async,nohide)
Die Verzeichnisfreigabe besteht aus mehreren Teilen.

  • Verzeichnis welches freigegeben wird     - /media
  • IP oder Host, für den die Freigabe gilt     - 192.168.1.0/24
  • Freigabeparameter/Optionen                 - (rw,async,no_root_squash,no_subtree_check)
 
Das Verzeichnis welches freigegeben wird, muss auf dem Dateisystem existieren.

Die IP oder der IP-Bereich bzw. Subnetzbereich, für den die Freigabe gilt.
Wenn man die Freigabe für das lokale Netzwerk geben möchte, gibt man idR. den Subnetzbereich ("/24") frei. Gleichzeitig sollte der letzte Block der IP mit "0" angegeben werden. Wird eine andere Zahl eingetragen, verschiebt sich auch der freigegebene Subnetz-Bereich.

Die Freigaben können mit verschiedenen Optionen eingetragen werden.
Die für den heimischen Gebrauch geläufigsten zähle ich hier mal auf.

  • rw
  • ro
  • async/sync
  • no_root_squash
  • no_subtree_check
  • nohide
  • crossmnt
rw
Lese- & Schreib-Rechte
ro
nur Leserechte
async
Asynchroner Datentransfer
Dies kann die Leistung verbessern, aber kann bei einem Rechnerabsturz zu einem Datenverlust führen.
no_root_squash
Normal werden "root-Dateien" über NFS auf anonym gemappt um eine Änderung zu unterbinden. Mit dieser Option wird dies abgeschaltet.
Client-Root = Server-Root
no_subtree_check
Mit dieser Option wird die Verzeichnisprüfung abgeschaltet. Dies bringt Geschwindigkeit und ggf. Stabilität.
sync
Syncroner Datentransfer
nohide
Gibt man für einen einzelnen Client (Single Host) einen Pfad frei, werden dort gemountete Verzeichnisse nicht exportiert und als leer angezeigt. Diese Verzeichnisse müssen auf dem Server ebenfalls mit einer eigenen Zeile exportiert werden.
Mit der Option nohide werden diese dann auf dem Client als Unterverzeichnis angezeigt und eingebunden, ohne selbst explizit gemountet zu werden.
crossmnt
Ähnlich wie nohide, wird ermöglicht das Clients auf gemountete Dateisysteme von Freigaben zugreifen können.

Verzeichnisse einbinden: (Client)

Es gibt mehrere Möglichkeiten, die NFS-Freigaben auf dem Client einzubinden.

  • eintragen in der Datei "/etc/fstab"
  • mounten über ein Skript
  • direkt über das Terminal mounten

 
Mounten mittels Eintrag in die Datei "/etc/fstab"
Die Datei wird wie die vorherigen Dateien mit dem Editor "nano" bearbeitet.

sudo nano /etc/fstab

192.168.1.29:/home/username/Freigabe      /mnt/Freigabe        nfs         noauto,user,rw         0   0  

IP-Adresse des Servers
Die IP oder der Hostname des Servers, auf dem die Freigabe eingerichtet ist.
Verzeichnis auf dem Server
Der Verzeichnispfad zur Freigabe auf dem Server.
Mountpunkt auf dem Client
Der Verzeichnispfad zum Einbindepunkt auf dem Client. Das Verzeichnis muss existieren und im Idealfall leer sein.
Typ des Filesystems
Das Filesystem, des entfernten Systems. In diesem Fall ist es NFS.
dump
Partition mit "dump" sichern oder nicht.
pass
Mit "0" wird die Routineprüfung beim Systemstart abgeschaltet.
Mountoptionen:
Parameter, mit denen die Freigabe eingebunden wird.

rw Lese-/Schreibberechtigung
ro nur Leseberechtigung
auto automatisch beim Systemstart einbinden
noauto   Freigabe muss manuell eingebunden werden
user Der User kann ohne Root-Rechte mounten. Nur er (oder root) kann unmounten.
users Jeder User kann mounten und unmounten.
nouser nur root mounten und unmounten.
vers=4 die verwendete NFS-Version. (*)

(*) Bei Problemen mit dem Mount unter verschiednenen Betriebssystemversionen kann eine andere NFS-Version angegeben werden. NFS4 ist bei den neuen Versionen der Standard. Bei Problemen kann mit vers=3 auf NFS3 gewechselt werden.

Um die Freigabe einzubinden, muss die Freigabe auf dem Server exportiert werden.
Auf dem Server:

sudo exportfs -ra

Nun kann die Freigabe eingebunden werden: (sofern der Eintrag in der "fstab" eingetragen ist!)
Auf dem Client:

sudo mkdir /mnt/Freigabe     (erstellt das Verzeichnis, wenn es noch nicht besteht!)
mount /mnt/Freigabe

Nun sollte das Verzeichnis auf dem Client verfügbar sein.

...to be continue...

zurück / Home Johnes.eu © Johnes
Rechtlicher Hinweis:
Ich weise darauf hin, dass ich mich von den Inhalten der von mir verlinkten Seiten distanziere! Für die Inhalte der verlinkten Seiten ist allein deren Verfasser verantwortlich.  (mehr Infos/Disclaimer...)