PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : NFS Server



Jaydee
10.07.01, 08:12
Hallo Leuts,

ich haeb keine Ahnung von NFS. Kann mir bitte jdn nen Link geben, bzw. ne gute anleitung wie man so nen Server bastelt...


Danke Alex

jkaiser
10.07.01, 08:46
Vorrausstzungen:
- NFS Unterstützung im Kernel (ggf. als Modul)
- Portmapper wird beim booten gestartet
- NFS-Server Dienst wird beim booten gestartet
- /etc/exports enthält die gewünschten Freigaben (man exports, NFS-HOWTO, Beispiele in /etc/exports)

Et voilá, der Server steht! Die Clients sollten ebenso konfiguriert sein (bis auf /etc/exports). Dann bauchen sie die Freigaben nur noch mittels mount -t nfs server:/freigabe /local-mountpoint in ihrem lokalen Dateisystem einzuhängen!


Gruß, Jens

howlcoyote
10.07.01, 09:48
Hallo!

Neben dem RPC-Portmapper laufen auf einem NFS-Serverrechner noch zwei weitere wichtige Dämonprozesse:

- der RPC-Mount-Dämon /usr/sbin/rpc.mountd
- und der RPC-NFS-Dämon /usr/sbin/rpc.nfsd

In Systemen, die NFS-Plattenplatz für NFS-Clients auf Windows-, OS/2 und Mac-Arbeitsstationen zur Verfügung stellen, kommen meist noch

- der NFS-Dämon für PC-Clients /usr/sbin/rpc.pcnfsd
- und dessen Hilfsprogramm /usr/sbin/rpc.bwnfsd

hinzu. Die Aufrufe dieser Dämonen gehören in die Startup-Scripte. Außerdem eng verbunden mit NFS sind die RPC-basierten Dienste

- Benutzer-Benachrichtigung /usr/sbin/rpc.rwalld
- Benutzer-Information /usr/sbin/rpc.rusersd
- Plattenplatzbeschränkung für Benutzer /usr/sbin/rpc.rquotad
- sowie das Network Information System NIS.

Auch diese Dämonen werden bei Bedarf per Script gestartet.

Soviel zu den Grundlagen, jetzt mal zu der /etc/exports:

Welche Dateisysteme mit welchen Zugriffsrechten zur Verfügungen gestellt werden sollen, legt man in der Datei /etc/exports fest. Pro Verzeichnis, das exportiert wird, enthält die Datei eine Zeile, in der steht, welchen anderen Hosts der Zugriff darauf erlaubt ist.

Alle Unterverzeichnissse eines exportierten Verzeichnisses stehen mit den gleichen Export-Rechten (Optionen) zur Verfügung, wie das übergeordnete Verzeichnis. Es gibt die Möglichkeit, Unterverzeichnisse mit extra Rechnten nochmals zu exportieren; in dem Falle gelten beim Mounten die Rechte des am meisten zutreffenden Musters.

Jede Zeile der /etc/exports -sofern kein Kommentar- beginnt mit einem Verzeichnisnamen. Danach folgen ein oder mehrere Namen von Hosts, denen das exportierte Verzeichnis zur Verfügung gestellt wird.

Zur Angabe der Hosts, an die das einzelne Dateisystem exportiert wird, existieren zahlreiche Möglichkeiten:

- Ein Einzelhost (FQDN, einfacher Name oder Aliasname, der durch NS aufgelöst werden kann, oder IP)
- Hostnamen mit den Wildcards * und ? (*.mydomain bedeutet: alle Hosts aus der Domäne mydomain)
- Eine Netzgruppe in der Form @Netzgruppenname, siehe man netgroup(5)
- Ein IP-Netz in der Form Netzadresse/Netzmaske (Beispiel: 192.168.1.0/255.255.255.0)
- Der Eintrag =public ohne Optionen und ohne weiteren Eintrag auf der Zeile

Fehlt der Hostname ganz, sind alle Stationen im Netz zum Zugriff berechtigt (Export an alle).

Jeder Hostname und jede Hostgruppe kann optional mit einer Liste von Optionen in runden Klammern versehen werden:

-ro (read only)
-rw (read/write)
-noaccess (Gezieltes Sperren einzelner Subdirectories)
- link_absolute (Symlinks, beginnend mit / weren umgewandelt in links beginnend mit ../)
- link_relative (Symlinks bleiben unangetastet)
- secure (Zugriffe dürfen nur von privilegierten Internetports < 1024 erfolgen.)
- insecure (Ausschalten der secure-Option)
- root_squash (Benutzer root des client-hosts wird auf die UID/GID nobody/nogroup des Servers gemappt, um das System zu schützen.)
- squash_uids=Liste (Liste der auf nobody zu mappenden UIDs)
- squash_gids=Liste (Liste der auf nogroup zu mappenden GIDs)
-all_squash (Höchste Sicherheitsstufe: alle Client-User werden auf nobody/nogroup gemappt)
-map_daemon (Benutzung des rpc.ugidd-Dämons für dynamische mappings)

Die default-Werte beim Fehlen bestimmter Optionen sind:

-ist kein ro angegeben, wir das Verzeichnis auch zum Schreiben bereitgestellt.
-root-User anderer Maschinen werden auf die effektive UID = -2(nobody) gemappt.
-unbekannte User anderer Hosts werden standardmäßig auf -2 gemappt.
-Ein Verzeichnis ohne alle Optionen darf von der ganzen Welt gemountet werden, auch zum Schreiben.

Mehrere Optionen für den gleichen Host/die gleiche Gruppe von Hosts werden durch Komma getrennt.

Beispiel einer /etc/exports:

#sample /etc/exports file

/usr @mygroup #export an Netzgruppe mygroup
/opt #export an alle
/u1/doc (ro) #export an alle zum lesen
/u2 evaix kainix ochsix eselix #zugriff für diese 4 hosts
/etc adamix(no_root_squash) evaix(no_root_squash) #root-zugriff von adamix und evaix möglich
/ #die selbstmörder-konfiguration: alle dürfen alles überall
/opt/spec baumix(ro,insecure,all_squash) #beispiel für mehrere Optionen

Ganz wichtig:Eine ungeschickte Konfiguration der Datei /etc/exports kann gewaltige Sicherheitslöcher aufreißen!

Die Konfigurationsinformationen von /etc/exports wird von den beteiligten Dämonen bereits beim Hochfahren ausgewertet. Deshalb muss das Startup-Skript init.d/nfsserver nach jeder Änderung der Datei /etc/exports ausgeführt werden:

# /sbin/init.d/nfsserver stop
Shutting down NFS server
# /sbin/init.d/nfsserver start
Starting NFS server

Dann erst sind die Änderungen wirksam. Überzeugen kann man sich davon durch den Aufruf von

# /usr/sbin/showmount -e hostname

Noch kurz ein paar Worte zur Clientseite:

Das Einhängen des entfernten Filesystems in das lokale erfolgt auf gewohnte Weise mit dem mount-Kommando:

mount -t nfs remote-host:remote-dir local-dir

Beispiel:

mount -t nfs adamix.mydomain:/home /home

Für das Mounten eines NFS-Filesystems -auch NFS-Volume genannt - gibt es verschiedene Optionen, die entweder in der Kommandozeile, folgend auf die Option -o, oder im Optionsfeld in der /etc/fstab eingetragen werden. Kommandozeileneinträge überschreiben immer entsprechende fstab-Einträge. Die vollständige Liste der Optionen such aus den Manualseiten fstab(5), mount(8) und nfs(5).

Viel Spass mit NFS! Für weitere Fragen zum Thema stehe ich gerne zur Verfügung.

cya,

Marc

jrk
10.07.01, 14:50
hey ho, das was ihr da schreibt sieht ja schonmal sehr interessant aus, werde mir das mal bei gelegenheit durchlesesn!! :)

Aber eine Frage habe ich schon mal im vornherein, weiß jemand wo ich ne aktuelle version vom kernel nfs-server?? ich habe mal gesucht, aber nur alle möglichen packets gefunden, welche aber alle nicht funktionierten... gibt es überhaupt schon knfsd für kernel 2.4.x???

howlcoyote
10.07.01, 15:06
Hallo!
http://www.linuxhq.com/kernel/v2.4/changes/2.4.html

Aktuelle Version unter http://sourceforge.net/projects/nfs/

Aber für Kernel 2.4 habe ich leider nichts finden können. Ich persönlich verwende ja ohnehin keinen Kernel vor dem 10ten Release. Wann kommt 2.4.10?

cya,

Marc

Jaydee
11.07.01, 08:21
Danke für die schnelle und super Hilfe, habs gestern abend mal installiert und funzt prima, so wie ich es wollte ...

Danke Alex