|
Ein NIS-Server verwaltet Benutzer- und Host-Informationen, die Clients in derselben NIS-Domäne abfragen können. Der Administrator erhält durch NIS eine Zentrale für die Benutzer- und Host-Verwaltung. Anwender greifen von einem beliebigen NIS-Client auf diese Datenbank zu, unter anderem um sich zu authentifizieren (siehe Kasten "NIS-Client konfigurieren"). Dazu lässt der Administrator einfach die Dateien »/etc/passwd« und »/etc/group« von NIS verwalten. Auch mit Shadow-Passwörtern kommt der NIS-Server zurecht, sofern eine Glibc installiert ist. Ältere Bibliotheken wie Libc5 verweigern die Zusammenarbeit. NIS-Server konfigurieren
Bevor es an die eigentliche Konfiguration des Servers geht, wählt der Administrator den Namen der neuen NIS-Domäne. Er sollte nicht den Namen der DNS-Domäne verwenden, da Einbrecher diesen oft als zuallererst ausprobieren. In diesem Artikel heißt die NIS-Domäne »example«. Sie ist mit der Anweisung »NISDOMAIN=example« in die Datei »/etc /sysconfig/network« einzutragen. Danach erst geht es an die eigentliche Arbeit: die Konfiguration des Makefiles, das im Verzeichnis »/var/yp« liegt.
Die meisten Einträge muss der Verwalter nicht anpassen. Mit der Anweisung »MINUID« legt er fest, ab welcher User-ID NIS die Benutzer verwaltet. Die Option »MINGID« bestimmt entsprechend die Gruppen. »MERGEPASSWD« ist in diesem Beispiel zwingend auf »false« zu setzen, da NIS keine Passwörter verifizieren soll. Im letzten Schritt ist mit Hilfe von »all: passwd group« anzugeben, dass NIS die Benutzerkonten und Gruppen verwalten soll. NIS kann zwar mehr, das ist für die Beispielkonfiguration aber nicht relevant.
NIS arbeitet nicht mit den eigentlichen Ascii-Dateien »/etc/passwd« und »/etc/group«, sondern generiert mit Hilfe des Tools »makedbm« GDBM-Dateien, die im NIS-Jargon Maps heißen. Makedbm erzeugt aus jeder Datei zwei NIS-Maps, die nach verschiedenen Kriterien sortiert sind. Die Passwd-Map ordnet es zum Beispiel nach Login-Namen (»passwd. byname«) und nach User-IDs (»passwd. byuid«). Die NIS-Maps befinden sich nach der Initialisierung des Servers mit dem Kommando
/usr/lib/yp/ypinit -m
in einem Ordner unterhalb von »/var/yp«. Der Ordner trägt den Namen der NIS-Domäne. Die NIS-Datenbank enthält lediglich jene Benutzer, die zu diesem Zeitpunkt vorhanden sind. Kommen später weitere User oder Gruppen hinzu, müssen sie in die NIS-Maps einfließen. Das erreicht der Administrator mit dem Kommando »make -C /var/yp«.
Der NIS-Server nimmt seine Arbeit auf, sobald die Dienste »portmap« und »ypserv« laufen. Den Ablauf stellt der Administrator in den verschiendenen Runlevel-Verzeichnissen unter »/etc/init.d/« ein. Redundanz und Sicherheit
Bei einem zentralisierten Verzeichnisdienst wie NIS ist es immer geschickt, einen zusätzlichen Server aufzusetzen. Auf diese Weise erreicht der Verwalter, dass sich die Benutzer weiterhin am Netzwerk anmelden können, selbst wenn der primäre NIS-Server ausfällt. Der sekundäre Server lässt sich einfach aufsetzen, beim »ypinit«-Kommando ist die IP-Adresse des Master-Servers anzugeben:
/usr/lib/yp/ypinit -s Master-Server-IP
Fortan bezieht der zweite Rechner alle Maps vom Master-Server. Vorher sind allerdings noch zwei Sachen zu erledigen: Der sekundäre Server muss als NIS-Client arbeiten und die Datei »/var/yp/ypservers« auf dem Master muss auf diesen verweisen.
Außerdem sollte sich der Administrator Gedanken über die Sicherheit seiner NIS-Sever machen. Jeder NIS-Client kann sich jede von NIS verwaltete Datei anzeigen lassen. Ein einfacher Aufruf von »ypcap passwd« genügt, schon präsentiert der Server die Passwd-Map. Passwd ist hier ein Alias für »passwd.byname« und »passwd.byuid«; weitere Aliase befinden sich in der Datei »/var/yp/nicknames«.
Zwar erhält der Client nicht die verschlüsselten Passwörter der User, da dies die Anweisung »MERGEPASSWD=false« im Makefile verhindert. Was der Server zeigt, reicht jedoch aus, um bereits umfangreiche Informationen über Benutzernamen zu sammeln. Daher sollte der Administrator den Zugriff auf die NIS-Maps unbedingt einschränken.
Speziell für diese Aufgabe gibt es die Datei »/var/yp/securenets« (Listing 2). Die zugelassen Netzwerke finden hier einen Platz. Auf IP-Ebene ist mit entsprechenden Paketfilterregeln eingeschränkter Zugriff auf den Portmapper zu erreichen. Eine Netfilter-Regel auf der Firewall könnte beispielsweise so aussehen:
iptables -t filter -A FORWARD -p udp -dport 111 -s 192.168.0.0/24 -d 192.168.0.100 -j ACCEPT
Dabei entspricht 192.168.0.0/24 dem zugelassenen Netzwerk und auf 192.168.0.100 residiert der Portmapper. Connection Tracking[7] und eine Anpassung der Standardpolicy für diese Chain wird hier vorausgesetzt. Allerdings ist daran zu denken, dass jetzt auch alle anderen Dienste, die vom Portmapper abhängig sind, mit einer Zugangsbeschränkung belegt sind. Gleiches gilt, wenn der TCP-Wrapper den Portmapper schützt.
|