diff --git a/nl_NL.ISO8859-1/books/handbook/book.sgml b/nl_NL.ISO8859-1/books/handbook/book.sgml
index be7a8d7e5e..7dbde5dca3 100644
--- a/nl_NL.ISO8859-1/books/handbook/book.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/book.sgml
@@ -1,360 +1,360 @@
%books.ent;
%chapters;
%txtfiles;
%pgpkeys;
]>
&os; handboekThe &os; Dutch Documentation ProjectJuni 2004199519961997199819992000200120022003200420052006200720082009The &os; Dutch Documentation Project
&bookinfo.legalnotice;
&tm-attrib.freebsd;
&tm-attrib.3com;
&tm-attrib.3ware;
&tm-attrib.arm;
&tm-attrib.adaptec;
&tm-attrib.adobe;
&tm-attrib.apple;
&tm-attrib.corel;
&tm-attrib.creative;
&tm-attrib.cvsup;
&tm-attrib.heidelberger;
&tm-attrib.ibm;
&tm-attrib.ieee;
&tm-attrib.intel;
&tm-attrib.intuit;
&tm-attrib.linux;
&tm-attrib.lsilogic;
&tm-attrib.m-systems;
&tm-attrib.macromedia;
&tm-attrib.microsoft;
&tm-attrib.netscape;
&tm-attrib.nexthop;
&tm-attrib.opengroup;
&tm-attrib.oracle;
&tm-attrib.powerquest;
&tm-attrib.realnetworks;
&tm-attrib.redhat;
&tm-attrib.sap;
&tm-attrib.sun;
&tm-attrib.symantec;
&tm-attrib.themathworks;
&tm-attrib.thomson;
&tm-attrib.usrobotics;
&tm-attrib.vmware;
&tm-attrib.waterloomaple;
&tm-attrib.wolframresearch;
&tm-attrib.xfree86;
&tm-attrib.xiph;
&tm-attrib.general;
Welkom bij &os;! Dit handboek behandelt de installatie en
het dagelijks gebruik van
&os; &rel2.current;-RELEASE en
&os; &rel.current;-RELEASE. Aan deze
handleiding wordt nog gewerkt, en is het resultaat van het werk
van veel mensen. Veel hoofdstukken of paragrafen bestaan nog
niet en wat bestaat dient soms nog bijgewerkt te worden. Als
de lezer mee wil helpen aan dit project kan een mail gestuurd
worden naar de &a.doc;. De meest recente versie van dit
document is te vinden op de &os; website. Eerdere
versies van dit handboek zijn te vinden op . Het
kan ook gedownload worden in veel verschillende formaten en
compressiewijzen van de &os; FTP
server of een van de vele mirrorsites. Een gedrukt
exemplaar van het handboek is te koop bij de &os; Mall (Engels).
Het handboek kan ook doorzocht
worden.
&chap.preface;
BeginnenDit deel van het &os; handboek is voor gebruikers en
beheerders die net beginnen met &os;. Deze
hoofdstukken:Geven een inleiding in &os;;Lichten het installatieproces toe;Bespreken de &unix; basisbegrippen en grondslag;Tonen hoe de vele aanvullende applicaties
voor &os; geïnstalleerd kunnen worden;Introduceren X, het venstersysteem van &unix;
en gaan uitvoerig in op hoe een bureaubladomgeving wordt
ingesteld die een gebruiker helpt productiever te
zijn.Er is geprobeerd het aantal vooruitwijzingen tot een
minimum te beperken zodat het handboek van begin tot einde
gelezen kan worden zonder bladeren.Algemene takenNa de inleiding gaat dit deel van het &os; handboek over
een aantal vaak gebruikte mogelijkheden van &os;. De volgende
hoofdstukken:Geven een inleiding in populaire en handige desktop
toepassingen: browsers, productieviteitsgereedschappen,
documentviewers, etc;Geven een inleiding in een aantal
multimediatoepassingen die in &os; beschikbaar zijn;Geven uitleg over het proces waarmee een aangepaste
kernel voor &os; kan worden gemaakt om extra
functionaliteit aan een systeen toe te voegen;Beschrijven gedetailleerd het afdruksysteem, zowel voor
met een desktop verbonden als met het netwerk verbinden
printers;Beschrijven hoe applicaties voor &linux; op &os; kunnen
draaien.In een aantal van de hoofdstukken wordt voorkennis
aangeraden. Dit staat vermeld in de inleiding van ieder
hoofdstuk.SysteembeheerDe verdere hoofdstukken van het &os; handboek beslaan alle
aspecten van het &os; systeembeheer. Ieder hoofdstuk begint
met een omschrijving van wat de leerstof in een hoofdstuk is en
wat de verwachte voorkennis is.De hoofdstukken zijn ook ontworpen om gelezen te worden als
de specifieke informatie nodig is. Ze hoeven niet in een
bepaalde volgorde gelezen te worden en ze hoeven ook niet
gelezen te zijn voordat een gebruiker met &os; aan de slag
kan.NetwerkcommunicatieAls het om servers gaat die hoge prestaties moeten leveren,
wordt wereldwijd vaak &os; toegepast. De hoofdstukken in dit
deel behandelen:Seriëe communicatie;PPP en PPP over Ethernet;E-mail;Netwerkdiensten;Firewalls;Overig gevorderd netwerken.Deze hoofdstukken zijn geschreven om gelezen te worden als
de informatie nodig is. Ze hoeven niet allemaal in een
bepaalde volgorde gelezen te worden. Ze hoeven ook niet
allemaal gelezen te worden om &os; in een netwerkomgeving in te
zetten.Appendix
&chap.colophon;
diff --git a/nl_NL.ISO8859-1/books/handbook/boot/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/boot/chapter.sgml
index 1af54c3c4d..bff14b6b16 100644
--- a/nl_NL.ISO8859-1/books/handbook/boot/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/boot/chapter.sgml
@@ -1,1107 +1,1107 @@
ErikRadderVertaald door Het &os; opstartprocesOverzichtbootingbootstrapHet proces van het starten van de computer en het laden van
het besturingssysteem wordt het bootstrapproces
of simpelweg booten genoemd. Het &os;
opstartproces levert een grote mate van flexibiliteit doordat
gewijzigd kan worden wat er gebeurt als het systeem start en
geeft de mogelijkheid om te kiezen uit verschillende
geïnstalleerde besturingssystemen op dezelfde computer of
zelfs verschillende versies van hetzelfde besturingssysteem of
geïnstalleerde kernel.Dit hoofdstuk geeft gedetailleerde informatie over
instellingen die gebruikt kunnen worden en hoe het &os;
opstartproces veranderd kan worden. Dit omvat alles wat er
gebeurt totdat de &os; kernel wordt geladen, gezocht heeft naar
apparaten en &man.init.8; start. Dit vindt plaats als tijdens
het booten de tekstkleur verandert van helder wit naar
grijs.Na het lezen van dit hoofdstuk weet de lezer:Wat de onderdelen zijn van het &os; bootstrap-systeem en
hoe zij onderling communiceren;De opties die meegegeven kunnen worden aan de componenten
in de bootstrap om het proces te sturen;Meer over &man.device.hints.5;;Alleen voor x86Dit hoofdstuk beschrijft alleen het opstartproces van &os;
dat draait op een Intel x86 systeem.Het bootprobleemHet aanzetten van een computer en het starten van het
besturingssysteem zorgt voor een interessant dilemma. Vast staat
dat een computer niet weet wat hij moet doen totdat het
besturingssysteem gestart is. Daar valt ook het starten van
programma's op schijf onder. Dus als een computer geen programma
van schijf kan starten zonder besturingssysteem en het
besturingssysteem staat op schijf, hoe wordt het
besturingssysteem dan gestart?Dit is een gelijksoortig probleem als dat in het boek
De avonturen van Baron von
Münchausen. Iemand is in een put gevallen en
heeft zichzelf eruit gehaald door zijn laarsriempjes (bootstraps)
vast te pakken en zich op te trekken. In het begin van het
computertijdperk is de term bootstrap
gegeven aan het mechanisme dat het besturingssysteem laadt.
Later werd dit afgekort tot booten.BIOSBasis Input/Output SysteemBIOSOp x86 machines is het Basis Input/Output Systeem (BIOS)
verantwoordelijk voor het laden van het besturingssysteem. Om
dit te doen zoekt het BIOS op de harde schijf naar het Master
Boot Record (MBR), dat op een vaste plek op de schijf staat. Het
BIOS heeft voldoende kennis om het MBR te starten en gaat er
vanuit dat de MBR de rest van de taken uitvoert die nodig zijn om
het besturingssysteem te kunnen laden, mogelijk met hulp van het
BIOS.Master Boot Record (MBR)Boot ManagerBoot LoaderAan de code binnen de MBR wordt meestal gerefereerd als een
bootmanager, in het bijzonder als die
interactie heeft met een gebruiker. In dit geval heeft de
bootmanager meestal meer code in de eerste
track van een schijf binnen het
bestandssysteem van een besturingssysteem. Een bootmanager wordt
soms ook boot loader genoemd, maar &os;
gebruikt die term voor een later stadium van het starten.
Populaire bootmanagers zijn onder andere
boot0 (ook bekend als
Boot Easy, de standaard &os;
bootmanager), Grub,
GAG en
LILO (alleen
boot0 past binnen de MBR.)Als er maar één besturingssysteem en een schijf
geïnstalleerd is, voldoet een standaard PC MBR. Dit MBR
zoekt naar de eerste opstartbare (alias actieve) slice op schijf
en start de code op deze slice om de rest van het
besturingssysteem te laden. De MBR die standaard door
&man.fdisk.8; wordt geïnstalleerd is zo'n MBR. Die is
gebaseerd op /boot/mbr.Indien er meerdere besturingssystemen op schijven staan, kan
er een andere bootmanager geïnstalleerd worden, een die een
lijst toont met verschillende besturingssystemen en de
mogelijkheid geeft om er één te kiezen dat
opgestart moet worden. In de volgende paragrafen worden er twee
beschreven.Het resterende deel van het &os; bootstrap-systeem is
verdeeld in drie fases. De eerste fase wordt gestart door het
MBR, dat net voldoende informatie heeft om de computer in een
bepaalde toestand te zetten en de tweede fase te starten. De
tweede fase kan net iets meer doen voordat hij de derde fase
start. De derde fase voltooit het laden van het
besturingssysteem. Dit proces is verdeeld in drie fases omdat de
PC-standaarden grenzen stellen aan de grootte van programma's die
gedraaid kunnen worden in de eerste twee fases van dit proces.
Door deze taken aan elkaar te koppelen krijgt &os; een flexibeler
laadgedeelte.kernelinitDaarna wordt de kernel gestart en begint met het zoeken naar
en initialiseren van apparaten. Zodra het kernel-opstartproces
klaar is, geeft de kernel de controle over aan het
gebruikerproces &man.init.8;, dat controleert of de schijven een
bruikbare status hebben. Dan start &man.init.8; de instellingen
op gebruikersniveau die de bestandssystemen mount, de
netwerkkaarten instelt voor communicatie met het netwerk en in
het algemeen worden de processen gestart die moeten draaien op
een &os; systeem bij het opstarten.De bootmanager en opstartstadiaBoot ManagerDe bootmanagerMaster Boot Record (MBR)De code in de MBR of bootmanager wordt soms ook wel
stage zero van het opstartproces genoemd.
In dit onderdeel worden twee eerder genoemde bootmanagers
beschreven: boot0 en
LILO.De boot0 bootmanager:De MBR die standaard door de &os; installer of
&man.boot0cfg.8; wordt geïnstalleerd is gebaseerd op
/boot/boot0. Het programma
boot0 is erg eenvoudig, omdat
MBR maar 446 bytes lang mag zijn vanwege de
slicetabel en de 0x55AA identificatie aan
het einde van de MBR. Als de &os; MBR is geïnstalleerd
en er staan andere besturingssystemen op een harde schijf, dan
is bij het opstarten een scherm te zien dat er ongeveer zo
uitziet:boot0 schermafbeeldingF1 DOS
F2 &os;
F3 Linux
F4 ??
F5 Drive 1
Default: F2Andere besturingssystemen, &windows; in het bijzonder,
staan er om bekend dat zij bestaande MBRs overschrijven met die
van zichzelf. Als dit is gebeurd of als het bestaande MBR
vervangen moet worden door het &os; MBR:&prompt.root; fdisk -B -b /boot/boot0 apparaatWaar apparaat het apparaat is
waar de computer van boot, zoals ad0
voor de eerste IDE-schijf ad2 voor de
eerste IDE-schijf op de tweede IDE-controller,
da0 voor de eerste SCSI-schijf,
enzovoort. Als het wenselijk is een aangepaste instelling te
gebruiken voor de MBR, dan kan &man.boot0cfg.8; gebruikt
worden.De LILO bootmanager:Start, om deze bootmanager te installeren zodat er ook
&os; mee gestart kan worden, eerst &linux; en voeg het
volgende toe aan het bestaande instellingenbestand
/etc/lilo.conf:other=/dev/hdXY
table=/dev/hdX
loader=/boot/chain.b
label=&os;Geef in de bovenstaande regels de primaire partitie en
schijf van &os; op met &linux; instellingen, waarbij
X vervangen wordt door de &linux;
schijfletter en Y door het primaire
partitienummer van &linux;. Wijzig bij gebruik van een
SCSI-schijf
/dev/hd in iets als
/dev/sd. De regel
kan achterwege blijven
als de besturingssystemen op dezelfde schijf staan. Voer
daarna /sbin/lilo -v uit om de
wijzigingen vast te leggen. Controleer het vastleggen door
controle van de schermberichten.Fase één /boot/boot1 en
fase twee /boot/boot2Conceptueel zijn de eerste en tweede fase onderdeel van
hetzelfde programma op hetzelfde stukje schijf. Door
ruimtebeperkingen zijn ze in twee stukken gesplitst. Ze worden
echter altijd samen geïnstalleerd. Ze worden
gekopieerd uit het gecombineerde bestand
/boot/boot door het installatieprogramma
of bsdlabel (zie
verderop).Ze staan buiten bestandssystemen in de eerste track van de
opstartslice, beginnend bij de eerste sector. Dit is waar
boot0 en iedere andere
bootmanager een programma verwacht om door te gaan met het
opstartproces. Het aantal gebruikte sectoren kan eenvoudig
bepaald worden uit de grootte van
/boot/boot.boot1 is erg simpel omdat dit slechts
512 bytes groot kan zijn en net genoeg weet over het &os;
bsdlabel, dat informatie bevat over de
slice om boot2 te vinden en te
starten.boot2 is iets verfijnder en begrijpt
het &os; bestandssysteem genoeg om er bestanden op te vinden
en geeft een simpele interface om de kernel of loader te kiezen
die gestart moet worden.boot2 start meestal de loader, doordat deze veel
slimmer is en gebruikersvriendelijke opstartinstellingen heeft.
Voorheen was het zijn taak direct de kernel te starten.boot2 schermafbeelding>> &os;/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:Als ooit eens de geïnstalleerde
boot1 en boot2
vervangen moeten worden kan dat met &man.bsdlabel.8;:&prompt.root; bsdlabel -B schijfsliceIn het voorbeeld hierboven is
schijfslice de schijf en slice
waarvan opgestart wordt, zoals ad0s1
voor de eerste slice op de eerste IDE-schijf.Gevaarlijk toegewijde modusAls alleen een schijfnaam als
ad0 gebruikt wordt in
&man.bsdlabel.8; wordt er een een gevaarlijk toegewijde
schijf zonder slices gemaakt. Dit is niet aan te raden en
daarom wordt aangeraden voor het uivoeren van
&man.bsdlabel.8; de commandoregel nog een keer te
controleren voordat er op Return wordt
gedrukt.Fase drie, /boot/loaderboot-loaderDe loader is de laatse fase van de drietraps-bootstrap en
deze bevindt zich op het bestandssysteem, meestal als
/boot/loader.De loader is bedoeld als een gebruikersvriendelijke manier
voor de instelling, door gebruik te maken van een makkelijke
commandoverzameling, gesteund door een krachtige vertaler met
een wat complexere commandoverzameling.Loader programmaverloopTijdens de start zoekt de loader naar een console en
schijven en kijkt van welke schijf er opgestart wordt.
Variabelen worden hiernaar gezet en er wordt een vertaler
gestart zodat gebruikercommando's interactief of via een
script kunnen worden doorgegeven.loaderloader-configurationDan leest de loader /boot/loader.rc,
die dan standaard
/boot/defaults/loader.conf leest. Deze
plaatst redelijke standaarden in variabelen en leest
/boot/loader.conf voor lokale
wijzigingen op deze variabelen.
loader.rc reageert op deze variabelen
door de geselecteerde modules en kernel te laden.Als laatste wordt standaard door de loader 10 seconden
gewacht op toetsinvoer en als dit niet wordt onderbroken
laadt loader de kernel. Als het wel wordt onderbroken krijgt
de gebruiker een prompt aangeboden die een eenvoudige
commandoverzameling begrijpt. Hier kan de gebruiker
variabelen wijzigen, alle modules stoppen en/of starten en
uiteindelijk opstarten of herstarten.Ingebouwde loadercommando'sHieronder worden de meest gebruikte loadercommando's
besproken. Een volledige omschrijving van alle beschikbare
commando's staat in &man.loader.8;.autoboot secondenGaat door met het opstarten van de kernel als deze
niet wordt onderbroken binnen de opgegeven tijd in
seconden. Er wordt een aftelproces getoond dat
standaard op 10 seconden staat.boot
-optieskernelnaamStart direct de kernel op met de opgegeven opties
en naam, indien meegegeven. Het opgeven van een
kernelnaam op de opdrachtregel is alleen van toepassing
nadat een unload-commando is
gegeven, anders wordt de kernel die hiervoor was geladen
gebruikt.boot-confDoorloopt hetzelfde automatische instellen van
modules gebaseerd op variabelen zoals ook gebeurt bij
het opstarten. Dit is alleen zinnig als eerst
unload is gebruikt en enkele
variabelen zijn gewijzigd, meestal
kernel.help onderwerpToont documentatie uit
/boot/loader.help. Als het
opgegeven onderwerp index is, wordt
een lijst met beschikbare onderwerpen getoond.include bestandsnaam …Verwerkt het bestand met de opgegeven naam. Het
bestand wordt ingelezen en regel voor regel
vertaald. Iedere foutmelding stopt direct het
include-commando.load typebestandsnaamLaadt de kernel, kernel-module of bestand van
opgegeven type en naam. Ieder argument achter de
bestandsnaam wordt doorgegeven aan het bestand.ls padnaamToont de lijst bestanden in het opgegeven pad of
van de rootmap als geen pad wordt opgegeven. Als
wordt meegegeven wordt ook de
bestandsgrootte weergegeven.lsdev Toont de lijst met alle apparaten waarvan het
mogelijk is om modules te kunnen laden. Als
wordt meegegeven worden meer
details getoond.lsmod Toont geladen modules. Als
wordt meegegeven worden meer details getoont.more bestandsnaamToont de inhoud van het opgegeven bestand met een
pauze na iedere LINES regels.rebootHerstart het systeem onmiddelijk.set variabeleset
variabele=waardeVult de omgevingsvariabele van de loader.unloadVerwijdert alle geladen modules.Loader voorbeeldenHier zijn wat practische voorbeelden van het gebruik van
loader:single-user modusDe kernel opstarten in single-user modus:boot -sDe gebruikelijke kernel en modules ontladen om daarna
de oude (of een andere) kernel te laden:kernel.oldunloadload kernel.oldkernel.GENERIC kan gebruikt
worden als de algemene kernel die meegeleverd is bij de
installatieschijf of kernel.old om
de vorige geïnstalleerde kernel te gebruiken (als
bijvoorbeeld de kernel is vervangen).Zo worden de bekende modules geladen met een andere
kernel:unloadset kernel="kernel.old"boot-confVoor het laden van een kernelinstellingenscript (een
script dat dingen doet die anders met de hand ingegeven
zouden worden):load -t userconfig_script /boot/kernel.confJoseph J.BarbishBijgedragen door Splash-schermen tijdens het opstartenHet splash-scherm creëert een visueel aantrekkelijker
scherm in vergelijking met de originele opstartberichten. Dit
scherm zal worden afgebeeld totdat een aanmeldprompt op de
console verschijnt of een X-schermbeheerder een aanmeldprompt
aanbiedt.Er zijn twee basisomgevingen beschikbaar in &os;. De
eerste is de verouderde standaardomgeving met de opdrachtregel
op de virtuële console. Nadat het systeem klaar is met
opstarten, wordt er een aanmeldprompt op de console
gepresenteerd. De tweede omgeving is de grafische omgeving
van het X11 Bureaublad. Nadat X11 en één van de
grafische bureaubladomgevingen,
zoals GNOME,
KDE, of
XFce zijn geïnstalleerd, kan
het X11-bureaublad worden gestart door het commando
startx te gebruiken.Sommige gebruikers verkiezen het grafische aanmeldscherm
van X11 boven de traditionele op tekst gebaseerde
aanmeldprompt. Schermbeheerders zoals
XDM voor &xorg;,
gdm voor
GNOME, en
kdm voor
KDE (en anderen van de
Portscollectie) bieden in principe een grafisch aanmeldscherm
in plaats van de aanmeldprompt op het console. Na succesvol
aanmelden bieden ze de gebruiker een grafisch
bureaublad.In de opdrachtregelomgeving zou het splash-scherm alle
berichten over aftasten tijdens het opstarten en het starten
van taken verbergen voordat het de aanmeldprompt laat zien.
In een X11-omgeving zouden gebruikers een visueel
overzichtelijkere opstartervaring krijgen dat meer lijkt op
wat een gebruiker van een (µsoft; &windows; of
niet-Unix-systeem) zou ervaren.Splash-schermfunctiesDe splash-schermfunctie ondersteunt alleen
256-kleuren-bitmaps (.bmp) of ZSoft
PCX (.pcx)
bestanden. Verder moeten de splash-afbeeldingsbestanden een
resolutie van 320 bij 200 pixels of minder hebben om op de
standaard VGA-adapters te werken.Activeer de VESA-ondersteuning die in
&os; zit om grotere afbeeldingen, tot de maximale resolutie
van 1024 bij 768 pixels, te gebruiken. Dit kan worden
aangezet door de VESA-module tijdens het
opstarten van het systeem te laden, of door de
kernelconfiguratieoptie VESA toe te
voegen en een eigen kernel te bouwen (zie ). De ondersteuning voor
VESA geeft gebruikers de mogelijkheid om
een splash-schermafbeelding af te beelden dat het hele
scherm vult.Zolang het splash-scherm wordt afgebeeld tijdens het
opstartproces, kan het ten alle tijden worden uitgezet door
op een toetsenbordtoets te drukken.Het splash-scherm is standaard ook een schermbeveiliging
buiten X11. Na een periode van inactiviteit zal het scherm
in het splash-scherm veranderen en herhaald door stappen van
het veranderen van de intensiteit van de afbeelding lopen,
van helder tot zeer donker. Dit standaardgedrag van het
splash-scherm (schermbeveiliging) kan overruled worden door
een regel met saver= toe te voegen aan
/etc/rc.conf. De optie
saver= heeft verschillende ingebouwde
schermbeveiligingen om uit te kiezen, de volledige lijst
staat in de handleidingpagina &man.splash.4;. De standaard
schermbeveiliging heet warp. Merk op dat de
optie saver= die in
/etc/rc.conf is gespecificeerd alleen
betrekking heeft op virtuele consoles. Het heeft geen
effect op X11-schermbeheerders.Enkele meldingen van de bootloader, inclusief de opties
van het opstartmenu en een getimede wachtende aftelprompt
worden afgebeeld tijdens het opstarten, zelfs als het
splash-scherm aanstaat.Voorbeelden van splash-schermen kunnen gedownload worden
van de galerij op . Door de
- port http://artwork.freebsdgr.org/.
+ Door de port sysutils/bsd-splash-changer te
installeren, kunnen de splash-afbeeldingen willekeurig elke
keer dat er wordt opgestart uit een verzameling worden
gekozen.De splash-schermfunctie aanzettenHet splash-schermbestand (.bmp of
.pcx) moet op de rootpartitie staan,
bijvoorbeeld in de map /boot.Bewerk voor de standaard resolutie van het opstartscherm
(256 kleuren, 320 bij 200 pixels, of minder)
/boot/loader.conf zodat het het
volgende bevat:splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"Bewerk voor grotere videoresoluties tot maximaal 1024
bij 768 pixels /boot/loader.conf zodat
het het volgende bevat:vesa_load="YES"
splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp"Het bovenstaande neemt aan dat
/boot/splash.bmp
voor het splash-scherm wordt gebruikt. Wanneer een
PCX-bestand gewenst is, dienen de
volgende opdrachten gebruikt te worden, en afhankelijk van
de resolutie de regel vesa_load="YES".splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx"De bestandsnaam is niet beperkt tot
splash zoals in het bovenstaande voorbeeld.
Het kan van alles zijn zolang het van het type
BMP of PCX is, zoals
splash_640x400.bmp
of
blue_wave.pcx.Enkele andere interessante opties voor
loader.conf:beastie_disable="YES"Dit zal het menu met opstartopties niet weergeven,
maar de getimede wachtende aftelprompt zal nog steeds
aanwezig zijn. Zelfs zonder dat het menu met
opstartopties wordt afgebeeld, zal het invoeren van
een optie in de getimede wachtende aftelprompt de
actie van de overeenkomstige opstartoptie
uitvoeren.loader_logo="beastie"Dit zal de standaardwoorden &os;,
welke rechts van het menu met opstartopties worden
afgebeeld vervangen door het gekleurde beastie-logo
zoals vroegere uitgaven die hadden.Raadpleeg voor meer informatie de handleidingpagina's
&man.splash.4;, &man.loader.conf.5;, en &man.vga.4;.Interactie met de kernel tijdens opstartenkernelinteractie opstartenZodra de kernel is geladen door de loader (zoals gewoonlijk)
of door boot2 (zonder de
loader), wordt er als ze er zijn gekeken naar de
opstartvlaggen en wordt het gedrag zo nodig aangepast.kernelopstartvlaggenOpstartvlaggen kernelDe meest voorkomende opstartvlaggen:Vraag tijdens de opstart van de kernel om het
apparaat dat gemount moet worden als root
bestandssysteem.Boot van cd-rom.Start UserConfig om instellingen te maken voor de
kernel tijdens het opstarten.Start naar single-user modus.Geef meer tekst en uitleg tijdens het opstarten van
de kernel.In &man.boot.8; staan alle bootvlaggen beschreven.TomRhodesBijgedragen door device.hintsDevice hintsDit onderwerp is alleen van toepassing op &os; 5.0 en
later.Tijdens het opstarten van het systeem leest de boot
&man.loader.8; het bestand &man.device.hints.5;. Dit bestand
slaat opstartinformatie voor de kernel op in variabelen, ook wel
device hints. Deze device hints
worden door stuurprogramma's gebruikt voor instelling van
apparaten.Device hints kunnen ook bij het
Fase drie, /boot/loader prompt
ingevoerd worden. Variabelen kunnen toegevoegd worden met behulp
van set, verwijderd worden met
unset en bekeken worden met
show. Variabelen uit
/boot/device.hints kunnen hier ook herroepen
worden. Device hints die ingevoerd zijn bij de boot loader zijn
niet permanent en zijn bij de volgende boot niet meer
aanwezig.Zodra het systeem opgestart is, kan &man.kenv.1; gebruikt
worden om alle variabelen te bekijken.De schrijfwijze voor /boot/device.hints
is één variabele per regel. Het standaard hekje
# wordtd gebruikt voor commentaar. Regels worden
als volgt opgebouwd:hint.driver.unit.keyword="waarde"De syntaxis voor de Fase 3 bootloader is:set hint.driver.unit.keyword=waardedriver is de naam van het
apparaatstuurprogramma, unit is het
apparaatnummer van het stuurprogramma en
keyword is het hint-sleutelwoord. Dit
sleutelwoord kan uit de volgende opties bestaan:at: beschrijft de bus waarop het
apparaat is aangesloten.port: beschrijft het startadres van
de I/O die gebruikt wordt.irq: beschrijft het interrupt request
nummer dat gebruikt wordt.drq: beschrijft het DMA
kanaalnummer.maddr: beschrijft het fysieke
geheugenadres dat gebruikt wordt door het apparaat.flags: zet verschillende vlagbits voor
het apparaat.disabled: is 1
als het apparaat is uitgezet.Apparaatstuurprogramma's kunnen hints die hier niet genoemd
zijn accepteren (of eisen). Zie hiervoor de betreffende
handleiding: &man.device.hints.5;, &man.kenv.1;,
&man.loader.conf.5; en &man.loader.8;.initInit: start van procesbesturingAls de kernel klaar is met opstarten geeft die de besturing
over aan het gebruikerproces &man.init.8;, te vinden in
/sbin/init of de padnaam die staat
is in de variabele init_path in
loader.Automatische herstartDe automatische herstart (Automatic Reboot
Sequence) controleert of de beschikbare
bestandssystemen betrouwbaar zijn. Als dat niet zo is en
&man.fsck.8; kan de fouten niet repareren, dan brengt
&man.init.8; het systeem terug naar Single-user modus voor de
systeembeheerder, die het probleem dan directer kan
aanpakken.Single-user modussingle-user modusconsoleDeze modus kan bereikt worden vanuit de Automatische herstart of
door de gebruiker die opstart met de optie
of door de variabele boot_single aan te zetten
in de loader.Het kan ook door &man.shutdown.8; te starten zonder
de optie reboot () of halt
(), vanuit Multi-user modus.Als het systeem console op
insecure staat in
/etc/ttys, dan vraagt het systeem om het
root wachtwoord voordat de single-user
modus wordt gestart.Onveilige console in
/etc/ttys# name getty type status comments
#
# Als de console op "insecure" staat vraagt init om het root wachtwoord
# voor het naar single-user modus gaan.
console none unknown off insecureMet een insecure console wordt bedoeld
dat de fysieke beveiliging van het console niet goed is en
dat dat alleen personen die het root
wachtwoord kennen naar single-user modus mogen gaan. Het
betekent niet dat het console onveilig wordt ingesteld. Als
het veilig moet, wordt er dus voor
insecure gekozen en niet voor
secure.Multi-user modusmulti-user modusAls &man.init.8; vindt dat het bestandssysteem
in orde is of zodra de gebruiker klaar is in Single-user modus, gaat het
systeem over naar multi-user modus, waarin het de resource
configuration (broninstellingen) van het systeem start.rc-bestandenBronconfiguratie (rc)Het broninstellingensysteem leest de
standaard instellingen in vanuit
/etc/defaults/rc.conf en
specifieke systeemdetails uit
/etc/rc.conf en gaat daarna door
met het mounten van de bestandssystemen voor het systeem
die genoemd worden in /etc/fstab,
start netwerkdiensten, start andere systeemdaemons en start
als laatste de opstartscripts van lokaal
geïnstalleerde packages.&man.rc.8; is een goede referentie voor het
broninstellingensysteem. Dat zijn de scripts zelf
natuurlijk ook.AfsluitvolgordeshutdownBij een gecontroleerde shutdown met &man.shutdown.8; probeert
&man.init.8; om het script /etc/rc.shutdown
te starten en daarna aan alle processen het
TERM signaal te sturen en eventueel het
KILL signaal aan alle processen die niet op
tijd zijn gestopt.Om een &os; machine uit te zetten die energiebeheer
ondersteund, kan het commando shutdown -p now
gegeven worden om gelijk de stroom af te schakelen. Als er
herstart moet worden dan kan shutdown -r now
gebruikt worden. De gebruiker die dit uitvoert moet wel
root zijn of lid van de
operator groep om &man.shutdown.8; te
mogen gebruiken. &man.halt.8; en &man.reboot.8; kunnen ook
gebruikt worden. Meer informatie is in de betreffende
handleidingpagina's te vinden.Voor energiebeheer is &man.acpi.4; ondersteuning in de
kernel nodig of via een module die ingeladen moet worden.
diff --git a/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml
index 4bf5f0e936..b851638683 100644
--- a/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml
@@ -1,1103 +1,1104 @@
AndreyChernovBijgedragen door Michael C.WuHerschreven door RenéLadanVertaald door Lokalisatie - I18N/L10N gebruiken en instellenOverzicht&os; is een zeer gedistribueerd project met gebruikers over
de gehele wereld. Dit hoofdstuk behandelt de
internationalisatie- en lokalisatie-eigenschappen van &os; die
niet-Engelssprekende gebruikers echt werk laten verzetten. Er
zitten veel aspecten van de i18n-implementatie in zowel de
systeem- als applicatieniveaus, dus waar mogelijk wordt de lezer
verwezen naar meer specifieke bronnen.Na dit hoofdstuk weet de lezer:Hoe verschillende talen en locales gecodeerd zijn
op moderne besturingssystemen.Hoe de locale in te stellen voor een login-shell.Hoe de console voor niet-Engelse talen in te
stellen.Hoe het X Window systeem effectief met meerdere
talen te gebruiken.Waar meer informatie te vinden over het schrijven
van i18n-respecterende applicaties.Veronderstelde voorkennis:Weten hoe aanvullende applicaties van derde partijen
geïnstalleerd worden ().BeginselenWat is I18N/L10N?internationalisatielokalisatielokalisatieOntwikkelaars hebben internationalisatie
(internationalization afgekort tot de term
I18N, de eerste en de laatste letter en het aantal
tussenliggende letters. L10N gebruikt hetzelfde schema voor
naamgeving en komt van localization. Samen
staan I18N/L10N methoden, protocollen en applicaties gebruikers
toe de taal van hun keuze te gebruiken.I18N-applicaties zijn geprogrammeerd door gebruik te maken
van I18N-gereedschappen van bibliotheken. Daarmee kunnen
ontwikkelaars een eenvoudig bestand schrijven en menu's en
teksten weergeven in elke taal. Programmeurs worden door het
&os; Project sterk aangemoedigd deze conventie te
volgen.Waarom I18N/L10N gebruiken?I18N/L10N wordt gebruikt als een gebruiker gegevens wil
bekijken, invoeren of verwerken in niet-Engelse talen.Welke talen worden ondersteund door I18N?I18N en L10N zijn niet &os; specifiek. Momenteel kan er
gekozen worden uit de meeste grote wereldtalen, inclusief maar
niet beperkt tot: Chinees, Duits, Japans, Koreaans, Frans,
Russisch en Vietnamees.Lokalisatie gebruikenIn al zijn pracht is I18N niet &os; specifiek maar een
conventie. Het &os; Project moedigt iedereen aan &os; te helpen
deze conventie te gebruiken.localeLokalisatie-instellingen zijn gebaseerd op drie hoofdtermen:
Taalcode, Landcode en Codering. Localenamen zijn als volgt
opgebouwd:Taalcode_Landcode.CoderingTaal- en landcodestaalcodeslandcodesOm een &os;-systeem (of een ander I18N-ondersteunend &unix;
achtig systeem) te lokaliseren naar een bepaalde taal, moet de
gebruiker de codes voor het specifieke land en taal
achterhalen. Landcodes geven applicaties aan welke variatie
van de gegeven taal gebruikt moet worden. Ook webbrowsers,
SMTP/POP-servers, webservers, enz. maken beslissingen gebaseerd
op die codes. Hieronder staan voorbeelden van taal- en
landcodes:Taal- en landcodeOmschrijvingen_USEngels - Verenigde Statenru_RURussisch voor Ruslandzh_TWTraditioneel Chinees voor TaiwanCoderingencoderingenASCIISommige talen gebruiken andere ASCII-coderingen dan 8-bit,
wijde of multibyte karakters, zie &man.multibyte.3;. Oudere
programma's herkennen die niet en interpreteren ze foutief als
controlekarakters aan. Afhankelijk van de implementatie moeten
gebruikers eventueel een applicatie met wijde of multibyte
karakterondersteuning compileren, of hem correct instellen. Om
wijde of multibyte karakters in te kunnen voeren en te kunnen
verwerken levert de &os; Portscollectie
voor elke taal programma's. Hiervoor staat I18N-documentatie
in de respectievelijke &os; Port.Voor het bouwen van een gewenste applicatie met lokalisatie
is het verstandig de applicatiedocumentatie te bekijken om te
bepalen hoe de juiste waarden doorgegeven kunnen worden naar
configure, Makefile of de compiler.Houd rekening met:Taalspecifieke enkele C-karakters karakterverzamelingen
(zie &man.multibyte.3;), bijvoorbeeld ISO8859-1,
ISO-8859-15, KOI8-R of CP437.Wijde of multibyte coderingen, bijvoorbeeld EUC of
Big5.Een lijst met actieve karakterverzamelingen staat bij de
IANA
Registry.&os; gebruikt in plaats hiervan X11-compatible
locale-coderingen.I18N applicatiesIn het &os; Ports en Package systeem hebben
I18N-applicaties I18N in hun naam zodat ze
eenvoudig herkend kunnen worden. Toch ondersteunen ze niet
altijd iedere mogelijk gewenste taal.Locale instellenMeestal is het voldoende om de waarde van de localenaam
te exporteren als LANG in de login-shell. Dit
kan door die waarde in ~/.login_conf van
de gebruiker of in ~/.profile,
~/.bashrc of
~/.cshrc) van de gebruiker te zetten.
Het is niet nodig om localedeelverzamelingen als
LC_CTYPE of LC_CTIME in te
stellen. Bij de taalspecifieke &os; documentatie staat vaak
nog informatie.De twee volgende omgevingsvariabelen moeten in de
instellingenbestanden ingesteld worden:POSIXLANG voor de &posix; &man.setlocale.3;
functies.MIMEMM_CHARSET voor de MIME
karakters voor applicaties.Dit is inclusief het instellen van de gebruikers-shell, het
instellen van de specifieke applicatie en de instellingen voor
X11.Methoden om locale in te stellenlocaleloginklasseEr zijn twee methoden om de locale in te stellen en
beiden worden hieronder beschreven. De eerste (aanbevolen)
methode is door middel van het toekennen van
omgevingsvariabelen in de loginklasse en de tweede is
mogelijk door middel van het toevoegen van de
omgevingsvariabelen aan het opstartbestand van de
systeem-shell.Methode loginklasseDeze methode biedt de mogelijkheid om
omgevingsvariabelen die nodig zijn voor de localenaam en
MIME karakterverzamelingen éénmalig voor
elke mogelijke shell toe te kennen in plaats van door
toekenning via het opstartbestand van elke shell. Gebruikersinstellingen kunnen
door de gebruiker zelf worden gemaakt en voor Beheerdersinstellingen zijn
superuser-rechten nodig.GebruikersinstellingenHieronder staat een minimaal voorbeeld van een
.login_conf bestand in de thuismap
van een gebruiker die beide variabelen heeft ingesteld op
Latin-1 codering:me:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:traditioneel ChineesBIG-5 coderingHieronder staat is een voorbeeld van een
.login_conf die variabelen instelt
voor traditioneel Chinees in BIG-5 codering. Er zijn
veel andere variabelen ingesteld zijn omdat sommige
software localevariabelen niet correct respecteert voor
Chinees, Japans, en Koreaans.# Gebruikers die geen valuta eenheden of tijdformaten voor Taiwan
# willen gebruiken kunnen handmatig elke variabele wijzigen.
me:\
:lang=zh_TW.Big5:\
:setenv=LC_ALL=zh_TW.Big:\
:setenv=LC_COLLATE=zh_TW.Big5:\
:setenv=LC_CTYPE=zh_TW.Big5:\
:setenv=LC_MESSAGES=zh_TW.Big5:\
:setenv=LC_MONETARY=zh_TW.Big5:\
:setenv=LC_NUMERIC=zh_TW.Big5:\
:setenv=LC_TIME=zh_TW.Big5:\
:charset=big5:\
:xmodifiers="@im=gcin": # Stel gcin in als XIM invoerserverZie Beheerdersinstellingen en
&man.login.conf.5; voor meer details.BeheerdersinstellingenEr dient gecontroleerd te worden of loginklasse voor
gebruikers, /etc/login.conf, de
juiste taal instelt door de volgende instellingen in
/etc/login.conf:taalnaam:accountstitel:\
:charset=MIME_karakterverzameling:
:lang=localenaam:\
:tc=default:Voor het bovenstaande voorbeeld dat gebruik maakt van
Latin-1 ziet dat er als hieronder uit:german:Duitse gebruikersaccounts:\
:charset=ISO-8859-1:\
:lang=de_DE.ISO8859-1:\
:tc=default:Voer voordat de gebruikers login class wordt
gewijzigd het volgende uit:&prompt.root; cap_mkdb /etc/login.confom de nieuwe configuratie in
/etc/login.conf zichtbaar te maken
voor het systeem.Loginklasse wijzigen met
&man.vipw.8;vipwMet vipw kunnen nieuwe gebruikers
toegevoegd worden en de instellingen dienen ongeveer als
volgt uit te zien:gebruiker:wachtwoord:1111:11:taal:0:0:Gebruikersnaam:/home/gebruiker:/bin/shLoginklasse wijzigen met
&man.adduser.8;adduserloginklasseMet adduser kunnen nieuwe
gebruikers toegevoegd worden. Hierna dient
één van de volgende stappen uitgevoerd te
worden:defaultclass =
taal instellen
in /etc/adduser.conf. In dit
geval dient er voor alle gebruikers van andere talen
een default klasse ingevoerd te
worden.Er kan ook gekozen worden voor een antwoord op
de vraag over taal vanuit &man.adduser.8;:Enter login class: default []: Ook kan het volgende gebruikt worden voor elke
gebruiker die een andere taal gebruikt:&prompt.root; adduser -class taalLoginklasse wijzigen met
&man.pw.8;pwAls &man.pw.8; wordt gebruikt om nieuwe gebruikers
toe te voegen:&prompt.root; pw useradd gebruikersnaam -L taalMethode opstartbestand shellDeze methode wordt niet aanbevolen omdat er
instellingenen nodig zijn voor elke mogelijke shell. Het
advies is de Methode
Loginklasse te gebruiken.
MIMElocaleOm de localenaam en MIME karakterverzameling toe te
voegen kunnen gewoon twee omgevingsvariabelen ingesteld
worden, zoals hieronder te zien is, in
/etc/profile en/of
/etc/csh.login opstartbestanden voor
shells. Hier wordt de Duitse taal als voorbeeld
gebruikt:In /etc/profile:LANG=de_DE.ISO8859-1; export LANGMM_CHARSET=ISO-8859-1; export MM_CHARSETOf in /etc/csh.login:setenv LANG de_DE.ISO8859-1setenv MM_CHARSET ISO-8859-1Het is ook mogelijk de bovenstaande instructies toe te
toevoegen /usr/share/skel/dot.profile
(ongeveer gelijk aan wat hierboven in
/etc/profile is gebruikt) of aan
/usr/share/skel/dot.login
(ongeveer gelijk aan wat hierboven in
/etc/csh.login is gebruikt).Voor X11:In $HOME/.xinitrc:LANG=de_DE.ISO8859-1; export LANGOf:setenv LANG de_DE.ISO8859-1Afhankelijk van de shell (zie boven).Console instellenVoor alle enkele C-karakters karakterverzamelingen worden
de juiste lettertypen voor het console ingesteld in
/etc/rc.conf voor de taal in kwestie
met:font8x16=lettertypenaam
font8x14=fontnaam
font8x8=fontnaamDe lettertypenaam komt uit de
map /usr/share/syscons/fonts zonder het
achtervoegsel .fnt.sysinstalltoetsenmappingschermmappingDe gebruiker dient ervoor te zorgen de juiste enkele
C-karakters karakterverzameling wordt ingesteld met
/stand/sysinstall
((/stand/sysinstall in &os; versies ouder
dan 5.2). In sysinstall kan
Configure en
Console gekozen worden. Het is ook
mogelijk het volgende aan /etc/rc.conf
toe te voegen:scrnmap=schermmappingnaam
keymap=toetsenmappingnaam
keychange="fkey_nummer sequentie"schermmappingnaam komt uit de
map /usr/share/syscons/scrnmaps zonder het
achtervoegsel .scm. Meestal is een
schermmapping met een overeenkomstig gemapt lettertype nodig
als workaround om bit 8 naar bit 9 uit te breiden op een
lettertype–karaktermatrix van een VGA-adapter in
pseudografische gebieden, dat wil zeggen om letters uit dat
gebied te halen als het schermlettertype een bit 8 kolom
gebruikt.Als de moused daemon is
ingeschakeld met de onderstaande regel in
/etc/rc.conf, dan wordt aangeraden de
muiscursorinformatie in de volgende paragraaf te
bekijken.moused_enable="YES"mousedStandaard neemt de muiscursor van het &man.syscons.4;
stuurprogramma het bereik 0xd0-0xd3 van de tekenverzameling in
beslag. Als een ingestelde taal dit bereik gebruikt, moet het
cursorbereik hierbuiten gehaald worden. Om de workaround voor
&os; aan te zetten kan de volgende regel aan
/etc/rc.conf toegevoegd worden:mousechar_start=3De toetsenmappingnaam komt uit
de map /usr/share/syscons/keymaps zonder
het achtervoegsel .kbd. Als niet precies
duidelijk is welke toetsenmapping te gebruiken, kan de
toetsenmapping getest worden met &man.kbdmap.1; zonder opnieuw
op te starten.keychange is nodig om functietoetsen zo
te programmeren dat ze overeenkomen met het geselecteerde
terminaltype omdat functietoetssequenties niet in de
toetsenmapping gedefinieerd kunnen worden.Er dient ook een controle te zijn op een juiste instelling
van het juiste terminaltype voor het console in
/etc/ttys voor alle
ttyv* regels. De huidige instellingen
zijn:KarakterverzamelingTerminaltypeISO8859-1 of ISO-8859-15cons25l1ISO8859-2cons25l2ISO8859-7cons25l7KOI8-Rcons25rKOI8-Ucons25uCP437 (VGA standaardinstelling)cons25US-ASCIIcons25wVoor wijde of multibyte karaktertalen kan je juiste
&os; port in de map
/usr/ports/taal
gebruikt worden. Sommige ports verschijnen als console terwijl
het systeem ze als serieële vtty ziet. Er dienen dus
voldoende vtty's gereserveerd te zijn voor zowel X11 als de
pseudo-serieële console. Hier is een gedeeltelijke lijst
van applicaties voor het gebruik van andere talen in
console:TaalLocatietraditioneel Chinees (BIG-5)chinese/big5conJapansjapanese/kon2-16dot
of
japanese/mule-freewnnKoreaanskorean/hanX11 instellenHoewel X11 geen deel is van het &os; Project wordt het hier
wel besproken voor &os; gebruikers. Meer details zijn te
vinden op de &xorg;
website of op de website van een andere X11 server
die gebruikt wordt.In ~/.Xresources kunnen
applicatiespecifieke I18N instellingen gemaakt worden als
lettertypen, menu's, enzovoort.Lettertypen weergevenX11 &truetype; lettertypeserverEerst moet &xorg; server
(x11-servers/xorg-server)
of &xfree86; server (x11-servers/XFree86-4-Server)
geïnstalleerd worden en daarna de &truetype;
lettertypen van de taal. Door de gewenste locale in te
stellen worden de menu's en dergelijke in de gekozen taal
weergegeven.Niet-Engelse karakters invoerenX11 Input Method (XIM)Het X11 Input Method (XIM) protocol is een nieuwe
standaard voor alle X11-cliënts. Alle X11-applicaties
horen geschreven te worden als XIM-cliënts die
invoer aannemen van de XIM-invoerservers. Er zijn meerdere
XIM-servers beschikbaar voor verschillende talen.PrinterinstellingenSommige enkele C-karakters karakterverzamelingen zijn
standaard hardware-gecodeerd in printers. Voor wijde of
multibyte karakterverzamelingen is een speciale installatie
nodig en het gebruik van apsfilter
wordt dan aangeraden. Een document kan ook naar &postscript;
of PDF formaat omgezet worden door gebruik te maken van
taalspecifieke conversieprogramma's.Kernel en bestandssystemenHet &os; Snelle Bestandssysteem (FFS) is 8-bit schoon, dus
het kan gebruikt worden met elke enkele C-karakters
karakterverzameling (zie &man.multibyte.3;), maar er is geen
karakterverzamelingnaam opgeslagen in het bestandssysteem. Het
is dus rauw 8-bit en het weet niets van coderingsbevelen.
Officieel ondersteunt FFS nog geen enkele vorm van wijde of
multibyte karakterverzamelingen. Toch hebben sommige wijde of
multibyte karakterverzamelingen onafhankelijke patches voor FFS
die ondersteuning inschakelen. Dit zijn tijdelijke oplossingen
of hacks die niet overdraagbaar zijn en daarom is besloten ze
niet in de source tree op te nemen. Op de websites van de
talen staan de patchbestanden en meer informatie.&ms-dos;UnicodeVoor het &os; &ms-dos; bestandssysteem kan geschakeld
worden tussen &ms-dos;, Unicode karakterverzamelingen en
gekozen &os; bestandssysteem-karakterverzamelingen.
&man.mount.msdosfs.8; beschijft de details.I18N-programma's compilerenVeel &os; Ports zijn geschikt gemaakt voor &os; met
I18N-ondersteuning. Een aantal daarvan zijn gemarkeerd met
-I18N in de portnaam. Deze en nog veel andere
programma's hebben ingebouwde ondersteuning voor I18N en
behoeven geen speciale aandacht.MySQLToch is het voor sommige applicaties zoals
MySQL nodig dat de
Makefile ingesteld is met de specifieke
karakterverzameling. Dit wordt normaliter gedaan in de
Makefile of door middel van het doorgeven
van een waarde aan configure in de
broncode.&os; lokaliseren naar talenAndreyChernovOorspronkelijk bijgedragen door Russisch (KOI8-R codering)lokalisatieRussischVoor meer informatie over KOI8-R codering, zie de KOI8-R References (Russian Net
Character Set).Locale instellenVoeg de volgende regels toe aan
~/.login_conf bestand:me:Mijn account:\
:charset=KOI8-R:\
:lang=ru_RU.KOI8-R:Zie eerder in dit hoofdstuk voor voorbeelden over het
opzetten van de locale.Console instellenVoeg de volgende regel toe aan
aan /etc/rc.conf:mousechar_start=3Gebruik ook de volgende instellingen in
/etc/rc.conf:keymap="ru.koi8-r"
scrnmap="koi8-r2cp866"
font8x16="cp866b-8x16"
font8x14="cp866-8x14"
font8x8="cp866-8x8"Voor elke ttyv* regel in
/etc/ttys, gebruik
cons25r als het terminaltype.Zie eerder in dit hoofdstuk voor voorbeelden over het
opzetten van de
console.Printer instellenprintersAangezien de meeste printers met Russische karakters met
hardware-codepagina CP866 komen, is een speciaal
uitvoerfilter nodig om KOI8-R om te zetten in CP866. Zo'n
filter is standaard geïnstalleerd als
/usr/libexec/lpr/ru/koi2alt. Een
/etc/printcap regel voor een Russische
printer moet er uit zien als:lp|Russische lokale lijnprinter:\
:sh:of=/usr/libexec/lpr/ru/koi2alt:\
:lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:Zie &man.printcap.5; voor een gedetailleerde
beschrijving.&ms-dos; bestandssysteem en Russische
bestandsnamenDe volgende voorbeeld &man.fstab.5; regel zet
ondersteuning aan voor Russische bestandsnamen gekoppeld op
&ms-dos; bestandssystemen:/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KIO8-R 0 0De optie selecteert de te gebruiken
localenaam, en stelt de
karakteromzettabel in. Om de te
gebruiken moet /usr gemount zijn voor de
&ms-dos; partitie omdat de omzettabellen zich bevinden in
/usr/libdata/msdosfs.
&man.mount.msdosfs.8; geeft verdere uitleg.X11 instellenVoer eerst de niet-X
lokale instellingen uit zoals beschreven.Installeer bij gebruik van
&xorg; het package x11-fonts/xorg-fonts-cyrillic.Controleer de "Files" sectie in
/etc/X11/xorg.conf bestand. Zorg
dat de volgende regels
vóór andere
FontPath regels staan:FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/misc"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/75dpi"
FontPath "/usr/X11R6/lib/X11/fonts/cyrillic/100dpi"Er er een hoge resolutie videomodus wordt gebruikt
dan kunnen de 75dpi en 100dpi regels gewisseld
worden.Zie de Ports Collectie voor meer cyrillic
fonts.Om een Russisch toetsenbord te activeren dient het
volgende in het "Keyboard" gedeelte
van xorg.conf te staan:XkbLayout "ru"
XkbOptions "grp:caps_toggle"Voor &xorg;:Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:caps_toggle"Ook moet daar XkbDisable
uitgeschakeld (uitgecomment) zijn.
- Voor grp:caps_toggle is de
+ Voor grp:toggle is de
RUS/LAT-schakelaar Rechter Alt voor
de grp:ctrl_shift_toggle schakelaar zal
- dat CtrlShift
- zijn. De oude CapsLock functie is nog
- steeds beschikbaar via
+ dat Ctrl
+ Shift zijn. Voor
+ grp:caps_toggle zal de
+ RUS/LAT-schakelaar CapsLock zijn. De
+ oude CapsLock functie is nog steeds
+ beschikbaar via ShiftCapsLock
- (alleen in LAT-modus). Voor
- grp:toggle is de RUS/LAT-schakelaar
- Right Alt.
- grp:caps_toggle werkt om onbekende
- reden niet in &xorg;.
+ (alleen in LAT-modus). grp:caps_toggle
+ werkt om onbekende reden niet in
+ &xorg;.Als er &windows; toetsen op een
toetsenbord zitten en het blijkt dat sommige
niet-alfabetische toetsen verkeerd gemapt zijn in
RUS-modus, dan kan de volgende regel aan
xorg.conf toegevoegd worden:Option "XkbVariant" ",winkeys"Het Russische XKB toetsenbord hoeft niet te werken
met niet-gelokaliseerde applicaties.Minimaal gelokaliseerde applicaties moeten vroeg in het
programma een aanroep naar de XtSetLanguageProc
(NULL, NULL,); functie doen.In KOI8-R for X
Window staan meer instructies over het
lokaliseren van X11-applicaties.Traditioneel Chinees voor Taiwanlokalisatietraditioneel ChineesHet &os;-Taiwan Project heeft een Chinese HOWTO voor &os;
op
die gebruik maakt van veel Chinese ports. De huidige redacteur
voor de &os; Chinese HOWTO is Shen
Chuan-Hsing statue@freebsd.sinica.edu.tw.Chuan-Hsing Shen heeft de Chinese &os;
Collection (CFC) gemaakt met gebruik van &os;-Taiwan's
zh-L10N-tut. De packages en scriptbestanden
zijn beschikbaar op .Duits (alle ISO 8859-1 talen)lokalisatieDuitsSlaven Rezic eserte@cs.tu-berlin.de heeft
een tutorial geschreven over het gebruik van umlauten op een
&os;-machine. De tutorial is in het Duits geschreven en staat
op .GriekslokalisatieGrieksNikos Kokkalis nickkokkalis@gmail.com heeft
een compleet artikel over Griekse ondersteuning in &os;
geschreven. Het is beschikbaar als deel van de officiële
Griekse &os;-documentatie, in http://www.freebsd.org/doc/el_GR.ISO8859-7/articles/greek-language-support/index.html.
Merk opdat dit alleen in het Grieks
beschikbaar is.Japans en KoreaanslokalisatieJapanslokalisatieKoreaansJapanse lokalisatie staat beschreven op en de Koreaanse
lokalisatie staat op .Niet-Engelstalige &os; documentatieSommige delen van de &os;-documentatie zijn naar andere
talen vertaald. Hiernaar staan links op de hoofdsite of in
/usr/share/doc.
diff --git a/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml
index 77097467a9..d51c3d185d 100644
--- a/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml
@@ -1,5652 +1,5652 @@
MurrayStokelyGereorganiseerd door SiebrandMazelandVertaald door NetwerkdienstenOverzichtDit hoofdstuk behandelt een aantal veelgebruikte
netwerkdiensten op &unix; systemen. Er wordt ingegaan op de
installatie, het instellen, testen en beheren van verschillende
typen netwerkdiensten. Overal in dit hoofdstuk staan
voorbeeldbestanden met instellingen waar de lezer zijn voordeel
mee kan doen.Na het lezen van dit hoofdstuk weet de lezer:Hoe om te gaan met de inetd
daemon;Hoe een netwerkbestandssysteem opgezet kan worden;Hoe een netwerkinformatiedienst (NIS) opgezet kan worden
voor het delen van gebruikersaccounts;Hoe automatische netwerkinstellingen gemaakt kunnen
worden met DHCP;Hoe een domeinnaam server opgezet kan worden;Hoe een Apache HTTP Server
opgezet kan worden;Hoe een File Transfer Protocol (FTP) Server opgezet kan
worden;Hoe een bestand-- en printserver voor &windows;
cliënten opgezet kan worden met
Samba;Hoe datum en tijd gesynchroniseerd kunnen worden en hoe
een tijdserver opgezet kan worden met het NTP-protocol.Hoe het standaard log-daemon syslogd in
te stellen om logs van hosts op afstand te accepteren.Veronderstelde voorkennis:Basisbegrip van de scripts in
/etc/rc;Bekend zijn met basis netwerkterminologie;Kennis van de installatie van software van derde partijen
().ChernLeeBijgedragen door Bijgewerkt voor &os; 6.1-RELEASE door The &os; Documentation ProjectDe inetdSuper-ServerOverzicht&man.inetd.8; wordt soms de
Internet Super-Server genoemd, omdat het
verbindingen voor meerdere diensten beheert. Als door
inetd een verbinding wordt ontvangen,
bepaalt die voor welk programma de verbinding bedoeld is,
splitst het dat proces af en delegeert de socket (het programma
wordt gestart met de socket van de dienst als zijn
standaardinvoer, -uitvoer en -foutbeschrijvingen). Het draaien
van inetd voor servers die niet veel
gebruikt worden kan de algehele werklast verminderen in
vergelijking met het draaien van elke daemon individueel in
stand-alone modus.inetd wordt primair gebruikt om
andere daemons aan te roepen, maar het handelt een aantal
triviale protocollen direct af, zoals
chargen,
auth en
daytime.In deze paragraaf worden de basisinstellingen van
inetd behandeld met de opties vanaf
de commandoregel en met het instellingenbestand
/etc/inetd.conf.Instellingeninetd wordt gestart door het
&man.rc.8;-systeem. De
optie inetd_enable staat standaard op
NO, maar kan tijdens de installatie door
sysinstall worden aangezet. Door het
plaatsen vaninetd_enable="YES"ofinetd_enable="NO"in /etc/rc.conf wordt
inetd bij het opstarten van een
systeem wel of niet ingeschakeld. Het commando:&prompt.root; /etc/rc.d/inetd rcvarkan gedraaid worden om de huidige effectieve instellingen
weer te geven.Dan kunnen er ook nog een aantal commandoregelopties aan
inetd meegegeven worden met de optie
inetd_flags.CommandoregeloptiesZoals de meeste serverdaemons heeft
inetd een aantal opties die
doorgegeven kunnen worden om het gedrag aan te passen. De
volledige lijst van opties is:inetdOpties kunnen door middel van de optie
inetd_flags in
/etc/rc.conf aan
inetd worden doorgegeven. Standaard
staat inetd_flags ingesteld op
-wW -C 60, dat TCP-wrapping aanzet voor de
diensten van inetd, en voorkomt dat
elk enkelvoudig IP-adres enige dienst meer dan 60 keer per
minuut opvraagt.Beginnende gebruikers zullen blij zijn om te weten dat deze
parameters gewoonlijk niet hoeven te worden aangepast, alhoewel
we de ratebeperkende opties hieronder noemen aangezien ze
nuttig kunnen zijn in het geval u een buitensporig aantal
verbindingen ontvangt. Een volledige lijst van opties staat in
de hulppagina &man.inetd.8;.-c maximumGeeft het maximale aantal gelijktijdige verzoeken voor
iedere dienst aan. De standaard is ongelimiteerd. Kan
per dienst ter zijde geschoven worden met de parameter
.-C rateGeeft het maximale aantal keren aan dat een dienst
vanaf een bepaald IP-adres per minuut aangeroepen kan
worden. Kan per dienst ter zijde geschoven worden met de
parameter
.-R rateGeeft het maximale aantal keren aan dat een dienst
per minuut aangeroepen kan worden. De standaard is 256.
De instelling 0 geeft aan dat er geen
limiet is.-s maximumSpecificeert het maximaal aantal keer per minuut dat
een dienst aangeroepen kan worden vanuit een enkelvoudig
IP-adres; de standaard is onbeperkt. Kan worden
overstemd op een per-dienst-basis met de parameter
.inetd.confDe instellingen van inetd
worden beheerd in /etc/inetd.conf.Als er een wijziging wordt aangebracht in
/etc/inetd.conf, dan kan
inetd gedwongen worden om de
instellingen opnieuw in te lezen door dit commando te draaien:Het instellingenbestand van
inetd herladen&prompt.root; /etc/rc.d/inetd reloadIedere regel in het bestand met instellingen heeft
betrekking op een individuele daemon. Commentaar wordt vooraf
gegaan door een #. De opmaak van elke regel
van /etc/inetd.conf is als volgt:service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
user[:group][/login-class]
server-program
server-program-argumentsEen voorbeeldregel voor de daemon &man.ftpd.8; met IPv4 kan
eruit zien als:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lservice-nameDit is de dienstnaam van een daemon. Die moet
overeenkomen met een dienst uit
/etc/services. Hiermee kan de
poort waarop inetd moet
luisteren aangegeven worden. Als er een nieuwe dienst
wordt gemaakt, moet die eerst in
/etc/services gezet worden.socket-typeDit is stream,
dgram, raw of
seqpacket. stream
moet gebruikt worden voor verbindingsgebaseerde
TCP-daemons, terwijl dgram wordt
gebruikt voor daemons die gebruik maken van het
transportprotocol UDP.protocolEen van de volgende:ProtocolToelichtingtcp, tcp4TCP IPv4udp, udp4UDP IPv4tcp6TCP IPv6udp6UDP IPv6tcp46Zowel TCP IPv4 als v6udp46Zowel UDP IPv4 als v6{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]] geeft aan of de daemon
die door inetd wordt
aangesproken zijn eigen sockets kan afhandelen of niet.
sockettypen moeten de optie
gebruiken, terwijl streamsocket
daemons, die meestal multi-threaded zijn, de optie
horen te gebruiken.
geeft meestal meerdere sockets aan
een daemon, terwijl een kinddaemon
draait voor iedere nieuwe socket.Het maximum aantal kinddaemons dat
inetd mag voortbrengen kan
ingesteld worden met de optie .
Als een limiet van tien instanties van een bepaalde
daemon gewenst is, dan zou er /10
achter gezet worden. Door
/0 wordt een onbeperkt aantal kinderen
toegestaan.Naast zijn er nog twee
andere opties waarmee het maximale aantal verbindingen van
een bepaalde plaats naar een daemon ingesteld kan worden.
beperkt
het aantal verbindingen per minuut voor enig IP-adres, een
waarde van tien betekent hier dat er van ieder IP-adres
maximaal tien verbindingen naar een bepaalde dienst tot
stand gebracht kunnen worden.
beperkt het aantal
kindprocessen dat namens enig IP-adres op enig moment
gestart kan worden. Deze opties kunnen zijn nuttig om
bedoeld en onbedoeld buitensporig bronnengebruik van en
Denial of Service (DoS) aanvallen op een machine te
voorkomen.In dit veld is één van
of
verplicht. ,
en
zijn optioneel.Een stream-type multi-threaded daemon zonder
één van de limieten
,
of
is eenvoudigweg:
nowait.Dezelfde daemon met een maximale limiet van tien
daemons zou zijn: nowait/10.Dezelfde instellingen met een limiet van twintig
verbindingen per IP-adres per minuut en een totaal maximum
van tien kinddaemons zou zijn:
nowait/10/20.Deze opties worden allemaal gebruikt door de
standaardinstellingen van de daemon &man.fingerd.8;:finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -sAls afsluiting, een voorbeeld in dit veld met een
maximum van 100 kinderen in totaal, met een maximum van 5
voor enig IP-adres zou zijn:
nowait/100/0/5.userDit is de gebruikersnaam waar een daemon onder
draait. Daemons draaien meestal als de gebruiker
root. Om veiligheidsredenen draaien
sommige daemons onder de gebruiker
daemon of de gebruiker met de minste
rechten: nobody.server-programHet volledige pad van de daemon die uitgevoerd moet
worden als er een verbinding wordt ontvangen. Als de
daemon een dienst is die door
inetd intern wordt geleverd,
dan moet de optie gebruikt
worden.server-program-argumentsDeze optie werkt samen met de optie
en hierin worden de
argumenten ingesteld, beginnend met
argv[0], die bij het starten aan de
daemon worden meegegeven. Als
mijndaemon -d de commandoregel is,
dan zou mijndaemon -d de waarde van
zijn. Hier
geldt ook dat als de daemon een interne dienst is, hier
de optie moet worden.BeveiligingAfhankelijk van keuzes gemaakt tijdens de installatie,
kunnen veel van de diensten van inetd
standaard ingeschakeld zijn. Het is verstandig te overwegen om
een daemon dat niet noodzakelijk is uit te schakelen. Plaats
een # voor de daemon in
/etc/inetd.conf en herlaad vervolgens de
instellingen van inetd. Sommige daemons, zoals
fingerd, zijn wellicht helemaal niet
gewenst omdat ze informatie geven die nuttig kan zijn voor een
aanvaller.Sommige daemons zijn zich niet echt bewust van beveiliging
en hebben lange of niet bestaande timeouts voor
verbindingspogingen. Hierdoor kan een aanvaller langzaam veel
verbindingen maken met een daemon en zo beschikbare bronnen
verzadigen. Het is verstandig voor die daemons de limietopties
,
of
te gebruiken als ze naar uw smaak teveel verbindingen hebben.TCP-wrapping staat standaard aan. Er staat meer informatie
over het zetten van TCP-restricties op de verschillende daemons
die door inetd worden aangesproken
in &man.hosts.access.5;.Allerleidaytime,
time,
echo,
discard,
chargen en
auth zijn allemaal interne diensten
van inetd.De dienst auth biedt
identiteitsnetwerkdiensten en is tot op een bepaald niveau
instelbaar, terwijl de anderen eenvoudigweg aan of uit staan.Meer diepgaande informatie staat in &man.inetd.8;.TomRhodesGereorganiseerd en verbeterd door BillSwingleGeschreven door Netwerkbestandssysteem (NFS)NFSHet Netwerkbestandssysteem (Network File System) is een van
de vele bestandssystemen die &os; ondersteunt. Het staat ook wel
bekend als NFS.
Met NFS is het
mogelijk om mappen en bestanden met anderen in een netwerk te
delen. Door het gebruik van NFS kunnen gebruikers en
programma's bij bestanden op andere systemen op bijna dezelfde
manier als bij hun eigen lokale bestanden.De grootste voordelen van NFS zijn:Lokale werkstations gebruiken minder schijfruimte omdat
veel gebruikte data op één machine opgeslagen
kan worden en nog steeds toegankelijk is voor gebruikers via
het netwerk;Gebruikers hoeven niet op iedere machine een thuismap te
hebben. Thuismappen kunnen op de NFS
server staan en op het hele netwerk beschikbaar zijn;Opslagapparaten als floppydisks, CD-ROM drives en
&iomegazip; drives kunnen door andere machines op een netwerk
gebruikt worden. Hierdoor kan het aantal drives met
verwijderbare media in een netwerk verkleind worden.Hoe NFS werktNFS bestaat uit tenminste twee
hoofdonderdelen: een server en een of meer cliënten. De
cliënt benadert de gegevens die op een servermachine zijn
opgeslagen via een netwerk. Om dit mogelijk te maken moeten er
een aantal processen ingesteld en gestart worden.Op de server moeten de volgende daemons draaien:NFSserverbestandsserverUNIX cliëntenrpcbindmountdnfsdDaemonBeschrijvingnfsdDe NFS-daemon die verzoeken van
de NFS cliënten afhandelt.mountdDe NFS koppeldaemon die
doorgestuurde verzoeken van &man.nfsd.8;
uitvoert.rpcbindDeze daemon geeft voor
NFS-cliënten aan welke poort de
NFS-server gebruikt.Op de cliënt kan ook een daemon draaien:
nfsiod. De daemon
nfsiod handelt verzoeken van de
NFS-server af. Dit is optioneel en kan de
prestaties verbeteren, maar het is niet noodzakelijk voor een
normale en correcte werking. Meer informatie staat in
&man.nfsiod.8;.NFS instellenNFSinstellenNFS instellen gaat redelijk rechtlijnig.
Alle processen die moeten draaien kunnen meestarten bij het
opstarten door een paar wijzigingen in
/etc/rc.conf.Op de NFS server dienen de volgende
opties in /etc/rc.conf te staan:rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"mountd start automatisch als de
NFS server is ingeschakeld.Op de cliënt dient de volgende optie in
/etc/rc.conf te staan:nfs_client_enable="YES"In het bestand /etc/exports staat
beschreven welke bestandssystemen NFS moet
exporteren (soms heet dat ook wel delen of
sharen). Iedere regel in
/etc/exports slaat op een bestandssysteem
dat wordt geëxporteerd en welke machines toegang hebben
tot dat bestandssysteem. Samen met machines die toegang hebben,
kunnen ook toegangsopties worden aangegeven. Er zijn veel
opties beschikbaar, maar hier worden er maar een paar
beschreven. Alle opties staan beschreven in
&man.exports.5;.Nu volgen een aantal voorbeelden voor
/etc/exports:NFSexportvoorbeeldenHet volgende voorbeeld geeft een beeld van hoe een
bestandssysteem te exporteren, hoewel de instellingen
afhankelijk zijn van de omgeving en het netwerk. Om
bijvoorbeeld de map /cdrom te exporteren
naar drie machines die dezelfde domeinnaam hebben als de server
(vandaar dat de machinenamen geef domeinachtervoegsel hebben)
of in /etc/hosts staan. De vlag
exporteert het bestandssysteem als
alleen–lezen. Door die vlag kan een ander systeem niet
schrijven naar het geëxporteerde bestandssysteem./cdrom -ro host1 host2 host3Het volgende voorbeeld exporteert
/home naar drie hosts op basis van
IP-adres. Dit heeft zin als er een privaat netwerk bestaat,
zonder dat er een DNS server is ingesteld.
Optioneel kan /etc/hosts gebruikt worden
om interne hostnamen in te stellen. Er is meer informatie te
vinden in &man.hosts.5;. Met de vlag
mogen submappen ook koppelpunten zijn. De submap wordt dan niet
feitelijk aangekoppeld, maar de cliënt koppelt dan alleen
de submappen aan die verplicht of nodig zijn./home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4Het volgende voorbeeld exporteert /a
zo dat twee cliënten uit verschillende domeinen bij het
bestandssysteem mogen. Met de vlag
mag de gebruiker op het
andere systeem gegevens naar het geëxporteerde
bestandssysteem schrijven als root. Als
de vlag niet wordt gebruikt, dan
kan een gebruiker geen bestanden wijzigen op het
geëxporteerde bestandssysteem, zelfs niet als een gebruiker
daar root is./a -maproot=root host.example.com box.example.orgOm een cliënt toegang te geven tot een
geëxporteerd bestandssysteem, moet die cliënt daar
rechten voor hebben. De cliënt moet daarvoor genoemd
worden in /etc/exports.In /etc/exports staat iedere regel voor
de exportinformatie van één bestandssysteem naar
één host. Per bestandssysteem mag een host maar
één keer genoemd worden en mag maar
één standaard hebben. Stel bijvoorbeeld dat
/usr een enkel bestandssysteem is. Dan is
de volgende /etc/exports niet geldig:># Werkt niet als /usr 1 bestandssysteem is
/usr/src client
/usr/ports clientEén bestandssysteem, /usr,
heeft twee regels waarin exports naar dezelfde host worden
aangegeven, client. In deze situatie is de
juiste instelling:/usr/src /usr/ports clientDe eigenschappen van een bestandssysteem dat naar een
bepaalde host wordt geëxporteerd moeten allemaal op
één regel staan. Regels waarop geen cliënt
wordt aangegeven worden behandeld als een enkele host. Dit
beperkt hoe bestandssysteem geëxporteerd kunnen worden,
maar dat blijkt meestal geen probleem te zijn.Het volgende voorbeeld is een geldige exportlijst waar
/usr en /exports
lokale bestandssystemen zijn:# Exporteer src en ports naar client01 en client02,
# maar alleen client01 heeft er rootprivileges
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# De cliëntmachines hebben rootrechten en kunnen overal aankoppelen
# op /exports. Iedereen in de wereld kan /exports/obj als alleen-lezen aankoppelen.
/exports -alldirs -maproot=root client01 client02
/exports/obj -roDe daemon mountd moet gedwongen
worden om het bestand /etc/exports te
controleren steeds wanneer het is aangepast, zodat de
veranderingen effectief kunnen worden. Dit kan worden bereikt
door òfwel een HUP-signaal naar de draaiende daemon te
sturen:&prompt.root; kill -HUP `cat /var/run/mountd.pid`of door het &man.rc.8; script mountd met
de juiste parameter aan te roepen:&prompt.root; /etc/rc.d/mountd onereloadRaadpleeg voor meer
informatie over het gebruik van rc-scripts.Het is ook mogelijk een machine te herstarten, zodat &os;
alles netjes in kan stellen, maar dat is niet nodig. Het
uitvoeren van de volgende commando's als
root hoort hetzelfde resultaat te
hebben.Op de NFS server:&prompt.root; rpcbind
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -rOp de NFS cliënt:&prompt.root; nfsiod -n 4Nu is alles klaar om feitelijk het netwerkbestandssysteem
aan te koppelen. In de volgende voorbeelden is de naam van de
server server en de naam van de cliënt is
client. Om een netwerkbestandssysteem slechts
tijdelijk aan te koppelen of om alleen te testen, kan een
commando als het onderstaande als root op
de cliënt uitgevoerd worden:NFSaankoppelen&prompt.root; mount server:/home /mntHiermee wordt de map /home op de server
aangekoppeld op /mnt op de cliënt.
Als alles juist is ingesteld, zijn nu in
/mnt op de cliënt de bestanden van de
server zichtbaar.Om een netwerkbestandssysteem iedere keer als een computer
opstart aan te koppelen, kan het bestandssysteem worden
toegevoegd aan het bestand /etc/fstab:server:/home /mnt nfs rw 0 0Alle beschikbare opties staan in &man.fstab.5;.Op slot zettenVoor sommige applicaties (b.v.
mutt) is het nodig dat bestanden op
slot staan om correct te werken. In het geval van
NFS, kan rpc.lockd
worden gebruikt voor het op slot zetten van bestanden. Voeg het
volgende toe aan het bestand /etc/rc.conf
op zowel de cliënt als de server om het aan te zetten (het
wordt aangenomen dat de NFS-cliënt en
-server reeds zijn geconfigureerd):rpc_lockd_enable="YES"
rpc_statd_enable="YES"Start de applicatie met:&prompt.root; /etc/rc.d/lockd start
&prompt.root; /etc/rc.d/statd startAls echt op slot zetten tussen de
NFS-cliënten en de
NFS-server niet nodig is, is het mogelijk om
de NFS-cliënt bestanden lokaal op slot
te laten zetten door aan &man.mount.nfs.8;
door te geven. In de handleidingpagina &man.mount.nfs.8; staan
verdere details.Mogelijkheden voor gebruikNFS is voor veel doeleinden in te zetten.
Een aantal voorbeelden:NFSgebruikEen aantal machines een CD-ROM of andere media laten
delen. Dat is goedkoper en vaak ook handiger, bijvoorbeeld
bij het installeren van software op meerdere
machines;Op grote netwerken kan het praktisch zijn om een
centrale NFS server in te richten,
waarop alle thuismappen staan. Die thuismappen kunnen dan
geëxporteerd worden, zodat gebruikers altijd
dezelfde thuismap hebben, op welk werkstation ze ook
aanmelden;Meerdere machines kunnen een gezamenlijke map
/usr/ports/distfiles hebben. Dan is
het mogelijk om een port op meerdere machines te
installeren, zonder op iedere machine de broncode te hoeven
downloaden.WylieStilwellGeschreven door ChernLeeHerschreven door Automatisch aankoppelen met
amdamdautomatic mounter daemon&man.amd.8; (de automatic mounter daemon) koppelt
automatisch netwerkbestandssystemen aan als er aan een bestand
of map binnen dat bestandssysteem wordt gerefereerd.
amd ontkoppelt ook bestandssystemen
die een bepaalde tijd niet gebruikt worden. Het gebruikt van
amd is een aantrekkelijk en eenvoudig
alternatief ten opzichte van permanente koppelingen, die meestal
in /etc/fstab staan.amd werkt door zichzelf als
NFS-server te koppelen aan de mappen /host
en /net. Als binnen die mappen een bestand
wordt geraadpleegd, dan zoekt amd de
bijbehorende netwerkkoppeling op en koppelt die automatisch aan.
/net wordt gebruikt om een
geëxporteerd bestandssysteem van een IP-adres aan te
koppelen, terwijl /host wordt gebruikt om
een geëxporteerd bestandssysteem van een hostnaam aan te
koppelen.Het raadplegen van een bestand in
/host/foobar/usr geeft
amd aan dat die moet proberen de
/usr export op de host
foobar aan te koppelen.Een export aankoppelen met
amdDe beschikbare koppelingen van een netwerkhost zijn te
bekijken met showmount. Om bijvoorbeeld
de koppelingen van de host foobar te
bekijken:&prompt.user; showmount -e foobar
Exports list on foobar:
/usr 10.10.10.0
/a 10.10.10.0
&prompt.user; cd /host/foobar/usrZoals in het bovenstaande voorbeeld te zien is, toont
showmount/usr als een
export. Als er naar de map
/host/foobar/usr wordt gegaan, probeert
amd de hostnaam
foobar te resolven en de gewenste export
automatisch aan te koppelen.amd kan gestart worden door de
opstartscript door de volgende regel in
/etc/rc.conf te plaatsen:amd_enable="YES"Er kunnen ook nog opties meegegeven worden aan
amd met de optie
amd_flags. Standaard staat
amd_flags ingesteld op:amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"In het bestand /etc/amd.map staan
de standaardinstellingen waarmee exports aangekoppeld worden.
In het bestand /etc/amd.conf staan een
aantal van de meer gevorderde instellingen van
amd.In &man.amd.8; en &man.amd.conf.5; staat meer
informatie.JohnLindGeschreven door Problemen bij samenwerking met andere systemenBepaalde Ethernet adapters voor ISA PC systemen kennen
limieten die tot serieuze netwerkproblemen kunnen leiden, in
het bijzonder met NFS. Dit probleem is niet specifiek voor
&os;, maar het kan op &os; wel voor komen.Het probleem ontstaat bijna altijd als (&os;) PC-systemen
netwerken met hoog presterende werkstations, zoals van Silicon
Graphics, Inc. en Sun Microsystems, Inc. De NFS-koppeling werkt
prima en wellicht lukken een aantal acties ook, maar dan ineens
lijkt de server niet meer te reageren voor de cliënt,
hoewel verzoeken van en naar andere systemen gewoon verwerkt
worden. Dit gebeurt op een cliëntsysteem, of de
cliënt nu het &os; systeem is of het werkstation. Op veel
systemen is er geen manier om de cliënt netjes af te
sluiten als dit probleem is ontstaan. Vaak is de enige
mogelijkheid een reset van de cliënt, omdat het probleem
met NFS niet opgelost kan worden.Hoewel de enige correcte oplossing de
aanschaf van een snellere en betere Ethernet adapter voor het
&os; systeem is, is er zo om het probleem heen te werken dat het
werkbaar is. Als &os; de server is, kan de
optie gebruikt worden bij het
aankoppelen door de cliënt. Als het &os; systeem de
cliënt is, dan dient het
NFS-bestandssysteem aangekoppeld te worden met de optie
. Deze opties kunnen het vierde
veld zijn in een regel in fstab voor
automatische aankoppelingen en bij handmatige aankoppelingen met
&man.mount.8; kan de parameter gebruikt
worden.Soms wordt een ander probleem voor dit probleem versleten,
als servers en cliënten zich op verschillende netwerken
bevinden. Als dat het geval is, dan dient
vastgesteld te worden dat routers de
UDP informatie op de juiste wijze routeren,
omdat er anders nooit NFS-verkeer gerouteerd kan worden.In de volgende voorbeelden is fastws de
host(interface)naam van een hoog presterend werkstation en
freebox is de host(interface)naam van een &os;
systeem met een Ethernet adapter die mindere prestaties levert.
/sharedfs wordt het geëxporteerde
NFS-bestandssysteem (zie &man.exports.5;) en
/project wordt het koppelpunt voor het
geëxporteerde bestandssysteem op de cliënt.
In sommige gevallen kunnen applicaties beter draaien als
extra opties als of
en gebruikt
worden.Voorbeelden voor het &os; systeem (freebox)
als de cliënt in /etc/fstab op
freebox:fastws:/sharedfs /project nfs rw,-r=1024 0 0Als een handmatig aankoppelcommando op
freebox:&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /projectVoorbeelden voor het &os; systeem als de server in
/etc/fstab op
fastws:freebox:/sharedfs /project nfs rw,-w=1024 0 0Als een handmatig aankoppelcommando op
fastws:&prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /projectBijna iedere 16–bit Ethernet adapter werkt zonder de
hierboven beschreven restricties op de lees- en
schrijfgrootte.Voor wie het wil weten wordt nu beschreven wat er gebeurt
als de fout ontstaan, wat ook duidelijk maakt waarom het niet
hersteld kan worden. NFS werkt meestal met een
blockgrootte van 8 K (hoewel het mogelijk
is dat er kleinere fragmenten worden verwerkt). Omdat de
maximale grootte van een Ethernet pakket rond de 1500 bytes
ligt, wordt een block opgesplitst in meerdere
Ethernetpakketten, hoewel het hoger in de code nog steeds
één eenheid is, en wordt ontvangen, samengevoegd en
bevestigd als een eenheid. De hoog
presterende werkstations kunnen de pakketten waaruit een
NFS-eenheid bestaat bijzonder snel naar buiten pompen. Op de
kaarten met minder capaciteit worden de eerdere pakketten door
de latere pakketten van dezelfde eenheid ingehaald voordat ze
bij die host zijn aangekomen en daarom kan de eenheid niet
worden samengesteld en bevestigd. Als gevolg daarvan ontstaat
er op het werkstation een timeout en probeert die de eenheid
opnieuw te sturen, maar dan weer de hele eenheid van 8 K,
waardoor het proces wordt herhaald, ad infinitum.Door de grootte van de eenheid kleiner te houden dan de
grootte van een Ethernet pakket, is het zeker dat elk
Ethernetpakket dat compleet is aangekomen bevestigd kan worden,
zodat de deadlock niet ontstaat.Toch kan een PC systeem nog wel overrompeld worden als hoog
presterende werkstations er op inhakken, maar met de betere
netwerkkaarten valt het dan in ieder geval niet om door de NFS
eenheden. Als het systeem toch wordt
overrompeld, dan worden de betrokken eenheden opnieuw verstuurd
en dan is de kans groot dat ze worden ontvangen, samengevoegd en
bevestigd.BillSwingleGeschreven door EricOgrenVerbeterd door UdoErdelhoffNetwerkinformatiesysteem (NIS/YP)Wat is het?NISSolarisHP-UXAIXLinuxNetBSDOpenBSDNIS,
dat staat voor Netwerkinformatiediensten (Network Information
Services), is ontwikkeld door Sun Microsystems om het beheer van
&unix; (origineel &sunos;) systemen te centraliseren.
Tegenwoordig is het eigenlijk een industriestandaard geworden.
Alle grote &unix; achtige systemen (&solaris;, HP-UX, &aix;,
&linux;, NetBSD, OpenBSD, &os;, enzovoort) ondersteunen NIS.yellow pagesNISNIS
stond vroeger bekend als Yellow Pages, maar vanwege problemen
met het handelsmerk heeft Sun de naam veranderd. De oude term,
en yp, wordt nog steeds vaak gebruikt.NISdomeinenHet is een op RPC-gebaseerd cliënt/serversysteem
waarmee een groep machines binnen een NIS-domein een
gezamenlijke verzameling met instellingenbestanden kan delen.
Hierdoor kan een beheerder NIS-systemen opzetten met een
minimaal aantal instellingen en vanaf een centrale lokatie
instellingen toevoegen, verwijderen en wijzigen.Windows NTHet is te vergelijken met het &windowsnt; domeinsysteem en
hoewel de interne implementatie van de twee helemaal niet
overeenkomt, is de basisfunctionaliteit vergelijkbaar.Termen en processen om te onthoudenEr zijn een aantal termen en belangrijke
gebruikersprocessen die een rol spelen bij het implementeren
van NIS op &os;, zowel bij het maken van een NIS-server als bij
het maken van een systeem dan NIS-cliënt is:rpcbindportmapTermBeschrijvingNIS-domeinnaamEen NIS-masterserver en al zijn cliënten
(inclusief zijn slave master) hebben een NIS-domeinnaam.
Vergelijkbaar met een &windowsnt; domeinnaam, maar de
NIS-domeinnaam heeft niets te maken met
DNS.rpcbindMoet draaien om RPC (Remote
Procedure Call in te schakelen, een netwerkprotocol dat
door NIS gebruikt wordt). Als
rpcbind niet draait, dan kan
er geen NIS-server draaien en kan een machine ook geen
NIS-cliënt zijn.ypbindVerbindt een NIS-cliënt aan
zijn NIS-server. Dat gebeurt door met de NIS-domeinnaam
van het systeem en door het gebruik van
RPC te verbinden met de server.
ypbind is de kern van
cliënt-server communicatie in een NIS-omgeving.
Als ypbind op een machine
stopt, dan kan die niet meer bij de NIS-server komen.ypservHoort alleen te draaien op NIS-servers. Dit is
het NIS-serverproces zelf. Als &man.ypserv.8; stopt,
dan kan de server niet langer reageren op NIS-verzoeken
(hopelijk is er dan een slaveserver om het over te
nemen). Er zijn een aantal implementaties van NIS, maar
niet die op &os;, die geen verbinding met een andere
server proberen te maken als de server waarmee ze
verbonden waren niet meer reageert. In dat geval is
vaak het enige dat werkt het serverproces herstarten (of
zelfs de hele server) of het
ypbind-proces op de
cliënt.rpc.yppasswddNog een proces dat alleen op NIS-masterservers
hoort te draaien. Dit is een daemon waarbij
NIS-cliënten hun NIS-wachtwoorden kunnen wijzigen.
Als deze daemon niet draait, moeten gebruikers zich
aanmelden op de NIS-masterserver en daar hun wachtwoord
wijzigen.Hoe werkt het?Er zijn drie typen hosts in een NIS-omgeving: master
servers, slaveservers en cliënten. Servers zijn het
centrale depot voor instellingen voor een host. Masterservers
bevatten de geautoriseerd kopie van die informatie, terwijl
slaveservers die informatie spiegelen voor redundantie.
Cliënten verlaten zich op de servers om hun die informatie
ter beschikking te stellen.Op deze manier kan informatie uit veel bestanden gedeeld
worden. De bestanden master.passwd,
group en hosts
worden meestal via NIS gedeeld. Als een proces op een
cliënt informatie nodig heeft die normaliter in een van die
lokale bestanden staat, dan vraagt die het in plaats daarvan aan
de NIS-servers waarmee hij verbonden is.Soorten machinesNISmasterserverEen NIS-masterserver. Deze
server onderhoudt, analoog aan een &windowsnt; primaire
domeincontroller, de bestanden die door alle
NIS-cliënten gebruikt worden. De bestanden
passwd, group en
andere bestanden die door de NIS-cliënten gebruikt
worden staan op de masterserver.Het is mogelijk om één machine master
server te laten zijn voor meerdere NIS-domeinen. Dat
wordt in deze inleiding echter niet beschreven, omdat
die uitgaat van een relatief kleine omgeving.NISslaveserverNIS-slaveservers. Deze zijn
te vergelijken met &windowsnt; backup domain controllers.
NIS-slaveservers beheren een kopie van de bestanden met
gegevens op de NIS-master. NIS-slaveservers bieden
redundantie, die nodig is in belangrijke omgevingen. Ze
helpen ook om de belasting te verdelen met de master
server: NIS-cliënten maken altijd een verbinding met
de NIS-server die het eerst reageert en dat geldt ook voor
antwoorden van slaveservers.NIScliëntNIS-cliënten.
NIS-cliënten authenticeren, net als de meeste
&windowsnt; werkstations, tegen de NIS-server (of de
&windowsnt; domain controller in het geval van &windowsnt;
werkstations) bij het aanmelden.NIS/YP gebruikenDit onderdeel behandelt het opzetten van een
NIS-voorbeeldomgeving.PlannenEr wordt uitgegaan van een beheerder van een klein
universiteitslab. Dat lab, dat bestaat uit &os; machines,
kent op dit moment geen centraal beheer. Iedere machine heeft
zijn eigen /etc/passwd en
/etc/master.passwd. Die bestanden worden
alleen met elkaar in lijn gehouden door handmatige
handelingen. Als er op dit moment een gebruiker aan het lab
wordt toegevoegd, moet adduser op alle 15
machines gedraaid worden. Dat moet natuurlijk veranderen en
daarom is besloten het lab in te richten met NIS, waarbij twee
machines als server worden gebruikt.Het lab ziet er ongeveer als volgt uit:MachinenaamIP-adresRol Machineellington10.0.0.2NIS-mastercoltrane10.0.0.3NIS-slavebasie10.0.0.4Wetenschappelijk werkstationbird10.0.0.5Cliënt machinecli[1-11]10.0.0.[6-17]Andere cliënt machinesBij het voor de eerste keer instellen van een NIS-schema
is het verstandig eerst na te denken over hoe dat opgezet moet
worden. Hoe groot een netwerk ook is, er moeten een aantal
beslissingen gemaakt worden.Een NIS-domeinnaam kiezenNISdomeinnaamDit is wellicht niet de bekende
domeinnaam. Daarom wordt het ook de
NIS-domeinnaam genoemd. Bij de broadcast
van een cliënt om informatie wordt ook de naam van het
NIS-domein waar hij onderdeel van uitmaakt meegezonden. Zo
kunnen meerdere servers op een netwerk bepalen of er
antwoord gegeven dient te worden op een verzoek. De
NIS-domeinnaam is kan voorgesteld worden als de naam van een
groep hosts op op een of andere manier aan elkaar
gerelateerd zijn.Sommige organisaties kiezen hun Internet-domeinnaam als
NIS-domeinnaam. Dat wordt niet aangeraden omdat het voor
verwarring kan zorgen bij het debuggen van netwerkproblemen.
De NIS-domeinnaam moet uniek zijn binnen een netwerk en het
is handig als die de groep machines beschrijft waarvoor hij
geldt. Zo kan bijvoorbeeld de financiële afdeling van
Acme Inc. als NIS-domeinnaam acme-fin hebben.
In dit voorbeeld wordt de naam
test-domain gekozen.SunOSSommige besturingssystemen gebruiken echter (met name
&sunos;) hun NIS-domeinnaam als hun Internet-domeinnaam.
Als er machines zijn op een netwerk die deze restrictie
kennen, dan moet de Internet-domeinnaam
als de naam voor het NIS-domeinnaam gekozen worden.SysteemeisenBij het kiezen van een machine die als NIS-server wordt
gebruikt zijn er een aantal aandachtspunten. Een van de
onhandige dingen aan NIS is de afhankelijkheid van de
cliënten van de server. Als een cliënt de server
voor zijn NIS-domein niet kan bereiken, dan wordt die
machine vaak onbruikbaar. Door het gebrek aan gebruiker- en
groepsinformatie bevriezen de meeste systemen. Daarom moet
er een machine gekozen worden die niet vaak herstart hoeft
te worden of wordt gebruikt voor ontwikkeling. De
NIS-server is in het meest ideale geval een alleenstaande
server die als enige doel heeft NIS-server te zijn. Als een netwerk niet zwaar wordt gebruikt, kan de NIS-server op een
machine die ook andere diensten aanbiedt gezet worden, maar
het blijft belangrijk om ervan bewust te zijn dat als de
NIS-server niet beschikbaar is, dat nadelige invloed heeft
op alle NIS-cliënten.NIS-serversDe hoofdversies van alle NIS-informatie staan opgeslagen
op één machine die de NIS-masterserver heet. De databases waarin de informatie wordt opgeslagen heten
NIS-afbeeldingen. In &os; worden die afbeeldingen opgeslagen
in /var/yp/[domeinnaam] waar
[domeinnaam] de naam is van het
NIS-domein dat wordt bediend. Een enkele NIS-server kan
tegelijkertijd meerdere NIS-domeinen ondersteunen en het is
dus mogelijk dat er meerdere van zulke mappen zijn, een voor
ieder ondersteund domein. Ieder domein heeft zijn eigen
onafhankelijke verzameling afbeeldingen.In NIS-master- en -slaveservers worden alle NIS-verzoeken
door de daemon ypserv afgehandeld.
ypserv is verantwoordelijk voor het
ontvangen van inkomende verzoeken van NIS-cliënten, het
vertalen van de gevraagde domeinnaam en mapnaam naar een pad
naar het corresponderende databasebestand en het terugsturen
van de database naar de cliënten.Een NIS-masterserver opzettenNISserver opzettenHet opzetten van een master NIS-server kan erg
eenvoudig zijn, afhankelijk van de behoeften. &os; heeft
ondersteuning voor NIS als basisfunctie. Alleen de volgende
regels hoeven aan /etc/rc.conf
toegevoegd te worden en &os; doet de rest:nisdomainname="test-domain"
Deze regel stelt de NIS-domeinnaam in op
test-domain bij het instellen van het
netwerk (bij het opstarten).nis_server_enable="YES"
Dit geeft &os; aan de NIS-serverprocessen te starten
als het netwerk de volgende keer wordt opgestart.nis_yppasswdd_enable="YES"
Dit schakelt de daemon rpc.yppasswdd
in die, zoals al eerder aangegeven, cliënten
toestaat om hun NIS-wachtwoord vanaf een
cliënt-machine te wijzigen.Afhankelijk van de inrichting van NIS, kunnen er nog
meer instellingen nodig zijn. In het onderdeel NIS-servers die
ook NIS-cliënten zijn staan meer details.Nu hoeft alleen /etc/netstart als
supergebruiker uitgevoerd te worden. Dat stelt alles in met
gebruikmaking van de waarden uit
/etc/rc.conf.NIS-afbeeldingen initialiserenNISafbeeldingenDie NIS-afbeeldingen zijn
databasebestanden die in de map /var/yp
staan. Ze worden gemaakt uit de bestanden met instellingen
uit de map /etc van de NIS-master, met
één uitzondering:
/etc/master.passwd. Daar is een goede
reden voor, want het is niet wenselijk om de wachtwoorden
voor root en andere administratieve
accounts naar alle servers in het NIS-domein te sturen.
Daar moet voor het initialiseren van de NIS-afbeeldingen het
volgende uitgevoerd worden:&prompt.root; cp /etc/master.passwd /var/yp/master.passwd
&prompt.root; cd /var/yp
&prompt.root; vi master.passwdDan horen alle systeemaccounts verwijderd te worden
(bin, tty,
kmem, games,
enzovoort) en alle overige accounts waarvoor het niet
wenselijk is dat ze op de NIS-cliënten terecht komen
(bijvoorbeeld root en alle andere UID 0
(supergebruiker) accounts)./var/yp/master.passwd hoort niet
te lezen te zijn voor een groep of voor de wereld (dus
modus 600)! Voor het aanpassen van de rechten kan
chmod gebruikt worden.Tru64 UNIXAls dat is gedaan, kunnen de NIS-afbeeldingen
geïnitialiseerd worden. Bij &os; zit een script
ypinit waarmee dit kan (in de hulppagina
staat meer informatie). Dit script is beschikbaar op de
meeste &unix; besturingssystemen, maar niet op allemaal.
Op Digital UNIX/Compaq Tru64 UNIX heet het
ypsetup. Omdat er afbeeldingen voor een
NIS-master worden gemaakt, wordt de optie
meegegeven aan
ypinit. Aangenomen dat de voorgaande
stappen zijn uitgevoerd, kunnen de NIS-afbeeldingen gemaakt
worden op de volgende manier:ellington&prompt.root; ypinit -m test-domain
Server Type: MASTER Domain: test-domain
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
At this point, we have to construct a list of this domains YP servers.
rod.darktech.org is already known as master server.
Please continue to add any slave servers, one per line. When you are
done with the list, type a <control D>.
master server : ellington
next host to add: coltrane
next host to add: ^D
The current list of NIS servers looks like this:
ellington
coltrane
Is this correct? [y/n: y] y
[..uitvoer van het maken van de afbeeldingen..]
NIS Map update completed.
ellington has been setup as an YP master server without any errors.ypinit hoort
/var/yp/Makefile gemaakt te hebben uit
/var/yp/Makefile.dist. Als dit bestand is gemaakt, neemt dat bestand aan dat er in een omgeving met
een enkele NIS-server wordt gewerkt met alleen
&os;-machines. Omdat test-domain ook een
slaveserver bevat, dient
/var/yp/Makefile gewijzigd te
worden:ellington&prompt.root; vi /var/yp/MakefileAls de onderstaande regel niet al uitgecommentarieerd
is, dient dat alsnog te gebeuren:NOPUSH = "True"Een NIS-slaveserver opzettenNISslaveserverHet opzetten van een NIS-slaveserver is nog makkelijker
dan het opzetten van de master. Dit kan door aan te melden
op de slaveserver en net als voor de masterserver
/etc/rc.conf te wijzigen. Het enige
verschil is dat nu de optie
gebruikt wordt voor het draaien van
ypinit. Met de optie
moet ook de naam van de NIS-master
meegegeven worden. Het commando ziet er dus als volgt uit:coltrane&prompt.root; ypinit -s ellington test-domain
Server Type: SLAVE Domain: test-domain Master: ellington
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
There will be no further questions. The remainder of the procedure
should take a few minutes, to copy the databases from ellington.
Transferring netgroup...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byuser...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byhost...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring group.bygid...
ypxfr: Exiting: Map successfully transferred
Transferring group.byname...
ypxfr: Exiting: Map successfully transferred
Transferring services.byname...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.byname...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.byname...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring netid.byname...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring ypservers...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byname...
ypxfr: Exiting: Map successfully transferred
coltrane has been setup as an YP slave server without any errors.
Don't forget to update map ypservers on ellington.Nu hoort er een map
/var/yp/test-domain te zijn waarin
kopieë van de NIS-masterserver afbeeldingen staan. Die
moeten bijgewerkt blijven. De volgende regel in
/etc/crontab op de slaveservers regelt
dat:20 * * * * root /usr/libexec/ypxfr passwd.byname
21 * * * * root /usr/libexec/ypxfr passwd.byuidMet de bovenstaande twee regels wordt de slave
gedwongen zijn afbeeldingen met de afbeeldingen op de
masterserver te synchroniseren. Hoewel dit niet verplicht
is, omdat de masterserver probeert veranderingen aan de
NIS-afbeeldingen door te geven aan zijn slaves, is het wel
verstandig om een slave tot bijwerken te dwingen, omdat
wachtwoordinformatie van vitaal belang is voor systemen die
van de server afhankelijk zijn. Dit is des te belangrijker
op drukke netwerken, omdat daar het bijwerken van
afbeeldingen niet altijd compleet afgehandeld hoeft te
worden.Nu kan ook op de slaveserver het commando
/etc/netstart uitgevoerd worden, dat op
zijn beurt de NIS-server start.NIS-cliëntenEen NIS-cliënt maakt wat heet een verbinding
(binding) met een NIS-server met de daemon
ypbind. ypbind
controleert het standaarddomein van het systeem (zoals
ingesteld met domainname) en begint met het
broadcasten van RPC-verzoeken op het lokale netwerk. Die
verzoeken bevatten de naam van het domein waarvoor
ypbind een binding probeert te maken. Als
een server die is ingesteld om het gevraagde domein te
bedienen een broadcast ontvangt, dan antwoordt die aan
ypbind dat dan het IP-adres van de server
opslaat. Als er meerdere servers beschikbaar zijn, een master
en bijvoorbeeld meerdere slaves, dan gebruikt
ypbind het adres van de eerste server die
antwoord geeft. Vanaf dat moment stuurt de cliënt alle
NIS-verzoeken naar die server. ypbindpingt de server zo nu en dan om te controleren
of die nog draait. Als er na een bepaalde tijd geen antwoord
komt op een ping, dan markeert ypbind het
domein als niet verbonden en begint het broadcasten opnieuw,
in de hoop dat er een andere server wordt gelocaliseerd.Een NIS-cliënt opzettenNIScliënt instellenHet opzetten van een &os; machine als NIS-cliënt is
redelijk doorzichtig:Wijzig /etc/rc.conf en voeg de
volgende regels toe om de NIS-domeinnaam in te stellen
en ypbind mee te laten starten bij
het starten van het netwerk:nisdomainname="test-domain"
nis_client_enable="YES"Om alle mogelijke regels voor accounts uit de
NIS-server te halen, dienen alle gebruikersaccounts uit
/etc/master.passwd verwijderd te
worden en dient met vipw de volgende
regel aan het einde van het bestand geplaatst te
worden:+:::::::::Door deze regel wordt alle geldige accounts
in de wachtwoordafbeelding van de NIS-server toegang
gegeven. Er zijn veel manieren om de NIS-cliënt
in te stellen door deze regel te veranderen. In het
onderdeel netgroepen
hieronder staat meer informatie. Zeer gedetailleerde
informatie staat in het boek NFS en NIS
beheren van O'Reilly.Er moet tenminste één lokale account
behouden blijven (dus niet geïmporteerd via NIS)
in /etc/master.passwd en die
hoort ook lid te zijn van de groep
wheel. Als er iets mis is met
NIS, dan kan die account gebruikt worden om via het
netwerk aan te melden, root te
worden en het systeem te repareren.Om alle groepen van de NIS-server te importeren, kan
de volgende regel aan /etc/group
toegevoegd worden:+:*::Na het afronden van deze stappen zou met ypcat
passwd de passwd map van de NIS-server te zien
moeten zijn.NIS-beveiligingIn het algemeen kan iedere netwerkgebruiker een RPC-verzoek
doen uitgaan naar &man.ypserv.8; en de inhoud van de
NIS-afbeeldingen ontvangen, mits die gebruiker de domeinnaam
kent. Omdat soort ongeautoriseerde transacties te voorkomen,
ondersteunt &man.ypserv.8; de optie securenets,
die gebruikt kan worden om de toegang te beperken tot een
opgegeven aantal hosts. Bij het opstarten probeert
&man.ypserv.8; de securenets informatie te laden uit het bestand
/var/yp/securenets.Dit pad kan verschillen, afhankelijk van het pad dat
opgegeven is met de optie . Dit
bestand bevat regels die bestaan uit een netwerkspecificatie
en een netwerkmasker, gescheiden door witruimte. Regels die
beginnen met # worden als commentaar
gezien. Een voorbeeld van een securenetsbestand zou er zo uit
kunnen zien:# allow connections from local host -- mandatory
127.0.0.1 255.255.255.255
# allow connections from any host
# on the 192.168.128.0 network
192.168.128.0 255.255.255.0
# allow connections from any host
# between 10.0.0.0 to 10.0.15.255
# this includes the machines in the testlab
10.0.0.0 255.255.240.0Als &man.ypserv.8; een verzoek ontvangt van een adres dat
overeenkomt met een van de bovenstaande regels, dan wordt dat
verzoek normaal verwerkt. Als er geen enkele regel op het
verzoek van toepassing is, dan wordt het verzoek genegeerd en
wordt er een waarschuwing gelogd. Als het bestand
/var/yp/securenets niet bestaat, dan
accepteert ypserv verbindingen van iedere
host.Het programma ypserv ondersteunt ook het
pakket TCP Wrapper van Wietse Venema.
Daardoor kan een beheerder de instellingenbestanden van
TCP Wrapper gebruiken voor
toegangsbeperking in plaats van
/var/yp/securenets.Hoewel beide methoden van toegangscontrole enige vorm van
beveiliging bieden, zijn ze net als de geprivilegieerde
poorttest kwetsbaar voor IP spoofing aanvallen.
Al het NIS-gerelateerde verkeer hoort door een firewall
tegengehouden te worden.Servers die gebruik maken van
/var/yp/securenets kunnen wellicht
legitieme verzoeken van NIS-cliënten weigeren als die
gebruik maken van erg oude TCP/IP-implementaties. Sommige van
die implementaties zetten alle host bits op nul als ze een
broadcast doen en/of kijken niet naar het subnetmasker als ze
het broadcastadres berekenen. Hoewel sommige van die
problemen opgelost kunnen worden door de instellingen op de
cliënt aan te passen, zorgen andere problemen voor het
noodgedwongen niet langer kunnen gebruiker van NIS voor die
cliënt of het niet langer gebruiken van
/var/yp/securenets.Het gebruik van /var/yp/securenets
op een server met zo'n oude implementatie van TCP/IP is echt
een slecht idee en zal leiden tot verlies van
NIS-functionaliteit voor grote delen van een netwerk.tcpwrapperHet gebruik van het pakket TCP
Wrapper leidt tot langere wachttijden op de
NIS-server. De extra vertraging kan net lang genoeg zijn om
een timeout te veroorzaken in cliëntprogramma's, in het
bijzonder als het netwerk druk is of de NIS-server traag is.
Als een of meer cliënten last hebben van dat symptoom,
dan is het verstandig om de cliëntsysteem in kwestie
NIS-slaveserver te maken en naar zichzelf te laten wijzen.Aanmelden voor bepaalde gebruikers blokkerenIn het lab staat de machine basie, die
alleen faculteitswerkstation hoort te zijn. Het is niet
gewenst die machine uit het NIS-domein te halen, maar het
passwd bestand op de master NIS-server
bevat nu eenmaal accounts voor zowel de faculteit als de
studenten. Hoe kan dat opgelost worden?Er is een manier om het aanmelden van specifieke gebruikers
op een machine te weigeren, zelfs als ze in de NIS-database
staan. Daarvoor hoeft er alleen maar
–username
aan het einde van /etc/master.passwd op de
cliënt machine toegevoegd te worden, waar
username de gebruikersnaam van de
gebruiker die niet mag aanmelden is. Dit gebeurt bij voorkeur
met vipw, omdat vipw
de wijzigingen aan /etc/master.passwd
controleert en ook de wachtwoord database opnieuw bouwt na het
wijzigen. Om bijvoorbeeld de gebruiker
bill aan te kunnen laten aanmelden op
basie:basie&prompt.root; vipw[add -bill to the end, exit]
vipw: rebuilding the database...
vipw: done
basie&prompt.root; cat /etc/master.passwd
root:[password]:0:0::0:0:The super-user:/root:/bin/csh
toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5::0:0:System &:/:/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
+:::::::::
-bill
basie&prompt.root;UdoErdelhoffGeschreven door Netgroups gebruikennetgroepenDe methode uit het vorige onderdeel werkt prima als er maar
voor een beperkt aantal gebruikers en/of machines speciale
regels nodig zijn. Op grotere netwerken
gebeurt het gewoon dat er wordt vergeten
om een aantal gebruikers de aanmeldrechten op gevoelige machines
te ontnemen of dat zelfs iedere individuele machine aangepast
moet worden, waardoor het voordeel van NIS teniet wordt gedaan:
centraal beheren.De ontwikkelaars van NIS hebben dit probleem opgelost met
netgroepen. Het doel en de semantiek
kunnen vergeleken worden met de normale groepen die gebruikt
worden op &unix; bestandssystemen. De belangrijkste verschillen
zijn de afwezigheid van een numeriek ID en de mogelijkheid om
een netgroep aan te maken die zowel gebruikers als andere
netgroepen bevat.Netgroepen zijn ontwikkeld om gebruikt te worden voor grote,
complexe netwerken met honderden gebruikers en machines. Aan
de ene kant is dat iets Goeds. Aan de andere kant is het wel
complex en bijna onmogelijk om netgroepen met een paar
eenvoudige voorbeelden uit te leggen. Dat probleem wordt in de
rest van dit onderdeel duidelijk gemaakt.Stel dat de succesvolle implementatie van NIS in het lab de
interesse heeft gewekt van een centrale beheerclub. De volgende
taak is het uitbreiden van het NIS-domein met een aantal andere
machines op de campus. De onderstaande twee tabellen bevatten
de namen van de nieuwe gebruikers en de nieuwe machines met een
korte beschijving.Gebruikersna(a)m(en)Beschrijvingalpha,
betaGewone medewerkers van de IT-afdelingcharlie,
deltaJunior medewerkers van de IT-afdelingecho,
foxtrott,
golf, ...Gewone medewerkersable,
baker, ...StagiairsMachinena(a)m(en)Beschrijvingwar, death,
famine,
pollutionDe belangrijkste servers. Alleen senior
medewerkers van de IT-afdeling mogen hierop
aanmelden.pride, greed,
envy, wrath,
lust, slothMinder belangrijke servers. Alle leden van
de IT-afdeling mogen aanmelden op deze machines.one, two,
three, four,
...Gewone werkstations. Alleen
echte medewerkers mogen zich op
deze machines aanmelden.trashcanEen erg oude machine zonder kritische data. Zelfs
de stagiair mag deze doos gebruiken.Als deze restricties ingevoerd worden door iedere gebruiker
afzonderlijk te blokkeren, dan wordt er een
-user regel per
systeem toegevoegd aan de passwd voor
iedere gebruiker die niet mag aanmelden op dat systeem. Als er
maar één regel wordt vergeten, kan dat een
probleem opleveren. Wellicht lukt het nog dit juist in te
stellen bij de bouw van een machine, maar het wordt
echt vergeten de regels toe te voegen voor
nieuwe gebruikers in de productiefase. Murphy was tenslotte een
optimist.Het gebruik van netgroepen biedt in deze situatie een aantal
voordelen. Niet iedere gebruiker hoeft separaat afgehandeld te
worden. Een gebruik kan aan een of meer groepen worden
toegevoegd en aanmelden kan voor alle leden van zo'n groep
worden toegestaan of geweigerd. Als er een nieuwe machine wordt
toegevoegd, dan hoeven alleen de aanmeldrestricties voor de
netgroepen te worden ingesteld. Als er een nieuwe gebruiker
wordt toegevoegd, dan hoeft die alleen maar aan de juiste
netgroepen te worden toegevoegd. Die veranderingen zijn niet
van elkaar afhankelijk: geen voor iedere combinatie van
gebruiker en machine moet het volgende .... Als de
NIS-opzet zorgvuldig is gepland, dan hoeft er maar
één instellingenbestand gewijzigd te worden om
toegang tot machines te geven of te ontnemen.De eerst stap is het initialiseren van de NIS-afbeelding
netgroup. &man.ypinit.8; van &os; maakt deze map niet
standaard, maar als die is gemaakt, ondersteunt de
NIS-implementatie hem wel. Een lege map wordt als volgt
gemaakt:ellington&prompt.root; vi /var/yp/netgroupNu kan hij gevuld worden. In het gebruikte voorbeeld zijn
tenminste vier netgroepen: IT-medewerkers, IT-junioren, gewone
medewerkers en stagiars.IT_MW (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
USERS (,echo,test-domain) (,foxtrott,test-domain) \
(,golf,test-domain)
STAGS (,able,test-domain) (,baker,test-domain)IT_MW, IT_APP
enzovoort, zijn de namen van de netgroepen. Iedere groep tussen
haakjes bevat een of meer gebruikersnamen voor die groep. De
drie velden binnen een groep zijn:De na(a)m(en) van de host(s) waar de volgende onderdelen
geldig zijn. Als er geen hostnaam wordt opgegeven dan is de
regel geldig voor alle hosts. Als er wel een hostnaam wordt
opgegeven, dan wordt een donker, spookachtig en verwarrend
domein betreden.De naam van de account die bij deze netgroep hoort.Het NIS-domein voor de account. Er kunnen accounts uit
andere NIS-domeinen geïmporteerd worden in een netgroep
als een beheerder zo ongelukkig is meerdere NIS-domeinen te
hebben.Al deze velden kunnen jokerkarakters bevatten. Details
daarover staan in &man.netgroup.5;.netgroepenDe naam van een netgroep mag niet langer zijn dan acht
karakters, zeker niet als er andere besturingssystemen binnen
een NIS-domein worden gebruikt. De namen zijn
hoofdlettergevoelig: alleen hoofdletters gebruiken voor de
namen van netgroepen is een makkelijke manier om onderscheid
te kunnen maken tussen gebruikers-, machine- en
netgroepnamen.Sommige NIS-cliënten (andere dan die op &os; draaien)
kunnen niet omgaan met netgroepen met veel leden. Sommige
oudere versies van &sunos; gaan bijvoorbeeld lastig doen als
een netgroep meer dan 15 leden heeft.
Dit kan omzeild worden door meerdere subnetgroepen te maken
met 15 gebruikers of minder en een echte netgroep die de
subnetgroepen bevat:BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
BIGGRP3 (,joe31,domain) (,joe32,domain)
BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3Dit proces kan herhaald worden als er meer dan 225
gebruikers in een netgroep moeten.Het activeren en distribueren van de nieuwe NIS-map is
eenvoudig:ellington&prompt.root; cd /var/yp
ellington&prompt.root; makeHiermee worden drie nieuwe NIS-afbeeldingen gemaakt:
netgroup,
netgroup.byhost en
netgroup.byuser. Met &man.ypcat.1; kan
bekeken worden op de nieuwe NIS-afbeeldingen beschikbaar zijn:ellington&prompt.user; ypcat -k netgroup
ellington&prompt.user; ypcat -k netgroup.byhost
ellington&prompt.user; ypcat -k netgroup.byuserDe uitvoer van het eerste commando hoort te lijken op de
inhoud van /var/yp/netgroup. Het tweede
commando geeft geen uitvoer als er geen host-specifieke
netgroepen zijn ingesteld. Het derde commando kan gebruikt
worden om een lijst van netgroepen voor een gebruiker op te
vragen.Het instellen van de cliënt is redelijk eenvoudig. Om
de server war in te stellen hoeft alleen met
&man.vipw.8; de volgende regel in de regel daarna vervangen te
worden:+:::::::::Vervang de bovenstaande regel in de onderstaande.+@IT_MW:::::::::Nu worden alleen de gebruikers die in de netgroep
IT_MW geïmporteerd in de
wachtwoorddatabase van de host war, zodat
alleen die gebruikers zich kunnen aanmelden.Helaas zijn deze beperkingen ook van toepassing op de
functie ~ van de shell en alle routines
waarmee tussen gebruikersnamen en numerieke gebruikers ID's
wordt gewisseld. Met andere woorden: cd
~user werkt niet,
ls –l toont het numerieke ID in plaats
van de gebruikersnaam en find . –user joe
–print faalt met de foutmelding No
such user. Om dit te repareren moeten alle
gebruikers geïmporteerd worden, zonder ze het
recht te geven aan te melden op een server.Dit kan gedaan worden door nog een regel aan
/etc/master.passwd toe te voegen:+:::::::::/sbin/nologinDit betekent importeer alle gebruikers, maar vervang
de shell door /sbin/nologin. Ieder
veld in een passwd regel kan door een
standaardwaarde vervangen worden in
/etc/master.passwd.De regel +:::::::::/sbin/nologin moet
na +@IT_MW::::::::: komen. Anders krijgen
alle gebruikers die uit NIS-komen
/sbin/nologin als aanmeldshell.Na deze wijziging hoeft er nog maar één
NIS-afbeelding gewijzigd te worden als er een nieuwe medewerker
komt bij de IT-afdeling. Dezelfde aanpak kan gebruikt worden
voor de minder belangrijke servers door de oude regel
+::::::::: in de lokale versie van
/etc/master.passwd door iets als het
volgende te vervangen:+@IT_MW:::::::::
+@IT_APP:::::::::
+:::::::::/sbin/nologinVoor normale werkstations zijn het de volgende regels:+@IT_MW:::::::::
+@USERS:::::::::
+:::::::::/sbin/nologinEn dat zou allemaal leuk en aardig zijn als er niet na een
paar weken een beleidsverandering komt: de IT-afdeling gaat
stagiairs aannemen. De IT-stagiairs mogen de normale
werkstations en de minder belangrijke servers gebruiken en de
juniorbeheerders mogen gaan aanmelden op de hoofdservers. Dat
kan door een nieuwe groep IT_STAG te maken en
de nieuwe IT-stagiairs toe te voegen aan die netgroep en dan de
instellingen op iedere machine te gaan veranderen. Maar zoals
het spreekwoord zegt: Fouten in een centrale planning
leiden tot complete chaos.Deze situaties kunnen voorkomen worden door gebruik te maken
van de mogelijkheid in NIS om netgroepen in netgroepen op te
nemen. Het is mogelijk om rolgebaseerde netgroepen te maken.
Er kan bijvoorbeeld een netgroep BIGSRV
gemaakt worden om het aanmelden op de belangrijke servers te
beperken en er kan een andere netgroep
SMALLSRV voor de minder belangrijke servers
zijn en een derde netgroep met de naam
USERBOX voor de normale werkstations. Al die
netgroepen kunnen de netgroepen bevatten die op die machines
mogen aanmelden. De nieuwe regels in de NIS-afbeelding netgroup
zien er dan zo uit:BIGSRV IT_MW IT_APP
SMALLSRV IT_MW IT_APP ITSTAG
USERBOX IT_MW ITSTAG USERSDeze methode voor het instellen van aanmeldbeperkingen werkt
redelijk goed als er groepen van machines gemaakt kunnen worden
met identieke beperkingen. Helaas blijkt dat eerder
uitzondering dan regel. Meestal moet het mogelijk zijn om per
machine in te stellen wie zich wel en wie zich niet mogen
aanmelden.Daarom is het ook mogelijk om via machinespecifieke
netgroepen de hierboven aangegeven beleidswijziging op te
vangen. In dat scenario bevat
/etc/master.passwd op iedere machine twee
regels die met + beginnen. De eerste voegt de
netgroep toe met de accounts die op de machine mogen aanmelden
en de tweede voegt alle andere accounts toe met
/sbin/nologin als shell. Het is verstandig
om als naam van de netgroep de machinenaam in
HOOFDLETTERS te gebruiken. De regels zien er
ongeveer als volgt uit:+@MACHINENAAM:::::::::
+:::::::::/sbin/nologinAls dit voor alle machines is gedaan, dan hoeven de lokale
versies van /etc/master.passwd nooit meer
veranderd te worden. Alle toekomstige wijzigingen kunnen dan
gemaakt worden door de NIS-afbeelding te wijzigen. Hieronder
staat een voorbeeld van een mogelijke netgroep map voor het
beschreven scenario met een aantal toevoegingen:# Definieer eerst de gebruikersgroepen
IT_MW (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
DEPT2 (,golf,test-domain) (,hotel,test-domain)
DEPT3 (,india,test-domain) (,juliet,test-domain)
ITSTAG (,kilo,test-domain) (,lima,test-domain)
D_STAGS (,able,test-domain) (,baker,test-domain)
#
# En nu een aantal groepen op basis van rollen
USERS DEPT1 DEPT2 DEPT3
BIGSRV IT_MW IT_APP
SMALLSRV IT_MW IT_APP ITSTAG
USERBOX IT_MW ITSTAG USERS
#
# Een een groep voor speciale taken.
# Geef echo en golf toegang tot de anti-virus machine.
SECURITY IT_MW (,echo,test-domain) (,golf,test-domain)
#
# Machinegebaseerde netgroepen
# Hoofdservers
WAR BIGSRV
FAMINE BIGSRV
# Gebruiker india heeft toegang tot deze server nodig.
POLLUTION BIGSRV (,india,test-domain)
#
# Deze is erg belangrijk en heeft strengere toegangseisen nodig.
DEATH IT_MW
#
# De anti-virus machine als hierboven genoemd.
ONE SECURITY
#
# Een machine die maar door 1 gebruiker gebruikt mag worden.
TWO (,hotel,test-domain)
# [...hierna volgen de andere groepen]Als er een soort database wordt gebruikt om de
gebruikersaccounts te beheren, dan is het in ieder geval nodig
dat ook het eerste deel van de afbeelding met de
databaserapportagehulpmiddelen gemaakt kan worden. Dan krijgen
nieuwe gebruikers automatisch toegang tot de machines.Nog een laatste waarschuwing: het is niet altijd aan te
raden gebruik te maken van machinegebaseerde netgroepen. Als er
tientallen of zelfs honderden gelijke machines voor bijvoorbeeld
studentenruimtes worden uitgerold, dan is het verstandiger
rolgebaseerde netgroepen te gebruiken in plaats van
machinegebaseerde netgroepen om de grootte van de NIS-afbeelding
binnen de perken te houden.Belangrijk om te onthoudenIn een NIS-omgeving werken een aantal dingen wel
anders.Als er een gebruiker toegevoegd moet worden, dan moet
die alleen toegevoegd worden aan de
master NIS-server en mag niet vergeten worden dat
de NIS-afbeeldingen herbouwd moeten worden. Als
dit wordt vergeten, dan kan de nieuwe gebruiker nergens
anders aanmelden dan op de NIS-master. Als bijvoorbeeld een
nieuwe gebruiker jsmith toegevoegd moet
worden:&prompt.root; pw useradd jsmith
&prompt.root; cd /var/yp
&prompt.root; make test-domainEr kan ook adduser jsmith in plaats
van pw useradd jsmith gebruikt
worden.De beheeraccounts moeten buiten de
NIS-afbeeldingen gehouden worden. Het is niet
handig als de beheeraccounts en wachtwoorden naar machines
waarop gebruikers zich aanmelden die geen toegang tot die
informatie horen te hebben zouden gaan.De NIS-master en slave moeten veilig blijven
en zo min mogelijk niet beschikbaar zijn. Als de
machine wordt gehackt of als hij wordt uitgeschakeld, dan
kunnen er in theorie nogal wat mensen niet meer aanmelden.Dit is de belangrijkste zwakte van elk gecentraliseerd
beheersysteem. Als de NIS-servers niet goed beschermd
worden, dan worden veel gebruikers boos!NIS v1-compatibiliteitypserv voor &os; biedt wat
ondersteuning voor NIS v1 cliënten. De NIS-implementatie
van &os; gebruikt alleen het NIS v2 protocol, maar andere
implementaties bevatten ondersteuning voor het v1 protocol voor
achterwaartse compatibiliteit met oudere systemen. De
ypbind-daemons die bij deze systemen
zitten proberen een binding op te zetten met een NIS v1 server,
hoewel dat niet per se ooit nodig is (en ze gaan misschien nog
wel door met broadcasten nadat ze een antwoord van een v2
server hebben ontvangen). Het is belangrijk om te melden dat
hoewel ondersteuning voor gewone cliëntoproepen aanwezig
is, deze versie van ypserv geen
overdrachtsverzoeken voor v1-afbeeldingen af kan handelen.
Daarom kan ypserv niet gebruikt
worden als master of slave in combinatie met oudere NIS-servers
die alleen het v1 protocol ondersteunen. Gelukkig worden er in
deze tijd niet meer zoveel van deze servers gebruikt.NIS-servers die ook NIS-cliënten zijnHet is belangrijk voorzichtig om te gaan met het draaien van
ypserv in een multi-server domein
waar de server machines ook NIS-cliënten zijn. Het is in
het algemeen verstandiger om de servers te dwingen met zichzelf
te binden dan ze toe te staan een bindverzoek te broadcasten en
het risico te lopen dat ze een binding met elkaar maken. Er
kunnen vreemde fouten optreden als een van de servers plat gaat
als er andere servers van die server afhankelijk zijn. Na
verloop van tijd treedt op de cliënten wel een timeout op
en verbinden ze met een andere server, maar de daarmee gepaard
gaande vertraging kan aanzienlijk zijn en de foutmodus is nog
steeds van toepassing, omdat de servers dan toch weer opnieuw
een verbinding met elkaar kunnen vinden.Het is mogelijk een host aan een specifieke server te binden
door aan ypbind de vlag
mee te geven. Om dit niet iedere keer
handmatig na een herstart te hoeven uitvoeren, kan de volgende
regel worden opgenomen in /etc/rc.conf van
de NIS-server:nis_client_enable="YES" # start ook het cliënt gedeelte
nis_client_flags="-S NIS domain,server"In &man.ypbind.8; staat meer informatie.WachtwoordformatenNISwachtwoordformatenEen van de meest voorkomende problemen bij het implementeren
van NIS is de compatibiliteit van het wachtwoordformaat. Als
een NIS-server wachtwoorden gebruikt die met DES gecodeerd zijn,
dan kunnen alleen cliënten die ook DES gebruiken
ondersteund worden. Als er bijvoorbeeld &solaris;
NIS-cliënten in een netwerk zijn, dan moet er vrijwel zeker
gebruik gemaakt worden van met DES gecodeerde wachtwoorden.Van welk formaat cliënten en servers gebruik maken is
te zien in /etc/login.conf. Als een host
gebruik maakt van met DES gecodeerde wachtwoorden, dan staat er
in de klasse default een regel als de
volgende:default:\
:passwd_format=des:\
:copyright=/etc/COPYRIGHT:\
[Overige regels weggelaten]Andere mogelijke waarden voor
passwd_format zijn
blf en md5
(respectievelijk voor Blowfish en MD5 gecodeerde
wachtwoorden).Als er wijzigingen gemaakt zijn aan
/etc/login.conf dan moet de
login capability database herbouwd worden door het volgende
commando als root uit te voeren:&prompt.root; cap_mkdb /etc/login.confHet formaat van de wachtwoorden die al in
/etc/master.passwd staan worden niet
bijgewerkt totdat een gebruiker zijn wachtwoord voor de eerste
keer wijzigt nadat de login capability
database is herbouwd.Om te zorgen dat de wachtwoorden in het gekozen formaat zijn
gecodeerd, moet daarna gecontroleerd worden of de waarde
crypt_default in
/etc/auth.conf de voorkeur geeft aan het
gekozen formaat. Om dat te realiseren dient het gekozen formaat
vooraan gezet te worden in de lijst. Als er bijvoorbeeld
gebruik gemaakt wordt van DES gecodeerde wachtwoorden, dan hoort
de regel er als volgt uit te zien:crypt_default = des blf md5Als de bovenstaande stappen op alle &os; gebaseerde
NIS-servers en cliënten zijn uitgevoerd, dan is het zeker
dat ze het allemaal eens zijn over welk wachtwoordformaat er op
het netwerk wordt gebruikt. Als er problemen zijn bij de
authenticatie op een NIS-cliënt, dan is dit een prima
startpunt voor het uitzoeken waar de problemen vandaan komen.
Nogmaals: als er een NIS-server in een heterogene omgeving wordt
geplaatst, dan is het waarschijnlijk dat er gebruik gemaakt moet
worden van DES op alle systemen, omdat dat de laagst
overeenkomende standaard is.GregSutterGeschreven door Automatisch netwerk instellen (DHCP)Wat is DHCP?Dynamic Host Configuration ProtocolDHCPInternet Software Consortium (ISC)DHCP, het Dynamic Host Configuration Protocol, schrijft voor
hoe een systeem verbinding kan maken met een netwerk en hoe het
de benodigde informatie kan krijgen om met dat netwerk te
communiceren. &os; versies eerder dan 6.0 gebruiken de ISC
(Internet Software Consortium) DHCP-cliënt
(&man.dhclient.8;) implementatie. Latere versies gebruiken de
OpenBSD dhclient die uit OpenBSD 3.7
komt. Alle informatie over dhclient kan
zowel voor de ISC als de OpenBSD DHCP-cliënt gebruikt
worden. De DHCP-server zit bij de ISC-distributie.Wat behandeld wordtIn dit onderdeel worden de cliëntcomponenten van de
ISC en OpenBSD DHCP-cliënt en de servercomponenten van het
ISC DHCP-systeem beschreven. Het programma voor de cliënt,
dhclient, zit standaard in &os; en de server
is beschikbaar via de port net/isc-dhcp3-server. Naast de
onderstaande informatie, zijn de hulppagina's van
&man.dhclient.8;, &man.dhcp-options.5; en &man.dhclient.conf.5;
bruikbare bronnen.Hoe het werktUDPAls dhclient, de DHCP-cliënt, wordt
uitgevoerd op een cliëntmachine, dan begint die met het
broadcasten van verzoeken om instellingeninformatie. Standaard
worden deze verzoeken op UDP poort 68 gedaan. De server
antwoordt op UDP 67 en geeft de cliënt een IP-adres en
andere relevante netwerkinformatie, zoals een netmasker,
router en DNS-servers. Al die informatie komt in de vorm van
een DHCP lease en is voor een bepaalde tijd
geldig (die is ingesteld door de beheerder van de DHCP-server).
Op die manier kunnen IP-adressen voor cliënten die niet
langer met het netwerk verbonden zijn (stale) automatisch weer
ingenomen worden.DHCP-cliënten kunnen veel informatie van de server
krijgen. Er staat een uitputtende lijst in
&man.dhcp-options.5;.&os; integratie&os; integreert de OpenBSD of ISC DHCP-cliënt
dhclient volledig (afhankelijk van de
gebruikte &os; versie). Er is ondersteuning voor de
DHCP-cliënt in zowel het installatieprogramma als in het
basissysteem, waardoor het niet noodzakelijk is om kennis te
hebben van het maken van netwerkinstellingen voor het netwerk
waar een DHCP-server draait. dhclient is
onderdeel van &os;-distributies sinds 3.2.sysinstallDHCP wordt ondersteund door
sysinstall. Bij het instellen van
een netwerkinterface binnen
sysinstall is de tweede vraag:
Wil je proberen de interface met DHCP in te
stellen? Als het antwoord bevestigend luidt, dan wordt
dhclient uitgevoerd en als dat succesvol
verloopt, dan worden de netwerkinstellingen automatisch
ingevuld.Voor het gebruiken van DHCP bij het opstarten van het
systeem zijn twee instellingen nodig:DHCPvereistenHet apparaat bpf moet in de
kernel gecompileerd zijn. Dit kan door
device bpf aan het bestand met
kernelinstellingen toe te voegen en de kernel te herbouwen.
Meer informatie over het bouwen van een kernel staat in
.Het apparaat bpf is al
onderdeel van de GENERIC kernel die bij
&os; zit, dus als er geen sprake is van een aangepaste
kernel, dan hoeft er geen nieuwe gemaakt te worden om DHCP
aan te praat te krijgen.Voor de lezer die bijzonder begaan is met beveiliging,
is het belangrijk aan te geven dat
bpf ook het apparaat is waardoor
pakketsnuffelaars hun werk kunnen doen (hoewel ze nog
steeds als root moeten draaien).
bpfis
noodzakelijk voor DHCP, maar als beveiliging bijzonder
belangrijk is, dan hoort bpf
waarschijnlijk niet in een kernel te zitten omdat de
verwachting dat er in de toekomst ooit DHCP gebruikt gaat
worden.In /etc/rc.conf moet het volgende
worden opgenomen:ifconfig_fxp0="DHCP"fxp0 dient vervangen te worden door
de juiste aanduiding van de interface die dynamisch
ingesteld moet worden, zoals beschreven staat in .Als er een andere lokatie voor
dhclient wordt gebruikt of als er extra
parameters aan dhclient meegegeven moeten
worden, dan dient ook iets als het volgende toegevoegd te
worden:dhclient_program="/sbin/dhclient"
dhclient_flags=""DHCPserverDe DHCP-server, dhcpd, zit bij de
port net/isc-dhcp3-server
in de Portscollectie. Deze port bevat de ISC DHCP-server en
documentatie.BestandenDHCPinstellingenbestanden/etc/dhclient.confVoor dhclient is een
instellingenbestand /etc/dhclient.conf
nodig. Dat bestand bevat meestal alleen maar commentaar,
omdat de standaardinstellingen redelijk zinvol zijn. Dit
bestand wordt beschreven in &man.dhclient.conf.5;./sbin/dhclientdhclient is statisch gelinkt en staat
in /sbin. Er staat meer informatie
over dhclient in &man.dhclient.8;./sbin/dhclient-scriptdhclient-script is het
&os;-specifieke DHCP-cliënt instellingenscript. Het
wordt beschreven in &man.dhclient-script.8;, maar het is
niet nodig het te wijzigen om goed te werken./var/db/dhclient.leasesDe DHCP-cliënt houdt in dit bestand een database
bij van geldige leases, die naar een logboekbestand worden
geschreven. In &man.dhclient.leases.5; staat een iets
uitgebreidere beschrijving.Verder lezenHet DHCP-protocol staat volledig beschreven in RFC 2131.
Er is nog een bron van informatie ingesteld op .Een DHCP-server installeren en instellenWat behandeld wordtIn dit onderdeel wordt beschreven hoe een &os; systeem zo
ingesteld kan worden dat het opereert als DHCP-server door
gebruik te maken van de ISC (Internet Software Consortium)
implementatie van de DHCP-server.De server wordt niet geleverd als deel van &os; en om deze
dienst aan te bieden dient de port net/isc-dhcp3-server
geïnstalleerd te worden. In staat
meer informatie over de Portscollectie.DHCP-serverinstallatieDHCPinstallatieOm een &os; systeem in te stellen als DHCP-server moet het
apparaat &man.bpf.4; in de kernel zijn opgenomen. Om dit te
doen dient device bpf aan het bestand met
kernelinstellingen toegevoegd te worden en dient de kernel
herbouwd te worden. Meer informatie over het bouwen van
kernels staat in .Het apparaat bpf is al onderdeel
van de GENERIC kernel die bij &os;, dus
het is meestal niet nodig om een aangepaste kernel te bouwen
om DHCP aan de praat te krijgen.Het is belangrijk te vermelden dat
bpf ook het apparaat is waardoor
pakketsnuffelaars kunnen werken (hoewel de programma's die
er gebruik van maken wel bijzondere toegang nodig hebben).
bpfis
verplicht voor DHCP, maar als beveiliging van belang is, dan
is het waarschijnlijk niet verstandig om
bpf in een kernel op te nemen
alleen omdat er in de toekomst misschien ooit DHCP gebruikt
gaat worden.Hierna dient het standaardbestand
dhcpd.conf dat door de port net/isc-dhcp3-server is
geïnstalleerd gewijzigd te worden. Standaard is dit
/usr/local/etc/dhcpd.conf.sample en dit
bestand dient gekopieerd te worden naar
/usr/local/etc/dhcpd.conf voordat de
wijzigingen worden gemaakt.De DHCP-server instellenDHCPdhcpd.confdhcpd.conf is opgebouwd uit
declaraties over subnetten en hosts en is wellicht het meest
eenvoudig te beschrijven met een voorbeeld:option domain-name "example.com";
option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
}
host mailhost {
hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}Deze optie geeft het domein aan dat door cliënten
als standaard zoekdomein wordt gebruikt. In
&man.resolv.conf.5; staat meer over wat dat
betekent.Deze optie beschrijft een door komma's gescheiden
lijst met DNS-servers die de cliënt moet
gebruiken.Het netmasker dat aan de cliënten wordt
voorgeschreven.Een cliënt kan om een bepaalde duur vragen die
een lease geldig is. Anders geeft de server aan wanneer
de lease vervalt (in seconden).Dit is de maximale duur voor een lease die de server
toestaat. Als een cliënt vraagt om een langere
lease, dan wordt die wel verstrekt, maar is de maar geldig
gedurende max-lease-time seconden.Deze optie geeft aan of de DHCP-server moet proberen
de DNS-server bij te werken als een lease is geaccepteerd
of wordt vrijgegeven. In de ISC implementatie is deze
optie verplicht.Dit geeft aan welke IP-adressen in de groep met
adressen zitten die zijn gereserveerd om uitgegeven te
worden aan cliënten. Alle IP-adressen tussen de
aangegeven adressen en die adressen zelf worden aan
cliënten uitgegeven.Geeft de default gateway aan die aan de cliënten
wordt voorgeschreven.Het hardware MAC-adres van een host, zodat de
DHCP-server een host kan herkennen als die een verzoek
doet.Geeft een host aan die altijd hetzelfde IP-adres moet
krijgen. Hier kan een hostnaam gebruikt worden, omdat de
DHCP-server de hostnaam zelf opzoekt voordat de
lease-informatie terug wordt gegeven.Wanneer u klaar bent met het schrijven van uw
dhcpd.conf, dient u de DHCP-server in
/etc/rc.conf aan te zetten, door het
volgende toe te voegen:dhcpd_enable="YES"
dhcpd_ifaces="dc0"Vervang de interfacenaam dc0 door de
interface (of interfaces, gescheiden door witruimtes) waarop
uw DHCP-server moet luisteren naar DHCP-verzoeken van
cliënten.Daarna kunt u doorgaan met het starten van de server door
het volgende commando te geven:&prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh startAls er later wijzigingen in de instellingen gemaakt moeten
worden, dan is het belangrijk te onthouden dat het sturen van
een SIGHUP signaal naar
dhcpdniet
resulteert in het opnieuw laden van de instellingen, zoals
voor de meeste daemons geldt. Voor deze daemon dient een
signaal SIGTERM gestuurd te worden om het
proces te stoppen. Daarna dient de daemon met het hiervoor
beschreven commando weer gestart worden.BestandenDHCPinstellingenbestanden/usr/local/sbin/dhcpddhcpd is statisch gelinkt
en staat in /usr/local/sbin. In de
hulppagina voor &man.dhcpd.8; die meekomt met de port
staat meer informatie over
dhcpd./usr/local/etc/dhcpd.confdhcpd heeft een
instellingenbestand,
/usr/local/etc/dhcpd.conf, nodig
voordat de daemon diensten aan cliënten kan leveren.
Het bestand moet alle informatie bevatten die aan
cliënten gegeven moet worden en de informatie die
nodig is voor het draaien van de dienst. Dit
instellingenbestand staat beschreven in de hulppagina voor
&man.dhcpd.conf.5; die meekomt met de port./var/db/dhcpd.leasesDe DHCP-server houdt in dit bestand een database bij
met leases die zijn uitgegeven en die naar een logboek
worden geschreven. In de hulppagina &man.dhcpd.leases.5;
die bij de port zit wordt dit uitvoeriger beschreven./usr/local/sbin/dhcrelaydhcrelay wordt in
uitgebreidere omgevingen gebruikt waar de ene DHCP-server
een verzoek van een cliënt naar een andere
DHCP-server op een ander netwerk doorstuurt. Als deze
functionaliteit nodig is, kan die beschikbaar komen door
de port net/isc-dhcp3-relay te
installeren. De hulppagina voor &man.dhcrelay.8; die bij
de port zit bevat meer details.ChernLeeGeschreven door TomRhodesDanielGerzoDomeinnaamsysteem (DNS)OverzichtBIND&os; gebruikt standaard een versie van BIND (Berkeley
Internet Name Domain), wat de meest gebruikte implementatie van
het DNS-protocol is. DNS
is het protocol waarmee namen aan IP-adressen
gebonden worden en vice versa. Zo wordt bijvoorbeeld op een
zoekopdracht voor www.FreeBSD.org geantwoord met het
IP-adres van de webserver van het &os;
Project en op een zoekopdracht voor ftp.FreeBSD.org wordt geantwoord met het
IP-adres van de bijbehorende
FTP-machine. Het tegenovergestelde kan ook
gebeuren. Een zoekopdracht voor een IP-adres
kan de bijbehorende hostnaam opleveren. Het is niet nodig om
een naamserver te draaien om op een systeem zoekopdrachten met
DNS uit te voeren.&os; wordt momenteel standaard geleverd met de
BIND9 DNS-serversoftware.
Onze installatie biedt verbeterde beveilingsmogelijkheden, een
nieuwe indeling van het bestandssysteem en geautomatiseerde
configuratie van &man.chroot.8;.DNSDNS wordt op Internet onderhouden door
een enigszins complex systeem van autoritaire root, Top Level
Domain (TLD), en andere kleinschaligere
naamservers die individuele domeininformatie hosten en cachen.Op dit moment wordt BIND beheerd door het Internet Software
Consortium .TerminologieOm dit document te begrijpen moeten een aantal termen
gerelateerd aan DNS begrepen worden.resolverreverse DNSroot zoneTermDefinitieVoorwaartse DNSHet afbeelden van hostnamen op IP-adressen.Herkomst (origin)Verwijst naar het domein dat door een bepaald
zonebestand wordt gedekt.named, BIND,
naamserverVaak gebruikte namen voor het naamserverpakket BIND
in &os;.ResolverEen systeemproces waarmee een machine
zoekopdrachten om zoneinformatie aan een naamserver
geeft.Reverse DNSHet tegenovergestelde van voorwaartse DNS; het
afbeelden van IP-adressen op
hostnamen.RootzoneHet begin van de Internet zonehiërarchie.
Alle zones vallen onder de rootzone, net zoals alle
bestanden in een bestandssysteem onder de rootmap
vallen.ZoneEen individueel domein, subdomein of een deel van
de DNS die door dezelfde autoriteit
wordt beheerd.zonesvoorbeeldenVoorbeelden van zones:. is de rootzone.org. is een Top Level Domain
(TLD) onder de rootzone.example.org. is een
zone onder het TLD
org..1.168.192.in-addr.arpa is een zone die
naar alle IP-adressen verwijst die onder
de IP-ruimte 192.168.1.* vallen.Zoals te zien is staat het specifiekere deel van een
hostnaam aan de linkerkant. Zo is bijvoorbeeld example.org. specifieker dan
org. en is org.
specifieker dan de rootzone. De indeling van ieder deel van een
hostnaam lijkt veel op een bestandssysteem: de map
/dev valt onder de root, enzovoort.Redenen om een naamserver te draaienNaamservers bestaan in het algemeen in twee smaken: een
autoratieve naamserver en een caching naamserver.Er is een autoratieve naamserver nodig als:Het gewenst is om DNS-informatie aan
te bieden aan de wereld om met autoriteit op verzoeken te
antwoorden.Een domein, zoals example.org, is geregistreerd
en er IP-adressen aan hostnamen die
daaronder liggen toegewezen moeten worden.Een IP-adresblok omgekeerde
DNS-ingangen nodig heeft
(IP naar hostnaam).Een omgekeerde of tweede naamserver, die een slaaf wordt
genoemd, moet antwoorden op verzoeken.Er is een caching naamserver nodig als:Een lokale DNS-server kan cachen en
wellicht sneller kan antwoorden dan een naamserver die
verder weg staat.Als er een verzoek wordt gedaan voor www.FreeBSD.org, dan doet de resolver
meestal een verzoek bij de naamserver van de
ISP die de uplink levert en ontvangt daarop
een antwoord. Met een lokale, caching
DNS-server hoeft het verzoek maar
één keer door de caching
DNS-server naar de buitenwereld gedaan te
worden. Voor ieder volgend verzoek hoeft niet buiten het lokale
netwerk gekeken te worden omdat het al lokaal in de cache
staat.Hoe het werktOm begrijpelijke redenen heet de daemon BIND in &os;
named.BestandBeschrijving&man.named.8;De daemon BIND.&man.rndc.8;Naamserverbeheerprogramma./etc/namedbMap waar zoneinformatie van BIND staat./etc/namedb/named.confInstellingenbestand van de daemon.Afhankelijk van hoe en gegeven zone op de server is
geconfigureerd, staan de bestanden gerelateerd aan die zone in
de submappen master,
slave, of dynamic van de map /etc/namedb. Deze bestanden
bevatten de DNS-informatie die door de
naamserver als antwoord op zoekopdrachten gegeven zal worden.BIND startenBINDstartenOmdat BIND standaard wordt geïnstalleerd, is het
instellen relatief eenvoudig.De standaardconfiguratie van
named is die van een eenvoudige
resolvende naamserver, draaiende in een &man.chroot.8;-omgeving.
Gebruik het volgende commando om de server eenmaal met deze
configuratie te starten:&prompt.root; /etc/rc.d/named forcestartOm er zeker van te zijn dat de daemon
named elke keer bij het opstarten
gestart wordt, moet de volgende regel in
/etc/rc.conf gezet worden:named_enable="YES"Het is duidelijk dat er vele instelopties voor
/etc/namedb/named.conf zijn die buiten het
bereik van dit document vallen. Als u echter
geïnteresseerd bent in de opstartopties voor
named op &os;, bekijk dan de
named_*-vlaggen in
/etc/defaults/rc.conf en raadpleeg de
handleidingpagina &man.rc.conf.5;. De sectie is ook nuttig om te lezen.InstellingenbestandenBINDinstellingenbestandenInstellingenbestanden voor named
bevinden zich momenteel in /etc/namedb en moeten gewijzigd
worden voor gebruik, tenzij er alleen een eenvoudige resolver
nodig is. Hier vindt de meeste configuratie plaats.make-localhost gebruikenGa om een masterzone voor de lokale host in te stellen
naar de map /etc/namedb
en draai het volgende commando:&prompt.root; sh make-localhostAls alles goed ging zou er een nieuw bestand in de submap
master moeten staan.
De bestandsnamen zouden localhost.rev
voor de lokale domeinnaam en
localhost-v6.rev voor
IPv6-configuraties moeten zijn. Voor het
standaardinstellingenbestand staat de benodigde informatie in
het bestand named.conf./etc/namedb/named.conf// $FreeBSD$$
//
// In de handleidingpagina's named.conf(5) en named(8), en in de
// documentatie in /usr/share/doc/bind9 zijn meer details te vinden.
//
// Voor het opzetten van een autoratieve server is een grondig begrip
// van de werking van DNS noodzakelijk. Zelfs eenvoudige fouten kunnen // de werking verstoren voor beïnvloede partijen of veel onnodig
// Internetverkeer veroorzaken.
options {
directory "/etc/namedb";
pid-file "/var/run/named/pid"
dump-file "/var/dump/named_dump.db"
statistics-file "/var/stats/named.stats"
// Als named alleen als een lokale resolver gebruikt wordt, is dit een
// veilige standaardinstelling. Om named toegang tot het netwerk te
// verschaffen, dient deze optie gecommentarieerd te worden, het
// juiste IP-adres opgegeven te worden, of dient deze optie verwijderd
// te worden.
listen-on { 127.0.0.1; };
// Als u IPv6 aan heeft staan op dit systeem, dient deze optie
// uitgecommentarieerd te worden om als lokale resolver te dienen. Om
// toegang tot het netwerk te verschaffen, dient een IPv6-adres of het
// sleutelwoord "any" gegeven te worden.
// listen-on-v6 { ::1; };
// Als aanvulling op de "forwarders" clausule kan de naamserver ook
// worden aangegeven dat hij nooit zelf verzoeken mag maken, maar dat
// altijd aan zijn forwarders moet vragen door de volgende regel te
// activeren:
//
// forward only;
// Als er een DNS-server beschikbaar is bij een upstream provider dan
// kan het IP-adres op de regel hieronder ingegeven worden en kan die
// geactiveerd worden. Hierdoor wordt voordeel gehaald uit de cache,
// waardoor het algehele DNS-verkeer op het Internet vermindert.
/*
forwarders {
127.0.0.1;
};
*/Zoals al in het commentaar staat kan van een cache in de
uplink geprofiteerd worden als forwarders
ingeschakeld worden. Onder normale omstandigheden maakt een
naamserver recursief verzoeken tot het Internet op zoek naar
zekere naamservers tot er een antwoord komt waar het naar op
zoek is. Door de bovenstaande optie in te schakelen wordt
eerst de uplink naamserver (of de opgegeven naamserver)
gevraagd, waardoor er gebruik gemaakt kan worden van de cache
van die server. Als die uplink naamserver een drukke,
snelle naamserver is, kan het erg de moeite waard zijn om dit
aan te zetten.127.0.0.1 werkt hier
niet. Verander dit
IP-adres in een naamserver in de
uplink./*
* Als er een firewall tussen een host en naamservers staat waarmee
* gesproken moet worden, dan dient het commentaar voor de
* query-source directive hieronder verwijderd te worden. In eerdere
* versies van BIND werden verzoeken altijd via poort 53 gedaan, maar
* versie 8 en later van BIND gebruiken standaard een pseudo-random
* poort zonder privileges.
*/
// query-source address * port 53;
};
// Als er een lokale naamserver wordt gebruikt, vergeet dan niet om
// eerst 127.0.0.1 in /etc/resolv.conf te zetten zodat die gevraagd
// wordt. Controleer ook dat het in /etc/rc.conf is aangezet.
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "master/localhost.rev";
};
// RFC 3152
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" {
type master;
file "master/localhost-v6.rev";
};
// NB: De IP-adressen hieronder zijn bedoeld als voorbeeld en dienen
// niet gebruikt te worden!
//
// Voorbeeld instellingen voor slaafzones. Het kan handig zijn om
// tenminste slaaf te worden voor de zone waar de host onderdeel van
// uitmaakt. Bij uw netwerkbeheerder kan het IP-adres van de
// verantwoordelijke primaire zone nagevraagd worden.
//
// De omgekeerde lookupzone (IN-ADDR.ARPA) mag nooit vergeten worden!
// (Dit is genoemd naar de eerste bytes van het IP-adres, in omgekeerde
// volgorde, met daarachter ".IN-ADDR.ARPA".)
//
// Het is van groot belang om de werking van DNS en BIND te begrijpen
// voordat er een primaire zone wordt opgezet. Er zijn nogal wat
// onverwachte valkuilen. Het opzetten van een slaafzone is
// eenvoudiger.
//
// NB: Zet de onderstaande voorbeelden niet blindelings aan. :-)
// Gebruik in plaats hiervan echte namen en adressen.
/* Een voorbeeld van een masterzone
zone "example.net" {
type master;
file "master/example.net";
};
*/
/* Een voorbeeld van een dynamische zone
key "exampleorgkey" {
algorithm hmac-md5;
secret "sf87HJqjkqh8ac87a02lla==";
};
zone "example.org" {
type master;
allow-update {
key "exampleorgkey";
};
file "dynamic/example.org";
};
*/
/* Voorbeelden van voorwaartse en omgekeerde slaafzones
zone "example.com" {
type slave;
file "slave/example.com";
masters {
192.168.1.1;
}
};
zone "1.168.192.in-addr.arpa" {
type slave;
file "s/1.168.192.in-addr.arpa.bak";
masters {
192.168.1.1;
};
};
*/In named.conf zijn dit voorbeelden
van slaafregels voor een voorwaartse en een omgekeerde
zone.Voor iedere nieuwe zone die wordt aangeboden dient een
nieuwe instelling voor de zone aan
named.conf toegevoegd te worden.De eenvoudigste instelling voor de zone example.org kan er als volgt
uitzien:zone "example.org" {
type master;
file "master/example.org";
};De zone is een master, zoals aangegeven door het statement
, waarvan de zoneinformatie in
/etc/namedb/example.org staat, zoals het
statement aangeeft.zone "example.org" {
type slave;
file "slave/example.org";
};In het geval van de slaaf wordt de zoneinformatie voor een
zone overgedragen van de master naamserver en opgeslagen in
het ingestelde bestand. Als de masterserver het niet meer
doet of niet bereikbaar is, dan heeft de slaveserver de
overgedragen zoneinformatie nog en kan het die aanbieden.ZonebestandenBINDzonebestandenEen voorbeeldbestand voor een masterzone voor example.org (bestaande binnen
/etc/namedb/master/example.org) ziet er
als volgt uit:$TTL 3600 ; 1 uur
example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serienummer
10800 ; Verversen
3600 ; Opnieuw proberen
604800 ; Verlopen
86400 ; Minimum TTL
)
; DNS Servers
IN NS ns1.example.org.
IN NS ns2.example.org.
; MX Records
IN MX 10 mx.example.org.
IN MX 20 mail.example.org.
IN A 192.168.1.1
; Machinenamen
localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mail IN A 192.168.1.4
mx IN A 192.168.1.5
; Aliases
www IN CNAME @Iedere hostnaam die eindigt op een . is
een exacte hostnaam, terwijl alles zonder een
. op het einde refereert aan de oorsprong.
Zo wordt www bijvoorbeeld vertaald naar
www.origin.
In de zone uit het voorbeeld hierboven is de oorsprong
example.org., dus www
vertaalt naar www.example.org.De regels in een zonebestand volgen de volgende opmaak:recordnaam IN recordtype waardeDNSrecordsDe meest gebruikte DNS-records:SOAbegin van autoriteit (start of
authority)NSeen bevoegde (autoratieve) name
serverAeen hostadresCNAMEde canonieke naam voor een aliasMXmail exchangerPTReen domeinnaam pointer (gebruikt in
omgekeerde DNS)
example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serienummer
10800 ; Ververs na 3 uur
3600 ; Opnieuw proberen na 1 uur
604800 ; Verlopen na 1 week
86400 ) ; Minimum TTL van 1 dagexample.org.de domeinnaam, ook de oorsprong voor dit
zonebestand.ns1.example.org.de primaire/bevoegde naamserver voor deze
zone.admin.example.org.de persoon die verantwoordelijk is voor
deze zone, emailadres met @ vervangen.
admin@example.org wordt
admin.example.org.2006051501het serienummer van het bestand. Dit moet iedere
keer als het zonebestand wordt aangepast opgehoogd
worden. Tegenwoordig geven veel beheerders de voorkeur
aan de opmaak yyyymmddrr voor het
serienummer. 2006051501 betekent
dan dat het voor het laatst is aangepast op
15–05–2006, de laatste
01 betekent dat het zonebestand die
dag voor het eerst is aangepast. Het serienummer is
belangrijk omdat het slaafnaamservers aangeeft dat een
zone is bijgewerkt.
IN NS ns1.example.org.Hierboven staat een NS-regel. Voor iedere naamserver die
bevoegde antwoorden moet geven voor de zone hoort er zo'n
regel te zijn.
localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mx IN A 192.168.1.4
mail IN A 192.168.1.5Een A-record geeft een machinenaam aan. Hierboven is te
zien dat ns1.example.org zou
resolven naar 192.168.1.2.
IN A 192.168.1.1Deze regel kent IP-adres 192.168.1.1 toe aan de huidige
oorsprong, in dit geval example.org.
www IN CNAME @Een canoniek naamrecord wordt meestal gebruikt voor het
geven van aliassen aan een machine. In het voorbeeld is
www een alias naar de master
machine waarvan de naam gelijk is aan de domeinnaam example.org (192.168.1.1). CNAME's kunnen
gebruikt worden om een alias aan hostnamen te geven of om
round-robin één hostnaam naar meerdere machines
te laten wijzen.MX record
IN MX 10 mail.example.org.MX records geven aan welke mailservers verantwoordelijk
zijn voor het afhandelen van inkomende mail voor de zone.
mail.example.org is de hostnaam
voor de mailserver en 10 is de prioriteit voor die
mailserver.Het is mogelijk meerdere mailservers in te stellen met
prioriteiten 10, 20, enzovoorts. Een mailserver die probeert
mail af te leveren voor example.org probeert dat eerst
bij de MX met de hoogste prioriteit (het record met het
laagste prioriteitsnummer), daarna de tweede hoogste,
enzovoort, totdat de mail afgeleverd kan worden.Voor in-addr.arpa zonebestanden (omgekeerd DNS) wordt
dezelfde opmaak gebruikt, maar dan met PTR-regels in plaats
van A of CNAME.$TTL 3600
1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serienummer
10800 ; Ververs
3600 ; Opnieuw proberen
604800 ; Verlopen
3600 ) ; Minimum
IN NS ns1.example.org.
IN NS ns2.example.org.
1 IN PTR example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
4 IN PTR mx.example.org.
5 IN PTR mail.example.org.Dit bestand geeft de juiste IP-adressen voor hostnamen
in het voorbeelddomein hierboven.Caching naamserverBINDcaching naamserverEen caching naamserver is een naamserver die voor geen
enkele zone bevoegd is en alleen verzoeken doet en die onthoudt
voor later gebruik. Het opzetten ervan is eenvoudigweg het
opzetten van een naamserver zonder zones toe te voegen.BeveiligingHoewel BIND de meest gebruikte implementatie van DNS is, is
er altijd nog het beveiligingsvraagstuk. Soms worden er
mogelijke en te misbruiken beveiligingsgaten gevonden.Hoewel &os; named automatisch in
een &man.chroot.8;-omgeving plaatst; zijn er verschillende
andere beveiligingsmechanismen actief die zouden kunnen helpen
om mogelijke aanvallen op de DNS-dienst af te
wenden.Het is altijd verstandig om de CERT
beveiligingswaarschuwingen te lezen en een abonnement te nemen
op de &a.security-notifications; om bij te blijven met de
beveiligingsproblemen wat betreft Internet en &os;.Als er problemen ontstaan, kan het bijwerken van broncode
en het opnieuw bouwen van named
geen kwaad doen.Verder lezenBIND/named hulppagina's:
&man.rndc.8;, &man.named.8;, &man.named.conf.5;Officiële
ISC BIND paginaOfficieel ISC BIND
ForumBIND9
FAQO'Reilly DNS en
BIND 5e EditieRFC1034 -
Domeinnamen - Concepten en FaciliteitenRFC1035 -
Domeinnamen - Implementatie en SpecificatieMurrayStokelyGeschreven door Apache HTTP serverwebserversopzettenApacheOverzicht&os; wordt gebruikt om een paar van de drukste websites ter
wereld te draaien. De meeste webservers op Internet maken
gebruik van de Apache HTTP Server.
Apache softwarepakketten staan op de
&os; installatiemedia. Als Apache
niet bij de oorspronkelijke installatie van &os; is
meegeïnstalleerd, dan kan dat vanuit de port www/apache13 of www/apache22.Als Apache succesvol is
geïnstalleerd, moeten er instellingen gemaakt worden.In dit onderdeel wordt versie 1.3.X van de
Apache HTTP Server behandeld omdat
die het meest gebruikt wordt op &os;.
Apache 2.X biedt veel nieuwe
mogelijkheden, maar wordt hier niet beschreven. Meer
informatie over Apache 2.X is
te vinden op .InstellenApacheconfiguratiebestandHet belangrijkste bestand met instellingen voor de
Apache HTTP Server op &os; is
/usr/local/etc/apache/httpd.conf. Dit
bestand is een typisch &unix; tekstgebaseerd
instellingenbestand waarin regels met commentaar beginnen met
het karakter #. Het uitputtend beschrijven
van alle mogelijke instellingen valt buiten het bereik van dit
boek, dus worden alleen de meest gebruikte directieven
beschreven.ServerRoot "/usr/local"Hierin wordt de standaard mappenhiërarchie voor
de Apache installatie
aangegeven. Binaire bestanden staan in de submappen
bin en sbin van de serverroot en
bestanden met instellingen staan in etc/apache.ServerAdmin beheerder@beheer.adresHet adres waaraan problemen met de server gemaild
kunnen worden. Dit adres verschijnt op een aantal door de
server gegenereerde pagina's, zoals documenten met
foutmeldingen.ServerName www.example.comMet ServerName kan een hostnaam
ingesteld worden die wordt teruggezonden aan de
cliënten als de naam van de server anders is dan die
is ingesteld (gebruik bijvoorbeeld www in
plaats van de echte hostnaam).DocumentRoot "/usr/local/www/data"DocumentRoot: de map waaruit de
documenten worden geserveerd. Standaard worden alle
verzoeken uit deze map gehaald, maar er kunnen symbolische
links en aliassen gebruikt worden om naar andere locaties
te wijzen.Het is altijd een goed idee om reservekopieën te maken
van het instellingenbestand voor
Apache vóór het maken
van wijzigingen. Als de juiste instellingen gemaakt zijn, kan
Apache gestart worden.Apache draaienApachestarten of stoppenApache draait niet vanuit de
inetd super server zoals veel andere
netwerkdiensten. Hij is ingesteld om zelfstandig te draaien
vanwege beter prestaties voor het afhandelen van inkomende
HTTP-verzoeken van webbrowsers van cliënten. Er wordt een
shellscriptwrapper bijgeleverd om het starten, stoppen en
herstarten zo eenvoudig mogelijk te maken. Het volgende
commando start Apache voor de eerste
keer:&prompt.root; /usr/local/sbin/apachectl startDe server kan op iedere moment gestopt worden met:&prompt.root; /usr/local/sbin/apachectl stopNa het maken van wijzigingen aan het instellingenbestand
moet de dienst herstart worden:&prompt.root; /usr/local/sbin/apachectl restartOm Apache te herstarten zonder
bestaande connecties te verbreken:&prompt.root; /usr/local/sbin/apachectl gracefulIn &man.apachectl.8; staat meer informatie.Om Apache met het systeem mee te
starten kan de volgende regel aan
/etc/rc.conf worden toegevoegd:apache_enable="YES"of voor Apache 2.2:apache22_enable="YES"Als het nodig is additionele commandoregelopties op te geven
voor de Apachehttpd bij het opstarten, dan kunnen die in de
volgende regel in rc.conf meegegeven
worden:apache_flags=""Nu de webserver draait, is die te benaderen door een
webbrowser te wijzen naar http://localhost/.
De standaard webpagina is
/usr/local/www/data/index.html.Virtuele hostingApache ondersteunt twee
verschillende manieren van Virtuele Hosting. De eerste methode
is Naamgebaseerde Virtuele Hosting. Naamgebaseerde Virtuele
Hosting gebruikt de HTTP/1.1 headers van de cliënten om de
hostnaam uit te zoeken. Hierdoor kunnen meerdere domeinen
hetzelfde IP-adres delen.Om Apache gebruik te laten maken
van Naamgebaseerde Virtuele Hosting kan een regel als de
volgende in httpd.conf worden opgenomen:NameVirtualHost *Als een webserver www.domein.tld heet en er moet een
virtueel domein voor www.anderdomein.tld gaan draaien, dan
kunnen de volgende regels aan httpd.conf
worden toegevoegd:<VirtualHost *>
ServerName www.domein.tld
DocumentRoot /www/domein.tld
</VirtualHost>
<VirtualHost *>
ServerName www.anderdomein.tld
DocumentRoot /www/anderdomein.tld
</VirtualHost>De adressen en de paden uit dit voorbeeld kunnen in echte
implementaties uiteraard gewijzigd worden.Meer informatie over het opzetten van virtuele hosts staat
in de officiële documentatie voor
Apache op Apache modulesApachemodulesEr zijn veel verschillende
Apache modules die functionaliteit
toevoegen aan de basisdienst. De &os; Portscollectie biedt
op een eenvoudige manier de mogelijkheid om
Apache samen met de meeste populaire
add-on modules te installeren.mod_sslwebserverveiligSSLcryptografieDe module mod_ssl gebruikt de
bibliotheek OpenSSL om sterke cryptografie te leveren via de
protocollen Secure Sockets Layer (SSL v2/v3) en Transport
Layer Security (TLS v1). Deze module levert alles wat
nodig is om een getekend certificaat aan te vragen bij een
vertrouwde certificaatautoriteit om een veilige webserver
onder &os; te kunnen draaien.Als Apache nog niet is
geïnstalleerd, dan is er een versie van
Apache 1.3.X die
mod_ssl bevat en geïnstalleerd
kan worden met de www/apache13-modssl port.
SSL-ondersteuning is ook voor
Apache 2.X beschikbaar in de
port www/apache22, waar
het standaard is ingeschakeld.TaalbindingenEr zijn Apache-modules beschikbare voor de meeste grote
scriptingtalen. Deze modules maken het typisch mogelijk om
Apache-modules geheel in een
scriptingtaal te schrijven. Ze worden ook vaak gebruikt als
een persistente interpreter die in de server zit en die de
rompslomp van het starten van een externe interpreter en de
opstartvertraging voor dynamische websites vermijdt, zoals
beschreven in de volgende sectie.Dynamische websiteswebserversdynamischIn het afgelopen decennium hebben steeds meer bedrijven zich
op Internet gericht om hun omzet te verhogen en hun
zichtbaarheid te vergroten. Hiermee is ook de behoefte aan
interactieve webinhoud toegenomen. Hoewel sommige bedrijven
zoals µsoft; oplossingen hebben geïntroduceerd voor
hun eigen (propriëtaire) producten, heeft ook de open
source gemeenschap een antwoord op de vraag gegeven. Moderne
opties voor dynamische webinhoud zijn onder andere Django, Ruby
on Rails, mod_perl, en
mod_php.DjangoDjango is een BSD-gelicenseerd raamwerk ontworpen om
ontwikkelaars in staat te stellen om snel hoog presterende,
elegante webapplicaties te schrijven. Het biedt een vertaling
van objecten naar relaties zodat datatypes ontwikkeld kunnen
worden als Python-objecten, en er een rijke dynamische
databasetoegang voor die objecten kan worden geboden zonder
dat de ontwikkelaar ooit SQL hoeft te schrijven. Het biedt
ook een uitbreidbaar sjabloonsysteem zodat de applicatielogica
is gescheiden van de HTML-presentatie.Django is afhankelijk van
mod_python,
Apache, en een SQL-database-engine
naar keuze. De &os;-port zal al deze vereisten met de juiste
vlaggen voor u installeren.Django installeren met Apache2, mod_python3, en
PostgreSQL&prompt.root; cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQLAls Django en deze vereisten eenmaal zijn
geïnstalleerd, dient u een Django-projectmap te maken en
vervolgens Apache te configureren om de ingebakken
Python-interpreter te gebruiken om uw applicatie voor
specifieke URL's op uw site aan te roepen.Apache-configuratie voor Django/mod_pythonU moet een regel aan het Apache-bestand
httpd.conf toevoegen om Apache in te
stellen om verzoeken voor bepaalde URL's aan uw
webapplicatie door te geven:<Location "/">
SetHandler python-program
PythonPath "['/map/naar/uw/django-pakketten/'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mijnsite.settings
PythonAutoReload On
PythonDebug On
</Location>Ruby on RailsRuby on RailsRuby on Rails is een ader opensource webraamwerk dat een
volledige ontwikkelstack biedt en geoptimaliseerd is om
webontwikkelaars productiever te maken en snel krachtige
applicaties te laten ontwikkelen. Het kan eenvoudig vanuit
het portssysteem geïnstalleerd worden.&prompt.root; cd /usr/ports/www/rubygem-rails; make all install cleanmod_perlmod_perlPerlHet Apache/Perl
integratieproject brengt de volledige kracht van de
programmeertaal Perl en de Apache HTTP
Server samen. Met de module
mod_perl is het mogelijk om
Apache-modules volledig in Perl te
schrijven. Daarnaast voorkomt een ingebouwde persistente
interpreter in de server de rompslomp van het starten van een
externe interpreter en de nadelen van de opstarttijd van
Perl.mod_perl is op een paar
verschillende manieren beschikbaar. Om
mod_perl te gebruiken dient
herinnerd te worden dat mod_perl
1.0 alleen met Apache 1.3 werkt en
dat mod_perl 2.0 alleen met
Apache 2.X werkt.
mod_perl 1.0 is beschikbaar in
www/mod_perl en een
statisch gecompileerde versie is beschikbaar in www/apache13-modperl.
mod_perl 2.0 is beschikbaar in
www/mod_perl2.TomRhodesGeschreven door mod_phpmod_phpPHPPHP, ook bekend als PHP:
Hypertext Preprocessor, is een algemene scripttaal die
bijzonder geschikt is voor webontwikkeling. Het is mogelijk
de taal in te bedden in HTML en de syntaxis
is afgeleid van C, &java; en Perl met de bedoeling
webontwikkelaars in staat te stellen om snel dynamisch
samengestelde pagina's te schrijven.Om ondersteuning voor PHP5 toe te
voegen aan de Apache webserver kan
eerst de port lang/php5
geïnstalleerd worden.Als de port lang/php5
voor het eerst geïnstalleerd wordt, worden automatisch de
beschikbare OPTIONS weergegeven. Als er
geen menu wordt weergegeven, omdat de port lang/php5 reeds in het verleden is
geïnstalleerd, is het altijd mogelijk om het optiedialoog
weer te laten verschijnen door&prompt.root; make configuit te voeren in de map van de port.Controleer in het optiedialoog dat de optie
APACHEmod_php5
als een laadbare module voor de webserver
Apache bouwt.Een heleboel sites draaien nog steeds
PHP4 om verschillende redenen
(compatibiliteitszaken of reeds in gebruik genomen
webapplicaties). Als mod_php4
nodig is in plaats van mod_php5,
gebruik dan de port lang/php4. De port lang/php4 ondersteunt een groot
deel van de configuratie- en bouwopties van de port
lang/php5.Hiermee worden de modules die nodig zijn voor de
ondersteuning van dynamische
PHP-applicaties geïnstalleerd en
ingesteld. Controleer dat de volgende secties aan
/usr/local/etc/apache/httpd.conf zijn
toegevoegd:LoadModule php5_module libexec/apache/libphp5.soAddModule mod_php5.c
<IfModule mod_php5.c>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>Na voltooiing is een eenvoudige aanroep van het commando
apachectl voor een nette herstart nodig om
de module PHP te laden:&prompt.root; apachectl gracefulVoor toekomstig bijwerken van PHP zal
het commando make config niet nodig zijn;
de geselecteerde OPTIONS worden automatisch
bewaard door het &os; Ports raamwerk.De ondersteuning voor PHP in &os; is
extreem modulair waardoor de basisinstallatie zeer beperkt is.
Het is heel gemakkelijk om ondersteuning toe te voegen door de
port lang/php5-extensions
te gebruiken. Deze port biedt een menugestuurde interface voor
de installatie van PHP-uitbreidingen. Als
alternatief kunnen individuele uitbreidingen worden
geïnstalleerd door de juiste port te gebruiken.Om bijvoorbeeld ondersteuning voor de
MySQL databaseserver aan
PHP5 toe te voegen kan gewoonweg de port
databases/php5-mysql
geïnstalleerd worden:Na de installatie van een uitbreiding moet de
Apache-server herladen worden om de
nieuwe veranderingen in de configuratie op te pikken:&prompt.root; apachectl gracefulMurrayStokelyGeschreven door File Transfer Protocol (FTP)FTP serversOverzichtHet File Transfer Protocol (FTP) biedt gebruikers een
eenvoudige manier om bestanden van en naar een FTP server te
verplaatsen. &os; bevat FTP
server software, ftpd, in het
basissysteem. Hierdoor is het opzetten en beheren van een
FTP server op
&os; erg overzichtelijk.InstellenDe belangrijkste stap bij het instellen is de beslissing
welke accounts toegang krijgen tot de FTP server. Een normaal
&os; systeem heeft een aantal systeemaccounts die gebruikt
worden voor daemons, maar onbekende gebruikers mag niet
toegestaan worden van die accounts gebruikt te maken. In
/etc/ftpusers staat een lijst met
gebruikers die geen FTP toegang hebben. Standaard staan daar de
voorgenoemde accounts in, maar het is ook mogelijk om daar
gebruikers toe te voegen die geen FTP toegang mogen hebben.Het kan ook wenselijk zijn de FTP toegang voor sommige
gebruikers te beperken, maar niet onmogelijk te maken. Dit kan
met /etc/ftpchroot. In dat bestand staan
gebruikers en groepen waarop FTP toegangsbeperkingen van
toepassing zijn. In &man.ftpchroot.5; staan alle details die
hier niet beschreven zijn.FTPanoniemOm anonieme FTP toegang voor een server in te schakelen,
dient er een gebruiker ftp op een &os;
systeem aangemaakt te worden. Dan kunnen gebruikers op de
server aanmelden met de gebruikersnaam ftp
of anonymous en met ieder wachtwoord (de
geldende conventie schrijft voor dat dit een emailadres
van de gebruiker is). De FTP server roep bij een anonieme
aanmelding &man.chroot.2; aan, zodat er alleen toegang is tot de
thuismap van de gebruiker ftp.Er zijn twee tekstbestanden waarin welkomstberichten voor de
FTP-cliënten gezet kunnen worden. De inhoud van
/etc/ftpwelcome wordt getoond voordat
gebruikers een aanmeldprompt zien. Na een succesvolle
aanmelding wordt de inhoud van
/etc/ftpmotd getoond. Het genoemde pad is
relatief ten opzichte van de aanmeldomgeving, dus voor anonieme
gebruikers wordt ~ftp/etc/ftpmotd
getoond.Als een FTP server eenmaal correct is ingesteld, moet die
ingeschakeld worden in /etc/inetd.conf.
Daar moet het commentaarkarakter # voor de
bestaande ftpd regel verwijderd
worden:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lZoals is uitgelegd in ,
moet de configuratie van inetd worden
herladen nadat dit instellingenbestand is gewijzigd. Details
over het aanzetten van inetd op uw
systeem staan in .Als alternatief kan ftpd ook
gestart worden als een op zichzelf staande dienst. In dat geval
volstaat het om de juiste variabele in te stellen in
/etc/rc.conf:ftpd_enable="YES"Na het instellen van de bovenstaande variabele zal de op
zichzelf staande server gestart worden nadat de computer opnieuw
is opgestart, of het kan handmatig worden gestart door het
volgende commando als root uit te
voeren:&prompt.root; /etc/rc.d/ftpd startNu kan aangemeld worden op de FTP-server met:&prompt.user; ftp localhostBeherensysloglogboekbestandenFTPDe ftpd daemon gebruikt
&man.syslog.3; om berichten te loggen. Standaard plaatst de
systeemlogdaemon berichten over FTP in
/var/log/xferlog. De lokatie van het FTP
logboek kan gewijzigd worden door de volgende regels in
/etc/syslog.conf te wijzigen:ftp.info /var/log/xferlogFTPanoniemHet is verstandig na te denken over de gevaren die op de
loer liggen bij het draaien van een anonieme FTP server. Dat
geldt in het bijzonder voor het laten uploaden ven bestanden.
Het is dan goed mogelijk dat een FTP site een forum wordt om
commerciële software zonder licenties uit te wisselen of
erger. Als anonieme uploads toch nodig zijn, dan horen de
rechten op die bestanden zo te staan dat ze niet door andere
anonieme gebruikers gelezen kunnen worden tot er door een
beheerder naar gekeken is.MurrayStokelyGeschreven door Bestands- en printdiensten voor µsoft.windows;
cliënten (Samba)Samba serverMicrosoft WindowsbestandsserverWindows-cliëntenprintserverWindows-cliëntenOverzichtSamba is een populair open
source softwarepakket dat bestands- en printdiensten voor
µsoft.windows; cliënten biedt. Die cliënten
kunnen dan ruimte op een &os; bestandssysteem gebruiken alsof
het een lokale schijf is en &os; printers gebruiken alsof het
lokale printers zijn.Samba softwarepakketten horen
op de &os; installatiemedia te staan. Als
Samba bij de basisinstallatie niet
mee is geïnstalleerd, dan kan dat alsnog via de net/samba3 port of met het
pakket.InstellenEen standaardbestand met instellingen voor
Samba wordt geïnstalleerd als
/usr/local/etc/smb.conf.default. Dit
bestand dient gekopieerd te worden naar
/usr/local/etc/smb.conf en voordat
Samba gebruikt kan worden, moeten er
aanpassingen aan worden gemaakt.smb.conf bevat de instellingen voor
Samba, zoals die voor de printers en
de gedeelde bestandssystemen die gedeeld worden
met &windows; cliënten. Het pakket
Samba bevat een webgebaseerde
beheermodule die swat heet, waarmee
smb.conf op een eenvoudige manier ingesteld
kan worden.De Samba webbeheermodule gebruiken (SWAT)De Samba Webbeheermodule (SWAT) draait als een daemon
vanuit inetd. Daarom dient voor de
volgende regel uit /etc/inetd.conf het
commentaarkarakter verwijderd te worden voordat
swat gebruikt kan worden om
Samba in te stellen:swat stream tcp nowait/400 root /usr/local/sbin/swat swatZoals is uitgelegd in , moet de configuratie van
inetd worden herladen nadat dit
instellingenbestand is gewijzigd.Als swat is ingeschakeld in
inetd.conf, kan de module gebruikt worden
door met een browser een verbinding te maken met . Er dient aangemeld te
worden met het root account van het
systeem.Na succesvol aanmelden op de hoofdpagina voor de
Samba instellingen, is het mogelijk
de systeemdocumentatie te bekijken of te starten door op het
tabblad Globals te klikken. Het onderdeel
Globals correspondeert met de sectie
[global] in
/usr/local/etc/smb.conf.Systeembrede instellingenOf Samba nu wordt ingesteld
door /usr/local/etc/smb.conf direct te
bewerken of met swat, de eerste
instellingen die gemaakt moeten worden zijn de volgende:workgroupNT Domeinnaam of Werkgroepnaam voor de computers die
verbinding gaan maken met de server.netbiosnaamNetBIOSHiermee wordt de NetBIOS naam waaronder de
Samba server bekend zal zijn
ingesteld. Standaard is de naam het eerste gedeelte van
de DNS-naam van een host.server stringHiermee wordt de string ingesteld die te zien is als
het commando net view en een aantal
andere commando's die gebruik maken van de
beschrijvende tekst voor de server gebruikt worden.BeveiligingsinstellingenTwee van de belangrijkste instellingen in
/usr/local/etc/smb.conf zijn het gekozen
beveiligingsmodel en het wachtwoord voor
cliëntgebruikers. Deze worden met de volgende
instellingen gemaakt:securityDe twee meest gebruikte mogelijkheden hier zijn
security = share en
security = user. Als de
cliënten gebruikersnamen hebben die overeenkomen
met hun gebruikersnaam op de &os; machine, dan is het
verstandig om te kiezen voor beveiliging op
gebruikersniveau. Dit is het standaard
beveiligingsbeleid en kent als voorwaarde dat gebruikers
zich eerst moeten aanmelden voordat ze toegang krijgen
tot gedeelde bronnen.Bij beveiliging op shareniveau hoeft een cliënt
niet met een geldige gebruikersnaam en wachtwoord aan te
melden op de server voor het mogelijk is om een
verbinding te proberen te krijgen met een gedeelde bron.
Dit was het standaardbeveiligingsmodel voor oudere
versies van Samba.passdb backendNIS+LDAPSQL databaseSamba kent aan de
achterkant verschillende authenticatiemodellen.
Cliënten kunnen authenticeren met LDAP, NIS+, een
SQL-database of een aangepast wachtwoordbestand. De
standaard authenticatiemethode is
smbpasswd. Meer wordt hier niet
behandeld.Als aangenomen wordt dat de standaard achterkant
smbpasswd wordt gebruikt, dan moet
/usr/local/private/smbpasswd gemaakt
worden om Samba in staat te stellen
cliënten te authenticeren. Als het gewenst is om uw
&unix; gebruikersaccounts toegang te geven vanaf &windows;
cliënten, gebruik dan het volgende commando:&prompt.root; smbpasswd -a gebruikersnaamSinds Samba 3.0.23c is de
eigenlijke map voor authenticatiebestanden /usr/local/etc/samba. De
aanbevolen backend is nu tdbsam, en het
volgende commando dient gebruikt te worden om
gebruikersaccounts toe te voegen:&prompt.root; pdbedit gebruikersnaamIn de Official
Samba HOWTO staat meer informatie over instelopties.
Met de hier gegeven basisuitleg moet het mogelijk zijn
Samba draaiende te krijgen.Samba startenDe port net/samba3 voegt
een nieuw opstartscript toe, dat gebruikt kan worden om
Samba te beheren. Om dit script te
activeren, zodat het bijvoorbeeld gebruikt kan worden om
Samba te starten, stoppen, of te
herstarten, dient de volgende regel aan
/etc/rc.conf toegevoegd te worden:samba_enable="YES"Of, voor fijnkorrelig beheer:nmbd_enable="YES"smbd_enable="YES"Dit stelt Samba ook in om
automatisch tijdens het opstarten te starten.Vervolgens is het mogelijk om
Samba op elk moment te starten door
dit te typen:&prompt.root; /usr/local/etc/rc.d/samba start
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.Refereer aan voor meer
informatie over het gebruikt van rc-scripts.Samba bestaat feitelijk uit drie
afzonderlijke daemons. Het script
samba start de daemons
nmbd en
smbd. Als de winbind
naamresolutiediensten in smb.conf zijn
ingeschakeld, dan start ook de daemon
winbindd.Samba kan op ieder moment gestopt
worden met:&prompt.root; /usr/local/etc/rc.d/samba stopSamba is een complexe
softwaresuite met functionaliteit waarmee verregaande integratie
met µsoft.windows; netwerken mogelijk wordt. Informatie
die verder gaat dan de basisinstallatie staat op
.TomHukinsGeschreven door Tijd synchroniseren met NTPNTPOverzichtNa verloop van tijd gaat de tijd van een computer meestal
uit de pas lopen. Het Netwerk Tijd Protocol (NTP) kan ervoor
zorgen dat de tijd accuraat blijft.Veel diensten op Internet zijn afhankelijk, of hebben veel
voordeel, van het betrouwbaar zijn van de tijd. Zo ontvangt een
webserver bijvoorbeeld veel verzoeken om een bestand te sturen
als dat gewijzigd is sinds een bepaald moment. In een
LAN-omgeving is het van groot belang dat computers die bestanden
delen van eenzelfde server gesynchroniseerde tijd hebben zodat
de tijdstempels consistent blijven. Diensten zoals &man.cron.8;
zijn ook afhankelijk van een betrouwbare systeemtijd om
commando's op het ingestelde moment uit te voeren.NTPntpdBij &os; zit de &man.ntpd.8; NTP server die gebruikt kan worden om bij
andere NTP servers de tijd op
te vragen om de eigen klok gelijk te zetten of om de juiste tijd
te verstrekken aan andere apparaten.Passende NTP-servers kiezenNTPservers kiezenOm de tijd te synchroniseren moeten er één of
meer NTP-servers
beschikbaar zijn. Een lokale systeembeheerder of een ISP heeft
wellicht een NTP-server voor dit doel opgezet. Het is
verstandig om documentatie te raadplegen en te bekijken of dat
het geval is. Er is een online lijst
van publiek toegankelijke NTP-servers waarop een
NTP-server gezocht kan worden die in geografische zin dichtbij
een te synchroniseren computer ligt. Het is belangrijk te
voldoen aan het beleid voor de betreffende server en toestemming
te vragen als dat in de voorwaarden staat.Het is verstandig meerdere, niet van elkaar afhankelijke,
NTP-servers te kiezen voor het geval een van de servers niet
langer betrouwbaar is of niet bereikbaar is. &man.ntpd.8;
gebruikt de antwoorden die van andere servers ontvangen worden
op intelligente wijze: betrouwbare servers krijgen voorrang
boven onbetrouwbare servers.Machine instellenNTPinstellenBasisinstellingenntpdateAls het alleen de bedoeling is de tijd te synchroniseren
bij het opstarten van een machine, dan kan &man.ntpdate.8;
gebruikt worden. Dit kan van toepassing zijn op desktops die
regelmatig herstart worden en niet echt regelmatig
gesynchroniseerd hoeven te worden. Op sommige machines hoort
echter &man.ntpd.8; te draaien.Het gebruik van &man.ntpdate.8; bij het opstarten is ook
een goed idee voor machines waarop &man.ntpd.8; draait. De
&man.ntpd.8; wijzigt de tijd geleidelijk, terwijl
&man.ntpdate.8; gewoon de tijd instelt, hoe groot het verschil
tussen de bestaande tijd van een machine en de correcte tijd
ook is.Om &man.ntpdate.8; tijdens het opstarten in te schakelen
kan ntpdate_enable="YES" aan
/etc/rc.conf worden toegevoegd. Alle
voor de synchronisatie te gebruiken servers moeten dan, samen
met eventuele opties voor &man.ntpdate.8;, in
ntpdate_flags aangegeven worden.NTPntp.confAlgemene instellingenNTP wordt ingesteld met het bestand
/etc/ntp.conf in het formaat dat
beschreven staat in &man.ntp.conf.5;. Hieronder volgt een
eenvoudig voorbeeld:server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
driftfile /var/db/ntp.driftDe optie server geeft aan welke servers
er gebruikt moeten worden, met op elke regel een server. Als
de server wordt ingesteld met het argument
prefer, zoals bij ntplocal.example.com, dan krijgt die
server de voorkeur boven de andere. Een antwoord van een
voorkeursserver wordt genegeerd als dat significant afwijkt
van de antwoorden van de andere servers. In andere gevallen
wordt het gebruikt zonder rekening te houden met de andere
antwoorden. Het argument prefer wordt
meestal gebruikt voor NTP-servers waarvan bekend is dat ze erg
betrouwbaar zijn, zoals die met speciale
tijdbewakingshardware.De optie driftfile geeft aan welk
bestand gebruikt wordt om de offset van de klokfrequentie van
het systeem op te slaan. &man.ntpd.8; gebruikt die om
automatisch te compenseren voor het natuurlijke afwijken van
de tijd, zodat er zelfs bij gebrek aan externe bronnen een
redelijke accurate tijdsinstelling mogelijk is.De optie driftfile geeft aan welk
bestand gebruikt wordt om informatie over eerdere antwoorden
van NTP-servers die gebruikt worden op te slaan. Dit bestand
bevat interne informatie voor NTP. Het hoort niet door andere
processen gewijzigd te worden.Toegang tot een server instellenEen NTP-server is standaard toegankelijk voor alle hosts
op een netwerk. De optie restrict in
/etc/ntp.conf maakt het mogelijk om aan
te geven welke machines de dienst mogen benaderen.Voor het blokkeren van toegang voor alle andere machines
kan de volgende regel aan /etc/ntp.conf
toegevoegd worden:restrict default ignoreDit zal ook toegang van uw server naar alle servers die
vermeld staan in uw lokale configuratie verhinderen. Als u
uw NTP-server moet synchroniseren met een externe
NTP-server, dient u deze specifieke server toe te staan.
Lees de handleiding voor &man.ntp.conf.5; voor meer
informatie.Om alleen machines op bijvoorbeeld het lokale netwerk toe
te staan hun tijd te synchroniseren met een server, maar ze
tegelijkertijd niet toe te staan om de server te draaien of de
server als referentie voor synchronisatie te gebruiken, kan de
volgende regel toegevoegd worden:restrict 192.168.1.0 mask 255.255.255.0 nomodify notrapHierboven is 192.168.1.0
een IP-adres op een LAN en 255.255.255.0 is het bijbehorende
netwerkmasker./etc/ntp.conf mag meerdere regels met
restrict bevatten. Meer details staan in
het onderdeel Access Control Support van
&man.ntp.conf.5;.De NTP-server draaienDe NTP-server kan bij het opstarten gestart worden door de
regel ntpd_enable="YES" aan
/etc/rc.conf toe te voegen. Om extra
opties aan &man.ntpd.8; mee te geven kan de parameter
ntpd_flags in
/etc/rc.conf gebruikt worden.Om de server zonder een herstart van de machine te starten
kan ntpd uitgevoerd worden, met toevoeging
van de parameters uit ntpd_flags in
/etc/rc.conf. Bijvoorbeeld:&prompt.root; ntpd -p /var/run/ntpd.pidntpd gebruiken met een tijdelijke
Internetverbinding&man.ntpd.8; heeft geen permanente verbinding met een
netwerk nodig om goed te werken. Maar als er gebruik gemaakt
wordt van een inbelverbinding, is het wellicht verstandig om
ervoor te zorgen dat uitgaande NTP-verzoeken geen uitgaande
verbinding kunnen starten. Als er gebruik gemaakt wordt van
gebruikers-PPP, kunnen er filter commando's
ingesteld worden in /etc/ppp/ppp.conf.
Bijvoorbeeld:set filter dial 0 deny udp src eq 123
# NTP-verkeer zorgt niet voor uitbellen
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Inkomend NTP-verkeer houdt de verbinding niet open
set filter alive 1 deny udp dst eq 123
# Uitgaand NTP-verkeer houdt de verbinding niet open
set filter alive 2 permit 0/0 0/0Meer details staan in de sectie PACKET
FILTERING in &man.ppp.8; en in de voorbeelden in
/usr/share/examples/ppp/.Sommige Internetproviders blokkeren lage poorten, waardoor
NTP niet kan werken omdat er nooit een antwoord ontvangen kan
worden door een machine.Meer informatieHTML-documentatie voor de NTP-server staat in
/usr/share/doc/ntp/.TomRhodesBijgedragen door Hosts op afstand loggen met
syslogdHet omgaan met systeemlogs is een cruciaal aspect van zowel
beveiligings- als systeembeheer. Het in de gaten houden van
logbestanden van meerdere hosts kan nogal onhandelbaar worden als
deze hosts over (middel)grote netwerken zijn verspreid, of wanneer
ze deel zijn van verschillende soorten netwerken. In deze
gevallen kan het op afstand loggen het gehele proces een stuk
aangenamer maken.Het centraal loggen naar een specifieke loghost kan wat van de
administratieve last van het beheren van logbestanden wegnemen.
Het aggregeren, samenvoegen, en roteren van logbestanden kan op
één enkele plaats worden ingesteld, door gebruik te
maken van de eigen gereedschappen van &os;, zoals &man.syslogd.8;
en &man.newsyslog.8;. In de volgende voorbeeldconfiguratie zal
host A, genaamd logserv.example.com, loginformatie voor het
plaatselijke netwerk verzamelen. Host B, genaamd
logclient.example.com, zal
loginformatie aan het serversysteem doorgeven. In echte
configuraties hebben beide hosts degelijke voor- en terugwaartse
DNS of regels in
/etc/hosts nodig. Anders worden de gegevens
geweigerd door de server.Configuratie van de logserverLogservers zijn machines die zijn geconfigureerd om
loginformatie van hosts op afstand te accepteren. In de meeste
gevallen is dit om de configuratie te vergemakkelijken, in
andere gevallen kan het gewoon een beheersbeslissing zijn.
Ongeacht de reden zijn er enkele eisen voordat er verder wordt
gegaan.Een juist geconfigureerde logserver voldoet aan de volgende
minimale eisen:De regels van de firewall staan toe dat
UDP wordt doorgegeven op poort 514 van
zowel de cliënt als de server;syslogd is ingesteld om berichten op afstand van
cliëntmachines te accepteren;De syslogd-server en alle cliëntmachines moeten
geldige regels hebben voor zowel voorwaartse als
terugwaartse DNS, of correct zijn
geconfigureerd in /etc/hosts.Om de logserver te configureren, moet de cliënt vermeld
zijn in /etc/syslog.conf, en moet de
logfaciliteit zijn gespecificeerd:+logclient.example.com
*.* /var/log/logclient.logMeer informatie over de verschillende ondersteunde en
beschikbare faciliteiten kan gevonden
worden in de handleidingpagina &man.syslog.conf.5;.Eenmaal toegevoegd worden alle
faciliteits-berichten gelogd naar het eerder
gespecificeerde bestand,
/var/log/logclient.log.De servermachine moet ook het volgende in
/etc/rc.conf hebben staan:syslogd_enable="YES"
syslogd_flags="-a logclient.example.com -vv"De eerste optie zet de daemon syslogd aan
tijdens het opstarten, en de tweede regel staat toe dat gegevens
van de cliënt op deze server worden geaccepteerd. Het
laatste gedeelte, dat gebruikt, verhoogt de
verbositeit van gelogde berichten. Dit is extreem handig voor
het optimaal instellen van faciliteiten aangezien beheerders
kunnen zien welk soort berichten onder welke faciliteit worden
gelogd.Er kunnen meerdere opties worden
gespecificeerd om logging vanuit meerdere cliënten toe te
staan. IP-adressen en hele netblokken mogen
ook worden gespecificeerd, bekijk de hulppagina &man.syslog.3;
voor een volledige lijst van mogelijke opties.Als laatste dient het logbestand gecreëerd te worden.
De gebruikte manier maakt niet uit, maar &man.touch.1; werkt
prima in dit soort situaties:&prompt.root; touch /var/log/logclient.logNu dient het syslogd-daemon herstart en
geverifieerd worden:&prompt.root; /etc/rc.d/syslogd restart
&prompt.root; pgrep syslogAls er een PID wordt teruggegeven, dan is
de server succesvol herstart, en kan er begonnen worden met de
configuratie van de cliënt. Raadpleeg de log
/var/log/messages voor uitvoer als de
server niet is herstart.Configuratie van de logcliëntEen logcliënt is een machine die loginformatie naar een
logserver verstuurt en daarnaast lokale kopieën
bewaart.Net als logservers moeten logcliënten ook aan enkele
minimumeisen voldoen:&man.syslogd.8; moet zijn ingesteld om berichten van
bepaalde soorten naar een logserver te sturen, die ze moet
accepteren;De firewall moet UDP-pakketten
doorlaten op poort 514;Zowel voorwaartse als terugwaartse
DNS moeten geconfigureerd zijn of juiste
regels in /etc/hosts hebben.De configuratie van cliënten is wat soepeler dan die
van servers. De cliëntmachine moet de volgende regels in
/etc/rc.conf hebben:syslogd_enable="YES"
syslogd_flags="-s -vv"Net als eerder zullen deze regels de daemon
syslogd tijdens het opstarten aanzetten, en
de verbositeit van gelogde berichten verhogen. De optie
voorkomt dat logs van deze cliënt
vanuit andere hosts worden geaccepteerd.Faciliteiten beschrijven het systeemgedeelte waarvoor een
bericht is gegenereerd. ftp en
ipfw bijvoorbeeld zijn beide faciliteiten.
Wanneer er logberichten worden gegenereerd voor deze twee
diensten, zullen ze normaalgesproken deze twee gereedschappen in
elk logbericht opnemen. Faciliteiten worden vergezeld van een
prioriteit of niveau, welke wordt gebruikt om aan te geven hoe
belangrijk een logbericht is. De meest voorkomende zullen
warning en info zijn.
Bekijk de handleidingpagina &man.syslog.3; voor een volledige
lijst van beschikbare faciliteiten en prioriteiten.De logserver moet in /etc/syslog.conf
van de cliënt zijn gedefinieerd. In dit geval wordt het
symbool @ gebruikt om loggegevens naar een
server op afstand te sturen en zou er ongeveer als de volgende
regel uit moeten zien:*.* @logserv.example.comEenmaal toegevoegd moet syslogd worden
herstart zodat de veranderingen effect hebben:&prompt.root; /etc/rc.d/syslogd restartOm te testen of logberichten over het netwerk worden
verzonden, wordt &man.logger.1; op de cliënt gebruikt om
een bericht naar syslogd te sturen:&prompt.root; logger "Testbericht van logclient"Dit bericht dient nu zowel in
/var/log/messages op de cliënt als
/var/log/logclient.log op de logserver te
staan.Logservers debuggenIn bepaalde gevallen kan het nodig zijn om te debuggen als
berichten niet door de logserver worden ontvangen. Er zijn
verschillende redenen waarom dit kan gebeuren; de twee meest
voorkomende zijn echter voorvallen met de netwerkverbinding en
DNS. Om deze gevallen te testen, dient te
worden nagegaan dat beide hosts elkaar kunnen bereiken door
de hostnaam in /etc/rc.conf te gebruiken.
Als dit juist lijkt te werken, dient de optie
syslogd_flags in
/etc/rc.conf te worden veranderd.In het volgende voorbeeld is
/var/log/logclient.log leeg, en noemt
/var/log/messages geen reden waarom het
mislukt. Verander de optie syslogd_flags
zoals in het volgende voorbeeld en herstart om de debuguitvoer
te verhogen:syslogd_flags="-d -a logclien.example.com -vv"&prompt.root; /etc/rc.d/syslogd restartDebuggegevens zoals de volgende zullen meteen na de herstart
over het scherm vliegen:logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
syslogd: restarted
logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
Logging to FILE /var/log/messages
syslogd: kernel boot file is /boot/kernel/kernel
cvthname(192.168.1.10)
validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;
rejected in rule 0 due to name mismatch.Het is duidelijk dat de berichten worden geweigerd wegens
een niet-overeenkomende naam. Na de configuratie grondig te
hebben herzien, lijkt het of een typefout in de volgende regel
in /etc/rc.conf een probleem heeft:syslogd_flags="-d -a logclien.example.com -vv"De regel dient logclient, niet
logclien te bevatten. Nadat de juiste
wijzigingen zijn gemaakt, wordt er herstart met de verwachte
resultaten:&prompt.root; /etc/rc.d/syslogd restart
logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
syslogd: restarted
logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
syslogd: kernel boot file is /boot/kernel/kernel
logmsg: pri 166, flags 17, from logserv.example.com,
msg Dec 10 20:55:02 <syslog.err> logserv.example.com syslogd: exiting on signal 2
cvthname(192.168.1.10)
validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;
accepted in rule 0.
logmsg: pri 15, flags 0, from logclient.example.com, msg Dec 11 02:01:28 trhodes: Test message 2
Logging to FILE /var/log/logclient.log
Logging to FILE /var/log/messagesNu worden de berichten juist ontvangen en in het correcte
bestand geplaatst.BeveiligingsoverwegingenZoals bij alle netwerkdiensten, dienen beveiligingseisen in
acht te worden genomen voordat deze configuratie wordt
geïmplementeerd. Soms kunnen logbestanden gevoelige
gegevens bevatten over diensten die aanstaan op de lokale host,
gebruikersaccounts, en configuratiegegevens. Netwerkgegevens
die van de cliënt naar de server worden verzonden worden
niet versleuteld noch met een wachtwoord beveiligd. Als
versleuteling nodig is, kan security/stunnel worden gebruikt,
wat gegevens over een versleutelde tunnel verstuurt.Aan lokale beveiliging moet ook gedacht worden.
Logbestanden worden niet versleuteld tijdens gebruik of na
logrotatie. Lokale gebruikers kunnen deze bestanden benaderen
om aanvullende inzichten over de systeemconfiguratie op te doen.
In deze gevallen is het van kritiek belang om de juiste rechten
op deze bestanden in te stellen. Het gereedschap
&man.syslogd.8; ondersteunt het instellen van rechten op nieuw
aangemaakte en geroteerde logbestanden. Het instellen van
logbestanden op modus 600 dient al het
ongewenste spieken door lokale gebruikers te verhinderen.