Original in frFrédéric Raynal
fr to deBernhard Spanyar
de to enGuido Socher
en to en Lorne Bailey
en to nl: HJ Heins
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.
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.
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".
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 bosleyDit 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=bosleyDit 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:
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).
host:map:security:mangle[:field]Deze regels bepalen wie welke informatie mag zien.
Nu kunnen we de server starten:
root@charly >> /etc/rc.d/init.d/ypserv startOm 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 onOm te controleren of alles draait, gebruik je:
root@charly >> /usr/sbin/rpcinfo -u localhost ypservVoordat 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.
program 100004 version 1 ready and waiting
program 100004 version 2 ready and waiting
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 shadowBehalve 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.# netgrp publickey
# networks ethers bootparams printcap \
# amd.home auto.master auto.home passwd.adjunct
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 -vHet 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:
ypserv - NYS YP Server version 1.3.9 (with securenets)
0.0.0.0 0.0.0.0Dit 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.0Let 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 -mEn voila, de database is klaar :). Op iedere slaaf server moet het commando ypinit nu uitgevoerd worden: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
iron3Is 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'
root@iron3 >> /usr/lib/yp/ypinit -s charlyOm 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/bashJe kan ook zien dat de schaduw wachtwoorden werken. We hebben een "x" waar het wachtwoord moet staan :)
|
|
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.
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.