Linux als SOHO-Server
für Linux- und Windows-Clients |
Kapitel:
|
Der 'Network Information Service' (NIS) wurde ursprünglich von der Firma 'Sun Microsystems' entwickelt. Es ist auch bekannt unter der Bezeichnung: 'Yellow Pages' oder auch kurz 'YP'. Doch kollidierte der Name: 'YP' mit einem eingetragenen Warenzeichen der 'British Telecom', sodass 'Sun Microsystems' auf den Begriff: 'Network Information Service' auswich. Noch heute beginnen viele NIS-Programme oder Konfigurations-Dateien die mit NIS zu tun haben mit dem Kürzel 'yp...' ('ypbind'; 'ypcat' usw.). Bei NIS handelt es sich um ein RPC-basiertes Client/Server-System. Eine Gruppe von Rechnern greift dabei innerhalb einer NIS-Domäne auf gemeinsame Konfigurationsdateien zu, die in Form einer Datenbank auf dem NIS-Server liegen. Jeder der Rechner in der NIS-Domäne, auf dem ein NIS-Client läuft, kann eine Abfrage an diese Datenbank absetzen, um Benutzerinformationen zu erhalten (z. B. Login-Name, Passwort, User-Groups,...). Ein Systemadministrator wird dadurch in die Lage versetzt, einen NIS-Clients mit minimalem Aufwand einzurichten, sowie Änderungen an der Systemkonfiguration von einem zentralen Ort aus durchzuführen. In folgenden wird die Realisierung eines NIS-Clients/-Server unter Debian-Linux vorgestellt. In Bereich Server wird zwischen Master/Slave-NIS-Server unterschieden. InstallationFür einen NIS-Server bzw. NIS-Client unter Debian wird das Paket: 'nis'
benötigt, ob ein Server oder Client realisiert wird, hängt dann von der
nachfolgenden Konfiguration ab. Weiterhin müssen die 'RPC-Progamme' und der 'Portmapper'
auf den Server/Client vorhanden sein, dieses sollte jedoch bei der
Basis-Installation unter Debian schon vorhanden sein. Das Paket: 'nis' kann unter Debian
am einfachsten mit: 'apt-get install nis' installiert werden, dabei
werden
eventuelle Abhängigkeiten (fehlende Pakete) aufgelöst.
Im Unterschied zum DNS wird beim NIS-Domänennamen zwischen Groß- und Kleinschreibung unterschieden. NIS-ServerBei NIS-Servern wird zwischen Master- bzw. Slave-Servern unterschieden. Der zentrale Server wird NIS-Master genannt, zusätzlich kann es eine beliebige Anzahl von NIS-Slave-Server geben, deren Aufgabe es ist, den NIS-Master zu entlasten und Redundanz zu gewährleisten, falls der NIS-Master nicht erreichbar sein sollte (vergleichbar mit den Primary- und Secondary-Servern bei DNS). Jeder Master und jeder Slave kann zugleich auch NIS-Client sein; was auch der Normalfall ist. Ist ein NIS-Client zugleich auch NIS-Slave-Server so wird das Netzwerk von seinen Anfragen entlastet, auch der lokale Rechnerbetrieb ist im Falle eines Netzausfalls gewährleistet. NIS-Server (Master)Nach Installation des Paketes: 'nis' und Vergabe des NIS-Domännamens ist zunächst die Konfigurationsdatei: '/etc/default/nis' für einen NIS-Master-Server anzupassen:
Die Art des Betriebsart wird in der Zeile mit dem Parameter 'NISSERVER=master' festgelegt. Aus Sicherheitsaspekten sollten weiterhin die Dateien: 'ypserv.securenets' und 'ypserv.conf' angepasst werden:
In der Datei: 'ypserv.securenets' werden Hosts und Netzwerke eingetragen, die einen Zugriff zum Server erhalten sollen. Jede aktive Zeile entspricht dabei einer Freigabe. Jeder Adresse, die nicht in irgendeiner Zeile in dieser Datei angegeben ist, wird der Zugriff verweigert. Wird die Datei auf dem Default belassen, so erhält jeder Zugriff zu dem NIS-Server. Weitere Optionen und Zugriffsberechtigungen können in der Datei: 'ypserv.conf' eingestellt werden.
Auch hier sollten nur Clients aus den eigenen lokalen Netzwerk zugelassen werden. Eine genau Beschreibung der Datei 'ypserv.conf' ist in den Manualseiten zu finden. Bevor der NIS-Server weiter konfiguriert wird, sollte dieser neu gestartet werden. Der Start kann von der Kommandozeile aus mit:
erfolgen. Ob der Server arbeit, kann mit folgenden Kommando festgestellt werden:
Die Ausgabe sollte zeigen, dass der NIS-Server aktiv und sauber eingebunden ist. Als nächsten Schritt ist die NIS-Datenbank (Maps) für den Master zu
initialisieren. NIS arbeitet aus Gründen der Performance nicht mit ASCII-Konfigurationsdateien, sondern mit Maps. Diese Maps werden
über ein 'Makefile', welches sich im Verzeichnis: '/var/yp' befindet generiert. In
den genannten Verzeichnis liegen auch später die erzeugten Maps. Welche Maps erzeugt
werden, kann mit einen Standarteditor im 'Makefile' beeinflusst werden. Unter
Debian ist der default-Makefile schon gut vorbereitet und wird an dieser
Stelle nicht weiter behandelt.
Nach Aufruf des 'ypinit -m' sind die Rechner anzugeben, auf dem NIS als Server laufen soll. Der eigene Rechner wird automatisch angezeigt und eingetragen, weitere NIS-Slaves-Server können angegeben werden. Nach Fertigstellung der Eingabe der NIS-Server ist der Dialog mit 'CTRL-D' abzuschließen. Mit einen bestätigenden 'y' werden die einzelnen Maps dann generiert. Ein weiterer Test, ob der NIS-Server korrekt arbeitet kann mit:
erfolgen, zurückgegeben werden sollte der FQDN des Servers. NIS-Server (Slave)Um einen NIS-Slave-Server zu erstellen, muss auf dem Server ebenfalls das Paket: 'nis', sowie die RPC-Programme und der Portmapper installiert sein (vgl. Installation oben). Die Konfigurationsdatei: '/etc/default/nis' ist nun als 'NISSERVER' ein 'slave' einzutragen:
Bei den Dateien: 'ypserv.securenets' und 'ypserv.conf' ist genau wie beim NIS-Master zu verfahren. Damit künftig beim Master-Server auch die Maps für die Slaves berücksichtigt werden, ist im 'Makefile' des Servers: '/var/yp/Makefile' der Parameter: 'NOPUSH="false"' einzustellen:
Danach sollte nochmals auf dem Master ein: '/usr/lib/yp/ypinit -m' durchgeführt werden. Diesmal sollte der NIS-Slave-Server mit in der Liste eingetragen werden. Zurück auf den NIS-Slave, sollte dieser nun mit:
aktiviert werden. Mit einen:
werden nun die Maps für den Slave erstellt, Die Option '-s' steht für Slave. Damit die Datenbanken zwischen Server und Client immer konsistent sind, sollten noch ein Cron-Jobs auf den Slave-Server eingebaut werden. Dabei ist die Datei: 'nis' im Verzeichnis: '/etc/cron.d' zu erstellen und mit dem Kommando: 'chmod 755' ausführbar zu machen:
Im Skript: 'nis' werden die vorgefertigten Skripte: '/usr/lib/yp/ypxfr_*' aufgerufen, die eine Synchronisation der Maps einleiten. Dabei werden einige Maps, bei denen die Wahrscheinlichkeit größer ist, dass sie sich ändern, auch entsprechen häufiger abgeglichen (z.B.: passwd-Map). Damit sich auf dem NIS-Master (Slave) auch Benutzer anmelden können, sollte dieser auch genau wie ein NIS-Client konfiguriert sein. Siehe die folgende Konfiguration eines reinen NIS-Clients. NIS-ClientGenau wie bei den NIS-Server, muss auf dem NIS-Client das Paket: 'nis', sowie die RPC-Programme und der Portmapper installiert sein (vgl. Installation oben). Als nächstes sollte, auch wenn dieses nicht zwingend notwendig ist, da ein NIS-Client seinen Server auch via 'ypbind -broadcast' finden sollte, die Datei: '/etc/yp.conf' angepasst werden:
Im einfachsten Fall wird einfach die IP-Adressen der NIS-Server eingegeben (z.B. der Master-/Slave-Server). Ein 'ypbind' setzt
gleichzeitig eine Anfrage an alle Server ab. Der Server, der zuerst antwortet, wird
dann zum Server für den Client. Anstatt der IP-Adresse kann auch der
host-Name
eingesetzt werden, sofern eine Namensauflösung gewährleistet ist. Ab jetzt kann der NIS-Client gestartet werden, der Start kann auf der Kommandozeile wie beim Server auch mit:
erfolgen. Als nächstes kann noch in der Datei: '/etc/nsswitch.conf' festgelegt werden, welche Ressourcen und in welcher Reihenfolge diese vom NIS-Client genutzt werden sollen:
Unter Debian ist die Datei: 'nsswitch.conf' schon vorkonfiguriert und kann im Prinzip so belassen werden. Bei den Dateien 'passwd', 'shadow' und 'group' im Verzeichnis: '/etc' ist jeweils ein spezielle Eintrage beginnend mit einen '+'-Zeichen und einer Folge von ':'-Zeichen zu machen (siehe gelbe Markierung). Das bedeutet, dass an dieser Stelle die Daten aus der NIS-Map eingefügt werden. Daneben kann es weiterhin lokale Accounts geben, d.h. es müssen nicht unbedingt alle User per NIS verwaltet werden. Typisches Beispiel sind diverse Pseudo-User, insbesondere der Benutzer: 'root', der lokal sein sollte. Für die Benutzer ist dies alles völlig transparent, d.h. sie merken praktisch nichts davon, ob ihre Daten per NIS kommen oder nicht.
Außerdem ist es möglich, bestimmte Benutzer von einem Import auszunehmen, auf diesen Weise kann man Ausnahmen definieren (grüne Markierung). Bei der obigen Konfiguration wird die komplette NIS-Map importiert, bis auf die beiden Benutzer: 'alpha' und 'bravo'. Das System verhält sich so, als seien diese beiden Benutzer unbekannt. Auch können einzelne Felder im NIS-Eintrag überschrieben werden, z.B. mit den Eintrag: +:*:::::/sbin/nologin Hier wird das Passwort-Feld und das Login-Shell-Feld überschrieben, so dass
die Accounts zwar auf diesem Client vorhanden sind, die Benutzer sich aber nicht
einloggen können (kein gültiges Passwort und keine Login-Shell). Dieses könnte z.B. für einen Mail-Server oder File-Server nützlich sein. AnmerkungenDa die NIS-Informationen auf dem Netz nicht besonders gesichert sind, eignet sich NIS nicht für Netze mit besonderen Sicherheitsanforderungen. Auf dem NIS-Client sollte in der Datei '/etc/host.conf' ein Hinweis auf NIS aufgenommen werden:
Wenn ein neuer Benutzer auf dem NIS-System eingetragen wird, so sollte
dieses mit dem Kommando: 'adduser' auf dem Master-Server geschehen, danach
müssen die Maps mittels '/usr/lib/yp/ypinit -m'
neu generiert werden. Das Löschen eines Users sollte mit dem Kommando: 'delluser'
ebenfalls auf dem Master geschehen. Weitere Tests, um die korrekte Arbeitsweise des NIS-Services festzustellen, können mit folgenden Kommandos erfolgen:
Weitere Infos
letzte Änderung: 11. März 2009 |
Copyright © 2004 Norbert Eusterholz |