Zu allererst muss man sicherstellen, dass der portmap Dämon läuft. Wenn
dem nicht so ist, muss er gestartet werden.
Danach legt man den Namen der NIS-Domäne fest. Es handelt sich dabei
nicht um einen Domänennamen im Sinne von DNS, sondern im Sinne von YPs.
Dieser Name muss aus Sicherheitsgründen anders als der der Maschine sein.
Mit dem Kommando domainname kann man den Domänennamen festlegen.
In unserem Fall benutzen wir es wie folgt:
root@linux #
/bin/domainname bosley
|
Dieses Kommando fixiert den NIS-Domänennamen im RAM-Speicher. Jedoch,
wenn die Serverkonfiguration beendet ist, dann wünscht man sich doch,
dass dies automatisch beim Starten der Maschine erledigt wird. Dafür muss
man eine Zeile in der Netzwerkkonfiguration /etc/sysconfig/network
ändern:
/etc/sysconfig/network
|
NISDOMAIN=bosley
|
oder bei Debian in /etc/defaultdomain
/etc/defaultdomain
|
bosley
|
Sobald das Netzwerk beim nächsten Reboot initialisiert wird, wird auch
automatisch der NIS-Domänenname festgelegt.
Der folgende Abschnitt beschäftigt sich mit dem Starten des ypserv
Dämons. Zuvor muss man ihn mittels der Datei /etc/ypserv.conf
konfigurieren. Dies ist eine ASCII-Datei:
1. Kommentare: Die Zeilen, die mit dem #-Zeichen beginnen.
2. Optionen für den Dämon: Diese Zeile schreibt sich so:
/etc/ypserv.conf
|
option: [yes|no]
|
Mögliche Optionen sind dns (der Server fragt DNS, um die Clients
zu finden, die nicht in den hosts-Maps auftauchen), sunos_kludge
(obsolet) und xfr_check_port (um den Server auf einen Port unter 1024 zu
lenken - yes als Default)
3. Zugangsregeln zum NIS-Server. Das Format ist
host:map:security:mangle[:field]
|
Sie erlauben es festzulegen, wer was sehen darf.
Die Manpage von ypserv.conf führt sehr klar alle Optionen und
Möglichkeiten für Regeln aus.
Jetzt kann man den Server starten:
root@linux #
/etc/init.d/ypserv start
|
Um zu verifizieren, dass alles korrekt läuft:
root@linux #
rpcinfo -u localhost ypserv
program 100004 version 1 ready and waiting program 100004 version 2 ready and waiting
|
Wir haben gesehen, dass es zwei Typen von Servern gibt: Master und
Slaves. Der Master besitzt die NIS-Referenzdatenbank, wovon die Slaves
nur eine Kopie haben. Sie dienen dazu, den Master von zu vielen
Requests zu entlasten. Die Datenbank wird nur auf dem Server gepflegt.
Erst danach wird sie auf die Slaveserver weiterkopiert.
Alles ist jetzt bereit, bis auf die Datenbank. Man muss sie nur noch
erstellen. Und wer erstellen meint, sagt Makefile. Es ist bereits
fertig geschrieben, es müßen lediglich ein paar Variablen angepasst
werden. Es befindet sich im Verzeichnis /var/yp. Es ist ausführlich
und klar kommentiert. Die wichtigste Zeile ist, wo die Maps, die von
NIS benutzt werden sollen, definiert sind. Auf charly sind dies:
all: passwd group hosts rpc services netid protocols mail shadow \
# netgrp publickey
# networks ethers bootparams printcap \
# amd.home auto.master auto.home passwd.adjunct
|
Zu dem, was per Default vorgegeben ist, sollte man auch die Verwaltung
der Shadowpasswörter hinzufügen. Man muss dann aber auch den Wert der
Variable MERGE_PASSWD von true auf false setzen. Sie legt nämlich
fest, dass für die Konstruktion der NIS-Datenbank die Dateien /etc/passwd
und /etc/shadow zu mischen sind.
Noch ein letztes Detail bevor wir die NIS-Datenbank erstellen, die Verwaltung der
Zugriffsrechte. Es gibt zwei Methoden den Zugang zum Server zu
verwalten: entweder macht er alles selbst, oder über tcp_wrapper. Wir
behandeln hier die Sicherheitseinstellungen über ypserv selbst.
Wenn Sie nur die Binaries von ypserv haben, dann sagt Ihnen die Option -v
mit welcher Konfiguration Ihr Binary kompiliert wurde:
root@linux #
ypserv -v
ypserv - NYS YP Server version 1.3.12 (with securenets)
|
Die Datei /etc/ypserv.securenets enthält paarweise Kombinationen von
netmask/network, mit denen Sie den Serverzugang kontrollieren können.
Sie müssen diese Datei unter allen Umständen modifizieren: als Default
enthält sie:
was aller Welt den Zugang auf Ihren NIS-Server erlaubt. Es ist
anzumerken, dass der Datei lediglich die IP-Adressen bekannt sind (nicht
der Namen der Maschinen).
Jetzt können wir die NIS-Datenbank erstellen. Wir benutzen dazu das
Kommando ypinit. Es erstellt die Datenbank in /var/yp und benutzt die
Dateien aus /etc (dies ist der Standard, man kann auch ein anderes
Verzeichnis im Makefile festlegen). Hier sind die Dateien, die die Daten
für die Datenbank liefern (/etc/passwd, /etc/group, /etc/hosts,
/etc/networks, /etc/services, /etc/protocols, /etc/netgroup, /etc/rpc).
Die Option -m gestattet es, den Server mit den Rohdaten zu
initialisieren (-m für master), die Option -s kopiert die Daten von der
Masterdatenbank auf einen Slave (-s für Slave - Sklave auf Englisch).
Auf Charly initialisieren wir unsere Datenbank wie folgt:
root@linux #
ypinit -m
At this point, we have to construct a list of the hosts which will run NIS servers. localhost 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: localhost next host to add: sabrina next host to add: jill next host to add: kelly next host to add: The current list of NIS servers looks like this:
localhost sabrina jill kelly
Is this correct? [y/n: y] y We need some minutes to build the databases... Building /var/yp/bosley/ypservers... Running /var/yp/Makefile... gmake[1]: Entering directory `/var/yp/bosley' 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 netid.byname... Updating protocols.bynumber... Updating protocols.byname... Updating mail.aliases... Updating shadow.byname... # shadow publickey # networks ethers bootparams printcap \ # amd.home auto.master auto.home passwd.adjunct gmake[1]: Leaving directory `/var/yp/bosley'
|
Schon steht die Datenbank. Auf jedem Slaveserver muss man
jetzt das folgende Kommando ausführen:
root@linux #
ypinit -s charly
|
Um sicherzustellen, dass alles korrekt läuft, reicht es aus, einen Server
in einen Client zu verwandeln, egal ob Master oder Slave, und einen
Request abzusetzen. Zum Beispiel auf charly:
ypcat passwd mulder:x:500:100::/home/mulder:/bin/csh
scully:x:501:100::/home/scully:/bin/bash
|
Man kann nebenbei auch feststellen, ob die Shadowpasswörter korrekt
funktionieren.
|