Network Information Service (NIS)

Debian Swirl

http://www.black-board.net
Es ist nicht gestattet dieses Tutorial losgelöst von dem Namen BlackBoard und der URL zu verbreiten.


Das Tutorial befindet sich noch in der Entwicklung. Wenn du mitwirken möchtest, melde dich hier.
Dies ist ein Aufruf - wenn du Ahnung hast, mach mit!



1. Was ist NIS?


Der Network Information Service (NIS) ist ursprünglich eine Entwicklung von SUN, besser bekannt als Yellow Pages oder kurz YP.

Will man sich als User in einem Netzwerk auf jedem Rechner einloggen, müsste dieser User auf jedem Rechner existieren. Dies stellt an sich noch kein Problem dar, denkt man aber an große Netzwerke, oder einfach daran, dass man sein Passwort ändern möchte, nimmt die Pflege der Konfigurationsdateien viel Zeit in Anspruch. Die Lösung wäre eine zentrale Datenbank in der die gemeinsamen Konfigurationsdateien der verschiedenen Computer zusammengefasst werden und anschließend an diese verteilt werden. Genau diese Aufgabe erledigt NIS.


2. Installation


Für die Nutzung von NIS (sowohl Client als auch Server) sind neben dem Paket nis auch portmap und einige andere Pakete notwendig. Am besten installiert man NIS durch:

apt-get install nis

da hier alle Abhängigkeiten automatisch berücksichtigt werden.

Im Anschluss an die Installation wird NIS automatisch gestartet, leider gibt es hier einen kleinen Fehler da die Datei /etc/yp.conf nicht existiert (darum kümmern wir uns an anderer Stelle).


3. Einrichtung eines NIS-Master-Servers


Als erstes sollte man sicher stellen, dass der portmap Dämon läuft:

ps aux | grep portmap


Sollte dies nicht der Fall sein, startet man ihn mit:

/etc/init.d/portmap start

Danach sollten die Clients in die /etc/hosts eingetragen werden, dabei ist darauf zu achten, dass der Master-Server als erstes aufgeführt wird und erst danach alle anderen.

Anschließend trägt man den Namen der NIS-Domain in die Datei /etc/defaultdomain ein. Um sicherzugehen, dass unser Server der Master innerhalb der Domain ist, sollte in /etc/default/nis folgender Eintrag stehen:

# Are we a NIS server and if so what kind (values: false, slave, master)
NISSERVER=master


Nun kann die NIS-Datenbank in /var/yp erstellt werden. Das Kommando ypinit erstellt die Datenbank unter Nutzung der Dateien aus /etc. Die Option '-m'  gestattet es dem Server die Rohdaten zu initialisieren.

Achtung: hosts sind hier weitere Server


/usr/lib/yp/ypinit -m

At this point, we have to construct a list of the hosts which will run NIS
servers. thor is in the list of NIS server hosts. Please continue to add
the names for the other hosts, one per line. When you are done with the
list, type a <control D>.
next host to add: thor
next host to add:
The current list of NIS servers looks like this:

thor

Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/asgard/ypservers...
Running /var/yp/Makefile...
make[1]: Entering directory `/var/yp/asgard'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating netgroup...
Updating netgroup.byhost...
Updating netgroup.byuser...
Updating shadow.byname...
make[1]: Leaving directory `/var/yp/asgard'

thor has been set up as a NIS master server.

Now you can run ypinit -s thor on all slave server.

Um sicherzustellen das alles läuft genügt es einen Server in einen Client zu verwandeln und einen request abzusetzen.


4. Einrichtung eines NIS-Clients


Die einzige Voraussetzung für einen Client ist der Start des ypbind-Dämons. ypbind etabliert die Verbindung zwischen Client und Server. Diese Verbindung wird sichtbar durch eine Datei im Verzeichnis /var/yp/binding, welche normalerweise die Form domain.version hat. Die einzige zur Zeit unterstützte Version ist Version 2. Wenn also die NIS-Domäne alpha heißt, muss die Datei alpha.2 heißen.

Um den kleinen Fehler aus der Installation zu beheben erstellt man die Datei /etc/yp.conf. Diese kann folgende Einträge enthalten:

  • domain nisdomain server hostname: Client sucht nach hostname für Domäne nisdomain
  • domain nisdomain broadcast: Client fragt per Broadcast nach der Domäne nisdomain
  • ypserver hostname: Client spricht direkt hostname für die Domäne an. Hier muss die IP des Servers in der lokalen /etc/hosts stehen.

Es muss sicher gestellt sein, dass der portmap Dämon läuft:

ps aux | grep portmap

Sollte dies nicht der Fall sein, startet man ihn mit:

/etc/init.d/portmap start

An dieser Stelle ist der NIS-Client fertig und man kann als root ypbind starten. Um zu testen ob ypbind korrekt arbeitet nutzt man folgendes Kommando:


rpcinfo -p localhost

Program Vers Proto Port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100007 2 udp 787 ypbind
100007 2 tcp 790 ypbind

oder:

rpcinfo -u localhost ypbind

Program 100007 Version 2 ist bereit und wartet

Nun wo ypbind korrekt arbeitet kann man den Server ansprechen, z.B.:

ypcat passwd.byname


5. YP-Tools


Dieser Abschnitt beschreibt kurz einige Programme aus dem Tool-Paket. (Hinweis: diese Liste ist nicht vollständig)

  • domainname zeigt oder ändert den Domainnamen
  • ypcat zeigt die Werte der Schlüssel im NIS-Verzeichnis
  • ypmatch zeigt die Werte eines oder mehrerer Schlüssel im NIS-Verzeichnis
  • ypset spezifiziert mit welchem NIS-Server ypbind Verbindung aufnehmen soll
  • yptest testet die NIS-Konfiguration
  • ypwhich gibt den Namen des NIS-Servers zurück

Verfasser


Letzte Aktualisierung 22.06.2006 von HazardEvil