> Inhalt: Technik, Anwendungsprogramme und Organisation

NFS (Network File Services) konfigurieren und verwenden

* Bitte beachten Sie die Hinweise und Bestimmungen bezüglich Urheberrecht, Haftungsausschluß und geschützte Marken oder Warenzeichen die für dieses Web-Dokument und möglicherweise auch für 'verlinkte' Dokumente gelten.

  • Der Betreiber dieser Web-Site (www.javascout.biz) ist nicht verantwortlich für den Inhalt von Web-Sites, die innerhalb dieses Web-Dokumentes oder anderer Dokumente von www.javascout.biz verlinkt sind.

  • Wenn dieses Web-Dokument oder andere Dokumente dieser Web-Site (www.javascout.biz) Rechte von Ihnen verletzen, oder sie glauben, dass Rechte Anderer (Dritter Personen) dadurch verletzt werden, informieren Sie bitte den Betreiber dieser Web-Site.
    Eine E-Mail können Sie ganz einfach durch anklicken des Symbols oder Textes im Frame rechts oben senden.

Dieses Dokument drucken.

 Letzte Bearbeitung dieses  Dokuments:
2009-11-19

Voraussetzungen für das Verständnis dieses Dokuments:

* Allgemeine Kenntnisse über das Ändern von Dateien mit einem Editor.

Ungefährer Zeitbedarf zum Durcharbeiten dieses Dokuments:

Arbeitszeit:
Ca. 20 Minuten für das Konfigurieren des Servers
.
Ca. 15 Minuten für die Drucker-Einrichtung auf einem Arbeitsplatz
.

NFS (Network File Services) erlaubt die Freigabe von Verzeichnissen des PC, auf dem der NFS-Server installiert ist, für den Zugriff durch andere PC.
Mit NFS können die Zugriffsrechte auf einzelne TCP/IP-Adressen oder Gruppen von TCP/IP-Adressen eingeschränkt werden.
Auf dem 'entfernten' Arbeitsplatz-PC können dann die freigegebenen Verzeichnisse des 'Servers' wie Verzeichnisse auf der lokalen Festplatte werden.

Dieses Dokument besteht aus zwei Abschnitten:
* Konfiguration des NFS-Servers; das ist jener PC auf dem die Datei-Verzeichnisse angelegt sind, auf die von Arbeitsplatz-PCs zugegriffen werden soll.
* Zuordnen eines Datei-Verzeichnisses auf ein Verzeichnis eines beliebigen Arbeitsplatz-PC.

Inhaltsverzeichnis:

Vorbemerkung 
Vorbedingung 
NFS-Server konfigurieren
 
* Installieren des NFS-Servers (bei Ubuntu)
 
* Automatisches Starten des NFS-Servers über
ntsysv 
* Definition der für NFS freigegebenen Verzeichnisse in der Datei
/etc/exports 
* Definition der Computer, die einzelne Zugriffsmethoden verwenden dürfen in den Dateien
/etc/hosts.deny und /etc/hosts.allow 
* Testen des NFS-Servers 

Verzeichnisse eines NFS-Servers auf einem Arbeitsplatz-PC verfügbar machen 
* Fixe Zuordnung durch die Datei
/etc/fstab 
* Dynamische Zuordnung mit 'automount'
 

Vorbemerkung:

Die Berechtigungsfunktion des Network-File-Services erlaubt eine sehr feine Vergabe von Berechtigungen.
Dieses Dokument ist aber dazu gedacht, eine Einführung zu geben und möglichst einfach verständliche Beispiele zu zeigen.
Deswegen wurde auf ein detailliertes Eingehen auf die Möglichkeiten verzichtet.

Das Verzichten auf eine feinere Unterteilung von Berechtigungen heißt aber nicht, dass die Verwendung der gezeigten Beispiele eine Vernachlässigung der Sicherheit ist.
Der Aufbau der Berechtigungen ist für einen Kleinbetrieb passend und wird von mir selbst so verwendet.

Die Sicherheit gegen unbefugten Zugriff auf Daten wird durch die Berechtigungsmatrix (siehe Einrichten von Verzeichnissen (Directories) und Vergabe von Berechtigungen (Access-Rights) an Benutzer unter Linux) erreicht.
Die Steuerung der Zugriffsrechte über die Berechtigungsmatrix bietet auch den Vorteil, dass ein Benutzer an jeden beliebigen Arbeitsplatz angemeldet sein kann.

Vorbedingung:

NFS-Server konfigurieren:

Installieren des NFS-Servers (bei Ubuntu)

In der Standard-Installation von Ubuntu ist das Programmpaket für NFS nicht enthalten.

Damit NFS beim Staten von Linux automatisch gestartet wird, muß NFS in die Liste der zu startenden 'Services' aufgenommen werden.

In einem geöffneten Terminal-Fenster wird das Kommando
apt-get install nfs-common nfs-kernel-server
ausgeführt.

Es erscheint eine Information über die zusätzlich notwendigen Pakete und die Rückfrage, ob Sie

Darauf hin erscheint der nebenstehende Schirm.

  • Prüfen Sie, ob [*] nfs markiert ist
    bzw. markieren Sie es mit der Leer-Taste.

  • Selektieren Sie mit der Tabulator-Taste [ OK ] und beenden Sie mit der Enter-Taste die Applikation.



Automatisches Starten des NFS-Servers über ntsysv

Diese Tätigkeit ist nur bei Fedora Linux notwendig;
bei Ubuntu wird der NFS-Server automatisch gestartet wenn das Programmpaket installiert ist.


Damit NFS beim Staten von Linux automatisch gestartet wird, muss NFS in die Liste der zu startenden 'Services' aufgenommen werden.

Auf einer Kommandozeile (bei gestarteter GUI in einem Terminal-Fenster) wird das Kommando
ntsysv ausgeführt.

Darauf hin erscheint der nebenstehende Schirm.

  • Prüfen Sie, ob [*] nfs markiert ist
    bzw. markieren Sie es mit der Leer-Taste.

  • Selektieren Sie mit der Tabulator-Taste [ OK ] und beenden Sie mit der Enter-Taste die Applikation.

Definition der für NFS freigegebenen Verzeichnisse in der Datei /etc/exports

In der Datei /etc/exports wird festgelegt, auf welche Datei-Verzeichnisse überhaupt ein Zugriff über NFS erlaubt ist.
Die folgende Beispieldatei baut auf der im Dokument Einrichten von Verzeichnissen (Directories) und Vergabe von Berechtigungen (Access-Rights) an Benutzer unter Linux vorgestellten Verzeichnisstruktur auf.

/mirror 192.168.0.0/255.255.255.0(ro)
/SMB_Disk/daten_gesichert 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/daten_ungesichert 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/finanz 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/progs_nicht_schreibend 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/progs_schreibend 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/cd_01 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/cd_02 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/cd_03 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/cd_04 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/cd_05 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/cd_06 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/cd_07 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/cd_08 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/cd_09 192.168.0.0/255.255.255.0(rw)
/SMB_Disk/cd_10 192.168.0.0/255.255.255.0(rw)


Die Konfiguration in der obigen Datei erlaubt für alle PCs mit einer TCP/IP-Adresse im Bereich 192.168.0.* den Zugriff auf die gelisteten Verzeichnisse.
(rw) (read/write) bedeutet, dass Dateien gelesen und geschrieben werden dürfen.
(ro) (read only) bedeutet, dass Dateien nur gelesen werden dürfen.

Die Berechtigung für den Zugriff (sowohl zum Lesen als auch zum Schreiben) kann aber durch die Vergabe von Berechtigungen an einzelne Benutzer oder Benutzergruppen weiter eingeschränkt sein.

Definition der Computer, die einzelne Zugriffsmethoden verwenden dürfen in den Dateien /etc/hosts.deny und /etc/hosts.allow

Die Methode, mit der auf die in der Datei /etc/exports festgelegten Verzeichnisse und Dateien zugegriffen werden darf, wird in 2 Schritten festgelegt.

Zuerst wird allen Computern 'verboten', irgendeine Zugriffsmethode zu verwenden.
Das wird in der Datei
/etc/hosts.deny festgelegt.

#
# hosts.deny This file describes the names of the hosts which are
# *not* allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
# The portmap line is redundant, but it is left to remind you that
# the new secure portmap uses hosts.deny and hosts.allow. In particular
# you should know that NFS uses portmap!

portmap: ALL
lockd: ALL
mountd: ALL
rquotad: ALL
statd: ALL



In der Datei /etc/hosts.allow wird dann festgelegt, welche Computer (identifiziert durch TCP/IP-Adressen) welche Zugriffsmethoden verwenden dürfen. Im folgenden Beispiel wird allen TCP/IP-Adressen des Bereiches 192.168.0.* jede Zugriffsmethode erlaubt.

#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.

portmap: 192.168.0.0/255.255.255.0
lockd: 192.168.0.0/255.255.255.0
mountd: 192.168.0.0/255.255.255.0
rquotad: 192.168.0.0/255.255.255.0
statd: 192.168.0.0/255.255.255.0


Testen des NFS-Servers

Die Konfiguration des NFS-Servers wird durch das Kommando
service nfs restart
aktualisiert.

Ob der NFS-Server aktiv ist, kann auf dem Computer, auf dem der Server läuft, mit dem Kommando
rpcinfo -p
überprüft werden.

Es sollte eine Ausgabe ähnlich wie im folgenden Beispiel erfolgen.

Program Vers Proto Port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 1024 status
100024 1 tcp 1024 status
100011 1 udp 887 rquotad
100011 2 udp 887 rquotad
100005 1 udp 1025 mountd
100005 1 tcp 1025 mountd
100005 2 udp 1025 mountd
100005 2 tcp 1025 mountd
100005 3 udp 1025 mountd
100005 3 tcp 1025 mountd
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100021 1 udp 1026 nlockmgr
100021 3 udp 1026 nlockmgr
100021 4 udp 1026 nlockmgr


Dabei müssen die Services mountd, nfs und nlockmgr vorkommen.

Als zweiter Schritt kann auf einem anderen Computer des Netzwerks das Kommando
rpcinfo -p 192.168.0.1
eingegeben werden.

Wobei das Kommando nur von einem Benutzer mit Administrator-Berechtigung (z.B. der Benutzer 'root') ausgeführt werden kann und die TCP/IP-Adresse (im Beispiel 192.168.0.1) jener des Computers, auf dem der NFS-Server läuft, entsprechen muss.
Die Ausgabe muß gleich sein wie jene auf dem Computer, auf dem der NFS-Server läuft (Erster Schritt des Testes).

Bei Ausgabe einer Fehlermeldung ist vermutlich die Firewall und / oder SELinux aktiviert; sehen Sie in diesem Fall bitte unter Installation des Server mit dem Betriebs-System Linux Fedora Core 5 > Firewall-Einstellungen und Linux-Sicherheitsstufe deaktivieren nach.



Als dritter Schritt wird auf einem anderen Computer des Netzwerks folgendes Kommando eingegeben:
showmount -e 192.168.0.1

Wobei das Kommando nur von einem Benutzer mit Administrator-Berechtigung (z.B. der Benutzer 'root') ausgeführt werden kann und die TCP/IP-Adresse (im Beispiel 192.168.0.1) jener des Computers, auf dem der NFS-Server läuft, entsprechen muß.

Bei Verwendung der vorgeschlagenen Namen für die Verzeichnisse sehen Sie folgende Ausgabe:

Export list for 192.168.0.1:
/SMB_Disk/cd_10 192.168.0.0/255.255.255.0
/SMB_Disk/cd_09 192.168.0.0/255.255.255.0
/SMB_Disk/cd_08 192.168.0.0/255.255.255.0
/SMB_Disk/cd_07 192.168.0.0/255.255.255.0
/SMB_Disk/cd_06 192.168.0.0/255.255.255.0
/SMB_Disk/cd_05 192.168.0.0/255.255.255.0
/SMB_Disk/cd_04 192.168.0.0/255.255.255.0
/SMB_Disk/cd_03 192.168.0.0/255.255.255.0
/SMB_Disk/cd_02 192.168.0.0/255.255.255.0
/SMB_Disk/cd_01 192.168.0.0/255.255.255.0
/SMB_Disk/finanz 192.168.0.0/255.255.255.0
/SMB_Disk/progs_nicht_schreibend 192.168.0.0/255.255.255.0
/SMB_Disk/progs_schreibend 192.168.0.0/255.255.255.0
/mirror 192.168.0.0/255.255.255.0
/SMB_Disk/daten_gesichert 192.168.0.0/255.255.255.0
/SMB_Disk/datn_ungesichert 192.168.0.0/255.255.255.0


zum Inhaltsverzeichnis

Verzeichnisse eines NFS-Servers auf einem Arbeitsplatz verfügbar machen:

Vorbedingung für die Zuordnung ist, das die notwendigen Systemprogramme für die Verbindung mit dem Server installiert sind.
Das kann durch die Eingabe von
showmount -e xxx.xxx.xxx.xxx
auf der Kommandozeile (in einem 'Terminal-Fenster' bei gestarteter GUI).
Dabei ist
xxx.xxx.xxx.xxx durch die TCP/IP-Adresse des Computers mit den freigegebenen Verzeichnissen zu ersetzen.

Für die Erstellung oder Änderung der Konfigurationsdateien ist eine Anmeldung als 'root' hilfreich – das erspart das häufige Eingeben des Passworts.

Die Zuordnung der Verzeichnisse des NFS-Servers auf einem Arbeitsplatz-Computer kann auf zwei Arten erfolgen.

Zuordung der Verzeichnisse beim Starten von Linux durch den Eintrag in die Datei /etc/fstab

Damit entfernte Verzeichnisse zugeordnet werden können, müssen Verzeichnisse auf dem Arbeitsplatz-Computer existieren.

Die folgende Benennung der Verzeichnisse ist nur ein Vorschlag.
Verzeichnisse auf dem Arbeitsplatz-Computer können beliebig benannt werden weil die Zuordnung in der Datei
/etc/fstab festgelegt ist.

Damit klar sichtbar ist, welche Verzeichnisse auf einem entfernten Computer liegen, wird ein spezielles Verzeichnis angelegt:
mkdir /_rmt-server

Der Beginn mit _rmt ist eine meiner Konventionen um zu erkennen, daß dieses Verzeichnis auf einem entfernten Computer liegt – aber keine Bedingung die von Linux oder dem Network File Services verlangt wird.

Unter diesem Verzeichnis werden dann weitere Verzeichnisse angelegt, denen später die Verzeichnisse des NFS-Servers zugeordnet werden.
Zu einfachen Erkennung werden diese genau so benannt wie auf dem NFS-Server (das ist aber auch keine Bedingung).
mkdir /_rmt-server/finanz
mkdir /_rmt-server/daten_gesichert
mkdir /_rmt-server/daten_ungesichert
mkdir /_rmt-server/progs_schreibend
mkdir /_rmt-server/progs_nicht_schreibend

Die gerade erstellten Dateien werden für die Bearbeitung durch alle Benutzer frei gegeben.
chmod -R 777 /_rmt-server

Das stellt sicher, dass die Sicherheitsregeln für die zugeordneten Verzeichnisse auf dem entfernten Computer (Server) nicht zusätzlich eingeschränkt werden.



Die nachfolgend beschriebenen Einträge in der Datei /etc/fstab setzen Voraus, dass eine Abfrage
showmount -e 192.168.0.1
folgendes Ergebnis ergibt:

Sollten der entfernte Computer (Server) eine andere TCP/IP-Adresse haben bzw. die freigegebenen Verzeichnisse andere Namen haben, dann sind die kursiv geschriebenen Werte des folgenden Beispiels zu ändern.

Die Zuordnung der im vorigen Schritt angelegten Verzeichnisse auf dem Arbeitsplatz-Computer zu den Verzeichnissen auf dem NFS-Server erfolgt durch Eintragungen in der Datei /etc/fstab.
Das folgende Beispiel setzt voraus, dass die Benennung der Verzeichnisse so erfolgte wie in den bisherigen Beispielen.

#
# Zuordnung von Verzeichnissen auf einem entfernten Computer

192.168.0.1:/SMB_Disk/finanz
/_rmt-server/finanz nfs rw,hard,intr 0 0
192.168.0.1:/SMB_Disk/daten_gesichert /_rmt-server/daten_gesichert nfs rw,hard,intr 0 0
192.168.0.1:/SMB_Disk/daten_ungesichert /_rmt-server/daten_ungesichert nfs rw,hard,intr 0 0
192.168.0.1:/SMB_Disk/progs_nicht_schreibend /_rmt-server/progs_nicht_schreibend nfs rw,hard,intr 0 0
192.168.0.1:/SMB_Disk/progs_schreibend /_rmt-server/progs_schreibend nfs rw,hard,intr 0 0

Die Parameter am Ende jeder Zeile spezifizieren die Art der Zuordnung und Zugriffsrechte.
Eine genauere Erläuterung würde die Zielsetzung dieses als Einführung gedachten Dokumentes sprengen.



Damit die Zuordnung wirksam wird, muss Linux neu gestartet werden.

Während des Starts schreibt Linux die Meldung
NFS-Dateisysteme einhängen

Achten Sie bitte darauf, dass dabei kein Fehler berichtet wird.

Eine Möglichkeit, die korrekte Zuordnung zu testen ist, neue Verzeichnisse auf den zugeordneten Verzeichnissen zu erstellen und einige Dateien dorthin zu kopieren.
Auf dem Server kann dann kontrolliert werden, ob alle kopierten Dateien dort existieren.

zum Inhaltsverzeichnis

Dynamische Zuordung der Verzeichnisse mit 'automount'

Damit entfernte Verzeichnisse zugeordnet werden können, müssen Verzeichnisse auf dem Arbeitsplatz-Computer existieren.

Die folgende Benennung der Verzeichnisse ist nur ein Vorschlag.
Verzeichnisse auf dem Arbeitsplatz-Computer können beliebig benannt werden weil die Zuordnung in der Datei
/etc/fstab festgelegt ist.

Damit klar sichtbar ist, welche Verzeichnisse auf einem entfernten Computer liegen, wird ein spezielles Verzeichnis angelegt:
mkdir /_rmt-server

Der Beginn mit _rmt ist eine meiner Konventionen um zu erkennen, dass dieses Verzeichnis auf einem entfernten Computer liegt – aber keine Bedingung die von Linux oder dem Network File Services verlangt wird.

Unter diesem Verzeichnis werden dann weitere Verzeichnisse angelegt, denen später die Verzeichnisse des NFS-Servers zugeordnet werden.
Zu einfachen Erkennung werden diese genau so benannt wie auf dem NFS-Server (das ist aber auch keine Bedingung).
mkdir /_rmt-server/finanz
mkdir /_rmt-server/daten_gesichert
mkdir /_rmt-server/daten_ungesichert
mkdir /_rmt-server/progs_schreibend
mkdir /_rmt-server/progs_nicht_schreibend


Damit periodisch geprüft werden kann, ob freigegebene Verzeichnisse auf dem NFS-Server verfügbar sind, muß ein 'automount'-daemon auf dem Arbeitsplatz-Computer laufen. Dieser wird wie folgt installiert.

Auf einer Kommandozeile (bei gestartetet GUI in einem Terminal-Fenster) wird das Kommando
ntsysv ausgeführt.

Darauf hin erscheint der nebenstehende Schirm.

  • Prüfen Sie, ob [*] autofs markiert ist
    bzw. markieren Sie es.

  • Selektieren Sie mit der Tabulator-Taste [ OK ] und beenden Sie mit der Enter-Taste die Applikation.



Die Zuordnung der im vorigen Schritt angelegten Verzeichnisse auf dem Arbeitsplatz-Computer zu den Verzeichnissen auf dem NFS-Server erfolgt in zwei Schritten.

Die direkte Zuordnung zwischen den Verzeichnissen auf dem lokalen Computer und den freigegebenen Verzeichnissen des NFS-Servers ist in einer Datei, deren Name frei gewählt werden kann, festgelegt.
In diesem Beispiel wurde die Datei
/etc/auto.server benannt.
Der Inhalt der Datei ist wie folgt - wobei die
Benennung so erfolgte wie in den bisherigen Beispielen.


finanz -browse,rw,soft,intr 192.168.0.1:/SMB_Disk/finanz
daten_gesichert -browse,rw,soft,intr 192.168.0.1:/SMB_Disk/daten_gesichert
daten_ungesichert -browse,rw,soft,intr 192.168.0.1:/SMB_Disk/daten_ungesichert
progs_nicht_schreibend -browse,rw,soft,intr 192.168.0.1:/SMB_Disk/progs_nicht_schreibend
progs_schreibend -browse,rw,soft,intr 192.168.0.1:/SMB_Disk/progs_schreibend

Die Parameter am in der Mitte jeder Zeile spezifizieren die Art der Zuordnung und Zugriffsrechte.
Eine genauere Erläuterung würde die Zielsetzung dieses als Einführung gedachten Dokumentes sprengen.

Als zweiter Schritt wird die erstellte Datei (/etc/auto.server in diesem Beispiel) in der Datei /etc/auto.master dem lokalen Verzeichnis zugeordnet.
Das geschieht durch folgende Zeile in der Datei
/etc/auto.master:
/_rmt-server /etc/auto.server --timeout=60

Der Parameter -timeout=60 gibt an, daß 60 Sekunden lang versucht wird auf das Verzeichnis am NFS-Server zuzugreifen wenn eine Datei innerhalb von /_rmt-server geöffnet werden soll.

Während des Betroebs wird die Zuordnung durch das Kommando
/etc/init.d/autofs reload
aktiviert.
Alternativ kann auch
Linux neu gestartet werden.

Eine Möglichkeit, die korrekte Zuordnung zu testen ist, neue Verzeichnisse auf den zugeordneten Verzeichnissen zu erstellen und einige Dateien dorthin zu kopieren.
Auf dem Server kann dann kontrolliert werden, ob alle kopierten Dateien dort existieren.

zum Inhaltsverzeichnis