tux

L i n u x - S c h u l e
NIS und NFS

  Homepage | Server | Linux-Clients | Win9x-Clients | WinNT-Clients | Win3.11-Clients | Dos-Clients | Utilities  

Konzept

Vorbemerkung zur Begriffsverwendung: NIS bedeutet "Network Information Server" und ist eine freie, unter der GPL verfügbare, Implementierung des YP-Server Konzeptes von Sun Microsystems. YP steht für "Yellow Pages", also die "Informationsseiten". Da YP ein geschützter Begriff von Sun ist, wird im folgenden ausschließlich der Begriff NIS verwendet. Aus Gründen der Historie findet sich jedoch der Begriff "yp" immer noch in einigen Datei- und Verzeichnisnamen.

Ein NIS-Server stellt in einem Netz aus Unix Rechnern (Linux, Solaris, FreeBSD, Unixware usw.) eine zentrale Instanz für die Anmeldung der Anwender dar. Es wird nur auf einem Rechner, dem NIS-Server, die Benutzerdatenbank gepflegt und allen anderen Rechnern im Netz zur Verfügung gestellt.
Dazu müssen sowohl Server als auch die Clients Mitglieder der gleichen NIS-Domain angehören. Diese ist völlig unabhängig von der Domain, die vom Nameserver verwaltet wird. Weil das automatische Anlegen der Konfigurationsdateien jedoch zwingend einen Namen für die NIS-Domain voraussetzt, wird der Name der Schul-Domain auch als Name der NIS-Domain verwendet.
Lautet die Schul-Domain z.B.: heg.k.nw.schule.de, so lautet die NIS-Domain genauso.
Das NIS Passwortsystem ist mit dem "normalen" Passwortsystem verbunden, wird jedoch in einer anderen Datenbank (unter /var/yp/name_der_nis_domain) geführt. Um diese Datenbank aufzubauen muß in diesem Verzeichnis der Befehl "make" eingegeben werden. Dies passiert alle 15 Minuten automatisch. Es kann also nach einer Passwortänderung bis zu 15 Minuten dauern, bis sich der Anwender wieder einloggen kann. Zu Testzwecken sollte daher der Befehl mit der Hand aufgerufen werden.
Damit jeder Anwender auf jedem Rechner im Netz seine gewohnte Arbeitsumgebung wiederfindet, sollte neben einem NIS auch ein NFS-Server installiert werden, der mindestens das Home Verzeichnis exportiert.

Bei den Beschreibungen beziehe ich mich auf das "Heinz-Erhard-Gymnasium" in Köln mit der ODS Domain heg.k.nw.schule.de . Sie muß natürlich auf die entsprechenden Werte der eigenen Schule angepasst werden. 

Vorbereitungen auf Arktur

Seit der Version 3.0 ist der NIS-Server fest ins System integriert. In der sysadm-shell muß unter "System verwalten, Netzdienste einstellen" sowohl der "NIS-Server" als auch der "NFS-Server" eingeschaltet werden (Aktivieren nicht vergessen!). Nach dem Aktivieren muß dafür gesorgt werden, daß beiden Dienste auch starten. Am einfachsten wechselt man dazu (an der Server Konsole!) ins runlevel 1 und wieder zurück ins runlevel 2:
der Befehl "init 1" wechselt nach runlevel 1 (keine Netzdienste mehr verfügbar)
der Befehl "init 2" wechselt nach runlevel 2 (Netzdienste verfügbar)

Starten mit der Hand

Die Server können bei Bedarf auch mit der Hand gestartet und beendet werden.
Zum Starten gibt man ein:
/sbin/init.d/nfsserver start
/sbin/init.d/ypserv start
/sbin/yppasswdd start (das sind keine Tippfehler, der heißt wirklich so :-)
Für das Beenden der Programme ersetzt man "start"duch "stop".

Konfigurationsdateien

Die Datenbank in /var/yp

Für den Betrieb eines NIS-Servers ist ein Verzeichnis von besonderer Bedeutung: /var/yp
Unterhalb dieses Verzeichnisses gibt es ein Verzeichnis, das den Namen der NIs-Domain trägt, also z.B.: heg.k.nw.schule.de.
Dieses Verzeichnis enthält eine Datenbank mit Anwender- und Gruppennamen, auf die der NIS-Server zurückgreift. Um die Sicherheit nicht zu gefährden, sind in dieser Datenbank nur Anwender mit einer User ID größer 100 abgelegt (also nicht root, bin, news und wie sie alle heißen).

Wird diese Datenbank nicht automatisch angelegt, so kann sie mit der Hand erstellt werden:
/var/yp/make
Der Befehl make arbeitet das Makefile ab und erstellt die Datenbank.

Die Ausgabe von ls -l /var/yp/heg.k.nw.schule.de sollte danach so aussehen:

Arktur://var/yp/heg.k.nw.schule.de # ls -l
total 118
drwxr-xr-x   2 root  root 1024 Sep  6 23:20 .
drwxr-xr-x   4 root  root 1024 Sep  6 23:35 ..
-rw-------   1 root  root 12536 Sep  3 22:35 group.bygid
-rw-------   1 root  root 12554 Sep  3 22:35 group.byname
-rw-------   1 root  root 13209 Sep  6 23:20 netid.byname
-rw-------   1 root  root 12768 Sep  6 23:20 passwd.byname
-rw-------   1 root  root 12761 Sep  6 23:20 passwd.byuid
-rw-------   1 root  root  14149 Sep  3 22:35 rpc.byname
-rw-------   1 root  root  13262 Sep  3 22:35 rpc.bynumber
-rw-------   1 root  root  15905 Sep  3 22:35 services.byname

Die Datei /etc/ypserv.conf
Diese Datei ist nur dann wichtig, wenn Ihre Linux Clients nicht nur unter Linux, sondern auch unter anderen Unices (Solaris, Linuxware etc.) laufen. Auf diesen Fall kann mangels Erfahrung hier nicht eingegangen werden.

Die Installation der Clients

Ich selbst setze auf den Clients SuSE Linux ein. Die Installation gestaltet sich mit Hilfe von YAST sehr einfach.  Unter dem Menuepunkt "Administartion des System, Netzwerk konfigurieren" gibt es den "YP-Client konfigurieren".

yast11.gif
 

yast22.gif

Es sind zu setzen:

YP-DOMAIN = heg.k.nw.schule.de (oder wie ihre NIS-Domain eben heißt)
IP-Adresse des YP-Servers = 192.168.0.1 (die IP-Adresse von Arktur)

Nach dem Verlassen der Maske startet SuSEconfig und ändert eine Datei:
/etc/yp.conf - hier ist die IP Adresse des NIS-Servers hinterlegt

Damit ist die Konfiguration des NIS Clients schon erledigt. Jetzt muß er nur noch gestartet werden. Dazu gibt man ein:
/sbin/init.d/ypclient start
 

Testen

Jetzt sollte man sich auf einer anderen Konsole als ein User einloggen können, der zwar auf Arktur, aber nicht auf dem Client angelegt ist. Kommt eine Meldung wie "NO HOME", dann läuft der NFS-Server noch nicht richtig.

Sicherheitsratschläge

Um mit dem NFS-Server kommunizieren zu können, muß der NIS-Client Zugriff auf die Benutzerdatenbank des NIS-Servers haben. Damit sind auch Angriffe von Hackern möglich. Mit Hilfe des Programms "ypcat"  (es ligt bei SuSE im Verzeichnis /usr/bin) kann diese Datenbank ausgegeben werden (nichts anderes macht der YP-Client).  Im Normalzustand hat jeder Anwender das Recht, diese Datei auszuführen. Damit ist es aber möglich, daß auch ein Schüler sich diese Datenbank ausgeben läßt, in eine Datei speichert und sie als Input für ein Paßwortknackprogramm benutzt. Bei hinreichend schlechten Paßwörtern (wer hat schon "yk3S5n4Q"?) ist das Knacken leider kein Problem. Damit kann er sich als Lehrer einloggen und eventuell Unfug treiben.
Um wenigstens einen kleinen Riegel vorzuschieben, sollte man die Rechte von /usr/bin/ypcat dahingehend ändern, daß nur noch root es ausführen darf: "chmod 700 /usr/bin/ypcat"
Das verhindert natürlich nicht, daß ein pfiffiger Schüler sich die Datei auf Diskette mitbringt und sie doch ausführt :-(
 

Einrichten des NFS Servers

Damit der Anwender auf jedem Client seine gewohnte Arbeitsumgebung wiederfindet, sollte ein NFS Server eingerichtet werden. Ein NFS Server exportiert einen ganzen oder Teile seines Verzeichnisbaumes. Die exportierten Teile können von anderen Rechnern in den eigenen Verzeichnisbaum eingehängen werden. Abgesehen von Verzögerungen, die der Transport der Daten über das Netzwerk mit sich bringt, kann man mit den importierten Verzeichnissen so arbeiten, als seien es lokale (entsprechende Rechte vorausgesetzt). Das funktioniert übrigens auch über das Internet!

Arktur stellt einen NFS Server bereit, der mit der Sysadm-Shell eingeschaltet werden kann. Damit dieser Server anständig läuft, muß die Datei /etc/exports angepasst werden. Hier wird dem nfs-daemon mitgeteilt, welche Verzeichnisse er an wen mit welchen Rechten exportieren darf.
Um die Homeverzeichnisse der Anwender zu exportieren sollte die Datei so aussehen:
-----------------------------------------------------------
# See exports(5) for a description.
# This file contains a list of all directories exported to other computers.
# It is used by rpc.nfsd and rpc.mountd.
/home   *.heg.k.nw.schule.de(rw)

------------------------------------------------------------
Diese Datei MUSS eine Leerzeile am Ende haben, sonst funktioniert sie nicht !

Um auch dem lokalen root Zugriff auf die gemounteten Homes zu geben, muss in der letzten Zeile ergäzt werden:
/home   *.heg.k.nw.schule.de(rw,no_root_squash)

Um auch die Mini-Shell für Schüler benutzen zu können, ist etwas mehr Aufwand nötig. In der /etc/exports ist zu ergänzen:
/usr/lib/ods-server/shells    *.heg.k.nw.schule.de(rw)

Auf dem Client ist das Verzeichnis /usr/lib/ods-server/shells zu erstellen und mit "chmod 755" die Rechte anzupassen.

In der /etc/fstab sind einzutragen:
192.168.0.1:/home    /home    nfs    auto    0    0
192.168.0.1:/usr/lib/ods-server/shells    /usr/lib/ods-server/shells    nfs    auto    0    0

Die Fachlehrer Schell kann auf einem Client leider nicht benutzt werden, da sie auf Dateien im Verzeichnis /etc von Arktur zurückgreift. Über Umwege wäre es sicher möglich, auch diese Funktion zur Verfügung zu stellen, das ist jedoch mit recht hohem Aufwand und einem Sicherheitsrisiko verbunden.

  Nach oben

© Thomas Litsch, zuletzt aktualisiert Fre Jan 18 12:26:03 CET 2002, Email: thomas.litsch@linux-schule.de