NFS
Aus Ubuntu-Forum Wiki
Artikel in Bearbeitung |
Um Versions-Konflikte zu vermeiden, darf er nicht geändert werden, so lange dieser Hinweis erscheint! |
Inhaltsverzeichnis |
1 Allgemeines
Dieser Artikel beschreibt, wie man im Heimnetzwerk das Network File System (NFS)-Protokoll einrichtet. Damit lässt sich auf Dateien entfernter (Linux)-Rechner zugreifen.
Dem Artikel liegt die Version 4 von NFS zu Grunde. Diese stellt eine Neuimplementierung dar und ist in der RFC 3530 standardisiert.
- Verbesserungen zur Vorversion
- Die Unix-Benutzer- und Gruppennummern wurden durch Zeichenketten, wie z.B. user@rechnername, ersetzt.
- Dateisysteme, die nicht zwischen Groß- und Kleinschreibung unterscheiden sowie benutzerdefinierte Dateiattribute werden jetzt unterstützt.
- Das Mount- und Lockprotokoll sind jetzt Bestandteil des Protokolls selbst. Hilfsprotokolle werden nicht mehr benötigt.
- Das Protokoll selbst läuft auf dem festen TCP-Port 2049, UDP wird nicht mehr unterstützt. Mehrere Anfragen können gebündelt werden (combined request). Sie werden dann vom Server ausgeführt und nur eine Antwort muss zurückgesendet werden.
- Verschlüsselung ist jetzt Teil der Spezifikation.
Weitere Verbesserungen finden sich in den jeweiligen Spezifikationen und/oder bei Wikipedia.
Diese Anleitung demonstriert lediglich die Vorgehensweise, um NFS in einem Heimnetzwerk zur Verfügung zu stellen. Das beschriebene Vorgehen ist keinesfalls für den produktiven Einsatz geeignet! |
2 Server
Der Rechner, der die Dateien bereitstellen soll, fungiert dabei als Server. Dazu ist es notwendig, die entsprechende Software zu installieren und anschließend zu konfigurieren.
2.1 Installation
Folgende Pakete werden über die Paketverwaltung installiert:
sudo apt-get install nfs-kernel-server nfs-common portmap
2.2 Konfiguration
- Stoppen des Servers
Nach der Installation wird der NFS-Server automatisch gestartet. Um ihn konfigurieren zu können, muss er zunächst gestoppt werden:
sudo /etc/init.d/nfs-kernel-server stop
- Freigegebene Verzeichnisse
Um ein Verzeichnis im Netzwerk freizugeben, muss es in der Konfigurationsdatei des Server exports im Verzeichnis /etc eingetragen werden. Diese kann mit einem Texteditor und Root-Berechtigung editiert werden:
sudo nano -w /etc/exports
Dort trägt man dann folgendes ein:
/pfad/zum/verzeichnis *(rw,sync)
Dadurch weiß der NFS-Server, welche Verzeichnisse er bereitstellen muss. Durch das * wird signalisiert, dass jeder Benutzer darauf zugreifen darf (siehe Sicherheit des NFS-Servers).
- Server starten
Im Anschluss wird der Server mit folgendem Befehl wieder gestartet:
sudo /etc/init.d/nfs-kernel-server start
Der NFS-Server liest die Datei exports aus und stellt die eingetragenen Verzeichnisse im Netzwerk zur Verfügung. Somit wäre der Server grundlegend konfiguriert.
3 Client
3.1 Installation
Für einen NFS-Client müssen die folgenden Pakete installiert werden:
sudo apt-get install nfs-common portmap
3.2 Konfiguration
Anschließend erstellt man sich im eigenen Benutzerverzeichnis einen Ordner, welcher fortan als Mountpunkt zum Einbinden des NFS-Serverlaufwerks dient.
mkdir ~/name_des_ordners
- Verzeichnis mounten
Nun kann das Verzeichnis, dass der NFS-Server zur Verfügung stellt, gemountet werden. Das bedeutet, dass es ins eigene System eingebunden und dadurch eine Verbindung zum Server hergestellt wird.
Das Ansprechen des Servers kann entweder über dessen IP-Adresse oder seinen Rechnernamen erfolgen:
sudo mount -t nfs 192.168.0.1:/pfad/zur/freigabe ~/name_des_mountpunktes
bzw.
sudo mount -t nfs server_name:/pfad/zur/freigabe ~/name_des_mountpunktes
Auf dieses Verzeichnis hat man nun einen Schreib- und Lesezugriff. Um das Verzeichnis dauerhaft zu mounten, kann man es auch in die /etc/fstab eintragen.
4 Sicherheit
Einen NFS-Server kann man folgendermaßen in der Konfigurationsdatei exports freigeben:
- für alle
- für eine IP-Adresse / einen Rechnernamen
- für einen IP-Adressbereich
- für mehrere Rechnernamen
Der Syntax lautet im Allgemeinen:
freigabe benutzer (zugriffs_optionen, synchronisations_methode)
- Freigabe für alle
Wie man ein Verzeichnis für alle Nutzer freigibt, wurde bereits am Anfang des Artikels beschrieben:
/pfad/zur/freigabe *(rw,sync)
Damit wäre die Freigabe für alle angeschlossenen Clients im Netzwerk erreichbar.
- Freigabe für eine IP-Adresse / einen Rechnernamen
Um ein Verzeichnis für eine IP-Adresse oder einen Rechnernammen freizugeben, ersetzt man einfach das *-Zeichen mit der entsprechenden Angabe:
/pfad/zur/freigabe 192.168.0.2(rw,sync)
bzw:
/pfad/zur/freigabe rechner_name(rw,sync)
- Freigabe für IP-Adressbereich
Um ein Verzeichnis für einen ganzen Adressbereich freizugeben, lautet der Eintrag folgendermaßen:
/pfad/zur/freigabe 192.168.0.0/255.255.255.0(rw,sync)
- Freigabe für mehrere Rechnernamen
Soll eine Freigabe für mehrere Clients über deren Rechnernamen freigegeben werden, müsse diese einzeln aufgezählt werden. Damit kann man ihnen auch verschiedene Berechtigungen erteilen:
/pfad/zur/freigabe rechner_name_01(rw,sync) rechner_name_02(rw,sync)
- Nutzungsmöglichkeiten der Freigaben einschränken
Weiterhin besteht die Möglichkeit, die Nutzung der Freigaben zu beschränken. Dies erfolgt über das erste Attribut innerhalb der Klammer:
lesen und schreiben | rw (read/write) |
nur lesen | ro (read only) |