[LinuxFocus-icon]
Home  |  Map  |  Index  |  Zoek

Nieuws | Archieven | Links | Over LF
Dit document is beschikbaar in: English  Castellano  Deutsch  Francais  Nederlands  Portugues  Turkce  

convert to palmConvert to GutenPalm
or to PalmDoc

[Frederic]
door Frédéric Raynal
<pappy(at)users.sourceforge.net>

Over de auteur:
Frédéric Raynal legt op dit moment de laatste hand aan zijn laatste these aan het INRIA over computer wetenschappen. Ik luister vaak naar het laatste album van "16 Horse Power" (heel leuk, maar ook krachtig) en "The for carnation", een beetje kil maar toch heel goed.

Vertaald naar het Nederlands door:
HJ Heins <hjh(at)passys.nl>

Inhoud:

 

Yellow Pages 3: De server kant

[Illustration]

Kort:

In dit artikel geven we een stap voor stap installatie van een NIS server. We zullen kijken naar de benodigde software, configuratie bestanden en de creatie van een database.

 

Inleiding

We hebben in het voorgaande artikel gezien hoe je een NIS client moet configureren. We hebben ook de veiligheidsrisico's van het draaien van deze service benadrukt. Het is de vraag of we het echt een veiligheidsrisico moeten noemen. De ontwikkelaars van NIS dachten aan een gesloten LAN of een netwerk dat door middel van een firewall gescheiden was toen ze NIS ontwierpen en ze zaten niet echt in over veiligheid.

In dit artikel zullen we zien hoe de server kant geconfigureerd moet worden en we zullen een paar tips geven over de manieren waarop je NIS kan gebruiken.

 

NIS en NYS

Er bestaan twee varianten van NIS, het "traditionele" NIS en NYS - maar de meeste mensen noemen beide varianten NIS. Voor een systeembeheerder is er nouwelijks verschil tussen de twee varianten aangezien bij beiden de server en de client op dezelfde manier geconfigureerd moeten worden. De nieuwe versie, NYS ondersteunt dingen als schaduw wachtwoorden.

In dit artikel zullen we praten over deze meer recente versie van ypserv. We raden aan een versie nieuwer dan 1.3.2 te gebruiken, omdat we het gebruik van schaduw wachtwoorden willen ondersteunen. Met andere woorden: we praten eigenlijk over NYS en niet over het "traditionele" NIS, ook al zullen we het in het gehele artikel NIS noemen.

 

De NIS server

Er zijn twee server: ypserv en yps. Volgens de auteur van de NIS-HOWTO is er geen echt verschil tussen de twee, maar yps wordt niet langer onderhouden door z'n auteur, dus we zullen alleen kijken naar ypserv.

Allereerst zullen we de benodigde stappen voor de installatie van de server uitleggen. In dit artikel werken we met een gastheer die "charly" heet. Het NIS domein is "bosley" en de slave servers zijn "iron1", "iron2" en "iron3".

 

Installatie

Als eerste stap moet je er zeker van zijn dat de portmap daemon draait. Zoniet, dan moet je deze nu starten.

Hierna moet je beslissen hoe je je NIS domein gaat noemen. Dit is is geen NIS domein, maar de naam voor een YP gebied. Om veiligheidsredenen moet deze naam anders zijn dan de naam van de NIS server.

Het domein wordt ingesteld met het commando domainname :-) In ons geval is dat:

root@charly >> /bin/domainname bosley
Dit commando stelt de NIS domein naam alleen in in het RAM. Om dit permanent te maken moet je de volgende regel invoegen in /etc/sysconfig/network:
NISDOMAIN=bosley
Dit zorgt ervoor dat de NIS domein naam automatisch ingesteld is bij de volgende keer dat je de machine opstart.

Voordat we de ypserv daemon kunnen starten moeten we deze configureren door het bestand /etc/ypserv.conf bij te werken. Dit is een ASCII bestand met de volgende syntax:

  1. Opmerkingen: dit zijn regels die beginnen met een #-teken.
  2. Opties voor de daemon: De syntax ziet eruit zoals hieronder staat.
    option: [yes|no]
    Mogelijke opties zijn dns, de server zal de DNS vragen om de clienten te vinden die niet in de hosts-maps, staan, sunos_kludge, overbodig en xfr_check_port om een poort onder 1024 voor de server (default is yes).
  3. Extra regels: Het format hiervoor is:
    host:map:security:mangle[:field]
    Deze regels bepalen wie welke informatie mag zien.
De man-page van ypserv.conf geeft een duidelijke uitleg voor alle opties en mogelijkheden.

Nu kunnen we de server starten:

root@charly >> /etc/rc.d/init.d/ypserv start
Om de server automatische te laten draaien bij het opstarten, moet je de rc.d bestanden aanpassen, of je kan met Redhat het volgende commando geven:
root@charly >> /sbin/chkconfig --level 345 ypserv on
Om te controleren of alles draait, gebruik je:
root@charly >> /usr/sbin/rpcinfo -u localhost ypserv
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting
Voordat we de details gaan bespreken, moeten we onthouden wat we in het eerste artikel hebben geleerd. Er zijn 2 typen servers: master en slave. De slave servers hebben alleen een copie van de database van de master server. Deze servers vullen de master server aan wanneer deze niet snel genoeg antwoord op de aanvraag van een client of wanneer de master uitvalt. De database hoeft alleen via de master server te worden beheerd. Hij wordt gecopieerd naar de slave servers.

Nu is alles klaar... behalve de database. We moeten deze nu eerst genereren. Genereren betekent een Makefile gebruiken ;-] Het Makefile is "voorgebakken" dus we hoeven alleen maar een paar regels te veranderen. Het Makefile staat in /var/yp en is helder becommentarieerd. De belangrijkste regel is de regel waarin de directories worden gedefinieerd. Op de gastheer charly is dat:

all: passwd group hosts rpc services netid protocols mail shadow
# netgrp publickey
# networks ethers bootparams printcap \
# amd.home auto.master auto.home passwd.adjunct
Behalve de default, moet je eigenlijk ook schaduw wachtwoorden instellen. Om dat te doen, moet je "passwd" en "shadow" toevoegen aan de lijst van bestanden en de waarde van de variabele MERGE_PASSWD op true zetten. MERGE_PASSWD bepaal of de bestanden /etc/passwd en /etc/shadow zijn gekoppeld.

Een laatste detail voordat we de server starten: Toegangsrechten. Er zijn twee methoden om de toegang te controleren. Het kan met behulp van ypserv's eigen methoden of met behulp van tcp_wrapper. We zullen het nog gaan hebben over ypserv's eigen beveiligingsmethoden.

Wanneer je alleen de binaries van ypserv hebt, dan geeft de optie -v de configuratie opties waarmee ypserv gecompileerd is. We hebben de optie "securenets" nodig om de toegangscontrole mechanismen van ypserv's te gebruiken.

root@charly >> /usr/sbin/ypserv -v
ypserv - NYS YP Server version 1.3.9 (with securenets)
Het bestand /var/yp/securenets bevat paren van netmask/network nummmers die we kunnen gebruiken om de toegangsrechten op de server te controleren. De default instelling is hier:
0.0.0.0          0.0.0.0
Dit staat de gehele wereld toegang tot de server toe. Dat moeten we veranderen. Om connecties van alle gastheren binnen het 131.234.223.0 netwerk toe te staan, zou je het volgende kunnen schrijven:
255.255.255.0      131.234.223.0
Let er op dat je alleen IP adressen kan hebben in dit bestand. Het is niet mogelijk om gastheernamen te gebruiken.

Nu kunnen we de NIS database maken met behulp van het commando ypinit. Standaard zal hij (gedefinieerd in Makefile) de bestanden uit /etc lezen en schrijven naar /var/yp. De bestanden die onze database in zullen gaan zijn /etc/passwd, /etc/group, /etc/hosts, /etc/networks, /etc/services, /etc/protocols, /etc/netgroup, /etc/rpc.

De optie -m laat je de server initialiseren met raw gegevens (-m voor master), de optie -s copieert de master database naar een slaaf (-s als slaaf).

Op Charly initialiseren we onze database as volgt:

root@charly >> /usr/lib/yp/ypinit -m

Nu moeten we een lijst van de gastheren maken waarop NIS draait
servers.  localhost staat op de lijst van NIS server gastheren.  Ga door met toevoegen
de namen voor de andere gastheren, een per regel.  Als je de lijst af hebt
, type een <control D>.
        next host to add:  localhost
        next host to add:  iron1
        next host to add:  iron2
        next host to add:  iron3
        next host to add:
De huidige lijst van NIS servers ziet er als volgt uit:

localhost
iron1
iron2
iron3

Is dit correct?  [y/n: y]  y
We hebben enkele  minuten nodig om de database te bouwen...
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'

En voila, de database is klaar :). Op iedere slaaf server moet het commando ypinit nu uitgevoerd worden:
root@iron3 >> /usr/lib/yp/ypinit -s charly
Om het systeem te testen moet je een van de servers als client gebruiken en daarvandaan een aanvraag doen:
root@iron3 >> ypcat passwd mulder:x:500:100::/home/mulder:/bin/csh scully:x:501:100::/home/scully:/bin/bash
Je kan ook zien dat de schaduw wachtwoorden werken. We hebben een "x" waar het wachtwoord moet staan :)
Installatie van een NIS-Server
  1. Initialiseer portmap
  2. Definieer de NIS-Domein Naam
  3. Maak de configuratiebestanden voor de NIS serevr klaar: /etc/ypserv.conf
  4. Start de ypserv daemon
  5. Definieer de directories in /var/yp/Makefile
  6. Stel de toegangsrechten van de NIS server in /var/yp/securenets
  7. Maak de NIS master database met behulp van het ypinit -m commando
  8. Maak de NIS slaaf database met behulp van het ypinit -s <master server> commando
 

Het updaten van ed NIS database

Zodra een van de directories veranderd is, of om een nieuwe server toe te voegen, moet je de NIS database updaten.

Om een nieuwe slaaf server toe te voegen, moet je het commando
/usr/lib/yp/ypinit -s charly
op de nieuwe server draaien en diens naam toevoegen aan het bestand /var/yp/ypservers op de master server.

Als je een nieuwe gebruiker toevoegt, dan zullen er verschillende directories veranderen (passwd, shadow, alias, etc ...).

Nadat de directories veranderd zijn, hoef je alleen nog maar make in /var/yp/ op de master server te draaien. Dit zorgt ervoor dat de database ge-update wordt en de gegevens (met behulp van yppush) naar de slaven worden gestuurd.

Het programma rpc.ypxfrd kan de stransacties tussen de master en slaaf versnellen door ze alleen van de master te copieren in plaats van ze opnieuw op te bouwen op de slaaf. rpc.ypxfrd zou moeten worden gestart op hetzelfde moment als ypserv en alleen maar op de master. Dit programma is alleen nodig als je zeer grote directories hebt.

 

Een paar tips

Iedereen weet dat NIS niet beveiligd is. De services zijn echter zeer bruikbaar zodra je je netwerk vergroot tot meer dan een gastheer. Daarom moet je een paar extra veiligheidsmaatregelen nemen.

Met zoals er wachtwoorden zijn die eenvoudig te raden zijn, zijn er voorspelbare NIS domein namen. Te verwachten kandidaten zijn de namen van de machines en het is mogelijk om het NIS domein te testen met ypwhich.

De NIS domein naam is op verschillene plaatsen terug te vinden, voroal in de directory /var/yp en diens subdirectories. Ze zouden niet leesbaar moeten zijn voor anderen dan de root en ze zouden niet geexproteerd moeten mogen worden met behulp van NFS.

Het gebruik van tcp_wrapper als toevoeging op /var/yp/securenets om het portmap proces te controleren heeft nog nooit iemand slechter gemaakt.

Het is ook voordelig om geen standaard route op de NIS server te hebben en alleen gebruik te maken van statische routing naar clienten en de slaaf servers. Op die manier kan de server niet antwoorden op aanvragen die van onbekende gastheren komen.

Firewall regels op de router zijn een zeer effectieve maatregel om de toegang tot de NIS server te controleren.

Deze veiligheidsmaatregelen verbeteren de veiligheid van NIS zelf niet, maar ze vormen een omheining eromheen. Ondanks deze problemen is NIS een zeer waardevol gereedschap.

 

Documentatie

  1. NIS-HOWTO : zoals alle HOWTOs is dit een zeer goede en uitgebreide
  2. http://www.suse.de/~kukuk/ : Hij werkt aan NIS en NIS+. Zijn pagina bevat verschillende FAQs
  3. De Network Administrators' Guide die gevonden kan worden op http://www.linuxdoc.org/LDP/nag


 

Talkback voor dit artikel

Elk artikel heeft zijn eigen talkback pagina. Daar kan je commentaar geven of commentaar van anderen lezen:
 talkback pagina 

Site onderhouden door het LinuxFocus editors team
© Frédéric Raynal, FDL
LinuxFocus.org

Klik hier om een fout te melden of commentaar te geven
Vertaling info:
fr --> -- : Frédéric Raynal <pappy(at)users.sourceforge.net>
fr --> de: Bernhard Spanyar <bspa(at)gmx.de>
de --> en: Guido Socher (homepage)
en --> en: Lorne Bailey <sherm_pbody(at)yahoo.com>
en --> nl: HJ Heins <hjh(at)passys.nl>

2002-06-08, generated by lfparser version 2.28