NFS (Network File Services)
konfigurieren und verwenden
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