http://petition.eurolinux.org/







Tux

Wissenssammlung

fuer Linux, U.n.i.x, Netzwerke ...

Fachliche Korrektheit ist nicht gewaehrleistet, Vollstaendigkeit eh net..

.


Network Information Service (NIS) fuer Solaris

...

..

.


Autor: Thomas Ulrich Nockmann (August ©2001)



Der von Sun entwickelte NIS-Namensservice verwaltet in einem lokalen Netz Dateien zentral; Rechner unterschiedlicher Hersteller koennen im U.n.i.x-Bereich mit NIS ueber gemeinsame Verwaltungsdateien konfiguriert werden.

Sicherheitsanforderungen zu verwirklichen ist unter NIS das Hauptproblem, da Passwoerter immer unverschluesselt ueber dass Netz uebertragen werden.


Seit Solaris 7 ist nicht nur die Clientfunktionalitaet fest in das OS integriert, sondern auch die Serverfunktionalitaet, die in den Softwarepaketen SUNWypr und SUNWypu enthalten ist. Das Paket SUNWsprot ...


NIS-Domain

Client und Server unter NIS


NIS-Master-Server

Aufsetzen eines NIS-Master-Servers

Erweitern eines NIS-Master-Servers

Veraendern der verwalteten Informationen


NIS-Slave-Server

Aufsetzen eines NIS-Slave-Servers

Nachtraegliches Aufsetzen eines NIS-Slave-Server

Update eines NIS-Slave_Servers


NIS-Client

Aufsetzen von NIS-Clients

Anbindung der NIS-Clients


NIS-Datenbankdateien


NIS-Kommandos


Befehle zur Erzeugung der NIS-Datenbank

...

ypinit

make


makedbm

...



Befehle zur NIS-Administration

...

yppush


ypxfr


yppoll


ypset


...


Befehle zur Anwendung von NIS


ypwhich


ypcat


ypmatch

yppasswd


...


NIS-Hintergrundprozesse

...




...


NIS-Konfigurationsdateien


...


...


Ein- und Ausschalten von NIS










NIS-Domain


Rechner werden zu Verwaltungsgruppen, also zu Domains zusammengeschlossen und zentral ueber einen Server verwaltet.

Dazu ist es notwendig, jeden Rechner mittels domainname-Befehl (# domainname <Name der Domain>) einer Domain zuzuordnen. Statisch geschieht dieses durch einen Eintrag in der zu erstellenden Datei /etc/defaultdomain (#domainname > /etc/defaultdomain).


Es koennen mehrere NIS-Domains in einem Netz exestieren.

<Anfang>


Client und Server unter NIS


Der NIS-Namensservice basiert auf dem Client-Server-Prinzip. Eine Domain kann ueber mehrere Subnetze aufgebaut sein, wobei der NIS-Master an der Schnittstelle zwischen den Subnetzen plaziert seien sollte und ein jedes Subnetz einen Slave-Server besitzen sollte.

<Anfang>


NIS-Master-Server


In jeder Domain verwaltet ein Master-Server zentral die Quellen der Dateien, die als Textdateien (ASCII) zur Verfuegung stehen muessen, aus der die NIS-Datenbank aufgebaut ist.

Bei Aenderungen des Inhalts der NIS-Datenbank erneuert der NIS-Master-Server die komplette Map und verschickt diese an seine etwaigen Slave-Server. Der NIS-Master-Server ist zugleich sein eigener Client und verwaltet sich selbst.

<Anfang>



Aufsetzen eines NIS-Master-Servers


Bei dem Aufbau einer neuen NIS-Domain muessen als erstes auf dem zukuenftigem NIS-Master-Server die Softwarepakete SUNWypr und SUNWypu, die die NIS-Serverfunktionen enthalten, sowie das Paket SUNWsprot installiert werden. Letzteres gehoert zur Solaris Entwicklungsumgebung und beinhaltet das zum Aufsetzen notwendige Programm make (/usr/ccs/bin/make).


Als naechstes werden die Quelldateien, die in die NIS-Datenbank uebernommen werden sollen und die in der Datei /var/yp/Makefile unter der Zielmenge all aufgelistet sind, gesammelt, in noch zu erstellenden, ebenfalls in der Datei /var/yp/Makefile aufgefuehrte, Verzeichnisse kopiert und ihren Anforderungen entsprechend editiert.


Von besonderer Bedeutung sind die folgenden im Makefile angegebenen Verzeichnisse:

- das in der Variablen DIR festgelegte Domainverzeichnis

- das in der Variablen PWDIR festgelegte Passwortverzeichnis; in dieses Verzeichnis werden die

angepassten Dateien /etc/passwd und /etc/shadow kopiert, aus denen eine passwd-Datei generiert wird.

Sie beinhalten lediglich die Eintraege der ueber NIS verwalteten Benutzer.

Es ist ausdruecklich darauf zu achten, dass der Benutzer root entfernt wurde.

- das in der Variablen ALIASES festgelegte Emailalias-Verzeichnis


Ferner wurde im, in der Variablen DIR festgelegten Verzeichnis ($(DIR)/), aus Sicherheitsgruenden ein weiteres Verzeichnis security angelegt,

in das die Dateien auth.attr, exec.attr, prof.attr, user.attr und audit.user kopiert wurden und die Pfaddefinitionen fuer diese Dateien im

gesamten Makefile angepasst. Beispiel: $(DIR)/auth.attr --> $(DIR)/security/auth.attr


Weiter ist der Name der Domain festzulegen.

# domainname <Name der Domain>

und diese statisch durch einen Eintrag in der zu erzeugenden Datei /etc/defaultdomain festzusetzen.

# domainname > /etc/defaultdomain


Schliesslich werden, falls noch nicht geschehen, o.g. Anpassungen im Makefile vorgenommen.


Sind obrige Vorbereitungen abgeschlossen, wird aus dem Verzeichnis /var/yp das Programm /usr/ccs/bin/make aufgerufen, welches anhand der im Makefile beschriebenen Regeln eine leere NIS-Datenbank erzeugt und ein Verzeichnis /var/yp/<Name der Domain> anlegt, indem sich o.g. Datenbank, bzw. Dateien derselbigen befinden.


Jetzt folgt das eigendliche Initialisieren des NIS-Master-Server durch die Eingabe von:

# ypinit -m


Der Name des lokalen Rechners wird automatisch als NIS-Master-Server gesetzt, weitere NIS-Slave-Server koennen angegeben werden,

wobei auf die Reihenfolge, welche fuer das Anbinden der Clients (Binding) wichtig ist, der NIS-Slave-Server zu achten ist.

Die Hostnamen der NIS-Slave-Server muessen in der lokalen /etc/hosts des NIS-Master-Servers stehen.


Um die Quelldateien in die NIS-Datenbankdateien einzulesen, wird von dem Makefile der makedbm-Befehl angewandt.


Nach erfolgter Ueberpruefung und g.g.f. Editierung von /etc/nsswitch.conf werden die NIS-Hintergrundprozesse durch Aufruf des

Skripts /usr/lib/netsvc/yp/ypstart gestartet.

Folgende NIS-Hintergrundprozesse wurden gestartet:

/usr/lib/netsvc/yp/rpc.ypupdated

/usr/lib/netsvc/yp/ypbind

/usr/lib/netsvc/yp/ypxfrd

/usr/lib/netsvc/yp/ypserv

/usr/lib/netsvc/yp/rpc.yppasswdd


Zum Schluss sollte ein Neustart des Systems durchgefuehrt werden, um sicherzustellen, dass keine Konfigurationsangaben vergessen wurden und das System als NIS-Master-Server und NIS-Client ordnungsgemaessdort ein entsprechender Eintrag fuer die all-Variable gesetzt werden und g.g.f. ein Eintrag als Abschnitt fuer die Umsetzung der Datei vorgenomm en werden, sofern dieser nicht standardmaessig vorhanden ist.

Anschliessend ist die entsprechende Quelldatei in das DIR-Verzeichnis zu kopieren.

Vorhandenen NIS-Slave-Servern ist zuvor mit dem makedbm-Befehl eine Leerdatei zuzufuegen, da diese kein Update auf sich nicht in ihren NIS-Datenbanken vorhandenen Dateien durchfuehren koennen.

Anschliessend kann auf dem NIS-Master-Server mit dem Befehl make <Name der Map> die Datei in seine NIS-Datenbank uebernommen werden und an alle NIS-Slave-Server , die auf dem NIS-Master-Server in der Datei /var/yp/<Name der Domain>/ypservers aufgelistet sind, durch das automatische yppush weitergeleitet werden.

Beispiel:

NIS-Slave-Server: #makedbm /dev/null /var/yp/<Name der Domain>/timezone.byname


NIS-Master-Server: # make timezone

-A--> updated timezone

pushed timezone

<Anfang>


Veraendern der verwalteten Informationen


Um den Inhalt einer NIS-Datenbankdatei zu aendern, muss zuerst auf dem Server die Quelldatei editiert werden und dann aus dem Verzeichnis /var/yp heraus der Befehl /usr/ccs/bin/make aufgerufen werden, der durch das automatische Ausfuehren des push-Befehls den NIS-Datenbankbestand der NIS-Slave-Server aktuallisiert.


<Anfang>


NIS-Slave-Server


Ein NIS-Slave-Server entlastet den NIS-Master-Server und haelt im Falle eines Ausfalls des NIS-Master-Servers den Netzwerkbetrieb aufrecht; Veraenderungen der von NIS verwalteten Daten sind in diesem Fall jedoch nicht moeglich.

Clients koennen sich gleichberechtigt sowohl an den NIS-Master-Server als auch an einen NIS-Slave-Server wenden.

Ist der Client zugleich auch NIS-Slave-Server, wird das Netzwerk von seinen Anfragen entlastet.

Der lokale Rechnerbetrieb ist im Falle eines totalen Netzwerkausfalls gewaehrleistet.


<Anfang>


Aufsetzen eines NIS-Slave-Servers


Auf dem NIS-Slave-Server wird ebenfalls die NIS-Serversoftware in Form der Pakete SUNWypr und SUMWypu installiert. Eine Installation des Paketes SUNWsprot, wie im Falle eines NIS-Master-Servers is fuer NIS-Zwecke nicht erforderlich.

Die Datei /var/yp/Makefile ist umzubennenen und darf auf einem NIS-Slave-Server auf keinen Fall abgearbeitet werden (make).


Dem zukuenfigem NIS-Slave-Server ist ebenfalls eine Domain zuzuordnen, analog der Vorgehensweise des NIS-Master-Servers.

# domainname <Name der Domain>

und diese statisch durch einen Eintrag in der zu erzeugenden Datei /etc/defaultdomain festzusetzen.

# domainname >/etc/defaultdomain

und es folgt das eigendliche Initialisieren des NIS-Slave-Server durch die Eingabe von:

# ypinit -c <--E- Namen der NIS-Servers angeben bei Aufforderung

Jetzt wird der NIS-Client-Hintergrundprozess ypbind durch den Aufruf (des Skriptes <--???? )

# /usr/lib/netsvc/yp/ypstart

-A--> Starting NIS(YP server) services: ypbind done.gestartet.

Nun ist der Rechner Mitglied der Domain und kann von seinem NIS-Master-Server die NIS-Maps abfragen.


Als naechstes wird der NIS-Client zum NIS-Slave-Server umkonfiguriert, bzw. um diesen Dienst erweitert durch die Eingabe von:

# ypinit -s <Name des NIS-Master-Servers>

Der Name des NIS-Master-Servers ist als Parameter mit anzugeben, da von diesem u.a. alle verwalteten NIS-Maps heruntergeladen werden.


Abschliessend wird der NIS-Client-Prozess ypbind wieder gestoppt und NIS erneut gestartet, wobei diesmal neben den NIS-Client-Prozess ypbind zusaetzlich der NIS-Serverdienst ypserv gestartet wird

# /usr/lib/netsvc/yp/ypstop

...

# /usr/lib/netsvc/yp/ypstart

-A--> Starting NIS(YP server) services: ypserv ypbind done.


Nachtraegliches Aufsetzen eines NIS-Slave-Servers


Fuer das nachtraegliche Aufsetzen eines NIS-Slave-Servers gibt es zwei unterschiedliche Methoden:


1. Der NIS-Master-Server wird erneut durch das Aufrufen von ypinit -m konfiguriert, wobei jetzt jedoch der neue NIS-Slave-Server mit

angegeben wird, was bedeutet, dass die alte Domain entfernt wird und durch eine neue, identische, jedoch um den neuen NIS-Slave-Server

erweiterte Domain ersetzt wird.


2. Die Liste der NIS-Server (ypservers) wird manuell um den Namen des zukuenftigen NIS-Slave-Servers erweitert.

Dafuer muss zuerst die im NIS-Datenbankformat vorliegende Datei /var/yp/<Name der Domain>/ypservers in ein fuer Menschen lesbares

Dateiformat (ASCII) umgewandelt, anschliessend editiert und wieder in das NIS-Datenbankformat umgewandelt werden.

Dies geschieht durch eine Umlenkung der Standardausgabe des makedbm-Befehls, angewand auf ypservers, in eine temporaere Datei:

# makedbm -u ypservers > /tmp/nisserverliste.txt


# vi /tmp/nisserverliste.txt <--E- Name des neuen NIS-Slave-Servers


# makedbm /tmp/nisserverliste.txt ypservers


Anschliessend den neuen NIS-Slave-Server wie oben beschrieben aufsetzen.


Zur Kontrolle gibt die Standardausgabe des makedbm-Befehls, wiederum angewand auf ypservers, die neue und um den neuen NIS-Slave-Server erweiterte Liste aus:

-A--> YP_LAST_MODIFIES ...

               YP_MASTER_NAME xyz

               neuer NIS-Slave-Server

               alter NIS-Slave-Server


<Anfang>


Update eines NIS-Slave-Servers


Mit Hilfe des yppush-Befehls auf Seiten des NIS-Master-Servers, werden alle NIS-Slave-Server automatisch mit den veraenderten NIS-Datenbankdateien aktualisiert, wobei auf den NIS-Slave-Servern der jeweilige ypserv-Prozess kontaktiert wird, der wiederum den ypxfr-Befehl absetzt. Dieser meldet sich beim ypxfrd-Hintergrundprozess des NIS-Master-Servers und erhaelt nun die veraenderte(n) Datei(en) in seienen NIS-Datenbank unter /var/yp/<Name der Domain>/ .

Dieser Vorgang wird ebenfalls beim Erzeugen einer veraenderten oder neuen NIS-Map vom Makefile automatisch initiiert.


Der ypxfr-Befehl kann auch manuell gestarte werden und findet damit in cron-Jobs seine Anwendung, um z.B. zu einem bestimmten Zeitpunkt, regelmaessig seinen NIS-Datenbankbestand mit dem seien NIS-Master-Servers abzugleichen; dieses ist dann sinnvoll, wenn der NIS-Slave-Server zum Zeitpunkt einer Aenderung des NIS-Datenbestandes nicht online war.


<Anfang>


NIS-Client


Jeder Rechner einer NIS-Domain ist zuminst auch ein NIS-Client.


<Anfang>


Aufsetzen von NIS-Clients


Nachdem die Rechner, die als NIS-Master- und NIS-Client-Server fungieren sollen, erfolgreich installiert wurden, werden nun die einzelnen NIS-Clients konfiguriert.


Dazu wird als erstes ebenfalls die NIS-Domain festgelegt:


# domainname <Name der Domain>

und diese statisch durch einen Eintrag in der zu erzeugenden Datei /etc/defaultdomain festzusetzen.

# domainname > /etc/defaultdomain

und es folgt das eigendliche Initialisieren des NIS-Clients durch die Eingabe von:


# ypinit -c <--E- Namen der NIS-Servers angeben bei Aufforderung


Nach Anpassung der /etc/nsswitch.conf wird der NIS-Client-Prozess ypbind entweder durch einen Neustart des Rechners oder Aufruf von

# /usr/lib/netsvc/yp/ypstart

                                                -A--> Starting NIS(YP server) services: ypbind done.

gestartet.


<Anfang>


Anbindung der NIS-Clients


Bei der ersten Anfrage eines NIS-Clients bindet dieser sich an einen aktiven NIS-Server und erhaellt nunmehr alle Antworten von diesem. Um zu unterscheiden, welche Dateien lokal und welche per NIS verwaltet werden, konsultiert er seine /etc/nsswitch.conf. Faellt dieser angebundene NIS-Server aus, bindet sich der NIS-Client nach wenigen Minuten an den naechsten zur Verfuegung stehenden NIS-Server.


<Anfang>


NIS-Datenbankdateien


Eine ASCII-Datei, die in das NIS-Datenbankformat konvertiert wurde, wird als (NIS-)Map oder auch Table bezeichnet und auf den NIS-Master- und NIS-Client-Servern unter /var/yp/<Name der Domain>/ abgelegt.


Die NIS-Maps bestehen aus zwei Dateitypen:

1.Indexdateien fuer den Zugriff mit dem Suffix .dir

2.Datendateien, die die eigentlichen Daten beinhalten, mit der Endung .pag


Weiter wird fuer jede NIS-Map eine Datei mit Suffix .time angelegt, die jedoch keinen Inhalt haben und als Zeitstempel zum Abgleich von Veraenderungen am NIS-Datenbankbestand dienen.


Dateiname

Mapname

Bedeutung

passwd



group



hosts



ethers



networks



rpc



services



protokolls



netgroup



bootparams



aliases



publickey



netid



passwd.adjunct



group.adjunct



netmasks



timezone



auto.master


Automounter

auto.home

auto.home

Automounter



Eine Besonderheit nimmt die Datei netgroups ein, da sie durchaus lokal unter /etc/netgroups vorhanden seien kann, jedoch lokal keine Bedeutung hat und nur in Zusammenhang mit Namensdiensten Anwendung findet.

Sie fasst Benutzer, Rechnen oder Domains zu einer Gruppe zusammen, unter der sie, bzw. deren Mitglieder von Programmen wie beispielsweise share oder mount, Konfigurationsdateien wie .rhosts und hosts.equiv, angesprochen werden kann.


Beispiel: #cat /etc/netgroups

Gruppe1 (host,user,domain)

Gruppe2 ( - ,user,domain)

Gruppe3 ( - , - ,domain)




<Anfang>


NIS-Kommandos


NIS-Kommandos sind in den Verzeichnissen /usr/lib/netsvc/yp, /usr/sbin und /usr/bin zu finden.

Inhalt der Verzeichnisse:

/usr/lib/netsvc/yp

   rpc.yppasswdd

   rpc.ypupdated

   ypbind

    

yppush

   ypserv

   ypstart

   ypstop

   ypxfr

   ypxfr_1perday

   ypxfr_1perhour

   ypxfr_2perday

   ypxfrd



/usr/sbin

   ypalias

    ypinit

    yppoll

    ypset



/usr/bin

    ypcat

    ypmatch

    yppasswd

    ypwhich

Die NIS-Kommandos in den Verzeichnissen /usr/lib/netsvc/yp und /usr/sbin sind administrative Kommandos und duerfen von normalen Benutzern (staff, users ...) nicht ausgefuehrt werden.



In dem Verzeichnis /usr/bin sind mit Ausnahme von yppasswd informative NIS-Kommandos angesiedelt, die von der Gruppe others und somit von normalen Benutzern ausgefuehrt werden koennen.


Befehle zur Erzeugung der NIS-Datenbank


ypinit


Dieses Skript ermoeglicht das Aufsetzen von NIS-Master-Server (ypinit -m), NIS-Slave-Server (ypinit -s) und NIS-Client (ypinit -c)



make


Diese Befehl gehoert zur Solaris-Entwicklungsumgebung, ist im Paket SUNWsprot enthalten und ruft das Skript Makefile auf.

Nach jeder Veraenderung der Quelldateien wird aus dem Verzeichnis /var/yp heraus der Befehl /usr/ccs/bin/make abgesetzt und damit durch ein automatisches yppush die NIS-Slave-Server upgedatet.

Die PATH-Variable solte um den Pfad /usr/ccs/bin ergenzt werden ( PATH=$PATH:/usr/ccs/bin).



makedbm


wird von dem Skript Makefile aufgerufen und erzeugt auf dem NIS-Master-Server anhand der im Makefile beschriebenen Regeln, aus den Quelldateien, welche im Ascii-Format vorliegen muessen, die NIS-Datenbankdateien, die sogenannten NIS-Maps oder NIS-Tables. Es werden je Quelldateie zwei Dateien mit den Endungen .dir und .pag erzeugt, wobei die .dir-Dateien die Indexe fuer den Zugriff auf die .pag-Dateien, die eigentlichen Daten, enthalten.




Befehle zur NIS-Administration


yppush


wird ebenfalls von dem Skript Makefile verwendet und aktuallisiert alle NIS-Slave-Server, die in der Datei /var/yp/<Name der Domain>ypservers aufgelistet sind, nach Veraenderung der Quelldateien auf dem NIS-Master-Server.



ypxfr


Wird auf Seiten des NIS-Master-Servers der yppush-Befehl gestartet, kontaktiert dieser auf den NIS-Slave-Servern die jeweiligen ypserv-Prozesse, die wiederum ihre ypxfr-Befehle absetzten. Diese melden sich beim ypxfrd-Hintergrundprozess des NIS-Master-Servers und erhalten nun die veraenderte(n) Datei(en) in ihren NIS-Datenbank unter /var/yp/<Name der Domain>/ .

Dieser Vorgang wird ebenfalls beim Erzeugen einer veraenderten oder neuen NIS-Map vom Makefile automatisch initiiert.


Der ypxfr-Befehl kann auch manuell gestartet werden und findet damit in cron-Jobs seine Anwendung, um z.B. zu einem bestimmten Zeitpunkt, regelmaessig seinen NIS-Datenbankbestand mit dem seien NIS-Master-Servers abzugleichen; dieses ist dann sinnvoll, wenn der NIS-Slave-Server zum Zeitpunkt einer Aenderung des NIS-Datenbestandes nicht online war.


yppoll


liefert Informationen, welcher Rechner welche NIS-Map verwaltet und in welcher Version sie vorliegt.


ypset


ermoeglicht die manuelle Anbindung eines NIS-Clients an einen NIS-Server (NIS-Master- oder NIS-Slave-Server), nachdem der NIS-Client-Prozess ypbind zuvor mit der Option -ypset bzw.-ypsetme gestartet wurde.

Ihm koennen sowohl Namen als auch IP-Adressen von moeglichen NIS-Servern uebergeben werden.




Befehle zur Anwendung von NIS



ypwhich   [Optionen]   <Name des Rechners>


zeigt dem NIS-Client-Prozess an, an welchen NIS-Server (NIS-Master- oder NIS-Slave-Server) er angebunden ist.



ypcat   [Optionen]   <Name der Datei>


gibt den Inhalt einer NIS-Dqatenbankdatei, also einen NIS-Map aus.



ypmatch   [Optionen]   <Suchbegriff>   <Name der NIS-Map>



yppasswd



<Anfang>



NIS-Hintergrundprozesse


ypserv


Der Hinergrundprozess oder auch Daemon ypserv wird beim Systemstart durch das Skript /etc/init.d/rpc oder durch den ypstart-Befehl gestartet und antwortet auf NIS-Master- und NIS-Slave-Servern die Anfragen von NIS-Clients.



ypxfrd


Daemon, der auf dem NIS-Master-Server der Ansprechpartner der ypxfr-Befehle auf Seiten der NIS-Slave-Servers ist. und der Aktualisierung des NIS-Datenbankbestands derselbigen dient.



ypbind


Der ypbind-Prozess ist der NIS-Client-Prozess und laeuft auf allen Rechnern einer NIS-Domain, also auf NIS-Master-, NIS-Slave-Servern und NIS-Clients.

Er verwirklicht die Anbindung des NIS-Client-Prozesses an den ypserc-Prozess eines NIS-Servers.



yppasswdd


...


ypupdated


...



<Anfang>




NIS-Konfigurationsdateien


/var/yp/Makefile


...


/var/yp/securenets


...


/var/yp/nicknames


...


<Anfang>


Ein- und Ausschalten von NIS



<Anfang>














Köln LUG
-
die kölner
Linux
und
U.n.i.x
Gruppe

CopyMiddle © 2007 by
Köln LUG - die kölner Linux und U.n.i.x Gruppe