NIS / YP

Network Information System


 

Inhalt

- Was ist NIS? -
- Wie funktioniert NIS? -
- Beteiligte Daemonen -
- Änderung der passwd -
- Master-Installation -
- Client-Installation -
- Sicherheitsaspekte -

 

Erstellt von Oliver Fromme
Copyright © 2002-2006
secnetix GmbH & Co KG

Master-Installation

Zunächst der wichtige Hinweis, daß die Beschreibungen in diesem Abschnitt kein Ersatz für das NIS-Kapitel im FreeBSD-Handbook sein sollen, sondern lediglich eine Ergänzung!

Die Installation des NIS-Masters erfolgt prinzipiell gemäß dem Abschnitt »NIS/YP« im FreeBSD-Handbook, sofern im folgenden nichts anderes angegeben wird.

Bevor man NIS auf einem FreeBSD-Rechner aufsetzt, sollte obiger Abschnitt im Handbook unbedingt durchgelesen werden, falls man NIS noch überhaupt nicht kennt.

Die Maps für passwd, group und ggf. andere Daten werden im Verzeichnis /var/yp aufgesetzt, wie es im Handbook beschrieben ist. Dies ist ziemlich einfach und straight-forward.

Abweichend vom Handbook wird jeder Client zugleich als NIS-Slave eingerichtet und auf sich selbst gebunden (siehe oben). Dadurch wird eine Autarkie erreicht, für den Fall, daß der NIS-Master nicht erreichbar ist.

Auf dem NIS-Master, der zugleich auch Client ist und auf sich selbst binden soll, sind folgende Einträge in /etc/rc.conf vorzunehmen:

   hostname="rumpelstilzchen.domain.com"
   nisdomainname="phantasiename"
   portmap_enable="YES"   # FreeBSD 4
   rpcbind_enable="YES"   # FreeBSD 5+
   nis_server_enable="YES"
   nis_yppasswdd_enable="YES"
   nis_client_enable="YES"
   nis_client_flags="-s -S ${nisdomainname},${hostname}"

Wichtig: Im hostname sollte grundsätzlich der Domainname mit enthalten sein, nicht nur wegen NIS! Verschiedene Dienste können Probleme bereiten oder besondere Konfigurationen erfordern (z.B. sendmail), wenn die Domain nicht im hostname enthalten ist!

Der Portmapper/RPCbind kann möglicherweise ohnehin bereits enabled sein, da er auch für andere RPC-basierte Dienste benötigt wird, z.B. für NFS.

Der nisdomainname muß nicht unbedingt etwas mit der DNS-Domain zu tun haben, sondern kann völlig anders aussehen. Dadurch kann man innerhalb desselben Netzes auch mehrere unterschiedliche NIS-Domains mit getrennten Maps verwenden, wenn man möchte. Um Verwechslungen zu vermeiden, wird empfohlen, als nisdomainame nicht den DNS-Domainname zu verwenden.

Der yppasswdd-Eintrag ist nur dann erforderlich, wenn Daten der passwd-Maps (Passwort, Shell, Fullname/Gecos) von den Clients aus änderbar sein sollen. Der yppasswdd nimmt dann solche Änderungen remote von den Clients entgegen und führt sie auf dem NIS-Master durch. Wenn dagegen Änderungen nur auf dem Master selbst durchgeführt werden können sollen, nicht aber von den Clients aus, dann sollte der yppasswdd auf dem Master nicht enabled werden.

In /var/yp/Makefile sollte man die Zeile »NOPUSH = "True"« auskommentieren, weil sonst der Master keine Pushs durchführt. (Das Makefile ist per Default für ein Setup gedacht, in dem es nur einen Server und keine Slaves gibt.)

In der Datei /var/yp/ypservers (dies ist ebenfalls eine NIS-MAP) sollten alle NIS-Slaves stehen (nicht der NIS-Master selbst).

In der Datei /var/yp/securenets sollten die Adressen aller Netze und/oder Rechner enthalten sein, von denen NIS-Anfragen beantwortet werden sollen. Hier müssen alle Server und Clients enthalten sein (entweder einzeln, oder einfach das ganze Netz), wobei hier auch der NIS-Master selbst sowie localhost (127.0.0.1 / 255.255.255.255) enthalten sein sollten.

Nach obigen Änderungen kann man den NIS-Dienst starten.

Danach sollte man prüfen, ob alles wie erwartet läuft. Dabei sollte man »ganz unten« anfangen, indem man zunächst nachschaut, ob der Portmapper/RPCbind läuft, und ob die NIS/YP-Dienste bei ihm registriert sind.

Die Ausgabe von »rpcinfo -p« sollte auf dem NIS-Master etwa wie folgt aussehen (wenn neben NIS weitere RPC-Dienste laufen -- z.B. NFS --, kommen noch weitere Zeilen hinzu):

     program vers proto   port
       100000    2   tcp    111  portmapper
       100000    2   udp    111  portmapper
       100004    1   udp   1015  ypserv
       100004    2   udp   1015  ypserv
       100004    1   tcp   1023  ypserv
       100004    2   tcp   1023  ypserv
       100009    1   udp   1005  yppasswdd
       100009    1   tcp   1022  yppasswdd
       100007    2   udp   1001  ypbind
       100007    2   tcp   1021  ypbind

Obige Ausgabe stammt von einem FreeBSD-4-System. Bei neueren FreeBSD Versionen erscheint »rpcbind« anstelle von »portmapper«, und weitere RPC-Versionen (2 bis 4) werden aufgeführt. Auch weitere Abweichungen sind möglich; entscheidend ist, daß alle erforderlichen RPC-Dienste in der rechten Spalte ausgegeben werden.

Laut ps-Kommando sollten folgende vier Prozesse auf dem NIS-Master laufen (alle als root und mit PPID 1):

   /usr/sbin/portmap -oder- /usr/sbin/rpcbind
   ypserv
   ypbind -s -S phantasiename,rumpelstilzchen.domain.com
   rpc.yppasswdd        # nur wenn enabled

Die Ausgabe von »ypwhich« sollte dann lauten:

   rumpelstilzchen.domain.com

Zur weiteren Kontrolle kann man das Kommando »ypcat passwd« verwenden. Es sollte den Inhalt der passwd-NIS-Map ausgeben.


 

[Valid XHTML 1.0]