diff --git a/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml
index 584cb25688..541c801180 100644
--- a/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml
@@ -1,1073 +1,1100 @@
JimMockGereorganiseerd en delen
herschreven door
+
Arjanvan LeeuwenVertaald door Introductie
- Samenvatting
+ Overzicht
- Welkom bij &os;! Dit hoofdstuk maakt je bekend met de
- verschillende aspecten van het &os; Project, zoals zijn
- geschiedenis, doelen, ontwikkelmodel en meer.
+ Welkom bij &os;! Dit hoofdstuk beschrijft de verschillende
+ aspecten van het &os; Project: geschiedenis, doelen,
+ ontwikkelmodel en meer.
- Na het lezen van dit hoofdstuk weet je de volgende
- dingen:
+ Na het lezen van dit hoofdstuk weet de lezer:Hoe &os; gerelateerd is aan andere
- besturingssystemen.
+ besturingssystemen;
- De geschiedenis van het &os; Project.
+ De geschiedenis van het &os; Project;
- De doelen van het &os; Project.
+ De doelen van het &os; Project;De fundering van het &os; open-source
- ontwikkelmodel.
+ ontwikkelmodel;
En natuurlijk: waar de naam &os; vandaan
komt.
-
Welkom bij &os;!
+
4.4BSD-Lite&os; is een op 4.4BSD-Lite gebaseerd besturingssysteem
voor Intel (x86 en &itanium;), AMD64,
Alpha en Sun &ultrasparc; computers.
- Ook zijn er verscheidene ports naar andere architecturen in
- voorbereiding. Als je wilt, kun je meer informatie vinden
- over de geschiedenis van &os;.
- Of over de huidige release.
- Als je erin geïnteresseerd bent om iets bij te dragen aan
- het Project (code, hardware, geld), bekijk dan het
- Bijdragen
- aan &os; artikel.
+ Er zijn ook ports naar andere architecturen in voorbereiding.
+ Er is nog meer informatie over de geschiedenis van &os; of over de huidige release. Als de lezer wil
+ bijdragen aan het project (code, hardware, geld) wordt aangeraden
+ het artikel Bijdragen aan
+ &os; te lezen.
Wat kan &os;?&os; heeft veel mogelijkheden die het bespreken waard zijn.
- Hier zijn er enkelen op een rij gezet:
+ Hier zijn er enkele op een rij gezet:
preemptive
multitasking
+
Preemptive multitasking zorgt
ervoor dat meerdere programma's en gebruikers op dezelfde
computer kunnen werken, zonder dat de systeemrespons of
- stabiliteit beïnvloed worden.
+ stabiliteit beïnvloed wordt.
Meerdere gebruikers
+
Ondersteuning voor meerdere
gebruikers maakt het mogelijk dat
verschillende mensen een &os; systeem tegelijkertijd
kunnen gebruiken voor een groot aantal taken. Dit
betekent bijvoorbeeld dat randapparaten als printers en
tapedrives gedeeld kunnen worden door alle gebruikers van
- het systeem, en dat individuele beperkingen ingesteld
+ het systeem en dat individuele beperkingen ingesteld
kunnen worden voor gebruikers of voor groepen gebruikers,
zodat kritieke systeembronnen beschermd kunnen worden
tegen onrechtmatig of overmatig gebruik.TCP/IP netwerken
+
Krachtige mogelijkheden voor TCP/IP
netwerken met ondersteuning voor
industriestandaarden als SLIP, PPP, NFS, DHCP en NIS. Dit
- betekent dat je &os;-systeem makkelijk kan samenwerken
- met andere systemen, en dat het kan functioneren als
+ betekent dat een &os;-systeem makkelijk kan samenwerken
+ met andere systemen en dat het kan functioneren als
bedrijfsserver, waarbij het belangrijke functies als NFS
(bestandsdeling over het netwerk), email, web services,
FTP, routing en firewall-diensten kan aanbieden.Geheugenbeveiliging
+
Geheugenbeveiliging garandeert dat
applicaties (of gebruikers) elkaar niet kunnen storen. Een
crashende applicatie heeft totaal geen effect op andere
applicaties.&os; is een 32-bits
besturingssysteem (64-bits op de
Alpha, &itanium;, AMD64, en &ultrasparc;) en is van de
grond af aan zo ontworpen.
- X Window System
+ X Window Systeem
+
XFree86
- Het X Window System
+ Het X Window Systeem
(X11R6), een industriële standaard, biedt een
- grafische userinterface (GUI) met als enige
+ grafische gebruikersinterface (GUI) met als enige
benodigdheden een VGA-kaart en een beeldscherm.binaire compatibiliteit
+
Linux
+
binaire compatibiliteit
+
SCO
+
binaire compatibiliteit
+
SVR4
+
binaire compatibiliteit
+
BSD/OS
+
binaire compatibiliteit
+
NetBSD
+
- binaire compatibiliteit met veel
- programma's gemaakt voor Linux, SCO, SVR4, BSDI en NetBSD
- maakt het mogelijk om deze programma's zonder
- snelheidsverlies te draaien op &os;.
+ Door binaire compatibiliteit met
+ veel programma's voor &linux;, SCO, SVR4, BSDI en NetBSD
+ is het mogelijk om deze programma's zonder snelheidsverlies
+ op &os; te draaien.
- Duizenden applicaties zijn beschikbaar in de &os;
+ Er zijn duizenden applicaties beschikbaar in de &os;
ports en packages
collectie. Waarom zoeken op het internet als het allemaal
- al voor je klaarstaat?
+ al klaarstaat?
- Duizenden andere en
- makkelijk over te zetten applicaties
- zijn beschikbaar op het Internet. &os; is
- broncode-compatibel met de meeste populaire
- commerciële &unix; systemen, wat betekent dat veel
- applicaties nagenoeg geen wijzigingen vereisen om te
- compileren op &os;.
+ Duizenden andere en makkelijk over te
+ zetten applicaties zijn beschikbaar op het
+ internet. &os; is broncode-compatibel met de meeste
+ populaire commerciële &unix; systemen, wat betekent
+ dat veel applicaties nagenoeg geen wijzigingen vereisen om
+ te compileren op &os;.Virtueel geheugen
+
- Het demand-paged virtueel
- geheugen en de gecombineerde VM/buffer
- cache van &os; zorgen ervoor dat applicaties met
- grote geheugenbehoeften niets te kort komen, terwijl de
- systeemrespons niet achteruit gaat.
+ Het demand-paged virtueel geheugen
+ en de gecombineerde VM/buffer cache van &os;
+ zorgen ervoor dat applicaties met grote geheugenbehoeften
+ niets te kort komen, terwijl de systeemrespons niet
+ achteruit gaat.Symmetric Multi-Processing (SMP)
+
SMP-ondersteuning voor computers
met meerdere processoren.compilers
+
Ccompilers
+
C++compilers
+
FORTRANEen volledige C,
C++, Fortran en
- Perl ontwikkelomgeving.
- Vele andere programmeertalen, te gebruiken voor onderzoek
- of geavanceerde ontwikkeling, zijn ook beschikbaar in de
- ports en packages collectie.
+ Perl ontwikkelomgeving. Vele andere
+ programmeertalen, te gebruiken voor onderzoek of
+ geavanceerde ontwikkeling, zijn ook beschikbaar in de
+ ports- en packagescollectie.
broncode
+
De broncode van het hele
- systeem is beschikbaar, zodat je de volledige controle
- over het systeem in handen hebt. Waarom zou je genoegen
- nemen met alleen het erewoord van de softwarefabrikant
- als een compleet open systeem ook tot de
+ systeem is beschikbaar, zodat gebruikers de volledige
+ controle over het systeem in handen hebben. Waarom
+ genoegen nemen met alleen het erewoord van de
+ softwarefabrikant, als een compleet open systeem ook tot de
mogelijkheden behoort?Uitgebreide online
- documentatie.
+ documentatie.
En nog veel meer!
-
- 4.4BSD-Lite
-
+ 4.4BSD-Lite
+
Computer Systems Research Group (CSRG)
-
- U.C. Berkeley
-
+
+ U.C. Berkeley
+
&os; is gebaseerd op de 4.4BSD-Lite release van de
Computer Systems Research Group (CSRG) aan de University
- of California in Berkeley, en borduurt voort op een lange
+ of California in Berkeley en borduurt voort op een lange
traditie van ontwikkeling van BSD-systemen. Het &os; Project
- heeft duizenden uren gestoken in het fine-tunen van het
- systeem voor maximale prestaties en betrouwbaarheid in
- realistische en veel voorkomende situaties. Terwijl veel
- commerciële bedrijven blijven worstelen met het
- uitbrengen van besturingssystemen met dergelijke
- mogelijkheden, prestaties en betrouwbaarheid, kan
- &os; deze nu bieden!
-
- De toepassingen voor &os; worden alleen beperkt door uw
- eigen fantasie. Van software-ontwikkeling tot
+ heeft duizenden uren gestoken in het afstellen van het systeem
+ voor maximale prestaties en betrouwbaarheid in realistische en
+ veel voorkomende situaties. Terwijl veel commerciële
+ bedrijven blijven worstelen met het uitbrengen van
+ besturingssystemen met dergelijke mogelijkheden, prestaties en
+ betrouwbaarheid, kan &os; deze nu
+ bieden!
+
+ De toepassingen voor &os; worden alleen beperkt door eigen
+ fantasie. Van software-ontwikkeling tot
fabrieksautomatisering, van voorraadbeheersing tot de
- azimuth-correctie van een satellietantenne; als het kan met
- een commercieel &unix;-product, dan kan het ook met
- &os;! &os; vaart ook wel bij de letterlijk duizenden
- open-source programma's, vaak van bijzonder hoge kwaliteit,
- die ontwikkeld zijn in onderzoekscentra, universiteiten over
- de hele wereld en open-source gemeenschappen, en die
- beschikbaar zijn voor weinig of geen geld. Ook steeds meer
- commerciële applicaties vinden hun weg naar &os;.
-
- Omdat ook de broncode van &os; zelf vrij beschikbaar
- is, kan het systeem zoveel als je zelf wilt aangepast worden
- voor speciale toepassingen of projecten, op manieren die
- meestal niet mogelijk zijn met besturingssystemen van
- vooraanstaande commerciële softwarehuizen. Hier zijn een
- aantal voorbeelden van toepassingen waar &os; voor gebruikt
- wordt:
+ azimuth-correctie van een satellietantenne: als het kan met
+ een commercieel &unix;product, dan kan het ook met &os;! &os;
+ vaart ook wel bij de letterlijk duizenden open-source
+ programma's, vaak van bijzonder hoge kwaliteit, die ontwikkeld
+ zijn in onderzoekscentra, universiteiten over de hele wereld en
+ open-source gemeenschappen, en die beschikbaar zijn voor weinig
+ of geen geld. Ook steeds meer commerciële applicaties
+ vinden hun weg naar &os;.
+
+ Omdat ook de broncode van &os; zelf vrij beschikbaar is,
+ kan het systeem aangepast worden voor speciale toepassingen of
+ projecten, op manieren die meestal niet mogelijk zijn met
+ besturingssystemen van vooraanstaande commerciële
+ softwarehuizen. Hier zijn een aantal voorbeelden van
+ toepassingen waar &os; voor gebruikt wordt:
- Internetdiensten: De robuuste
- TCP/IP netwerkarchitectuur die ingebouwd zit in
- &os; maakt het een ideaal platform voor verscheidene
- internetdiensten, zoals:
+ Internetdiensten: de robuuste
+ TCP/IP netwerkarchitectuur die in &os; zit, maakt het een
+ ideaal platform voor uiteenlopende internetdiensten
+ als:
-
- FTP servers
-
+ FTP servers
+
- FTP servers
+ FTP servers;
-
- web servers
-
+ web servers
+
World Wide Web servers (standaard of beveiligd
- [SSL])
+ [SSL]);
-
- firewall
-
-
- IP-maskering
-
+ firewall
+
+ IP-maskering
+
Firewalls en NAT (IP-maskering)
- gateways
+ gateways;
- e-mail
+ elektronische mail
+
+ e-mail
+
+ e-mail
+
- E-mail servers
+ E-mail servers;
-
- USENET
-
+ USENET
+
USENET nieuws of Bulletin Board (BBS)
- systemen
+ systemen;
En meer...
- Met &os; kun je gemakkelijk beginnen op een goedkope
- standaard-PC, om later verder te gaan op een professioneel
- Xeon-systeem met 4 processoren (of meer!) en
- RAID opslagsystemen als uw bedrijf groeit.
+ &os; kan eenvoudig geleerd worden op een goedkope
+ standaard-PC, om later verder te groeien naar een
+ professioneel Xeon-systeem met 4 processoren (of meer!) en
+ RAID opslagsystemen als een bedrijf groeit.
- Onderwijs: Ben je
- informatica-student, of zit je in een ander vakgebied dat
+ Onderwijs: is de lezer
+ informatica-student of werkzaam in een ander vakgebied dat
hier mee te maken heeft? Er is geen betere manier om
besturingssystemen, computerarchitecturen en netwerken te
bestuderen dan de hands-on open-source ervaring die &os;
kan bieden. Gratis beschikbare programma's voor CAD,
wiskundige toepassingen en grafisch ontwerp maken &os;
ook heel handig voor mensen wiens primaire interesse voor
de computer ligt bij het voltooien van
ander werk!
- Onderzoek: Omdat de broncode van
+ Onderzoek: omdat de broncode van
het volledige systeem beschikbaar is, vormt &os; een
- uitstekende basis voor het onderzoeken van
- besturingssystemen of andere takken in de informatica.
- De open natuur van &os; maakt het ook mogelijk voor
- groepen mensen over de hele wereld om met elkaar samen
- te werken, zonder men zich zorgen hoeft te maken over
- speciale licentieovereenkomsten of beperkingen
- op wat er besproken kan worden in open fora.
+ uitstekende basis voor het onderzoeken van besturingssystemen
+ of andere takken in de informatica. De open natuur van &os;
+ maakt het ook mogelijk voor groepen mensen over de hele
+ wereld om met elkaar samen te werken, zonder dat men zich
+ zorgen hoeft te maken over speciale licentieovereenkomsten of
+ beperkingen op wat er besproken kan worden in open
+ fora.
-
- router
-
-
- DNS Server
-
+ router
+
+ DNS Server
+
- Networking: Nieuwe router
- nodig? Of een name server (DNS)? Een firewall om uw
- interne netwerk te beschermen? &os; kan die ongebruikte
- 486 of Pentium PC die nog ergens in een hoekje ligt
- gemakkelijk omtoveren tot een geavanceerde router met
- uitgebreide packet-filtering mogelijkheden.
+ Netwerken: nieuwe router nodig?
+ Of een nameserver (DNS)? Een firewall om een intern netwerk
+ te beschermen? &os; kan die ongebruikte 486 of Pentium PC
+ die nog ergens in een hoekje ligt gemakkelijk omtoveren tot
+ een geavanceerde router met uitgebreide pakketfilter
+ mogelijkheden.
- X Window System
+ X Window Systeem
+
XFree86
+
- X Window System
+ X Window Systeem
+
Accelerated-X
+
- X Window workstation: &os; is een
+ X Window werkstation: &os; is een
prima keuze als goedkope X terminal oplossing, door
- gebruik te maken van de gratis beschikbare &xfree86;
- server of een van de commerciële servers aangeboden
- door Xi Graphics.
- In tegenstelling tot een pure X terminal kun je met &os;
- ook applicaties lokaal draaien, wat een verlichting van
- de centrale server tot gevolg kan hebben. &os; heeft
- zelfs de mogelijkheid om schijfloos op te
- starten, zodat individuele workstations nog goedkoper en
- makkelijker te beheren zijn.
+ gebruik te maken van de gratis beschikbare X11 server of
+ een van de commerciële servers aangeboden door Xi Graphics. In
+ tegenstelling tot een pure X terminal kan &os; ook
+ applicaties lokaal draaien, wat een verlichting van de
+ centrale server tot gevolg kan hebben. &os; heeft zelfs de
+ mogelijkheid om schijfloos op te starten,
+ zodat individuele workstations nog goedkoper en makkelijker
+ te beheren zijn.
- Desktop: De beschikbaarheid van
+ Bureaublad: de beschikbaarheid van
geavanceerde bureabladomgevingen als KDE en GNOME en
kantoortoepassingen als tekstverwerkers en
- spreadsheet-programma's in de ports en packages collectie
- maken van &os; een uitgebreid desktop-platform. Of je nu
- thuis of op het werk de PC nodig hebt, &os; zorgt ervoor
- dat je snel, efficiënt en veilig kunt werken!
+ spreadsheet-programma's in de ports- en packagescollectie
+ maken van &os; een uitgebreid desktop-platform. Thuis en
+ op het werk zorgt &os; ervoor dat er snel, efficiënt
+ en veilig gewerkt kan worden!GNU Compiler Collection
+
- Software Ontwikkeling:
- Bij het standaard &os;-systeem zit al een volledige
- verzameling van ontwikkelgereedschappen, inclusief de
- bekende GNU C/C++ compiler en debugger.
+ Software Ontwikkeling: bij het
+ standaard &os;-systeem zit al een volledige verzameling van
+ ontwikkelgereedschappen, inclusief de bekende
+ GNU C/C++ compiler en debugger.&os; is beschikbaar in zowel broncode als binaire vorm op
- CDROM, DVD en via FTP. Zie voor meer
+ CDROM, DVD en via FTP. In staat meer
informatie over het verkrijgen van &os;.
- Wie gebruikt &os;?
+ Wie Gebruiken &os;?
- Gebruikers
- Grote sites die &os; draaien
+ gebruikers
+
+ grote sites die &os; draaien&os; is de drijvende kracht achter enkele van de grootste
sites die het internet kent, zoals:
-
- Yahoo!
-
+ Yahoo!
+
- Yahoo!
-
+ Yahoo!
-
- Apache
-
+ Apache
+
- Apache
-
+ Apache
-
- Blue Mountain Arts
-
+ Blue Mountain Arts
+
Blue
- Mountain Arts
+ Mountain Arts
-
- Pair Networks
-
+ Pair Networks
+
Pair
- Networks
+ Networks
-
- Sony Japan
-
+ Sony Japan
+
Sony
- Japan
+ Japan
-
- Netcraft
-
+ Netcraft
+
- Netcraft
-
+ Netcraft
-
- Weathernews
-
+ Weathernews
+
- Weathernews
-
+ WeathernewsSupervalu
+
Supervalu
+ url="http://www.supervalu.com/">Supervalu
-
- TELEHOUSE America
-
+ TELEHOUSE America
+
TELEHOUSE
- America
+ America
-
- Sophos Anti-Virus
-
+ Sophos Anti-Virus
+
Sophos
- Anti-Virus
+ Anti-Virus
-
- JMA Wired
-
+ JMA Wired
+
JMA Wired
+ url="http://www.jmawired.com/">JMA Wired
- en nog veel meer.
+ en nog veel meer sites.
-
Over het &os; Project
- Deze paragraaf geeft je wat meer achtergrondinformatie over
+ Deze paragraaf geeft wat meer achtergrondinformatie over
het project, inclusief een korte geschiedenis, projectdoelen,
en het ontwikkelmodel van het project.JordanHubbardBijgedragen door Een Korte Geschiedenis van &os;386BSD Patchkit
+
Hubbard, Jordan
+
Williams, Nate
+
Grimes, Rod
+
&os; Project
+
geschiedenis
+
Het &os; Project zag het licht in het begin van 1993,
gedeeltelijk als een voortzetting van de Unofficial
386BSD Patchkit door de 3 laatste coördinatoren
van de patchkit: Nate Williams, Rod Grimes en ikzelf.386BSD
- Ons oorspronkelijke doel was om een zogenaamde
- 'snapshot'-release te maken van 386BSD, om een aantal
- problemen hiermee op te lossen die niet op te lossen waren
- met het patchkit-mechanisme dat wij eerder gebruikt hadden.
- Sommigen kunnen zich misschien nog herinneren dat de
- werktitel van het project in het begin nog
- 386BSD 0.5 of 386BSD Interim
- was, refererend aan het oorspronkelijke doel.
+
+ Het oorspronkelijke doel was om een zogenaamde
+ 'snapshot'-release te maken van 386BSD, om zo een aantal
+ problemen op te lossen die niet op te lossen waren
+ met het patchkit-mechanisme dat eerder gebruikt was. Sommigen
+ kunnen zich misschien nog herinneren dat de werktitel van het
+ project in het begin nog 386BSD 0.5 of
+ 386BSD Interim was, refererend aan het
+ oorspronkelijke doel.Jolitz, Bill
- 386BSD was het besturingssysteem van Bill Jolitz, en had
+
+ 386BSD was het besturingssysteem van Bill Jolitz en had
tot op dat moment geleden onder het feit dat er al bijna een
jaar niet naar omgekeken was. Terwijl de patchkit steeds
- groter en onhandiger werd, waren wij het er unaniem over eens
- dat er iets moest gebeuren, en beslisten om Bill te
+ groter en onhandiger werd, was een groep mensen het er over
+ eens dat er iets moest gebeuren en beslisten om Bill te
assisteren bij het maken van een tussentijdse
cleanup snapshot. Deze plannen kwamen echter
tot een plotseling einde toen Bill Jolitz besliste om zijn
toestemming voor het project in te trekken, zonder dat
er een alternatief werd geboden.Greenman, David
+
Walnut Creek CDROM
- We deden er niet lang over om te beslissen dat het doel
- nog steeds belangrijk was, zelfs zonder de ondersteuning van
- Bill, dus werd de naam &os; aangenomen, naar
- een idee van David Greenman. Onze oorpronkelijke doelen
- werden opgesteld na het raadplegen van de gebruikers van het
- systeem. Toen het erop begon te lijken dat dit project
- misschien wel snel realiteit kon worden, contacteerde ik
- Walnut Creek CDROM vanuit het oogpunt om de
- distributiekanalen van &os; te verbeteren voor diegenen
- die geen toegang hadden tot het Internet. Walnut Creek CDROM
- ondersteunde niet alleen het idee om &os; op CD te
- distribueren, maar bood het project ook een systeem en een
- snelle internetverbinding om mee te werken. Zonder
- Walnut Creek CDROM's bijna onbeperkte vertrouwen in wat op
- dat moment nog een compleet onbekend project was, is het
- onwaarschijnlijk dat &os; zo ver gekomen zou zijn, en zo
- snel, als het vandaag de dag is.
+
+ Het duurde niet lang om te beslissen dat het doel nog
+ steeds belangrijk was, zelfs zonder de ondersteuning van Bill,
+ dus werd de naam &os; aangenomen, naar een idee
+ van David Greenman. De oorpronkelijke doelen werden opgesteld
+ na het raadplegen van de gebruikers van het systeem. Toen het
+ erop begon te lijken dat dit project misschien wel snel
+ realiteit kon worden, werd contact opgenomen met Walnut Creek
+ CDROM vanuit het oogpunt om de distributiekanalen van &os; te
+ verbeteren voor diegenen die geen toegang hadden tot internet.
+ Walnut Creek CDROM ondersteunde niet alleen het idee om &os; op
+ CD te distribueren, maar bood het project ook een systeem en
+ een snelle internetverbinding om mee te werken. Zonder Walnut
+ Creek CDROM's bijna onbeperkte vertrouwen in wat op dat moment
+ nog een compleet onbekend project was, is het onwaarschijnlijk
+ dat &os; zo ver gekomen zou zijn, en zo snel, als het vandaag
+ de dag is.4.3BSD-Lite
+
Net/2
+
U.C. Berkeley
+
386BSD
- Free Software Foundation
- De eerste CDROM (en algemene op het Net beschikbare)
+
+ Free Software
+ Foundation
+
+ De eerste CDROM (en algemene op het net beschikbare)
distributie was &os; 1.0, uitgebracht in december
1993. Deze versie was gebaseerd op de 4.3BSD-Lite
(Net/2) tape van U.C. Berkeley, met veel
toevoegingen van 386BSD en de Free Software Foundation. Het
werd een redelijk succes voor een eerste aanbod, en werd
opgevolgd door de zeer succesvolle &os; 1.1 release in mei
1994.Novell
+
U.C. Berkeley
+
Net/2
+
AT&T
+
Rond deze tijd vormde zich nogal onverwacht een
- stormachtige lucht aan de horizon, toen Novell en
- U.C. Berkeley hun langlopende rechtszaak over de legale
- status van de Berkeley Net/2 tape oplosten met een schikking.
- Een voorwaarde van deze schikking was dat U.C. Berkeley
- toegaf dat grote delen van Net/2 beladen code
- was en het eigendom van Novell, die deze code op haar beurt
- overgenomen had van AT&T enige tijd hiervoor. Wat
- Berkeley hiervoor terugkreeg was Novell's
- zegen over de 4.4BSD-Lite release; wanneer
- deze uitkwam zou Novell verklaren dat geen van de code hierin
- eigendom van Novell was, en bestaande Net/2 gebruikers zou
- sterk aanbevolen worden om over te stappen naar deze nieuwe
- versie. Dit gold ook voor &os;, en het project werd de tijd
- gegeven tot juli 1994 om te stoppen met het distribueren van
- het eigen Net/2-gebaseerde product. De schikking liet wel toe
- dat nog een laatste release werd uitgebracht voor de deadline,
- en dat was &os; 1.1.5.1.
-
- &os; nam toen de enorme taak op zich om zichzelf
- letterlijk opnieuw uit te vinden, met als basis een
- volledig nieuwe en nogal incomplete verzameling van delen van
- 4.4BSD-Lite. De Lite releases werden zo genoemd
- omdat Berkeley's CSRG grote delen code die nodig waren om een
- werkend systeem te construeren had weggelaten (om allerlei
- legale redenen) en omdat de Intel port van 4.4 grotendeels
- incompleet was. Het kostte het project tot november 1994 om
- deze overstap te maken. Op dat moment werd &os; 2.0 op
- het Net en op CDROM (aan het einde van december) uitgebracht.
- Ondanks het feit dat deze release nog wat ruige kantjes had,
- werd het een groot succes, en werd het gevolgd door de
- robuustere en makkelijker te installeren &os; 2.0.5 in
- juni 1995.
-
- We brachten &os; 2.1.5 uit in augustus 1996, en deze
- bleek populair genoeg bij internet service providers (ISPs)
- en andere commerciële gebruikers van &os; om nog een
- release van de 2.1-STABLE tak te rechtvaardigen. Dit was
+ stormachtige lucht aan de horizon toen Novell en U.C. Berkeley
+ hun langlopende rechtszaak over de legale status van de
+ Berkeley Net/2 tape oplosten met een schikking. Een voorwaarde
+ van deze schikking was dat U.C. Berkeley toegaf dat grote delen
+ van Net/2 beladen code was en het eigendom van
+ Novell, die deze code op haar beurt overgenomen had van
+ AT&T enige tijd hiervoor. Wat Berkeley hiervoor terugkreeg
+ was Novell's zegen over de 4.4BSD-Lite release;
+ wanneer deze uitkwam zou Novell verklaren dat geen van de code
+ hierin eigendom van Novell was, en bestaande Net/2 gebruikers
+ zou sterk aanbevolen worden om over te stappen naar deze
+ nieuwe versie. Dit gold ook voor &os; en het project werd de
+ tijd gegeven tot juli 1994 om te stoppen met het distribueren
+ van het eigen op Net/2-gebaseerde product. De schikking liet
+ wel toe dat nog een laatste release werd uitgebracht voor de
+ deadline en dat was &os; 1.1.5.1.
+
+ &os; nam toen de enorme taak op zich om zichzelf letterlijk
+ opnieuw uit te vinden, met als basis een volledig nieuwe en
+ nogal incomplete verzameling van delen van 4.4BSD-Lite. De
+ Lite releases werden zo genoemd omdat Berkeley's
+ CSRG grote delen code die nodig waren om een werkend systeem te
+ construeren had weggelaten (om allerlei legale redenen) en
+ omdat de Intel port van 4.4 grotendeels incompleet was. Het
+ kostte het project tot november 1994 om deze overstap te maken.
+ Op dat moment werd &os; 2.0 op het net en op CDROM (aan
+ het einde van december) uitgebracht. Ondanks het feit dat deze
+ release nog wat ruige kantjes had, werd het een groot succes en
+ werd het gevolgd door de robustere en makkelijker te
+ installeren &os; 2.0.5 in juni 1995.
+
+ In augustus 1996 is &os; 2.1.5 uitgebracht en deze
+ bleek populair genoeg bij internet service providers (ISP's) en
+ andere commerciële gebruikers van &os; om nog een release
+ van de 2.1-STABLE tak te rechtvaardigen. Dit was
&os; 2.1.7.1, uitgebracht in februari 1997. Deze release
markeerde het einde van de hoofdstroomontwikkeling op
2.1-STABLE; alleen beveilingsupdates en andere kritieke bug
fixes werden nog op deze tak uitgevoerd (RELENG_2_1_0).&os; 2.2 werd afgesplitst van de ontwikkelingstak
- (-CURRENT) in november 1996 als RELENG_2_2, en
+ (-CURRENT) in november 1996 als RELENG_2_2 en
de eerste volledige release (2.2.1) werd uitgebracht in april
1997. Andere releases van de 2.2 tak werden uitgebracht in de
zomer en herfst van '97. De laatste (2.2.8) verscheen in
november 1998. De eerste officiële 3.0 release verscheen
- in oktober 1998, en was het begin van het einde voor de
+ in oktober 1998 en was het begin van het einde voor de
2.2 tak.Er was opnieuw een afsplitsing op 20 januari 1999, wat
leidde tot de 4.0-CURRENT en 3.x-STABLE takken. Vanuit
3.X-STABLE werd versie 3.1 uitgebracht op 15 februari 1999,
3.2 op 15 mei 1999, 3.3 op 16 september 1999, 3.4 op 20
december 1999 en 3.5 op 24 juni 2000. De laatste werd enkele
dagen later gevolgd door een point release update naar 3.5.1,
om enkele net-ontdekte beveiligingsfouten in Kerberos te
corrigeren. Dit was de laatste release van de 3.X tak.Een nieuwe tak werd gemaakt op 13 maart 2000, de
- 4.X-STABLE tak. Deze is ook op dit moment nog de
- huidige -stable tak. Er zijn verschillende
- releases van deze branch gemaakt: 4.0-RELEASE werd
- geïntroduceerd in maart 2000, en de meest recente
- &rel2.current;-RELEASE verscheen in &rel2.current.date;.
- Ook in 2004 zullen er nog releases voortkomen uit de RELENG_4
- tak.
+ 4.X-STABLE tak. Er zijn verschillende releases van deze tak
+ gemaakt: 4.0-RELEASE werd geïntroduceerd in maart 2000, en
+ de meest recente &rel2.current;-RELEASE verscheen in
+ &rel2.current.date;. In de toekomst verschijnen er nog
+ releases uit de RELENG_4 tak.De langverwachte 5.0-RELEASE werd aangekondigd op 19
- januari 2003. Deze optelling van bijna drie jaar werk, zette
+ januari 2003. Dit resultaat van bijna drie jaar werk zette
&os; stevig neer op de weg naar geavanceerde multiprocessor-
en threading-ondersteuning en introduceerde nieuwe &os; ports
voor de &ultrasparc; en ia64 architecturen.
- Deze release werd gevolgd door 5.1 in juni 2003. In januari
- 2004 verscheen de 5.2-RELEASE, nog geen maand later gevolgd
- door de point release 5.2.1-RELEASE, die enkele kleine fouten
- in de originele release corrigeerde. Behalve een hoop nieuwe
- mogelijkheden bevatten de 5.X releases ook grote wijzigingen
- in de onderliggende systeemarchitectuur. Deze vooruitgang
- zorgt ook voor een systeem dat een enorme hoeveelheid
- nieuwe en nog niet breed geteste code bevat. Dit is de reden
- dat de 5.X releases door het project worden aangeduid als
- New Technology releases, terwijl de 4.X serie
- functioneert als Productie-release. Naarmate
- de tijd verstrijkt zal 5.X aangeduid worden als -STABLE, en
- zal begonnen worden met de ontwikkeling van een nieuwe tak,
- 6.0-CURRENT.
-
- Op dit moment vinden grote en lange-termijn
- ontwikkelprojecten plaats in de 5.X-CURRENT tak, en snapshot
- releases van 5.X op CDROM (en, natuurlijk, op het Net) worden
- continu beschikbaar gemaakt op
-
- de snapshot server.
-
+ Deze release werd gevolgd door 5.1 in juni 2003. De laatste
+ 5.X release uit de –CURRENT-tak was 5.2.1–RELEASE
+ uit februari 2004.
+
+ De RELENG_5 tak is gemaakt in augustus 2004 en werd gevolgd
+ door 5.3-RELEASE, die het begin van de 5-STABLE tak
+ markeert.
+
+ Op dit moment vinden lange-termijn ontwikkelprojecten
+ plaats in de 6.X-CURRENT tak, en snapshot releases van 6.X op
+ CDROM (en natuurlijk op het Net) worden continu beschikbaar
+ gemaakt op de
+ snapshot server.JordanHubbard
- Bijgedragen door
+ Bijgedragen door &os; Projectdoelen&os; Project
+
doelen
+
Het doel van het &os; Project is om software aan te bieden
die gebruikt kan worden voor iedere mogelijke toepassing,
- zonder beperkingen. Velen van ons hebben een belangrijke
- investering zitten in de code (en het project) en vinden het
+ zonder beperkingen. Vele ontwikkelaars hebben een belangrijke
+ investering in de code (en het project) zitten en vinden het
niet erg om af en toe een financiële compensatie te
- ontvangen, maar we stellen het zeker niet als voorwaarde. Wij
- geloven dat onze eerste en belangrijkste missie
- het aanbieden van code is, aan iedereen die het wil hebben,
- voor wat voor doel dan ook, zodat de code zo breed mogelijk
- gebruikt kan worden tot voordeel van zoveel mogelijk mensen.
- Dit is, geloof ik, een van de meest fundamentele doelen van
- Vrije Software, en een die wij enthousiast ondersteunen.
+ ontvangen, maar dat is zeker geen voorwaarde. De ontwikkelaars
+ van &os; geloven dat de eerste en belangrijkste
+ missie het aanbieden van code is, aan iedereen
+ die het wil hebben, voor wat voor doel dan ook, zodat de code
+ zo breed mogelijk gebruikt kan worden tot voordeel van zoveel
+ mogelijk mensen. Dit is een van de meest fundamentele doelen
+ van Vrije Software dat &os; enthousiast ondersteunt.GNU General Public License (GPL)
+
GNU Lesser General Public License (LGPL)
+
BSD Copyright
+
Sommige code in &os; valt onder de GNU General Public
License (GPL) of Library General Public License (LGPL). Deze
code heeft iets meer beperkingen, maar in ieder geval aan de
kant waarbij vrije toegang tot de code geforceerd wordt, in
plaats van het gebruikelijke tegenovergestelde hiervan. Door
de toegevoegde moeilijkheden die kunnen voortkomen uit het
- commerciële gebruik van GPL software geven wij echter de
- voorkeur aan het meer vrije BSD copyright, wanneer er een
- redelijk alternatief voor handen is.
+ commerciële gebruik van GPL software geeft het &os;
+ Project echter de voorkeur aan het meer vrije BSD copyright,
+ wanneer er een redelijk alternatief voor handen is.
SatoshiAsami
- Bijgedragen door
+ Bijgedragen door Het &os; Ontwikkelmodel&os; Project
+
ontwikkelmodel
+
De ontwikkeling van &os; is een erg open en flexibel
- proces, en wordt gevormd door de bijdragen van letterlijk
- honderden mensen over de hele wereld, zoals je kunt zien in
- onze
- lijst van medewerkers. De infrastructuur die wordt
- gebruikt voor de ontwikkeling van &os; zorgt ervoor dat deze
- honderden ontwikkelaars kunnen samenwerken over het Internet.
- We zijn continu op zoek naar nieuwe ontwikkelaars en
- ideeën. Als je wat meer betrokken wilt worden bij de
- ontwikkeling van &os;, kun je simpelweg contact met ons
- opnemen op de &a.hackers;. De &a.announce; is beschikbaar om
- mededelingen te doen aan andere &os;-gebruikers over grote
- veranderingen.
+ proces en wordt gevormd door de bijdragen van letterlijk
+ honderden mensen over de hele wereld, zoals te zien is in de
+ lijst van
+ medewerkers. De infrastructuur die wordt gebruikt
+ voor de ontwikkeling van &os; zorgt ervoor dat deze honderden
+ ontwikkelaars kunnen samenwerken over het internet. Het &os;
+ Project is continu op zoek naar nieuwe ontwikkelaars en
+ ideeën. Om bij te dragen aan de ontwikkeling van &os;
+ is een mail naar &a.hackers; voldoende. De &a.announce; is
+ beschikbaar om mededelingen te doen aan andere &os;-gebruikers
+ over grote veranderingen.
Een aantal dingen over &os; en haar ontwikkelingsproces
- zijn handig om te weten, of je nu onafhankelijk of in
- samenwerking met anderen uit het Project werkt:
+ zijn handig om te weten, of een bijdrage nu onafhankelijk of in
+ samenwerking met anderen uit het Project komt:
Het CVS-archief
-
+ id="development-cvs-repository">
CVS
+
archief
+
Concurrent Versions System
+
CVS
+
- Alle broncode voor &os; wordt bijgehouden met
- CVS
- (Concurrent Versions System), een vrij verkrijgbaar
- pakket voor het onderhouden van broncode dat bij &os;
- inbegrepen zit. Het primaire
-
- CVS-archief staat op een systeem in Santa Clara,
+ Alle broncode voor &os; wordt bijgehouden met CVS (Concurrent
+ Versions System), een vrij verkrijgbaar pakket voor het
+ onderhouden van broncode die bij &os; zit. Het primaire
+ CVS
+ archief staat op een systeem in Santa Clara,
Californië, in de VS, waar het wordt
- gesynchroniseerd met verschillende
- mirrors over de hele wereld. De
- boomstructuur van CVS, waarin de broncode voor
- -CURRENT en
- -STABLE is te vinden,
- kan ook makkelijk met die op uw eigen systeem
- gesynchroniseerd worden. Zie de sectie
- Synchroniseren van
- broncode voor meer informatie over dit
- onderwerp.
+ gesynchroniseerd met verschillende mirrors
+ over de hele wereld. De boomstructuur van CVS, waarin de
+ broncode voor -CURRENT en
+ -STABLE is te vinden, kan
+ ook makkelijk met die op een eigen systeem
+ gesynchroniseerd worden. Synchroniseren van broncode
+ bevat meer informatie over dit onderwerp.Committers
committers
+
De zogenaamde committers zijn
- alle mensen die schrijf-permissies
- hebben in het CVS-archief van &os;. Deze mensen mogen
- veranderingen doen aan de &os; broncode (de term
- committer is afkomstig uit het
- &man.cvs.1; commit commando, wat
- gebruikt wordt om veranderingen door te voeren in het
- CVS-archief). De beste manier om eigen bijdragen te
- laten keuren door een van de committers is door gebruik
- te maken van &man.send-pr.1;. Als het erop lijkt dat
- een bijdrage ergens in het systeem blijft hangen, dan is
- het ook mogelijk om mail te sturen naar de
- &a.committers;.
+ alle mensen die schrijf-rechten
+ hebben in het CVS archief van &os;. Deze mensen mogen
+ veranderingen maken aan de &os; broncode (de term
+ committer is afkomstig uit het &man.cvs.1;
+ commit commando, wat gebruikt wordt om
+ veranderingen door te voeren in het CVS-archief). De
+ beste manier om eigen bijdragen te laten keuren door een
+ van de committers is door gebruik te maken van
+ &man.send-pr.1;. Als het erop lijkt dat een bijdrage
+ ergens in het systeem blijft hangen, dan is het ook
+ mogelijk om mail te sturen naar de &a.committers;.
- Het &os; core team
+ Het &os; Core Teamcore team
+
- Het &os; core team
- zou het equivalent zijn van een raad van bestuur als
- &os; een bedrijf zou zijn. De primaire taak van het
- core team is ervoor zorg te dragen dat het project,
- in zijn geheel, in goede vorm verkeerd en de goede
- richting opgaat. Toegewijde en verantwoordelijke
- ontwikkelaars uitnodigen om deel te worden van de
- committers is een van de taken van het core team, net
- als het recruteren van nieuwe leden van het core team.
- Het huidige core team is gekozen door de committers uit
- een groep van kandidaten (ook allen committers) in juli
- 2004. Elke twee jaar worden verkiezingen gehouden.
+ Het &os; core team zou het
+ equivalent zijn van een raad van bestuur als &os; een
+ bedrijf zou zijn. De primaire taak van het core team is
+ ervoor zorg te dragen dat het project, in zijn geheel, in
+ goede vorm verkeert en de goede richting opgaat.
+ Toegewijde en verantwoordelijke ontwikkelaars uitnodigen
+ om deel te worden van de committers is één
+ van de taken van het core team, net als het recruteren
+ van nieuwe leden van het core team. Het huidige core
+ team is gekozen door de committers uit een groep van
+ kandidaten (ook allen committers) in juli 2004. Elke
+ twee jaar worden verkiezingen gehouden.Sommige leden van het core team hebben een
bijzondere verantwoordelijkheid, wat wil zeggen dat zij
er speciaal op toezien dat een bepaald deel van het
- systeem werkt zoals het hoort. Zie de lijst van
- medewerkers voor een complete lijst van
+ systeem werkt zoals het hoort. In de lijst
+ van medewerkers staat een complete lijst van
ontwikkelaars en hun verantwoordelijkheden.De meeste leden van het core team zijn
vrijwilligers. Toewijding betekent
dus niet gegarandeerde ondersteuning.
De raad van bestuur-analogie hierboven
- klopt niet helemaal, en het is misschien beter om te
+ klopt niet helemaal en het is misschien beter om te
zeggen dat dit de mensen zijn die hun leven opgaven
voor &os;, tegen beter weten in!
- Externe bijdragen
+ Externe Bijdragenexterne bijdragen
+
De grootste groep ontwikkelaars zijn de gebruikers
- zelf, die ons continu voorzien van constructief
+ zelf, die &os; continu voorzien van constructief
commentaar en oplossingen voor fouten. De handigste
- manier om contact te houden met het
- niet-gecentraliseerde deel van de ontwikkeling van &os;
- is een abonnement nemen op de &a.hackers;, waar allerlei
- bijdragen, patches en nieuwe ideeën worden
- bediscussieerd. Zie voor
- meer informatie over de verschillende &os;
- mailing-lijsten.
+ manier om contact te houden met het niet-gecentraliseerde
+ deel van de ontwikkeling van &os; is een abonnement nemen
+ op de &a.hackers;, waar allerlei bijdragen, patches en
+ nieuwe ideeën worden bediscussieerd. In is meer informatie te vinden over
+ de verschillende &os; mailinglijsten.
De lijst
- van medewerkers is lang, en groeit
- iedere dag, dus wat let je om zelf een bijdrage te doen
- aan &os;?
-
- Programmeren is niet de enige manier om een
- bijdrage te leveren aan het project; voor een meer
- volledige lijst van dingen die gedaan moeten worden,
- zie de
- &os; web site.
+ url="&url.articles.contributors;/article.html">De lijst
+ van medewerkers is lang en groeit
+ iedere dag, dus wat let de lezer om zelf een bijdrage te
+ doen aan &os;?
+
+ Programmeren is niet de enige manier om een bijdrage
+ te leveren aan het project. Een meer volledige lijst van
+ dingen die gedaan moeten worden staat op de &os; web
+ site.
- Samengevat is ons ontwikkelmodel georganiseerd als een
+ Samengevat is het &os; ontwikkelmodel georganiseerd als een
niet-samenhangende verzameling van concentrische cirkels. Het
gecentraliseerde model is ontworpen voor het gemak van de
gebruikers van &os;, die op deze manier
- makkelijk de wijzigingen in het project kunnen volgen
- —niet om potentiële medewerkers buiten de deur te
- houden! Het is onze wens om een stabiel besturingssysteem te
- maken, met een grote verzameling samenhangende
- applicaties; dit model heeft zijn
+ makkelijk de wijzigingen in het project kunnen volgen. Niet om
+ potentiële medewerkers buiten de deur te houden! Het is
+ wenselijk om een stabiel besturingssysteem te maken, met een
+ grote verzameling samenhangende applicaties. Dit model heeft zijn
waarde op dat gebied bewezen.
- Als je samen met ons &os; verder wilt ontwikkelen, is het
- enige wat wij van je vragen om dat te doen met dezelfde
- toewijding als de huidige ontwikkelaars —succes
+ Om bij te dragen en samen &os; verder te ontwikkelen, is
+ het enige wat het &os; Project vraagt dat te doen met dezelfde
+ toewijding als de huidige ontwikkelaars: succes
gegarandeerd!De Huidige &os; Release
+
NetBSD
+
OpenBSD
+
386BSD
+
Free Software Foundation
+
U.C. Berkeley
+
Computer Systems Research Group (CSRG)
+
&os; is een open source, op 4.4BSD-Lite gebaseerd
besturingssysteem voor Intel (x86 en &itanium;), AMD64,
Alpha en Sun &ultrasparc; computers.
- Het is grotendeels gebaseerd op software van de
- Computer Systems Research Group (CSRG) van de University of
- California in Berkeley (U.C. Berkeley), met verbeteringen
- overgenomen van NetBSD, OpenBSD, 386BSD en de Free Software
- Foundation.
+ Het is grotendeels gebaseerd op software van de Computer
+ Systems Research Group (CSRG) van de University of California
+ in Berkeley (U.C. Berkeley), met verbeteringen overgenomen van
+ NetBSD, OpenBSD, 386BSD en de Free Software Foundation.
Sinds het uitbrengen van &os; 2.0 tegen het einde
van 1994, zijn de prestaties, mogelijkheden en stabiliteit
van &os; dramatisch verbeterd. &os; heeft namelijk de
beschikking over een compleet nieuw subsysteem voor virtueel
geheugen, dat niet alleen de prestaties ten goede komt, maar
er ook voor zorgt dat het systeem minder geheugen gebruikt
dan ooit tevoren. Andere belangrijke verbeteringen zijn de
ondersteuning van veel nieuwe hardware, een compleet nieuw
systeem voor de ondersteuning van machines met meerdere
processoren (SMP) en een nieuwe bibliotheek voor de
ondersteuning van multithreading in applicaties.Behalve de basisdistributie van het besturingssysteem,
biedt &os; ook een enorme softwarecollectie met duizenden
- veel-gebruikte programma's, de zogenaamde ports. Op het
+ veelgebruikte programma's, de zogenaamde ports. Op het
moment van schrijven zijn er al meer dan &os.numports; ports!
In de ports zitten alle mogelijke klassen van software die te
bedenken zijn, van http-servers tot spellen, van
kantoorapplicaties tot multimedia en alles wat er tussenin
- zit. De complete ports-collectie beslaat zo'n &ports.size; aan
- schijfruimte. Meer informatie over de ports en over de packages
- kunt u vinden in .
+ zit. De complete portscollectie beslaat zo'n &ports.size; aan
+ schijfruimte. Meer informatie over de ports en over de
+ packages is te vinden in .
- Een aantal andere documenten die je behulpzaam kunnen
- zijn bij het installeren en gebruiken van &os; vindt je in de
- /usr/share/doc directory op ieder recente
+ Een aantal andere documenten die kunnen helpen bij het
+ installeren en gebruiken van &os; staan in de map
+ /usr/share/doc op ieder recente
&os;-installatie. De lokaal geïnstalleerde documentatie
- kun je in een browser bekijken door de volgende URLs te
+ kan in een browser bekeken worden door de volgende URLs te
gebruiken:Het &os; handboek
-
- /usr/share/doc/handbook/index.html
-
+ /usr/share/doc/handbook/index.htmlDe &os; FAQ
-
-
- /usr/share/doc/faq/index.html
-
+ /usr/share/doc/faq/index.htmlDe nieuwste versies van deze documenten zijn altijd te
- vinden op
- http://www.FreeBSD.org/.
-
+ vinden op .
-
diff --git a/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
index eaa260649c..d53d6e881f 100644
--- a/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
@@ -1,1917 +1,1919 @@
JimMockBijgewerkt en opnieuw gestructureerd door JakeHambyOorspronkelijk bijgedragen door RenéLadanVertaald door Het Instellen van de &os;-kernelSamenvattingkerneleen eigen kernel bouwenDe kernel is de kern van het &os;-besturingssysteem en is
verantwoordelijk voor het geheugenbeheer, het opleggen van
beveiligingsregels, het aansturen van het netwerk, de toegang tot
schijven en nog veel meer. Hoewel steeds meer in &os; dynamisch
instelbaar wordt, is het af en toe nodig om de kernel opnieuw in
te stellen en te compileren.Na het lezen van dit hoofdstuk weet de lezer:Waarom het nodig is om een eigen kernel te bouwen;
Hoe een nieuw kernelinstellingenbestand te schrijven of
een bestaand kernelinstellingenbestand aan te passen;Hoe het kernelinstellingenbestand te gebruiken om een
nieuwe kernel aan te maken en te bouwen;Hoe een nieuwe kernel te installeren;Hoe de ingangen in /dev die nodig
kunnen zijn aan te maken;Hoe problemen op te lossen als er iets verkeerd gaat.
Alle opdrachten die in dit hoofdstuk als voorbeeld zijn
gegeven moeten als root uitgevoerd worden om
te slagen.Redenen om een Eigen Kernel te BouwenTraditioneel heeft &os; zoals dat heet een
monolitische kernel gehad. Dit betekent dat de
kernel één groot programma was, een vaste lijst
van apparaten ondersteunde en als het gewenst was om het gedrag
van de kernel te veranderen, moest er een nieuwe kernel
gecompileerd worden en moest daarna de computer opnieuw gestart
worden met de nieuwe kernel.Vandaag de dag beweegt &os; zich snel naar een model waar
veel van de functionaliteit van de kernel in modules zit die
dynamisch in en uit de kernel kunnen worden geladen, naargelang
dat noodzakelijk is. Dit stelt de kernel in staat om zich aan
nieuwe hardware aan te passen die plotseling beschikbaar komt
(zoals PCMCIA-kaarten in een laptop) of om nieuwe functionaliteit
in zich op te nemen die niet noodzakelijk was toen de kernel
oorspronkelijk werd gecompileerd. Dit staat bekend als een
modulaire kernel.Desondanks is het nog steeds nodig om enkele dingen van de
kernel statisch in te stellen. In sommige gevallen komt dit
doordat de functionaliteit zo diep geworteld zit in de kernel dat
het niet dynamisch laadbaar gemaakt kan worden. In andere
gevallen kan het simpelweg komen doordat nog niemand de tijd
heeft genomen om een dynamisch laadbare kernelmodule voor die
functionaliteit te schrijven.Het bouwen van een eigen kernel is een van de meest
belangrijke beproevingen die bijna elke BSD-gebruiker moet
doorstaan. Hoewel dit proces veel tijd in beslag neemt, levert
het veel voordelen op voor een &os; systeem. In tegenstelling
tot de GENERIC-kernel, die vele typen
hardware moet ondersteunen, ondersteunt een eigen kernel alleen
de hardware van de computer waar hij voor gemaakt is. Dit biedt
een aantal voordelen, zoals:Een snellere opstarttijd. Aangezien de kernel alleen de
hardware zoekt die zich in het systeem bevindt, kan de tijd
die het systeem nodig heeft om op te starten aanzienlijk
korter worden;Minder geheugengebruik. Een eigen kernel gebruikt vaak
minder geheugen dan de GENERIC-kernel,
wat van belang is aangezien de kernel zich altijd in het
echte geheugen moet bevinden. Om deze reden is een eigen
kernel geknipt voor een systeem met een kleine hoeveelheid
RAM;Aanvullende hardware-ondersteuning. Een eigen kernel kan
ingebouwde ondersteuning bieden voor apparaten die zich niet
in de GENERIC-kernel bevinden, zoals
geluidskaarten.Bouwen en Installeren van een Eigen Kernelkernelbouwen / installerenEerst wordt er een overzicht gegeven van de mappen waarin de
kernel gebouwd wordt. Alle genoemde mappen staan onder de map
/usr/src/sys, die ook toegankelijk is via
de padnaam /sys. Er zijn hier een aantal
mappen aanwezig die de verschillende delen van de kernel
representeren, maar de meest belangrijke hiervan zijn
arch/conf, waarin
de eigen kernelinstellingen bewerkt worden en
compile, waarin de eigen kernel gebouwd
wordt. arch representeert hier
één van i386,
alpha, amd64,
ia64, powerpc,
sparc64 of pc98 (een
alternatieve ontwikkelingstak van PC-hardware die populair is in
Japan). Alles binnen de map van een bepaalde architectuur is er
alleen voor die architectuur. De rest van de code is
machine-onafhankelijk en hetzelfde op alle platformen waarnaar
&os; eventueel geport kan worden. De indeling van de
mapstructuur is logisch: alle ondersteunde apparaten,
bestandssystemen en opties staan in een eigen submap. Versies
van &os; beneden 5.X ondersteunen alleen de
i386-, alpha- en
pc98-architecturen.Dit hoofdstuk veronderstelt dat de i386-architectuur in de
voorbeelden gebruikt wordt. Als dit voor de lezer anders is,
moeten de juiste aanpassingen aan de padnamen worden gemaakt voor
de architectuur van zijn systeem.Als de map /usr/src/sysniet aanwezig is op een systeem, dan is de
kernelbroncode niet geïnstalleerd. De eenvoudigste manier
om dit te doen is door sysinstall (
/stand/sysinstall voor versies van &os;
ouder dan 5.2) te draaien als root en
Configure,
Distributions,
src, sys
te kiezen. Als sysinstall ongewenst
is en er toegang is tot een officiële
&os;-CDROM, is de broncode ook vanaf de opdrachtregel te
installeren:&prompt.root; mount /cdrom
&prompt.root; mkdir -p /usr/src/sys
&prompt.root; ln -s /usr/src/sys /sys
&prompt.root; cat /cdrom/src/sys.[a-d]* | tar -xzvf -Daarna kan vanuit de map
arch/conf het
instellingenbestand GENERIC naar de naam
voor de eigen kernel gekopieerd worden:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; cp GENERIC MIJNKERNELTraditioneel bestaat deze naam geheel uit hoofdletters en als
er meerdere &os;-machines worden beheerd met verschillende
hardware is het een goed idee om het te vernoemen naar de
hostnaam van de machine. Omwille van dit voorbeeld wordt het
MIJNKERNEL genoemd.Het kernelinstellingenbestand direct onder
/usr/src opslaan kan een slecht idee zijn.
In geval van problemen kan het verleidelijk zijn om
/usr/src te verwijderen en opnieuw te
beginnen. Nadat dit gedaan is kost het vaak maar enkele
seconden om te realiseren dat het instellingenbestand voor de
eigen kernel verwijderd is. Ook moet
GENERIC niet gewijzigd worden, omdat het
tijdens de volgende keer dat de
broncodestructuur bijgewerkt wordt, overschreven kan
worden waarbij de wijzigingen in de kernelinstellingen verloren
gaan.Het kan gewenst zijn om het kernelinstellingenbestand
ergens anders op te slaan en een symbolische link naar het
bestand in de map
i386 aan te
maken:&prompt.root; cd /usr/src/sys/i386/conf
&prompt.root; mkdir /root/kernels
&prompt.root; cp GENERIC /root/kernels/MIJNKERNEL
&prompt.root; ln -s /root/kernels/MIJNKERNELNu moet MIJNKERNEL met de favoriete
tekstverwerker bewerkt worden. Voor beginners is waarschijnlijk
alleen de tekstverwerker vi
beschikbaar, die te ingewikkeld is om hier te beschrijven, maar
goed is beschreven in vele boeken in de bibliografie. &os; biedt ook de
eenvoudigere tekstverwerker ee, die
voor een beginner de keuze bij uitstek is. De commentaarregels
in het begin kunnen gewijzigd worden om de persoonlijke
instellingen of de veranderingen die gemaakt zijn ten opzichte
van GENERIC weer te geven.&sunos;Voor degenen die een kernel op &sunos; of een andere BSD
hebben gebouwd zal veel van dit bestand bekend voorkomen.
Echter, voor degenen die van een ander besturingssysteem zoals
DOS komen, kan het instellingenbestand
GENERIC overdonderend overkomen, dus moeten
de beschrijvingen in de sectie Het Instellingenbestand
zorgvuldig opgevolgd worden.Als de broncodestructuur
gesynchroniseerd is met de nieuwste broncode van het
&os;-project, moet altijd
/usr/src/UPDATING gelezen worden voordat
enige updatestappen worden genomen. Dit bestand beschrijft
alle belangrijke zaken en gebieden binnen de broncodestructuur
die speciale aandacht nodig hebben.
/usr/src/UPDATING komt altijd overeen met
de lokale versie van de &os;-broncode en is daarom meer
bijgewerkt met nieuwe informatie dan dit handboek.Nu moet de broncode voor de kernel gecompileerd worden.
Hiervoor zijn twee procedures beschikbaar en degene die gebruikt
wordt hangt af van de reden waarom de kernel opnieuw gebouwd
wordt en de gebruikte versie van &os;.Als alleen de kernelbroncode is
geïnstalleerd, moet procedure 1 gevolgd worden.Als een versie van &os; lager dan 4.0 wordt gedraaid, en
er niet wordt geupdate naar
&os; 4.0 of hoger door middel van de
make buildworld–procedure, moet
procedure 1 gebruikt worden.Als er een nieuwe kernel gebouwd wordt zonder dat de
broncode geupdate wordt (misschien om een nieuwe optie, zoals
IPFIREWALL, toe te voegen), kunnen beide
procedures gebruikt worden.Als de kernel opnieuw wordt gebouwd als onderdeel van een
make buildworld-proces, moet procedure 2
gebruikt worden.cvsupanonieme CVSCTMCVSanoniemAls de broncodestructuur niet op enige
wijze bijgewerkt is sinds de laatste keer dat er met succes een
buildworld-installworld
cyclus werd uitgevoerd, CVSup noch
CTM werden gedraaid en
anoncvs werd niet gebruikt, dan is
het veilig om config,
make depend, make,
make install te gebruiken.Procedure 1. Een Kernel op Traditionele
Wijze BouwenDraai &man.config.8; om de kernelbroncode aan te
maken:&prompt.root; /usr/sbin/config MIJNKERNELGa naar de bouwmap. &man.config.8; geeft de naam van
deze map nadat het gedraaid is zoals boven is
aangegeven:&prompt.root; cd ../compile/MIJNKERNELVoor &os; versies lager dan 5.0 moet het volgende
gebruikt worden:&prompt.root; cd ../../compile/MIJNKERNELCompileer de kernel:&prompt.root; make depend
&prompt.root; makeInstalleer de nieuwe kernel:&prompt.root; make installProcedure 2. Een Kernel op de Nieuwe Wijze
bouwenGa naar de map /usr/src:&prompt.root; cd /usr/srcCompileer de kernel:&prompt.root; make buildkernel KERNCONF=MIJNKERNELInstalleer de nieuwe kernel:&prompt.user; make installkernel KERNCONF=MIJNKERNELIn &os; 4.2 en eerder moet
KERNCONF= door KERNEL=
vervangen worden. Een 4.2-STABLE die voor 2 februari 2001 is
opgehaald herkent KERNCONF= niet./boot/kernel.oldDe nieuwe kernel wordt naar de map /boot/kernel gekopieerd als
/boot/kernel/kernel en de oude kernel wordt
verplaatst naar /boot/kernel.old/kernel. Nu
moet het systeem afgesloten worden en opnieuw worden opgestart om
gebruik te maken van de nieuwe kernel. Er zijn wat instructies
voor problemen
oplossen aan het einde van dit hoofdstuk, die erg nuttig
kunnen zijn als er iets misgaat. Vergeet niet om het gedeelte te
lezen waarin staat uitgelegd hoe te herstellen als de nieuwe
kernel niet
opstart.In &os; 4.X en eerder worden kernels in
/kernel en modules in /modules geïnstalleerd en
worden oude kernels gebackupt in
/kernel.old. Andere bestanden die te
maken hebben met het opstartproces, zoals de boot
&man.loader.8; en instellingen worden opgeslagen in
/boot. Modules van derde partijen of
eigen modules kunnen in /modules opgeslagen worden,
alhoewel gebruikers erop bedacht moeten zijn dat het erg
belangrijk is dat de modules synchroon worden gehouden met de
gecompileerde kernel. Modules die niet bedoeld zijn om met de
gecompileerde kernel te draaien kunnen voor instabiliteit of
onjuistheden zorgen.Als er nieuwe apparaten (zoals geluidskaarten) zijn
toegevoegd en &os; 4.X of eerder wordt gedraaid, kan het
zijn dat er enkele apparaatnodes aan de map /dev moeten worden toegevoegd,
voordat ze gebruikt kunnen worden. Er staat meer informatie
in het Apparaatnodes
maken later in dit hoofdstuk.JoelDahlBijgewerkt voor &os; 5.X door Het InstellingenbestandkernelNOTESkernelLINTNOTESLINTkernelinstellingenbestandHet algemene formaat van een instellingenbestand is vrij
eenvoudig. Elke regel bevat een sleutelwoord en
één of meer argumenten. Omwille van de eenvoud
bevatten de meeste regels maar één argument. Alles
wat na een # komt, wordt als commentaar
beschouwd en genegeerd. De volgende gedeelten beschrijven elk
sleutelwoord, in het algemeen in dezelfde volgorde als
GENERIC, alhoewel sommige samenhangende
sleutelwoorden gegroepeerd zijn in een enkel gedeelte (zoals
Netwerken) zelfs al staan ze verspreid in het bestand
GENERIC.
Een uitputtende lijst van architectuurafhankelijke opties en
apparaten staat in het bestand NOTES, dat in
dezelfde map staat als GENERIC.
Architectuuronafhankelijke opties staan in
/usr/src/sys/conf/NOTES.NOTES bestaat niet in &os; 4.X.
In plaats daarvan bevat het bestand LINT
een uitgebreide uitleg over opties en apparaten in
GENERIC. LINT had
twee doelen in 4.X: een naslagwerk leveren om kernelopties te
kiezen voor het bouwen van een eigen kernel en een
kernelinstelling leveren met zoveel mogelijk instelbare opties
ingesteld op niet-standaardwaarden. De redenering hierachter
was dat zo'n instelling veel hielp (en nog steeds helpt) met
het testen van nieuwe code en veranderingen aan bestaande code
die conflicten met andere delen van de kernel kunnen
veroorzaken. Er zijn in 5.X echter een hoop veranderingen
gemaakt aan het raamwerk van kernelinstellingen. Een voorbeeld
hiervan is dat de instelopties van de stuurprogramma's zijn
verplaatst naar een bestand hints zodat ze
tijdens het opstarten dynamisch veranderd en geladen kunnen
worden, en LINT kon deze aanwijzingen niet
meer bevatten. Om deze en andere redenen is
LINT hernoemd tot
NOTES en heeft het hoofdzakelijk z'n
eerste bestaansreden gehouden: de beschikbare opties
documenteren voor gebruikersgemak.In &os; 5.X en latere versies is het nog steeds
mogelijk om een bouwbaar bestand LINT aan
te maken door middel van:&prompt.root; cd /usr/src/sys/i386/conf && make LINTkernel
- instellingenbestandvoorbeeld
+ instellingenbestandHet volgende is een voorbeeld van het
kernelinstellingenbestand GENERIC met
aanvullend commentaar omwille van de helderheid. Dit voorbeeld
is redelijk gelijk aan de versie in
/usr/src/sys/i386/conf/GENERIC.#
# GENERIC -- Standaard kernelinstellingenbestand voor &os;/i386
#
# Meer informatie over dit bestand staat in het onderdeel Het Instellen
# van de FreeBSD-kernel in het handboek:
#
# http://www.FreeBSD.org/doc/nl_NL.ISO8859-1/books/handbook/kernelconfig-config.html
#
# Het handboek is ook lokaal beschikbaar in /usr/share/doc/handbook
# als de doc distributie is geïnstalleerd. Op de &os; World Wide Web
# server (http://www.FreeBSD.org/) staat altijd de meest recente
# informatie.
#
# Een uitputtende lijst met opties en meer gedetailleerde beschrijving
# van de apparaatregels staat ook in de bestanden ../../conf/NOTES en
# NOTES.
# Bij twijfel over het doel en de noodzaak van een regel dient eerst in
# NOTES gekeken te worden.
#
# $FreeBSD: /repoman/r/ncvs/src/sys/i386/conf/GENERIC,v 1.413 2004/08/11 01:34:18 rwatson Exp $De volgende sleutelwoorden zijn noodzakelijk in
elke kernel die gebouwd wordt:kerneloptiesmachinemachine i386Dit is de architectuur van de machine. Het moet
één van alpha,
amd64, i386,
ia64, pc98,
powerpc of sparc64
zijn.kerneloptiescpucpu I486_CPU
cpu I586_CPU
cpu I686_CPUBovenstaande optie geeft het type CPU aan dat in een systeem
zit. De CPU-regel kan meerdere keren voorkomen (als bijvoorbeeld
onbekend is of I586_CPU of
I686_CPU gebruikt moet worden), maar voor een
eigen kernel is het beter om alleen de aanwezige CPU aan te
geven. Als er twijfel bestaat over het type CPU, kan het bestand
/var/run/dmesg.boot worden bekeken voor de
opstartberichten.kerneloptiescputypeDe broncode van &os; bevat nog steeds ondersteuning voor
I386_CPU, maar staat standaard uit in zowel
-STABLE als -CURRENT. Dit betekent dat er nu de volgende
mogelijkheden zijn om &os; op een CPU van de 386-klasse te
installeren:Installeer een oudere versie van &os; en herbouw vanuit
de broncode zoals beschreven staat in .Bouw userland en de kernel op een nieuwere machine en
verricht de installatie op de 386 door gebruik te maken van
de voorgecompileerde bestanden in
/usr/obj (in
staan details).Maak een eigen versie van &os; die ondersteuning voor
I386_CPU bevat in de kernels van de
installatie-CDROM.De eerste van deze opties is waarschijnlijk de
gemakkelijkste, maar deze heeft veel schijfruimte nodig wat een
probleem kan zijn voor 386-klasse machines.kerneloptiesidentident GENERICDit is de identificatie van de kernel. Dit moet veranderd
worden in de naam van de kernel, dus
MIJNKERNEL als de instructies van de
voorgaande voorbeelden gevolgd zijn. De waarde in de string
ident wordt afgebeeld wanneer de kernel
opstart, dus is het handig om de nieuwe kernel een andere naam te
geven als deze apart moet worden gehouden van de gebruikelijke
kernel (als er bijvoorbeeld een experimentele kernel gebouwd
wordt).kerneloptiesmaxusersmaxusers nDe optie maxusers stelt de grootte van een
aantal belangrijke systeemtabellen in. Dit aantal moet ruwweg
gelijk zijn aan het aantal gebruikers dat verwacht wordt
gelijktijdig van de machine gebruik te maken.Met ingang van &os; 4.5 stelt het systeem deze waarde
zelf in als deze uitdrukkelijk op 0 is gezet.
Het auto-tuning-algoritme stelt
maxusers in afhankelijk van de hoeveelheid
geheugen in het systeem, met een minimum van 32 en een
maximum van 384.
In &os; 5.X en hoger heeft maxusers een
standaardwaarde van 0 als deze niet gespecificeerd is. Als er
een versie van &os; lager dan 4.5 wordt gebruikt of het gewenst
is om de waarde zelf te beheren, wordt aangeraden om
maxusers minstens op 4 te zetten, met name als
het X Window Systeem in gebruik is of als er software
gecompileerd wordt. De reden hiervoor is dat de belangrijkste
tabel die door maxusers ingesteld wordt, het
maximum aantal processen is, dat ingesteld wordt op 20 +
16 * maxusers, dus als maxusers op 1
ingesteld wordt, zijn er maar 36 gelijktijdige processen
mogelijk, inclusief de ongeveer achttien processen die door het
systeem tijdens het opstarten start en de ongeveer vijftien
processen die waarschijnlijk aangemaakt worden door het opstarten
van het X Window Systeem. Zelfs een eenvoudige taak als het
afbeelden van een hulppagina start negen processen op om de
pagina te filteren, te decomprimeren en af te beelden. Als
maxusers op 64 ingesteld wordt, zijn er 1044
gelijktijdige processen mogelijk, wat genoeg moet zijn voor bijna
alle soorten gebruik. Als echter de gevreesde fout
proc table full verschijnt als er
geprobeerd wordt om een programma op te starten of als er een
server gedraaid wordt met een groot aantal gelijktijdige
gebruikers, zoals ftp.FreeBSD.org,
kan het getal altijd verhoogd worden en kan de kernel opnieuw
gebouwd worden.maxusers stelt geen
grens aan het aantal gebruikers dat op de machine kan
aanmelden. Het stelt gewoon verschillende tabelgroottes in op
redelijke waardes, uitgaande van het maximum aantal gebruikers
dat waarschijnlijk de machine gebruikt en van het aantal
processen dat elk van deze gebruikers zal draaien. Een
sleutelwoord dat wel het aantal
gelijktijdige aanmeldingen op afstand en X-terminalvensters
begrenst is pseudo-device pty
16. In &os; 5.X kan dit getal
genegeerd worden omdat daar het stuurprogramma &man.pty.4;
auto-cloning is. Er kan eenvoudig gebruik
worden gemaakt van de regel device pty in
het instellingenbestand.# Floating point ondersteuning - niet uitschakelen.
device npxnpx is de interface naar de wiskundige
floating point-eenheid in &os;, die ofwel de hardware coprocessor
is ofwel de softwarematige wiskundige emulator. Dit is
niet optioneel.# Pseudo devices
device loop # Netwerk loopbackDit is het generieke loopbackapparaat voor TCP/IP. Als
telnet of FTP op localhost (ook bekend als
127.0.0.1) gebruikt wordt, loopt
dat via dit apparaat. Dit is verplicht. Op
&os; 4.X moet de volgende regel gebruikt worden:# Gebruiken in &os; 4.X
pseudo-device loopAlles wat nu volgt is min of meer optioneel. Meer informatie
over elke optie staat in de notities eronder of ernaast.#Om statisch te compileren in device wiring in plaats van /boot/device.hints.
#hints "GENERIC.hints" # Standaardlocatie voor devices.In &os; 5.X en nieuwer wordt &man.device.hints.5;
gebruikt om opties van de programma's die de apparaten aansturen
in te stellen. De standaardplaats die &man.loader.8; controleert
tijdens het opstarten is /boot/device.hints.
Met de optie hints is het mogelijk om deze
aanwijzingen statisch in de kernel te compileren, waardoor er
geen noodzaak is om een bestand device.hints
in /boot aan te maken.#makeoptions DEBUG=-g # Bouw kernel met gdb(1) debug symbolen.Om ruimte te sparen in de installatieplaats voegt het normale
bouwproces van &os; geen debug-informatie toe tijdens het bouwen
van de kernel en stript de meeste symbolen nadat de resulterende
kernel is gelinkt. Voor het testen van kernels van de tak
-CURRENT of van zelfgemaakte veranderingen in de &os;-kernel kan
het gewenst zijn om deze regel uit te commentariëren. Dit
zet het gebruik van de optie aan die
debug-informatie aanzet als de broncode wordt doorgegeven aan
&man.gcc.1;. Hetzelfde kan bereikt worden met de optie
van &man.config.8; als de
traditionele manier wordt gebruikt om een kernel
te bouwen. Meer informatie staat in .options SCHED_4BSD # 4BSD taakplannerDe traditionele taakplanner voor &os;. Afhankelijk van de
systeembelasting kan de prestatie worden verhoogd door de nieuwe
scheduler ULE voor &os; te gebruiken, die speciaal voor SMP
ontworpen is, maar ook goed werkt op UP-systemen. Vervang
desgewenst, om deze uit te proberen,
SCHED_4BSD door SCHED_ULE
in het instellingenbestand.options INET # internetwerkenNetwerkondersteuning. Laat dit aanstaan, zelfs als een
verbinding met een netwerk niet gepland is. De meeste
programma's hebben tenminste een loopbacknetwerk nodig (dat wil
zeggen het maken van netwerkverbindingen binnen de PC), dus dit
is eigenlijk verplicht.options INET6 # IPv6 communicatieprotocollenDit zet de IPv6-communicatieprotocollen aan.options FFS # Berkeley Fast BestandssysteemDit is het basisbestandssysteem voor de harde schijf. Laat
dit erin staan als er vanaf de harde schijf wordt
opgestart.options UFS_ACL # Ondersteuning voor toeganscontrolelijstenMet deze optie, die alleen in &os; 5.X aanwezig is,
wordt de ondersteuning voor toegangscontrolelijsten aangezet.
Hiervoor zijn uitgebreide attributen en UFS2
nodig. Een en ander wordt in detail beschreven in . ACL's staan standaard
aan en moeten niet uitgezet worden in de kernel als ze al eerder
op een bestandssysteem zijn gebruikt, omdat dit de
toegangscontrolelijsten verwijdert en hierdoor de manier waarop
bestanden beschermd worden op onvoorspelbare wijze
verandert.options UFS_DIRHASH # Verbeter prestaties in grote mappenDeze optie bevat functionaliteit om schijfoperaties op grote
mappen te versnellen, ten koste van extra geheugen. Deze staat
normaalgesproken, zoals voor een grote server of interactief
werkstation, aan en wordt uitgezet als &os; op een kleiner
systeem wordt gebruikt waar geheugen het belangrijkste en
schijfsnelheid minder belangrijk is, zoals voor een
firewall.options SOFTUPDATES # Schakel FFS Softupdates ondersteuning inDeze optie zet softupdates in de kernel aan en helpt om de
schijftoegang voor schrijven te verhogen. Zelfs als deze
functionaliteit door de kernel geleverd wordt, moet die voor
specifieke schijven worden aangezet. Bekijk de uitvoer van
&man.mount.8; om te zien of softupdates aanstaat voor de
systeemschijven. Als de optie soft-updates
niet zichtbaar is, dient deze geactiveerd te worden met behulp
van &man.tunefs.8; voor bestaande bestandssystemen of
&man.newfs.8; voor nieuwe bestandssystemen.options MD_ROOT # MD is een potentieel rootapparaatDeze optie zet ondersteuning aan voor een virtuële
schijf die in het geheugen wordt geïmplementeerd en als
rootapparaat wordt gebruikt.kerneloptiesNFSkerneloptiesNFS_ROOToptions NFSCLIENT # Netwerk Bestandssysteem Client
options NFSSERVER # Netwerk Bestandssysteem Server
options NFS_ROOT # NFS bruikbaar als /, NFSCLIENT nodigHet netwerkbestandssysteem. Dit kan weggelaten worden tenzij
er gepland is om partities te mounten van een &unix;
bestandsserver over TCP/IP.kerneloptiesMSDOSFSoptions MSDOSFS # MSDOS BestandssysteemHet &ms-dos; bestandssysteem. Dit kan veilig weggelaten
worden, tenzij er gepland is om een DOS-geformatteerde partitie
van de harde schijf tijdens het opstarten te mounten. Het wordt
automatisch geladen als er voor de eerste keer een DOS-partitie
wordt gemount, zoals boven beschreven. Bovendien geeft de
uitstekende software emulators/mtools toegang tot
DOS-floppies zonder dat ze gemount en gedismount moeten worden en
heeft het MSDOSFS helemaal niet nodig.options CD9660 # ISO 9660 BestandssysteemHet ISO 9960-bestandssysteem voor CDROM's. Commentarieer dit
uit als er geen CDROM-drive aanwezig is of als er slechts af en
toe data-CD's gemount worden (aangezien het dynamisch geladen
wordt als er voor de eerste keer een data-CD gemount wordt).
Audio-CD's hebben dit bestandssysteem niet nodig.options PROCFS # ProcesbestandssysteemHet procesbestandssysteem. Dit is een als-of
bestandssysteem, gemount in /proc, dat
programma's als &man.ps.1; in staat stelt om meer informatie over
de draaiende processen te geven. In &os; 5.X en hoger is
het onder de meeste omstandigheden niet nodig om
PROCFS te gebruiken, omdat de meeste debug- en
monitorgereedschappen zijn aangepast om zonder
PROCFS te draaien. In tegenstelling tot
&os; 4.X mounten nieuwe installaties op &os; 5.X
standaard het procesbestandssysteem niet. Bovendien moeten
6.X-CURRENT kernels die gebruik maken van
PROCFS, nu ook ondersteuning bevatten voor
PSEUDOFS:options PSEUDOFS # Pseudo-bestandssysteem frameworkPSEUDOFS is niet beschikbaar in
&os; 4.X.options GEOM_GPT # GUID Partitietabellen.Met deze optie kan een groot aantal partities op een enkele
schijf aanwezig zijn.options COMPAT_43 # Compatibel met BSD 4.3 [ERIN HOUDEN!]Compatibiliteit met 4.3BSD. Laat dit aanstaan. Sommige
programma's gedragen zich vreemd als dit uitgecommentarieerd
wordt.options COMPAT_FREEBSD4 # Compatibel met &os;4Deze optie is nodig op &os; 5.X &i386; en Alpha systemen
om ondersteuning te bieden aan applicaties die gecompileerd zijn
op oudere versies van &os; en gebruik maken van oudere
systeemaanroep-interfaces. Het is aanbevolen dat deze optie
gebruikt wordt op alle &i386; en Alpha systemen die mogelijk
oudere applicaties draaien. Voor platformen die pas in 5.X
ondersteuning verwierven, zoals ia64 en &sparc64;, is deze optie
niet nodig.options SCSI_DELAY=15000 # Vertraging (in ms) voordat SCSI wordt afgezocht.Dit zorgt ervoor dat de kernel vijftien seconden wacht
voordat die elk SCSI-apparaat in het systeem afzoekt. Als er
alleen IDE harddisks zijn, kan deze optie genegeerd worden,
anders is het misschien wenselijk om deze waarde te verlagen tot
vijf seconden, om het opstarten te versnellen. Uiteraard moet
deze waarde weer verhoogd worden als &os; problemen heeft om de
SCSI-apparaten te herkennen.options KTRACE # ktrace(1) ondersteuningDit schakelt kernelondersteuning voor het volgen processen
in, wat handig is tijdens debuggen.options SYSVSHM # SYSV-stijl gedeeld geheugenDeze optie biedt System V gedeeld geheugen. Meestal
wordt dit wegens de XSHM-uitbreiding in X gebruikt, waar door
vele grafische programma's automatisch gebruik van wordt gemaakt
voor extra snelheid. Als X gebruik wordt, is het raadzaam om dit
op te nemen.options SYSVSEM # SYSV-stijl semaforenDit biedt ondersteuning voor System V semaforen. Het
wordt minder vaak gebruikt, maar voegt slechts een paar honderd
bytes aan de kernel toe.options SYSVMSG # SYSV-stijl berichtenwachtrijenDit biedt ondersteuning voor System V berichten. Ook
deze optie voegt slechts een paar honderd bytes aan de kernel
toe.De optie van het commando &man.ipcs.1;
geeft een lijst van alle processen die een van deze
System V faciliteiten gebruikt.options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensiesDit biedt real-time-uitbreidingen die in de 1993 &posix; zijn
toegevoegd. Bepaalde applicaties in de portscollectie gebruiken
deze (zoals &staroffice;).options KBD_INSTALL_CDEV # installeer een CDEV-ingang in /devDeze optie is gerelateerd aan het toetsenbord. Het
installeert een CDEV-ingang in /dev.options AHC_REG_PRETTY_PRINT # Toon register bitveld in debuguitvoer.
# Voegt ~128k toe aan driver.
options AHD_REG_PRETTY_PRINT # Toon register bitveld in debuguitvoer.
# Voegt ~215k toe aan driver.Dit helpt bij het debuggen door makkelijker te lezen
registerdefinities af te beelden.options ADAPTIVE_GIANT # Giant mutex is adaptief.Giant is de naam van een wederzijds uitsluitingsmechanisme
(een sleep mutex) dat een grote verzameling kernelbronnen
beschermt. Vandaag de dag is dit een onaccaptabele
prestatie-bottleneck die actief door sloten wordt vervangen die
individuele bronnen beschermen. De optie
ADAPTIVE_GIANT zorgt ervoor dat Giant in de
verzamelingen van mutexen wordt opgenomen waar actief wordt
opgespind. Dit betekent dat wanneer een thread de Giant-mutex
wil nemen, maar die reeds door een thread op een andere CPU
genomen is, de eerste thread blijft draaien en wacht tot er een
slot vrijkomt. Normaalgesproken zou de thread weer gaan slapen
en wachten op de volgende kans om te draaien. Laat dit er in
geval van twijfel instaan.kerneloptiesSMPdevice apic # I/O APICHet apic-apparaat zet de ondersteuning voor I/O-APIC voor het
afleveren van interrupts aan. Het apic-apparaat kan zowel in UP-
als in SMP-kernels gebruikt worden, maar is noodzakelijk voor
SMP-kernels. Voeg options SMP toe om
ondersteuning voor meerdere processoren op te nemen.device isaAlle computers die door &os; ondersteund worden hebben
één van deze apparaten. Verwijder dit niet, zelfs
niet als er geen ISA-sloten aanwezig zijn. &os; biedt momenteel
slechts gedeeltelijke ondersteuning aan IBM PS/2 (Micro Channel
Architecture)-systemen. Meer informatie over de ondersteuning
voor MCA staat in
/usr/src/sys/i386/conf/notes.device eisaNeem dit op voor een EISA-moederbord. Dit zet ondersteuning
voor zelfdetectie en -instelling aan voor alle apparaten op de
EISA-bus.device pciNeem dit op voor een PCI-moederbord. Dit zet ondersteuning
voor zelfdetectie van PCI-kaarten en gatewaying van
PCI-naar-ISA-bus aan.device agpNeem dit op als er een AGP-kaart in het systeem aanwezig is.
Dit zet ondersteuning voor AGP aan, en ondersteuning voor AGP
GART voor borden die deze mogelijkheden hebben.# Floppy drives
device fdcDit is de controller voor de floppydrive.# ATA- en ATAPI-apparaten
device ataDit stuurprogramma biedt ondersteuning aan alle ATA- en
ATAPI-apparaten. Er is slechts één device
ata-regel nodig om de kernel alle PCI
ATA/ATAPI-apparaten te laten ontdekken op moderne
machines.device atadisk # ATA schijvenDit is samen met device ata nodig voor ATA
schijven.device ataraid # ATA RAID schijvenDit is samen met device ata nodig voor ATA
RAID-schijven.
device atapicd # ATAPI CDROM-drivesDit is samen met device ata nodig voor
ATAPI CDROM-drives.device atapifd # ATAPI floppy drivesDit is samen met device ata nodig voor
ATAPI floppydrives.device atapist # ATAPI tape drivesDit is samen met device ata nodig voor
ATAPI tapedrives.options ATA_STATIC_ID # Statische apparaatnummeringDit zorgt ervoor dat de controller statisch nummert. Zonder
deze optie worden nummers dynamisch toegewezen.# SCSI Controllers
device ahb # EISA AHA1742 familie
device ahc # AHA2940 en onboard AIC7xxx apparaten
device ahd # AHA39320/29320 en onboard AIC79xx apparaten
device amd # AMD 53C974 (Teckram DC-390(T))
device isp # Qlogic familie
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (nieuwere chipsets)
device trm # Tekram DC395U/UW/F DC315U adapters
device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aha # Adaptec 154x SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50SCSI controllers. Commentarieer de regels uit voor apparaten
die niet in het systeem aanwezig zijn. Als het een systeem met
alleen IDE apparaten betreft, kunnen ze allemaal weggelaten
worden.# SCSI randapparaten
device scbus # SCSI bus (nodig voor SCSI)
device ch # SCSI media changers
device da # Direct Access (schijven)
device sa # Sequential Access (tape, enzovoort)
device cd # CD
device pass # Passthrough apparaat (directe SCSI-toegang)
device ses # SCSI Omgevingsdiensten (en SAF-TE)SCSI-aanhangels. Ook hier geldt dat apparaten die niet
aanwezig zijn uitgecommentarieerd kunnen worden, of als alleen
IDE-hardware aanwezig aanwezig is, ze allemaal weggelaten kunnen
worden.Het USB-stuurprogramma &man.umass.4; en enkele andere
stuurprogramma's gebruiken het SCSI-subsysteem, alhoewel ze
geen echte SCSI-apparaten zijn. Daarom mag SCSI-ondersteuning
niet verwijderd worden als dit soort stuurprogramma's in de
kernelinstellingen worden opgenomen.# RAID controllers met interfaces naar het SCSI subsysteem
device amr # AMI MegaRAID
device asr # DPT SmartRAID V, VI en Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - Zie NOTES voor opties
device hptmv # Highpoint RocketRAID 182x
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
# RAID controllers
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough voor aac (CAM nodig)
device ida # Compaq Smart RAID
device mlx # Mylex DAC960 famile
device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAIDOndersteunde RAID-controllers. Als een van deze niet
aanwezig is, kan deze uitgecommentarieerd of verwijderd
worden.# atkbdc0 bestuurt het toetsenbord en de PS/2 muis
device atkbdc # AT toetsenbordcontrollerDe toetsenbordcontroller (atkbdc) biedt
I/O-diensten aan voor het AT-toetsenbord en het PS/2-type van
aanwijsapparaten. Deze controller is noodzakelijk voor het
toetsenbordstuurprogramma (atkbd) en het
PS/2-aanwijsapparaatstuurprogramma
(psm).device atkbd # AT toetsenbordHet stuurprogramma atkbd biedt samen met
de controller atkbdc toegang tot het
AT84-toetsenbord of het uitgebreide AT-toetsenbord dat verbonden
is met de controller voor het AT-toetsenbord.device psm # PS/2 muisDit apparaat kan gebruikt worden als de muis in de
PS/2-muispoort wordt geplugd.device vga # VGA videokaart stuurprogrammaHet stuurprogramma voor de videokaart.# splash screen/screensaver
device splash # Splash screen en screensaver ondersteuningEen splash-scherm tijdens het opstarten! Screensavers hebben
deze optie ook nodig (voor &os; 4.X dient
pseudo-device splash gebruikt te
worden.# syscons is het standaard consolestuurprogramma, lijkt op een SCO console
device scsc is het standaard consolestuurprogramma
en lijkt op een SCO-console. Aangezien de meeste programma's die
met een volledig scherm werken de console via een
terminaldatabase zoals termcap benaderen,
moet het niet uitmaken of dit of vt, het
VT220-compatibele consolestuurprogramma,
gebruikt wordt. Wanneer er aangemeld wordt, dient de variabele
TERM op scoansi gezet worden
indien programma's die met een volledig scherm werken problemen
hebben om met dit console te draaien.# Schakel dit in voor het pcvt (VT220 compatibele) consolestuurprogramma
#device vt
#options XSERVER # ondersteuning voor X server op een vt console
#options FAT_CURSOR # begin met een blokcursorDit is een VT220-compatibel consolestuurprogramma,
achterwaarts compatibel met de VT100/102. Het werkt goed op
enkele laptops die hardware-incompatibiliteiten hebben met
sc. Ook dient de variabele
TERM op vt100 of
vt220 gezet te worden bij het aanmelden. Dit
stuurprogramma kan ook nuttig zijn wanneer er verbinding wordt
gemaakt met een groot aantal verschillende machines in een
netwerk, waarbij de ingangen termcap of
terminfo voor het apparaat
sc vaak niet beschikbaar zijn.
vt100 is op bijna elk platform
beschikbaar.
+ APM
+
# Ondersteuning voor energiebeheer (zie NOTES voor meer opties)
#device apmOndersteuning voor geavanceerd energiebeheer (Advanced Power
Management). Dit is nuttig voor laptops, alhoewel dit in
&os; 5.X en hoger standaard uitgeschakeld is in
GENERIC.# Schakel suspend/resume ondersteuning voor de i8254 in.
device pmtimerHet stuurprogramma voor het timerapparaat voor
energiebeheergebeurtenissen, zoals APM en ACPI.# PCCARD (PCMCIA) ondersteuning.
# PCMCIA en cardbus bridge ondersteuning.
device cbb # cardbus (yenta) bridge
device pccard # PC Card (16-bit) bus
device cardbus # CardBus (32-bit) busOndersteuning voor PCMCIA. Dit is wenselijk voor
laptopgebruikers.# Serial (COM) poorten
device sio # 8250, 16[45]50-gebaseerde seriële poortenDit zijn de seriële poorten waarnaar in de wereld van
&ms-dos;/&windows; verwezen wordt als
COM-poorten.Als er een intern modem op COM4 en
een seriële poort op COM2
aanwezig is, moet het IRQ van het modem in 2 worden veranderd
(om duistere technische redenen geldt dat IRQ2 = IRQ9) om er
vanuit &os; toegang toe te krijgen. Als er een multipoort
seriële kaart aanwezig is, staat in &man.sio.4; meer
informatie over de juiste waarden die aan
/boot/device.hints toegevoegd moeten
worden. Sommige videokaarten (vaak gebaseerd op S3 chips)
gebruiken IO-adressen van de vorm 0x*2e8, en
omdat vele goedkope serieële kaarten de 16-bits
IO-adresruimte niet volledig decoderen, botsen ze met deze
kaarten waardoor de COM4-poort
praktisch onbruikbaar is.Elke serieële poort moet een uniek IRQ hebben (tenzij
er gebruik wordt gemaakt van een van de multipoortkaarten
waarbij gedeelde interrupts ondersteund worden), dus kunnen de
standaard IRQ's voor COM3 en
COM4 niet gebruikt worden.# Parallelle poort
device ppcDit is de interface voor de parallelle poort op de
ISA-bus.device ppbus # Parallelle poortbus (verplicht)Biedt ondersteuning voor de parallelle poortbus.device lpt # PrinterOndersteuning voor parallelle poort-printers.Alle van de bovenstaande drie zijn noodzakelijk om
ondersteuning voor parallelle printers aan te zetten.device plip # TCP/IP over parallelDit is het stuurprogramma voor de parallelle
netwerkinterface.device ppi # Parallelle poort interface apparaatDe algemene I/O (geek-poort) + IEEE1284 I/O.#device vpo # scbus en da verplichtzipdriveDit is voor een Iomega Zipdrive. Hiervoor is ondersteuning
voor scbus en da nodig. De
beste prestaties worden gehaald met poorten in EPP
1.9-modus.#device pucDit dient uitgecommentarieerd te worden indien er een
domme seriële of parallelle PCI-kaart
aanwezig is die ondersteund wordt door het &man.puc.4;
verbindingsstuurprogramma.# PCI Ethernet NIC's.
device de # DEC/Intel DC21x4x (Tulip)
device em # Intel PRO/1000 adapter Gigabit Ethernet Card
device ixgb # Intel PRO/10GbE Ethernet Card
device txp # 3Com 3cR990 (Typhoon)
device vx # 3Com 3c590, 3c595 (Vortex)Verscheidene PCI-netwerkkaartstuurprogramma's. Degenen die
niet in het systeem aanwezig zijn kunnen uitgecommentarieerd of
verwijderd worden.# PCI Ethernet NIC's die de MII bus controller code gebruiken.
# NB: 'device miibus' moet behouden blijven om deze NIC's te kunnen gebruiken!
device miibus # MII bus ondersteuningOndersteuning voor MII-bus is noodzakelijk voor sommige PCI
10/100 Ethernet-NICs, namelijk voor diegenen die MII-geldige
transceivers gebruiken of interfaces voor transceiverbesturing
implementeren die als een MII werken. Door device
miibus aan de kernelinstellingen toe te voegen wordt
de ondersteuning voor de generieke miibus-API en voor alle
PHY-stuurprogramma's opgenomen, waaronder een generieke voor
PHYs die niet specifiek door een individueel stuurprogramma
worden behandeld.device dc # DEC/Intel 21143 en verschillende gelijkwerkenden
device miibus # MII bus ondersteuning
device bfe # Broadcom BCM440x 10/100 Ethernet
device bge # Broadcom BCM570xx Gigabit Ethernet
device dc # DEC/Intel 21143 en verschillende gelijkwerkenden
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device pcn # AMD Am79C97x PCI 10/100 (voorrang boven 'lnc')
device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (Starfire)
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device ste # Sundance ST201 (D-Link DFE-550TX)
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 EPIC)
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (Boomerang, Cyclone)Stuurprogramma's die gebruik maken van de MII
bus-controllercode.# ISA Ethernet NIC's. Inclusief pccard NIC's.
device cs # Crystal Semiconductor CS89x0 NIC
# 'device ed' heeft 'device miibus' nodig
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 kaarten
device ex # Intel EtherExpress Pro/10 en Pro/10+
device ep # Etherlink III-gebaseerde kaarten
device fe # Fujitsu MB8696x-gebaseerde kaarten
device ie # EtherExpress 8/16, 3C507, StarLAN 10, etc.
device lnc # NE2100, NE32-VL Lance Ethernet kaarten
device sn # SMC's 9000 serie Ethernet chips
device xe # Xircom pccard Ethernet
# ISA apparaten die de oude ISA shims gebruiken
#device leISA Ethernetstuurprogramma's. In
/usr/src/sys/i386/conf/NOTES
staan details over welke kaarten door welk stuurprogramma
ondersteund worden.# Draadloze NIC kaarten
device wlan # 802.11 ondersteuning
device an # Aironet 4500/4800 802.11 draadloze NIC's.
device awi # BayStack 660 en anderen
device wi # WaveLAN/Intersil/Symbol 802.11 draadloze NIC's.
#device wl # Oudere niet-802.11 Wavelan draadloze NIC.Ondersteuning voor verscheidene draadloze kaarten.device mem # Geheugen- en kernelgeheugenapparatenDe geheugenapparaten van het systeem.device io # I/O apparaatDeze optie stelt een proces in staat om I/O-privileges te
verkrijgen. Dit is nuttig als er gebruikerprogramma's worden
geschreven die direct met hardware werken. Dit is nodig om het
X Window Systeem te draaien.device random # Entropy apparaatCryptografisch veilige willekeurige getallengenerator.device ether # Ethernet ondersteuningether is allen noodzakelijk als er een
Ethernetkaart aanwezig is. Het bevat code voor het generieke
Ethernet protocol. Op &os; 4.X dient
pseudo-device ether gebruikt te worden.device sl # Kernel SLIPsl dient voor SLIP-ondersteuning. Dit is
bijna geheel overgenomen door PPP, wat eenvoudiger is op te
zetten, beter geschikt is voor modem-naar-modem-verbindingen en
krachtiger is. Met &os; 4.X dient
pseudo-device sl gebruikt te worden.device ppp # Kernel PPPDit dient voor PPP-ondersteuning van inbelverbindingen door
de kernel. Er is ook een versie van PPP als gebruikersapplicatie
geïmplementeerd die tun gebruikt en meer
flexibiliteit en mogelijkheden biedt zoals demand-bellen.
Met &os; 4.X dient pseudo-device ppp
gebruikt te worden.device tun # Packet tunnel.Dit wordt gebruikt door de gebruikers-PPP-software. In
PPP staat meer informatie. Met
&os; 4.X dient pseudo-device tun gebruikt
te worden.
device pty # Pseudo-ttys (telnet, etc.)Dit is een pseudo-terminal of gesimuleerde
aanmeldpoort. Die wordt gebruikt door binnenkomende sessies van
telnet en rlogin, door
xterm en voor sommige andere
applicaties zoals Emacs.Met &os; 4.X dient
pseudo-device ptynummer
gebruikt te worden. Het nummer na
pty geeft het aantal
pty's aan dat aangemaakt dient te worden.
Als er meer dan het standaard aantal van zestien gelijktijdige
xterm schermen en/of remote
aanmeldingen nodig zijn, dient dit nummer overeenkomstig
verhoogd te worden, tot maximaal 256.device md # GeheugenschijvenPseudo-apparaten die een schijf in het geheugen implementeren.
Met &os; 4.X dient pseudo-device md
gebruikt te worden.device gif # IPv6 en IPv4 tunnelenDit implementeert IPv6-over-IPv4-tunneling,
IPv4-over-IPv6-tunneling, IPv4-over-IPv4-tunneling en
IPv6-over-IPv6-tunneling. Met ingang van &os; 4.4 is het
apparaat gifzelfklonend en
dient de regel pseudo-device gif gebruikt te
worden. Eerdere versies van &os; 4.X vereisen een getal,
bijvoorbeeld pseudo-device gif 4.device faith # IPv6-naar-IPv4-relay (vertaling)Dit pseudo-apparaat onderschept pakketten die ernaar
verzonden worden en leidt ze om naar het IPv4/IPv6-vertaaldaemon.
Met &os; 4.X dient pseudo-device faith 1
gebruikt te worden.# Het `bpf' apparaat schakelt de Berkeley Pakketfilter in.
# Wees bewust van de administratieve consequenties die dit heeft!
device bpf # Berkeley pakketfilterDit is het Berkeley Pakketfilter. Dit pseudo-apparaat staat
netwerkinterfaces toe om in luistermodus gezet te worden, zodat
elk pakket op een uitzendnetwerk (bijvoorbeeld een Ethernet)
onderschept wordt. Deze pakketten kunnen naar schijf onderschept
en/of onderzocht worden met het programma &man.tcpdump.1;. Met
&os; 4.X dient pseudo-device bpf gebruikt
te worden.Het apparaat &man.bpf.4; wordt ook gebruikt door
&man.dhclient.8; om het IP-adres van de standaardrouter
(gateway) te verkrijgen, enzovoorts. Als DHCP gebruikt wordt,
dient dit ingeschakeld te blijven.# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device usb # USB Bus (verplicht)
#device udbp # USB Double Bulk Pipe apparaten
device ugen # Generic
device uhid # Human Interface Devices
device ukbd # Toetsenbord
device ulpt # Printer
device umass # Schijnven/Massaopslag - scbus en da nodig
device ums # Muis
device urio # Diamond Rio 500 MP3 speler
device uscanner # Scanners
# USB Ethernet, requires mii
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB EthernetOndersteuning voor verscheidene USB-apparaten.# FireWire ondersteuning
device firewire # FireWire bus code
device sbp # SCSI over FireWire (scbus en da nodig)
device fwe # Ethernet over FireWire (niet-standaard!)Ondersteuning voor verscheidene Firewire-apparaten.Meer informatie en aanvullende apparaten die door &os;
ondersteund worden staan in
/usr/src/sys/i386/conf/NOTES.Instellingen bij Veel Geheugen
(PAE)Physical Address
Extensions(PAE)instellingen veel geheugenSommige machines (PAE) hebben meer
geheugen nodig dan limiet van 4 gigabyte op User+Kernel Virtual
Adress (KVA) ruimte. Vanwege deze limiet
voegde Intel ondersteuning toe voor toegang tot 36-bits fysieke
adresruimte in de &pentium; Pro en nieuwere lijn van
CPU's.De Physical Address Extension (PAE)
mogelijkheden van de &intel; &pentium; Pro en nieuwere CPU's
staan geheugenhoeveelheden toe tot 64 gigabyte. &os; biedt
ondersteuning voor deze mogelijkheid via de kernelinsteloptie
, die beschikbaar is in de 4.X-serie van
&os; met ingang van 4.9-RELEASE en in de 5.X-serie van &os;
met ingang van 5.1-RELEASE. Vanwege de beperkingen van de
geheugenarchitectuur van Intel wordt er geen onderscheid
gemaakt tussen geheugen boven of beneden 4 gigabytes. Geheugen
dat boven de 4 gigabytes is toegewezen wordt gewoon bij het
beschikbare gevoegd.Om ondersteuning voor PAE in de kernel
aan te zetten, dient de volgende regel aan het
kernelinstellingenbestand te worden toegevoegd:options PAEDe ondersteuning voor PAE in &os; is
alleen beschikbaar voor &intel; IA-32-processoren. Ook dient
opgemerkt te worden dat ondersteuning voor
PAE nog niet wijdverbreid getest is en
als betakwaliteit beschouwd dient te worden vergeleken met
andere stabiele kenmerken van &os;.Ondersteuning voor PAE in &os; heeft
enige beperkingen:Een proces kan niet meer dan 4 gigabyte VM-ruimte
krijgen;KLD-modules kunnen niet in een
kernel worden geladen die PAE aan heeft
staan, vanwege de verschillen in het bouwraamwerk van een
module en de kernel;Apparaatstuurprogramma's die geen gebruik maken van de
&man.bus.dma.9;-interface zullen gegevenscorruptie
veroorzaken in een kernel die PAE aan
heeft staan en hun gebruik wordt afgeraden. Om deze reden
wordt er een kernelinstellingenbestand voor
PAE geleverd met &os; 5.X, die alle
stuurprogramma's uitsluit waarvan bekend is dat ze niet
werken in een kernel die PAE aan heeft
staan;Sommige systeeminstellingen bepalen het
geheugenbronverbruik aan de hand van de hoeveelheid
beschikbaar fysiek geheugen. Zulke instellingen kunnen
onnodig veel toewijzen vanwege de grote hoeveelheid
geheugen in een PAE systeem. Een
voorbeeld hiervan is de sysctl
, die het maximum aantal
vnodes dat in de kernel aanwezig mag zijn beheert. Het is
aan te raden om deze en andere van dit soort instellingen
aan te passen aan een redelijke waarde;Het kan nodig zijn om de virtuele kerneladresruimte
(KVA) te vergroten of om het aantal
kernelbronnen dat veel gebruikt wordt (zie boven) te
verminderen om zo uitputting van KVA te
voorkomen. De kerneloptie kan
gebruikt worden om de KVA-ruimte te
vergroten.Om prestatie- en stabiliteitsredenen is het aan te raden om
&man.tuning.7; te raadplegen. &man.pae.4; bevat bijgewerkte
informatie over de ondersteuning voor PAE in
&os;.Apparaatnodes MakenapparaatnodesMAKEDEVAls &os; 5.0 of hoger gedraaid wordt, kan deze
sectie veilig worden overgeslagen. Deze versies gebruiken
&man.devfs.5; om transparant apparaatnodes voor de gebruiker toe
te wijzen.Bijna elk apparaat in de kernel heeft een overeenkomstige
node-ingang in de map /dev.
Deze nodes zien eruit als reguliere bestanden, maar zijn
eigenlijk speciale ingangen in de kernel die door programma's
gebruikt worden om toegang tot het apparaat te verkrijgen. Het
shellscript /dev/MAKEDEV, dat wordt
uitgevoerd als het besturingssysteem voor het eerst wordt
geïnstalleerd, maakt bijna alle ondersteunde apparaatnodes
aan. Het maakt echter niet alle nodes aan,
dus als ondersteuning voor een apparaat wordt toegevoegd, loont
het om te controleren of de geschikte ingangen in de map aanwezig
zijn en deze toe te voegen als ze ontbreken. Hier volgt een
eenvoudig voorbeeld:Stel dat ondersteuning voor de IDE CD-ROM aan de kernel wordt
toegevoegd:device ad0Dit betekent dat de map /dev moet worden
onderzocht op ingangen die met acd0
beginnen, mogelijk gevolgd door een letter zoals
c of voorafgegaan door de letter
r, wat duidt op een raw
apparaat. Die bestanden zijn daar niet, dus moet in de map
/dev het volgende ingegeven worden:MAKEDEV&prompt.root; sh MAKEDEV acd0Als dit script geëindigd is, zijn de ingangen
acd0c en racd0c in de
map /dev aanwezig, wat duidt op een juiste
uitvoer.Voor geluidskaarten maakt het volgende commando de juiste
ingangen aan:&prompt.root; sh MAKEDEV snd0Als apparaatnodes voor apparaten als geluidskaarten worden
aangemaakt en andere mensen toegang tot de machine hebben, kan
het wenselijk zijn om de apparaten tegen toegang van buitenaf
te beschermen door deze aan /etc/fbtab toe
te voegen. In &man.fbtab.5; staat meer informatie.Deze eenvoudige procedure dient gevolgd te worden voor elk
ander apparaat dat niet in GENERIC staat en
geen ingangen heeft in /dev.Alle SCSI-controllers gebruiken dezelfde verzameling
ingangen in /dev, dus is het niet nodig om
deze aan te maken. Ook hebben netwerkkaarten en SLIP/PPP
pseudo-apparaten geen ingang in /dev, dus
is het niet nodig om hierover bezorgd te zijn.Problemen OplossenEr zijn vijf categoriën problemen die op kunnen treden
tijdens het bouwen van een eigen kernel:config faaltAls het commando &man.config.8; faalt bij het verwerken
van de kernelbeschrijving, is er waarschijnlijk ergens een
eenvoudige fout gemaakt. Gelukkig geeft &man.config.8; het
nummer van de regel weer waarmee het problemen had, dus kan
snel de regel gevonden worden waarin de fout zit.
In het onderstaande voorbeeld dient gecontroleerd te worden
of het sleutelwoord juist is ingevoerd door het met de
kernel GENERIC of een andere
referentie te vergelijken:config: line 17: syntax errormake faaltAls make faalt, duidt dit meestal op
een fout in de kernelbeschrijving die niet erg genoeg is om
door &man.config.8; opgemerkt te worden. De instellingen
dienen nogmaals nagekeken te worden. Als het probleem nog
steeds niet is op te lossen, stuur dan een mail naar de
&a.questions; met de kernelinstellingen. Dat leidt meestal
snel tot een diagnose.Het installeren van de nieuwe kernel misluktAls het compileren van de kernel goed ging, maar het
installeren mislukte (make install of
make installkernel faalde), dient als
eerste gecontroleerd te worden of het systeem op
beveiligingsniveau (securelevel) 1 of hoger draait (zie
&man.init.8;). De kernelinstallatie probeert namelijk om
de vlag immutable van de oude kernel te verwijderen en de
vlag immutable op de nieuwe kernel te zetten. Aangezien
beveiligingsniveau 1 of hoger verhindert om de vlag
immutable te verwijderen van enig bestand op het systeem,
dient de kernelinstallatie op beveiligingsniveau 0 of lager
uitgevoerd te worden.Bovenstaande geldt alleen voor &os; 4.X en eerdere
versies. &os; 5.X en hogere versies zetten de vlag
immutable niet op de kernel en een mislukte poging om de
kernel de kernel te installeren duidt meestal op een
fundamenteler probleem.De kernel start niet opAls de nieuwe kernel niet opstart of de apparaten
niet herkent is kalmte geboden. &os; heeft een uitstekend
mechanisme om van niet-compatibele kernels te herstellen.
De gewenste kernel om mee op te starten kan vanuit de &os;
boot loader gekozen worden. Als het systeem terugtelt
vanaf 10, kan deze vanuit het opstartmenu gekozen worden.
Sla een willekeurige toets, behalve de
Enter toets, aan, voer
unload in en daarna
boot /boot/kernel.old/kernel
of de bestandsnaam van enige andere kernel die correct
opstart. Als de kernelinstellingen gewijzigd worden, is
het altijd aan te raden om een kernel bij de hand te houden
waarvan bekend is dat die juist werkt.Nadat er met een goede kernel is opgestart, kan het
instellingenbestand gecontroleerd worden en geprobeerd
worden om de kernel nogmaals te bouwen. Een behulpzame
bron is het bestand /var/log/messages,
dat onder andere alle kernelberichten van alle keren dat er
succesvol is opgestart vastlegt. Ook geeft &man.dmesg.8;
alle kernelberichten weer van de huidige
opstartprocedure.Als er problemen zijn met het bouwen van een kernel,
dient een GENERIC, of een andere
kernel waarvan bekend is dat die werkt, bewaard te worden
onder een andere naam die niet verwijderd wordt als de
volgende kernel gebouwd wordt. Er kan niet op
kernel.old vertrouwd worden omdat
bij de installatie van een nieuwe kernel
kernel.old overschreven wordt met de
laatst geïnstaleerde kernel, die niet hoeft te
werken. Ook dient de werkende kernel zo snel mogelijk
naar de juiste plaats /boot/kernel verplaatst te
worden, omdat anders commando's als &man.ps.1; eventueel
onjuist werken. Hiervoor dient simpelweg de map met de
goede kernel hernoemd te worden:&prompt.root; mv /boot/kernel /boot/kernel.slecht
&prompt.root; mv /boot/kernel.goed /boot/kernelVoor versies van &os; eerder dan 5.X luidt het juiste
commando om het kernelbestand dat make
installeert te ontgrendelen (om een andere
kernel definitief terug te zetten):&prompt.root; chflags noschg /kernelAls dit niet mogelijk is, wordt er waarschijnlijk op
een beveiligingsniveau groter dan nul gedraaid. Wijzig
kern_securelevel in
/etc/rc.conf naar
–1 en start het systeem opnieuw.
Deze instelling kan op het vorige niveau worden
teruggezet als de nieuwe kernel naar behoren
werkt.Als het wenselijk is om de nieuwe kernel
vast te zetten op zijn plaats, of enig
ander bestand, zodat het niet verplaatst of verknoeid kan
worden:&prompt.root; chflags schg /kernelDe kernel werkt, maar &man.ps.1; werkt niet meerAls er een andere versie van de kernel is
geïnstalleerd dan degene waarmee de
systeemgereedschappen gebouwd zijn, bijvoorbeeld een kernel
voor 5.X op een 4.X-systeem, werken vele
systeemstatuscommando's als &man.ps.1; en &man.vmstat.8;
niet langer. De wereld moet opnieuw gecompileerd en
geïnstalleerd worden en met dezelfde broncodestructuur
als de kernel zijn gebouwd. Dit is een van de redenen
waarom het normaliter geen goed idee is om een afwijkende
versie van de kernel ten opzichte van de rest van de wereld
te gebruiken.
diff --git a/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml
index 5f99a800e1..af36a29c26 100644
--- a/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/l10n/chapter.sgml
@@ -1,1097 +1,1105 @@
Andrey A.ChernovBijgedragen door Michael C.WuHerschreven door RenéLadanVertaald door Lokalisatie - I18N/L10N Gebruiken en Instellen
- Samenvatting
+ Overzicht&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 te
configureren.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?
- internationalisatie
+
+ internationalisatie
+
+ lokalisatie
+ lokalisatieOntwikkelaars 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 ISO-8859-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; versies 4.5 en hoger gebruiken 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
configuratiebestanden ingesteld worden:POSIXLANG voor de &posix; &man.setlocale.3;
functies.MIMEMM_CHARSET voor de MIME
karakters voor applicaties.Dit is inclusief de gebruikers-shell-configuratie, de
configuratie van de specifieke applicatie en de X11
configuratie.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:\
:lc_all=zh_TW.Big:\
:lc_collate=zh_TW.Big5:\
:lc_ctype=zh_TW.Big5:\
:lc_messages=zh_TW.Big5:\
:lc_monetary=zh_TW.Big5:\
:lc_numeric=zh_TW.Big5:\
:lc_time=zh_TW.Big5:\
:charset=big5:\
:xmodifiers="@im=xcin": # Instellen van 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: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 ingestelt met
- /stand/sysinstall. In
- sysinstall kan
+ 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; versies vóór 5.0 aan te zetten kan de
volgende regel aan dekernelconfiguratie toegevoegd
worden:options SC_MOUSE_CHAR=0x03Voor &os; versies 4.4 en hoger 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:KarakterverzamelingTerminaltypeISO-8859-1 of ISO-8859-15cons25l1ISO-8859-2cons25l2ISO-8859-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 &xfree86;
+ 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.msdos.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 geconfigureerd 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 TalenAndrey A.ChernovOorspronkelijk 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 voor de &os; versies voorafgaand aan 5.0 de
volgende regel toe aan het
kernelconfiguratiebestand:options SC_MOUSE_CHAR=0x03Voeg voor &os; versie 4.4 en hoger de volgende regel
toe aan /etc/rc.conf:mousechar_start=3Gebruik 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.msdos.8; geeft verdere uitleg.X11 InstellenVoer eerst de niet-X
lokale instellingen uit zoals beschreven.De Russische KOI8-R
locale werkt niet altijd met oude
&xfree86; uitvoeringen
- (lager dan 3.3). &xfree86;
- 4.X is nu de standaardversie van het X
- Window Systeem op &os;. Dit is meestal geen probleem,
- tenzij een oude versie van &os; wordt gebruikt.
+ (lager dan 3.3). &xorg; is
+ nu de standaardversie van het X Window Systeem op &os;.
+ Dit is meestal geen probleem, tenzij een oude versie
+ van &os; wordt gebruikt.
Voer in de map russian/X.language het volgende
uit:&prompt.root; make installBovenstaande port installeert de nieuwste versie van
de KOI8-R lettertypen.
- &xfree86; 3.3 heeft al
- enkele KOI8-R lettertypen, maar deze zijn beter
+ &xorg; (en ook
+ &xfree86; vanaf versie 3.3)
+ heeft al enkele KOI8-R lettertypen, maar deze zijn beter
geschaald.Controleer de "Files" sectie in
/etc/XF86Config bestand. De
volgende regels moeten
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.Om een Russisch toetsenbord te activeren dient het
volgende in het "Keyboard" gedeelte
van XF86Config te staan:Voor &xfree86; 3.X:XkbLayout "ru"
XkbOptions "grp:caps_toggle"
- Voor &xfree86; 4.X:
+ Voor &xorg;:Option "XkbLayout" "ru"
Option "XkbOptions" "grp:caps_toggle"Ook moet daar XkbDisable
uitgeschakeld (uitgecomment) zijn.De RUS/LAT-schakelaar is CapsLock.
De oude CapsLock functie is nog
steeds beschikbaar via ShiftCapsLock
(alleen in LAT-modus).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
XF86Config toegevoegd worden:
- Voor &xfree86; 3.X:
+ Voor &xorg; (of
+ >&xfree86; 4.X):XkbVariant "winkeys"
- Voor &xfree86; 4.X:
+ Voor &xorg; (of
+ &xfree86 4.X):Option "XkbVariant" "winkeys"Het Russische XKB toetsenbord hoeft niet te werken
met oude versies van
&xfree86;, zie bovenstaande noot voor
meer informatie. Het Russische XKB toetsenbord hoeft
ook 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 hoe umlauten in &os; gebruikt
kunnen worden. De tutorial is in het Duits geschreven en staat
op .Japans en KoreaanslokalisatieJapanslokalisatieKoreaansJapanse lokalisatie staat beschreven op en de Koreaanse
lokalisatie staat op .Niet-Engelstalige &os; documentatieSommige delen van &os; 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/linuxemu/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml
index 8db84701ac..609493bed7 100644
--- a/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml
@@ -1,4032 +1,4029 @@
JimMockGeherstructureerd en delen bijgewerkt door Brian N.HandyOrigineel bijgedragen door RichMurpheyRenéLadanVertaald door &linux; Binaire Compatibiliteit
- Samenvatting
+ Overzicht&os; levert binaire compatibiliteit met verscheidene andere
&unix; achtige besturingssystemen, waaronder &linux;. Op dit
moment kan de vraag gesteld worden waarom &os; nu precies
&linux; binaries moet kunnen draaien. Het antwoord is dat veel
bedrijven en ontwikkelaars alleen ontwikkelen voor &linux;, omdat
dat het nieuwste hebbeding is in de wereld van
computers. Dat laat &os; gebruikers al zeurend achter bij
diezelfde bedrijven en ontwikkelaars om originele &os; versies
van hun applicaties. Het probleem is dat veel van deze bedrijven
zich niet goed realiseren hoeveel mensen hun product zouden
gebruiken als er ook &os; versies van waren en de meesten blijven
alleen voor &linux; ontwikkelen. Dus wat moet een &os; gebruiker
doen? Hier komt de &linux; binaire compatibiliteit van &os; om
de hoek kijken.In een notendop stelt de compatibiliteit &os; in staat om
rond de 90% van alle &linux; applicaties zonder wijzigingen te
draaien. Dit omvat applicaties zoals
&staroffice;, de &linux; versie van
&netscape;,
&adobe; &acrobat;,
RealPlayer,
VMWare,
&oracle;, WordPerfect,
Doom,
Quake en meer. Er wordt zelfs gemeld
dat in sommige gevallen &linux; binaries beter presteren op &os;
dan op &linux;.
-
- &linux;
-
- /proc bestandssysteem
-
-
- Er zijn echter enkele &linux; specifieke
+ Er zijn echter enkele &linux;-specifieke
besturingssysteemeigenschappen die niet door &os; ondersteund
worden. &linux; binaries werken niet op &os; als ze overvloedig
- gebruik maken van het &linux; bestandssysteem
- /proc (dat anders is dan
- /proc van &os;), of van &i386; specifieke
- aanroepen, zoals het aanzetten van de virtuele 8086 modus.
+ gebruik maken van &i386; specifieke aanroepen, zoals het
+ aanzetten van de virtuele 8086 modus.Na het lezen van dit hoofdstuk weet de lezer:Hoe &linux; binaire compatibiliteit op een systeem aan
te zetten;Hoe aanvullende &linux; gedeelde bibliotheken te
installeren;Hoe &linux; applicaties op een &os; systeem te
installeren;De implementatiedetails van &linux; compatibiliteit in
&os;.Aangeraden voorkennis:Hoe extra software van derden te installeren ().InstallatieKLD (kernel loadable object)&linux; binaire compatibiliteit staat standaard niet aan. De
gemakkelijkste manier om deze functionaliteit aan te zetten is
door het linux KLD object (Kernel
LoaDable object) te laden. Deze module kan geladen
worden door simpelweg linux op de
opdrachtregel in te geven.Als &linux; compatibiliteit altijd aan moet staan, dan moet
de volgende regel aan /etc/rc.conf
toegevoegd worden:linux_enable="YES"Met &man.kldstat.8; kan gecontroleerd worden of de KLD
geladen is:&prompt.user; kldstat
Id Refs Address Size Name
1 2 0xc0100000 16bd8 kernel
7 1 0xc24db000 d000 linux.kokerneloptiesLINUXAls het om enige reden ongewenst of onmogelijk is de KLD te
laden, dan kan de &linux; binaire compatibiliteit statisch in de
kernel gecompileerd worden door
options COMPAT_LINUX aan het
kernelinstellingenbestand toe te voegen. Daarna kan de nieuwe
kernel zoals beschreven in
geïnstalleerd worden.&linux; Runtime Bibliotheken Installeren&linux;&linux; bibliotheken installerenDit kan op twee manieren gedaan worden: door de linux_base port te
gebruiken of door ze handmatig te
installeren.Installeren uit de linux_base PortportscollectieDit is verreweg de gemakkelijkste weg om te bewandelen
om de runtime bibliotheken te installeren. Het is net
als het installeren van andere ports uit de portscollectie.
Dit kan met het volgende commando:&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distcleanNu is er werkende &linux; binaire compatibiliteit.
Sommige programma's kunnen klagen over onjuiste kleine
versies van de systeembibliotheken. Over het algemeen
schijnt dit echter geen probleem te zijn.Er kunnen verschillende versies van de emulators/linux_base port
beschikbaar zijn, overeenkomend met verschillende versies
van verscheidene &linux; distributies. Het is verstandig
de port te installeren die het meest voldoet aan de eisen
van de &linux; applicaties die geïnstalleerd gaan
worden.Bibliotheken Handmatig InstallerenAls de portscollectie niet is geïnstalleerd, kunnen
de bibliotheken met de hand geïnstalleerd worden. Om
alles te laten werken moeten de &linux; gedeelde bibliotheken
waarvan het programma afhankelijk is en de runtime linker
geïnstalleerd worden. Ook moet een shadow
root map aangemaakt worden,
/compat/linux, voor &linux; bibliotheken
op een &os; systeem. Elke gedeelde bibliotheek die wordt
geopend door &linux; programma's die op &os; draaien, kijken
eerst in deze boomstructuur. Dus als een &linux; programma
bijvoorbeeld /lib/libc.so laadt,
probeert &os; eerst
/compat/linux/lib/libc.so te openen, en
als die niet bestaat, probeert het
/lib/libc.so proberen. Gedeelde
bibliotheken moeten in de schaduwmapstructuur
geïnstalleerd worden in plaats van in de paden die het
&linux; ld.so rapporteert.In het algemeen geldt dat alleen de eerste paar keer
dat een &linux; binary wordt geïnstalleerd op een &os;
systeem naar de gedeelde bibliotheken gezocht wordt waar
&linux; binaries van afhankelijk zijn. Na een tijd is de
verzameling van &linux; gedeelde bibliotheken op een systeem
voldoende groot om nieuw geïmporteerde &linux; binaries
te kunnen draaien zonder enig extra werk.Extra Gedeelde Bibliotheken Installerengedeelde bibliothekenWat als de linux_base port is
geïnstalleerd en een applicatie nog steeds klaagt over
ontbrekende gedeelde bibliotheken? Op zich zijn er twee
mogelijkheden (voor het opvolgen van deze instructies zijn
root rechten op een &os; systeem
vereist).Als er toegang is tot een &linux; systeem kan gekeken
worden welke gedeelde bibliotheken de applicatie nodig heeft
en kunnen ze gekopieerd worden naar het &os systeem. Dit
wordt toegelicht in het volgende voorbeeld:Stel dat FTP gebruikt is om de &linux; binary van
Doom op te halen en die op een
&linux; systeem staat waar toegang tot is. Dan kan met
ldd linuxdoom gecontroleerd worden welke
gedeelde bibliotheken er nodig zijn:&prompt.user; ldd linuxdoom
libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0
libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0
libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29symbolische linksAlle bestanden uit de laatste kolom zijn nodig en
moeten onder /compat/linux komen te
staat en de namen uit de eerste kolom moeten er als
symbolische links naar verwijzen. Dit betekent dat
uiteindelijk deze bestanden op een &os; systeem
staan:/compat/linux/usr/X11/lib/libXt.so.3.1.0
/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0
/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Als er al een &linux; gedeelde bibliotheek met een
groot revisienummer overeenstemmend met de eerste kolom
van de ldd uitvoer is, dan hoeft het
bestand uit de laatste kolom niet naar een systeem
gekopieerd te worden. Het bestand dat er al staat moet
werken. Het is aan te raden om de gedeelde bibliotheek
sowieso te kopiëren als het een nieuwere versie
is. De oude kan verwijderd worden, zolang de
symbolische link maar naar de nieuwe wijst. Dus als
deze bibliotheken op een systeem staan:/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -> libc.so.4.6.27en een nieuwe binary zegt een latere versie nodig
te hebben volgens de uitvoer van
ldd:libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29Als slechts één of twee versies
verouderd zijn in het laatste cijfer, dan hoeft
/lib/libc.so.4.6.29 niet
gekopieerd te worden, omdat het programma goed moet
werken met de ietwat oudere versie. Als er echter
behoefte aan is, kan besloten worden om
libc.so sowieso te verplaatsen,
en dat resulteert in:/compat/linux/lib/libc.so.4.6.29
/compat/linux/libc.so.4 -> lbic.so.4.6.29
Het symbolische link mechanisme is
alleen nodig voor &linux;
binaries. De &os; runtime linker zorgt zelf voor het
kijken naar passende grote revisienummers en daar hoeft
geen zorg over te bestaan.
&linux; ELF Binaries Installeren&linux;ELF binariesELF binaries hebben soms een extra stap van
branding nodig. Als er ongemerkt ELF binaries
worden gedraaid, onstaat er een foutmelding zoals de
volgende:&prompt.user; ./mijn-linux-elf-binary
ELF binary type not known
AbortOm de &os; kernel te helpen &os; ELF binaries en &linux;
binaries uit elkaar te houden, kan &man.brandelf.1; gebruikt
worden.&prompt.user; brandelf -t Linux mijn-linux-elf-binaryGNU gereedschapskistDe GNU gereedschapskist plaatst nu automatisch de juiste
merkinformatie in ELF binaries, dus deze stap zou steeds
overbodiger moeten worden in de toekomst.De Hostnaamresolver Instellenresolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keywordAls DNS niet werkt of de bovenstaande melding ontstaat, dan
moet /compat/linux/etc/host.conf ingesteld
worden met daarin:order hosts, bind
multi onDe volgorde geeft aan dat /etc/hosts
als eerste doorzocht wordt en DNS als tweede. Als
/compat/linux/etc/host.conf niet
geïnstalleerd is, vinden &linux; applicaties
/etc/host.conf van &os; en klagen ze over
de incompatibele &os; syntaxis. bind moet
verwijderd worden als er geen naamserver is ingesteld die
gebruik maakt van /etc/resolv.conf.MurrayStokelyBijgewerkt voor &mathematica; 4.X door BojanBistrovicSamengevoegd met werk van &mathematica; Installerenapplicaties&mathematica;Dit document beschrijft het installatieproces van de &linux;
versie van &mathematica; 4.X op een
&os; systeem.De &linux; versie van
&mathematica; draait perfect op &os;,
maar de binaries die door Wolfram geleverd worden moeten gemerkt
worden zodat &os; weet dat het de Linux ABI moet gebruiken om ze
uit te voeren.De &linux; versie van
&mathematica; of
&mathematica; for Students kan
direct bij Wolfram besteld worden op .De &linux; Binaries MerkenDe &linux; binaries zijn geplaatst in de map
Unix van de
&mathematica; CDROM geleverd door
Wolfram. Deze mappenstructuur moet naar de lokale harde schijf
gekopieerd worden, zodat de &linux; binaries gemerkt kunnen
wordt met &man.brandelf.1; voordat de installer draait:&prompt.root; mount /cdrom
&prompt.root; cp -rp /cdrom/Unix/ /localdir/
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Kernel/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/FrontEnd/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Installation/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Graphics/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Converters/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/LicenseManager/Binaries/Linux/mathlm
&prompt.root; cd /localdir/Installers/Linux/
&prompt.root; ./MathInstallerAls alternatief kan simpelweg het standaard ELF merk op
Linux gezet worden voor alle ongemerkte binaries met het
commando:&prompt.root; sysctl kern.fallback_elf_brand=3Dit laat &os; aannemen dat alle ongemerkte ELF binaries de
Linux ABI gebruiken en dus zou de installer rechtstreeks van
de CDROM moeten kunnen draaien.&mathematica; Wachtwoord OpvragenVoordat &mathematica; kan
draaien, moet er een wachtwoord komen van Wolfram dat
overeenkomt met het machine ID.EthernetMAC adresAls de &linux; compatibiliteits-runtime bibliotheken zijn
geïnstalleerd en &mathematica;
is uitgepaktm, dan kan het machine ID verkregen
worden door mathinfo te draaien in de
installatiemap. Dit machine-ID is alleen op het MAC adres van
de eerste Ethernetkaart gebaseerd.&prompt.root; cd /localdir/Files/SystemFiles/Installation/Binaries/Linux
&prompt.root; mathinfo
disco.example.com 7115-70839-20412Bij een registratie bij Wolfram, per email, telefoon of
fax, wordt het machine ID opgegeven en zij
reageren met een overeenkomstig wachtwoord dat uit groepen
getallen bestaat. Deze informatie kan ingevoerd worden bij het
voor de eerste keer draaien van
&mathematica;, net als voor elk
ander &mathematica; platform.Het &mathematica; Frontend over een Netwerk
Draaien&mathematica; gebruikt enkele
speciale lettertypen om tekens af te beelden die niet aanwezig
zijn in een standaard lettertypeverzameling (integralen,
sommen, Griekse letters, enzovoort). Het X-protocol vereist
dat deze lettertypen lokaal worden
geïnstalleerd. Dit betekent dat deze lettertypen
gekopieerd moeten worden vanaf de CDROM of vanaf een host met
&mathematica; erop naar de lokale
machine. Deze lettertypen worden meestal opgeslagen in
/cdrom/Unix/Files/SystemFiles/Fonts op de
CDROM of in
/usr/local/mathematica/SystemFiles/Fonts
op de harde schijf. De eigenlijke lettertypen staan in de
submap Type1 en X.
Er zijn verschillende manieren om ze te installeren, zoals
hieronder staat beschreven.De eerste manier is om ze te kopiëren in
één van de bestaande lettertypenmappen in
/usr/X11R6/lib/X11/fonts. Hiertoe dient
fonts.dir bewerkt te worden door de namen
van de lettertypen eraan toe te voegen het aantal lettertypen
op de eerste regel te veranderen. Als alternatief kan ook
eenvoudig &man.mkfontdir.1; in de map gedraaid worden waar de
lettertypen heen zijn gekopieerd.De tweede manier om dit te doen is door de mappen naar
/usr/X11R6/lib/X11/fonts te
kopiëren:&prompt.root; cd /usr/X11R6/lib/X11/fonts
&prompt.root; mkdir X
&prompt.root; mkdir MathType1
&prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts
&prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X
&prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; cd /usr/X11R6/lib/X11/fonts/X
&prompt.root; mkfontdir
&prompt.root; cd ../MathType1
&prompt.root; mkfontdirVoeg nu de nieuwe lettertypenmappen toe aan het
lettertypenpad:&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X
&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; xset fp rehash
- Als de &xfree86; server gebruikt
+ Als de &xorg; server gebruikt
wordt, kunnen deze lettertypenmappen automatisch geladen worden
- door ze aan XF86Config toe te
+ door ze aan xorg.conf toe te
voegen.
+
+ Voor &xfree86; servers is het
+ instellingenbestand XF86Config.
+
+
lettertypenAls er nog geen map
/usr/X11R6/lib/X11/fonts/Type1 bestaat,
kan de naam van de map MathType1 in het
bovenstaande voorbeeld veranderd worden naar
Type1.AaronKaplanBijgedragen door RobertGetschmannMet dank aan &maple; InstallerenapplicatiesMaple&maple; is een commercieel
wiskundeprogramma vergelijkbaar met
&mathematica;. De software is te koop
op en kan daar
ook geregistreerd worden voor een licentiebestand. Om deze
software op &os; te installeren kunnen de volgende eenvoudige
stappen gevolgd worden:Voer het INSTALL> shellscript
uit van de productdistributie. Kies de RedHat
optie als daarom wordt gevraagd door het
installatieprogramma. Een typische installatiemap zou
/usr/local/maple
zijn.Bestel, als dat nog niet gedaan is, een licentie voor
&maple; van Maple Waterloo
Software () en kopieer
deze naar
/usr/local/maple/license/license.dat.Installeer de FLEXlm
licentiebeheerder met het installatieshellscript
INSTALL_LIC, dat geleverd wordt bij
&maple;. Stel de primaire
hostnaam voor de machine in voor de licentieserver.Patch het bestand
/usr/local/maple/bin/maple.system.type
met het volgende: ----- knip ------------------
*** maple.system.type.orig Sun Jul 8 16:35:33 2001
--- maple.system.type Sun Jul 8 16:35:51 2001
***************
*** 72,77 ****
--- 72,78 ----
# the IBM RS/6000 AIX case
MAPLE_BIN="bin.IBM_RISC_UNIX"
;;
+ "FreeBSD"|\
"Linux")
# the Linux/x86 case
# We have two Linux implementations, one for Red Hat and
----- knip einde van patch -----Achter "FreeBSD"| mogen geen verdere
witvelden staan.Deze patch instrueert &maple;
om &os; als een &linux; systeem te herkennen.
Het shellscript bin/maple roept het
shellscript bin/maple.system.type aan,
dat op zijn beurt uname -a aanroept om
achter de naam van het besturingssysteem te komen.
Afhankelijk van de naam van het besturingssysteem zoekt het
uit welke binaries het moet gebruiken.Start de licentieserver.Het volgende script, geïnstalleerd als
/usr/local/etc/rc.d/lmgrd.sh, is een
gemakkelijke manier om lmgrd op te
starten: ----- knip ------------
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX
export PATH
LICENSE_FILE=/usr/local/maple/license/license.dat
LOG=/var/log/lmgrd.log
case "$1" in
start)
lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
echo -n " lmgrd"
;;
stop)
lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
;;
*)
echo "Usage: `basename $0` {start|stop}" 1>&2
exit 64
;;
esac
exit 0
----- knip ------------&maple; testen:&prompt.user; cd /usr/local/maple/bin
&prompt.user; ./xmapleNu hoort het programma te draaien. Het is belangrijk om
Maplesoft te schrijven om ze te laten weten dat een echte
&os; versie gewenst is!Gemeenschappelijke Verborgen GevarenDe FLEXlm
licentiebeheerder kan een lastig programma zijn om mee te
werken. Aanvullende documentatie staat op .lmgrd staat er bekend om erg
kieskeurig over het licentiebestand te zijn en core te dumpen
als er een probleem is. Een correct licentiebestand ziet er
zo uit:# =======================================================
# License File for UNIX Installations ("Pointer File")
# =======================================================
SERVER chillig ANY
#USE_SERVER
VENDOR maplelmg
FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \
ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
SN=XXXXXXXXXHet serienummer en de sleutel zijn vervangen door
X'en. chillig is de
hostnaam.Het bewerken van het licentiebestand lukt zolang de
regel FEATURE niet verandert (die
beschermd is door de licentiesleutel).DanPellegBijgedragen door &matlab; Installerenapplicaties&matlab;Dit document beschrijft het installatieproces van de &linux;
versie van &matlab; 6.5 op een &os;
systeem. Het werkt best goed, met uitzondering van de
&java.virtual.machine; (zie ).De &linux; versie van &matlab; kan
besteld worden bij The MathWorks op . Er dient ook een
licentiebestand of instructies hoe dat te maken te zijn. Het is
belangrijk om Maplesoft te schrijven om ze te laten weten dat een
echte &os; versie gewenst is!&matlab; InstallerenOm &matlab; te
installeren:Laad de installatie-CD en mount die. Start het
installatiescript als root:&prompt.root; /compat/linux/bin/sh /cdrom/installHet is een grafisch installatieprogramma. Als er
foutmeldingen verschijnen dat het programma geen scherm
kan openen, kan setenv HOME
~GEBRUIKER
uitgevoerd worden, waar
GEBRUIKER de gebruiker is
waarmee &man.su.1; is gedaan.Als om de &matlab; rootmap
wordt gevraagd, dient
/compat/linux/usr/local/matlab
opgegeven te worden.
Voer op de commandoregel het volgende uit om de
rest van het installatieproces gemakkelijk te houden:
set
MATLAB=/compat/linux/usr/local/matlab.Wijzig het licentiebestand zoals aangegeven tijdens het
verkrijgen van de licentie voor
&matlab;.Dit bestand kan van tevoren gemaakt worden met een
tekstverwerker en door het te kopiëren naar
$MATLAB/license.dat voordat het
installatieprogramma vraagt om het te bewerken.Maak het installatieproces af.Nu is de installatie van
&matlab; compleet. De volgende
stappen lijmen het aan het &os; systeem.Licentiebeheerder StartenMaak symbolische links voor de scriptbestanden van de
licentiebeheerder:&prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW
&prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMWMaak een opstartbestand in
/usr/local/etc/rc.d/flexlm.sh.
Onderstaand voorbeeld is een gewijzigde versie van het
meegeleverde $MATLAB/etc/rc.lm.glnx86.
De wijzigingen omvatten bestandslocaties en het starten
van de licentiebeheerder onder &linux;-emulatie.#!/bin/sh
case "$1" in
start)
if [ -f /usr/local/etc/lmboot_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u gebruikersnaam && echo 'MATLAB_lmgrd'
fi
;;
stop)
if [ -f /usr/local/etc/lmdown_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0Het bestand moet uitvoerbaar zijn:&prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.shOok moet bovenstaande
gebruikersnaam vervangen
worden door een geldige gebruikersnaam op het systeem
(maar niet door root).Start de licentiebeheerder op met het commando:&prompt.root; /usr/local/etc/rc.d/flexlm.sh startDe &java; Runtime-omgeving LinkenVerander de &java; Runtime
Environment Link naar een die werkt op &os;:&prompt.root; cd $MATLAB/sys/java/jre/glnx86
&prompt.root; unlink jre; ln -s ./jre1.1.8 ./jre&matlab; Opstartscript MakenPlaats het volgende startscript in
/usr/local/bin/matlab:#!/bin/sh
/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"Geef vervolgens het commando
chmod +x /usr/local/bin/matlab.Afhankelijk van de versie van emulators/linux_base, kunnen er
fouten optreden als dit script draait. Om dat te voorkomen,
dient in
/compat/linux/usr/local/matlab/bin/matlab
de regel:if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then(in versie 13.0.1 staat dit op regel 410) veranderd te
worden in:if test -L $newbase; then&matlab; Afsluitscript MakenHet volgende is nodig om een probleem op te lossen dat
samenhangt met het onjuist afsluiten van &matlab;.Maak het bestand
$MATLAB/toolbox/local/finish.m dat
alleen de volgende regel bevat:! $MATLAB/bin/finish.sh$MATLAB$ is hier letterlijk
bedoeld.In dezelfde map staan de bestanden
finishsav.m en
finishdlg.m, die de mogelijkheid
geven om de werkomgeving te bewaren vóór
het afsluiten. Als één van deze scripts
gebruikt wordt, dient de bovenstaande regel direct na het
commando save ingevoegd te worden.
Maak het bestand
$MATLAB/bin/finish.sh, dat het
volgende bevat:#!/usr/compat/linux/bin/sh
(sleep 5; killall -1 matlab_helper) &
exit 0Maak het bestand uitvoerbaar:&prompt.root; chmod +x $MATLAB/bin/finish.sh&matlab; GebruikenNu kan met matlab het programma gestart
worden.MarcelMoolenaarBijgedragen door &oracle; InstallerenapplicatiesOracleVoorwoordHieronder wordt het installatieproces van
&oracle; 8.0.5 en
&oracle; 8.0.5.1 Enterprise
Edition voor &linux; op een &os;-machine
beschreven.De &linux;-omgeving InstallerenUit de portscollectie dienen emulators/linux_base en devel/linux_devtools
geïnstalleerd te zijn. Als er problemen zijn met deze
ports, kan het zijn dat de packages of oudere versies uit de
portscollectie gebruikt moeten worden.Om de intelligente agent te draaien, moet ook het Red Hat
Tcl package geïnstalleerd worden:
tcl-8.0.3-20.i386.rpm. Het algemene
commando om packages te installeren met de officiële
RPM port (archivers/rpm) is:&prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm packageDe installatie van het package
hoort foutloos te verlopen.De &oracle;-omgeving CreërenVoordat &oracle;
geïnstalleerd kan worden, moet een juiste omgeving
opgezet worden. Dit document beschrijft alleen welke
speciale dingen gedaan moeten worden om
&oracle; voor &linux; op &os; te
draaien, en niet wat beschreven staat in de
&oracle;
installatiehandleiding.KerneloptimalisatiekerneloptimalisatieZoals beschreven staat in de
&oracle; installatiehandleiding
moet de maximale grootte van het gedeelde geheugen ingesteld
worden. Op &os; moet SHMMAX niet gebruikt
worden. SHMMAX wordt slechts uit
SHMMAXPGS en PGSIZE
berekend. Daarom dient SHMMAXPGS
gedefinieerd te worden. Alle andere opties kunnen gebruikt
worden zoals in de handleiding staat beschreven.
Bijvoorbeeld:options SHMMAXPGS=10000
options SHMMNI=100
options SHMSEG=10
options SEMMNS=200
options SEMMNI=70
options SEMMSL=61Deze opties kunnen naargelang het gebruik van
&oracle; ingesteld worden.Ook de volgende opties dienen in het
kernelinstellingenbestand te staan:options SYSVSHM #SysV gedeeld geheugen
options SYSVSEM #SysV semaforen
options SYSVMSG #SysV interprocescommunicatie&oracle; AccountCreeër een oracle account op
dezelfde manier als elk ander account. Het
oracle account is alleen bijzonder in
het opzicht dat het een &linux; shell moet hebben. Dat kan
door /compat/linux/bin/bash toe te voegen
aan /etc/shells en de shell voor het
oracle account in te stellen op
/compat/linux/bin/bash.OmgevingNaast de normale &oracle;
variabelen als ORACLE_HOME en
ORACLE_SID moeten de volgende
omgevingsvariabelen ingesteld worden:VariabeleWaardeLD_LIBRARY_PATH$ORACLE_HOME/libCLASSPATH$ORACLE_HOME/jdbc/lib/classes111.zipPATH/compat/linux/bin;
/compat/linux/sbin;
/compat/linux/usr/bin;
/compat/linux/usr/sbin;
/bin;
/sbin;
/usr/bin;
/usr/sbin;
/usr/local/bin;
$ORACLE_HOME/binHet is aan te raden om alle omgevingsvariabelen in
.profile in te stellen. Een volledig
voorbeeld is:ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=386x; export ORACLE_TERM
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
export CLASSPATH
PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin
PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
export PATH&oracle; InstallerenWegens een kleine inconsistentie in de &linux; emulator
moet de map .oracle aangemaakt worden
in /var/tmp voordat het
installatieprogramma wordt gestart. In deze map moet òf
door iedereen geschreven kunnen worden òf de
oracle gebruiker moet de eigenaar zijn.
Nu hoort &oracle; zonder problemen
te installeren. Bij problemen dienen eerst de
&oracle; distributie en/of de
instellingen gecontroleerd te worden! Nadat
&oracle; is geïnstalleerd,
moeten de patches uit de volgende twee secties
geïnstalleerd worden.Een veelvoorkomend probleem is dat de adapter voor het
TCP-protocol niet goed is geïnstalleerd. De consequentie
daarvan is dat er geen TCP-listeners gestart kunnen worden. De
volgende acties helpen om dit probleem op te lossen:&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk ntcontab.o
&prompt.root; cd $ORACLE_HOME/lib
&prompt.root; ar r libnetwork.a ntcontab.o
&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk installHierna dient root.sh nogmaals te
draaien!root.sh PatchenAls &oracle;
geïnstalleerd wordt, worden sommige acties die als
root moeten worden uitgevoerd
geregistreerd in een shellscript met de naam
root.sh. Dit script komt in de map
orainst te staan. De volgende patch
dient uitgevoerd te worden op root.sh om
het de juiste locatie van chown te laten
gebruiken of als alternatief kan het script onder een
originele &linux; shell gedraaid worden*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
--- orainst/root.sh Mon Dec 28 15:58:53 1998
***************
*** 31,37 ****
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/bin/chown
#
# Define variables to be used in this script
--- 31,37 ----
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/usr/sbin/chown
#
# Define variables to be used in this scriptAls &oracle; niet vanaf
een CD wordt geïnstalleerd, kan de broncode van
root.sh aangepast worden. Die heet
rthd.sh en staat in de map
orainst in de broncodestructuur.
genclntsh PatchenHet script genclntsh wordt gebruikt om
é´n enkele gedeelde bibliotheek voor de client
aan te maken. Het wordt gebruikt tijdens het maken van de
demonstraties. Met de volgende patch wordt de definitie van
PATH uitgecommentarieerd:*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
--- bin/genclntsh Tue Dec 22 15:36:49 1998
***************
*** 32,38 ****
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst
--- 32,38 ----
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst&oracle; DraaienAls de instructies worden gevolgd, draait
&oracle; als op &linux; zelf.HolgerKippBijgedragen door ValentinoVaschettoOriginele versie omgezet naar SGML door &sap.r3; Installerenapplicaties&sap.r3;Installaties van &sap; Systemen
die &os; gebruiken worden niet ondersteund door het &sap;
ondersteuningsteam. Zij bieden alleen ondersteuning voor
gecertificeerde platformen.VoorwoordDit document beschrijft een mogelijke manier om een
&sap.r3; System met
&oracle; Database voor &linux; op
een &os; machine, inclusief de installatie van &os; en
&oracle;. Er worden twee
configuraties beschreven:&sap.r3; 4.6B (IDES) met
&oracle; 8.0.5 op
&os; 4.3–STABLE;
&sap.r3; 4.6C met
&oracle; 8.1.7 op
&os; 4.5–STABLE.
Hoewel dit document alle belangrijke stappen in meer detail
probeert te beschrijven, is het niet bedoeld als een vervanging
voor de &oracle; en
&sap.r3;
installatiehandleidingen.Voor specifieke vragen wordt verwezen naar de documentatie
die geleverd wordt bij de &sap.r3;
&linux; editie voor &sap; en
&oracle; en de bronnen van
&oracle; en
&sap; OSS.SoftwareVoor de &sap; installaties zijn
de volgende CDROMs gebruikt:&sap.r3; 4.6B, &oracle; 8.0.5NaamNummerBeschrijvingKERNEL51009113SAP Kernel Oracle / Installation / AIX, Linux,
SolarisRDBMS51007558Oracle / RDBMS 8.0.5.X / LinuxEXPORT151010208IDES / DB-Export / Disc 1 of 6EXPORT251010209IDES / DB-Export / Disc 2 of 6EXPORT351010210IDES / DB-Export / Disc 3 of 6EXPORT451010211IDES / DB-Export / Disc 4 of 6EXPORT551010212IDES / DB-Export / Disc 5 of 6EXPORT651010213IDES / DB-Export / Disc 6 of 6Ook zijn de &oracle; 8 Server
(Pre-productie versie 8.0.5 voor &linux; kernelversie 2.0.33)
CD gebruikt, die niet echt noodzakelijk is en &os; 4.3-STABLE
(een paar dagen na de 4.3-RELEASE).&sap.r3; 4.6C SR2, &oracle; 8.1.7NaamNummerBeschrijvingKERNEL51014004SAP Kernel Oracle / SAP Kernel Version 4.6D /
DEC, LinuxRDBMS51012930Oracle 8.1.7/ RDBMS / LinuxEXPORT151013953Release 4.6C SR2 / Export / Disc 1 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 2 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 3 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 4 of 4LANG151013954Release 4.6C SR2 / Language / DE, EN, FR /
Disc 1 van 3Afhankelijk van de talen die geïnstalleerd moeten
worden kunnen aanvullende taal-CDs nodig zijn. Hier
worden DE en EN gebruikt, dus is alleen de eerste taal-CD
nodig. Een kleine kanttekening is dat de nummers van alle
vier de EXPORT CDs identiek zijn. Ook hebben alle drie de
taal-CDs hetzelfde nummer (dit verschilt met de 4.6B IDES
release CD-nummering). Ten tijde van schrijven draait deze
installatie op &os; 4.5-STABLE (20.03.2002).Opmerkingen over &sap;Het wordt aangeraden de volgende notities
vóór de installatie van
&sap.r3; gelezen te hebben. Ze
waren bruikbaar tijdens de installatie:&sap.r3; 4.6B, &oracle; 8.0.5NummerTitel0171356SAP Software on Linux: Essential Comments0201147INST: 4.6C R/3 Inst. on UNIX - Oracle0373203Update / Migration Oracle 8.0.5 -->
8.0.6/8.1.6 LINUX0072984Release of Digital UNIX 4.0B for Oracle0130581R3SETUP step DIPGNTAB terminates0144978Your system has not been installed correctly0162266Questions and tips for R3SETUP on
Windows NT / W2K&sap.r3; 4.6C, &oracle; 8.1.7NummerTitel0015023Initializing table TCPDB (RSXP0004) (EBCDIC)0045619R/3 with several languages or typefaces0171356SAP Software on Linux: Essential Comments0195603RedHat 6.1 Enterprise version: Known problems0212876The new archiving tool SAPCAR0300900Linux: Released DELL Hardware0377187RedHat 6.2: important remarks0387074INST: R/3 4.6C SR2 Installation on UNIX0387077INST: R/3 4.6C SR2 Inst. on UNIX - Oracle0387078SAP Software on UNIX: OS Dependencies 4.6C SR2Benodigde HardwareDe volgende uitrusting is voldoende voor de installatie van
een &sap.r3; Systeem. Voor
productiegebruik geldt natuurlijk dat exactere gegevens nodig
zijn:Component4.6B4.6CProcessor2 x 800MHz &pentium; III2 x 800MHz &pentium; IIIGeheugen1GB ECC2GB ECCHardeschijfruimte50-60GB (IDES)50-60GB (IDES)Voor productiegebruik zijn &xeon; processoren met een grote
cache, schijftoegang op hoge snelheid (SCSI,
RAID-hardwarecontroller) USV en ECC-RAM aanbevolen. De
grote hoeveelheid benodigde schijfruimte is te wijten aan het
vooringestelde IDES-systeem, dat 27 GB aan
databasebestanden aanmaakt tijdens de installatie. Deze ruimte
is ook voldoende voor beginnende productiesystemen en
applicatiegegevens.&sap.r3; 4.6B, &oracle; 8.0.5De volgende kant-en-klare hardware werd gebruikt: een
dual processorbord met 2 800 MHz &pentium;nbsp;III
processoren, &adaptec; 21960 Ultra160 SCSI adapter (om een
40/80 GB DLT tapedrive en CDROM aan te spreken), &mylex;
&acceleraid; (2 kanalen, firmware 6.00-1-00 met 32 MB
RAM). Aan de &mylex; RAID-controller zijn twee 17 GB
harde schijven (gespiegeld) en vier 36 GB harde schijven
(RAID-niveau 5) bevestigd.&sap.r3; 4.6C, &oracle; 8.1.7Voor deze installatie werd een &dell; &poweredge; 2500
gebruikt: een dual processorbord met twee 1000 MHz
&pentium; III processoren (256 kB cache), 2 GB
PC133 ECC SDRAM, PERC/3 DC PCI RAID-controller met
128 MB en een EIDE DVD-ROM-drive. Aan de
RAID-controller zijn twee 18 GB harde schijven
(gespiegeld) en vier 36 GB harde schijven (RAID-niveau
5) bevestigd.Installatie van &os;Eerst moet &os; geïnstalleerd worden. Er zijn
verschillende manieren om dit te doen (&os; 4.3 was
geïnstalleerd via FTP, &os; 4.5 direct vanaf de
RELEASE CD). Er staat meer informatie in .SchijfindelingOm het eenvoudig te houden, werd voor zowel de
&sap.r3; 46B installatie als de
&sap.r3; 46C SR2 installatie
dezelfde schijfindeling gebruikt. Alleen de apparaatnamen
veranderden, omdat de installaties op verschillende hardware
werden gedaan (/dev/da respectievelijk
/dev/amr, dus als een AMI &megaraid;
wordt gebruikt, is /dev/amr0s1a te zien
in plaats van /dev/da0s1a):BestandssysteemGrootte (1k-blokken)Grootte (GB)Gemount aan/dev/da0s1a1.016.3031//dev/da0s1b6swap/dev/da0s1e2.032.6232/var/dev/da0s1f8.205.3398/usr/dev/da1s1e45.734.36145/compat/linux/oracle/dev/da1s1f2.032.6232/compat/linux/sapmnt/dev/da1s1g2.032.6232/compat/linux/usr/sapDe twee logische drives dienen tevoren met de &mylex;- of
PERC/3 RAID-software ingesteld en geïnitialiseerd te
worden. De software kan tijdens de opstartfase van het
BIOS gestart worden.De schijfindelingen wijken licht af van de aanbevelingen
van &sap;, omdat &sap; aanbeveelt om de
&oracle; submappen (en enkele
andere) gescheiden te mounten. Hier is besloten om ze
omwille van de eenvoud gewoon als echte submappen aan te
maken.make world en een Nieuwe
KernelNu dient de nieuwste -STABLE-broncode gedownload te
worden. Nadat het kernelinstellingenbestand is aangepast,
kunnen de wereld en de kernel opnieuw gebouwd worden.
Hier moeten ook de kernelparameters in staan die
nodig zijn voor &sap.r3; en
&oracle;.De &linux;-omgeving InstallerenHet &linux; Basissysteem InstallerenEerst moet de linux_base port
geïnstalleerd worden (als
root):&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distcleanDe &linux; Ontwikkelomgeving InstallerenDe &linux;-ontwikkelomgeving is volgens noodzakelijk om
&oracle; op &os; te
installeren:&prompt.root; cd /usr/ports/devel/linux_devtools
&prompt.root; make install distcleanDe &linux;-ontwikkelomgeving is alleen voor de
&sap.r3; 46B IDES installatie
geïnstalleerd. Het is niet nodig als de
&oracle; DB niet opnieuw wordt
gelinkt op het &os;-systeem. Dit is het geval als de
&oracle; tarball van een
&linux;-systeem wordt gebruikt.De Benodigde RPM's InstallerenRPM'sOm het R3SETUP programma te starten is
PAM-ondersteuning nodig. Tijdens de eerste installatie van
&sap; op &os; 4.3-STABLE is
geprobeerd om PAM met alle benodigde packages te installeren
en uiteindelijk is de installatie van het PAM-package
afgedwongen, wat werkte. Voor &sap.r3; 4.6C
SR 2 is we meteen de installatie van het PAM
RPM afgedwongen, wat ook werkte, dus lijkt het erop dat de
afhankelijke packages niet nodig zijn:&prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \
pam-0.68-7.rpmOm &oracle; 8.0.5 de
intelligente agent te laten draaien, moest ook het
Tcl-package van RedHat
tcl-8.0.5-30.i386.prm geïnstalleerd
worden (anders mislukt het herlinken tijdens de installatie
van &oracle;). Er zijn nog wat
andere gevallen met betrekking tot het herlinken van
&oracle;, maar dat is een
&oracle; &linux;-geval en niet
&os;-specifiek.Aanvullende HintsHet kan ook een goed idee zijn om
linprocfs aan
/etc/fstab toe te voegen. Meer
informatie is te vinden in &man.linprocfs.5;. Een andere
parameter om in te stellen is
kern.fallback_elf_brand=3 in
/etc/sysctl.conf.De &sap.r3;-omgeving MakenDe Benodigde Bestandssystemen en Mountpunten
CreërenVoor een eenvoudige installatie is het voldoende om de
volgende bestandssystemen aan te maken:mountpuntgrootte in GB/compat/linux/oracle45 GB/compat/linux/sapmnt2 GB/compat/linux/usr/sap2 GBHet is ook noodzakelijk om enige mounts te maken,
anders klaagt de &sap; Installer
als die de gemaakte mounts controleert:&prompt.root; ln -s /compat/linux/oracle /oracle
&prompt.root; ln -s /compat/linux/sapmnt /sapmnt
&prompt.root; ln -s /compat/linux/usr/sap /usr/sapMogelijke foutmeldingen tijdens de installatie zijn (hier
met System PRD en de
&sap.r3; 4.6C
SR2-installatie):INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200
Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to
/sapmnt/PRD/exe. Creating if it does not exist...
WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400
Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file
/compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The
program cannot go on as long as this link exists at this
location. Move the link to another location.
ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0
can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content
'/sapmnt/PRD/exe'Gebruikers en Mappen Aanmaken&sap.r3; heeft twee gebruikers
en drie groepen nodig. De gebruikersnamen zijn afhankelijk
van de &sap; system ID (SID) die
uit drie letters bestaat. Enkele van deze SIDs zijn
gereserveerd door &sap;
(bijvoorbeeld SAP en
NIX. In de
&sap;-documentatie staat een
complete lijst). Voor de IDES-installatie is
IDS gebruikt, voor de 4.6C SR2-installatie
PRD, omdat dat systeem bedoeld is voor
productiegebruik. Daarvoor zijn de volgende groepen gebruikt
(groep-IDs kunnen afwijken, dat zijn gewoon de waardes die
voor deze specifieke installatie gebruikt zijn):groep-IDgroepsnaambeschrijving100dbaDataBase-Administrator101sapsys&sap; System102operDataBase-OperatorVoor een standaard &oracle;-
installatie wordt slechts é´n groep,
dba, gebruikt. De groep
oper gebruikt ook de groep
dba (er staat meer informatie in de
&oracle;- en
&sap;-documentatie).Tevens zijn de volgende gebruikers nodig:gebruikers-IDgebruikersnaamgenerieke naamgroepaanvullende groepenbeschrijving1000idsadm/prdadmsidadmsapsysoper&sap;-beheerder1002oraids/oraprdorasiddbaoper&oracle;-beheerderDe volgende regels voor &man.adduser.8; zijn nodig om de
&sap;-beheerder-gebruiker toe te
voegen:Name: sidadm
Password: ******
Fullname: SAP-beheerderSID
Uid: 1000
Gid: 101 (sapsys)
Class:
Groups: sapsys dba
HOME: /home/sidadm
Shell: bash (/compat/linux/bin/bash)en deze voor de
&oracle;-beheerder-gebruiker:Name: orasid
Password: ******
Fullname: Oracle-beheerderSID
Uid: 1002
Gid: 100 (dba)
Class:
Groups: dba
HOME: /oracle/sid
Shell: bash (/compat/linux/bin/bash)De &oracle;-beheerder moet ook
in de groep oper zitten als de groepen
dba en oper
beiden gebruikt worden.Mappen AanmakenDe volgende mappen worden normaalgesproken als aparte
bestandssystemen aangemaakt. Dit is geheel afhankelijk van
de behoefte. Hier is ervoor gekozen om ze als simpele mappen
aan te maken, omdat ze toch allemaal op dezelfde RAID-5
zitten:Eerst worden de eigenaren en rechten van sommige mappen
ingesteld (als root):&prompt.root; chmod 775 /oracle
&prompt.root; chmod 777 /sapmnt
&prompt.root; chown root:dba /oracle
&prompt.root; chown sidadm:sapsys /compat/linux/usr/sap
&prompt.root; chmod 775 /compat/linux/usr/sapAls tweede worden de mappen als gebruiker
orasid aangemaakt. Dat
zijn allemaal submappen van
/oracleSID:&prompt.root; su - orasid
&prompt.root; cd /oracle/SID
&prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB
&prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6
&prompt.root; mkdir saparch sapreorg
&prompt.root; exitVoor de &oracle;
8.1.7-installatie zijn enkele aanvullende
mappen nodig:&prompt.root; su - orasid
&prompt.root; cd /oracle
&prompt.root; mkdir 805_32
&prompt.root; mkdir client stage
&prompt.root; mkdir client/80x_32
&prompt.root; mkdir stage/817_32
&prompt.root; cd /oracle/SID
&prompt.root; mkdir 817_32De map client/80x_32 wordt met
precies deze naam gebruikt. De x mag
niet door een getal of iets dergelijs vervangen
worden.In de derde stap worden de mappen als gebruiker
sidadm
aangemaakt:&prompt.root; su - sidadm
&prompt.root; cd /usr/sap
&prompt.root; mkdir SID
&prompt.root; mkdir trans
&prompt.root; exitRegels in /etc/servicesVoor &sap.r3; zijn enkele
regels in het bestand /etc/services
nodig, die niet correct worden ingesteld tijdens de
installatie op &os;. De volgende regels moeten toegevoegd
worden (op zijn minst die regels die met een instantienummer
overeenkomen, in dit geval 00. Het
kan geen kwaad om alle regels van 00 tot
en met 99 toe te voegen voor
dp, gw,
sp en ms). Als er een
SAProuter gebruikt gaat worden of
toegang tot &sap; OSS nodig is,
dan is 99 ook nodig, aangezien poort 3299
gewoonlijk wordt gebruikt voor het
SAProuter-proces op het
doelsysteem:sapdp00 3200/tcp # SAP-dispatcher. 3200 + instantienummer
sapgw00 3300/tcp # SAP-gateway. 3300 + instantienummer
sapsp00 3400/tcp # 3400 + instantienummer
sapms00 3500/tcp # 3500 + instantienummer
sapmsSID 3600/tcp # SAP-berichtenserver. 3600 + instantienummer
sapgw00s 4800/tcp # veilige SAP-gateway 4800 + instantienummerBenodigde Lokalisatieslocale&sap; heeft tenminste twee
lokalisaties nodig die geen deel uitmaken van de standaard
RedHat-installatie. &sap; biedt de benodigde RPMs als
downloadbare bestanden op hun FTP-server aan (die alleen
toegankelijk is voor klanten met OSS-toegang). In notitie
0171356 staat een lijst van de benodigde RPMs.Het is ook mogelijk om gewoon de juiste links aan te
maken (bijvoorbeeld vanuit de_DE en
en_US), maar dat is niet aan te raden
voor productiesystemen (alhoewel het probleemloos op het
IDES-systeem werkte). De volgende lokalisaties zijn
nodig:de_DE.ISO-8859-1
en_US.ISO-8859-1Nu moeten de volgende links gemaakt worden:&prompt.root; cd /compat/linux/usr/share/locale
&prompt.root; ln -s de_DE de_DE.ISO-8859-1
&prompt.root; ln -s en_US en_US.ISO-8859-1Als ze niet aanwezig zijn, onstaan er problemen tijdens
de installatie. Als ze dan consequent genegeerd worden (door
de STATUS van de probleemstap op
OK te zetten in het bestand
CENTRDB.R3S), is het niet mogelijk om op
het &sap;- systeem aan te melden
zonder wat extra moeite.Kerneloptimalisatiekerneloptimalisatie&sap.r3;-systemen hebben veel
bronnen nodig. Daarom zijn de volgende parameters
toegevoegd aan het kernelinstellingenbestand:#Stel deze in voor geheugengierigheid (SAP en Oracle)
options MAXDSIZ="(1024*1024*1024)"
options DFLDSIZ="(1024*1024*1024)"
#System-V-opties nodig.
options SYSVSHM # SysV-stijl gedeeld geheugen
options SHMMAXPGS=262144 #maximum aantal gedeelde geheugenpagina's
#options SHMMAXPGS=393216 #gebruik dit voor de 46C installatieparameters
options SHMMNI=256 #maximun aantal identifier-interfaces voor gedeeld geheugen
options SHMSEG=100 #maximum aantal gedeeld-geheugensegmenten per proces
options SYSVMSG #SysV-stijl berichtenwachtrijen
options MSGSEG=32767 #maximum aantal berichtsegmenten in systeem
options MSGSSZ=32 #grootte van berichtensegment. MOET macht van 2 zijn
options MSGMNB=65535 #maximum aantal tekens per berichtenwachtrij
options MSGTQL=2046 #maximum aantal berichten in systeem
options SYSVSEM #SysV-stijl semaforen
options SEMMNU=256 #aantal semafoor-UNDO-structuren
options SEMMNS=1024 #aantal semaforen in systeem
options SEMMNI=520 #aantal semafoor-identifiers
options SEMUME=100 #aantal UNDO-sleutelsDe minimumwaarden zijn aangegeven in de documentatie van
&sap;. Omdat er geen beschrijving voor &linux; is, wordt
verwezen naar de HP-UX-sectie (32 bit) voor meer informatie.
Omdat het systeem voor de 4.6C SR2-installatie meer
hoofdgeheugen heeft, kunnen de gedeelde segmenten voor
&sap; en
&oracle; groter zijn.. Daarom kan
voor een groter aantal pagina's voor het gedeelde geheugen
gekozen worden.Op een standaardinstallatie van &os; 4.5 op &i386;
moeten MAXDSIZ en
DFLDSIZ op maximaal 1 GB blijven
staan. Anders kunnen er vreemde fouten als
ORA-27102: out of memory en
Linux Error 12: Cannot allocate
memory optreden.&sap.r3; InstallerenDe &sap;-CDROMs VoorbereidenTijdens de installatie moeten veel CDROMs gemount en
gedismount worden. Als er voldoende CDROM-drives zijn,
kunnen ze allemaal tegelijk gemount worden. Hier is besloten
om de inhoud van de CDROMs naar de overeenkomende mappen
te kopiëren:/oracle/SID/sapreorg/cd-naamHierboven is cd-naam
één van KERNEL,
RDBMS, EXPORT1,
EXPORT2, EXPORT3,
EXPORT4, EXPORT5 en
EXPORT6 voor de
4.6B/IDES-installatie en één van
KERNEL, RDBMS,
DISK1, DISK2,
DISK3, DISK4 en
LANG voor de 4.6C SR2-installatie. Alle
bestandsnamen op de gemounte CD's moeten in hoofdletters
staan of anders kan er gebruik gemaakt worden van de optie
bij het mounten:&prompt.root; mount_cd9660 -g /dev/cd0a /mnt
&prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/cd-naam
&prompt.root; umount /mntHet Installatiescript UitvoerenEerst moet er een map install worden
aangemaakt:&prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SHDe IDES-installatie (4.6B) komt met een volledig
aangepast &sap.r3; -demonstratiesysteem, dus zijn er zes in
plaats van slechts drie EXPORT-CD's. Op dit moment dient het
installatiesjabloon CENTRDB.R3S voor het
installeren van een standaard centrale instantie
(&r3; met database), niet de
IDES centrale instantie, dus moet de overeenkomende
CENTRDB.R3S vanuit de map EXPORT1 gekopieerd worden,
anders vraagt R5SETUP slechts om drie
EXPORT-CD's.De nieuwere uitgave &sap; 4.6
SR2 komt met vier EXPORT-CD's. Het
parameterbestand dat de installatiestappen beheert is
CENTRAL.R3S. In tegenstelling tot
eerdere uitgaven zijn er geen aparte installatiesjablonen
voor een centrale instantie met of zonder database.
&sap; gebruikt een apart sjabloon
voor de installatie van de database. Om de installatie op
een later tijdstip te opnieuw te starten is het echter
oldoende om met het originele bestand opnieuw te
starten.Tijdens en na de installatie eist
&sap; dat
hostname alleen de naam van de computer en
niet de volledig gekwalificeerde domeinnaam teruggeeft. Dus
dient òf de computernaam op deze manier ingesteld te
worden, òf een alias ingesteld te worden met
alias hostname='hostname -s' voor zowel
orasid als
sidadm (en
voor root tijdens minimaal de
installatiestappen die als root worden
uitgevoerd). Het is ook mogelijk om de geïnstalleerde
bestanden .profile en .login
van beide gebruikers die tijdens de installatie
worden geïnstalleerd aan te passen.Start R3SETUP 4.6BBen er zeker van dat LD_LIBRARY_PATH juist
is ingesteld:&prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/libStart R3SETUP als
root vanuit de installatiemap:&prompt.root; cd /oracle/IDS/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRDB.R3SHet script stelt vervolgens wat vragen
(standaardantwoorden in haken, gevolgd door de eigenlijke
invoer):VraagStandaardInvoerEnter SAP System ID[C11]IDSEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[troubadix.domain.de]EnterEnter name of SAP db host[troubadix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (1) Oracle 8.0.5,
(2) Oracle 8.0.6, (3) Oracle 8.1.5,
(4) Oracle 8.1.61EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/IDS/sapreorg/KERNELEnter path to RDBMS CD[/sapcd]/oracle/IDS/sapreorg/RDBMSEnter path to EXPORT1 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT1Directory to copy EXPORT1 CD[/oracle/IDS/sapreorg/CD4_DIR]EnterEnter path to EXPORT2 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT2Directory to copy EXPORT2 CD[/oracle/IDS/sapreorg/CD5_DIR]EnterEnter path to EXPORT3 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT3Directory to copy EXPORT3 CD[/oracle/IDS/sapreorg/CD6_DIR]EnterEnter path to EXPORT4 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT4Directory to copy EXPORT4 CD[/oracle/IDS/sapreorg/CD7_DIR]EnterEnter path to EXPORT5 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT5Directory to copy EXPORT5 CD[/oracle/IDS/sapreorg/CD8_DIR]EnterEnter path to EXPORT6 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT6Directory to copy EXPORT6 CD[/oracle/IDS/sapreorg/CD9_DIR]EnterEnter amount of RAM for SAP + DB850Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[101]EnterEnter Group-ID of oper[102]EnterEnter Group-ID of dba[100]EnterEnter User-ID of
sidadm[1000]EnterEnter User-ID of
orasid[1002]EnterNumber of parallel procs[2]EnterAls de CD's niet naar de verschillende plaatsen
gekopieerd waren, kan het
&sap;-installatieprogramma de
benodigde CD niet vinden (geïdentificeerd door het
bestand LABEL.ASC op de CD) en vraagt
het om de CD te mounten en het mountpad te bevestigen of in
te voeren.Het bestand CENTRDB.R3S kan fouten
bevatten. In dit geval vroeg het nogmaals om de EXPORT4 CD
maar gaf het wel de juiste sleutel (6_LOCATION, daarna
7_LOCATION enzovoorts) aan, dus kon gewoon doorgegaan worden
met het invoeren van de juiste waarden.Afgezien van enkele problemen die hieronder genoemd
worden, hoort alles vanzelf te gaan tot het punt waar de
software voor de &oracle;-database geïnstalleerd moet
worden.R3SETUP 4.6C SR2 StartenLD_LIBRARY_PATH moet juist ingesteld
zijn. Dit is een andere waarde dan die van de 4.6B
installatie met &oracle;
8.0.5:&prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/libStart R3SETUP als gebruiker
root vanuit de installatiemap:&prompt.root; cd /oracle/PRD/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRAL.R3SHet script stelt vervolgens enkele vragen
(standaardantwoorden tussen haken, gevolgd door de eigenlijke
invoer):VraagStandaardInvoerEnter SAP System ID[C11]PRDEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[majestix]EnterEnter Database System ID[PRD]PRDEnterEnter name of SAP db host[majestix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (2) Oracle 8.1.72EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/PRD/sapreorg/KERNELEnter amount of RAM for SAP + DB20441800Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[100]EnterEnter Group-ID of oper[101]EnterEnter Group-ID of dba[102]EnterEnter User-ID of oraprd[1002]EnterEnter User-ID of prdadm[1000]EnterLDAP support3Enter (no support)Installation step completed[1] (continue)EnterChoose installation service[1] (DB inst,file)EnterTot dusver geeft het aanmaken van gebruikers een fout
in de fases OSUSERDBSID_IND_ORA (voor het aanmaken van de
gebruiker
orasid) en
OSUSERIDADM_IND_ORA (voor het aanmaken van de gebruiker
sidadm).&oracle; 8.0.5 InstallerenMogelijke problemen staan beschreven in de &sap; Notes en
&oracle; Readme bestanden met betrekking
tot &linux; en &oracle; DB. De
meeste, zoniet alle, problemen komen door incompatibele
bibliotheken.Meer informatie over het installeren van
&oracle; staat in &oracle; Installeren.&oracle; 8.0.5 Installeren met
orainstAls &oracle; 8.0.5 gebruikt
moet worden, zijn enkele bibliotheken nodig voor het met
succes herlinken, omdat &oracle;
8.0.5 met een oude versie van glibc gelinkt
was (RedHat 6.0) en RedHat 6.1 reeds een nieuwere glibc
gebruikt. De volgende aanvullende packages moeten
geïnstalleerd worden om er zeker van te zijn dat het
linken lukt:compat-libs-5.2-2.i386.rpmcompat-glibc-5.2-2.0.7.2.i386.rpmcompat-egcs-5.2-1.0.3a.1.i386.rpmcompat-egcs-c++-5.2.1.0.3a.1.i386.rpmcompat-binutils-5.2-2.9.1.0.23.1.i386.rpmIn de &sap; Notes of &oracle; Readme
staat meer informatie. Als er geen keuze is (op het moment
van installeren was er niet genoeg tijd om dit te
controleren) kunnen de originele binaries gebruikt worden of
kunnen de herlinkte binaries van een origineel RedHat
systeem gebruikt worden.Om de intelligente agent te compileren moet het RedHat
Tcl package geïnstalleerd zijn. Als
tcl-8.0.3-20.i386.rpm niet te krijgen
is, doet een nieuwere versie zoals
tcl-8.0.5-30.i386.rpm voor RedHat 6.1
het ook.Afgezien van het herlinken is de installatie
rechttoe rechtaan:&prompt.root; su - oraids
&prompt.root; export TERM=xterm
&prompt.root; export ORACLE_TERM=xterm
&prompt.root; export ORACLE_HOME=/oracle/IDS
&prompt.root; cd $ORACLE_HOME/orainst_sap
&prompt.root; ./orainstAlle schermen dienen met Enter
bevestigd te worden totdat de software geïnstalleerd is,
behalve dat de &oracle; On-Line Text
Viewer gedeselecteerd moet worden omdat deze
momenteel niet voor &linux; beschikbaar is. Vervolgens wil
&oracle; met
i386-glibc20-linux-gcc herlinken, in
plaats van met de beschikbare gcc,
egcs of
i386-redhat-linux-gcc.Wegens tijdbeperkingen is besloten om de binaries van een
&oracle; 8.0.5 PreProduction-uitgave
te gebruiken, nadat de eerste poging om de versie van de
RDBMS-CD werkend te krijgen mislukte en het vinden en gebruiken
van de juiste RPMs was op dat moment een nachtmerrie
was.&oracle; 8.0.5 Pre-productie Versie voor
&linux; (Kernel 2.0.33) InstallerenDe installatie hiervan is vrij eenvoudig: mount de CD en
start het installatieprogramma. Het vraagt dan om de plaats
van de &oracle; thuismap en zet daar alle binaries neer.
Op dat moment waren echter niet de restanten van vorige
pogingen om RDBMS te installeren verwijderd.Daarna kon &oracle; Database
zonder problemen gestart worden.De &oracle; 8.1.7 &linux; Tarball InstallerenDe tarball oracle81732.tgz die gemaakt
is uit de installatiemap een &linux;-systeem kan uitgepakt
worden in
/oracle/SID/817_32/.Ga door met de &sap.r3; InstallatieAls eerste dienen de omgevingsinstellingen van de
gebruikers idsamd
(sidadm) en
oraids (orasid)
gecontroleerd te worden. Ze moeten nu beiden beschikken over
de bestanden .profile,
.login en .cshrc die
allemaal hostname gebruiken. In het geval
dat de hostnaam van het systeem de volledig gekwalificeerde
naam is, moet hostname in
hostname –s veranderd worden in
alle drie de bestanden.De Database LadenHierna kan R3SETUP òfwel
opnieuw gestart of voortgezet worden (afhankelijk van de
keuze voor exit of niet). R3SETUP maakt
vervolgens de tabelruimten aan en laadt de gegevens (voor 46B
IDES van EXPORT1 tot en met EXPORT6, voor 46C van DISK1 tot
en met DISK4) met R3load in de
database.Wanneer het laden van de database is voltooid (dit kan
enkele uren duren) wordt om enkele wachtwoorden gevraagd.
Voor testinstallaties kunnen de welbekende
standaardwachtwoorden worden gebruikt. Als veiligheid een
punt is moeten er andere wachtwoorden gebruikt worden!VraagInvoerEnter Password for sapr3sapEnterConfirum Password for sapr3sapEnterEnter Password for sysverander_tijdens_installerenEnterConfirm Password for sysverander_tijdens_installatieEnterEnter Password for systembeheerderEnterConfirm Password for systembeheerderEnterHier waren er wat problemen met
dipgntab tijdens de installatie van
4.6B.ListenerHieronder staat hoe de
&oracle; Listener als gebruiker
orasid
op kan starten:&prompt.user; umask 0; lsnrctl startAnders kan de fout ORA-12546
optreden, omdat de sockets dan niet de juiste rechten
hebben. Zie &sap; Note 072984.Bijwerken van MNLS TabellenAls het de bedoeling is niet-Latin-1-talen in te voeren
in het &sap;-systeem, dan moeten
de Multi National Language Support-tabellen bijgewerkt
worden. Dit staat beschreven in de &sap; OSS Notes 15023 en
45619. In alle andere gevallen kan deze vraag overgeslagen
worden tijdens de &sap;
installatie.Als er geen MNLS nodig is, is het nog steeds
noodzakelijk om de TCPDB-tabel te controleren en deze te
initialiseren als dit nog niet is gedaan. Zie
&sap;-notities 0015023 en 0045619 voor meer
informatie.Stappen na de InstallatieDe &sap.r3; Licentiesleutel OpvragenEr moet een &sap.r3;
licentiesleutel opgevraagd worden. Dit is nodig omdat de
tijdelijke licentie die tijdens de installatie
geïnstalleerd is, maar voor vier weken geldig is. Eerst
moet de hardwaresleutel bekend zijn. Deze wordt bekend door
als gebruiker idsadm aan te melden en
saplicense uit te voeren:&prompt.root; /sapmnt/IDS/exe/saplicense -getHet uitvoeren van saplicense zonder
parameters geeft een lijst met opties. Nadat de
licentiesleutel verkregen is, kan deze geïnstalleerd
worden door middel van:&prompt.root; /sapmnt/IDS/exe/saplicense -installHierbij moeten de volgende waarden ingevoerd
worden:SAP SYSTEM ID = SID, 3 tekens
CUSTOMER KEY = hardwaresleutel, 11 tekens
INSTALLATION NO = installatie, 10 cijfers
EXPIRATION DATE = jjjjmmdd, meestal "99991231"
LICENSE KEY = licentiesleutel, 24 tekensGebruikers AanmakenNu kan een gebruiker binnen client 000 aangemaakt worden
(voor sommige taken is het nodig deze binnen client 000 aan
te maken, als maar een andere gebruiker dan gebruikers
sap* en ddic wordt
gebruikt). Zoals gewoonlijk wordt als nieuwe gebruikersnaam
wartung (of dienst
in het Nederlands) gekozen. Voor extra veiligheid moeten de
wachtwoorden van alle standaardgebruikers binnenin alle
clients worden veranderd (dit geldt ook voor gebruikers
sap* en
ddic).Transportsysteem, Profiel, Werkmodi en Dergelijke
InstellenVanuit client 000 dient, als een andere gebruiker
dan ddic of sap*,
tenminste het volgende ingesteld worden:TaakTransactieStel het transportsysteem in, bijvoorbeeld
als Stand-Alone Transport Domain
EntitySTMSMaak een profiel voor het systeem aan of wijzig
ditRZ10Beheer werkmodi en instantiesRZ04Deze en alle andere stappen die na de installatie
uitgevoerd moeten worden, staan uitvoerig beschreven in de
&sap; installatiehandleidingen.
initsid.sap
(initIDS.sap) BewerkenHet bestand
/oracle/IDS/dbs/initIDS.asp bevat het
&sap; back-upprofiel. Hier moeten
de grootte van de te gebruiken tape, het compressietype,
enzovoorts gedefinieerd worden. Om dit aan de gang te
krijgen met sapdba /
brbackup zijn de volgende waarden
veranderd:compress = hardware
archive_function = copy_delete_save
cpio_flags = "-ov --format=newc --block-size=128 --quiet"
cpio_in_flags = "-iuv --block-size=128 --quiet"
tape_size = 38000M
tape_address = /dev/nsa0
tape_address_rew = /dev/sa0Uitleg:compress: de tape die gebruikt wordt
is een HP DLT1 die hardware-compressie ondersteunt.archive_function: dit definieert het
standaardgedrag om &oracle;-archieflogs op te slaan: nieuwe
logboekbestanden worden op tape opgeslagen, reeds opgeslagen
logboekbestanden worden nogmaals opgeslagen en worden daarna
verwijderd. Dit bespaart een hoop problemen als de
database hersteld moet worden en één van de
archieftapes versleten is.cpio_flags: de standaard is om
te gebruiken die de blokgrootte op
5120 bytes instelt. Voor DLT tapes raadt HP een
blokgrootte van minimaal 32 kB aan, dus is
gebruikt voor blokken van
64 kB. is nodig omdat er
inodegetallen groter dan 65535 zijn. De laatste optie
is nodig omdat
brbackup anders klaagt zodra
cpio het aantal opgeslagen blokken
meldt.cpio_in_flags: vlaggen die nodig zijn
om de gegevens van de tape terug te laden. Het formaat wordt
automatisch herkend.tape_size: dit geeft gewoonlijk de
ruwe opslagcapaciteit van de tape. Omwille van de veiligheid
(er wordt hardware-compressie gebruikt) is de waarde iets
lager dan de eigenlijke waarde.tape_address: de naam van het
niet-opwindbare apparaat dat met cpio
gebruikt wordt.tape_address_rew: de naam van het
opwindbare apparaat dat met cpio gebruikt
wordt.Instellingen na de InstallatieDe volgende parameters van
&sap; moeten na de installatie
geoptimaliseerd worden (voorbeelden voor IDES 46B, 1 GB
geheugen):NaamWaardeztta/roll_extension250000000abap/heap_area_dia300000000abap/heap_area_nondia400000000em/initial_size_MB256em/blocksize_kB1024ipc/shm_psize_4070000000&sap; notitie 0013026:NaamWaardeztta/dynpro_area2500000&sap; notitie 0157246:NaamWaarderdisp/ROLL_MAXFS16000rdisp/PG_MAXFS30000Met bovenstaande parameters kan op een op een systeem
met 1 GB aan geheugen het geheugengebruik soortgelijk
zijn aan het volgende:Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K FreeProblemen Tijdens de InstallatieR3SETUP Herstarten na het Oplossen
van een ProbleemR3SETUP stopt als het een probleem
tegenkomt. Nadat de bijhorende logbestanden zijn bekeken
en de fout is hersteld, moet R3SETUP
opnieuw gestart worden en gewoonlijk dient REPEAT
geselecteerd te worden bij de laatste stap waar
R3SETUP over klaagde.R3SETUP kan gewoon met het bijhorende
bestand R3S worden opgestart:&prompt.root; ./R3SETUP -f CENTRDB.R3Svoor 4.6B, of met&prompt.root; ./R3SETUP -f CENTRAL.R3Svoor 4.6C, onafhankelijk van het feit of de fout optrad
met CENTRAL.R3S of met
DATABASE.R3S.Tijdens sommige fasen verwacht
R3SETUP dat zowel de database als
&sap; draaien (omdat die stappen
al voltooid waren). Mochten er fouten optreden en kan
bijvoorbeeld de database niet gestart worden, dan moeten
de database en &sap; handmatig
worden gestart nádat de fouten zijn hersteld en
voordat R3SETUP opnieuw wordt
gestart.Ook de &oracle; listener
moet opnieuw gestarten worden (als
orasid met
umask 0; lsnrctl start) als die ook was
gestopt (bijvoorbeeld omdat het systeem opnieuw opgestart
moest worden).OSUSERSIDADM_IND_ORA Tijdens
R3SETUPAls R3SETUP tijdens deze fase klaagt,
moet het sjabloonbestand dat R3SETUP
destijds gebruikte (CENTRDB.R3S (4.6B)
of één van CENTRAL.R3S of
DATABASE.R3S (4.6C)) worden gewijzigd.
Zoek [OSUSERSIDADM_IND_ORA] of zoek de
enige regel met STATUS=ERROR en wijzig de
volgende waarden:HOME/home/sidadm (was leeg)
STATUS=OK (had status ERROR)Daarna kan R3SETUP opnieuw gestart
worden.OSUSERDBSID_IND_ORA Tijdens
R3SETUPR3SETUP klaagt mogelijk ook tijdens
deze fase. De fout is vergelijkbaar met die in de fase
OSUSERSIDADM_IND_ORA. Hier kan gewoon het sjabloonbestand
dat R3SETUP destijds gebruikte
(CENTRDB.R3S (4.6B) of
één van CENTRAL.R3S of
DATABASE.R3S (4.6C)) gewijzigd worden.
In [OSUSERDBSID_IND_ORA] of de enige regel
STATUS=ERROR en kan de volgende waarde
in die sectie gewijzigd worden:STATUS=OKNu kan R3SETUP opnieuw gestart
worden.oraview.vrf FILE NOT FOUND
Tijdens de Installatie van &oracle;De &oracle; On-Line Text Viewer is
niet gedeselecteerd voordat de installatie begon. Dit
onderdeel is gemarkeerd om geïnstalleerd te worden,
zelfs al is dit onderdeel momenteel niet beschikbaar op
&linux;. Dit onderdeel dient gedeselecteerd te worden in het
&oracle; installatiemenu en de
installatie dient opnieuw gestart te worden.TEXTENV_INVALID Tijdens
R3SETUP, RFC of SAPgui StartDeze foutmelding geeft aan dat de juiste locale niet
geïnstalleerd is. &sap; notitie 0171356 geeft de
benodigde RPMs die geïnstalleerd moeten worden
(bijvoorbeeld spalocales-1.0-3 en
saposcheck-1.0-1 voor RedHat 6.1).
Indien alle gerelateerde foutmeldingen genegeerd zijn en
de bijhorende STATUS van
ERROR in OK veranderd
zijn (in CENTRDB.R3S) telkens als
R3SETUP klaagde en
R3SETUP gewoon opnieuw gestart is, dan is
het &sap;-systeem onjuist
geconfigureerd en is het onmogelijk om met
SAPgui een verbinding met het
systeem te maken, zelfs al kan het systeem gestart worden.
Een poging om met de oude &linux;
SAPgui een verbinding te maken gaf
de volgende meldingen:Sat May 5 14:23:14 2001
*** ERROR => no valid userarea given [trgmsgo. 0401]
Sat May 5 14:23:22 2001
*** ERROR => ERROR NR 24 occured [trgmsgi. 0410]
*** ERROR => Error when generating text environment. [trgmsgi. 0435]
*** ERROR => function failed [trgmsgi. 0447]
*** ERROR => no socket operation allowed [trxio.c 3363]
SpeicherzugriffsfehlerDit komt doordat &sap.r3; geen
juiste locale kan toekennen en ook doordat het zelf onjuist
is ingesteld (ontbrekende regels in sommige
databasetabellen). Om een verbinding met
&sap.r3; te kunnen maken, moeten
de volgende regels aan het DEFAULT.PFL
worden toegevoegd (zie notitie 0043288):abap/set_etct_env_at_new_mode = 0
install/collate/active = 0
rscp/TCP0B = TCP0BNu kan het &sap;-systeem
opnieuw gestart worden en kan een verbinding met het systeem
gemaakt worden, hoewel landspecifieke taalinstellingen anders
kunnen werken dan verwacht. Nadat de landinstellingen zijn
gecorrigeerd (en de juiste locales zijn gegeven), kunnen
bovenstaande regels uit DEFAULT.PFL
verwijderd worden en kan het
&sap;-systeem opnieuw gestart
worden.ORA-00001Deze fout trad alleen op met &oracle;
8.1.7 op &os; 4.5. De reden was dat de
&oracle;-database zichzelf niet
goed kon initialiseren en crashte, waarbij het semaforen en
gedeeld geheugen op het systeem achterliet. De volgende
poging om de database te starten geeft dan
ORA-00001.Met ipcs -a moeten de semaforen
opgezocht worden en verwijderd worden met
ipcrm.ORA-00445 (achtergrondproces PMON
Is Niet Gestart)Deze fout trad op met &oracle;
8.1.7. Deze fout wordt gemeld als de database
met het gebruikelijke script startsap
wordt gestart (bijvoorbeeld
startsap_majestix_00) als gebruiker
prdadm.Een mogelijke manier om dit te omzeilen is om de database
in plaats daarvan als gebruiker oraprd
te starten met svrmgrl:&prompt.user; svrmgrl
SVRMGR> connect internal;
SVRMGR> startup;
SVRMGR> exitORA-12546 (Start Listener met
de Juiste Rechten)De &oracle; listener moet als
gebruiker oraids worden gestart:&prompt.root; umask 0; lsnrctl startAnders kan ORA-12456 optreden
omdat de sockets dan niet de juiste rechten hebben. Zie
&sap; notitie 0072984.ORA-27102 (Geen Geheugen
Beschikbaar)Deze fout trad op toen geprobeerd werd en om waarden
groter dan 1 GB (1024x1024x1024) te gebruiken voor
MAXDSIZ en DFLDSIZ.
Ook kwam er de foutmelding Linux Error 12: Cannot
allocate memory.
[DIPGNTAB_IND_IND] Tijdens
R3SETUPDit wordt behandeld in &sap; notitie 0130581
(R3SETUP termineert). Om een of andere
reden gebruikte het installatieproces tijdens de
IDES-specifieke installatie niet de juiste
&sap; systeemnaam
IDS, maar in plaats daarvan de lege string
"". Dit leidt tot wat kleine problemen
met de toegang tot mappen omdat de paden dynamisch
gegenereerd worden door middel van
SID (in dit geval IDS). Dus
werden niet de paden:/usr/sap/IDS/SYS/...
/usr/sap/IDS/DVMGS00maar de volgende paden gebruikt:/usr/sap//SYS/...
/usr/sap/D00Om de installatie voort te zetten, zijn een link en een
aanvullende map aangemaakt:&prompt.root; pwd
/compat/linux/usr/sap
&prompt.root; ls -l
total 4
drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00
drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS
lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS
drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp
drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 transDit gedrag staat ook beschreven in &sap; notities 0029227
en 0008401. Deze problemen traden niet op tijdens de
installatie van &sap; 4.6C.[RFCRSWBOINI_IND_IND] Tijdens
R3SETUPTijdens de installatie van &sap;
4.6C trad deze fout gewoon op als het gevolg
van een andere fout eerder in de installatie. In dit geval
moeten de bijhorende logboekbestanden doorzocht worden om het
echte probleem te kunnen herstellen.Als na het doorzoeken van de logboekbestanden blijkt dat
deze fout inderdaad de juiste is (zie de &sap; notities),
dan kan de STATUS van de stap die het
probleem geeft van ERROR in
OK veranderd worden (in
CENTRDB.R3S) en kan
R3SETUP opnieuw gestart worden. Na de
installatie moet rapport RSWBOINS van
transactie SE38 uitgevoerd worden. In &sap; notitie 0162266
staat aanvullende informatie over de fasen
RFCRSWBOINI en
RFCRADDBDIF.[RFCRADDBDIF_IND_IND] Tijdens
R3SETUPHier gelden dezelfde beperkingen: er dient door het
doorzoeken van de logboekbestanden gecontroleerd te worden
dat deze fout niet veroorzaakt wordt door eerdere
problemen.Als bevestigd kan worden dat &sap; notitie 0162266 van
toepassing is, kan gewoon STATUS van de
stap die het probleem geeft van ERROR in
OK veranderd worden (in
CENTRDB.R3S) en
R3SETUP opnieuw gestart worden. Na de
installatie moet het rapport RADDBDIF van
transactie SE38 uitgevoerd worden.sigaction sig31: File size limit
exceededDeze fout trad op tijdens het starten van de
&sap;-processen
disp+work. Als
&sap; met het script
startsap gestart wordt, worden er
subprocessen gestart die ontkoppelen en het vuile werk om
alle andere &sap;-processen te
starten opknappen. Een gevolg hiervan is dat het script zelf
een verkeerde situatie niet opmerkt.Om te controleren of de &sap;
processen juist zijn gestart, kan de processtatus bekeken
worden met ps ax | grep
SID, wat een lijst
geeft met alle processen van
&oracle; en
&sap;. Als het ernaar uitziet dat
sommige processen ontbreken of als er geen verbinding met het
&sap;-systeem gemaakt kan worden,
is het verstandig de bijhorende logboekbestanden uit
/usr/sap/SID/DVEBMGSnr/work/
te bekijken. De te controleren bestanden zijn
dev_ms en
dev_disp.Signaal 31 treedt hier op als de hoeveelheid gedeeld
geheugen die door &oracle; en
&sap; wordt gebruikt, groter is
dan wat in het kernelinstellingenbestand is ingesteld en dit
kan worden verholpen door een hogere waarde te
gebruiken:# grotere waarden voor 46C productiesystemen:
options SHMMAXPGS=393216
# kleinere waarde voldoende voor 46B:
#options SHMMAXPGS=262144saposcol Starten MisluktEr zijn wat problemen met het programma
saposcol (versie 4.6D). Het
&sap;-systeem gebruikt
saposcol om informatie over de
systeemprestaties in te winnen. Dit programma is niet
noodzakelijk om het &sap;-systeem
te gebruiken, dus kan dit probleem als onbelangrijk worden
beschouwd. De oudere versie (4.6B) werkt wel, maar verzamelt
niet alle gegevens (veel aanroepen geven gewoon 0 terug,
bijvoorbeeld het processorgebruik).Gevorderde OnderwerpenHier wordt beschreven hoe de &linux; binaire compatibiliteit
werkt. Het meeste van wat nu volgt is sterk gebaseerd op een
e-mailbericht van Terry Lambert
tlambert@primenet.com aan &a.chat; (Message ID:
<199906020108.SAA07001@usr09.primenet.com>).Hoe Werkt Het?uitvoerklasselader&os; heeft een abstractie met de naam execution
class loader. Dit is een wig in de systeemaanroep
&man.execve.2;.Wat er gebeurt is dat &os; een lijst van loaders heeft, in
plaats van een enkele loader die terugvalt op de
#! loader voor het draaien van elke
shellinterpreter of shellscript.
- Vroeger onderzocht de enige loader op het &unix;-platform
+ Vroeger onderzocht de enige loader op het &unix; platform
het magische getal (in het algemeen de eerste 4 of 8 bytes van
het bestand) om te zien of het een binary was die het systeem
kende en als dat het geval was laadde het de binaire
loader.Als het niet het binaire type voor het systeem was, faalde
de aanroep naar &man.execve.2; en probeerde de shell het als
shellopdrachten uit te voeren.Deze aanname was een standaard voor wat de huidige
shell ook is.Later werd er een hack gemaakt voor &man.sh.1; om de eerste
twee tekens te onderzoeken en als die bestonden uit
:\n voerde het in plaats hiervan de
&man.csh.1; shell uit (het idee is dat SCO de hack als eerste
maakte).Wat &os; nu doet is door een lijst van loaders gaan
met een generieke #! loader die kennis heeft
van interpreters in de zin van de karakters die volgen op de
volgende witruimte tot de laatste, met uiteindelijk een
terugval op /bin/sh.ELFVoor &linux; ABI-ondersteuning ziet &os; het magische getal
als een ELF-binary (het maakt op dit punt geen onderscheid
tussen &os;, &solaris;, &linux; of elk ander besturingssysteem
dat een ELF-beeldtype heeft).&solaris;De ELF loader zoekt naar een gespecialiseerd
merk, dat een commentaargedeelte in het
ELF-beeld is en dat niet aanwezig is in SVR4/&solaris;
ELF-binairen.Om &linux;-binaries werkend te krijgen, moeten ze
gemerkt worden als het type
Linux met &man.brandelf.1;:&prompt.root; brandelf -t Linux bestandAls dit gedaan is, ziet de ELF loader het
Linux-merk in het bestand.ELFmerkenAls de ELF loader het Linux-merk
tegenkomt, verplaatst de loader een pointer in de
proc-structuur. Alle systeemaanroepen
worden met deze pointer geïndexeerd (in een traditioneel
- &unix;-systeem is dit de
+ &unix; systeem is dit de
sysent[]-structuurarray, die de
systeemaanroepen bevat). Ook wordt het proces gemerkt voor
speciale behandeling door de valstrikvector van de
signaal-trampolinecode samen met nog meer (kleine) aanpassingen
die door de &linux; kernelmodule worden afgehandeld.De &linux; kernelmodule bevat naast andere dingen een lijst
van sysent[]-ingangen waarvan de adressen
in de kernelmodule staan.Als een systeemaanroep door de &linux;-binary wordt
aangeroepen, verwijdert de valstrikcode de referentie aan de
functiepointer van de systeemaanroep en geeft die de
ingangspunten van de systeemaanroep van &linux; en niet van
&os;.Verder reroot de &linux;-modus
dynamisch lookups. Dit is wat de optie
(niet het unionfs
bestandssysteemtype!) voor het mounten van bestandssystemen
effectief doet. Eerst wordt een poging gedaan om het bestand
in de map
/compat/linux/origineel-pad
op te zoeken en vervolgens alleen als dat
mislukt, wordt het bestand in
/origineel-pad
opgezocht. Dit zorgt ervoor dat binaries die andere binaries
nodig hebben kunnen draaien (zo kan bijvoorbeeld de
&linux;-gereedschapskist geheel onder &linux; ABI-ondersteuning
draaien). Dit betekent ook dat &linux;-binaries &os;-binaries
kunnen laden en draaien als er geen overeenkomende
&linux;-binaries zijn en dat er een &man.uname.1;-opdracht in
de mappenstructuur /compat/linux gezet kan
worden om er zeker van te zijn dat &linux;-binaries niet kunnen
weten dat ze niet op &linux; draaien.Effectief bevindt er zich een &linux;-kernel in de
&os;-kernel. De verschillende onderliggende functies die alle
functies implementeren die de kernel aanbiedt, zijn dezelfde
tabelingangen voor de systeemaanroepen van &os; als van
&linux;: bestandssysteembewerkingen, bewerkingen op het
virtuële geheugen, signaalaflevering, System V IPC,
enzovoort. Het enige verschil is dat &os;-binaries de
lijm functies voor &os; krijgen en dat de
&linux;-binaries de lijm-functies voor
&linux; krijgen (de meeste oudere besturingssystemen hadden
alleen hun eigen lijm-functies: adressen
van functies die in een statische globale
sysent[] structuurarray werden opgeslagen,
in plaats van adressen van functies waarvan dynamisch een
geïnitialiseerde pointer wordt verwijderd in de
proc-structuur van het proces dat de aanroep
doet).Welke is de eigenlijke &os; ABI? Dat maakt niet uit.
Eigenlijk is het enige verschil dat (op dit moment; dit kan
eenvoudig veranderen in een toekomstige uitgave, en dat gebeurt
waarschijnlijk na deze uitgave) de
lijm-functies van &os; statisch gelinkt
zijn in de kernel en dat de lijm-functies
van &linux; zowel statisch gelinkt kunnen worden als dat ze
door een kernelmodule worden benaderd.Maar is dit nu echt emulatie? Nee. Het is een
ABI-implementatie, geen emulatie. Er is geen emulator (of
simulator, om de volgende vraag voor te zijn) bij
betrokken.Dus waarom wordt het dan soms
&linux;-emulatie genoemd? Om het moeilijk te
maken om &os; te verkopen! Serieus, het is zo omdat de
historische implementatie in een tijd werd gedaan toen er echt
geen ander woord was om te beschrijven wat er aan de hand was,
om te zeggen dat &os; &linux;-binaries draaide was niet waar
als de code niet in de kernel gecompileerd werd of als een
module geladen werd en er moest een woord zijn voor hetgeen
geladen werd. Vandaar de
&linux;-emulator.
diff --git a/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml
index 4c12a2d5a8..e7d4cfd641 100644
--- a/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml
@@ -1,2046 +1,2047 @@
RossLippertAangepast door SiebrandMazelandVertaald door MultimediaOverzicht&os; ondersteunt een breed bereik aan geluidskaarten,
waardoor het mogelijk is van geluid van hoge kwaliteit op een
computer te genieten. Hieronder vallen mogelijkheden om geluid
op te nemen en af te spelen in de MPEG Audio Layer 3 (MP3), WAV
en Ogg Vorbis formaten en vele andere formaten. De &os;
portscollectie bevat ook programma's waarmee opgenomen audio
bewerkt kan worden, waarmee geluidseffecten toegevoegd kunnen
worden en aangesloten MIDI apparaten bestuurd kunnen
worden.Met wat wil om te experimenteren kunnen met &os;
videobestanden en DVD's afgespeeld worden. Er zijn minder
programma's om video te encoderen, te converteren en af te spelen
dan er zijn voor audio. Op het moment van schrijven is er
bijvoorbeeld geen programma in de &os; portscollectie beschikbaar
waarmee video goed gehercodeerd kan worden. Deze functie zou
gebruikt kunnen worden om tussen formaten te converteren, zoals
mogelijk is met audio/sox.
De software in dit landschap is echter sterk aan verandering
onderhevig.In dit hoofdstuk worden de stappen beschreven die uitgevoerd
moeten worden om een geluidskaart in te stellen. Bij de
installatie en instelling van X11 () is al
beschreven hoe videokaarten ingesteld kunnen worden, hoewel er
nog wel een aantal mogelijkheden zijn om het afspelen te
verbeteren.Na het lezen van dit hoofdstuk weet de lezer:Hoe een systeem zo in te stellen dat een geluidskaart
wordt herkend;Hoe getest kan worden of een kaart werkt door gebruik te
maken van voorbeeldapplicaties;Hoe problemen op te lossen met betrekking tot
geluidsinstellingen;Hoe MP3's en andere audio af te spelen en te
maken;Hoe video wordt ondersteund door de X server;Welke video speler/encoderports goede resultaten
geven;Hoe DVD's, .mpg en
.avi bestanden af te spelen;Hoe CD en DVD informatie naar bestanden geript kan
worden;Hoe een TV-kaart in te stellen;Hoe een scanner in te stellen.Er wordt aangenomen dat de lezer van dit hoofdstuk:Weet hoe een nieuwe kernel in te stellen en te
installeren ().Het proberen te mounten van audio CD's met &man.mount.8;
resulteert in ieder geval in een foutmelding en op zijn ergst
in een kernel panic. Dat type media heeft
een formaat dat afwijkt van het gebruikelijke
ISO-bestandssysteem.MosesMooreGeschreven door MarcFonvieilleAangepast voor &os; 5.X door Geluidskaart InstallerenSysteem InstellenPCIISAgeluidskaartenAlvorens te beginnen is het van belang te weten welk model
een geluidskaart is, welke chip erop wordt gebruikt en of het
een PCI of ISA kaart is. &os; ondersteunt vele PCI en ISA
kaarten. De ondersteunde audioapparaten staan in een lijst in
de Hardware Notes.
In dit document staat ook beschreven welk stuurprogramma welke
kaart(en) ondersteunt.kernelinstellenOm een geluidsapparaat te gebruiken dient het juiste
apparaatstuurprogramma geladen te worden. Dit kan op twee
manieren. De meest eenvoudige manier is simpelweg een
kernelmodule te laden voor de gewenste geluidskaart met
&man.kldload.8;. Dit kan vanaf de commandoregel:&prompt.root; kldload snd_emu10k1Of door als volgt de juiste regel toe te voegen aan
/boot/loader.conf:snd_emu10k1_load="YES"De bovenstaande voorbeelden zijn voor een Creative
&soundblaster; Live! geluidskaart. De overige beschikbare
laadbare geluidsmodules staan beschreven in
/boot/defaults/loader.conf. Als niet
compleet duidelijk is welk stuurprogramma gebruikt dient te
worden, dan kan het met de module
snd_driver geprobeerd worden:&prompt.root; kldload snd_driverDit is een metastuurprogramma, dat in één
keer de meest voorkomende apparaatstuurprogramma's laadt.
Hiermee kan het zoeken naar het juiste stuurprogramma versneld
worden. Het is ook mogelijk om alle geluidsstuurprogramma's te
laden via de optie
/boot/loader.conf.Om onder &os; 4.X alle geluidsstuurprogramma's te
laden, dient de module snd geladen te
worden in plaats van snd_driver.Een tweede mogelijkheid is ondersteuning voor een
geluidskaart statisch in de kernel te compileren. In de
onderstaande paragrafen staat meer informatie over hoe op die
manier ondersteuning voor hardware toegevoegd kan worden. Meer
informatie over het hercompileren van een kernel staat in .Aangepaste Kernel Maken met GeluidsondersteuningEerst moet het generieke audiostuurprogramma
&man.sound.4; aan de kernel toegevoegd worden. Daarvoor
dient het volgende te worden opgenomen in het bestand met
kernelinstellingen:device soundVoor &os; 4.X kan het volgende gebruikt
worden:device pcmDaarna kan ondersteuning voor de specifieke geluidskaart
toegevoegd worden. Daarvoor moet bekend zijn welk
stuurprogramma de kaart ondersteunt. Dit kan opgezocht
worden in de lijst met ondersteunde audioapparaten in de
Hardware Notes,
waar de correcte stuurprogramma's voor geluidskaarten
beschreven staan. Zo wordt een Creative &soundblaster; Live!
geluidskaart bijvoorbeeld ondersteund door het stuurprogramma
&man.snd.emu10k1.4;. Ondersteuning voor deze kaart kan als
volgt worden toegevoegd:device "snd_emu10k1"In de hulppagina voor een stuurprogramma staat welke
syntaxis gebruikt kan worden. Informatie over de syntaxis
van geluidsstuurprogramma's in de kernelinstellingen staat
ook in /usr/src/sys/conf/NOTES
(/usr/src/sys/i386/conf/LINT voor
&os; 4.X).Voor niet-PnP ISA-kaarten kan het nodig zijn dat de
kernel informatie gegeven moet worden over de instellingen
van een geluidskaart (IRQ, I/O poort, enzovoort). Dit kan
via het bestand /boot/device.hints. Bij
het starten van een systeem leest de &man.loader.8; dat
bestand uit en geeft de instellingen door aan de kernel. Zo
gebruikt een oude Creative &soundblaster; 16 ISA
niet-PnP-kaart het stuurprogramma &man.snd.sbc.4; en dient de
volgende regel toegevoegd te worden aan het bestand met
kernelinstellingen:device snd_sbcDaarnaast moet het volgende worden toegevoegd aan
/boot/device.hints:hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"In dit geval gebruikt de kaart I/O poort
0x220 en IRQ 5.De gebruikte syntaxis voor
/boot/device.hints staat beschreven in
de hulppagina voor het geluidsstuurprogramma. In
&os; 4.X worden deze instellingen direct in het bestand
met kernelinstellingen gezet. In het geval van de
bovenstaande ISA-kaart gaat dat al volgt:device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15De bovenstaande instellingen zijn de standaard
instellingen. In sommige gevallen moeten IRQ of andere
instellingen gewijzigd worden om een apparaat juist te laten
werken. In &man.snd.sbc.4; staat meer informatie.Onder &os; 4.X hebben sommige systemen met
audioapparaten op het moederbord de volgende optie in het
bestand met kernelinstellingen nodig:options PNPBIOSGeluidskaart TestenNa het herstarten met de aangepaste kernel of na het laden
van de benodigde module, hoort de geluidskaart ongeveer als
volgt te verschijnen in de systeemberichtbuffer
(&man.dmesg.8;):pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Cirrus Logic CS4205 AC97 Codec>De status van de geluidskaart kan gecontroleerd worden via
het bestand /dev/sndstat:&prompt.root; cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384
kld snd_ich (1p/2r/0v channels duplex default)De uitvoer kan per systeem wat verschillen. Als er geen
apparaten pcm verschijnen, dienen
eerdere stappen bekeken te worden. Bekijk nogmaals de
instellingen van de kernel en bevestig dat het juiste apparaat
is gekozen. Veel voorkomende problemen staan beschreven in
.Als het goed is werkt de geluidskaart nu. Als de CD-ROM of
DVD-ROM drive juist is aangesloten op de geluidskaart, dan kan
er een CD in de drive gestoken worden en kan deze met
&man.cdcontrol.1; afgespeeld worden:&prompt.user; cdcontrol -f /dev/acd0 play 1Applicaties als audio/workman kunnen een
vriendelijker interface bieden. Wellicht is het handig om een
applicatie als audio/mpg123
te installeren om naar MP3 audiobestanden te luisteren. Een
snelle manier om de kaart te testen is het als volgt sturen van
data naar /dev/dsp:&prompt.user; cat filename > /dev/dspfilename kan ieder bestand zijn.
Deze commandoregel hoort wat ruis tot gevolg te hebben,
waardoor wordt bevestigd dat de geluidskaart echt werkt.&os; 4.X gebruikers moeten de geluidskaart
apparaatnodes maken voordat hij gebruikt kan worden. Als de
kaart voorkomt in de berichtbuffer als
pcm0, dan dient het volgende als
root uitgevoerd te worden:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV snd0Als de kaart herkend is als
pcm1, kunnen dezelfde stappen als
hierboven gevolgd worden, waarbij
snd0 wordt vervangen door
snd1.MAKEDEV maakt een groep apparaatnodes
aan die gebruikt worden voor de applicaties die met geluid
te maken hebben.Niveau's voor de geluidskaartmixer kunnen aangepast worden
met het commando &man.mixer.8;. Er staan meer details in
&man.mixer.8;.Bekende ProblemenapparaatnodesI/O poortIRQDSPFoutOplossingunsupported
subdevice XXEén of meer van de apparaatnodes zijn
niet correct gemaakt. De bovenstaande stappen dienen
opnieuw uitgevoerd te worden.sb_dspwr(XX) timed
outDe I/O poort is niet correct ingesteld.bad irq XXHet IRQ is niet correct ingesteld. Zorg dat het
ingestelde IRQ en het IRQ voor het geluid hetzelfde
zijn.xxx: gus pcm not attached, out of
memoryEr is niet genoeg geheugen beschikbaar om het
apparaat te gebruiken.xxx: can't open
/dev/dsp!Controleer fstat | grep dsp
of een ander programma het apparaat geopend heeft.
Bekende probleemgevallen zijn
esound en
KDE's
geluidsondersteuning.MunishChopraGeschreven door Meerdere Geluidsbronnen GebruikenHet is vaak wenselijk om meerdere geluidsbronnen
tegelijkertijd af te kunnen spelen, zoals wanneer
esound of
artsd het delen van een
geluidsapparaat met een andere applicatie niet
ondersteunen.Met &os; kan dit met Virtuele
Geluidskanalen, die ingesteld kunnen worden met de
&man.sysctl.8; faciliteit. Met virtuele kanalen kunnen de
afspeelkanalen van een geluidskaart gemultiplext worden door
het geluid in de kernel te mixen.Het aantal virtuele kanalen kan met twee sysctl knoppen
als root als volgt ingesteld
worden:&prompt.root; sysctl hw.snd.pcm0.vchans=4
&prompt.root; sysctl hw.snd.maxautovchans=4In het bovenstaande voorbeeld worden vier virtuele kanelen
gealloceerd, wat in het dagelijks gebruik voldoende is.
In hw.snd.pcm0.vchans staat het aantal
vitruele kanalen dat pcm0 heeft en is
instelbaar als een apparaat is aangesloten.
In hw.snd.maxautovchans staat het aantal
virtuele kanalen dat aan een nieuw audio-apparaat wordt gegeven
als het wordt aangesloten met &man.kldload.8;. Omdat de module
pcm onafhankelijk van de hardware
stuurprogramma's geladen kan worden, kan in
hw.snd.maxautovchans opgeslagen worden
hoeveel virtuele kanalen apparaten die later worden aangesloten
krijgen.Als er geen gebruik wordt gemaakt van &man.devfs.5;, dan
moeten applicaties wijzen naar
/dev/dsp0.x,
waar x tussen 0 en 3 ligt als
hw.snd.pcm.0.vchans is ingesteld op 4, zoals
in het bovenstaande voorbeeld. Op een systeem waar
&man.devfs.5; wordt gebruikt, wordt het voorgaande voor een
gebruiker automatisch transparant gealloceerd.JosefEl-RayesGeschreven door Standaardwaarden voor Mixerkanalen InstellenDe standaard waarden voor de mixerkanelen zijn ingesteld in
de broncode van het stuurprogramma &man.pcm.4;. Er zijn vele
applicaties en daemons waarmee waarden voor de mixer ingesteld
en onthouden kunnen worden en iedere keer bij het starten
weer kunnen worden ingesteld. Maar dit is geen nette
oplossing, omdat het netter is de standaardwaarden in te
stellen op het niveau van het stuurprogramma. Die kunnen
ingesteld worden door de gewenste waarden in te stellen in
/boot/device.hints. Bijvoorbeeld:hint.pcm.0.vol="100"Met de bovenstaande instelling wordt het volume van een
kanaal standaard op 100 ingesteld bij het laden van de module
&man.pcm.4;.Dit wordt alleen ondersteund in &os; 5.3 en
hoger.ChernLeeGeschreven door MP3 AudioMet MP3 (MPEG Layer 3 Audio) kan geluid bijna in CD-kwaliteit
weergegeven worden en dus is er een goede reden om dit vooral
niet na te laten op een &os; werkstation.MP3 SpelersVerreweg de meest populaire X11 MP3 speler is
XMMS (X Multimedia Systeem).
In XMMS kunnen
Winamp skins gebruikt worden, omdat
de GUI vrijwel gelijk is aan die van Nullsoft's
Winamp.
XMMS heeft ook een eigen plug-in
ondersteuning.XMMS kan geïnstalleerd
worden via de multimedia/xmms port of
package.De interface van XMMS is
intuïtief met een playlist, grafische equalizer en meer.
Gebruikers die bekend zijn met
Winamp vinden
XMMS vast eenvoudig te
gebruiken.De port audio/mpg123 is
een alternatieve MP3 speler die gebruik maakt van de
commandoregel.mpg123 werkt door het
geluidsapparaat en het MP3 bestand aan te geven op de
commandoregel, zoals hieronder wordt aangegeven:&prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Playing MPEG stream from Foobar-GreatestHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo/dev/dsp1.0 dient gewijzigd te worden in
het dsp apparaat van het systeem
waarop de MP3 afgespeeld moet worden.CD Audio Tracks RippenVoordat een CD of een CD track naar MP3 ge-encodeerd kan
worden moet de audiodata naar de harde schijf geript worden.
Dit gaat door de ruwe CDDA (CD Digital Audio) data naar
WAV-bestanden de kopiëren.Het hulpprogramma cdda2wav, dat
onderdeel is van de suite sysutils/cdrtools, kan gebruikt
worden om audio-informatie en de daarbij behorende informatie
van CD's te rippen.Als de audio CD in de drive zit, kan het volgende commando
als root uitgevoerd worden om een hele CD
naar individuele (per track) WAV-bestanden te rippen:&prompt.root; cdda2wav -D 0,1,0 -Bcdda2wav ondersteunt ATAPI (IDE)
CDROM drives. Om van een IDE drive te rippen, dient de
apparaatnaam aangegeven te worden in plaats van de SCSI
eenheidsnummers. Om bijvoorbeeld track 7 van een IDE drive te
rippen:&prompt.root; cdda2wav -D /dev/acd0a -t 7De optie
geeft het
SCSI apparaat 0,1,0 aan, dat
overeenkomt met de uitvoer van cdrecord
-scanbus.Om individuele tracks te rippen kan gebruik gemaakt worden
van de optie :&prompt.root; cdda2wav -D 0,1,0 -t 7In het bovenstaande voorbeeld wordt track 7 van de audio
CDROM geript. Om een reeks tracks te rippen, bijvoorbeeld van
1 tot 7, kan een reeks opgegeven worden:&prompt.root; cdda2wav -D 0,1,0 -t 1+7Ook het hulpprogramma &man.dd.1; kan gebruikt worden om
audio tracks van ATAPI drives af te halen. Deze mogelijkheid
wordt beschreven in .MP3's EncoderenTegenwoodig is de MP3 encoder
lame.
Lame staat in
audio/lame in de
portsstructuur.Met de geripte WAV-bestanden converteert het volgende
commando audio01.wav naar
audio01.mp3:&prompt.root; lame -h -b 192 \
--tt "Foo Titel" \
--ta "FooBar Artiest" \
--tl "FooBar Album" \
--ty "2005" \
--tc "Geript en encoded door Foo" \
--tg "Genre" \
audio01.wav audio01.mp3192 kbits lijkt de standaard bitrate voor MP3 te zijn.
Het is ook mogelijk 128 of 160 of andere bitrates te gebruiken.
Hoe hoger de bitrate, hoe meer schijfruimte de uiteindelijke
MP3-bestanden gebruiken, maar ook de kwaliteit wordt dan hoger.
Met de optie wordt de modus hogere
kwaliteit, maar iets langzamer ingeschakeld. Met de
opties vanaf worden de ID3 tags ingegeven,
die meestal informatie over een nummer bevatten en onderdeel
uitmaken van het MP3-bestand. In de hulppagina voor
lame staan nog meer opties die
gebruikt kunnen worden bij het encoderen beschreven.MP3's DecoderenOm een CD te kunnen branden van MP3's, moeten ze omgezet
worden naar een niet gecomprimeerd WAV-formaat. Zowel
XMMS als
mpg123 ondersteunen de uitvoer van
MP3 naar een niet gecomprimeerd bestandsformaat.Naar schijf schrijven met
XMMS:Start XMMS;Klik rechts op het venster om het
XMMS menu te zien;Selecteer Preference onder
Options;Wijzig de Output Plugin naar Disk Writer
Plugin;Klik Configure;Voer een map in (of kies browse) waar de
ongecomprimeerde bestanden heengeschreven moeten
worden;Laad de MP3-bestanden zoals gewoonlijk in
XMMS, met het volume op 100% en
de EQ instellingen uitgeschakeld;Klik Play.
XMMS lijkt nu de MP3 af te
spelen, maar er is geen muziek te horen. Nu wordt
feitelijk de MP3 afgespeeld naar een bestand;Zorg ervoor dat de standaard Output Plugin wordt
teruggezet naar hoe de instellingen waren om weer naar
MP3's te kunnen luisteren.Schrijven naar stdout vanuit
mpg123:Voer mpg123 -s
audio01.mp3 >
audio01.pcm uit.XMMS schijft een bestand in het
WAV-formaat, terwijl mpg123 de MP3
converteert naar ruwe PCM audio data. Beide formaten kunnen
gebruikt worden met cdrecord om
audio CD's te maken. Met &man.burncd.8; moeten ruwe
PCM-bestanden gebruikt worden. Als er WAV-bestanden worden
gebruikt, is er een tik-geluid te horen bij het begin van
iedere track. Dit is het geluid van de kop van ieder
WAV-bestand. Met het hulpprogramma
SoX kan de kop van WAV-bestanden
verwijderd worden. Dit programma kan geïnstalleerd worden
met de port of package audio/sox&prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.rawIn staat meer informatie over
het gebruiken van een CD-brander in &os;.RossLippertGeschreven door Video AfspelenVideo afspelen is een relatief nieuwe en zich snel
ontwikkelende richting voor applicaties. In tegenstelling tot
voor audio werkt alles hier niet zo soepel.Voor er wordt begonnen is het van belang te weten welk
model videokaart zich in een systeem bevindt en welke chip die
gebruikt. Hoewel &xorg; en
&xfree86; vele videokaarten
ondersteunen, zijn er veel minder geschikt om goed video mee af
te spelen. Er kan een lijst met ondersteunde extensies getoond
worden voor X server met de gebruikte videokaart door het
commando &man.xdpyinfo.1; uit te voeren terwijl X11
draait.Het is verstandig een kort MPEG-bestand beschikbaar te
hebben dat gebruikt kan worden als testbestand voor het
evalueren van de spelers en hun opties. Omdat sommige
DVD-spelers standaard zoeken naar DVD media in
/dev/dvd of deze apparaatnaam standaard in
de broncode hebben staan, is het wellicht verstandig om een
symbolische link te maken naar de juist apparaten:&prompt.root; ln -sf /dev/acd0c /dev/dvd
&prompt.root; ln -sf /dev/racd0c /dev/rdvdIn &os; 5.X, dat &man.devfs.5; gebruikt, worden
net iets andere links aangeraden:&prompt.root; ln -sf /dev/acd0 /dev/dvd
&prompt.root; ln -sf /dev/acd0 /dev/rdvdVanwege de werking van &man.devfs.5;, blijven handmatig
aangemaakte links niet bestaan als een systeem wordt herstart.
Om automatisch symbolische links aan te laten maken als een
systeem start, kunnen de volgende regels toegevoegd worden aan
/etc/devfs.conf:link acd0 dvd
link acd0 rdvdDaarnaast zijn voor het decoderen van DVD, waarvoor
bijzondere DVD-ROM functies aangeroepen worden, schrijfrechten
op de DVD-apparaten nodig.kernelopties
- options CPU_ENABLE_SSE
+ CPU_ENABLE_SSEkernelopties
- options USER_LDT
+ USER_LDTEen aantal van de hier besproken ports hebben specifieke
kernelopties nodig om correct gebouwd te worden. Voordat ze
gebouwd worden, dienen deze opties aan het bestand met
kernelinstellingen toegevoegd te worden, dient de kernel
opnieuw gebouwd te worden en het systeem opnieuw gestart te
worden:option CPU_ENABLE_SSE
option USER_LDToption USER_LDT bestaat niet in
&os; 5.X.Om de gedeeld geheugen interface van X11 te verbeteren,
wordt aangeraden dat een aantal variablelen van &man.sysctl.8;
worden verhoogd:kern.ipc.shmmax=67108864
kern.ipc.shmall=32768Videomogelijkheden VaststellenXVideoSDLDGAEr zijn een aantal methoden om video weer te geven onder
X11. Welke echt werkt, is voornamelijk afhankelijk van de
gebruikte hardware. Iedere hieronder beschreven methode geeft
andere resultaten op andere hardware. De laatste tijd krijgt
het renderen van video in X11 veel aandacht en bij iedere
versie van &xorg; of
&xfree86; kan er een aanzienlijke
verbetering zijn.Een lijst van veel gebruikte video-interfaces:X11: normale X11 uitvoer met gebruikmaking van gedeeld
geheugen;XVideo: een uitbreiding op de X11 interface die video
in een door X11 getekend object ondersteunt;SDL: de Simple Directmedia Layer;DGA: de Direct Graphics Access;SVGAlib: low level console grafische laag.XVideo&xorg; en
&xfree86; 4.X kennen een
uitbreiding XVideo, ook bekend als
Xvideo, Xv of xv, waarmee video direct weergegeven kan worden
in getekende objecten door een speciale versneller. Deze
uitbreiding geeft een goede afspeelkwaliteit, zelfs op
machines met mindere specificaties.Of de uitbreiding actief is, kan gecontroleerd worden met
het commando xvinfo:&prompt.user; xvinfoXVideo wordt ondersteund als de uitvoer er ongeveer als
volgt uitziet:X-Video Extension version 2.2
screen #0
Adaptor #0: "Savage Streams Engine"
number of ports: 1
port base: 43
operations supported: PutImage
supported visuals:
depth 16, visualID 0x22
depth 16, visualID 0x23
number of attributes: 5
"XV_COLORKEY" (range 0 to 16777215)
client settable attribute
client gettable attribute (current value is 2110)
"XV_BRIGHTNESS" (range -128 to 127)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_SATURATION" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_HUE" (range -180 to 180)
client settable attribute
client gettable attribute (current value is 0)
maximum XvImage size: 1024 x 1024
Number of image formats: 7
id: 0x32595559 (YUY2)
guid: 59555932-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x32315659 (YV12)
guid: 59563132-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x36315652 (RV16)
guid: 52563135-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x3e0, 0x7c00
id: 0x35315652 (RV15)
guid: 52563136-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x7e0, 0xf800
id: 0x31313259 (Y211)
guid: 59323131-0000-0010-8000-00aa00389b71
bits per pixel: 6
number of planes: 3
type: YUV (packed)
id: 0x0
guid: 00000000-0000-0000-0000-000000000000
bits per pixel: 0
number of planes: 0
type: RGB (packed)
depth: 1
red, green, blue masks: 0x0, 0x0, 0x0Sommige van de weergegeven formaten (YUV2, YUV12,
enzovoort) zijn niet in iedere implementaties van XVideo
beschikbaar en hun afwezigheid kan sommige spelers
hinderen.Als het resultaat er als hieronder uitziet, is er geen
ondersteuning voor XVideo aanwezig op de videokaart in een
systeem:X-Video Extension version 2.2
screen #0
no adaptors presentAls XVideo voor een kaart niet wordt ondersteund, dan
betekent dat alleen dat het lastiger wordt om op een
beeldscherm aan de vereisten voor het renderen van video te
voldoen. Afhankelijk van de videokaart en de processor kan
het toch nog mogelijk zijn om acceptabele prestaties neer te
zetten. In staan
verwijzingen naar leesvoer over mogelijkheden voor het
verbeteren van prestaties.Eenvoudige Directmedia LaagDe Eenvoudige Directmedia Laag (Simple Directmedia
Layer), SDL, was bedoeld als een porting-laag tussen
µsoft.windows;, BeOS en &unix;, waardoor cross-platform
toepassingen konden worden ontwikkeld die efficiënt
gebruik maken van geluid en beelden. De SDL laag biedt een
abstractie op laag niveau naar de hardware die soms
efficiënter kan zijn dan de X11 interface.De SDL staat in devel/sdl12.Directe Grafische ToegangDirecte Grafische Toegang (Direct Graphics Access) is een
X11 uitbreiding die een programma in staat stelt voorbij te
gaan aan de X server en de framebuffer direct kan wijzigen.
Omdat hij afhankelijk is van geheugenmapping op een laag
niveau om dit delen uit te voeren, moeten programma's die er
gebruik van maken als root
draaien.De DGA uitbreiding kan getest en gebenchmarkt worden met
&man.dga.1;. Als dga draait, verandert
het de kleuren op een scherm als er een toets wordt
ingedrukt. Om te stoppen kan de toets q
gebruikt worden.Ports en Packages met VideovideopoortenvideopackagesIn dit onderdeel wordt de software die vanuit de &os;
portscollectie beschikbaar is voor het afspelen van video
beschreven. Het afspelen van video is een tak van
softwareontwikkeling die erg in beweging is en de mogelijkheden
van de verschillende applicaties verschillen zeer
waarschijnlijk van wat hier is beschreven.Als eerste is het belangrijk om te weten dat veel
applicaties die met video te maken hebben en op &os; draaien
ontwikkeld zijn als &linux; applicaties. Veel van die
applicaties zijn op het moment van schrijven van
beta-kwaliteit. Problemen die te verwachten zijn bij het
gebruik van de beschreven videopakketten op &os; zijn:Een applicatie kan geen bestanden afspelen die zijn
gemaakt met een andere applicatie;Een applicatie kan geen bestanden afspelen die met de
applicatie zelf zijn gemaakt;Dezelfde applicatie, op twee verschillende machines
gebouwd, speelt hetzelfde bestand op twee machines anders
af;Een ogenschijlijk triviale filter, zoals het herschalen
van beeldgrootte, kan resulteren in vreselijk vervelende
artefacten door fouten in de routine voor het
herschalen;Een applicatie dumpt zijn core regelmatig;Documentatie wordt niet geïnstalleerd bij de port
en staat op het web of in de map work van de port.Veel van deze applicaties kunnen ook
Linux-ismes vertonen. Zo kunnen er bijvoorbeeld
problemen ontstaan door de wijze waarop standaard bibliotheken
zijn geïmplementeerd in de &linux; distributies of een
aantal van de mogelijkheden van de &linux;-kernel, waarvan
door de makers van de applicatie wordt aangenomen dat ze
aanwezig zijn. Dit soort problemen zijn niet altijd zichtbaar
en er wordt ook omheen gewerkt door de beheerders van ports,
wat tot de volgende mogelijke problemen kan leiden:Het gebruik van /proc/cpuinfo om
processorkarakteristieken uit te lezen;Het verkeerd gebruiken van threads, waardoor een
programma hangt als het klaar is, in plaats van dat het
echt eindigt;Software die nog niet in de &os; portscollectie zit en
vaak gebruikt wordt samen met een applicatie die daar wel
onderdeel van uitmaakt.Tot nu toe is gebleken dat de ontwikkelaars van applicaties
wel coöperatief waren met de beheerders van ports om zo
het aantal work-arounds dat nodig was voor het porten tot een
minimum te beperken.MPlayerMPlayer is een zich snel
ontwikkelende videospeler. De doelen van het
MPlayer-team zijn snelheid en
flexibiliteit onder &linux; en andere Unices. Het project is
gestart toen de oprichter van het team genoeg had van de
slechte afspeelprestaties van de destijds beschikbare
spelers. Er zijn mensen die zeggen dat het grafische ontwerp
is opgeofferd voor het stroomlijnen van het ontwerp, maar het
blijkt dat, als een gebruiker gewend is aan de
commandoregelopties en de toetsencommando's, de applicatie
erg goed werkt.MPlayer BouwenMPlayer
+
makenMPlayer staat in multimedia/mplayer.
MPlayer voert een aantal
hardwarecontroles uit tijdens het bouwen, wat resulteert in
een binair bestand dat niet van het ene naar het andere
systeem verplaatst kan worden. Daarom is het van belang
dat het uit de ports wordt gebouwd en niet als binair
package wordt geïnstalleerd. Daarnaast staan er ook
nog opties die vanaf de make
commandoregel meegegeven kunnen worden beschreven in de
Makefile en aan het begin van de
build:&prompt.root; cd /usr/ports/multimedia/mplayer
&prompt.root; make
N - O - T - E
Take a careful look into the Makefile in order
to learn how to tune mplayer towards you personal preferences!
For example,
make WITH_GTK1
builds MPlayer with GTK1-GUI support.
If you want to use the GUI, you can either install
/usr/ports/multimedia/mplayer-skins
or download official skin collections from
http://www.mplayerhq.hu/homepage/dload.htmlDe standaard portopties zijn voor de meeste gebruikers
voldoende. Maar als bijvoorbeeld de XviD codec nodig is,
dan moet de optie WITH_XVID op de
commandoregel meegegeven worden. Het standaard
DVD-apparaat kan ook gedefinieerd worden met de optie
WITH_DVD_DEVICE, waarbij standaard
/dev/acd0 wordt gebruikt.Op het moment van schrijven wordt de
MPlayer port gebouwd met de HTML
documentatie en twee uitvoerbare bestanden,
mplayer en mencoder,
wat een hulpmiddel is voor het opnieuw encoderen van
video.De HTML documentatie voor
MPlayer is erg informatief. Als
de lezer vindt dat er informatie over videohardware en
interfaces in dit hoofdstuk mist, dan is de documentatie
van MPlayer een zeer grondige
aanvulling. Het is de moeite waard de tijd te nemen om de
documentatie van MPlayer te
lezen, als meer informatie over de ondersteuning van video
in &unix; welkom is.MPlayer GebruikenMPlayergebruikenIedere gebruiker van MPlayer
dient een submap .mplayer in zijn
thuismap te hebben. Die kan als volgt gemaakt
worden:&prompt.user; cd /usr/ports/multimedia/mplayer
&prompt.user; make install-userDe commando-opties voor mplayer
staan in de hulppagina. Nog meer details staan in de HTML
documentatie. In dit onderdeel worden slechts een aantal
gebruiksmogelijkheden beschreven.Om een bestand als
testfile.avi
af te spelen met een van de beschikbare video-interfaces,
kan de optie gebruikt worden:&prompt.user; mplayer -vo xv testfile.avi&prompt.user; mplayer -vo sdl testfile.avi&prompt.user; mplayer -vo x11 testfile.avi&prompt.root; mplayer -vo dga testfile.avi&prompt.root; mplayer -vo 'sdl:dga' testfile.aviHet is de moeite waard alle bovenstaande opties uit te
proberen omdat hun relatieve prestatie afhangt van vele
factoren die aanzienlijk verschillen tussen
hardware.Om een DVD af te spelen dient
testfile.avi vervangen te worden door
waar
N het titelnummer is dat
afgespeeld moeten worden en
APPARAAT de
apparaatnode is voor de DVD-ROM. Om bijvoorbeeld titel 3
van /dev/dvd af te spelen:&prompt.root; mplayer -vo xv dvd://3 -dvd-device /dev/dvdHet standaard DVD-apparaat kan ingesteld worden bij
het bouwen van de MPlayer port
met de optie WITH_DVD_DEVICE.
Standaard is dit apparaat /dev/acd0.
Meer details staan in de Makefile
van de port.Om te stoppen, pauzeren, verder te spoelen, enzovoort,
kunnen de toetsendefinities gebruikt worden, die in te zien
zijn door mplayer -h uit te voeren of
de hulppagina te lezen.Overige belangrijke opties voor het afspelen zijn:
, waarmee het volledige scherm
wordt gebruikt, en , die
prestatieverhogend werkt.Om ervoor te zorgen dat de commandoregels niet te lang
worden, kan het bestand
.mplayer/config met
voorkeursinstellingen gemaakt worden:vo=xv
fs=yes
zoom=yesTenslotte kan mplayer gebruikt
worden om een DVD naar een bestand van het type
.vob te rippen. Om de tweede titel
van een DVD de dumpen kan het volgende commando gebruikt
worden:&prompt.root; mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvdHet uitvoerbestand out.vob, is
van het type MPEG en kan bewerkt worden met andere in dit
onderdeel besproken programma's.mencodermencoderVoordat mencoder wordt gebruikt, is
het verstandig de opties uit de HTML-documentatie te
bekijken. Er is een hulppagina, maar die is niet echt
bruikbaar zonder de HTML-documentatie. Er zijn ontelbare
mogelijkheden om de kwaliteit te verhogen, de bitrate te
verlagen en formaten te wijzigen en een aantal van die
truuks maken het verschil tussen goede en slechte
prestaties. Hieronder staan een aantal voorbeelden
beschreven.Eenvoudigweg kopiëren:&prompt.user; mencoder input.avi -oac copy -ovc copy -o output.aviVerkeerde combinaties van commandoregelopties kunnen
resulteren in uitvoerbestanden die zelfs niet af te spelen
zijn door mplayer. Daarom wordt
aangeraden om het bij de optie
in
mplayer te houden als het alleen maar
nodig is een bestand te rippen.Om input.avi te converteren naar
de MPEG4-codec met MPEG3-audio encoding (audio/lame is
verplicht):&prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \
-ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.aviHiermee wordt uitvoer gemaakt die af te spelen is met
mplayer en
xine.input.avi kan worden vervangen
door en als
root gedraaid worden om een DVD titel
direct te hercoderen. Omdat het waarschijnlijk is dat de
eerste experimenten niet direct tevredenstellend zijn,
wordt aangeraden een titel eerst naar een bestand te dumpen
en dat als werkbestand te gebruiken.xine VideospelerDe xine videospeler is een
project met een brede scope, dat niet alleen tracht een
allesomvattende video-oplossing te bieden, maar ook probeert
een herbruikbare basisbibliotheek en een modulair uitvoerbaar
bestand te maken dat uitgebreid kan worden met plug-ins. Het
kan als package en port geïnstalleerd worden uit
multimedia/xine.De xine speler heeft nog wat
ruwe randjes, maar is zeker goed van start gegaan. In de
praktijk heeft xine een snelle CPU
met een snelle videokaart of ondersteuning voor de XVideo
extensie nodig. De GUI is bruikbaar, maar wat
onhandig.Op het moment van schrijven wordt er geen invoermodule
bij xine geleverd waarmee CSS
gecodeerde DVD's afgespeeld kunnen worden. Er zijn er die
door andere partijen zijn gebouwd die dat type modules wel
hebben, maar die zijn niet beschikbaar in de &os;
portscollectie.Vergeleken met MPlayer, doet
xine meer voor de gebruiker, maar
tegelijkertijd neemt het wat van de
fijnafstellingsmogelijkheden weg. De
xine videospeler werkt het beste
op XVideo interfaces.Standaard start de xine speler
op in een grafische gebruikersinterface. Via het menu kan
een specifiek bestand geopend worden:&prompt.user; xineHet is ook mogelijk om zonder de GUI direct een bestand
af te laten spelen:&prompt.user; xine -g -p mymovie.avitranscode
Hulpprogramma'sDe software transcode is geen
speler, maar een verzameling hulpprogramma's voor het
hercoderen van .avi en
.mpg bestanden. Met
transcode wordt het mogelijk om
videobestanden samen te voegen, kapotte bestanden te
repareren en commandoregelprogramma's te gebruiken met
stdin/stdout stream interfaces.Net als MPlayer is
transcode bijzonder experimentele
software die vanuit de port multimedia/transcode gebouwd moet
worden. Er zijn veel opties voor make
beschikbaar en daaruit worden de volgende aangeraden:&prompt.root; make WITH_LIBMPEG2=yesAls ook multimedia/avifile wordt
geïnstalleerd, dan dient WITH_AVIFILE
aan de make commandoregel te worden
toegevoegd:&prompt.root; make WITH_AVIFILE=yes WITH_LIBMPEG2=yesHieronder staan twee voorbeelden beschreven waarin
transcode wordt gebruikt voor het
converteren van video met als resultaat anders geschaalde
uitvoer. Het eerste encodeert de uitvoer naar een openDIVX
AVI-bestand, het tweede encodeert het naar het meer portabele
formaat MPEG.&prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \
-y opendivx -N 0x55 -o output.avi&prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \
-y mpeg -N 0x55 -o output.tmp
&prompt.user; tcmplex -o output.mpg -i output.tmp.m1v -p output.tmp.mpa -m 1Er is een hulppagina voor transcode,
maar er is weinig documentatie voor de verschillende
tc* programma's (zoals
tcmplex) die ook zijn geïnstalleerd.
Voor ieder commando is wel de commandoregeloptie
beschikbaar, waarmee een korte
beschrijving voor het gebruik van het programma wordt
getoond.Als de twee vergeleken worden, draait
transcode aanzienlijk langzamer dan
mencoder, maar is de kans wel groter dat
er een bestand uit komt dat op de meeste spelers afgespeeld
kan worden. MPEG-bestanden die met
transcode zijn gemaakt, zijn bijvoorbeeld
al afgespeeld op &windows.media;
Player en Apple's
&quicktime;.Verder LezenDe beschikbare videosoftware pakketten voor &os; zijn fors
in ontwikkeling. Het is goed mogelijk dat in de nabije
toekomst de meeste problemen die hier aan de kaak zijn gesteld,
zijn opgelost. Intussen kunnen zij die het hoogst haalbare uit
de A/V mogelijkheden voor &os; willen halen, dat het beste
doen door wat beschikbaar is bij elkaar te scharrelen uit de
beschikbare FAQ's and tutorials en meerdere programma's
gebruiken. Het doel van deze paragraaf is de lezer wat
richting te geven op dat vlak.De MPlayer
documentatie is technisch erg informatief. Deze
documenten kunnen het beste bekeken worden door iemand die veel
kennis wil opdoen over video in &unix;. Op de
MPlayer mailinglijst wordt het niet
op prijsgesteld als iemand de documentatie niet heeft gelezen,
dus het is verstandig RTFM in gedachten te houden alvorens
bug reports naar ze te mailen.De xine
HOWTO bevat een hoofdstuk over het verbeteren van
prestaties, dat op alle spelers van toepassing is.Tenslotte zijn er nog een aantal veelbelovende applicaties
die het proberen waard zijn:Avifile
bestaat ook als port: multimedia/avifile;Ogle
is er ook als port: multimedia/ogle;Xtheater;multimedia/dvdauthor, een open
source pakket voor authoring van DVD content.JosefEl-RayesOorspronkelijk geschreven door MarcFonvieilleVerbeterd en aangepast door TV-kaarten InstallerenTV-kaartenInleidingMet TV-kaarten is het mogelijk om naar (kabel)uitzendingen
te kijken op een computer. Op de meeste kaarten kan composiet
video aangeleverd worden via een RCA of S-video input en
sommige kaarten hebben ook een FM tuner.&os; biedt ondersteuning voor PCI-gebaseerde TV-kaarten met
een Brooktree Bt848/849/878/879 of een Conexant CN-878/Fusion
878a Video Capture Chip met het stuurprogramma &man.bktr.4;.
Het is van belang dat er op de kaart ook een ondersteunde
tuner zit. Hiervoor kan &man.bktr.4; geraadpleegd worden,
waarin een lijst met ondersteunde tuners staat.Stuurprogramma ToevoegenVoordat de kaart gebruikt kan worden, dient het
stuurprogramma &man.bktr.4; geladen te worden. Dit kan door
de volgende regel aan /boot/loader.conf
toe te voegen:bktr_load="YES"Daarnaast is het ook mogelijk om statisch ondersteuning
voor de TV-kaart in de kernel te compileren. Dan dient de
volgende regel toegevoegd te worden aan de
kernelinstellingen:device bktr
device iicbus
device iicbb
device smbusDe extra stuurprogramma's zijn nodig omdat de
kaartcomponenten verbonden zijn via een I2C bus. Met deze
instellingen kan een nieuwe kernel gebouwd en
geïnstalleerd worden.Als een systeem eenmaal ondersteuning biedt, hoort de
TV-kaart ongeveer als volgt bij een herstart getoond te
worden:bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: <I2C bit-banging driver> on bti2c0
iicbus0: <Philips I2C bus> on iicbb0 master-only
iicbus1: <Philips I2C bus> on iicbb0 master-only
smbus0: <System Management Bus> on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.Deze berichten kunnen afwijken, afhankelijk van de
gebruikte hardware. Het is van belang te controleren of de
tuner juist herkend wordt; er kunnen nog een aantal
instellingen gemaakt worden voor parameters met &man.sysctl.8;
MIB's en in het kernelinstellingenbestand. Om bijvoorbeeld het
gebruik van een Philips SECAM tuner te forceren, kan de
volgende regel aan het bestand met kernelinstellingen worden
toegevoegd:options OVERRIDE_TUNER=6Dit kan ook via een instelling van &man.sysctl.8;:&prompt.root; sysctl hw.bt848.tuner=6In &man.bktr.4; en
/usr/src/sys/conf/NOTES staan meer details
over de beschikbare opties (onder &os; 4.X dient voor
/usr/src/sys/conf/NOTES het bestand
/usr/src/sys/i386/conf/LINT gelezen te
worden).Handige Programma'sOm een TV-kaart te gebruiken, dient een van de volgende
applicaties geïnstalleerd te worden:multimedia/fxtv
biedt TV-in-een-window en beeld/audio/videocapture
mogelijkheden;multimedia/xawtv
is ook een TV applicatie met dezelfde mogelijkheden als
fxtv;misc/alevt
decodeert Videotext/Teletext en kan deze weergeven;audio/xmradio, een
applicatie om de FM tuner die bij sommige TV-kaarten zit te
gebruiken;audio/wmtune, een
handige bureaubladapplicatie voor radiotuners.Er zijn nog meer applicaties beschikbaar in de
portscollectie.Problemen OplossenBij problemen met een TV-kaart dient eerst gecontroleerd te
worden of de videocapture chip en de tuner echt ondersteund
worden door het stuurprogramma &man.bktr.4; en of de juiste
instellingen worden gebruikt. Voor meer ondersteuning en
vragen over een specifieke TV-kaart is het aan te raden de
archieven van de &a.multimedia.name; mailinglijst te
raadplegen of er contact mee op te nemen.MarcFonvieilleGeschreven door ScannersscannersInleidingIn &os; is het, net als in andere moderne
besturingssystemen, mogelijk om scanners te gebruiken.
Gestandaardiseerde toegang tot scanners is mogelijk met de
SANE (Scanner Access Now
Easy) API uit de &os; portscollectie.
SANE gebruikt ook een aantal &os;
apparaatstuurprogramma's om toegang te krijgen tot de hardware
van de scanner.&os; ondesteunt SCSI en USB scanners. Het is van belang te
controleren of een scanner door SANE
wordt ondersteund voordat er instellingen worden gemaakt.
SANE heeft een lijst met ondersteunde
apparaten waarin gekeken kan worden of een scanner
wordt ondersteund en wat de status voor ondersteuning is. In
&man.uscanner.4; staat een lijst met ondersteunde
USB-scanners.Kernel InstellenZoals hierboven al is aangegeven, worden zowel SCSI als
USB-scanners ondersteund. Afhankelijk van de gebruikte
scannerinterface zijn verschillende apparaatstuurprogramma's
nodig.USB InterfaceIn de GENERIC kernel zitten
standaard de apparaatstuurprogramma's die nodig zijn voor
ondersteuning van USB-scanners. In het geval wordt besloten
tot het maken van een aangepaste kernel, dan dienen de
volgende regels in het kernelinstellingenbestand te worden
opgenomen:device usb
device uhci
device ohci
device uscannerAfhankelijk van de USB-chipset op een moederbord, is
alleen device uhci of
device ohci nodig, maar het opnemen van
beiden in het bestand met kernelinstellingen is niet
schadelijk.Als het niet wenselijk is een nieuwe kernel te bouwen en
er wordt geen GENERIC kernel gebruikt,
dan kan de apparaatstuurprogrammamodule &man.uscanner.4;
direct geladen worden met &man.kldload.8;:&prompt.root; kldload uscannerOm de module bij iedere systeemstart te laden kan de
volgende regel aan /boot/loader.conf
worden toegevoegd:uscanner_load="YES"Na een herstart met een juiste ingestelde kernel of na
het laden van de benodigde module, kan de USB-scanner
aangesloten worden. De scanner hoort ongeveer als volgt
gemeld te worden in de systeemberichtbuffer
(&man.dmesg.8;):uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2Het bovenstaande geeft aan dat de scanner de apparaatnode
/dev/uscanner0 gebruikt.Om onder &os; 4.X bepaalde USB-apparaten te zien,
moet daar de USB daemon (&man.usbd.8;) draaien. Om die in
te schakelen, dient usbd_enable="YES"
toegevoegd te worden aan /etc/rc.conf
en dient een systeem herstart te worden.SCSI InterfaceAls een scanner een SCSI interface heeft, is het
belangrijk te weten welk SCSI controllerbord gebruikt gaat
worden. Afhankelijk van de gebruikte SCSI chipset, dient het
bestand met kernelinstellingen aangepast te worden. De
GENERIC kernel ondersteunt de meest
voorkomende SCSI controllers. In het bestand
NOTES (LINT onder
&os; 4.X) is de juiste instelling te vinden die
toegevoegd moet worden aan het bestand met
kernelinstellingen. Naast het toevoegen van het juiste
SCSI-adapter stuurprogramma, dienen ook de volgende regels
opgenomen te worden in het kernelinstellingenbestand:device scbus
device passAls de kernel juist gecompileerd is, horen de apparaten
zichtbaar te zijn in de systeemberichtbuffer tijdens het
opstarten:pass2 at aic0 bus 0 target 2 lun 0
pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
pass2: 3.300MB/s transfersAls een scanner niet aan staat tijdens het opstarten, is
het nog mogelijk handmatig detectie te forceren door de
SCSI-bus te laten scannen met &man.camcontrol.8;:&prompt.root; camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successfulIn het bovenstaande geval zal de scanner ongeveer als
volgt verschijnen in de lijst met SCSI-apparaten:&prompt.root; camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1)
<AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3)
<PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)Meer details over SCSI-apparaten staan in &man.scsi.4; en
&man.camcontrol.8;.SANE InstellenHet SANE systeem is opgesplitst
in twee delen: de backends (graphics/sane-backends) en de
frontends (graphics/sane-frontends). Het deel
met de backends zorgt voor de toegang tot de scanner zelf. In
de lijst met door SANEondersteunde
apparaten staat welk backend welke scanner(s)
ondersteunt. Het is echt nodig het juiste backend vast te
stellen, omdat het anders bijzonder lastig wordt een scanner
aan de praat te krijgen. Het deel met frontends levert een
grafische scaninterface
(xscanimage).Als eerste dient de port of het package graphics/sane-backends
geïnstalleerd te worden. Daarna kan met het commando
sane-find-scanner gecontroleerd worden welke
scanner er door het SANE systeem is
gedetecteerd:&prompt.root; sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3In de uitvoer is te lezen welk type interface en welke
apparaatnode worden gebruikt om de scanner met een systeem te
verbinden. Het merk en het model worden wellicht niet getoond,
maar dat is ook niet echt van belang.Sommige USB-scanners verlangen dat er firmware wordt
geladen. Dit wordt uitgelegd in de hulppagina van het
backend. Het is ook van belang &man.sane-find-scanner.1; en
&man.sane.7; te lezen.Hierna kan gecontroleerd worden of de scanner ook te zien
is voor een scanner-frontend. Er zit bij de
SANE backends een standaard
hulpprogramma &man.scanimage.1;. Met dit commando kunnen de
apparaten zichtbaar gemaakt worden en kan vanaf de
commandoregel gescand worden. Met de optie
kunnen de scannerapparaten getoond worden:&prompt.root; scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scannerDe afwezigheid van uitvoer of een bericht dat aangeeft dat
er geen scanners zijn aangetroffen, betekent dat
&man.scanimage.1; niet in staat is een scanner te
identificeren. Als dit gebeurt, dient het instellingenbestand
voor het backend aangepast te worden en dient daar de juiste
instelling gemaakt te worden. De map /usr/local/etc/sane.d/ bevat
alle bestanden met instellingen voor de backends. Het is
bekend dat dit identificatieprobleem optreedt bij bepaalde
USB-scanners.De USB-scanner die in
wordt gebruikt, toont bijvoorbeeld de volgende informatie met
sane-find-scanner:&prompt.root; sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0De bovenstaande uitvoer geeft aan dat de scanner juist is
gedetecteerd, dat hij de USB interface gebruikt en is
aangesloten op de apparaatnode
/dev/uscanner0. Nu kan gecontroleerd
worden of de scanner juist wordt geïdentificeerd:&prompt.root; scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).Omdat in het bovenstaande voorbeeld de scanner niet wordt
geïdentificeerd, dient het bestand
/usr/local/etc/sane.d/epson.conf
gewijzigd te worden. De gebruikte scanner is een
&epson.perfection; 1650, dus in dit geval dient voor de scanner
het backend epson gebruikt te worden. Het
is van belang om het commentaar in de instellingenbestanden van
de backends te lezen. Het aanpassen van regels is eenvoudig:
plaats een commentaarkarakter voor alle regels voor andere
interfaces dan die nodig zijn weg (in dit geval worden alle
regels die beginnen met het woord scsi
uitgeschakeld, omdat er een USB interface wordt gebruiken), en
dan kan onderaan het bestand een regel met de gebruikte
interface en apparaatnode geplaatst worden:usb /dev/uscanner0Het is aan te raden de opmerkingen te lezen in het bestand
met instellingen voor het backend en ook de hulppagina, omdat
daarin meer details en de correcte syntaxis te vinden zijn. Nu
kan gecontroleerd worden of de scanner wèl juist wordt
geïdentificeerd:&prompt.root; scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scannerIn het bovenstaande voorbeeld wordt duidelijk dat de
USB-scanner is geïdentificeerd. Het is niet belangrijk
dat het merk en model niet overeenkomen. Het belangrijkste is
het veld `epson:/dev/uscanner0', dat de
juiste benamingen voor het backend en de apparaatnode
aangeeft.Als scanimage -L in staat is een scanner
goed te zien, dan zijn de instellingen compleet. Er kan nu met
het apparaat gescand worden.Hoewel &man.scanimage.1; in staat is om vanaf de
commandoregel te scannen, is het aan te raden beelden te
scannen vanuit de grafische gebruikersinterface.
SANE heeft een eenvoudige, maar
efficiënte grafische interface:
xscanimage (graphics/sane-frontends).Xsane (graphics/xsane) is een ander
populair grafisch scanfrontend, dat geavanceerde
mogelijkheden biedt, zoals meerdere scanmodi (fotokopie, fax,
enzovoort), kleurcorrectie, batchscannen, enzovoort. Beide
applicaties zijn als plug-in voor
GIMP te gebruiken.Scannergebruik voor Andere Gebruikers ToestaanAlle voorgaande taken zijn uitgevoerd met
root rechten, maar het is wellicht ook
nodig dat andere gebruikers de scanner kunnen gebruiken. Dan
heeft een gebruiker lees- en schrijfrechten nodig op de
apparaatnode voor een scanner. Een USB-scanner gebruikt
bijvoorbeeld apparaatnode /dev/uscanner0,
waarvan de groep operator eigenaar is.
Door gebruiker joe lid te maken van de
groep operator, kan die gebruiker de
scanner gebruiken:&prompt.root; pw groupmod operator -m joeIn &man.pw.8; staan meer details. Op de apparaatnode
/dev/uscanner0 moeten ook de juiste
rechten staan. Standaard kan de groep
operator alleen lezen op de
apparaatnode. Dit is te wijzigen door de volgende regel aan
/etc/devfs.rules toe te voegen:[system=5]
add path uscanner0 mode 660Daarna kan de volgende regel aan
/etc/rc.conf toegevoegd worden en dient
een machine herstart te worden:devfs_system_ruleset="system"Meer informatie over de bovenstaande instellingen staan in
&man.devfs.8; manual page. Onder &os; 4.X heeft de groep
operator standaard lees- en
schrijfrechten op /dev/uscanner0.Natuurlijk dient ook beveiliging een factor te zijn in de
afweging of een gebruiker lid gemaakt moet worden van een
bepaalde groep, zeker als dat om de groep
operator gaat.
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 3529a72dae..a8fe348964 100644
--- a/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml
@@ -1,5529 +1,5530 @@
MurrayStokelyGereorganiseerd door SiebrandMazelandVertaald door Netwerkdiensten
- Samenvatting
+ OverzichtDit 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 bestands- en printserver voor &windows; clients
opgezet kan worden met
Samba;Hoe datum en tijd gesynchroniseerd kunnen worden en hoe
een tijdserver opgezet kan worden met het NTP
protocol.Veronderstelde voorkennis:Basisbegrip van de scripts in
/etc/rc;Bekend zijn met basis netwerkterminologie;Kennis van de installatie van software van derde partijen
().ChernLeeGeschreven door De inetdSuper-ServerOverzicht&man.inetd.8; wordt de internet Super-Server
genoemd, omdat die verbindingen voor meerdere diensten beheert.
Als door inetd een verbinding wordt
ontvangen, bepaalt die voor welk programma de verbinding
bedoeld is, spawnt dat proces en delegeert de socket (het
programma wordt gestart met de socket van de dienst als
zijn standaard invoer, uitvoer en foutbeschrijvingen). Het
draaien van één instantie van
inetd reduceert de load op een
systeem in vergelijking met het in stand-alone modus draaien
van alle daemons.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
/etc/rc.conf systeem. De
optie inetd_enable staat standaard op
NO, maar wordt door
sysinstall vaak ingeschakeld door de
instellingen van het medium beveiligingsprofiel. Door het
instellen van
inetd_enable="YES" of
inetd_enable="NO" in
/etc/rc.conf wordt
inetd bij het opstarten van een
systeem wel of niet ingeschakeld.Dan kunnen er ook nog een aantal commandoregelopties aan
inetd meegegeven worden met de optie
inetd_flags.Commandoregeloptiesinetd overzicht:inetd [-d] [-l] [-w] [-W] [-c maximum] [-C rate] [-a adres | hostnaam]
[-p bestandsnaam] [-R rate] [instellingenbestand]-dSchakel debugging in.-lSchakel het loggen van succesvolle verbindingen
in.-wSchakel TCP Wrapping voor externe diensten in (staat
standaard aan).-WSchakel TCP Wrapping voor internet diensten uit
inetd in (staat standaard
aan).-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.-aGeeft een of meer IP adres associaties aan. Er kan
ook een hostnaam opgegeven worden, in welk geval het IPv4
of IPv6 adres dat met de hostnaam overeenkomst wordt
gebruikt. Meestal wordt er een hostnaam gebruikt als
inetd in een &man.jail.8;
draait en de hostnaam dus overeenkomst met de
&man.jail.8;-omgeving.Als er een hostnaam wordt aangegeven en zowel IPv4
als IPv6 zijn nodig, dan moeten er twee instellingen
in /etc/inetd.conf gemaakt worden,
voor beide protocollen een. Een TCP-gebaseerde
dienst heeft bijvoorbeeld twee regels met instellingen
nodig: tcp4 en tcp6
voor beide protocollen.-pGeeft het bestand aan waarin het proces ID opgeslagen
moet worden.Al deze opties kunnen aan inetd
meegegeven worden met de optie inetd_flags
in /etc/rc.conf. Standaard staat
inetd_flags op –wW,
dat TCP wrapping voor de interne en externe diensten van
inetd inschakelt. Voor beginnende
gebruikers hoeven deze waarden meestal niet aangepast te worden
of ingegeven te worden in
/etc/rc.conf.Een externe dienst is een daemon buiten
inetd, die wordt aangesproken als
er een verbinding voor wordt ontvangen. Een interne dienst
is een dienst die inetd vanuit
zichzelf kan aanbieden.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 een HangUP signaal naar
het inetd proces te sturen:inetd een HangUP Signaal
Sturen&prompt.root; kill -HUP `cat /var/run/inetd.pid`Iedere regel in het bestand met instellingen heeft
betrekking op een individuele daemon. Commentaar wordt vooraf
gegaan door een #. De opmaak van
/etc/inetd.conf is als volgt:service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]]
user[:group][/login-class]
server-program
server-program-argumentsEen voorbeeldregel voor de ftpd
daemon met IPv4: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 connectie gebaseerde TCP
daemons, terwijl dgram wordt gebruikt
voor daemons die gebruik maken van het
UDP transport protocol.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]] 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 child
daemon spawnt voor iedere nieuwe socket.Het maximun aantal child daemons dat
inetd mag spawnen 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.Naast is er nog een andere
optie waarmee het maximale aantal verbindingen van een
bepaalde plaats naar een daemon ingesteld kan worden.
Dat kan met
. Een
waarde van tien betekent hier dat er van iedere IP adres
maximaal tien verbindingen naar daemon tot stand gebracht
kunnen worden. Dit kan gebruikt worden om bedoeld en
onbedoeld bronnengebruik van een machine te
voorkomen.In dit veld is of
verplicht.
en
zijn
optioneel.Een stream-type multi-threaded daemon zonder
or
limieten is eenvoudigweg:
nowait.Dezelfde daemon met een maximale limiet van tien
daemons zou zijn: nowait/10.Dezelfde instellingen met een limiet van twintig
connecties per IP adres per minuut en een totaal maximum
van tien child daemons zou zijn:
nowait/10/20.Deze opties worden allemaal gebruikt door de
standaardinstelling voor de
fingerd daemon:finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -suserDit 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 het beveiligingsprofiel dat bij de
installatie is gekozen, kunnen veel van de daemons van
inetd standaard ingeschakeld zijn.
Het is verstandig een daemon die niet noodzakelijk is uit te
schakelen! Dat kan door een # voor de daemon
in /etc/inetd.conf en dan een hangup signaal naar inetd te
sturen. Sommige daemons, zoals
fingerd, zijn wellicht helemaal niet
gewenst omdat ze een aanvaller te veel informatie geven.Sommige daemons zijn zich niet echt bewust van beveiliging
en hebben lange of niet bestaande time-outs 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
en
te gebruiken.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 (ident,
identd) en is tot op een bepaald
niveau instelbaar.Er staat meer informatie 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 diskruimte 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, CDROM 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 clients. De client
benadert de gegevens die op een server machine zijn opgeslagen
via een netwerk. Om dit mogelijk te maken moeten er een aantal
processen ingesteld en gestart worden.In &os; 4.X is het hulpprogramma
portmap gebruikt in plaats van
rpcbind. Dus in &os; 4.X
moet elke rpcbind vervangen
worden door portmap in de
volgende voorbeelden.Op de server moeten de volgende daemons draaien:NFSserverfileserver
- unix clients
+ UNIX clientsrpcbindportmapmountdnfsdDaemonBeschrijvingnfsdDe NFS daemon die verzoeken van
de NFS clients afhandelt.mountdDe NFS mountdaemon die
doorgestuurde verzoeken van &man.nfsd.8;
uitvoert.rpcbindDeze daemon geeft NFS
clients aan welke poort de NFS
server gebruikt.Op de client kan ook een daemon draaien:
nfsiod. De
nfsiod daemon 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 client 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:NFSexport voorbeeldenHet 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 mountpunten zijn. De submap wordt dan niet
feitelijk gemount, maar de client mount dan alleen de submappen
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 clients 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 client toegang te geven tot een geëxporteerd
bestandssysteem, moet die client daar rechten voor hebben. De
client 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
valide:># 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 client
wordt aangegeven worden behandeld als een enkele host. Dit
beperkt hoe bestandssysteem geëxporteerd kunnen worden,
maar dat blijkt meestal geen probleem.Het volgende voorbeeld is een valide exportlijst waar
/usr en /exports
lokale bestandssystemen zijn:# Export src and ports to client01 and client02, but only
# client01 has root privileges on it
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# The client machines have root and can mount anywhere
# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=root client01 client02
/exports/obj -roAls /etc/exports wordt aangepast, moet
mountd herstart worden om de
wijzigingen actief te maken. Dat kan door een HUP signaal naar
het mountd proces te sturen:&prompt.root; kill -HUP `cat /var/run/mountd.pid`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 hezelfde resultaat te
hebben.Op de NFS server:&prompt.root; rpcbind
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -rOp de NFS client:&prompt.root; nfsiod -n 4Nu is alles klaar om feitelijk het netwerkbestandssysteem
te mounten. In de volgende voorbeelden is de naam van de
server server en de naam van de client is
client. Om een netwerkbestandssysteem
slechts tijdelijk te mounten of om alleen te testen, kan een
commando als het onderstaande als root op
de client uitgevoerd worden:NFSmounten&prompt.root; mount server:/home /mntHiermee wordt de map /home op de
server gemount op /mnt op de client. Als
alles juist is ingesteld, zijn nu in /mnt
op de client de bestanden van de server zichtbaar.Om een netwerkbestandssysteem iedere keer als een computer
opstart te mounten, kan het bestandssysteem worden toegevoegd
aan /etc/fstab file:server:/home /mnt nfs rw 0 0Alle beschikbare opties staan in &man.fstab.5;.Mogelijkheden voor GebruikNFS is voor veel doeleinden in te
zetten. Een aantal voorbeelden:NFSgebruikEen aantal machines een CDROM 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 Mounten met
amdamdautomatic mounter daemon&man.amd.8; (de automatic mounter daemon) mount automatisch
netwerkbestandssystemen als er aan een bestand of map binnen
dat bestandssysteem wordt gerefereerd.
amd unmount ook bestandssystemen die
een bepaalde tijd niet gebruikt worden. Het gebruikt van
amd is een aantrekkelijk en
eenvoudig alternatief ten opzichte van permanente mounts,
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 netwerkmount op
en mount die automatisch. /net wordt
gebruikt om een geëxporteerd bestandssysteem van een
IP adres te mounten, terwijl /host wordt
gebruikt om een geëxporteerd bestandssysteem van een
hostnaam te mounten.Het raadplegen van een bestand in
/host/foobar/usr geeft
amd aan dat die moet proberen de
/usr export op de host
foobar te mounten.Een Export Mounten met
amdDe beschikbare mounts van een netwerkhost zijn te
bekijken met showmount. Om bijvoorbeeld
de mounts 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 te mounten.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 gemount 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 high-performance werkstations, zoals van Silicon
Graphics, Inc. en Sun Microsystems, Inc. De NFS mount werkt
prima en wellicht lukken een aantal acties ook, maar dan ineens
lijkt de server niet meer te reageren voor de client, hoewel
verzoeken van en naar andere systemen gewoon verwerkt worden.
Dit gebeurt op een clientsysteem, of de client nu het &os
systeem is of het werkstation. Op veel systemen is er geen
manier om de client netjes af te sluiten als dit probleem is
ontstaan. Vaak is de enige mogelijkheid een reset van de
client, 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
mounten door de client. Als het &os; systeem de
client is, dan dient het NFS
bestandssysteem gemount te worden met de optie
. Deze opties kunnen het vierde
veld zijn in een regel in fstab voor
automatische mounts en bij handmatige mounts met &man.mount.8;
kan de parameter gebruikt worden.Soms wordt een ander probleem voor dit probleem versleten,
als servers en clients 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 high-performance werkstation en
freebox is de host(interface)naam van een &os;
systeem met een Ehernet adapter die mindere prestaties levert.
/sharedfs wordt het geëxporteerde
NFS bestandssysteem (zie &man.exports.5;) en
/project wordt het mountpunt voor het
geëxporteerde bestandssysteem op de client.
In sommige gevallen kunnen applicaties beter draaien als
extra opties als of
en gebruikt
worden.Voorbeelden voor het &os; systeem
(freebox) als de client in
/etc/fstab op
freebox:fastws:/sharedfs /project nfs rw,-r=1024 0 0Als een handmatig mountcommando 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 mountcommando 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 Ethernet pakketten, hoewel het hoger in
de code nog steeds één eenheid is, en wordt
ontvangen, samengevoegd en bevestigd
als een eenheid. De high-performance 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 time-out 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 Ethernet
pakket dat compleet is aangekomen bevestigd kan worden, zodat
de deadlock niet ontstaat.Toch kan een PC systeem nog wel overrompeld worden als
high-performance 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;,
+ 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 client/server systeem waarmee
een groep machines binnen een NIS domein een gezamenlijke set
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 client is:rpcbindportmapTermBeschrijvingNIS domeinnaamEen NIS master server en al zijn clients
(inclusief zijn slave master) hebben een NIS
domeinnaan. 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
een NIS server niet draaien en kan een machine ook geen
NIS client zijn (In &os; 4.X wordt
portmap in plaats van
rpcbind).ypbindVerbindt een NIS client 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
client-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 server proces zelf. Als &man.ypserv.8; stopt,
dan kan de server niet langer reageren op NIS
verzoeken (hopelijk is er dan een slave server 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 server proces
herstarten (of zelfs de hele server) of het
ypbind proces op de
client.rpc.yppasswddNog een proces dat alleen op NIS master servers
hoort te draaien. Dit is een daemon waarbij NIS
clients hun NIS wachtwoorden kunnen wijzigen. Als deze
daemon niet draait, moeten gebruikers aanmelden op de
NIS master server en daar hun wachtwoord wijzigen.Hoe Werkt Het?Er zijn drie typen hosts in een NIS omgeving: master
servers, slave servers en clients. Servers zijn het centrale
depot voor instellingen voor een host. Master servers
bevatten de geauthoriseerd kopie van die informatie, terwijl
slave servers die informatie spiegelen voor redundantie.
Clients 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 client
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 MachinesNISmaster serverEen NIS master server. Deze
server onderhoudt, analoog aan een &windowsnt; primary
domain controller, de bestanden die door alle NIS clients
gebruikt worden. De bestanden
passwd, group
en andere bestanden die door de NIS clients gebruikt
worden staan op de master server.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.NISslave serverNIS slave servers. Deze zijn
te vergelijken met &windowsnt; backup domain controllers.
NIS slave servers beheren een kopie van de bestanden met
gegevens op de NIS master. NIS slave servers bieden
redundantie, die nodig is in belangrijke omgevingen. Ze
helpen ook om de belasting te verdelen met de master
server: NIS client maken altijd een verbinding met de NIS
server die het eerst reageert en dat geldt ook voor
antwoorden van slave servers.NISclientNIS clients. NIS clients
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.Dit onderdeel veronderstelt dat &os; 3.3 of later
draait. De nu volgende instructies werken
waarschijnlijk voor iedere versie van
&os; hoger dan 3.0, maar dat hoeft niet waar te zijn.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.5Client machinecli[1-11]10.0.0.[6-17]Andere client 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 client 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 domainnaam 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
clients van de server. Als een client 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 clients.NIS ServersDe hoofdversies van alle NIS informatie staan opgeslagen
op één machine die de NIS master server heet.
De databases waarin de informatie wordt opgeslagen heten NIS
maps. In &os; worden die maps opgeslagen in
/var/yp/[domainnaam] 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 set maps.In NIS master en slave servers worden alle NIS verzoeken
door de ypserv daemon afgehandeld.
ypserv is verantwoordelijk voor het
ontvangen van inkomende verzoeken van NIS clients, het
vertalen van de gevraagde domeinnaam en mapnaam naar een pad
naar het corresponderende databasebestand en het terugsturen
van de database naar de client.Een NIS Master Server 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 domainnaam in op
test-domain bij het instellen van
het netwerk (bij het opstarten).nis_server_enable="YES"
Dit geeft &os; aan de NIS server processen te starten
als het netwerk de volgende keer wordt
opgestart.nis_yppasswdd_enable="YES"
Dit schakelt de dameon rpc.yppasswdd
in die, zoals al eerder aangegeven, clients toestaat
om hun NIS wachtwoord vanaf een client machine te
wijzigen.Afhankelijk van de inrichting van NIS, kunnen er nog
meer instellingen nodig zijn. In het onderdeel NIS Servers die
ook NIS Clients Zijn staan meer details.Nu hoeft alleen /etc/netstart als
superuser uitgevoerd te worden. Dat stelt alles in met
gebruikmaking van de waarden uit
/etc/rc.conf.NIS Maps InitialiserenNISmapsDie NIS maps 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 maps 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 clients terecht komen
(bijvoorbeeld root en alle andere UID
0 (superuser) 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 maps
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 maps voor een NIS
master worden gemaakt, wordt de optie
meegegeven aan
ypinit. Aangenomen dat de voorgaande
stappen zijn uitgevoerd, kunnen de NIS maps 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 maps..]
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 slave server 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 Slave Server OpzettenNISslave serverHet opzetten van een NIS slave server is nog
makkelijker dan het opzetten van de master. Dit kan door
aan te melden op de slave server en net als voor de master
server /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 meegegven 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 master server maps staan. Die
moeten bijgewerkt blijven. De volgende regel in
/etc/crontab op de slave servers
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 maps met de maps op de master server te
synchroniseren. Hoewel dit niet verplicht is, omdat de
master server probeert veranderingen aan de NIS maps 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 maps niet altijd
compleet afgehandeld hoeft te worden.Nu kan ook op de slave server het commando
/etc/netstart uitgevoerd worden, dat op
zijn beurt de NIS server start.NIS ClientsEen NIS client maakt wat heet een verbinding (binding)
met een NIS server met de ypbind daemon.
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 client 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 Client OpzettenNISclient instellenHet opzetten van een &os; machine als NIS client 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 password map van de NIS server toegang gegeven.
Er zijn veel manieren om de NIS client in te stellen
door deze regel te veranderen. In het onderdeel
netgroups
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 maps
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 tcpwrapper van Wietse
Venema. Daardoor kan een beheerder de instellingenbestanden
van tcpwrapper gebruiken voor
toegangsbeperking in plaats van
/var/yp/securenets.Hoewel beide methoden van toegangscontrole enige vorm van
beveiliging bieden, zijn ze net als de privileged port test
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 clients 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
client aan te passen, zorgen andere problemen voor het
noodgedwongen niet langer kunnen gebruiker van NIS voor die
client 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 tcpwrapper
pakket leidt tot langere wachttijden op de NIS server. De
extra vertraging kan net lang genoeg zijn om een timeout te
veroorzaken in clientprogramma's, in het bijzonder als het
netwerk druk is of de NIS server traag is. Als een of meer
clients last hebben van dat symptoom, dan is het verstandig
om de clientsystemen in kwestie NIS slave server te maken en
naar zichzelf te laten wijzen.Aanmelden voor Bepaalde Gebruiker 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
client 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 GebruikennetgroupsDe 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
netgroups. 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 netgroup aan te maken die zowel gebruikers
als andere netgroups bevat.Netgroups 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 netgroups 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 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 produktiegase. Murphy was tenslotte
een optimist.Het gebruik van netgroups 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 netgroups te worden ingesteld. Als er een nieuwe gebruiker
wordt toegevoegd, dan hoeft die alleen maar aan de juiste
netgroups 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 map 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 netgroups: 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 netgroups. 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 netgroup
hoort.Het NIS domein voor de account. Er kunnen accounts
uit andere NIS domeinen geïmporteerd worden in een
netgroup als een beheerder zo ongelukkig is meerdere
NIS domeinen te hebben.Al deze velden kunnen jokerkarakters bevatten. Details
daarover staan in &man.netgroup.5;.netgroupsDe naam van een netgroup 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 netgroups is een makkelijke manier om onderscheid
te kunnen maken tussen gebruikers-, machine- en
netgroupnamen.Sommige NIS clients (andere dan die op &os; draaien)
kunnen niet omgaan met netgroups met veel leden. Sommige
oudere versies van &sunos; gaan bijvoorbeeld lastig doen als
een netgroup meer dan 15 leden heeft.
Dit kan omzeild worden door meerdere sub-netgroups te maken
met 15 gebruikers of minder en een echte netgroup die de
sub-netgroups 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 netgroup 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 maps gemaakt:
netgroup,
netgroup.byhost en
netgroup.byuser. Met &man.ypcat.1; kan
bekeken worden op de nieuwe NIS maps 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
netgroups zijn ingesteld. Het derde commando kan gebruikt
worden om een lijst van netgroups voor een gebruiker op te
vragen.Het instellen van de client 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 netgroup
IT_MW geïmporteerd in de wachtwoord
database van de host war, zodat alleen die
gebruikers 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
map 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
junior beheerders 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 netgroup 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 netgroups in netgroups op
te nemen. Het is mogelijk om rol-gebaseerde netgroups te
maken. Er kan bijvoorbeeld een netgroup
BIGSRV gemaakt worden om het aanmelden op de
belangrijke servers te beperken en er kan een andere netgroup
SMALLSRV voor de minder belangrijke servers
zijn en een derde netgroup met de naam
USERBOX voor de normale werkstations. Al
die netgroups kunnen de netgroups bevatten die op die machines
mogen aanmelden. De nieuwe regels in de NIS map 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 wel en wie niet mogen
aanmelden.Daarom is het ook mogelijk om via machine-specifieke
netgroups 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
netgroup 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 netgroup 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 map te wijzigen. Hieronder staat
een voorbeeld van een mogelijke netgroup 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)
#
# Machine-gebaseerde netgroups
# 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 map met de database
rapportagehulpmiddelen 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 machine-gebaseerde netgroups. Als
er tientallen of zelfs honderden gelijke machines voor
bijvoorbeeld studentenruimtes worden uitgerold, dan is het
verstandiger rol-gebaseerde netgroups te gebruiken in plaats
van machine-gebaseerde netgroups om de grootte van de NIS map
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 maps 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 maps
gehouden worden. Het is niet handig als de
beheeraccounts en wachtwoorden naar machines waarop
gebruikers 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 clients. 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 clientcalls aanwezig is, deze
versie van ypserv geen v1 map
transferverzoeken 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 Clients ZijnHet is belangrijk voorzichtig om te gaan met het draaien
van ypserv in een multi-server
domein waar de server machines ook NIS clients 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 clients 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 client 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 clients die ook
DES gebruiken ondersteund worden. Als er bijvoorbeeld
&solaris; NIS clients in een netwerk zijn, dan moet er vrijwel
zeker gebruik gemaakt worden van met DES gecodeerde
wachtwoorden.Van welk formaat clients 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 clients 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 client, 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; gebruikt de ISC (Internet Software
Consortium) DHCP implementatie, dus alle
implementatie-specifieke informatie die hier wordt gegeven is
bedoeld voor de ISC distributie.Wat Behandeld WordtIn dit onderdeel worden de client- en servercomponenten van
het ISC DHCP systeem beschreven. Het programma voor de client,
dhclient, zit standaard in &os; en de server
is beschrikbaar via de net/isc-dhcp3-server port. 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 client, wordt
uitgevoerd op een clientmachine, 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 client 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 clients die niet langer met
het netwerk verbonden zijn (stale) automatisch weer ingenomen
worden.DHCP clients kunnen veel informatie van de server krijgen.
Er staat een uitputtende lijst in &man.dhcp-options.5;.&os; Integratie&os; integreert de ISC DHCP client
dhclient volledig. Er is ondersteuning voor
de DHCP client 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 eerste vraag:
- Wil je proberen deze interface met DHCP in te
+ 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 (pseudo-device
bpf onder &os; 4.X) 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:dhcp_program="/sbin/dhclient"
dhcp_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 client 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 client 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 suite.Het servergedeelte van de suite is geen
standaardonderdeel 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
(pseudo-device bpf onder &os; 4.X)
aan het bestand met kernelinstellingen toegegvoegd 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
wijzgingen worden gemaakt.De DHCP Server InstellenDHCPdhcpd.confdhcpd.conf is opgebouwd uit
declaraties over subnetten en hosts en is wellicht het meest
eenvoudig te beschijven 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 clients 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 client moet
gebruiken.Het netmasker dat aan de clients wordt
voorgeschreven.Een client 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 client 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 clients. Alle IP adressen tussen de
aangegeven adressen en die adressen zelf worden aan
clients uitgegeven.Geeft de default gateway aan die aan de clients
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.Als dhcpd.conf is ingesteld, kan de
server met het volgende commando gestart worden:&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 clients kan leveren. Het
bestand moet alle informatie bevatten die aan clients
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 client 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 Domeinnaamsysteem (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 bijbehorende IP adres van de FTP
machine. Het tegenovergestelde kan ook gebeuren. Een
zoekopdracht voor een IP adres kan de bijbehorende hostnaam
opleveren. Het is niet nodig om een nameserver te draaien om
op een systeem zoekopdrachten met DNS te maken.DNSDNS wordt op internet onderhouden door een complex systeem
van autoritaire root nameservers en andere nameservers met een
kleinere scope die domeininformatie hosten en cachen.In dit document wordt BIND 8.x beschreven, de stabiele
versie die in &os; wordt gebruikt. BIND 9.x kan op &os;
geïnstaleerd worden met de net/bind9 port.RFC1034 and RFC1035 schrijven het DNS protocol voor.Op dit moment wordt BIND beheerd door het Internet Software
Consortium .TerminologieVoor het begrip van dit document dienen aan aantal termen
begrepen te worden.resolverreverse DNSroot zoneTermDefinitieVoorwaartse DNSHet koppelen van hostnamen aan IP
adressen;Herkomst (origin)Verwijst naar het domein dat door een bepaald
zonebestand wordt gedekt;named, BIND,
nameserverVaak gebruikte namen voor het BIND nameserver
pakket in &os;;ResolverEen systeemproces waarmee een machine
zoekopdrachten om zoneinformatie aan een nameserver
stelt;Reverse DNSHet tegenovergestelde van voorwaartse DNS. Het
koppelen van IP adressen aan hostnamen;Root zoneHet begin van de internet zonehiërarchie.
Alle zones vallen onder de root zone, 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 root zone;org. is een zone onder de root
zone;example.org. is een
zone onder het zone org.;foo.example.org. is
een subdomein onder de zone example.org.;1.2.3.in-addr.arpa is een zone waarin
alle IP adressen die onder de IP ruimte 3.2.1.* vallen.
Zoals te zien is staat het meer specifieke deel van een
hostnaam aan de linkerkant. Zo is example.org. bijvoorbeeld meer
specifiek dan org. en is org.
meer specifiek van de root zone. De indeling van ieder deel
van een hostnaam lijkt veel op een bestandssysteem: de map
/dev valt onder de root, enzovoort.Redenen om een Nameserver te DraaienNameservers bestaan in het algemeen in twee smaken: een
authoritative namserver en een caching namserver.Er is een authoritative namserver nodig als:het nodig is DNS informatie aan te bieden aan de wereld
om met autoriteit (authoritatively) 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 reverse DNS entries nodig heeft (IP
naar hostnaam);een backup namserver, die slave wordt genoemd, moet
antwoorden op verzoeken als de primaire down of niet
toegankelijk is.Er is een caching namserver nodig als:een lokale DNS server kan cachen en wellicht sneller
kan antwoorden dan een namserver die verder weg
staat;het wenselijk is om het totale netwerkverkeer te
reduceren. Er is ooit vastgesteld dat DNS verkeer 5% of
meer van het totale verkeer op internet uitmaakt.Als er een verzoek wordt gedaan voor www.FreeBSD.org, dan doet de resolver
meestal een verzoek bij de nameserver van de ISP die de uplink
levert en ontvangt daarop een antwoord. Met een lokale,
caching namserver hoeft het verzoek maar één
keer door de caching nameserver 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 BIND daemon in &os;
named.BestandBeschrijvingnamedde BIND daemonndcname daemon beheerprogramma/etc/namedbmap waar BIND zoneinformatie staat/etc/namedb/named.confdaemon instellingenbestandZonebestanden staat meestal binnen de map
/etc/namedb en bevatten de DNS zone
informatie die de namserver aanbiedt.BIND StartenBINDstartenOmdat BIND standaard wordt geïnstalleerd, is het
instellen relatief eenvoudig.Om de named daemon bij het
booten te laten starten kan de volgende regel in
/etc/rc.conf gezet worden:named_enable="YES"Om na het instellen de daemon handmatig te starten:&prompt.root; ndc startInstellingenbestandenBINDinstellingenbestanden/secondary>
make-localhost GebruikenHet volgende commando dient uitgevoerd te worden om het
bestand voor de lokale reverse DNS zone in
/etc/namedb/localhost.rev op de juiste
wijze aan te maken:&prompt.root; cd /etc/namedb
&prompt.root; sh make-localhost/etc/namedb/named.conf// $FreeBSD$
//
// In de hulppagina named(8) zijn meer details te vinden. Voor het
// opzetten van een primaire server is begrip van de werking van DNS
// noodzakelijk. Zelfs eenvoudige fouten kunnen de werking verstoren
// of veel onnodig verkeer veroorzaken.
options {
directory "/etc/namedb";
// Als toevoeging op de "forwarders" clausule kan de namserver 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 DNS verkeer op internet vermindert.
/*
forwarders {
127.0.0.1;
};
*/Zoals al in het commentaar staat kan het gebruik van een
cache in de uplink met forwarders
ingeschakeld worden. In normale omstandigheden maakt een
namserver recursief verzoeken tot er een antwoord komt waar
de server naar op zoek is. Door de bovenstaande optie in te
schakelen wordt eerst bij de namserver die is opgegeven
gevraagd, waardoor er gebruik gemaakt kan worden van de
cache van die server. Als die namserver een drukke, snelle
namserver is, kan het erg de moeite waard zijn van deze
optie gebruik te maken.127.0.0.1 werkt hier
niet. Dat IP adres dient gewijzigd te
worden naar een werkende namserver in de uplink./*
* Als er een firewall tussen een host en namservers staat waarmee
* gesproken moet worden, dan dient het commentaar voor het
* query-source hieronder verwijderd te worden. In eerdere versies van
* BIND werden verzoeken altijd via poort 53 gedaan, maar vanaf
* BIND 8.1 wordt een poort zonder privileges gebruikt.
*/
// query-source address * port 53;
/*
* Als de namserver in een sandbox draait, kan het wenselijk zijn om
* een andere lokatie voor het dumpbestand in te geven.
*/
// dump-file "s/named_dump.db";
};
// Opmerking: het volgende wordt in een latere release ondersteund.
/*
host { any; } {
topology {
127.0.0.0/8;
};
};
*/
// Het opzetten van een secondary is veel eenvoudiger en dat wordt
// hieronder ruweg beschreven.
//
// Als er een lokale nameserver wordt gebruikt, dan dient niet
// vergeten te worden om 127.0.0.1 in /etc/resolv.conf te zetten zodat
// die eerst bevraagd wordt. Het is ook belangrijk wijzigingen aan te
// brengen in /etc/rc.conf om named te starten.
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
zone
"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.INT" {
type master;
file "localhost.rev";
};
// NB: De IP adressen hieronder zijn bedoeld als voorbeeld en dienen
// niet gebruikt te worden!
//
// Voorbeeld secondary instellingen. Het kan handig zijn om tenminste
// secondary te worden voor de zone waar de host onderdeel van
// uitmaakt. Bij netwerkbeheerders kan nagevraagd worden welke server
// de primaire server is.
//
// De reverse lookup zone (IN-ADDR.ARPA) mag nooit vergeten worden! Dat
// zijn de eerste bytes van het respectievelijke IP adres in omgekeerde
// volgorde met daarachter ".IN-ADDR.ARPA".
//
// Het is echter van groot belang om de werking van DNS en BIND te
// begrijpen voordat er een primaire zone wordt opgeset. Er zijn
// nogal wat onverwachte valkuiten. Het opzetten van een secondary is
// veel eenvoudiger.
//
// NB: Het wordt afgeraden de onderstaande voorbeelden actief te maken.
// Er dienen bestaande namen en adressen gebruikt te worden.
//
// BELANGRIJK!!! &os; draait BIND in een zandbak (zie named_flags in
// rc.conf). In de map waarin de secundaire zones staat moet
// geschreven kunnen worden door BIND. Dat kan als volgt:
//
// mkdir /etc/namedb/s
// chown bind:bind /etc/namedb/s
// chmod 750 /etc/namedb/sMeer informatie over het draaien van BIND in een zandbak
staat in named
in een Zandbak Draaien.
/*
zone "example.com" {
type slave;
file "s/example.com.bak";
masters {
192.168.1.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "s/0.168.192.in-addr.arpa.bak";
masters {
192.168.1.1;
};
};
*/De bovenstaande voorbeelden komen uit
named.conf en zijn voorbeelden van
instellingen voor een slave, voor een forward en reverse
zone.Voor iedere nieuwe zone die wordt aangeboden dient een
nieuwe instelling voor de zone aan
named.conf toegevoegd te worden.De meest eenvoudige instelling voor de zone example.org kan er als volgt
uitzien:zone "example.org" {
type master;
file "example.org";
};De zone is een master, dat geeft de instelling
aan, waarvan de zoneinformatie in
/etc/namedb/example.org staat, wat de
instelling aangeeft.zone "example.org" {
type slave;
file "example.org";
};In het geval van de slave wordt de zoneinformatie
voor een zone getransporteerd van de master namserver en
opgeslagen in het ingestelde bestand. Als een master server
het niet meer doet of niet bereikbaar is, dan heeft de slave
server de getransporteerde zoneinformatie nog en kan die
aanbieden.ZonebestandenEen voorbeeldbestand voor een master zone voor example.org (als bestand
/etc/namedb/example.org):$TTL 3600
example.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
; DNS Servers
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
; Machinenamen
localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30
; Aliases
www IN CNAME @
; MX Record
@ IN MX 10 mail.example.org.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 zoneautoriteit (start of
authority)NSeen bevoegde (authoritative) name
serverAeen hostadresCNAMEde canonieke (canonical) naam voor een
aliasMXmail exchangerPTReen domeinnaam pointer (gebruikt in
reverse DNS)
example.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 dayexample.org.de domeinnaam, ook de oorsprong voor dit
zonebestand.ns1.example.org.de primaire/bevoegde namserver voor deze
zone.admin.example.org.de persoon die verantwoordelijk is voor
deze zone, e-mailadres met @ vervangen.
admin@example.org wordt
admin.example.org.5het 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. 2001041002 betekent
dan dat het voor het laatst is aangepast op
10–04–2001. De laatste
02 betekent dat het zonebestand een
aantal keer is aangepast op die dag. Het serienummer
is belangrijk omdat het slave nameservers aangeeft dat
een zone is bijgewerkt.
@ IN NS ns1.example.org.Hierboven staat een NS regel. Voor iedere nameserver
die bevoegde antwoorden moet geven voor de zone hoort er
zo'n regel te zijn. De @ betekent
hetzelfde als example.org.
Een @ vertaalt naar de oorsprong.
localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30Een A record geeft een machinenaam aan. Hierboven is te
zien dat ns1.example.org zou
resolven naar 3.2.1.2.
Nogmaals, het symbool voor oorsprong, @,
wordt hier gebruikt en dus zou example.org resolven naar
3.2.1.30.
www IN CNAME @Een canoniek name record wordt meestal gebruikt voor het
geven van aliasen aan een machine. In het voorbeeld is
www een alias naar de machine die gelijk is
aan de oorsprong, example.org (3.2.1.30). 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 3, 2 en 1. Een mailserver die probeert mail
af te leveren voor example.org probeert dat eerst
bij de MX met de hoogste prioriteit, daarna de op een na
hoogste, enzovoort, totdat de mail afgeleverd kan
worden.Voor in-addr.arpa zonebestanden (reverse DNS) wordt
dezelfde opmaak gebruikt, maar dan met PTR regels in plaats
van A of CNAME.$TTL 3600
1.2.3.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
3600 ) ; Minimum
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
10 IN PTR mail.example.org.
30 IN PTR example.org.Dit bestand geeft de juiste IP adressen voor hostnamen
in het voorbeelddomein hierboven.Caching NameserverBINDcaching namserverEen caching namserver is een namserver 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 namserver zonder zones toe te voegen.named in een Zandbak
DraaienBINDin een zandbak draaienchrootAls extra beveiligingsmaatregel is het wellicht wenselijk
om &man.named.8; als een gebruiker zonder privileges te draaien
en de instellingen zo te maken dat die &man.chroot.8; in een
zandbakmap draait. Hierdoor is alles buiten de zandbak niet
toegankelijk voor de named daemon.
Hierdoor wordt de schade die aangericht kan worden beperkt in
het geval dat named wordt gehackt.
Standaard kent &os; een gebruiker en groep
bind die voor dit doel bestemd
zijn.Er wordt ook wel gesteld dat het verstandiger is om
named met
chroot te draaien, maar in plaats daarvan
in een &man.jail.8; te draaien. Dit wordt hier niet
beschreven.Omdat named niet in staat is
ook maar iets buiten de zankbak te raadplegen (zoals gedeelde
bibliotheken, log sockets, enzovoort), moeten er een aantal
stappen gevolgd worden om named goed
te laten draaien. In de onderstaande controlelijst wordt
aangenomen dat het pad naar de zandbak
/etc/namedb is en dat er geen wijzigingen
gemaakt zijn aan de inhoud van die map. De volgende stappen
dienen als root uitgevoerd te
worden:Maak alle mappen die named
verwacht:&prompt.root; cd /etc/namedb
&prompt.root; mkdir -p bin dev etc var/tmp var/run master slave
&prompt.root; chown bind:bind slave var/*named hoeft alleen in
deze mappen te schrijven, dus krijgt het alleen daar
rechten.Herschik en maak de basiszone en stel het bestand met
instellingen in:&prompt.root; cp /etc/localtime etc
&prompt.root; mv named.conf etc && ln -sf etc/named.conf
&prompt.root; mv named.root master
&prompt.root; sh make-localhost && mv localhost.rev localhost-v6.rev master
&prompt.root; cat > master/named.localhost
$ORIGIN localhost.
$TTL 6h
@ IN SOA localhost. postmaster.localhost. (
1 ; serial
3600 ; refresh
1800 ; retry
604800 ; expiration
3600 ) ; minimum
IN NS localhost.
IN A 127.0.0.1
^DHierdoor kan named de
correcte tijd melden aan &man.syslogd.8;.syslog
- logs
+ logboekbestanden
- DNS
+ namedAls er een oudere versie dan &os; 4.9-RELEASE draait,
dient een statisch gelinkte kopie van
named-xfer gebouwd te worden en
naar de zankbak gekopieerd te worden:&prompt.root; cd /usr/src/lib/libisc
&prompt.root; make cleandir && make cleandir && make depend && make all
&prompt.root; cd /usr/src/lib/libbind
&prompt.root; make cleandir && make cleandir && make depend && make all
&prompt.root; cd /usr/src/libexec/named-xfer
&prompt.root; make cleandir && make cleandir && make depend && make NOSHARED=yes all
&prompt.root; cp named-xfer /etc/namedb/bin && chmod 555 /etc/namedb/bin/named-xferNadat de statisch gelinkte
named-xfer is geïnstalleerd, is het
nodig wat op te ruimen om te voorkomen dat er kopieen van
bibliotheken of programma's in de boomstructuur met
broncode achterblijven:&prompt.root; cd /usr/src/lib/libisc
&prompt.root; make cleandir
&prompt.root; cd /usr/src/lib/libbind
&prompt.root; make cleandir
&prompt.root; cd /usr/src/libexec/named-xfer
&prompt.root; make cleandirDeze stap gaat wel eens verkeerd. Als dit gebeurt,
kan het volgende commando uitgevoerd worden:&prompt.root; cd /usr/src && make cleandir && make cleandirDaarnaast kan de /usr/obj
structuur verwijderd worden:&prompt.root; rm -fr /usr/obj && mkdir /usr/objHiermee wordt aanwezige rommel uit de
broncodestructuur verwijderd en kunnen de hierboven
beschreven stappen opnieuw uitgevoerd worden.Als &os; version 4.9-RELEASE of later wordt gebruikt,
dan is named-xfer in
/usr/libexec standaard statisch
gelinkt en kan er simpelweg met &man.cp.1; een kopie naar
de zandbak gemaakt worden.Maak een dev/null die zichtbaar is
voor named en waar
named kan schrijven:&prompt.root; cd /etc/namedb/dev && mknod null c 2 2
&prompt.root; chmod 666 nullSymlink /var/run/ndc naar
/etc/namedb/var/run/ndc:&prompt.root; ln -sf /etc/namedb/var/run/ndc /var/run/ndcHiermee wordt voorkomen dat er iedere keer als
&man.ndc.8; wordt uitgevoerd de optie
meegegeven moet worden. Omdat de inhoud van
/var/run bij het booten wordt
verwijderd, kan het wenselijk zijn dit commando aan de
&man.crontab.5; van root toe te
voegen met de optie .syslog
- logboeken
+ logboekbestandennamedStel &man.syslogd.8; in om een extra
log socket te maken waar
named heen kan schrijven. Dit
kan door -l /etc/namedb/dev/log toe te
voegen aan de syslogd_flags variable in
/etc/rc.conf.chrootMaak de instelling om named
te starten en zich met chroot in een
zandbak te plaatsen met de volgende aanpassing in
/etc/rc.conf:named_enable="YES"
named_flags="-u bind -g bind -t /etc/namedb /etc/named.conf"In het instellingenbestand
/etc/named.conf staan
volledige paden relatief aan de
zandbak. Het bestand in de regel hierboven
is dus feitelijk
/etc/namedb/etc/named.conf.Nu dient /etc/namedb/etc/named.conf
gewijzigd te worden, zodat named
weet welke zones geladen moeten worden en waar ze staan. Nu
volgt een van commentaar voorzien voorbeeld. Alle regels
zonder commentaar wijken niet af van de opzet voor een DNS
server die niet in een zandbak draait:options {
directory "/";
named-xfer "/bin/named-xfer";
version ""; // Laat versie BIND niet zien
query-source address * port 53;
};
// ndc control socket
controls {
unix "/var/run/ndc" perm 0600 owner 0 group 0;
};
// Zones follow:
zone "localhost" IN {
type master;
file "master/named.localhost";
allow-transfer { localhost; };
notify no;
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "master/localhost.rev";
allow-transfer { localhost; };
notify no;
};
zone "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.int" {
type master;
file "master/localhost-v6.rev";
allow-transfer { localhost; };
notify no;
};
zone "." IN {
type hint;
file "master/named.root";
};
zone "private.example.net" in {
type master;
file "master/private.example.net.db";
allow-transfer { 192.168.10.0/24; };
};
zone "10.168.192.in-addr.arpa" in {
type slave;
masters { 192.168.10.2; };
file "slave/192.168.10.db";
};De opdracht directory heeft als
waarde / omdat alle bestanden die
named nodig heeft binnen die
map staan. Dit staat dus gelijk aan
/etc/namedb voor een
normale gebruiker.Geeft het volledige pad naar het uitvoerbare bestand
named-xfer (vanuit de optiek van
named). Dit is nodig omdat
named is gecompileerd om
standaard te zoeken naar named-xfer in
/usr/libexec.Geeft de bestandsnaam
(relatief aan de instelling directory
hierboven) waar named het
zonebestand voor deze zone kan vinden.Geeft de bestandsnaam
(relatief aan de instelling directory
hierboven) waar named een kopie
van het zonebestand moet schrijven nadat die succesvol van
de master server is gekopieerd. Daarom moest de eigenaar
van de map slave naar
bind gewijzigd worden in een eerdere
stap.Na het doorlopen van de hierboven beschreven stappen kan
de server herstart worden of kunnen &man.syslogd.8; herstart en
&man.named.8; gestart worden, mits de nieuwe opties voor
syslogd_flags en
named_flags zijn ingesteld. Dan draait
named in een zandbak!BeveiligingHoewel BIND de meest gebruikte implementatie van DNS is,
is er altijd nog het beveiligingsvraagstuk. Soms worden er
mogelijke en te misbruiken beveiligingsgaten gevonden.Het is verstandig om bij te blijven met CERT
beveiligingswaarschuwingen 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.ndc.8;, &man.named.8;, &man.named.conf.5;Officiële
ISC BIND pagina
BIND FAQO'Reilly
DNS en BIND 4e EditieRFC1034
- Domeinnamen - Concepten en FaciliteitenRFC1035
- Domeinnamen - Implementatie en
SpecificatieTomRhodesGeschreven door BIND9 en &os;bind9instellenHet uitbrengen van &os; 5.3 was het moment van
introductie van de BIND9
DNS server software in de distributie.
Dit betekende nieuwe beveiligingsmogelijkheden, een nieuwe
indeling van het bestandssysteem en automatische instelling van
&man.chroot.8;. Deze paragraaf bestaat uit twee delen. In het
eerste deel worden de nieuwe mogelijkheden en hun instelling
beschreven en het tweede gedeelte gaat over hulp bij het upgraden
naar &os; 5.3. Vanaf dit moment wordt er simpelweg verwezen
naar &man.named.8; in plaats van naar BIND.
Dit onderdeel slaat het beschrijven van de terminologie over,
omdat die eerder is besproken. De theorie wordt ook niet
beschreven. Het is aan te raden om die eerdere onderdelen te
lezen voor dit onderdeel.
- De bestanden met instellingen named staan
- op dit moment in De bestanden met instellingen voor
+ named staan op dit moment in /var/named/etc/namedb/ en moeten
voor gebruik aangepast worden. Daar worden de meeste
instellingen gemaakt.Een Master Zone InstellenOm een master zone in te stellen kan in /var/named/etc/namedb/ het volgende
uitgevoerd worden:&prompt.root; sh make-localhostAls alles goed is gegaan hoort er een nieuw bestand in de
master map te staan. De
bestandsnamen horen localhost.rev voor de
lokale domeinnaam te zijn en
localhost-v6.rev voor
IPv6 instellingen. Instellingen voor
standaardgebruik staan al in het instellingenbestand
named.conf file.Een Slave Zone InstellenInstellingen voor extra domeinen of subdomeinen kunnen
worden ingesteld als slave zones. In de meeste gevallen kan
- master/localhost.rev gewoon naar de
- slave map gekopieerd
- worden en aangepast worden. Als dat is gedaan, moeten de
- bestanden op de juiste wijze toegevoegd worden aan
+ het bestand master/localhost.rev gewoon
+ naar de map slave
+ gekopieerd worden en aangepast worden. Als dat is gedaan,
+ moeten de bestanden op de juiste wijze toegevoegd worden aan
named.conf, zoals in het volgende
voorbeeld voor example.com:zone "example.com" {
type slave;
file "slave/example.com";
masters {
10.0.0.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "slave/0.168.192.in-addr.arpa";
masters {
10.0.0.1;
};
};In dit voorbeeld is het master IP adres
de primaire domain server vanwaar de zones gehaald worden. Die
hoeft niet per se zelf een DNS server te
zijn.Opstarten Instellen
- Om de named daemon met het systeem te
- laten starten, hoort de volgende optie in
+ Om de named daemon met het
+ systeem te laten starten, hoort de volgende optie in
rc.conf te staan:named_enable="YES"Hoewel er nog andere mogelijkheden bestaan, is dit het
absolute minimum. In &man.rc.conf.5; staan nog meer
mogelijkheden beschreven. Als er niets in
rc.conf staat, kan
- named gestart worden vanaf de commandoregel
- met:
+ named gestart worden vanaf de
+ commandoregel:&prompt.root; /etc/rc.d/named startBIND9 BeveiligingHoewel &os; named automatisch in een
&man.chroot.8; omgeving zet, zijn er nog een aantal andere
beveiligingsmogelijkheden die kunnen helpen om mogelijke
aanvallen op de DNS dienst af te
slaan.Toegangscontrolelijsten OpvragenEen toegangscontrolelijst (acl) voor vraagstellingen kan
gebruikt worden om vraagstellingen voor zones te beperken.
De instelling gaat door een netwerk te definiëren binnen
het token acl en dan een lijst met
IP adressen aan te geven in de
instellingen voor de zone. Om domeinen toe te staan om de
voorbeeldhost te gebruiken, kan iets als het volgende
gebruikt worden:acl "example.com" {
192.168.0.0/24;
};
zone "example.com" {
type slave;
file "slave/example.com";
masters {
10.0.0.1;
};
allow-query { example.com; };
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "slave/0.168.192.in-addr.arpa";
masters {
10.0.0.1;
};
allow-query { example.com; };
};Opvragen Versie BeperkenHet opvragen van de versie van de DNS
server kan een ingang zijn voor een aanvaller, die deze
informatie kan gebruiken om te zoeken naar bekende exploits
of bugs om in te breken op de host. Er kan een vervalste
versiestring gezet worden in de sectie
options van
named.conf:options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
version "None of your business";MurrayStokelyGeschreven door Apache HTTP Serverweb serversetting upApacheOverzicht&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 softwarepackages staan op de
&os; installatiemedia. Als Apache
niet bij de oorsponkelijke installatie van &os; is
meegeïnstalleerd, dan kan dat vanuit de www/apache13 of www/apache2 port.Als Apache succesvol is
geïnstalleerd, moeten er instelingen 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 .InstellenApacheconfiguration fileHet 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 clients
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 aliasen gebruikt worden om naar
andere locaties te wijzen.Het is altijd een goed idee om back-ups 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 client webbrowsers. 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"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 Naam-gebaseerde Virtuele Hosting. Naam-gebaseerde
Virtuele Hosting gebruikt de HTTP/1.1 headers van de clients
om de hostnaam uit te zoeken. Hierdoor kunnen meerdere
domeinen hetzelfde IP adres delen.Om Apache gebruik te laten
maken van Naam-gebaseerde 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 OpenSSL bibliotheek 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
- www/apache2 port,
- waar het standaard is ingeschakeld.
+ ondersteuning is ook voor
+ Apache 2.X beschikbaar in de
+ www/apache2 port, waar
+ het standaard is ingeschakeld.
mod_perlPerlHet Apache/Perl
integratieproject brengt de volledige kracht van de Perl
programmeertaal en de Apache HTTP
Server samen. Met de
mod_perl module is het mogelijk om
Apache modules volledig in Perl te
schrijven. Daarnaast voorkomt een ingebouwde persistente
interpreter in de server de overhead van het starten van een
externe interpreter en de nadelen van het opstarten van
Perl.Als Apache nog niet is
geïnstalleerd, dan is er een versie van
Apache die
mod_perl bevat en
geïnstalleerd kan worden met de www/apache13-modperl port.PHPPHPPHP, dat staat voor PHP: Hypertext
Preprocessor, is een veelgebruikte algemene Open
Source scripttaal die bijzonder bruikbaar is voor
webontwikkeling en die ingebed kan worden in HTML. De
syntaxis is afgeleid van C, &java; en Perl en blijkt
makkelijk te leren. Het belangrijkste doel van de taal is
webontwikkelaars in staat te stellen om gemakkelijk dynamisch
samengestelde webpagina's te schrijven. Maar er kan nog veel
meer met PHP gedaan worden.PHP kan geïnstalleerd worden met de lang/php5 port.MurrayStokelyGeschreven door File Transfer Protocol (FTP)
- FTP server
+ 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.Om 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 e-mail adres
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 clients 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 -lNadat het bestand met instellingen is gewijzigd, moet er
een HangUP signaal verstuurd worden naar
inetd, zoals uitgelegd in .Nu kan aangemeld worden op de FTP server met:&prompt.user; ftp localhostBeherensyslog
- logboeken
+ logboekbestandenFTPDe 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/xferlogHet 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; clients
(Samba)Samba serverMicrosoft Windowsfile serverWindows clientsprint serverWindows clientsOverzichtSamba is een populair open
source softwarepakket dat bestands- en printdiensten voor
µsoft.windows; clients biedt. Die clients kunnen
dan ruimte op een &os; bestandssysteem gebruiken alsof het
een lokale schijf is en &os; printers gebruiken alsof het
lokale printers zijn.Samba software packages 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
package.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; clients. Het Samba
pakket 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/swatNadat het bestand met instellingen is gewijzigd, moet er
een HangUP signaal verstuurd worden naar
inetd, zoals uitgelegd in .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 de 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.netbios nameNetBIOSHiermee 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
descriptieve 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
clientgebruikers. Deze worden met de volgende instellingen
gemaakt:securityDe twee meest gebruikte mogelijkheden hier zijn
security = share en
security = user. Als de clients
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 client
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.
Clients 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 clients te authenticeren. Alle &unix;
gebruikersaccounts toegang geven vanaf &windows; clients gaat
met het volgende commando:&prompt.root; grep -v "^#" /etc/passwd | make_smbpasswd > /usr/local/private/smbpasswd
&prompt.root; chmod 600 /usr/local/private/smbpasswdIn de Samba documentatie staat
meer informatie over instellingen. Met de hier gegeven
basisuitleg moet het mogelijk zijn
Samba draaiende te krijgen.Samba StartenOm Samba in te schakelen bij het
starten van een systeem dient de volgende regel aan
/etc/rc.conf toegevoegd te worden:samba_enable="YES"Samba kan op ieder moment
gestart worden met:&prompt.root; /usr/local/etc/rc.d/samba.sh start
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.Samba bestaat feitelijk uit drie
afzonderlijke daemons. Het script
samba.sh start de daemons
nmbd en
smbd. Als de winbind name
resolution diensten 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.sh stopSamba is een complexe
softwaresuite met functionaliteit waarmee verregaande
ingratie 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 KiezenNTPchoosing serversOm 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 ontbetrouwbare 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 tijdbewaking
hardware.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 ignoreOm alleen machines op bijvoorbeeld het locale 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.pidIn &os; 4.X, dienen de
ntpd uit het bovenstaande voorbeeld
vervangen te worden door xntpd.ntpd 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
user PPP, kunnen er filter commando's
ingesteld worden in /etc/ppp/ppp.conf.
Bijboorbeeld: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 PACKET
FILTERING sectie in &man.ppp.8; en in de voorbeelden
in /usr/share/examples/ppp/.Sommige internet providers 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/.
diff --git a/nl_NL.ISO8859-1/books/handbook/pgpkeys/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
index fc1699c2f2..34ecdd1b86 100644
--- a/nl_NL.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
@@ -1,804 +1,911 @@
-
+
PGP Sleutels
- pgp keys
- Voor het geval je een ondertekening moet verifieren of een
- gecodeerde e-mail wilt versturen naar een van de beambtes
- (officers) of ontwikkelaars dan vind je hieronder
- een aantal sleutels die dat vergemakkelijken. Een complete
- sleutelring voor FreeBSD.org gebruikers kan je downloaden op
- http://www.FreeBSD.org/doc/pgpkeyring.txt.
+ pgp sleutels
+
+ In het geval een handtekening van een van de beambten of
+ ontwikkelaars gecontroleerd moet worden of er een versleutelde
+ e-mail aan ze gezonden moet worden, worden hier voor het gemak een
+ aantal sleutels weergegeven. Een complete sleutelring van FreeBSD.org gebruikers kan op de
+ volgende link gedownload worden: http://www.FreeBSD.org/doc/pgpkeyring.txt
+ .
- Beambtes
+ Beambten&a.security-officer;
&pgpkey.security-officer;
&a.core-secretary;
&pgpkey.core-secretary;
-
Leden Kernteam
-
- &a.imp;
- &pgpkey.imp;
-
-
&a.jhb;
&pgpkey.jhb;
&a.kuriyama;
&pgpkey.kuriyama;
+
+ &a.scottl;
+ &pgpkey.scottl;
+
+
+
+ &a.imp;
+ &pgpkey.imp;
+
+
+
+ &a.wes;
+ &pgpkey.wes;
+
+
&a.murray;
&pgpkey.murray;
&a.peter;
&pgpkey.peter;
-
-
- &a.wes;
- &pgpkey.wes;
- Ontwikkelaars&a.will;
&pgpkey.will;
&a.mat;
&pgpkey.mat;
&a.asami;
&pgpkey.asami;
&a.dougb;
&pgpkey.dougb;
&a.tobez;
&pgpkey.tobez;
&a.mbr;
&pgpkey.mbr;
&a.harti;
&pgpkey.harti;
&a.obraun;
&pgpkey.obraun;
&a.jmb;
&pgpkey.jmb;
&a.brueffer;
&pgpkey.brueffer;
&a.markus;
&pgpkey.markus;
&a.wilko;
&pgpkey.wilko;
+
+ &a.perky;
+ &pgpkey.perky;
+
+
&a.jon;
&pgpkey.jon;
&a.luoqi;
&pgpkey.luoqi;
&a.ache;
&pgpkey.ache;
&a.seanc;
&pgpkey.seanc;
&a.cjh;
&pgpkey.cjh;
&a.cjc;
&pgpkey.cjc;
&a.marcus;
&pgpkey.marcus;
&a.nik;
&pgpkey.nik;
&a.ceri;
&pgpkey.ceri;
&a.brooks;
&pgpkey.brooks;
+
+ &a.gnn;
+ &pgpkey.gnn;
+
+
&a.pjd;
&pgpkey.pjd;
&a.bsd;
&pgpkey.bsd;
+
+ &a.danfe;
+ &pgpkey.danfe;
+
+
&a.dd;
&pgpkey.dd;
&a.ale;
&pgpkey.ale;
&a.peadar;
&pgpkey.peadar;
&a.josef;
&pgpkey.josef;
&a.ue;
&pgpkey.ue;
&a.ru;
&pgpkey.ru;
&a.le;
&pgpkey.le;
&a.stefanf;
&pgpkey.stefanf;
&a.jedgar;
&pgpkey.jedgar;
&a.green;
&pgpkey.green;
&a.lioux;
&pgpkey.lioux;
&a.fanf;
&pgpkey.fanf;
&a.blackend;
&pgpkey.blackend;
&a.petef;
&pgpkey.petef;
&a.billf;
&pgpkey.billf;
&a.patrick;
&pgpkey.patrick;
&a.gioria;
&pgpkey.gioria;
&a.jmg;
&pgpkey.jmg;
&a.dannyboy;
&pgpkey.dannyboy;
&a.dhartmei;
&pgpkey.dhartmei;
&a.jhay;
&pgpkey.jhay;
&a.sheldonh;
&pgpkey.sheldonh;
&a.mikeh;
&pgpkey.mikeh;
+
+ &a.mheinen;
+ &pgpkey.mheinen;
+
+
+
+ &a.niels;
+ &pgpkey.niels;
+
+
&a.ghelmer;
&pgpkey.ghelmer;
&a.mux;
&pgpkey.mux;
&a.mich;
&pgpkey.mich;
&a.foxfair;
&pgpkey.foxfair;
&a.jkh;
&pgpkey.jkh;
+
+ &a.ahze;
+ &pgpkey.ahze;
+
+
&a.trevor;
&pgpkey.trevor;
&a.phk;
&pgpkey.phk;
&a.joe;
&pgpkey.joe;
&a.vkashyap;
&pgpkey.vkashyap;
&a.kris;
&pgpkey.kris;
&a.keramida;
&pgpkey.keramida;
&a.fjoe;
&pgpkey.fjoe;
&a.andreas;
&pgpkey.andreas;
+
+ &a.jkois;
+ &pgpkey.jkois;
+
+
&a.sergei;
&pgpkey.sergei;
&a.maxim;
&pgpkey.maxim;
&a.jkoshy;
&pgpkey.jkoshy;
&a.rik;
&pgpkey.rik;
&a.rushani;
&pgpkey.rushani;
&a.clement;
&pgpkey.clement;
&a.mlaier;
&pgpkey.mlaier;
&a.alex;
&pgpkey.alex;
&a.erwin;
&pgpkey.erwin;
&a.leeym;
&pgpkey.leeym;
&a.netchild;
&pgpkey.netchild;
+
+ &a.lesi;
+ &pgpkey.lesi;
+
+
+
+ &a.glewis;
+ &pgpkey.glewis;
+
+
+
+ &a.delphij;
+ &pgpkey.delphij;
+
+
&a.ijliao;
&pgpkey.ijliao;
&a.clive;
&pgpkey.clive;
+
+ &a.clsung;
+ &pgpkey.clsung;
+
+
&a.arved;
&pgpkey.arved;
-
- &a.scottl;
- &pgpkey.scottl;
+
+ &a.remko;
+ &pgpkey.remko;
&a.pav;
&pgpkey.pav;
&a.bmah;
&pgpkey.bmah;
&a.mtm;
&pgpkey.mtm;
&a.dwmalone;
&pgpkey.dwmalone;
+
+ &a.kwm;
+ &pgpkey.kwm;
+
+
&a.matusita;
&pgpkey.matusita;
&a.ken;
&pgpkey.ken;
&a.dinoex;
&pgpkey.dinoex;
&a.sanpei;
&pgpkey.sanpei;
&a.jim;
&pgpkey.jim;
&a.marcel;
&pgpkey.marcel;
+
+ &a.marck;
+ &pgpkey.marck;
+
+
&a.tmm;
&pgpkey.tmm;
&a.rich;
&pgpkey.rich;
&a.knu;
&pgpkey.knu;
&a.max;
&pgpkey.max;
&a.yoichi;
&pgpkey.yoichi;
&a.bland;
&pgpkey.bland;
&a.simon;
&pgpkey.simon;
&a.anders;
&pgpkey.anders;
&a.obrien;
&pgpkey.obrien;
&a.philip;
&pgpkey.philip;
&a.hmp;
&pgpkey.hmp;
&a.mp;
&pgpkey.mp;
&a.roam;
&pgpkey.roam;
&a.den;
&pgpkey.den;
&a.pirzyk;
&pgpkey.pirzyk;
&a.jdp;
&pgpkey.jdp;
&a.krion;
&pgpkey.krion;
&a.markp;
&pgpkey.markp;
&a.thomas;
&pgpkey.thomas;
+
+ &a.hq;
+ &pgpkey.hq;
+
+
&a.dfr;
&pgpkey.dfr;
&a.trhodes;
&pgpkey.trhodes;
&a.benno;
&pgpkey.benno;
&a.paul;
&pgpkey.paul;
&a.roberto;
&pgpkey.roberto;
&a.guido;
&pgpkey.guido;
&a.niklas;
&pgpkey.niklas;
&a.marks;
&pgpkey.marks;
&a.hrs;
&pgpkey.hrs;
&a.wosch;
&pgpkey.wosch;
&a.das;
&pgpkey.das;
&a.schweikh;
&pgpkey.schweikh;
&a.gshapiro;
&pgpkey.gshapiro;
&a.arun;
&pgpkey.arun;
&a.vanilla;
&pgpkey.vanilla;
&a.cshumway;
&pgpkey.cshumway;
&a.demon;
&pgpkey.demon;
&a.jesper;
&pgpkey.jesper;
&a.scop;
&pgpkey.scop;
+
+ &a.glebius;
+ &pgpkey.glebius;
+
+
&a.kensmith;
&pgpkey.kensmith;
&a.ben;
&pgpkey.ben;
&a.des;
&pgpkey.des;
&a.sobomax;
&pgpkey.sobomax;
&a.dcs;
&pgpkey.dcs;
&a.brian;
&pgpkey.brian;
&a.nsouch;
&pgpkey.nsouch;
+
+ &a.ssouhlal;
+ &pgpkey.ssouhlal;
+
+
&a.vs;
&pgpkey.vs;
&a.gsutter;
&pgpkey.gsutter;
+
+ &a.metal;
+ &pgpkey.metal;
+
+
&a.nyan;
&pgpkey.nyan;
&a.mi;
&pgpkey.mi;
&a.gordon;
&pgpkey.gordon;
+
+ &a.lth;
+ &pgpkey.lth;
+
+
&a.thierry;
&pgpkey.thierry;
&a.viny;
&pgpkey.viny;
+
+ &a.ups;
+ &pgpkey.ups;
+
+
&a.nectar;
&pgpkey.nectar;
&a.adamw;
&pgpkey.adamw;
&a.nate;
&pgpkey.nate;
&a.wollman;
&pgpkey.wollman;
&a.joerg;
&pgpkey.joerg;
+
+ &a.bz;
+ &pgpkey.bz;
+
+
&a.phantom;
&pgpkey.phantom;
-
diff --git a/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml
index 8d0b77eb4e..a6cd794a02 100644
--- a/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml
@@ -1,1408 +1,1409 @@
ReneKetelaarsVertaald door SiebrandMazelandApplicaties Installeren: Packages en PortsOverzichtportspackages&os; bevat een grote collectie aan systeemgereedschappen
als onderdeel van het basissysteem. De mogelijkheden reiken
echter niet heel ver en daarom is er snel een applicatie van een
andere partij nodig. &os; bevat twee complementaire
technologieën om andere applicaties te installeren: de &os;
portscollectie en binaire softwarepackages. Beide systemen
kunnen gebruikt worden om de nieuwste versies van een gewenste
applicatie te installeren van lokale media of rechtstreeks van
het netwerk.Na het lezen van dit hoofdstuk weet de lezer:Hoe binaire softwarepackages van derden te
installeren;Hoe software van derden vanuit de portscollectie te
installeren;Hoe eerder geïnstalleerde packages of ports te
verwijderen;Hoe standaardwaardes die door de ports worden gebruikt te
wijzigen;Hoe het juiste softwarepackage te vinden;Hoe ports bij te werken.Overzicht van SoftwareinstallatieAls de lezer eerder gebruik heeft gemaakt van een &unix;
systeem dan is het bekend dat de standaardprocedure voor het
installeren van software van derden ongeveer als volgt is:Download de software als broncode of als binair
bestand;Pak de software uit vanuit zijn originele distributietype
(meestal een tar-bestand gecomprimeerd met &man.compress.1;,
&man.gzip.1;, of &man.bzip2.1;);Zoek de documentatie (meestal een
INSTALL of README
bestand of enkele bestanden in een submap
doc/) en lees zorgvuldig hoe de software
geïnstalleerd moet worden;Als de software als broncode is gedistribueerd, moet de
broncode gecompileerd worden. Dit kan wijzigingen in een
Makefile vereisen of het draaien van een
configure script en andere
werkzaamheden;De software installeren en testen.En dat geldt alleen als alles goed gaat. Als er een
softwarepackage geïnstalleerd wordt dat niet specifiek
gemaakt is voor &os; moet mogelijkerwijs zelfs de code aangepast
worden om alles goed te laten werken.Als de gebruiker het wenst, kan hij in &os; doorgaan met het
installeren van software op de traditionele
manier. &os; levert echter twee technologieën die veel
moeite kunnen besparen: packages en ports. Op dit moment zijn zo
meer dan &os.numports; applicaties beschikbaar.Voor iedere gewenste applicatie is het &os; package voor die
applicatie één te downloaden bestand. Het package
bevat voorgecompileerde kopiën met alle commando's voor de
applicatie en alle instellingenbestanden of documentatie. Een
gedownload packagebestand kan gemanipuleerd worden met &os;
packagemanagement commando's zoals &man.pkg.add.1;,
&man.pkg.delete.1;, &man.pkg.info.1;, enzovoort. Het installeren
van een nieuwe applicatie kan met één
commando.Een &os; port van een applicatie is een groep bestanden
ontworpen om het proces van compileren van een applicatie vanuit
broncode te automatiseren.Het is te vergelijken met de stappen die normaal gevolgd
worden om een programma te compileren (downloaden, uitpakken,
aanpassen, compileren en installeren). De bestanden die samen
een port vormen bevatten alle noodzakelijke informatie om het
systeem dit te laten doen. Met een aantal eenvoudige commando's
wordt de broncode voor de applicatie automatisch gedownload,
uitgepakt, aangepast, gecompileerd en geïnstalleerd.Het portssysteem kan zelfs gebruikt worden om packages te
maken die later weer gemanipuleerd kunnen worden met
pkg_add en andere packagemanagement
commando's, waarover later meer uitleg wordt gegeven.Zowel packages als ports kennen afhankelijkheden
(dependencies). Stel dat er een applicatie
geïnstalleerd gaat worden die er vanuit gaat dat een
specifieke bibliotheek wordt geïnstalleerd. Zowel de
applicatie als de bibliotheek zijn beschikbaar als &os; ports
en packages. Als het commando pkg_add of
het portssysteem wordt gebruikt om de applicatie toe te voegen,
dan zien beiden dat de bibliotheek niet geïnstalleerd is
en wordt deze automatisch eerst geïnstalleerd.Gezien het feit dat beide technologieën vrijwel identiek
zijn, kan de vraag rijzen waarom &os; de moeite neemt om beide te
faciliteren. Packages en ports hebben ieder hun eigen kracht.
Welke gebruikt wordt hangt af van voorkeuren en
omstandigheden.Voordelen van PackagesEen gecomprimeerd package tar-bestand is meestal kleiner
dan het gecomprimeerde tar-bestand met de broncode van de
applicatie;Packages vereisen geen additionele compilatie. Voor
grote applicaties als Mozilla,
KDE of
GNOME kan dit belangrijk zijn,
vooral als een systeem wat trager is;Packages vereisen geen begrip van het proces van het
compileren van software op &os;.Voordelen van PortsPackages worden meestal gecompileerd met conservatieve
opties, omdat ze moeten draaien op een maximaal aantal
systemen. Bij het installeren vanuit de port kunnen de
compilatieinstellingen aangepast worden om zo bijvoorbeeld
code te maken die specifiek voor een Pentium IV of een
Athlon processor is;Sommige applicaties hebben compilatieinstellingen
gerelateerd aan wat ze wel of niet kunnen doen.
Apache kan bijvoorbeeld ingesteld
worden met een uitgebreide hoeveelheid verschillende
ingebouwde instellingen. Door vanuit de port te werken
hoeven niet alle standaardinstellingen geaccepteerd te worden
en kunnen ze ingesteld worden;In sommige gevallen zijn er meerdere packages voor
dezelfde applicatie om specifieke instellingen aan te geven.
Ghostscript is bijvoorbeeld
beschikbaar als een ghostscript package
en ghostscript-nox11 package,
afhankelijk van het al dan niet geïnstalleerd hebben van
een X11 server. Deze ruwe vorm van tweaking is mogelijk met
packages, maar dit wordt snel onmogelijk als een applicatie
meer dan één of twee verschillende
compilatieinstellingen heeft;De licentievoorwaarden van sommige softwaredistributies
verbieden binaire distributie. Ze moeten dus gedistribueerd
worden als broncode;Sommige mensen vertrouwen binaire distributies niet.
Broncode kan tenminste (in theorie) zelf doorgelezen en
gecontroleerd worden op potentiële problemen;Als er lokale modificaties zijn, is de broncode nodig om
ze toe te passen;Sommige mensen hebben graag de broncode zodat ze die
kunnen lezen als ze zich vervelen, erin kunnen hacken, code
kunnen overnemen (indien de licentie dit toestaat
natuurlijk), enzovoort.Om vernieuwingen van ports bij te houden kan een abonnement
genomen worden op de &a.ports; en/of de &a.ports-bugs;.Voordat een applicatie wordt geïnstalleerd is het aan
te raden op
na kijken of er geen beveiligingsproblemen voor de gewenste
applicatie bekend zijn.Het is ook mogelijk om security/portaudit te installeren,
dat automatisch alle geïnstalleerde applicaties
controleert op bekende fouten. Deze controle wordt ook
uitgevoerd voordat een port wordt geïnstalleerd.
Met het commando portaudit -F -a
kunnen de packages die al geïnstalleerd zijn worden
gecontroleerd.In de rest van dit hoofdstuk wordt uitgelegd hoe packages en
ports gebruikt kunnen worden om software in &os; te installeren
en te beheren.Een Applicatie ZoekenVoordat een applicatie geïnstalleerd kan worden, moeten
de doelen bekend zijn en hoe de applicatie heet.De lijst met voor &os; beschikbare applicaties groeit
continu. Gelukkig zijn er een aantal manieren om te
zoeken:Op de &os; website staat een recente doorzoekbare lijst
met alle beschikbare applicaties: http://www.FreeBSD.org/ports/.
De ports zijn onderverdeeld in categorieën. Er kan naar
een applicatie gezocht worden op naam (als die bekend is) of
alle applicaties in een categorie kunnen bekeken
worden.FreshPortsDan Langille onderhoudt FreshPorts op . FreshPorts
volgt veranderingen in applicaties in de ports en biedt de
mogelijkheid om of meer ports te volgen. Er wordt dan een
e-mail gestuurd als de port is bijgewerkt.FreshMeatAls de naam van de gewenst applicatie niet bekend is, is
het wellicht mogelijk deze te achterhalen via een website als
FreshMeat ()
en kan daarna op de &os; site gecontroleerd worden of de
applicatie al geschikt gemaakt is voor gebruik met
&os;.Als de precieze naam van de port bekend is, maar niet
bekend is in welke categorie deze staat, kan dit achterhaald
worden met &man.whereis.1;. Door simpelweg whereis
bestand in te geven,
waar bestand het te instelleren
programma is. Als het op het systeem staat, wordt dat als
volgt aangegeven:&prompt.root; whereis lsof
lsof: /usr/ports/sysutils/lsofDit geeft aan dat lsof (een
systeemhulpprogramma) in de map
/usr/ports/sysutils/lsof staat.Een andere manier om een port op te sporen is door het
ingebouwde zoekmechanisme van de portscollectie te
gebruiken. Hiervoor moet het huidige pad de map
/usr/ports zijn. Vanuit die map kan
make search
name=programmanaam
uitgevoerd worden, waar
programmanaam de naam is van het
programma dat wordt gezocht. Als bijvoorbeeld
lsof wordt gezocht:&prompt.root; cd /usr/ports
&prompt.root; make search name=lsof
Port: lsof-4.56.4
Path: /usr/ports/sysutils/lsof
Info: Lists information about open files (similar to fstat(1))
Maint: obrien@FreeBSD.org
Index: sysutils
B-deps:
R-deps:Het belangrijkste onderdeel van de uitvoer is in dit geval
de regel waarop Path: staat, omdat die aangeeft
waar de port staat. De andere informatie is niet nodig voor de
installatie van de port en wordt hier niet behandeld.Voor nog dieper zoeken kan ook make
search key=string
gebruikt worden waar string tekst is
waarnaar gezocht moet worden. Hiermee wordt naar namen van
ports, commentaar, beschrijvingen en afhankelijkheden gezocht
en dit kan gebruikt worden om ports te vinden die te maken
hebben met een bepaald onderwerp als onbekend is hoe het
gezochte programma heet.In beide gevallen is de zoekstring niet
hoofdlettergevoelig. Zoeken naar LSOF geeft
hetzelfde resultaat als zoeken naar lsof.ChernLeeBijgedragen door Het Packagessysteem GebruikenEen Package Installerenpackagesinstallerenpkg_addMet &man.pkg.add.1; kan een &os; softwarepackage
geïnstalleerd worden vanaf een lokaal bestand of vanaf een
server op het netwerk.Handmatig een Package Downloaden en Lokaal
Installeren&prompt.root; ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp3.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp>get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp>exit
&prompt.root; pkg_add lsof-4.56.4.tgzAls er lokaal geen bron is voor packages (zoals de &os;
CD-ROM set) dan is het waarschijnlijk makkelijker om de
optie te gebruiken met &man.pkg.add.1;.
Deze optie zorgt er voor dat het hulpprogramma automatisch het
correcte formaat en de juiste versie bepaalt en die daarna
binnenhaalt en installeert vanaf een FTP site.
pkg_add&prompt.root; pkg_add -r lsofHet voorbeeld hierboven haalt het correcte package binnen
en installeert het zonder dat de gebruiker iets hoeft te doen.
Het is mogelijk een alternatieve &os; packagessite aan te geven
in plaats van de hoofddistributiesite. Dan moet
PACKAGESITE ingesteld worden om de
standaardinstellingen aan te passen. &man.pkg.add.1; gebruikt
&man.fetch.3; om de bestanden binnen te halen, dat gebruik
maakt van diverse omgevingsvariabelen zoals
FTP_PASSIVE_MODE, FTP_PROXY, en
FTP_PASSWORD. Mogelijk moeten ook
één of meer van deze variabelen gebruikt worden
als een machine achter een firewall staat of als gebruik
gemaakt moet worden van een FTP/HTTP proxy. In &man.fetch.3;
staat de complete lijst. In het voorbeeld hierboven is gebruik
gemaakt van lsof in plaats van
lsof-4.56.4. Als het package wordt
binnengehaald met behulp van de bovenstaande instellingen, dan
moet het versienummer van het package niet gebruikt worden.
&man.pkg.add.1; haalt automatisch de laatste versie van de
applicatie binnen.&man.pkg.add.1; downloadt de meest recente versie van een
applicatie als &os.current; of &os.stable;. Als een
-RELEASE versie wordt gebruikt, wordt het package dat bij die
release hoort gebruikt. Het is mogelijk dit gedrag te
veranderen door de omgevingsvariabele
PACKAGESITE te wijzigen.Packagebestanden worden gedistribueerd in de formaten
.tgz en .tbz. Ze
zijn te vinden op
of op de &os; CD-ROM distributie. Iedere CD in de &os; 4-CD
set (en de PowerPak, enzovoort) bevat packages in de map
/packages. De opbouw van de packages is
ongeveer gelijk aan die van /usr/ports.
Iedere categorie heeft zijn eigen map en ieder package staat
ook in de map All.
De mappenstructuur van het packagesysteem is gelijk aan die
van het portssysteem. Samen vormen ze het
package/portssysteem.Packages Beherenpackagesbeheren&man.pkg.info.1; is een hulpprogramma dat de diverse
geïnstalleerde packages toont en beschrijft.pkg_info&prompt.root; pkg_info
cvsup-16.1 A general network file distribution system optimized for CV
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...&man.pkg.version.1; is een hulpprogramma dat een
samenvatting van de versie van alle geïnstalleerde
packages geeft. Het vergelijkt de versie van het package met
de huidige versie in de portscollectie.pkg_version&prompt.root; pkg_version
cvsup =
docbook =
...De symbolen in de tweede kolom geven aan hoe de
geïnstalleerde versie staat ten opzichte van de versie die
beschikbaar is in de lokale portscollectie.SymboolBetekenis=De versie van het geïnstalleerde package komt
overeen met die in de lokale portscollectie.<De geïnstalleerde versie is ouder dan die
beschikbaar is in de ports.>De geïnstalleerde versie is nieuwer dan die
in de lokale portscollectie. De lokale portscollectie
is waarschijnlijk verouderd.?Het geïnstalleerde package kan niet gevonden
worden in index van de portscollectie. Dit kan
bijvoorbeeld gebeuren als een geïnstalleerde port
uit de portscollectie wordt verwijderd of
hernoemd.*Er zijn meerdere versies van het package.Een Package Verwijderenpkg_deletepackagesdeletingVoor het verwijderen van een geïnstalleerd package
wordt het hulpprogramma &man.pkg.delete.1; gebruikt.&prompt.root; pkg_delete xchat-1.7.1DiversenAlle informatie over packages wordt opgeslagen in de map
/var/db/pkg. De lijst met
geïnstalleerde bestanden en beschrijvingen van ieder
package staat in de bestanden in deze map.De Portscollectie GebruikenIn de volgende paragrafen worden basisinstructies gegeven
over het gebruik van de portscollectie om programma's op een
systeem te installeren of ervan te verwijderen.De PortscollectieVoordat ports geïnstalleerd kunnen worden moet eerst
de portscollectie op een systeem staan, die in essentie een set
van Makefiles, patches en bestanden met
beschrijvingen is in /usr/ports.Tijdens het installeren van een &os; systeem, vraagt
sysinstall of de portscollectie
geïnstalleerd moet worden. Als daar NO is
aangegeven, dan kan met behulp van de volgende instructies
alsnog de portscollectie op een systeem gezet worden:Met SysinstallBij deze methode wordt
sysinstall weer gebruikt om de
portscollectie te installeren.sysinstall
(/stand/sysinstall in &os; versies
ouder dan 5.2) dient als
root uitgevoerd te worden:>&prompt.root; sysinstallSelecteer onderaan
Configure en druk op
Enter;Selecteer onderaan
Distributions en druk op
Enter;Selecteer ports en druk op
Space;Selecteer bovenaan Exit en
druk op Enter;Selecteer het gewenste installatiemedium, zoals CDROM,
FTP, enzovoort;Selecteer bovenaan Exit en
druk op Enter;Druk op X om
sysinstall te verlaten.De alternatieve methode om de portscollectie te installeren
en bij te werken maakt gebruik van
CVSup. Zie hiervoor het bestand
/usr/share/examples/cvsup/ports-supfile
uit de port CVSup. In dat bestand
en CVSup gebruiken
() staat meer informatie over het gebruik
van CVSup.Met CVSupDit is een snelle methode om de portscollectie te
installeren met behulp van CVSup.
Meer informatie over CVSup of over
het bijgewerkt houden van de portscollectie staat in de eerder
genoemde paragraaf.De port net/cvsup
dient geïnstalleerd te worden. Meer details zijn te
vinden in CVSup
Installatie ();/usr/share/examples/cvsup/ports-supfile
dient als root naar een nieuwe lokatie
zoals /root of een thuismap gekopieerd
te worden;ports-supfile dient aangepast te
worden;CHANGE_THIS.FreeBSD.org
dient gewijzigd te worden in een
CVSup server in de buurt. In
CVSup Mirrors () staat een complete lijst van
mirrorsites;Start cvsup:&prompt.root; cvsup -g -L 2 /root/ports-supfileAls dit commando later wordt herhaald, dan worden alle
recente veranderingen binnengehaald. De ports die al
geïnstalleerd zijn worden niet opnieuw gebouwd!Ports InstallerenportsinstallerenHet eerste wat uitleg behoeft als het over de
portscollectie gaat is de term skelet
(skeleton). In een notendop is een portskelet
een minimaal aantal bestanden dat &os; aangeeft hoe een
programma gecompileerd en geïnstalleerd kan worden. Ieder
portskelet bevat:Een Makefile. De
Makefile bevat verschillende
definities die aangeven hoe de applicatie gecompileerd moet
worden en waar die op een systeem geïnstalleerd moet
worden;Een bestand distinfo. Dit bestand
bevat informatie over de bestanden die gedownload moeten
worden om de port te bouwen en hun checksums, om met
&man.md5.1; vast te stellen dat de bestanden niet corrupt
zijn geraakt tijdens de download.;Een map files. Deze map bevat
patches om het programma op een &os; systeem te laten
compileren en installeren. Patches zijn in essentie kleine
bestanden waarin kleine veranderingen aan andere,
specifieke, bestanden staan aangegeven. Ze zijn opgesteld
in platte tekst en er staan dingen in als Verwijder
regel 10 of Wijzig regel 26 in
.... Patches staan ook wel bekend als
diffs omdat ze gemaakt worden met het
programma &man.diff.1;.Deze map kan ook andere bestanden bevatten die gebruikt
worden om de port te bouwen;Een bestand pkg-descr. Dit is een
meer gedetailleerde beschijving van het programma, vaak in
één regel;Een bestand pkg-plist. Dit is een
lijst met alle bestanden die door de port
geïnstalleerd worden. Het geeft het portssysteem ook
aan welke bestanden bij het verwijderen van de port weer
verwijderd kunnen worden.Sommige ports bevatten nog andere bestanden, zoals
pkg-message. Het portssysteem gebruikt
die bestanden voor het afhandelen van bijzondere situaties.
Meer details over die bestanden en over ports in het algemeen
zijn na te lezen in het &os; Handboek
voor Porters.De port bevat instructies over hoe de broncode gebouwd moet
worden, maar de broncode zelf is er geen onderdeel van. De
broncode staat op een CD-ROM of op internet. De broncode
wordt verspreid op de wijze waarop de auteur dat wenst. Vaak
is dat als een tar of gzip bestand, maar het kan ook ingepakt
zijn met een ander programma of helemaal niet ingepakt zijn.
De broncode van een programma, in welke vorm dan ook, heet een
distfile. De twee methoden om een &os; port te
installeren worden hieronder beschreven.Ports installeren dient als root te
gebeuren.Voordat een port wordt geïnstalleerd is het aan
te raden op
na kijken of er geen beveiligingsproblemen voor de
gewenste applicatie bekend zijn.Het is ook mogelijk om security/portaudit te
installeren. Hiermee wordt die controle automatisch
uitgevoerd voordat een port wordt geïnstalleerd. Met
het commando portaudit -F kan de
meest recente versie van de database met
beveiligingsproblemen opgehaald worden. Door deze port wordt
dagelijks een beveiligingsaudit gedaan en wordt ook dagelijks
de database bijgewerkt. Meer informatie is te vinden in
&man.portaudit.1; en &man.periodic.8;.Ports vanaf CD-ROM Installerenportsinstalleren vanaf CD-ROMDe officiële &os; Project CD-ROM images bevatten
geen distfiles meer. Die kostten veel ruimte die beter
gevuld kon worden met voorgecompileerde packages. CD-ROM
producten als het &os; PowerPak bevatten wel distfiles en
deze kunnen besteld worden bij een verkoper als de &os; Mall. In
deze paragraaf wordt aangenomen dat er een &os; CD-ROM set
aanwezig is.De &os; CD-ROM dient in de drive te zitten en gemount te
worden op /cdrom. Als er een ander
- mountpunt wordt gebruikt werkt de installatie niet. Om te
- beginnen dient de juiste map voor een port aangegeven te
- worden:
+ mountpunt wordt gebruikt, dient de make
+ variable CD_MOUNTPTS te worden ingesteld.
+ Om te beginnen dient de juiste map voor een port aangegeven
+ te worden:
&prompt.root; cd /usr/ports/sysutils/lsofEenmaal in de map lsof is het skelet
van de port te zien. In de volgende stap wordt de broncode
voor de port gecompileerd of gebouwd. Dit
wordt gedaan door op het prompt make in te
voeren. Dat levert iets als het volgende op:&prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from file:/cdrom/ports/distfiles/.
===> Extracting for lsof-4.57
...
[uitvoer van uitpakken verwijderd]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[uitvoer van configure verwijderd]
...
===> Building for lsof-4.57
...
[uitvoer van compileren verwijderd]
...
&prompt.root;Als het compileren is afgerond is het prompt weer
zichtbaar. In de volgende stap wordt de port
geïnstalleerd. Om dat te bewerkstelligen wordt het
woord install aan make
toegevoegd:&prompt.root; make install
===> Installing for lsof-4.57
...
[uitvoer installatie verwijderd]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;Als het prompt weer beschikbaar is, is de applicatie
klaar voor gebruik. Omdat lsof met
verhoogde rechten wordt uitgevoerd, wordt er een
waarschuwing getoond. Tijdens het bouwen en installeren van
ports zijn de getoonde waarschuwingen van belang.Het is mogelijk een stap minder te gebruiken door
make install uit te voeren in plaats van
make en make install
als twee afzonderlijke stappen.Sommige shells houden een cache bij van de commando's
die in de mappen uit de omgevingsvariabele
PATH staan om het opzoeken van een
uitvoerbaar bestand te versnellen. Als zo'n shell wordt
gebruikt, moet er na de installatie van een port het
commando rehash worden uitgevoerd
voordat zojuist geïnstalleerde commando's kunnen
worden gebruikt. Dit geldt zowel voor shells die
onderdeel uitmaken van het basissysteem (zoals
tcsh) als voor shells uit de
portscollectie (als shells/zsh).Licenties van sommige ports staan niet toe dat de
code wordt opgenomen in een CD-ROM. Dit kan komen doordat
er een formulier ingevuld moet worden voor een download of
doordat herdistributie niet is toegestaan of om een andere
reden. Om een port te installeren die niet op de CD-ROM
staat moet de computer waarop de port geïnstalleerd
wordt een internetverbinding hebben. Dit staat in de
volgende paragraaf
beschreven.Ports vanaf Internet InstallerenNet als in de vorige paragraaf wordt hier aangenomen dat
er voor een systeem een werkende internetverbinding is. Als
die er niet is, dient de CD-ROM installatie gevolgd te
worden of moet met de hand de distfile in
/usr/ports/distfiles gezet
worden.Het installeren van een ports vanaf internet gaat op
precies dezelfde manier als de installatie vanaf CD-ROM. Het
enige verschil is dat de distfile van internet komt in plaats
vanaf de CD-ROM.Het stappenplan is ook hetzelfde:&prompt.root; make install
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
439860 bytes transferred in 18.0 seconds (23.90 kBps)
===> Extracting for lsof-4.57
...
[uitvoer van uitpakken verwijderd]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[uitvoer van configure verwijderd]
...
===> Building for lsof-4.57
...
[uitvoer van compileren verwijderd]
...
===> Installing for lsof-4.57
...
[uitvoer van installatie verwijderd]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;Het enige verschil is de regel die aangeeft waar de
distfile wordt opgehaald.Het portssysteem gebruikt &man.fetch.1; om bestanden te
downloaden. Dat programma maakt gebruik van een aantal
omgevingsvariabelen, waaronder
FTP_PASSIVE_MODE, FTP_PROXY,
en FTP_PASSWORD. Als een systeem achter een
firewall staat, is het wellicht noodzakelijk om een of meer
van deze omgevingsvriabelen in te stellen of om gebruik te
maken van een FTP/HTTP proxy. In &man.fetch.3; staat een
complete lijst.Als er geen continue internetverbinding is, kan gebruik
gemaakt worden van make
fetch. Door dit
commando in de map /usr/ports uit te
voeren worden alle benodigde bestanden
gedownload. Dit commando werkt ook op een lager niveau als
/usr/ports/net of
/usr/ports/net/xmule. Als een port
afhankelijk is van bibliotheken of andere ports dan worden
de distfiles van die ports niet
opgehaald. Om dat de bereiken dient
fetch vervangen te worden door
fetch-recursive.Het is mogelijk alle ports in een categorie te bouwen
door make in een hogere map uit te
voeren, naar analogie van het voorbeeld voor make
fetch. Dit is wel
gevaarlijk, omdat sommige ports niet tegelijk met andere
geïnstalleerd kunnen zijn. In andere gevallen
installeren twee ports hetzelfde bestand met een andere
inhoud.In zeldzame gevallen willen of moeten gebruikers de tar
bestanden van een andere site dan de
MASTER_SITES halen (de locatie waar de
bestanden vandaan komen). Dat is mogelijk met de optie
MASTER_SITES met een volgend
commando:&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetchIn het voorgaande voorbeeld is de optie
MASTER_SITES gewijzigd naar ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.Sommige ports staan toe (of schrijven zelfs voor) dat
er een aantal instellingen worden meegegeven die bepaalde
onderdelen (niet gebruikt, beveiligingsinstellingen en
andere aanpassingen) van de applicatie in- of uitschakelen.
Voorbeelden van ports waarbij dat het geval is zijn
www/mozilla, security/gpgme en mail/sylpheed-claws. Er wordt
een bericht getoond als dit soort instellingen beschikbaar
zijn.Standaardmappen voor Ports WijzigenSoms is het handig (of verplicht) om een andere map voor
distfiles of ports te gebruiken. Met de variabelen
PORTSDIR en PREFIX
kunnen de standaardmappen veranderd worden:&prompt.root; make PORTSDIR=/usr/home/example/ports installHet voorbeeld hierboven compileert de port in
/usr/home/example/ports en installeert
alles in /usr/local.&prompt.root; make PREFIX=/usr/home/example/local installHet voorbeeld hierboven compileert in
/usr/ports en installeert in
/usr/home/example/local.&prompt.root; make PORTSDIR=../ports PREFIX=../local installHet voorbeeld hierboven combineert de twee instellingen.
Het gaat te ver om dit volledig in het handboek te
beschrijven, maar hier krijgt de lezer een idee van de
mogelijkheden.Het is ook mogelijk de bovenstaande variabelen als deel
van de omgeving in te stellen. In de hulppagina's van de
gebruikte shell staat hoe dat mogelijk is.Omgaan met imakeEr zijn ports die imake gebruiken
(een onderdeel van het X Window Systeem) die niet goed werken
met PREFIX en erop staan te installeren in
/usr/X11R6. Er zijn ook een aantal Perl
ports die PREFIX negeren en in de Perl
hiërarchie installeren. Deze ports op de
PREFIX locatie laten installeren is
meestal erg moeilijk of onmogelijk.Geïnstalleerde Ports VerwijderenportsverwijderenIn deze paragraaf wordt het verwijderen van ports
behandeld. Dat kan nodig zijn als een port niet langer wordt
gebruikt of als de verkeerde ports is geïnstalleerd. Dit
wordt geïllustreerd door de port uit het vorige voorbeeld
te verwijderen (lsof). Net als bij het
installeren van ports, moet eerst naar de juiste map gegaan
worden (/usr/ports/sysutils/lsof). Daarna
kan lsof verwijderd worden. Dit gaat met
het commando make deinstall:&prompt.root; cd /usr/ports/sysutils/lsof
&prompt.root; make deinstall
===> Deinstalling for lsof-4.57Erg makkelijk dus. Nu is lsof van een
systeem verwijderd. Om het opnieuw te installeren kan vanuit
de map /usr/ports/sysutils/lsofmake reinstall uitgevoerd worden.Het uitvoeren van make deinstall en
make reinstall werkt niet als ooit
make clean voor die port is uitgevoerd. Om
een port te verwijderen na het cleanen van die port kan
&man.pkg.delete.1; gebruikt worden, zoals wordt toegelicht in
de paragraaf Het Packagessysteem
Gebruiken.Ports en SchijfruimteportsschijfruimteWerken met de portscollectie kan in de loop der tijd veel
diskruimte gebruiken. Omdat de portsstructuur de neiging heeft
in de loop der tijd in grootte te groeien, na het bouwen en
installeren van software uit de ports, is het van belang altijd
de tijdelijke werkmappen work op te ruimen met het
commando make clean.
Hiermee wordt de map work verwijderd nadat
een port is gebouwd en geïnstalleerd. Daarnaast kunnen
ook de distfiles met de broncode verwijderd worden uit de map
distfiles en
kunnen ports die niet meer gebruikt worden verwijderd
worden.Sommige gebruikers kiezen ervoor om de beschikbare port
categorieën te beperken met instellingen in het bestand
refuse. Zo kan bij het draaien van de
applicatie CVSup voorkomen worden
dat bestanden in een categorie worden gedownload. Meer
informatie over refuse staat in .Ports BijwerkenportupgradeportsbijwerkenAls de portscollectie eenmaal is bijgewerkt
vóór het bijwerken van ports, is het verstandig
het bestand /usr/ports/UPDATING te
raadplegen. In dat bestand staan aanwijzingen en wijzigingen
voor gebruikers die van belang zijn bij het bijwerken van
ports.Het bijwerken van ports kan een vervelend klusje zijn. Om
bijvoorbeeld een port bij te werken is het nodig om naar de
juiste portsmap te gaan, de port te bouwen, de oude port te
verwijderen, de nieuwe port te installeren en daarna de werkmap
op te ruimen. Het is voorstelbaar dat dit voor bijvoorbeeld
vijf ports een vervelend klusje is. Dit was een groot probleem
voor systeembeheerders, dus zijn daar hulpprogramma's voor
gemaakt. Zo voert het hulpprogramma sysutils/portupgrade het complete
hiervoor beschreven proces uit! Die port is gewoon als iedere
andere port te installeren met make install
clean.Nu kan er een database gemaakt worden met het commando
pkgdb -F. Hiermee wordt de lijst van
geïnstalleerde ports gelezen en wordt een databasebestand
gemaakt in de map /var/db/pkg. Als daarna
portupgrade -a wordt uitgevoerd, wordt
die database gelezen en het bestand INDEX
van de ports. Tenslotte begint
portupgrade met het downloaden,
bouwen, back-uppen, installeren en opschonen van de ports die
zijn bijgewerkt. portupgrade kent
veel opties voor verschillend gebruik. De meest belangrijke
worden hieronder besproken.Om een specifieke applicatie bij te werken en niet de hele
database, kan portupgrade
pkgname gebruikt worden.
De vlag kan gebruikt worden om
portupgrade ook te draaien voor alle
packages waar het opgegeven package van afhankelijk is en
de optie zorgt ervoor dat het wordt
gedraaid voor alle packages die van het opgegeven package
afhankelijk zijn.Om bij installatie van packages in plaats van ports gebruik
te maken kan gebruikt worden. Met deze
optie zoekt portupgrade in de
lokale mappen uit PKG_PATH of haalt de packages
van via het netwerk op als het lokaal niet wordt aangetroffen.
Als een package niet lokaal en niet via het netwerk wordt
gevonden, dan gebruikt portupgrade
ports. Om het gebruik van ports te voorkomen kan gebruik
gemaakt worden van de optie .Om alleen de distfiles op te halen (of packages als
is opgegeven), zonder bouwen of
installeren, is beschikbaar. Meer
informatie staat in &man.portupgrade.1;.Het is van belang om regelmatig de packagedatabase bij
te werken met pkgdb -F om
inconsistenties de repareren, in het bijzonder als
portupgrade daar om vraagt. Als
portupgrade tijdens het bijwerken
van de packagedatabase wordt onderbroken levert dat een
inconsistente database op.Er bestaan ook andere hulpprogramma's die de besproken
taken uit kunnen voeren. Deze zijn te vinden in de map
ports/sysutils.Activiteiten na het InstallerenNa het installeren van een nieuwe applicatie is het meestal
verstandig om de documentatie te lezen die bij een applicatie
zit, bestanden met instellingen die vereist zijn aan te passen,
ervoor te zorgen dat de applicatie start na het booten (als het
een daemon is), enzovoort.De exacte stappen om een applicatie in te stellen zijn
natuurlijk voor iedere applicatie anders. Maar als er net een
nieuwe applicatie is geïnstalleerd en het is niet
vanzelfsprekend hoe verder te gaan, dan kunnen de volgende tips
helpen:Met &man.pkg.info.1; kan uitgevonden worden welke
bestanden geïnstalleerd zijn en waar. Om bijvoorbeeld
uit te vinden welke bestanden door FooPackage versie 1.0.0
zijn geïnstalleerd:&prompt.root; pkg_info -L foopackage-1.0.0 | lessBestanden in mapnamen met man/
zijn hulppagina's, etc/ bevat bestanden
met instellingen en doc/ bevat
uitgebreidere documentatie.Als niet helemaal duidelijk is welke versie van het
programma is geïnstalleerd, kan een commando als volgt
gebruikt worden:&prompt.root; pkg_info | grep -i foopackageHiermee worden alle packages getoond waar
foopackage in de packagenaam
voorkomt.Als de hulppagina's zijn gevonden, kunnen die bekeken
worden met &man.man.1;. Zo kan er ook in de bestanden met
voorbeeldinstellingen gekeken worden en naar aanvullende
documentatie, als die is bijgeleverd.Als er een website is voor de applicatie staat daar
vaak ook aanvullende documentatie, veelgestelde vragen,
enzovoort. Als het webadres niet bekend is, kan dat nog
staan in de uitvoer van het volgende commando:&prompt.root; pkg_info foopackage-1.0.0Als er een regel met WWW: in staat, is
dat de URL naar de website voor de applicatie.Ports die na het booten moeten starten (zoals internet
diensten) hebben meestal een voorbeeldscript in
/usr/local/etc/rc.d. Dit script kan
bekeken, aangepast en hernoemd worden waar nodig. Meer
informatie staat in Diensten
Starten.Omgaan met Kapotte PortsAls een port niet werkt, zijn er een aantal mogelijke
manieren om verder te komen:Repareren! In het Handboek
voor de Porter is gedetailleerde informatie te
vinden over de infrastructuur van de Ports,
zodat een kapotte port gemaakt kan worden of er zelfs een
nieuwe port ingestuurd kan worden.Klaag alleen per e-mail! Er kan
eerst een e-mail naar de beheerder van de port gestuurd
worden. Voor het mailadres van de beheerder kan
make maintainer ingegeven worden of het
kan in de Makefile staan. In de mail
dienen in ieder geval de naam en versie van de port te
staan (de regel met $&os;: in de
Makefile) en de uitvoer tot en met de
foutmelding. Als er geen antwoord komt van de beheerder,
kan er met &man.send-pr.1; een foutrapport ingestuurd
worden.Zoek een package van een FTP site in de buurt. De
master packagecollectie staat op ftp.FreeBSD.org in de map
packages, maar het is van belang dat er
eerst in de buurt wordt gekeken! Dat
het package werkt is waarschijnlijker dan wanneer uit de
de broncode wordt gecompileerd en het is nog sneller ook.
Een package kan met &man.pkg.add.1; geïnstalleerd
worden.
diff --git a/nl_NL.ISO8859-1/books/handbook/preface/preface.sgml b/nl_NL.ISO8859-1/books/handbook/preface/preface.sgml
index eea0e14448..81d951cdb9 100644
--- a/nl_NL.ISO8859-1/books/handbook/preface/preface.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/preface/preface.sgml
@@ -1,556 +1,733 @@
VoorwoordBedoeld
publiekDe nieuwkomers bij &os; zullen zien dat de eerste sectie van
dit boek ze begleidt door de &os; installatieprocedure en de
geleidelijke introductie in de concepten van &unix;.
- Om deze sectie goed te kunnen doorlopen heb je meer nodig dan
- de wens om te ontdekken en de mogelijkheid om nieuwe concepten
- op te nemen wanneer ze geïntroduceerd worden.
+ Om deze sectie goed te kunnen doorlopen is meer nodig dan de wens
+ om te ontdekken en de mogelijkheid om nieuwe concepten op te nemen
+ wanneer ze geïntroduceerd worden.
- Wanneer je eenmaal hier bent, de tweede veel grotere sectie
- van het handboek is een uitvoerige referentie naar alle mogelijke
- (relevante) onderwerpen die interessant zijn voor &os;
- systeembeheerders. Sommige van deze hoofdstukken adviseren je
- mogelijk om wat vroegere documentatie te lezen, dit wordt aangegeven
- in de samenvatting aan het begin van elk hoofdstuk.
+ De tweede, veel grotere, sectie van het handboek is een
+ uitvoerige referentie naar alle mogelijke (relevante) onderwerpen
+ die interessant zijn voor &os; systeembeheerders. Sommige van deze
+ hoofdstukken adviseren mogelijk om eerdere documentatie te lezen.
+ Dit wordt aangegeven in de samenvatting aan het begin van elk
+ hoofdstuk.Voor een lijst van extra bronnen van informatie zie
.
+ Wijzigingen ten
+ opzichte van de Tweede Editie
+
+ Deze derde editie is het resultaat van meer dan twee jaar
+ werk van de toegewijde leden van het &os; Documentatieproject.
+ Hieronder staan de grootste veranderingen in deze nieuwe
+ editie:
+
+
+
+ , Instellingen en
+ Optimalisatie, is uitgebreid met nieuwe informatie over APCI
+ power en resource management, het systeemhulpprogramma cron
+ en er staan meer opties voor het optimaliseren van de kernel
+ beschreven.
+
+
+
+ , Beveiliging, is uitgebreid met
+ meer informatie over virtuele private netwerken (VPN's),
+ toegangscontrolelijsten voor het bestandssysteem (ACL's) en
+ beveiligingswaarschuwingen.
+
+
+
+ , Verplichte Toegangscontrole (MAC),
+ is een nieuw hoofdstuk in deze editie. Er wordt in
+ uitgelegd wat MAC is en hoe het gebruikt kan worden om &os;
+ te beveiligen.
+
+
+
+ , Opslag, is uitgebreid met
+ informatie over USB opslagapparaten, snapshots van
+ bestandssystemen, bestandssystemen op basis van bestanden
+ en het netwerk en versleutelde partities op disks.
+
+
+
+ , Vinum, is een nieuw
+ hoofdstuk in deze editie. Er wordt in beschreven hoe
+ Vinum gebruikt kan worden. Vinum is een logische volume
+ manager die apparaat onafhankelijke logische disks kan
+ aanbieden en software RAID-0, RAID-1 en RAID-5.
+
+
+
+ Aan , PPP en SLIP, is een
+ paragraaf toegevoegd over problemen oplossen.
+
+
+
+ , E-mail, is uitgebreid met
+ informatie over alternatieve transport programma's,
+ SMTP authenticatie, UUCP, fetchmail, procmail en een
+ aantal andere gevorderde onderwerpen.
+
+
+
+ , Netwerkdiensten, is
+ nieuw in deze editie. Dit hoofdstuk bevat informatie over
+ het opzetten van een Apache HTTP Server, FTPd en het
+ opzetten van een server voor Microsoft &windows; clients
+ met Samba. Een aantal paragrafen
+ uit , Netwerken voor
+ Gevorderden, zijn om reden van presentatie naar dit hoofdstuk
+ verplaatst.
+
+
+
+ , Netwerken voor
+ Gevorderden, is uitgebreid met informatie over het gebruik
+ van Bluetooth apparaten met &os;, het opzetten van draadloze
+ netwerken en Asynchronous Transfer Mode (ATM) netwerken.
+
+
+
+ Er is een termenoverzicht toegevoegd als centrale locatie
+ voor definities van technische termen die in dit boek
+ gebruikt worden.
+
+
+
+ Tenslotte zijn er nog veel estetische wijzigingen
+ doorgevoerd aan tabellen en figuren in het boek.
+
+
+
Veranderingen ten
opzichte van de eerste editie
- Deze tweede editie is een optelsom van meer dan twee jaar
- werk door vaste leden van het &os; Documentation Project.
- Het volgende zijn de grote wijzigingen in deze editie:
+ Deze tweede editie is een optelsom van meer dan twee jaar
+ werk door vaste leden van het &os; Documentation Project.
+ Het volgende zijn de grote wijzigingen in deze editie:
+
+
+
+ Er is een complete INDEX toegevoegd.
+
+
+
+ Alle ASCII figuren zijn vervangen door grafische
+ diagrammen.
+
+
+
+ Aan elk hoofdstuk is een standaardsamenvatting toegevoegd
+ om een snel overzicht te geven welke informatie zich in het
+ hoofdstuk bevindt en wat de lezer geacht wordt te weten.
+
+
+
+ De inhoud is logisch ingedeeld in drie delen:
+ Starten, Systeembeheer en
+ Appendix.
+
+
+
+ (&os;
+ Installeren) is compleet herschreven met veel
+ screenshots erbij om het makkelijker te maken voor nieuwe
+ gebruikers om greep te krijgen op de tekst.
+
+
+
+ (&unix;
+ Beginselen) is uitgebreid met extra informatie over
+ processen, daemons en signalen.
+
+
+
+ (Applicaties
+ installeren) is uitgebreid met extra informatie over
+ binair package-beheer.
+
+
+
+ (Het X Window Systeem)
+ is compleet herschreven met de nadruk op het gebruik van
+ moderne bureaubladtechnologiën zoals
+ KDE en
+ GNOME op &xfree86; 4.X.
+
+
+
+ (Het &os;
+ Opstartproces) is uitgebreid.
+
+
+
+ (Opslag) is
+ herschreven uit wat eens twee aparte hoofdstukken waren over
+ disks en backups. We vinden
+ dat de onderwerpen beter begrijpbaar zijn wanneer ze in
+ één hoofdstuk zijn ondergebracht. Er is ook een
+ sectie ver RAID (zowel hardware als softwarematig)
+ toegevoegd.
+
+
+
+ (Seriële
+ communicatie) is compleet gereorganiseerd en
+ bijgewerkt voor &os; 4.X/5.X.
+
-
-
- Er is een complete INDEX toegevoegd.
-
+
+ (PPP en SLIP)
+ is aanzienlijk bijgewerkt.
+
-
- Alle ASCII figuren zijn vervangen door grafische
- diagrammen.
-
+
+ Veel nieuwe secties zijn toegevoegd aan
+ (Geavanceerd
+ netwerken).
+
+
+
+ (E-mail)
+ is uitgebreid met meer informatie over het instellen van
+ sendmail.
+
+
+
+
+ ( &linux; Binaire Compatibiliteit)
+ is uitgebreid met informatie over het installeren van
+ &oracle; en
+ &sap.r3;
+
+
+
+ De volgende nieuwe onderwerpen worden behandeld in
+ deze tweede editie:
+
+
+
+ Instellingen en Optimalisatie
+ ().
+
+
+
+ Multimedia ()
+
+
+
+
-
- Een standaardsamenvatting is aan elk hoofdstuk toegevoegd
- om een snel overzicht te geven welke informatie zich in het
- hoofdstuk bevindt en wat de lezer geacht wordt te weten.
-
+ De opbouw van dit
+ boek
-
- De inhoud is logisch ingedeeld in drie delen:
- Starten, Systeembeheer en
- Appendix.
-
+ Dit boek is opgedeeld in vijf logische secties.
+ De eerste sectie, Starten, behandelt
+ de installatie en het basisgebruik van &os;. Er wordt verwacht
+ dat lezers deze hoofdstukken volgt, en mogelijk
+ hoofdstukken overslaat met bekende onderwerpen. De tweede sectie,
+ Algemene Taken, behandelt veelgebruikte
+ functies van &os;. Deze sectie en alle volgende kunnen in een
+ willekeurige volgorde gelezen worden. Iedere sectie begint met een
+ beknopte samenvatting die beschrijft wat het hoofdstuk inhoudt en
+ wat de lezer al moet weten. Dit is bedoeld om de lezer de kans te
+ geven alleen dat te lezen wat voor hem van belang is. In de derde
+ sectie, Systeembeheer, wordt het beheer
+ behandeld. De vierde sectie,
+ Netwerkcommunicatie, gaat over netwerken en
+ servers. De vijfde sectie bevat appendices met
+ referentiemateriaal.
-
- (&os;
- Installeren) is compleet herschreven met veel
- screenshots erbij om het makkelijker te maken voor nieuwe
- gebruikers om greep te krijgen op de tekst.
-
+
-
- (&unix;
- Beginselen) is uitgebreid met extra informatie over
- processen, daemons en signalen.
-
+
-
- (Applicaties
- installeren) is uitgebreid met extra informatie over
- binair package-beheer.
-
+
+ ,
+ Introductie
- (Het X Window Systeem)
- is compleet herschreven met de nadruk op het gebruik van
- moderne bureaubladtechnologiën zoals
- KDE en
- GNOME op &xfree86; 4.X.
+ Introduceert &os; aan een nieuwe gebruiker. Het
+ beschrijft de geschiedenis van het &os; project, de doelen en
+ het ontwikkel model.
+
-
- (Het opstart proces van
- &os;) is uitgebreid.
-
+
+ ,
+ Installatie
- (Opslag) is
- herschreven uit wat eens twee aparte hoofdstukken waren over
- disks en backups. We vinden
- dat de onderwerpen beter begrijpbaar zijn wanneer ze in
- één hoofdstuk zijn ondergebracht. Een sectie
- over RAID (zowel hardware als softwarematig) is ook
- toegevoegd.
+ Begleidt een gebruiker door de installatieprocedure.
+ Sommige geavanceerde installatie-onderwerpen zoals
+ installatie door middel van een seriële console worden
+ ook behandeld.
+
-
- (Seriële
- communicatie) is compleet gereorganiseerd en
- bijgewerkt voor &os; 4.X/5.X.
-
+
+ , &unix;
+ basis
- (PPP en SLIP)
- is aanzienlijk bijgewerkt.
+ Behandelt de basiscommando's en functionaliteit van het
+ &os; besturingssyteem. Als de lezer bekend is met &linux; of
+ een andere &unix; variant, kan dit hoofdstuk waarschijnlijk
+ overgeslagen worden.
+
-
- Veel nieuwe secties zijn toegevoegd aan
- (Geavanceerd
- netwerken).
-
+
+ , Applicaties
+ Installeren
- (Electronische email)
- is uitgebreid met meer informatie over het configureren van
- sendmail.
+ Behandelt de installatie van software van derden, met
+ zowel &os;'s innovatieve Portscollectie als
+ de standaard binaire packages.
+
-
- (Linux
- compatibiliteit) is uitgebreid met meer informatie
- over het installeren van &oracle; en
- &sap.r3;.
-
+
+ , Het X Window
+ Systeem
- De volgende nieuwe onderwerpen worden behandeld in
- deze tweede editie:
-
-
- Configuratie en tuning
- ().
-
-
-
- Multimedia ()
-
-
+ Beschrijft het X Window Systeem in het algemeen en
+ het gebruik van X11 op &os; in het bijzonder. Het beschrijft
+ ook standaard bureaubladomgevingen zoals
+ KDE en
+ GNOME.
-
- De opbouw van dit
- boek
+
- Dit boek is opgedeeld in drie logische verschillende secties.
- De eerste sectie, Starten, behandelt
- de installatie en het basisgebruik van &os;. Er wordt verwacht
- dat lezers deze hoofdstukken volgt, en mogelijk
- hoofdstukken overslaat met bekende onderwerpen. De tweede sectie
- ,Systeembeheer, behandeld een brede collectie
- van onderwerpen die interessant zijn voor de meer geavanceerde
- &os; gebruiker. Elke sectie begint met een beknopte samenvatting
- die beschrijft wat het hoofdstuk inhoudt, en wat de lezer al zou
- moeten weten. Dit is bedoeld om de willekeurige lezers de kans te
- geven om hoofdstukken te vinden die interessant zijn voor ze. De
- derde sectie bevat een appendix met referentie materiaal.
+
-
- , Introductie
-
- Introduceert &os; aan een nieuwe gebruiker. Het
- beschrijft de geschiedenis van het &os; project, de doelen en
- het ontwikkel model.
-
-
+ ,
+ Bureaubladapplicaties
-
- , Installatie
- Begleidt een gebruiker door de installatieprocedure.
- Sommige geavanceerde installatie-onderwerpen zoals
- installatie door middel van een seriële console worden
- ook behandeld.
+ Levert standaard bureaubladapplicaties in een lijst,
+ zoals webbrowsers en productiviteitspakketten, en
+ beschrijft hoe ze te installeren op &os;.
- , &unix; basis
-
- Behandelt de basiscommando's en functionaliteit van het
- &os; besturingssyteem. Als je bekend bent met Linux of een
- andere &unix; variant, kan je dit hoofdstuk waarschijnlijk
- overslaan.
-
-
+ ,
+ Multimedia
-
- , Applicaties installeren
- Behandelt de installatie van software van derden, met
- zowel &os;'s innovatieve Ports collectie als
- de standaard binary packages.
+ Laat zien hoe geluid- en video-ondersteuning te
+ installeren voor een systeem. Het beschrijft ook een
+ aantal voorbeeld audio- en video- applicaties.
- , Het X Window Systeem
+ , Instellen van de
+ &os; Kernel
+
- Beschrijft het X Window Systeem in het algemeen en
- het gebruik van &xfree86; op &os;
- in het bijzonder. Het beschrijft ook standaard
- bureaubladomgevingen zoals KDE
- en GNOME.
+ Beschrijft waarom misschien een nieuwe kernel ingesteld
+ moet worden en levert gedetailleerde instructies voor het
+ instellen, bouwen en installeren van een eigen kernel.
+
- , Configuratie en tuning
+ ,
+ Printen
+
- Beschrijft de parameters beschikbaar voor
- systeembeheerders om een &os; te fine-tunen voor
- de beste prestaties. Het beschrijft ook diverse
- configuratiebestanden die gebruikt worden in &os; en waar
- je die kan vinden.
+ Beschrijft hoe printers beheerd worden onder &os;,
+ met informatie over bannerpagina's, printer-accouting en
+ initiële installatie.
+
+
- , De opstartprocedure
+ , Instellingen en
+ Optimalisatie
+
- Beschrijft de &os; opstartprocedure en legt uit hoe
- je dit kan bewerken met configuratie-opties.
+ Beschrijft de parameters beschikbaar voor
+ systeembeheerders om een &os; te fine-tunen voor
+ de beste prestaties. Het beschrijft ook diverse
+ instellingenbestanden die gebruikt worden in &os; en waar
+ die te vinden zijn.
- , Gebruikers en basis account
- beheer
+ , Het &os;
+ Opstartproces
+
- Beschrijft hoe je gebruikers-accounts aanmaakt, en
- verandert. Het beschrijft ook welke resource-beperkingen er
- gezet kunnen worden op gebruikers en andere
- account-beheerstaken.
+ Beschrijft de &os; opstartprocedure en legt uit hoe
+ deze aan te passen met instellingen.
- , Configuratie van de
- &os; Kernel
+ , Gebruikers en Basis
+ Accountbeheer
+
- Beschrijft waarom je misschien een nieuwe kernel moet
- configureren en levert gedetailleerde instructies voor
- configuratie, het bouwen, en het installeren van een eigen
- kernel.
+ Beschrijft hoe gebruikers-accounts aan te maken en te
+ wijzigen. Het beschrijft ook welke resource-beperkingen er
+ gezet kunnen worden op gebruikers en andere
+ account-beheerstaken.
- , Beveiliging
+ ,
+ Beveiliging
+
- Beschrijft vele verschillende hulpapplicaties die
- beschikbaar zijn die je helpen om je &os; systeem veilig
- te houden, met oa: Kerberos, IPsec, OpenSSH en
- netwerk-firewalls.
+ Beschrijft vele verschillende hulpapplicaties die
+ beschikbaar zijn die helpen om een &os; systeem veilig
+ te houden, met oa: Kerberos, IPsec en OpenSSH.
- , Printen
+ , Verplichte
+ Toegangscontrole
+
- Beschrijft hoe je printers beheert onder &os;,
- met informatie over bannerpagina's, printer-accouting, en
- initiële installatie.
+ Legt uit was Verplichte Toegangscontrole (MAC) is en hoe
+ het gebruikt kan worden om een &os; te beveiligen., Opslag
-
- Beschrijft hoe je opslagmedia en bestandssystemen beheert
- onder &os;. Dit bevat fysieke schijven, RAID arrays,
- optische en tape media, geheugenschijven, en
- netwerkbestandssystemen.
-
-
-
- , Vinum
- Beschrijft hoe je Vinum gebruikt, een logische
- volumebeheerder welke apparaatonafhankelijke logische disken
- levert, met software RAID-0, RAID-1 en RAID-5.
+ Beschrijft hoe opslagmedia en bestandssystemen beheerd
+ worden onder &os;. Dit omvat fysieke schijven, RAID arrays,
+ optische en tape media, geheugenschijven en
+ netwerkbestandssystemen.
- , Localisatie
-
- Beschrijft hoe je &os; met andere talen kunt gebruiken
- in plaats van Engels. Behandelt zowel het systeem- als
- applicatieniveau van localisatie.
-
-
+ ,
+ Vinum
-
- , Bureaubladapplicatie's
- Levert standaard bureaubladapplicatie's in een lijst,
- zoals webbrowsers, en productiviteitspakketten, en
- beschrijft hoe je ze installeert op &os;.
+ Beschrijft hoe Vinum gebruikt wordt, een logische
+ volumebeheerder die apparaatonafhankelijke logische disken
+ levert, met software RAID-0, RAID-1 en RAID-5.
- , Multimedia
+ ,
+ Lokalisatie - I18N/L10N Gebruiken en
+ Instellen
+
- Laat zien hoe je geluid- en video-ondersteuning
- installeert voor je systeem. Het beschrijft ook een
- aantal voorbeeld audio- en video- applicaties.
+ Beschrijft hoe &os; met andere talen dan Engels te
+ gebruiken is. Behandelt zowel het systeem- als
+ applicatieniveau van localisatie.
- , Seriële communicaties
+ , Het Scherp van de
+ Snede
+
- Legt uit hoe je een verbinding kan maken met terminals en
- modems op je &os; systeem voor zowel dial-in als dial-out
- verbindingen.
+ Geeft uitleg over de verschillen tussen &os;-STABLE,
+ &os;-CURRENT en &os; releases. Beschrijft welke gebruikers
+ voordeel hebben van het bijhouden van een ontwikkelsysteem
+ en legt dat proces uit.
+
+
- , PPP en SLIP
+ , Seriële
+ communicatie
+
- Beschrijft hoe je PPP, SLIP en PPP over Ethernet kan
- gebruiken om verbinding te maken met remote systemen met
- &os;.
+ Legt uit hoe een verbinding te maken met terminals en
+ modems op een &os; systeem voor zowel dial-in als dial-out
+ verbindingen.
- , Geavanceerde netwerken
+ , PPP en
+ SLIP
+
- Beschrijft meerderenetwerk onderwerpen, inclusief
- het delen van een internetverbinding met andere computers in
- je LAN, het gebruik van netwerkbestandssystemen, en het delen
- van accountinformatie door middel van NIS, het opzetten van
- een nameserver en nog veel meer.
+ Beschrijft hoe PPP, SLIP en PPP over Ethernet te
+ gebruiken om verbinding te maken met remote systemen met
+ &os;.
- , Electronische mail
+ , Electronische
+ Mail
+
- Legt verschillende componenten uit van een mailserver en
- gaat dieper in op simpele configuratie-onderwerpen voor de
- populairste mailserver software:
- sendmail.
+ Legt verschillende componenten uit van een mailserver en
+ gaat dieper in op simpele instellingen voor de populairste
+ mailserver software:
+ sendmail.
- , The Cutting edge
+ ,
+ Netwerkdiensten
+
- Geeft uitleg over de verschillen tussen &os;-Stable,
- &os;-Current en &os; releases. Beschrijft welke gebruikers
- kunnen profiteren van het volgen van een ontwikkelsysteem
- en legt dat systeem uit.
+ Geeft gedetailleerde instructies en voorbeeldinstellingen
+ om een &os; machine als een netwerk bestandssysteem server,
+ DNS server, netwerk informatiesysteem server of tijdserver
+ in te stellen.
+
+ ,
+ Firewalls
+
+
+ Licht de filosofie achter op software gebaseerde
+ firewalls toe en beschrijf in detail hoe de verschillende
+ firewalls die in &os; beschikbaar zijn ingesteld kunnen
+ worden.
+
+
+
- , Linux binary compatibiliteit
+ , Netwerken
+ voor Gevorderden
+
- Beschrijft de Linux compatibiliteitmogelijkheden van &os;.
- Het beschrijft ook gedetaileerde installatie-instructies voor
- verschillende populaire Linux-applicaties zoals
- &oracle;,
- &sap.r3;
- en &mathematica;.
+ Beschrijft meerdere netwerk onderwerpen, inclusief
+ het delen van een internetverbinding met andere computers in
+ een LAN, routeren voor gevorderden, draadloze netwerken,
+ bluetooth, ATM, IPv6 en nog veel meer.
+
+
- , Het verkrijgen van &os;
+ , &os;
+ Verkrijgen
+
- Geeft verschillende bronnen aan voor het verkrijgen van
- &os; media op CDROM of DVD evenals verschillende sites op het
- internet die je in staat stellen &os; te downloaden en te
- installeren.
+ Geeft verschillende bronnen aan voor het verkrijgen van
+ &os; media op CDROM of DVD evenals verschillende sites op het
+ internet die gebruikers in staat stellen &os; te downloaden
+ en te installeren.
- , Bibliografie
+ ,
+ Bibliografie
+
- Dit boek geeft veel verschillende onderwerpen die je
- misschien hongerig maken naar een gedetaileerdere uitleg.
- De bibliografie geeft een aantal uitstekende boeken waarnaar
- gerefereerd worden in de tekst.
+ Dit boek geeft veel verschillende onderwerpen die de
+ lezer misschien hongerig maken naar een gedetaileerdere
+ uitleg. De bibliografie bevat verwijzingen naar een aantal
+ uitstekende boeken.
- , Resources op het internet
+ , Bronnen op
+ Internet
+
- Beschrijft de vele forums die beschikbaar zijn voor &os;
- gebruikers om vragen te stellen, en om deel te nemen aan
- technische conversaties over &os;.
+ Beschrijft de vele forums die beschikbaar zijn voor &os;
+ gebruikers om vragen te stellen, en om deel te nemen aan
+ technische conversaties over &os;.
- , PGP Keys
+ , PGP
+ Sleutels
+
- Geeft de PGP-vingerafdrukken van verschillende &os;
- ontwikkelaars.
+ Geeft de PGP-vingerafdrukken van verschillende &os;
+ ontwikkelaars.Overeenkomsten in dit
boek
- Om consistentie en leesbaarheid te behouden en de leesbaarheid
- te behouden worden er een aantal overeenkomsten nageleefd in dit
- boek.
+ Om consistentie en leesbaarheid te behouden en de leesbaarheid
+ te behouden worden er een aantal overeenkomsten nageleefd in dit
+ boek.
- Typografische
+ Typografische
overeenkomstenItalic
+
Een italic lettertype wordt gebruikt
voor bestandsnamen, URLs, benadrukte tekst, en het eerste
gebruik van technische termen.Monospace
+
- Een monospaced lettertype wordt
- gebruikt voor foutmeldingen, commando's,
- omgevingsvariabelen, namen van ports, hostnames,
- gebruikersnamen, groupsnamen, device namen, variabelen,
- en stukjes code.
+ Een monospaced lettertype wordt
+ gebruikt voor foutmeldingen, commando's,
+ omgevingsvariabelen, namen van ports, hostnames,
+ gebruikersnamen, groupsnamen, device namen, variabelen en
+ stukjes code.
- Bold
+ Vet
+
- Een bold lettertype wordt
+ Een vet lettertype wordt
gebruikt voor applicaties, commando's en toetsen.GebruikersinvoerToetsen worden weergegeven in bold om op
te vallen tussen andere tekst. Toetscombinaties die bedoeld zijn
om tegelijkertijd getypt te worden worden weergeven met
- `+' tussen de toetsen zoals
+ +' tussen de toetsen zoals
-
- Ctrl
- Alt
- Del
-
+ Ctrl
+ AltDel
- Betekent dat de gebruiker de volgende toetsen moet indrukken
- op hetzelfde moment: Ctrl,Alt en
- Del.
+ Betekent dat de gebruiker de volgende toetsen op hetzelfde
+ moment moet indrukken: Ctrl, Alt
+ en Del.Toetsen die bedoeld zijn om achter elkaar te typen worden
gescheiden door komma's, bijvoorbeeld
-
- Ctrl
- X
- ,
-
- Ctrl
- S
-
+ Ctrl
+ X,
+
+ Ctrl
+ Szou betekenen dat de gebruiker de Ctrl
en X toetsen tegelijk moet indrukken en erna
Ctrl en S tegelijkertijd moet
indrukken.VoorbeeldenVoorbeelden die beginnen met E:\>
geven aan dat het een &ms-dos; commando betreft. Tenzij anders
- vermeld, kunnen deze commando's in een
- Command promptscherm in een moderne
- µsoft.windows; omgeving worden gebruikt.
+ vermeld, kunnen deze commando's in een Command
+ promptscherm in een moderne µsoft.windows; omgeving
+ worden gebruikt.
E:\>tools\fdimage floppies\kern.flp A:Voorbeelden die starten met een &prompt.root; geven aan dat een
- commando ingegeven moet worden als de superuser in &os;. Je kan
- inloggen met root om het commando in te typen,
- of je logt in als gewone gebruiker en gebruikt &man.su.1; om
- superuser-privileges te verkrijgen.
+ commando ingegeven moet worden als de superuser in &os;. Er kan
+ aangemeld worden met root om het commando in
+ te typen, of er kan na als gewone gebruiker aangemeld te hebben
+ gebruikt gemaakt worden van &man.su.1; om superuser-rechten te
+ verkrijgen.
&prompt.root; dd if=kern.flp of=/dev/fd0Voorbeelden die starten met &prompt.user; geven aan dat een
- commando opgegeven moet worden vanuit een normaal gebruikersaccount.
- Tenzij anders vermeld, wordt de C-shell syntax gebruikt voor het
- instellen van omgevingsvariabelen en andere shell-commando's.
+ commando opgegeven moet worden vanuit een normale
+ gebruikersaccount. Tenzij anders vermeld, wordt de C-shell
+ syntaxis gebruikt voor het instellen van omgevingsvariabelen en
+ andere shellcommando's.
&prompt.user; topDankwoorden
- Het boek dat je nu voor je hebt representeert de inspanningen
- van honderden mensen over de hele wereld. Of ze nu foutjes
+ Het boek dat nu voorligt representeert de inspanningen van
+ honderden mensen over de hele wereld. Of ze nu foutjes
verbeteren of complete hoofdstukken inleveren, ze hebben allemaal
nuttig bijgedragen.Verschillende bedrijven hebben bijgedragen aan het maken
van dit document door de schrijvers te betalen om hier full-time
aan te werken, door te betalen voor de publicatie, etc. In het
- bijzonder heeft BSDi (Overgenomen door
- Wind River Systems)
- leden van het &os; Documentatie Project betaald om full-time te
- werken aan het verbeteren van dit boek, wat leidde tot de publicatie
- van de eerste editie in maart 2000 (ISBN 1-57176-241-8). Wind River
- Systems heeft daarna verschillende schrijvers betaald om een
- aantal verbeteringen uit te voeren voor de
- printuitvoer-infrastructuur en om extra hoofdstukken toe te voegen
- aan de tekst. Dit werk leverde de publicatie van de tweede
- geprinte editie in november 2001 (ISBN 1-57176-303-1).
-
+ bijzonder heeft BSDi (Overgenomen door Wind River Systems) leden
+ van het &os; Documentatie Project betaald om full-time te werken
+ aan het verbeteren van dit boek, wat leidde tot de publicatie van
+ de eerste editie in maart 2000 (ISBN 1-57176-241-8). Wind River
+ Systems heeft daarna verschillende schrijvers betaald om een aantal
+ verbeteringen uit te voeren voor de printuitvoer-infrastructuur en
+ om extra hoofdstukken toe te voegen aan de tekst. Dit werk leverde
+ de publicatie van de tweede gedrukte editie in november 2001
+ (ISBN 1-57176-303-1). In 2003-2004 heeft &os; Mall, Inc een
+ aantal mensen die bijdragen hebben geleverd betaald om het handboek
+ te verbeteren voor een derde gedrukte editie.
diff --git a/nl_NL.ISO8859-1/books/handbook/security/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/security/chapter.sgml
index 921edc2da9..ae3222667b 100644
--- a/nl_NL.ISO8859-1/books/handbook/security/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/security/chapter.sgml
@@ -1,5312 +1,5313 @@
MatthewDillonVeel uit dit hoofdstuk is overgenomen uit de
security(7) handboekpagina van SiebrandMazelandVertaald door BeveiligingbeveiligingOverzichtDit hoofdstuk biedt een basisinleiding in
systeembeveiligingsconcepten, een aantal goede basisregels en
een paar gevorderde onderwerpen binnen &os;. Veel van de
onderwerpen die worden behandeld kunnen ook worden toegepast op
systemen en internet in het algemeen. Het internet is niet
langer een vriendelijke omgeving waar iedereen
een goede buur wil zijn. Het beveiligen van een systeem is
onontbeerlijk als gegevens, intellectueel eigendom, tijd en wat
dan ook uit de handen van hackers c.s. gehouden moeten
worden.&os; biedt veel hulpmiddelen en mechanismen om te zorgen
voor de integriteit en veiligheid van een systeem en
netwerk.Na het lezen van dit hoofdstuk weet de lezer:Van basis systeembeveiligingsconcepten in relatie tot
&os;;Meer over verschillende versleutelingsmechanismen die
beschikbaar zijn in &os; zoals DES en
MD5;Hoe eenmalige wachtwoordauthenticatie opgezet kan
worden;Hoe TCP Wrappers in te stellen voor
gebruik met inetd;Hoe KerberosIV op &os;
releases eerder dan 5.0 opgezet kan worden;Hoe Kerberos5 op &os; 5.0
release en verder opgezet kan worden;Hoe IPsec wordt ingesteld en hoe een
VPN op te zetten tussen &os; en
µsoft.windows; machines;Hoe OpenSSH, &os;'s
SSH implementatie, in te stellen en te
gebruiken;Wat filesysteem ACLs zijn en hoe
die te gebruiken;Hoe om te gaan met publicaties van &os;
beveiligingswaarschuwingen.Er wordt aangenomen dat de lezer van dit hoofdstuk:Basisbegrip heeft van &os; en internetconcepten.In dit boek worden nog meer onderwerpen met betrekking tot
beveiliging beschreven. Zo wordt bijvoorbeeld Verplichte
Toegangscontrole (Mandatory Access Control) besproken in en Internet Firewalls in .IntroductieBeveiliging is een taak die begint en eindigt bij de
systeembeheerder. Hoewel alle BSD &unix; multi-user systemen
enige inherente beveiliging kennen, is het bouwen en onderhouden
van additionele beveiligingsmechanismen om de gebruikers
eerlijk te houden waarschijnlijk een van de
zwaarste taken voor de systeembeheerder. Machines zijn zo veilig
als ze gemaakt worden en beveiligingsoverwegingen staan altijd op
gespannen voet met de wens om gebruiksvriendelijkheid. &unix;
systemen zijn in het algemeen in staat tot het tegelijkertijd
uitvoeren van een enorm aantal processen en veel van die
processen acteren als server - daarmee wordt bedoeld dat externe
entiteiten er verbindingen mee kunnen maken en ertegen kunnen
praten. Nu de minicomputers en mainframes van gisteren de
desktops van vandaag zijn en computers onderdeel zijn van
netwerken en internetwerken, wordt beveiliging nog
belangrijker.Beveiliging kan het beste ingesteld worden door een gelaagde
ui-aanpak. In een notendop zijn er het beste net
zoveel lagen van beveiliging als handig is en daarna dient het
systeem zorgvuldig gemonitord te worden op inbraken. Het is niet
wenselijk beveiliging te overontwerpen, want dat doet afbreuk aan
de detectiemogelijkheden en detectie is een van de belangrijkste
aspecten van beveiligingsmechanismen. Zo heeft het bijvoorbeeld
weinig zin om de schg vlaggen (zie
&man.chflags.1;) op ieder binair bestand op een systeem te
zetten, omdat het, hoewel dit misschien tijdelijk binaire
bestanden beschermt, een inbreker in een systeem ervan kan
weerhouden een eenvoudig te detecteren wijziging te maken
waardoor beveiligingsmaatregelen de inbreker misschien
helemaal niet ontdekken.Systeembeveiliging heeft ook te maken met het omgaan met
verschillende vormen van aanvallen, zoals een poging om een
systeem te crashen of op een andere manier onstabiel te maken,
zonder te proberen de root account aan te
vallen (break root). Aandachtspunten voor
beveiliging kunnen opgesplitst worden in categorieën:Ontzeggen van dienst aanvallen (Denial of
service).Gebruikersaccounts compromitteren.root compromitteren via
toegankelijke servers.root compromitteren via
gebruikersaccounts.Achterdeur creëren (Backdoor).DoS aanvallenOntzegging van Dienst (DoS)beveiligingOntzegging van Dienst DoS aanvallen(DoS)Ontzegging van Dienst (DoS)Een ontzegging van dienst (DoS) aanval is een techniek die
de machine middelen ontneemt. In het algemeen zijn DoS aanvallen
brute kracht mechanismen die proberen de machine te crashen of op
een andere manier onbruikbaar te maken door de machine of de
netwerkcode te overvragen. Sommige DoS aanvallen proberen
misbruik te maken van bugs in de netwerkcode om een machine met
een enkel pakket te crashen. Zoiets kan alleen gerepareerd
worden door een aanpassing aan de kernel te maken. Aanvallen op
servers kunnen vaak hersteld worden door op de juiste wijze
opties in stellen om de belasting van servers te limiteren in
ongunstige omstandigheden. Omgaan met brute kracht aanvallen is
lastiger. Zo is een aanval met gefingeerde pakketten
(spoofed-packet) vrijwel niet te stoppen, behalve
dan door het systeem van internet los te koppelen. Misschien
gaat de machine er niet door plat, maar het kan wel een volledige
internetverbinding verzadigen.beveiligingaccount compromitteringEen gecompromitteerde gebruikersaccount komt nog veel vaker
voor dan een DoS aanval. Veel systeembeheerders draaien nog
steeds standaard telnetd,
rlogind,
rshd en
ftpd servers op hun machines. Deze
servers communiceren standaard niet over beveiligde verbindingen.
Het resultaat is dat als er een redelijk grote gebruikersgroep
is, er altijd wel van een of meer van de gebruikers die van
afstand op dat systeem aanmelden (wat toch de meest normale en
makkelijke manier is om op een systeem aan te melden) het
wachtwoord is afgeluisterd (sniffed). Een
oplettende systeembeheerder analyseert zijn logboekbestanden om
te zoeken naar verdachte bronadressen, zelfs als het om
succesvolle aanmeldpogingen gaat.Uitgangspunt moet altijd zijn dat als een aanvaller toegang
heeft tot een gebruikersaccount, de aanvaller de
root account kan compromitteren. In
werkelijkheid is het wel zo dat voor een systeem dat goed
beveiligd is en goed wordt onderhouden, toegang tot een
gebruikersaccount niet automatisch betekent dat de aanvaller ook
root privileges kan krijgen. Het is van
belang dit onderscheid te maken, omdat een aanvaller zonder
toegang tot root in het algemeen zijn sporen
niet kan wissen en op z'n best wat kan rommelen met bestanden van
de gebruiker of de machine kan crashen. Gecompromitteerde
gebruikersaccounts zijn vrij normaal omdat gebruikers normaliter
niet de voorzorgsmaatregelen nemen die systeembeheerders
nemen.beveiligingachterdeurenSysteembeheerders moeten onthouden dat er in potentie heel
veel manieren zijn om toegang tot root te
krijgen. Een aanvaller zou het
root wachtwoord kunnen kennen, een bug kunnen
ontdekken in een dienst die onder root
draait en daar via een netwerkverbinding op in kunnen breken of
een aanvaller zou een probleem kunnen met een suid-root programma
dat de aanvaller in staat stelt root te
worden als hij eenmaal toegang heeft tot een gebruikersaccount.
Als een aanvaller een manier heeft gevonden om
root te worden op een machine, dan hoeft
hij misschien geen achterdeur (backdoor) te
installeren. Veel bekende manieren die zijn gevonden om
root te worden, en weer zijn afgesloten,
vereisen veel werk van de aanvaller om zijn rommel achter zich op
te ruimen, dus de meeste aanvallers installeren een achterdeur.
Een achterdeur biedt de aanvaller een manier om makkelijk opnieuw
root toegang tot het systeem te krijgen, maar
dit geeft de slimme systeembeheerder ook een makkelijke manier om
de inbraak te ontdekken. Het onmogelijk maken een achterdeur te
installeren zou best wel eens nadelig kunnen zijn voor
beveiliging, omdat hiermee nog niet het gat gedicht is waardoor
er in eerste instantie is ingebroken.Beveiligingsmaatregelen moeten altijd geïmplementeerd
worden in een meerlagenmodel en worden als volgt
gecategoriseerd:Beveiligen van root en
medewerkersaccounts.Beveiligen van root – servers
onder root en suid/sgid binaire
bestanden.Beveiligen van gebruikersaccounts.Beveiligen van het wachtwoordbestand.Beveiligen van de kern van de kernel, ruwe devices
en bestandssystemen.Snel detecteren van ongeoorloofde wijzigingen aan het
systeem.Paranoia.In het volgende onderdeel van dit hoofdstuk gaan we dieper in
op de bovenstaande punten.&os; Beveiligenbeveiliging&os; beveiligenCommando vs. ProtocolIn dit hele document gebruiken we
vette tekst om te verwijzen naar een
commando of applicatie en een monospaced
lettertype om te verwijzen naar specifieke commando's.
Protocollen staan vermeld in een normaal lettertype. Dit
typografische onderscheid is zinvol omdat bijvoorbeeld ssh
zowel een protocol als een commando is.In de volgende onderdelen behandelen we de methodes uit de
vorige paragraaf om een
&os; systeem te beveiligen.Beveiligen van root en
Medewerkersaccounts.suOm te beginnen: doe geen moeite om medewerkersaccounts
te beveiligen als de root account niet
beveiligd is. Op de meeste systemen heeft de
root account een wachtwoord. Als eerste
moet aangenomen worden dat dit wachtwoord
altijd gecompromitteerd is. Dit betekent
niet dat het wachtwoord verwijderd moet worden. Het wachtwoord
is namelijk bijna altijd nodig voor toegang via het console van
de machine. Het betekent wel dat het niet mogelijk gemaakt
moet worden om het wachtwoord te gebruiken buiten het console
om en mogelijk zelfs niet via het &man.su.1; commando. Pty's
moeten bijvoorbeeld gemarkeerd staan als onveilig
(insecure) in het bestand
/etc/ttys zodat direct aanmelden met
root via telnet
of rlogin niet wordt toegestaan. Als andere
aanmelddiensten zoals sshd gebruikt
worden, dan hoort direct aanmelden via
root uitgeschakeld staat. Dit kan door
het bestand /etc/ssh/sshd_config te
bewerken en ervoor te zorgen dat
PermitRootLogin op NO
staat. Dit moet gebeuren voor iedere methode van toegang
– diensten zoals FTP worden vaak over het hoofd gezien.
Het direct aanmelden van root hoort alleen
te mogen via het systeemconsole.wheelNatuurlijk moet een systeembeheerder de mogelijkheid hebben
om root te worden. Daarvoor kunnen een
paar gaatjes geprikt worden. Maar dan moet ervoor gezorgd
worden dat er voor deze gaatjes extra aanmelden met een
wachtwoord nodig is. Eén manier om
root toegankelijk te maken is door het
toevoegen van de juiste medewerkersaccounts aan de
wheel groep (in
/etc/group). De medewerkers die lid zijn
van de groep wheel mogen
su–en naar root.
Maak medewerkers nooit native lid van de groep
wheel door ze in de groep
wheel te plaatsen in
/etc/group. Medewerkersaccounts horen lid
te zijn van de groep staff en horen dan
pas toegevoegd te worden aan de groep
wheel in het bestand
/etc/group. Alleen medewerkers die ook
echt toegang tot root nodig hebben horen
in de groep wheel geplaatst te worden.
Het is ook mogelijk, door een authenticatiemethode als Kerberos
te gebruiken, om het bestand .k5login van
Kerberos in de root account te gebruiken
om een &man.ksu.1; naar root toe te staan
zonder ook maar iemand lid te maken van de groep
wheel. Dit is misschien wel een
betere oplossing, omdat het
wheel-mechanisme het nog steeds mogelijk
maakt voor een inbreker root te breken als
de inbreker een wachtwoordbestand te pakken heeft gekregen en
toegang kan krijgen tot één van de
medewerkersaccounts. Hoewel het instellen van het
wheel-mechanisme beter is dan niets, is
het niet per se de meest veilige optie.Een indirecte manier om de medewerkersaccounts te
beveiligen en uiteindelijk ook de toegang tot
root, is het gebruik van alternatieve
aanmeldmethodes en de wachtwoorden van de medewerkersaccounts,
zoals het heet uit te sterren. Met &man.vipw.8;
kan iedere instantie van een gecodeerd wachtwoord vervangen
worden door een enkel *
karakter. Met dit commando worden
/etc/master.passwd en de
gebruikers/wachtwoord database bijgewerkt om het aanmelden met
wachtwoord uit te schakelen.Een regel voor een medewerkersaccount als:foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcshZou veranderd moeten worden naar:foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcshDoor deze wijziging kan niet langer normaal aangemeld
worden omdat het gecodeerde wachtwoord nooit gelijk is aan de
*. Nu dit is gebeurd, moeten
medewerkers een ander mechanisme gebruiken om zich te
authenticeren zoals &man.kerberos.1; of &man.ssh.1; met een
publiek/privaat sleutelpaar. Bij het gebruik van iets als
Kerberos moeten gewoonlijk de machines waarop de Kerberos
server draait en het desktop werkstation beveiligd worden. Bij
het gebruik van een publiek/privaat sleutelpaar met ssh, moet
in het algemeen de machine van waar wordt
aangemeld beveiligd worden (meestal een werkstation). Het is
mogelijk nog een beveiligingslaag toe te voegen door het
sleutelpaar te beschermen met een wachtwoord als het aan te
maken met &man.ssh-keygen.1;. Door accounts van medewerkers
uit te sterren is het ook gegarandeerd dat ze
alleen aan kunnen melden door gebruik te maken van de veilige
toegangsmethodes die de beheerder heeft ingesteld. Hierdoor
worden alle medewerkers gedwongen veilige, gecodeerde
verbindingen te gebruiken voor al hun sessies. Daarmee wordt
een belangrijk beveiligingsgat gesloten dat veel indringers
gebruiken: snuffelen aan het netwerk vanaf een niet-relevante
minder veilige machine.Meer indirecte beveiligingsmechanismen hebben ook als
uitgangspunt dat vanaf een zwaarder beveiligde machine wordt
aangemeld op een minder beveiligd systeem. Als een
hoofdserver bijvoorbeeld allerlei servers draait, zou het
werkstation er geen moeten draaien. Om een werkstation
redelijk veilig te laten zijn, dienen er zo min mogelijk
servers op te draaien, bij voorkeur zelfs geen en er zou een
schermbeveiliging met wachtwoordbeveiliging op moeten draaien.
Maar als een aanvaller fysieke toegang heeft tot een
werkstation, dan kan hij elke beveiliging die erop is
aangebracht omzeilen. Dit probleem dient echt overwogen te
worden, net als het feit dat de meeste aanvallen van een
afstand plaatsvinden, via het netwerk, door mensen die geen
fysieke toegang hebben tot werkstations of servers.KerberosIVHet gebruik van iets als Kerberos geeft de mogelijkheid
om het wachtwoord van de account van een medewerker buiten
gebruik te stellen of te wijzigen op één plaats,
waarbij het meteen actief is op alle machines waarop die
medewerker een account heeft. Als de account van een
medewerker gecompromitteerd raakt, moet vooral de mogelijkheid
om per direct het wachtwoord voor machines te kunnen aanpassen
niet onderschat worden. Met afzonderlijke wachtwoorden kan het
veranderen van wachtwoorden op N systemen een puinhoop worden.
Met Kerberos kunnen ook wachtwoordrestricties opgelegd worden:
het is niet alleen mogelijk om een Kerberos
ticket na een bepaalde tijd te laten verlopen,
maar het Kerberos systeem kan afdwingen dat de gebruiker na een
bepaalde tijd een nieuw wachtwoord kiest (na bijvoorbeeld een
maand).Beveiligen van root – servers
onder root en suid/sgid Binaire
BestandenntalkcomsatfingerzandbakkensshdtelnetdrshdrlogindEen voorzichtige systeembeheerder draait alleen die servers
die nodig zijn, niets meer, niets minder. Bedenk dat
servers van derde partijen vaak de meeste neiging hebben tot
het vertonen van bugs. Zo staat bijvoorbeeld het draaien van
een oude versie van imapd of
popper gelijk aan het weggeven van
de root account aan de hele wereld. Draai
nooit een server die niet zorgvuldig is onderzocht. Veel
servers hoeven niet te draaien als root.
Zo kunnen de ntalk,
comsat en
finger daemons bijvoorbeeld draaien
in speciale gebruikerszandbakken
(sandboxes). Een zandbak
is niet perfect, tenzij er heel veel moeite gedaan wordt, maar
de meerlagenbenadering blijft bestaan: als iemand via een
server die in een zandbak draait weet in te breken, dan moeten
ze eerst nog uit de zandbak komen. Hoe groter het aantal lagen
is waar een inbreker doorheen moet, hoe kleiner de kans op
succes is. root gaten zijn historisch
gezien aanwezig geweest in vrijwel iedere server die ooit als
root gedraaid heeft, inclusief de
basisservers van een systeem. Op een machine waarop mensen
alleen aanmelden via sshd en nooit
via telnetd of
rshd of
rlogind dienen die servers
uitgeschakeld te worden!&os; draait ntalkd,
comsat en
finger tegenwoordig standaard in een
zandbak. Een ander programma dat misschien beter in een
zandbak kan draaien is &man.named.8;. In
/etc/defaults/rc.conf staat als commentaar
welke parameters er nodig zijn om
named in een zandbak te draaien.
Afhankelijk van of het een nieuwe systeeminstallatie of het
bijwerken van een bestaand systeem betreft, worden de speciale
gebruikersaccounts die bij die zandbakken horen misschien niet
geïnstalleerd. Een voorzichtige systeembeheerder
onderzoekt en implementeert zandbakken voor servers waar dat
ook maar mogelijk is.sendmailEr zijn een aantal diensten die vooral niet in een zandbak
draaien: sendmail,
popper,
imapd,
ftpd en andere. Voor sommige
servers zijn alternatieven, maar dat kost misschien meer tijd
dan er te besteden is (gemak dient de mens). Het kan voorkomen
dat deze servers als root moeten draaien
en dat er vertrouwd moet worden op andere mechanismen om een
inbraak via die servers te detecteren.De andere grote mogelijkheid voor root
gaten in een systeem zijn de suid-root en sgid binaire
bestanden die geïnstalleerd zijn op een systeem. Veel van
die bestanden, zoals rlogin, staan
in /bin, /sbin,
/usr/bin of
/usr/sbin. Hoewel het niet 100% veilig
is, mag aangenomen worden dat de suid en sgid binaire bestanden
van een standaardsysteem redelijk veilig zijn. Toch worden er
nog wel eens root gaten gevonden in deze
bestanden. Zo is er in 1998 een root gat
gevonden in Xlib waardoor
xterm (die normaliter suid is)
kwetsbaar bleek. Een voorzichtige systeembeheerder kiest voor
better to be safe than sorry door de suid
bestanden die alleen medewerkers hoeven uit te voeren aan een
speciale groep toe te wijzen en de suid bestanden die niemand
gebruikt te lozen (chmod 000). Een server
zonder monitor heeft normaal gezien
xterm niet nodig. Sgid bestanden
kunnen bijna net zo gevaarlijk zijn. Als een inbreker een
sgid-kmem stuk kan krijgen, dan kan hij wellicht
/dev/kmem lezen en dus het gecodeerde
wachtwoordbestand, waardoor mogelijk ieder account met
een wachtwoord besmet is. Een inbreker toegang tot de groep
kmem kan krijgen, zou bijvoorbeeld mee
kunnen kijken met de toetsaanslagen die ingegeven worden via de
pty's, inclusief die pty's die gebruikt worden door gebruikers
die via beveiligde methodes aanmelden. Een inbreker die
toegang krijgt tot de groep tty kan naar
bijna alle tty's van gebruikers schrijven. Als een gebruiker
een terminalprogramma of een terminalemulator met een
toetsenbordsimulatieoptie draait, dan kan de inbreker in
potentie een datastroom genereren die ervoor zorgt dat de
terminal van de gebruiker een commando echot, dat dan wordt
uitgevoerd door die gebruiker.Beveiligen van GebruikersaccountsGebruikersaccounts zijn gewoonlijk het meest lastig om te
beveiligen. Hoewel er allerlei Draconische maatregelen genomen
kunnen worden met betrekking tot de medewerkers en hun
wachtwoorden weggesterd kunnen worden, gaat dat
waarschijnlijk niet lukken met de gewone gebruikersaccounts.
Als er toch voldoende vrijheid is, dan prijst de beheerder zich
gelukkig en is het misschien toch mogelijk de accounts
voldoende te beveiligen. Als die vrijheid er niet is, dan
moeten die accounts gewoon netter gemonitord worden. Het
gebruik van ssh en
Kerberos voor gebruikersaccounts is
problematischer vanwege het extra beheer en de ondersteuning,
maar nog steeds een prima oplossing in vergelijking met een
gecodeerd wachtwoordbestand.Beveiligen van het WachtwoordbestandDe enige echte oplossing is zoveel mogelijk wachtwoorden
* maken en ssh
of Kerberos gebruiken voor toegang
tot die accounts. Hoewel een gecodeerd wachtwoordbestand
(/etc/spwd.db) alleen gelezen kan worden
door root, is het wel mogelijk dat een
inbreker leestoegang krijgt tot dat bestand zonder dat de
aanvaller root-schrijftoegang krijgt.Beveiligingsscripts moeten altijd controleren op en
rapporteren over wijzigingen in het wachtwoordbestand (zie ook
Bestandsintegriteit
Controleren hieronder).Beveiligen van de Kern van de Kernel, Ruwe Devices en
BestandssystemenAls een aanvaller toegang krijgt tot
root dan kan hij ongeveer alles, maar er
zijn een paar slimmigheidjes. Zo hebben bijvoorbeeld de meeste
moderne kernels een ingebouwde pakketsnuffeldriver
(packet sniffing). Bij &os; is dat het
bpf device. Een inbreker zal in het
algemeen proberen een pakketsnuffelaar te draaien op een
gecompromitteerde machine. De inbreker hoeft deze mogelijkheid
niet te hebben en bij de meeste systemen is het niet verplicht
het bpf device mee te
compileren.sysctlMaar zelfs als het bpf
device is uitgeschakeld, dan zijn er nog
/dev/mem en
/dev/kmem. De inbreker kan namelijk nog
schrijven naar ruwe diskdevices. En er is ook nog een optie
in de kernel die modulelader (module loader)
heet, &man.kldload.8;. Een ondernemende inbreker kan een KLD
module gebruiken om zijn eigen bpf
device of een ander snuffeldevice te installeren in een
draaiende kernel. Om deze problemen te voorkomen, moet de
kernel op een hoger veiligheidsniveau draaien, ten minste
securelevel 1. Het securelevel wordt ingesteld met
sysctl op de
kern.securelevel variabele. Als securelevel
op 1 staat, is het niet langer mogelijk te schrijven naar ruwe
devices en speciale chflags vlaggen als
schg worden dan afgedwongen. Ook dient de
vlag schg gezet te worden op kritische
opstartbestanden, mappen en scriptbestanden. Alles dat wordt
uitgevoerd voordat het securelevel wordt ingesteld. Dit is
misschien wat overdreven en het wordt lastiger een systeem te
vernieuwen als dat in een hoger securelevel draait. Er is een
compromis mogelijk door het systeem in een hoger securelevel te
draaien maar de schg vlag niet op alle
systeembestanden en mappen te zetten die maar te vinden zijn.
/ en /usr zouden ook
als alleen-lezen gemount kunnen worden. Het is nog belangrijk
om op te merken dat als de beheerder te Draconisch omgaat
met dat wat hij wil beschermen, hij daardoor kan veroorzaken
dat die o-zo belangrijke detectie van een inbraak wordt
misgelopen.Bestandsintegriteit Controleren: Binaire Bestanden,
Instellingenbestanden, Etc.Als puntje bij paaltje komt kan de kern van een systeem
maar tot een bepaald punt beveiligd worden zonder dat het
minder prettig werken wordt. Zo werk het zetten van de
schg bit met chflags op
de meeste bestanden in / en
/usr waarschijnlijk averechts, omdat,
hoewel de bestanden beschermd zijn, ook het venster waarin
detectie plaats kan vinden is gesloten. De laatste laag van
beveiliging is waarschijnlijk de meest belangrijke: detectie.
Alle overige beveiliging is vrijwel waardeloos (of nog erger:
geeft een vals gevoel van veiligheid) als een mogelijke inbraak
niet gedetecteerd kan worden. Een belangrijk doel van het
meerlagenmodel is het vertragen van een aanvaller, nog meer dan
hem te stoppen, om de detectiekant van de vergelijking de kans
te geven hem op heterdaad te betrappen.De beste manier om te zoeken naar een inbraak is zoeken
naar gewijzigde, missende of onverwachte bestanden. De beste
manier om te zoeken naar gewijzigde bestanden is vanaf een
ander (vaak gecentraliseerd) systeem met beperkte toegang.
Met zelfgeschreven scripts op dat extra beveiligde systeem met
beperkte toegang ben is een beheerder vrijwel onzichtbaar voor
mogelijke aanvallers en dat is belangrijk. Om het nut te
maximaliseren moeten in het algemeen dat systeem met beperkte
toegang best veel rechten gegeven worden op de andere machines
in het netwerk, vaak via een alleen-lezen NFS export van de
andere machines naar het systeem met beperkte toegang of door
ssh sleutelparen in te stellen om
het systeem met beperkte toegang een
ssh verbinding te laten maken met de
andere machines. Buiten het netwerkverkeer, is NFS de minst
zichtbare methode. Hierdoor kunnen de bestandssystemen
op alle client machines vrijwel ongezien gemonitord worden.
Als de server met beperkte toegang verbonden is met de client
machines via een switch, dan is de NFS methode vaak de beste
keus. Als de server met beperkte toegang met de andere
machines is verbonden via een hub of door meerdere routers, dan
is de NFS methode wellicht niet veilig genoeg (vanuit een
netwerk standpunt) en kan beter ssh
gebruikt worden, ondanks de audit-sporen die
ssh achterlaat.Als de machine met beperkte toegang eenmaal minstens
leestoegang heeft tot een clientsysteem dat het moet gaan
monitoren, dan moeten scripts gemaakt worden om dat monitoren
ook echt uit te voeren. Uitgaande van een NFS mount, kunnen
de scripts gebruik maken van eenvoudige systeem hulpprogramma's
als &man.find.1; en &man.md5.1;. We adviseren minstens
één keer per dag een md5 te maken van alle
bestanden op de clientmachine en van instellingenbestanden als
in /etc en
/usr/local/etc zelfs vaker. Als er
verschillen worden aangetroffen ten opzichte van de basis md5
informatie op het systeem met beperkte toegang, dan hoort het
script te gillen om een beheerder die het moet gaan uitzoeken.
Een goed beveiligingsscript controleert ook op onverwachte suid
bestanden en op nieuwe en verwijderde bestanden op
systeempartities als / en
/usr.Als ssh in plaats van NFS wordt
gebruikt, dan is het schrijven van het script lastiger. Dan
moeten de scripts met scp naar de client
verplaatst worden om ze uit te voeren, waardoor ze zichtbaar
worden. Voor de veiligheid dienen ook de binaire bestanden die
het script gebruikt, zoals &man.find.1;, gekopieerd te
worden. De ssh client op de client
zou al gecompromitteerd kunnen zijn. Het is misschien
noodzakelijk ssh te gebruiken over onveilige verbindingen, maar
dat maakt alles een stuk lastiger.Een goed beveiligingsscript voert ook controles uit op de
instellingenbestanden van gebruikers en medewerkers:
.rhosts, .shosts,
.ssh/authorized_keys, enzovoort…
Dat zijn bestanden die buiten het bereik van de
MD5 controle vallen.Als gebruikers veel diskruimte hebben, dan kan het te lang
duren om alle bestanden op deze partitie te controleren. In dat
geval is het verstandig de mount vlaggen zo in te stellen dat
suid binaire bestanden en devices op die partities niet zijn
toegestaan. Zie daarvoor de nodev en
nosuid opties (zie &man.mount.8;). Die
partities moeten wel toch nog minstens eens per week doorzocht
worden, omdat het doel van deze beveiligingslaag het ontdekken
van een inbraak is, of die nu succesvol is of niet.Procesverantwoording (zie &man.accton.8;) kost relatief
gezien weinig en kan bijdragen aan een evaluatie mechanisme
voor na inbraken. Het is erg handig om uit te zoeken hoe
iemand precies heeft ingebroken op het systeem, mits het
bestand nog onbeschadigd is na de inbraak.Tenslotte horen beveiligingsscripts de logboekbestanden te
verwerken en de logboekbestanden zelf horen zo veilig mogelijk
tot stand te komen. remote syslog kan erg
zinvol zijn. Een aanvaller probeert zijn sporen uit te wissen
en logboekbestanden zijn van groot belang voor een
systeembeheerder als het gaat om uitzoeken wanneer en hoe er is
ingebroken. Een manier om logboekbestanden veilig te stellen
is door het systeemconsole via een seriële poort aan te
sluiten op een veilige machine en zo continu informatie te
verzamelen.ParanoiaEen beetje paranoia is niet verkeerd. Eigenlijk kan de
systeembeheerder zoveel beveiligingsopties inschakelen als hij
wil, als deze maar geen impact hebben op het gebruiksgemak en
de beveiligingsopties die wel impact
hebben op het gebruiksgemak kunnen ingeschakeld worden als daar
zorgvuldig mee wordt omgegaan. Nog belangrijker is misschien
dat er een juiste combinatie wordt gevonden. Als de
aanbevelingen uit dit document woord voor woord worden
opgevolgd, dan worden daarmee de methodes aan een toekomstige
aanvaller verraden, die ook toegang heeft tot dit
document.Ontzeggen van Dienst AanvallenOntzegging van Dienst (DoS)In deze paragraaf worden Ontzeggen van Dienst aanvallen
(Denial of Service of DoS) behandeld. Een DoS
aanval wordt meestal uitgevoerd als pakketaanval. Hoewel er
weinig gedaan kan worden tegen de huidige aanvallen met
gefingeerde pakketten die een netwerk kunnen verzadigen, kan
de schade geminimaliseerd worden door ervoor te zorgen dat
servers er niet door plat gaan.Limiteren van server forks.Limiteren van springplank (springboard)
aanvallen (ICMP response aanvallen, ping broadcast,
etc.).Kernel Route Cache.Een veelvoorkomende DoS aanval tegen een server die forkt
is er een die probeert processen, file descriptors en geheugen
te gebruiken tot de machine het opgeeft.
inetd (zie &man.inetd.8;) kent een
aantal instellingen om dit type aanval af te zwakken. Hoewel
het mogelijk is ervoor te zorgen dat een machine niet plat
gaat, is het in het algemeen niet mogelijk te voorkomen dat de
dienstverlening door de aanval wordt verstoord. Meer is te
lezen in de handleiding van inetd
en het advies is in het bijzonder aandacht aan de
, en
opties te besteden. Aanvallen met gefingeerde
IP adressen omzeilen de
optie naar inetd, dus in het
algemeen moet een combinatie van opties gebruikt worden.
Sommige op zichzelf staande servers hebben parameters waarmee
het aantal forks gelimiteerd kan worden.Sendmail heeft de optie
die veel beter blijkt te
werken dan het gebruik van de opties van sendmail waarmee de
werklast gelimitteerd kan worden. De parameter
MaxDaemonChildren moet zodanig ingesteld
worden dat als sendmail start, hij
hoog genoeg is om de te verwachten belasting aan te kunnen,
maar niet zo hoog is dat de computer het aantal instanties van
sendmails niet aankan zonder plat te
gaan. Het is ook verstandig om sendmail in de wachtrij modus
() te draaien en de
daemon (sendmail -bd) los te koppelen van de
verwerking van de wachtrij (sendmail -q15m).
Als de verwerking van wachtrij real-time moet, kunnen de
tussenpozen voor verwerking verkort worden door deze
bijvoorbeeld op in te stellen, maar dan
is een redelijke instelling van
MaxDaemonChildren van belang om
die sendmail te beschermen tegen
trapsgewijze fouten (cascade failures).Syslogd kan direct aangevallen
worden en het is sterk aan te raden de
optie te gebruiken waar dat ook maar mogelijk is en anders de
optie.Er dient voorzichtig omgesprongen te worden met diensten
die terugverbinden zoals
tcpwrapper's reverse-identd die
direct aangevallen kan worden. In het algemeen is het hierom
onverstandig gebruik te maken van de reverse-ident optie van
tcpwrappers.Het is een goed idee om interne diensten af te schermen
voor toegang van buitenaf door ze te firewallen op de routers
aan de rand van een netwerk (border routers).
Dit heeft als achtergrond dat verzadigingsaanvallen voorkomen
van buiten het LAN voorkomen kunnen worden. Daarmee wordt geen
aanval op root via het netwerk en die
diensten daaraan voorkomen. Er dient altijd een exclusieve
firewall te zijn, d.w.z. firewall alles
behalve poorten A, B, C, D en M-Z.
Zo worden alle lage poorten gefirewalled behalve die voor
specifieke diensten als named (als
er een primary is voor een zone),
ntalkd,
sendmail en andere diensten die
vanaf internet toegankelijk moeten zijn. Als de firewall
andersom wordt ingesteld, als een inclusieve of tolerante
firewall, dan is de kans groot dat er wordt vergeten een aantal
diensten af te sluiten of dat er een nieuwe
interne dienst wordt toegevoegd en de firewall niet wordt
bijgewerkt. Er kan nog steeds voor gekozen worden de hoge
poorten open te zetten, zodat een tolerante situatie ontstaat,
zonder de lage poorten open te stellen. &os; biedt ook de
mogelijkheid een reeks poortnummers die gebruikt worden voor
dynamische verbindingen in te stellen via de verscheidene
net.inet.ip.portrangesysctls (sysctl -a | fgrep
portrange), waardoor ook de complexiteit van de
firewall instellingen kan vereenvoudigen. Zo kan bijvoorbeeld
een normaal begin tot eindbereik ingesteld worden van 4000 tot
5000 en een hoog poortbereik van 49152 tot 65535. Daarna kan
alles onder 4000 op de firewall geblokkeerd worden (met
uitzondering van bepaalde poorten die vanaf internet bereikbaar
moeten zijn natuurlijk).ICMP_BANDLIMEen andere veelvoorkomende DoS aanval is de springplank
aanval: een server zo aanvallen dat de respons van die server
de server zelf, het lokale netwerk of een andere machine
overbelast. De meest voorkomende aanval van dit type is de
ICMP ping broadcast aanval. De aanvaller
fingeert ping pakketten die naar het broadcast adres van het
LAN worden gezonden met als bron het IP adres
van de machine die hij eigenlijk aan wil vallen. Als de routers
aan de rand van het netwerk niet zijn ingesteld om een ping aan
een broadcast adres te blokkeren, dan kan het LAN genoeg
antwoorden produceren om de verbinding van het slachtoffer (het
gefingeerde bronadres) te verzadigen, zeker als de aanvaller
hetzelfde doet met tientallen andere netwerken.
Broadcastaanvallen met een volume van meer dan 120 megabit zijn
al voorgekomen. Een tweede springplank aanval is er een tegen
het ICMP foutmeldingssysteem. Door een pakket te maken waarop
een ICMP foutmelding komt, kan een aanvaller de inkomende
verbinding van een server verzadigen en de uitgaande verbinding
wordt verzadigd door de foutmeldingen. Dit type aanval kan een
server ook laten crashen, zeker als de server de ICMP
antwoorden niet zo snel kwijt kan als ze ontstaan. De kernel
van &os; kent een nieuwe compileeroptie
waarmee de effectiviteit van dit
type aanvallen afneemt. De laatste belangrijke klasse
springplankaanvallen hangt samen met een aantal interne
diensten van inetd zoals de UDP echo
dienst. Een aanvaller fingeert eenvoudigweg een UDP pakket met
als bronadres de echopoort van Server A en als bestemming de
echopoort van Server B, waar Server A en B allebei op een LAN
staan. Die twee servers gaan dat pakket dan heen en weer
kaatsen. Een aanvaller kan beide servers overbelasten door een
aantal van deze pakketten te injecteren. Soortgelijke problemen
kunnen ontstaan met de chargen
poort. Een competente systeembeheerder zal al deze interne
inetd test-diensten
uitschakelen.Gefingeerde pakketten kunnen ook gebruikt worden om de
kernel route cache te overbelasten. Raadpleeg daarvoor de
net.inet.ip.rtexpire,
rtminexpire en rtmaxcachesysctl parameters. Een aanval met
gefingeerde pakketten met een willekeurig bron IP zorgt ervoor
dat de kernel een tijdelijke cached route maakt in de
routetabel, die uitgelezen kan worden met netstat -rna
| fgrep W3. Deze routes hebben een levensduur van
ongeveer 1600 seconden. Als de kernel merkt dat de cached
routetabel te groot is geworden, dan wordt
rtexpire dynamisch verkleind, maar deze
waarde wordt nooit lager dan rtminexpire.
Er zijn twee problemen:De kernel reageert niet snel genoeg als een laag
belaste server wordt aangevallen.rtminexpire is niet laag genoeg om
de kernel de aanval te laten overleven.Als servers verbonden zijn met het internet via een E3
of sneller, dan is het verstandig om handmatig
rtexpire en rtminexpire
aan te passen via &man.sysctl.8;. Als de een van de parameters
op nul wordt gezet, dan crasht de machine. Het instellen van
beide waarden op 2 seconden is voldoende om de routetabel
tegen een aanval te beschermen.Aandachtspunten voor Toegang met
Kerberos en
SSHsshKerberosIVEr zijn een aantal aandachtspunten die in acht genomen
moeten worden als Kerberos of ssh gebruikt worden. Kerberos V
is een prima authenticatieprotocol, maar er zitten bugs in de
kerberos versies van telnet en
rlogin waardoor ze niet geschikt
zijn voor binair verkeer. Kerberos codeert standaard sessie
niet, tenzij de optie wordt gebruikt.
ssh codeert standaard wel
alles.ssh werkt prima, maar het stuurt coderingssleutels
standaard door. Dit betekent dat als gegeven een veilig
werkstation met sleutels die toegang geven tot de rest van het
systeem en ssh wordt gebruikt om verbinding te maken met een
onveilige machine, die sleutels gebruikt kunnen worden. De
sleutels zelf zijn niet bekend, maar ssh stelt een
doorstuurpoort in zolang als een gebruikers aangemeld blijft.
Als de aanvaller roottoegang heeft op de
onveilige machine, dan kan hij die poort gebruiken om toegang
te krijgen tot alle machines waar de sleutels van de gebruiker
toegang toe geven.Het advies is ssh in combinatie met Kerberos te gebruiken
voor het aanmelden door medewerkers wanneer dat ook maar
mogelijk is. ssh kan gecompileerd
worden met Kerberos ondersteuning. Dit vermindert de kans op
blootstelling van ssh sleutels en beschermt tegelijkertijd
de wachtwoorden met Kerberos. ssh sleutels zouden alleen
gebruikt moeten worden voor geautomatiseerde taken vanaf
veilige machines (iets waar Kerberos ongeschikt voor is). Het
advies is om het doorsturen van sleutels uit te schakelen in de
ssh instellingen of om de from=IP/DOMAIN
optie te gebruiken die ssh in staat stelt het bestand
authorized_keys te gebruiken om de
sleutel alleen bruikbaar te maken voor entiteiten die zich
aanmelden vanaf vooraf aangewezen machines.BillSwingleDelen geschreven en herschreven door SiebrandMazelandVertaald door DES, MD5 en CryptbeveiligingcryptcryptDESMD5Iedere gebruiker op een &unix; systeem heeft een wachtwoord
bij zijn account. Het lijkt voor de hand liggend dat deze
wachtwoorden alleen bekend horen te zijn bij de gebruiker en het
eigenlijke besturingssysteem. Om deze wachtwoorden geheim te
houden, zijn ze gecodeerd in een eenweg hash
(one-way hash), wat betekent dat ze eenvoudig
gecodeerd kunnen worden maar niet gedecodeerd. Met andere
woorden, wat net gesteld werd is helemaal niet waar: het
besturingssysteem kent het echte wachtwoord
niet. De enige manier om een wachtwoord in
platte tekst te verkrijgen, is door er met brute
kracht naar te zoeken in alle mogelijke wachtwoorden.Helaas was DES, de Data Encryption Standard, de enige
manier om wachtwoorden veilig te coderen toen &unix; ontstond.
Dit was geen probleem voor gebruikers in de VS, maar omdat
de broncode van DES niet geëxporteerd mocht worden moest
&os; een manier vinden om zowel te gehoorzamen aan de wetten van
de VS als aansluiting te houden bij alle andere &unix; varianten
die nog steeds DES gebruikten.De oplossing werd gevonden in het splitsen van de
coderingsbibliotheken zodat gebruikers in de VS de DES
bibliotheken konden installeren en gebruiken en internationale
gebruikers een coderingsmethode konden gebruiken die
geëxporteerd mocht worden. Zo is het gekomen dat &os; MD5
is gaan gebruiken als coderingsmethode. Van MD5 wordt aangenomen
dat het veiliger is dan DES, dus de mogelijkheid om DES te
installeren is vooral beschikbaar om aansluiting te kunnen
houden.Het Crypt Mechanisme HerkennenVoor &os; 4.4 was libcrypt.a een
symbolic link die wees naar de bibliotheek die gebruikt werd voor
codering. In &os; 4.4 veranderde libcrypt.a
zodat er een instelbare wachtwoordhash bibliotheek kwam. Op dit
moment ondersteunt de bibliotheek DES, MD5 en Blowfish
hashfuncties. Standaard gebruikt &os; MD5 om wachtwoorden te
coderen.Het is vrij makkelijk om uit te vinden welke
coderingsmethode &os; op een bepaald moment gebruikt. De
gecodeerde wachtwoorden in
/etc/master.passwd bekijken is een manier.
Wachtwoorden die gecodeerd zijn met MD5 zijn langer dan wanneer
ze gecodeerd zijn met DES hash. Daarnaast beginnen ze met de
karakters $1$. Wachtwoorden
die beginnen met $2a$ zijn
gecodeerd met de Blowfish hashfunctie. DES password strings
hebben geen bijzondere kenmerken, maar ze zijn korter dan MD5
wachtwoorden en gecodeerd in een 64-karakter alfabet waar geen
$ karakter in zit. Een relatief korte
string die niet begint met een dollar teken is dus
waarschijnlijk een DES wachtwoord.Het wachtwoord formaat voor nieuwe wachtwoorden wordt
ingesteld met de passwd_format
aanmeldinstelling in /etc/login.conf waar
des, md5 of
blf mag staan. Zie de &man.login.conf.5;
handboekpagina voor meer informatie over
aanmeldinstellingen.Eenmalige Wachtwoordeneenmalige wachtwoordenbeveiligingeenmalige wachtwoordenS/Key is een eenmalige wachtwoord methode die gebaseerd is op
de eenweg hashfunctie. &os; gebruikt een MD4 hash om aansluiting
te houden, maar andere systemen gebruiken ook wel MD5 en DES-MAC.
S/Key is al een onderdeel van het &os; basissysteem vanaf versie
1.1.5 en wordt ook in een groeiend aantal andere
besturingssystemen gebruikt. S/Key is een geregistreerd
handelsmerk van Bell Communications Research, Inc.Vanaf versie 5.0 van &os; is S/Key vervangen door OPIE
(Eenmalige Wachtwoorden in Alles - One-time Passwords In
Everything). OPIE gebruikt standaard een MD5 hash.Hier worden drie verschillende soorten wachtwoorden
besproken. De eerste is het normale &unix; of Kerberos
wachtwoord. Dit heet het &unix; wachtwoord. Het
tweede type is een eenmalig wachtwoord dat wordt gemaakt met het
S/Key programma key of het OPIE
programma &man.opiekey.1; en dat wordt geaccepteerd door
keyinit of &man.opiepasswd.1; en de
aanmeldprocedure. Dit heet het eenmalige
wachtwoord. Het laatste type wachtwoord is het
wachtwoord dat wordt opgegeven aan de key/
opiekey programma's (en soms aan de
keyinit / opiepasswd
programma's) die gebruikt worden om eenmalige wachtwoorden te
maken. Dit type heet geheim wachtwoord of gewoon
een wachtwoord zonder toevoeging.Het geheime wachtwoord heeft niets te maken met het &unix;
wachtwoord; ze kunnen hetzelfde zijn, dat wordt afgeraden. S/Key
en OPIE geheime wachtwoorden kennen niet de beperking van 8
karakters als de oude &unix; wachtwoorden.
Bij &os; mag het wachtwoord voor aanmelden tot 128
karakters lang zijn.
Het mag onbeperkt lang zijn. Wachtwoorden van een zes of zeven
woorden lange zin zijn niet ongewoon. Voor het overgrote deel
werkt het S/Key of OPIE systeem volledig onafhankelijk van het
&unix; wachtwoordsysteem.Buiten het wachtwoord zijn er nog twee stukjes data die van
belang zijn voor S/Key en OPIE. Het eerste wordt
zaad (seed) of
sleutel (key) genoemd en bestaat
uit twee letters en vijf cijfers. Het tweede stukje data heet de
iteratieteller (iteration count),
een nummer tussen 1 en 100. S/Key maakt een eenmalig wachtwoord
door het zaad en het geheime wachtwoord aaneen te schakelen en
daarop het door de iteratieteller aangegeven keren MD4/MD5 hash
toe te passen. Daarna wordt het resultaat omgezet in zes korte
Engelse woorden. Die zes woorden zijn een eenmalige wachtwoord.
Het authenticatiesysteem (hoofdzakelijk PAM) houdt bij welk
eenmalig wachtwoord het laatst is gebruikt en de gebruiker wordt
geauthenticeerd als de hash van het door de gebruiker ingegeven
wachtwoord gelijk is aan het vorige wachtwoord. Omdat er een
eenweg hash wordt gebruikt, is het onmogelijk om toekomstige
eenmalige wachtwoorden te maken als iemand toch een eenmalig
wachtwoord heeft afgevangen. De iteratieteller wordt verlaagd na
iedere succesvolle aanmelding om de gebruiker en het
aanmeldprogramma synchroon te houden. Als de iteratieteller op 1
staat, moeten S/Key en OPIE opnieuw ingesteld worden.Er zijn drie programma's bij ieder systeem betrokken die
hieronder worden besproken. De key en
opiekey programma's hebben een iteratieteller,
zaad en een geheim wachtwoord nodig en maken dan een eenmalig
wachtwoord of een lijst van opeenvolgende eenmalige wachtwoorden.
De programma's keyinit en
opiepasswd worden gebruikt om respectievelijk
S/Key en OPIE te initialiseren en om wachtwoorden,
iteratietellers en zaad te wijzigen. Ze accepteren zowel
wachtwoordzinnen als een iteratieteller, zaad en een eenmalig
wachtwoord. De programma's keyinfo en
opieinfo bekijken de relevante bestanden
waarin de eigenschappen staan (/etc/skeykeys
of /etc/opiekeys) en tonen de huidige
iteratieteller en zaad van de gebruiker die het commando
uitvoert.Nu worden vier verschillende acties besproken. Bij de eerste
worden keyinit of
opiepasswd gebruikt in een beveiligde
verbinding om voor het eerst eenmalige wachtwoorden in te stellen
of om een wachtwoord of zaad aan te passen. Bij de tweede worden
keyinit of opiepasswd
gebruikt in een niet-beveiligde verbinding samen met
key of opiekey over een
beveiligde verbinding om hetzelfde te bereiken. In een derde
scenario wordt key/opiekey
gebruikt om te melden over een onveilige verbinding. Het vierde
scenario behandelt het gebruik van key of
opiekey om een aantal sleutels aan te maken
die opgeschreven of afgedrukt kunnen worden, zodat ze meegenomen
kunnen worden naar een plaats van waar geen enkele veilige
verbinding opgezet kan worden.Veilige Verbinding InitialiserenOm S/Key voor de eerste keer te initialiseren, een
wachtwoord te wijzigen of zaad te veranderen over een
beveiligde verbinding (bv. op het console van een machine of
via ssh), moet het commando
keyinit gebruikt worden zonder parameters
terwijl een gebruiker als zichzelf is aangemeld:&prompt.user; keyinit
Adding unfurl:
Reminder - Only use this method if you are directly connected.
If you are using telnet or rlogin exit with no password and use keyinit -s.
Enter secret password:
Again secret password:
ID unfurl s/key is 99 to17757
DEFY CLUB PRO NASH LACE SOFTBij OPIE wordt opiepasswd
gebruikt:&prompt.user; opiepasswd -c
[grimreaper] ~ $ opiepasswd -f -c
Adding unfurl:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter new secret pass phrase:
Again new secret pass phrase:
ID unfurl OTP key is 499 to4268
MOS MALL GOAT ARM AVID COEDAls Enter new secret pass phrase: of
Enter secret password: op het scherm verschijnt,
dient een wachtwoord of wachtwoordzin ingevoerd te worden. Dit
is dus niet het aanmeldwachtwoord is, maar dat dit wordt gebruikt
om eenmalige wachtwoorden te maken. De ID regel
geeft de parameters van het verzoek weer: de aanmeldnaam, de
iteratieteller en zaad. Bij het aanmelden kent het systeem deze
parameters en worden deze weergegeven zodat ze niet onthouden
hoeven te worden. Op de laatste regel staat het eenmalige
wachtwoord dat overeenkomt met die parameters en het geheime
wachtwoord. Als de gebruiker direct opnieuw zou aanmelden, zou
hij dat eenmalige wachtwoord moeten gebruiken.Onveilige Verbinding InitialiserenOm te initialiseren of een wachtwoord te wijzigen over een
onveilige verbinding, moet er al ergens een veilige verbinding
bestaand de gebruiker key of
opiekey kan uitvoeren. Dit kan een desktop
programma zijn op een &macintosh; of een shell prompt op een
machine die vertrouwd wordt. De gebruiker moet ook een
iteratieteller verzinnen (100 is wellicht een prima getal) en
moet een eigen zaad bedenken of er een laten fabriceren. Over
de onveilige verbinding (naar de machine die de gebruiker wil
initialiseren) wordt het commando keyinit -s
gebruikt:&prompt.user; keyinit -s
Updating unfurl:
Old key: to17758
Reminder you need the 6 English words from the key command.
Enter sequence count from 1 to 9999: 100
Enter new key [default to17759]:
s/key 100 to 17759
s/key access password:
s/key access password:CURE MIKE BANE HIM RACY GOREBij OPIE is dat opiepasswd:&prompt.user; opiepasswd
Updating unfurl:
You need the response from an OTP generator.
Old secret pass phrase:
otp-md5 498 to4268 ext
Response: GAME GAG WELT OUT DOWN CHAT
New secret pass phrase:
otp-md5 499 to4269
Response: LINE PAP MILK NELL BUOY TROY
ID mark OTP key is 499 gr4269
LINE PAP MILK NELL BUOY TROYOm het standaard zaad te accepteren (dat het programma
keyinit nogal verwarrend een
key) noemt, is de invoer
Return. Voor een toegangswachtwoord wordt
ingevoerd, dient eerst gewisseld te worden naar de veilige
verbinding of het S/Key desktop programma en dienen dezelfde
parameters ingegeven te worden:&prompt.user; key 100 to17759
Reminder - Do not use this program while logged in via telnet or rlogin
Enter secret password: <secret password>
CURE MIKE BANE HIM RACY GOREOf bij OPIE:&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHATIn de onveilige verbinding wordt nu het eenmalige
wachtwoord in het relevante programma
gekopieerd.Een Enkel Eenmalig Wachtwoord MakenAls S/Key of OPIE eenmaal is ingesteld staat er bij het
aanmelden iets als het volgende:&prompt.user; telnet example.com
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <username>
s/key 97 fw13894
Password:Of bij OPIE:&prompt.user; telnet example.com
Trying 10.0.0.1...
Connected to example.com
Escape character is '^]'.
FreeBSD/i386 (example.com) (ttypa)
login: <username>
otp-md5 498 gr4269 ext
Password: NB: de S/Key en OPIE meldingen hebben een erg zinvolle
optie (die hier niet te zien is): als er op
Return wordt gedrukt bij de wachtwoordregel,
wordt de echo aangezet, zodat de invoer zichtbaar is. Dit is
erg handig als er met de hand een wachtwoord wordt ingegeven,
zoals wanneer het wordt ingevoerd vanaf een afdruk.MS-DOSWindowsMacOSNu moet het eenmalige wachtwoord gemaakt worden om het
aanmeldprompt mee te antwoorden. Dit moet gedaan worden op een
vertrouwd systeem waarop key of
opiekey beschikbaar is. Er zijn ook
- versies voor DOS, &windows; en &macos;. Voor beide commando's
- moet zowel de iteratieteller als het zaad ingeven worden op de
- commandoregel. Deze kan zo overgenomen worden vanaf het
- aanmeldprompt op de machine waarop de gebruiker wil
+ versies voor &ms-dos;, &windows; en &macos;. Voor beide
+ commando's moet zowel de iteratieteller als het zaad ingeven
+ worden op de commandoregel. Deze kan zo overgenomen worden
+ vanaf het aanmeldprompt op de machine waarop de gebruiker wil
aanmelden.Op het vertrouwde systeem:&prompt.user; key 97 fw13894
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password:
WELD LIP ACTS ENDS ME HAAGBij OPIE:&prompt.user; opiekey 498 to4268
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:
GAME GAG WELT OUT DOWN CHATNu het eenmalige wachtwoord er is, kan het aanmelden
doorgang vinden:login: <username>
s/key 97 fw13894
Password: <return to enable echo>
s/key 97 fw13894
Password [echo on]: WELD LIP ACTS ENDS ME HAAG
Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ... Meerdere Eenmalige Wachtwoorden MakenSoms moet is een gebruiker ergens waarvandaan er geen
toegang is tot een vertrouwde machine of een beveiligde
verbinding. In dat geval is het mogelijk om met de
key en opiekey commando's
een aantal eenmalige wachtwoorden te maken om uit te printen en
deze mee te nemen:&prompt.user; key -n 5 30 zz99999
Reminder - Do not use this program while logged in via telnet or rlogin.
Enter secret password: <secret password>
26: SODA RUDE LEA LIND BUDD SILT
27: JILT SPY DUTY GLOW COWL ROT
28: THEM OW COLA RUNT BONG SCOT
29: COT MASH BARR BRIM NAN FLAG
30: CAN KNEE CAST NAME FOLK BILKOf bij OPIE:&prompt.user; opiekey -n 5 30 zz99999
Using the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase: <secret password>
26: JOAN BORE FOSS DES NAY QUIT
27: LATE BIAS SLAY FOLK MUCH TRIG
28: SALT TIN ANTI LOON NEAL USE
29: RIO ODIN GO BYE FURY TIC
30: GREW JIVE SAN GIRD BOIL PHIMet worden vijf opeenvolgende
sleutels aangevraagd, geeft aan wat het
laatste iteratiegetal moet zijn. Deze wachtwoorden worden
weergegeven in omgekeerde volgorde voor
gebruik. Als de gebruiker echt paranoïde bent kan hij ze
opschrijven of hij kan er ook voor kiezen ze af te drukken met
lpr. Op iedere regel staat dus de
iteratieteller en het eenmalige wachtwoord, maar misschien is
het toch handig om ze na gebruik af te strepen.Gebruik van &unix; Wachtwoorden BeperkenS/Key kan beperkingen plaatsen op het gebruik van &unix;
wachtwoorden gebaseerd op hostnaam, gebruikersnaam,
terminalpoort of IP adres van een
aanmeldsessie. Deze beperkingen staan in het
instellingenbestand /etc/skey.access.
De handboekpagina voor &man.skey.access.5; bevat meer
informatie over de inhoud van het bestand en bevat ook details
over een aantal aandachtspunten voor beveiliging voordat
besloten wordt dit bestand te gebruiken in de
beveiliging.Als het bestand /etc/skey.access niet
bestaat (dat mag in &os; 4.X systemen), dan mogen alle
gebruikers hun &unix; wachtwoord gebruiken. Maar als het
bestand wel bestaat, dan moeten alle gebruikers S/Key
gebruiken, tenzij iets anders expliciet wordt toegestaan door
instellingen in het bestand skey.access.
In alle gevallen worden &unix; wachtwoorden op het console wel
toegestaan.Nu volgt een voorbeeld met instellingen in het bestand
skey.access waarin de drie meest gebruikte
instellingen terugkomen:permit internet 192.168.0.0 255.255.0.0
permit user fnord
permit port ttyd0In de eerste regel (permit internet)
staat dat gebruikers met een bron IP adres
(wat gefingeerd kan worden) dat past binnen de aangegeven
waarde en masker altijd &unix; wachtwoorden mogen gebruiken.
Dit mag niet gezien worden als beveiligingsmechanisme, maar
eerder als een mogelijkheid om gebruikers aan wie het wordt
toegestaan eraan te herinneren dat ze op een onveilig netwerk
zitten en gebruik moeten maken van S/Key bij het aanmelden.De tweede regel (permit user) staat de
gebruiker fnord toe om altijd &unix;
wachtwoorden te gebruiken. In het algemeen dient dit alleen
gebruikt te worden voor gebruikers die niet in staat zijn het
programma key te gebruiken, zoals gebruikers
met domme terminals of gebruikers die totaal niet op te voeden
zijn.De derde regel (permit port) staat
gebruikers die aanmelden vanaf een aangegeven
terminalverbinding toe om &unix; wachtwoorden te gebruiken.
Dit kan gebruikt worden voor inbellers.Met OPIE kan ook paal en perk gesteld worden aan het
gebruik van &unix; wachtwoorden op basis van het
IP adres van een aanmeldsessie, net als met
S/Key. Dat kan met het bestand
/etc/opieaccess dat standaard aanwezig is
op &os; 5.0 en latere systemen. Bij &man.opieaccess.5; staat
meer informatie over dit bestand en welke
beveiligingsoverwegingen bestaan bij het gebruik.Hieronder een voorbeeld voor een
opieaccess bestand:permit 192.168.0.0 255.255.0.0In deze regel (permit internet) staat
dat gebruikers met een bron IP adres (wat
gefingeerd kan worden) dat past binnen de aangegeven waarde en
masker altijd &unix; wachtwoorden mogen gebruiken.Als geen van de regels uit opieaccess
van toepassing is, worden standaard pogingen zonder OPIE
geweigerd.TomRhodesGeschreven door SiebrandMazelandVertaald door TCP WrapperTCP WrappersIedereen die bekend is met &man.inetd.8; heeft waarschijnlijk
wel eens van TCP Wrappers gehoord. Maar
slechts weinigen lijken volledig te begrijpen hoe ze in een
netwerkomgeving toegepast kunnen worden. Het schijnt dat
iedereen een firewall wil hebben om netwerkverbindingen af te
handelen. Ondanks dat een firewall veel kan, zijn er toch dingen
die hij niet kan, zoals tekst terugsturen naar ontstaansplaats
van een verbinding. De TCP software kan dat
en nog veel meer. In dit onderdeel worden de
TCP Wrappers mogelijkheden besproken en, waar
dat van toepassing is, worden ook voorbeelden voor implementatie
gegeven.De TCP Wrappers software vergroot de
mogelijkheden van inetd door de mogelijkheid
al zijn serverdaemons te controleren. Met deze methode is het
mogelijk om te loggen, berichten te zenden naar verbindingen, een
daemon toe te staan alleen interne verbindingen te accepteren,
etc. Hoewel een aantal van deze mogelijkheden ook ingesteld
kunnen worden met een firewall, geeft deze manier niet alleen een
extra laag beveiliging, maar gaat dit ook verder dan wat een
firewall kan bieden.De toegevoegde waarde van TCP Wrappers
- is niet dat het een goede firewall vervangt. Het moet samen
- met een firewall en andere beveiligingsinstellingen gebruikt
- worden om een extra laag van beveiliging voor het systeem te
- bieden.
+ is niet dat het een goede firewall vervangt.
+ TCP Wrappers kunnen samen met een firewall en
+ andere beveiligingsinstellingen gebruikt worden om een extra laag
+ van beveiliging voor het systeem te bieden.
Omdat dit een uitbreiding is op de instellingen van
inetd, wordt aangenomen dat de lezer het
onderdeel inetd configuration heeft
gelezen.Hoewel programma's die onder &man.inetd.8; draaien niet
echt daemons zijn, heten ze traditioneel wel zo.
Deze term wordt hier dus ook gebruikt.Voor het Eerst InstellenDe enige voorwaarde voor het gebruiken van
TCP Wrappers in &os; is ervoor te zorgen
dat de inetd gestart wordt vanuit
rc.conf met de optie .
Dit is de standaardinstelling. Er wordt vanuit gegaan dat
/etc/hosts.allow juist is ingesteld, maar
als dat niet zo is, dan zal &man.syslogd.8; dat melden.In tegenstelling tot bij andere implementaties van
TCP Wrappers is het gebruik van
hosts.deny niet langer mogelijk. Alle
instellingen moeten in /etc/hosts.allow
staan.In de meest eenvoudige instelling worden verbindingen naar
daemons toegestaan of geweigerd afhankelijk van de opties in
/etc/hosts.allow. De standaardinstelling
in &os; is verbindingen toe te staan naar iedere daemon die met
inetd is gestart. Na de basisinstelling
wordt aangegeven hoe dit gewijzigd kan worden.De basisinstelling heeft meestal de vorm
daemon : adres : actie.
daemon is de daemonnaam die
inetd heeft gestart. Het
adres kan een geldige hostnaam, een
IP adres of een IPv6 adres tussen
blokhaken ([ ]) zijn. Het veld actie kan
allow of deny zijn, afhankelijk van of toegang toegestaan of
geweigerd moet worden. De instellingen werken zo dat ze
worden doorlopen van onder naar boven om te kijken welke regel
als eerste van toepassing is. Als een regel van toepassing is
gevonden, dan stop het zoekproces.Er zijn nog andere mogelijkheden, maar die worden elders
toegelicht. Een eenvoudige instelling kan al van met deze
informatie worden gemaakt. Om bijvoorbeeld
POP3 verbindingen toe te staan via de
mail/qpopper daemon,
zouden de volgende instellingen moeten worden toegevoegd aan
hosts.allow:# This line is required for POP3 connections:
qpopper : ALL : allowNadat deze regel is toegevoegd moet
inetd herstart worden. Dit gaat met het
&man.kill.1; commando of met de restart
parameter met /etc/rc.d/inetd.Gevorderde InstellingenTCP Wrappers hebben ook gevorderde
instellingen. Daarmee komt meer controle over de wijze waarop
er met verbindingen wordt omgegaan. Soms is het een goed idee
om commentaar te sturen naar bepaalde hosts of
daemonverbindingen. In andere gevallen moet misschien iets
in een logboekbestand geschreven worden of een e-mail naar de
beheerder gestuurd worden. Dit kan allemaal met instellingen
die wildcards, uitbreidingskarakters
(expansion characters) en het uitvoeren van externe commando's
heten. De volgende twee paragrafen beschrijven deze
mogelijkheden.Externe Commando'sStel dat zich de situatie voordoet waar een verbinding
geweigerd moet worden, maar er een reden gestuurd moet
worden naar het individu dat die verbinding probeerde op te
zetten. Hoe gaat dat? Dat is mogelijk door gebruik te
maken van de optie . Als er een
poging tot verbinding wordt gedaan, wordt er met
een shellcommando of script
uitgevoerd. Er staat al een voorbeeld in
hosts.allow:# De andere daemons zijn beschermd.
ALL : ALL \
: severity auth.info \
: twist /bin/echo "You are not welcome to use %d from %h."Dit voorbeeld geeft aan dat het bericht You are
not allowed to use daemon from
hostname. wordt teruggestuurd
voor iedere daemon die niet al is ingesteld in het
toegangsbestand. Het is erg handig om een antwoord terug
te sturen naar degene die een verbinding op heeft willen
zetten meteen nadat een tot stand gekomen verbinding is
verbroken. Let wel dat alle berichten die gezonden worden
moeten staan tussen "
karakters. Hier zijn geen uitzonderingen op. Het is mogelijk een ontzegging van dienst aanval uit
te voeren op de server als een aanvaller, of een groep
aanvallers, deze daemons kan overstromen met verzoeken om
verbindingen te maken.Het is ook mogelijk hier de optie
te gebruiken. Net als weigert
impliciet de verbinding en kan het
gebruikt worden om shellcommando's of scripts uit te voeren.
Anders dan bij stuurt
geen bericht aan degene die de
verbinding wilde maken. Zie bijvoorbeeld de volgende
instelling:# Geen verbindingen van example.com:
ALL : .example.com \
: spawn (/bin/echo %a from %h attempted to access %d >> \
/var/log/connections.log) \
: denyHiermee worden alle verbindingen van het domein
*.example.com geweigerd.
Tegelijkertijd worden ook hostnaam, IP
adres en de daemon waarmee verbinding werd gemaakt naar
/var/log/connections.log
geschreven.Naast de vervangingskarakters die al zijn toegelicht,
zoals %a, bestaan er nog een paar andere. In de
handboekpagina van &man.hosts.access.5; staat een volledige
lijst.Wildcard OptiesTot nu toe is in ieder voorbeeld ALL
gebruikt. Er bestaan nog andere opties waarmee de
mogelijkheden nog verder gaan. Zo kan ALL
gebruikt worden om van toepassing te zijn op iedere instantie
van een daemon, domein of een IP adres.
Een andere wildcard die gebruikt kan worden is
PARANOID. Daarmee wordt iedere host die
een IP adres geeft dat gefingeerd kan zijn
aangeduid. In andere woorden: paranoid
kan gebruikt worden om een actie aan te geven als er een
IP adres gebruikt wordt dat verschilt van
de hostnaam. Het volgende voorbeeld kan wat verheldering
brengen:# Weiger mogelijke gespoofte verzoeken aan sendmail:
sendmail : PARANOID : denyIn het voorgaande voorbeeld worden alle
verbindingsverzoeken aan sendmail met een
IP adres dat verschilt van de hostnaam
geweigerd.Het gebruik van PARANOID kan nogal
wat schade aanrichten als de client of de server kapotte
DNS instellingen heeft. Voorzichtigheid
van de beheerder is geboden.De handboekpagina van &man.hosts.access.5; geeft meer
uitleg over wildcards en de mogelijkheden die ze
bieden.Voordat de bovenstaande instellingen werken, dient de
eerste regels in hosts.allow als
commentaar gemarkeerd te worden.MarkMurrayBijgedragen door MarkDapozGebaseerd op een bijdrage van SiebrandMazelandVertaald door KerberosIVKerberos is een netwerkdienst,
protocol en systeem waarmee gebruikers zich kunnen aanmelden met
behulp van een dienst op een veilige server. Diensten als op een
andere server aanmelden, op afstand kopiëren, veilig tussen
systemen kopiëren en andere taken met een hoog risico worden
aanmerkelijk veiliger en beter controleerbaar.De onderstaande instructies kunnen gebruikt worden als
handleiding voor het opzetten van Kerberos op &os;. Voor een
volledige beschrijving wordt verwezen naar de relevante
handboekpagina's.KerberosIV InstallerenMITKerberosIV
- Installeren
+ installerenKerberos is een optioneel component van &os;. De meest
eenvoudige manier om de software te installeren is het
selecteren van de krb4 of
krb5 distributie in
sysinstall tijdens de initiële
installatie van &os;. Hierdoor wordt de eBones
(KerberosIV) of Heimdal (Kerberos5)
implementatie van Kerberos geïnstalleerd. Deze
implementaties zijn beschikbaar omdat ze ontwikkeld zijn buiten
de VS/Canada en dus zijn ze beschikbaar voor systeemeigenaren
buiten die landen in dit tijdperk waarin er beperkingen gelden
ten aanzien van de export van coderingsprogramma's uit de
VS.Het is ook mogelijk te kiezen voor de MIT implementatie van
Kerberos via de ports collectie: security/krb5.Maken van de Initiële DatabaseDit hoeft alleen op de Kerberos gedaan te worden. Er
dienen geen oude Kerberos databases rond te slingeren.
Controleer in de map /etc/kerberosIV of de
volgende bestanden aanwezig zijn:&prompt.root; cd /etc/kerberosIV
&prompt.root; ls
README krb.conf krb.realmsAls er nog meer bestanden zijn (zoals
principal.* of
master_key), dan kan met het programma
kdb_destroy de oude Kerberos database
vernietigd worden of de overige bestanden kunnen verwijderd
worden als Kerberos niet draait.Nu moeten de bestanden krb.conf en
krb.realms gewijzigd om de Kerberos wereld
te definiëren. In dit geval heet de wereld
EXAMPLE.COM en de server heet
grunt.example.com. Wijzig of
creëer het bestand krb.conf:&prompt.root; cat krb.conf
EXAMPLE.COM
EXAMPLE.COM grunt.example.com admin server
CS.BERKELEY.EDU okeeffe.berkeley.edu
ATHENA.MIT.EDU kerberos.mit.edu
ATHENA.MIT.EDU kerberos-1.mit.edu
ATHENA.MIT.EDU kerberos-2.mit.edu
ATHENA.MIT.EDU kerberos-3.mit.edu
LCS.MIT.EDU kerberos.lcs.mit.edu
TELECOM.MIT.EDU bitsy.mit.edu
ARC.NASA.GOV trident.arc.nasa.govIn dit geval hoeven de andere werelden er niet te zijn. Ze
staan er als voorbeeld van hoe een machine attent gemaakt kan
worden op het bestaan van meerdere werelden. In een eigen test
kan ervoor gekozen worden ze weg te laten.De eerste regel benoemt de wereld waarin het systeem
opereert. De andere regels bevatten werelden/hosts. Het
eerste deel van een regel bevat de wereld en het tweede deel is
een host in die wereld die fungeert als sleutel
distributiecentrum. De woorden admin
server achter een hostnaam betekenen dat een host
ook administratieve database server is. In de handboekpagina's
van Kerberos wordt hierover meer uitleg gegeven.Nu moet grunt.example.com aan
de wereld EXAMPLE.COM toegevoegd worden en
er moet ook een instelling gemaakt worden voor alle hosts uit
het .example.com domein in
de wereld EXAMPLE.COM. Het bestand
krb.realms dient dan als volgt gewijzigd
te worden:&prompt.root; cat krb.realms
grunt.example.com EXAMPLE.COM
.example.com EXAMPLE.COM
.berkeley.edu CS.BERKELEY.EDU
.MIT.EDU ATHENA.MIT.EDU
.mit.edu ATHENA.MIT.EDUNogmaals: de andere werelden hoeven er niet te staan. Ze
staan er als voorbeeld hoe een machine van het bestaan van
andere werelden op de hoogte gebracht kan worden. Om het
overzichtelijker te maken, kan mogen ze verwijderd
worden.De eerste regel plaatst het specifieke
systeem in de genoemde wereld. De rest van de regels geeft aan
hoe standaardsystemen uit een bepaald subdomein in een wereld
plaatst worden.Nu kan de database aangemaakt worden. Dit hoeft alleen op
de Kerberos server gedaan te worden (of Sleutel Distributie
Centrum) met het commando kdb_init:&prompt.root; kdb_initRealm name [default ATHENA.MIT.EDU ]:EXAMPLE.COM
You will be prompted for the database Master Password.
It is important that you NOT FORGET this password.
Enter Kerberos master key:Nu moet de sleutel opgeslagen worden zodat diensten op de
lokale machine er gebruik van kunnen maken met het commando
kstash:&prompt.root; kstashEnter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!Nu is de gecodeerde hoofdsleutel opgeslagen in
/etc/kerberosIV/master_key.Help Het aan de PraatKerberosIV
- Eerste keer starten
+ eerste keer startenVoor ieder systeem dat met Kerberos
wordt beveiligd moeten twee principals worden aangemaakt. Die
heten kpasswd en rcmd.
Deze twee principals worden aangemaakt voor iedere systeem en
de instantie is de naam van het systeem.Deze daemons, kpasswd en
rcmd, staan andere systemen toe om
Kerberos wachtwoorden te wijzigen en commando's als
&man.rcp.1;, &man.rlogin.1; en &man.rsh.1; uit te
voeren.Deze worden nu toegevoegd:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:passwdInstance:grunt
<Not found>, Create [y] ?y
Principal: passwd, Instance: grunt, kdc_key_ver: 1
New Password: <---- enter RANDOM here
Verifying password
New Password: <---- enter RANDOM here
Random password [y] ?y
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name:rcmdInstance:grunt
<Not found>, Create [y] ?
Principal: rcmd, Instance: grunt, kdc_key_ver: 1
New Password: <---- enter RANDOM here
Verifying password
New Password: <---- enter RANDOM here
Random password [y] ?
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- null entry here will cause an exitAanmaken van het ServerbestandNu moeten alle instanties die de diensten op iedere server
definiëren geëxtraheerd worden. Dat kan met het
commando ext_srvtab. Dit commando maakt een
bestand aan dat veilig gekopieerd moet
worden naar de map /etc/kerberosIV van
iedere Kerberos client. Dit bestand moet aanwezig zijn op
iedere server en op iedere client en is van doorslaggevend
belang voor de werking van Kerberos.&prompt.root; ext_srvtab gruntEnter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Generating 'grunt-new-srvtab'....Het bovenstaande commando maakt een tijdelijk bestand aan
dat hernoemd moet worden naar srvtab zodat
alle diensten erbij kunnen. Met &man.mv.1; kan het op de
juiste plaats op het originele systeem gezet worden:&prompt.root; mv grunt-new-srvtab srvtabAls het bestand voor een clientsysteem is en het netwerk is
niet veilig, dan kan het bestand
client-new-srvtab
dan naar een verwijderbaar medium gekopieerd worden en dan
fysiek veilig getransporteerd worden. Op de client dient het
bestand srvtab te heten in de map
/etc/kerberosIV en in mode 600 te
staan:&prompt.root; mv grumble-new-srvtab srvtab
&prompt.root; chmod 600 srvtabDe Database VullenNu moeten de gebruikers in de database. In dit voorbeeld
wordt de gebruiker jane als eerste
ingevoerd. Hiervoor is het commando
kdb_edit:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:janeInstance:
<Not found>, Create [y] ?y
Principal: jane, Instance: , kdc_key_ver: 1
New Password: <---- enter a secure password here
Verifying password
New Password: <---- re-enter the password here
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- null entry here will cause an exitAlles TestenEerst moeten de Kerberos daemons gestart worden. Als de
juiste wijziging in /etc/rc.conf zijn
gemaakt, dan gebeurt dit automatisch na een herstart. Dit
hoeft alleen ingesteld te worden op de Kerberos server.
Kerberos clients vinden automatisch wat ze zoeken in de
map /etc/kerberosIV.&prompt.root; kerberos &
Kerberos server starting
Sleep forever on error
Log file is /var/log/kerberos.log
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Current Kerberos master key version is 1
Local realm: EXAMPLE.COM
&prompt.root; kadmind -n &
KADM Server KADM0.0A initializing
Please do not use 'kill -9' to kill this job, use a
regular kill instead
Current Kerberos master key version is 1.
Master key entered. BEWARE!Nu kunnen kan er getest worden of met het commando
kinit een ticket (kaartje) gekregen kan
worden voor het ID jane dat net is
aangemaakt:&prompt.user; kinit jane
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane"
Password:Met klist kan gecontroleerd worden of de
tokens er echt zijn:&prompt.user; klist
Ticket file: /tmp/tkt245
Principal: jane@EXAMPLE.COM
Issued Expires Principal
Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COMNu wordt het wachtwoord gewijzigd met &man.passwd.1; om
te controleren of de kpasswd daemon
autorisatie krijgt van de Kerberos database:&prompt.user; passwd
realm EXAMPLE.COM
Old password for jane:New Password for jane:
Verifying password
New Password for jane:
Password changed.su Rechten ToewijzenKerberos biedt mogelijkheid iedere
gebruiker die rootrechten nodig heeft zijn
eigen afzonderlijke &man.su.1; wachtwoord
te geven. Nu wordt een ID toegevoegd dat geautoriseerd is om
&man.su.1; te gebruiken naar root. Dit
wordt geregeld door een instantie van root
te verbinden met een principal. Met
kdb_edit kan jane.root
gemaakt worden in de Kerberos database:&prompt.root; kdb_edit
Opening database...
Enter Kerberos master key:
Current Kerberos master key version is 1.
Master key entered. BEWARE!
Previous or default values are in [brackets] ,
enter return to leave the same, or new value.
Principal name:janeInstance:root
<Not found>, Create [y] ? y
Principal: jane, Instance: root, kdc_key_ver: 1
New Password: <---- enter a SECURE password here
Verifying password
New Password: <---- re-enter the password here
Principal's new key version = 1
Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?Max ticket lifetime (*5 minutes) [ 255 ] ?12 <--- Keep this short!
Attributes [ 0 ] ?
Edit O.K.
Principal name: <---- null entry here will cause an exitEen lijst van de tokens kan bevestigen als alles werkt
zoals verwacht:&prompt.root; kinit jane.root
MIT Project Athena (grunt.example.com)
Kerberos Initialization for "jane.root"
Password:Nu dient de gebruiker toegevoegd te worden aan het
bestand .klogin van
root:&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COMNa een &man.su.1;:&prompt.user; suPassword:kan de lijst met tokens bekeken worden:&prompt.root; klist
Ticket file: /tmp/tkt_root_245
Principal: jane.root@EXAMPLE.COM
Issued Expires Principal
May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COMAndere Commando's GebruikenIn een eerder voorbeeld is een principal met de naam
jane gemaakt met een instantie
root. Dit was gebaseerd op een gebruiker met
dezelfde naam als de principal en dit is de standaard binnen
Kerberos: een
<principal>.<instantie> in de
vorm van <gebruikersnaam>.root staat die
<gebruikersnaam> het gebruik van
&man.su.1; naar root toe als de benodigde
instellingen in het bestand .klogin in de
home directory van root zijn
gemaakt:&prompt.root; cat /root/.klogin
jane.root@EXAMPLE.COMZo werkt het ook als een gebruiker in zijn eigen home
directory iets als volgt heeft opgenomen:&prompt.user; cat ~/.klogin
jane@EXAMPLE.COM
jack@EXAMPLE.COMHierdoor mag iedereen die zich in de wereld
EXAMPLE.COM heeft geauthenticeerd als
jane of jack (via
kinit, zie boven) bij
jane's account of de bestanden op dit
systeem (grunt) met &man.rlogin.1;,
&man.rsh.1; of &man.rcp.1;.Nu meldt bijvoorbeeld jane zich aan
op een ander systeem met Kerberos:&prompt.user; kinit
MIT Project Athena (grunt.example.com)
Password:
&prompt.user; rlogin grunt
Last login: Mon May 1 21:14:47 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995Of jack meldt zich aan op
jane's account op dezelfde machine
(jane heeft het bestand
.klogin ingesteld zoals hierboven en de
beheerder van Kerberos heeft een principal
jack aangemaakt zonder instantie):&prompt.user; kinit
&prompt.user; rlogin grunt -l jane
MIT Project Athena (grunt.example.com)
Password:
Last login: Mon May 1 21:16:55 from grumble
Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995TillmanHodgsonBijgedragen door MarkMurrayGebaseerd op een bijdrage van SiebrandMazelandVertaald door Kerberos5Iedere &os; release hoger dan &os;-5.1 bevat alleen
ondersteuning voor Kerberos5. Daarom
is Kerberos5 de enige versie die erbij
zit. De instellingen zijn op veel gebieden gelijk aan die van
KerberosIV. De nu volgende informatie
geldt alleen voor &os;-5.0 releases en verder. Gebruikers die
het KerberosIV package willen
gebruiken kunnen dat installeren uit de
security/krb4 port.Kerberos is een netwerkdienst,
protocol en systeem waarmee gebruikers zich kunnen aanmelden
met behulp van een dienst op een veilige server. Diensten als
op een andere server aanmelden, op afstand kopiëren, veilig
tussen systemen kopiëren en andere taken met een hoog risico
worden aanmerkelijk veiliger en beter controleerbaar.Kerberos kan omschrijven worden
als identiteitbevestigend proxy systeem. Het kan ook
omschreven worden als een vertrouwd authenticatiesysteem van een
derde partij. Kerberos vervult maar
één taak: het veilig authenticeren van gebruikers
op het netwerk. Het vervult geen autorisatietaken (wat
gebruikers mogen) en controleert ook niets (wat gebruikers hebben
gedaan). Nadat een client en server
Kerberos hebben gebruikt om hun
identiteit vast te stellen kunnen ze ook al hun communicatie
coderen om hun privacy en data-integriteit te garanderen.Daarom wordt het sterk aangeraden om
Kerberos samen met andere
beveiligingsmechanismen te gebruiken die autorisatie en
controlemogelijkheden bieden.De aanwijzingen die nu volgen kunnen gebruikt worden als
werkinstructie om Kerberos in te
stellen zoals dat wordt meegeleverd met &os;. Een complete
beschrijving staat in de handboekpagina.Voor demonstratie van de installatie van
Kerberos wordt gebruik gemaakt van de
volgende naamgeving:Het DNS domein (zone)
is example.org.De Kerberos wereld is
EXAMPLE.ORG.Het advies is voor installaties van
Kerberos echte domeinnamen te
gebruiken, zelfs als het alleen intern wordt gebruikt. Hiermee
worden DNS problemen voorkomen is een
goede samenwerking met andere
Kerberos werelden verzekerd.GeschiedenisKerberos5
- Geschiedenis
+ geschiedenisKerberos is ontworpen door
MIT als oplossing voor
netwerkbeveiligingsproblemen. Het
Kerberos protocol gebruikt sterke
codering zodat een client zijn identiteit kan bewijzen aan een
server (en andersom) over een onveilige
netwerkverbinding.Kerberos is zowel de naam van
een netwerkautorisatieprotocol als een bijvoeglijk naamwoord om
de programma's te beschrijven die gebruik maken van het
programma (zoals Kerberos telnet).
De huidige versie van het protocol is versie 5 en is beschreven
in RFC 1510.Er zijn een aantal vrij beschikbare implementaties van dit
protocol beschikbaar voor veel systemen. Het Massachusetts
Institute of Technology (MIT), waar
Kerberos ooit is ontwikkeld,
ontwikkelt nog steeds door aan hun
Kerberos pakket. Het wordt in de
VS veel gebruikt als coderingspakket en
daarom wordt het ook geraakt door de exportwetgeving van de
VS. Kerberos
van MIT is beschikbaar als port
(security/krb5). Heimdal
Kerberos is een andere implementatie
van versie 5 die expliciet buiten de VS is
ontwikkeld om de exportwetgeving de omzeilen (en wordt daarom
vaak gebruikt in niet-commerciële &unix; varianten). De
Heimdal Kerberos distributie is
beschikbaar als port (security/heimdal) en er zit een
minimale installatie in de basisinstallatie van &os;.Om het grootst mogelijke publiek te bereiken gaan deze
instructies ervan uit dat de Heimdal distributie die bij &os;
zit wordt gebruikt.Opzetten van een Heimdal KDCKerberos5
- Sleutel Distributie Centrum Instellingen
+ sleutel distributie centrum instellingenHet Sleutel Distributie Centrum (KDC,
voluit Key Distribution Center) is de
gecentraliseerde authenticatiedienst die
Kerberos levert. Het is de computer
die Kerberos tickets uitgeeft. Het
KDC wordt vertrouwd door
alle andere computer in de Kerberos
wereld en daarom dient er een strenger beveiligingsregime op
van kracht te zijn.Hoewel het draaien van de
Kerberos dienst erg weinig van een
systeem vraagt, wordt het wel aangeraden om een machine in te
richten exclusief voor het KDC om
beveiligingsredenen.Het opzetten van een KDC begint met de
controle of de instellingen in
/etc/rc.conf juist zijn om te functioneren
als KDC (misschien moeten paden veranderd
worden voor een eigen systeem):kerberos5_server_enable="YES"
kadmind5_server_enable="YES"
kerberos_stash="YES" is alleen beschikbaar in
&os; 4.X.Daarna wordt het Kerberos
instellingenbestand /etc/krb5.conf
aangemaakt:[libdefaults]
default_realm = EXAMPLE.ORG
[realms]
EXAMPLE.ORG = {
kdc = kerberos.example.org
admin_server = kerberos.example.org
}
[domain_realm]
.example.org = EXAMPLE.ORG/etc/krb5.conf gaat ervan uit dat de
KDC de fully-qualified hostname kerberos.example.org heeft. Als de
KDC een andere hostname heeft, moet er nog
een CNAME (alias) toevoegd aan de zonefile.Voor grotere netwerken met een juist ingestelde
BIND DNS server kan
het bovenstaande voorbeeld ingekort worden tot:[libdefaults]
default_realm = EXAMPLE.ORGDoor de volgende regels toe te voegen aan de zonefile
voor example.org:_kerberos._udp IN SRV 01 00 88 kerberos.example.org.
_kerberos._tcp IN SRV 01 00 88 kerberos.example.org.
_kpasswd._udp IN SRV 01 00 464 kerberos.example.org.
_kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org.
_kerberos IN TXT EXAMPLE.ORG.Om clients de Kerberos
diensten te kunnen laten vinden, moet
er een volledig ingestelde
/etc/krb5.conf zijn of een minimaal
ingestelde /etc/krb5.confen een correct ingestelde DNS
server.Nu wordt de Kerberos
database aangemaakt. Deze database bevat de sleutels voor
alle principals en zijn versleuteld met een hoofdwachtwoord.
Dit wachtwoord hoeft niet onthouden te worden omdat het wordt
opgeslagen in (/var/heimdal/m-key). De
hoofdsleutel wordt aangemaakt door kstash
te starten en een wachtwoord in te voeren.Als de hoofdsleutel is gemaakt, kan de database
ingeschakeld worden met kadmin
met de optie -l (die staat voor
local). Deze optie geeft
kadmin de opdracht om de databasebestanden
direct te wijzigingen in plaats van via de
kadmind netwerkdienst. Hiermee wordt het
kip-ei probleem opgelost waarbij een verbinding wordt gemaakt
met de database voordat hij bestaat. Op het prompt van
kadmin kan met init
de database met de werelden aangemaakt worden.Tenslotte, nog steeds in kadmin, kan
de eerste principal gemaakt worden met
add. De standaardopties voor de principal
worden nu aangehouden. Deze kunnen later altijd
nog gewijzigd worden met modify. Met
het commando ? kunnen alle beschikbare
mogelijkheden getoond worden.Hieronder een sessie waarin een voorbeelddatabase wordt
aangemaakt:&prompt.root; kstash
Master key: xxxxxxxx
Verifying password - Master key: xxxxxxxx
&prompt.root; kadmin -l
kadmin> init EXAMPLE.ORG
Realm max ticket life [unlimited]:
kadmin> add tillman
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
Password: xxxxxxxx
Verifying password - Password: xxxxxxxxNu kan de KDC dienst gestart worden
met /etc/rc.d/kerberos start en
/etc/rc.d/kadmind start. Op dit moment
draait er nog geen enkele daemon die gebruik maakt van
Kerberos. Bevestiging dat
KDC draait is te krijgen door een ticket te
vragen en dat uit te lezen voor de principal (user)
die zojuist is aangemaakt vanaf de commandoregel van het
KDC zelf:&prompt.user; k5init tillman
tillman@EXAMPLE.ORG's Password:
&prompt.user; k5list
Credentials cache: FILE:/tmp/krb5cc_500
Principal: tillman@EXAMPLE.ORG
Issued Expires Principal
Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORGKerberos inschakelen op een
Server met Heimdal dienstenKerberos5
- Diensten Inschakelen
+ diensten inschakelenAls eerste is een kopie van het instellingenbestand van
Kerberos nodig,
/etc/krb5.conf. Dit bestand kan
eenvoudigweg op een veilige manier (met netwerkprogramma's
als &man.scp.1;, of fysiek via een floppy) naar de
clientcomputer gekopieerd worden vanaf de
KDC.Hierna is het /etc/krb5.keytab
nodig. Dit is het belangrijkste verschil tussen een server
die een daemons met Kerberos
aanbiedt en een werkstation: de server heeft het bestand
keytab nodig. Dit bestand bevat de
hostsleutel van de server waardoor het werkstation en de
KDC elkaars identiteit kunnen bevestigen.
Dit bestand dient veilig overgebracht te worden omdat de
beveiliging van de server doorbroken kan worden als de
sleutel openbaar wordt gemaakt. Dit betekent expliciet dat
overdracht via een protocol dat platte tekst gebruikt,
bv. FTP, een slecht idee is.Meestal wordt keytab naar de
server gebracht met kadmin. Dat
werkt handig omdat ook de host principal (het
KDC onderdeel van
krb5.keytab) aangemaakt moet
worden met kadmin.Let wel op dat er al een ticket moet zijn en dat dit
ticket de kadmin interface moet mogen
gebruiken in kadmind.acl. Zie
Beheer op Afstand in de Heimdal
informatiepagina's (info heimdal) voor
details over het ontwerpen van toegangscontrole. Als
kadmin via het netwerk geen toegang mag
hebben, dan kan ook op een veilige verbinding gemaakt worden
met de KDC (via het lokale console,
&man.ssh.1; of Kerberos
&man.telnet.1;) zodat alles lokaal uitgevoerd kan worden met
kadmin -l.Na het installeren van
/etc/krb5.conf kan
kadmin van de
Kerberos server gebruikt worden.
Met add --random-key kan de host
principal toegevoegd worden en met ext kan
de host principal van de server naar zijn eigen keytab
getrokken worden. Bijvoorbeeld:&prompt.root; kadmin
kadmin> add --random-key host/myserver.example.org
Max ticket life [unlimited]:
Max renewable life [unlimited]:
Attributes []:
kadmin> ext host/myserver.example.org
kadmin> exitLet op: ext slaat de sleutel standaard
op in /etc/krb5.keytab.Als kadmind niet beschikbaar is op de
KDC (wellicht om beveiligingsredenen) en
er via het netwerk dus geen toegang is tot
kadmin, dan kan de host principal
(host/myserver.EXAMPLE.ORG) ook direct
aan de KDC toegevoegd worden en daarna in
een tijdelijk bestand gezet worden. Het volgende kan
gebruikt worden om te voorkomen dat
/etc/krb5.keytab op de
KDC) wordt overschreven:&prompt.root; kadmin
kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org
kadmin> exitHierna kan de keytab veilig gekopieerd worden naar de
server (met scp of een floppy). Geef
een niet-standaard naam op voor de keytab om te voorkomen
dat de keytab op de KDC wordt
overschreven.Nu kan de server communiceren met de
KDC (vanweg
krb5.conf) en zijn identiteit bewijzen
(vanwege krb5.keytab). Nu is de server
klaar om er een aantal Kerberos
diensten op te activeren. In dit voorbeeld wordt de dienst
telnet geactiveerd door de volgende regel
in /etc/inetd.conf te zetten en dan
&man.inetd.8; te herstarten met
/etc/rc.d/inetd restart:telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a userHet belangrijkste is dat de typering
-a (van authenticatie) op user staat. Meer
details zijn in &man.telnetd.8; te vinden.Kerberos Activeren op een
Client met HeimdalKerberos5
- Clientinstellingen
+ clientinstellingenHet opzetten van een clientcomputer is eigenlijk
kinderlijk eenvoudig. Wat betreft de
Kerberos instelling is alleen het
Kerberos instellingenbestand
(/etc/krb5.conf) nodig. Dat kan
eenvoudigweg naar de clientcomputer gekopieerd worden vanaf
de KDC.Test de client met kinit,
klist en kdestroy
vanaf de client om een ticket te krijgen, te bekijken en
daarna te verwijderen voor de principal die hierboven is
aangemaakt. Nu moeten ook
Kerberos applicaties gebruikt
kunnen worden om verbindingen te maken met servers waarop
Kerberos is geactiveerd. Als dat
niet lukt en het verkrijgen van een ticket is wel mogelijk,
dan ligt dat hoogstwaarschijnlijk aan de server en niet aan
de client of de KDC.Bij het testen van een applicatie als
telnet kan het beste een pakketsnuffelaar
(bv. &man.tcpdump.1;) gebruikt worden om te bevestigen dat
een wachtwoord niet als tekst wordt verzonden. Gebruik
telnet met de optie -x.
Dan wordt de complete datastroom versleuteld (vergelijkbaar
met ssh).De Kerberos sleutelapplicaties
op de client (meestal kinit,
klist, kdestroy en
kpasswd) zitten in de basisinstallatie
van &os;. Let wel dat ze in &os; versies van voor 5.0
hernoemd zijn naar k5init,
k5list, k5destroy,
k5passwd en k5stash
(deze commando's worden gewoonlijk maar een keer
gebruikt).Er worden standaard ook andere
Kerberos applicaties op de client
geïnstalleerd. Hier komt de
minimalistische natuur van de Heimdal
basisinstallatie boven drijven: telnet is
de enige dienst waarvoor Kerberos
geactiveerd is.De Heimdal port voegt een aantal missende
clientapplicaties toe: versies met ondersteuning voor
Kerberos van
ftp, rsh,
rcp, rlogin en een paar
minder gebruikelijke programma's. De MIT
port bevat ook een volledig gamma aan
Kerberos clientapplicaties.Instellingenbestanden voor Gebruikers:
.k5login en
.k5usersKerberos5
- Bestanden met Gebruikersinstellingen
+ bestanden met gebruikersinstellingenVoor gebruikers binnen een wereld wijst hun
Kerberos principal (bv.
tillman@EXAMPLE.ORG) gewoonlijk naar
een lokale gebruikeraccount (bv. een lokale account met de
naam tillman). Voor Clientapplicaties
als telnet is gewoonlijk geen
gebruikersnaam of principal nodig.Soms moet iemand zonder bijpassende
Kerberos principal toch toegang
hebben tot een lokale gebruikersaccount.
tillman@EXAMPLE.ORG zou bijvoorbeeld
toegang nodig kunnen hebben tot de lokale gebruikersaccount
webdevelopers. Andere principals zouden
die toegang wellicht ook nodig kunnen hebben.De bestanden .k5login en
.k5users uit de gebruikersmap kunnen op
eenzelfde manier gebruikt worden als
.hosts en .rhosts.
Zo wordt het voorgaande probleem opgelost. Als bijvoorbeeld
een .k5login met de volgende
inhoud:tillman@example.org
jdoe@example.orgin de thuismap van de lokale gebruiker
webdevelopers gezet wordt dan zouden
beide principals toegang hebben tot die account zonder dat
ze een wachtwoord hoeven te delen.We raden aan de handboekpagina's voor deze commando's
te lezen. Let op dat de ksu handboekpagina
.k5users behandelt.Kerberos Tips, Trucs en
Problemen OplossenKerberos5
- Problemen Oplossen
+ problemen oplossenAls de Heimdal of MIT
Kerberos port wordt gebruikt
dan dient de PATH omgevingsvariabele
de Kerberos versies van de
clientapplicaties te tonen voor de systeemversies.Hebben alle computers in de wereld hun tijd
gesynchroniseerd? Als dat niet zo is, dan slaagt de
authenticatie wellicht niet.
beschrijft hoe klokken
met NTP gesynchroniseerd kunnen
worden.MIT en Heimdal werken prima samen.
Dit geldt niet voor kadmin omdat
daarvoor geen protocolstandaard is.Als een hostnaam wordt gewijzigd, dan moet ook de
host/ principal aangepast en de
keytab. Dit geldt ook voor bijzondere instellingen
in de keytab zoals de www/ principal
voor www/mod_auth_kerb van
Apache.Alle hosts in een wereld moeten oplosbaar
(resolvable) zijn (zowel vooruit als achteruit) in de
DNS (of tenminste in
/etc/hosts). CNAMEs werken wel,
maar de A en PTR records moeten juist en actief zijn. De
foutmelding is niet erg duidelijk: Kerberos5
refuses authentication because Read req failed: Key table
entry not found.Sommige besturingssystemen van clients voor een
KDC zetten wellicht geen setuid
root voor ksu.
Dit betekent dat ksu niet werkt. Dat
is vanuit beveiligingsoogpunt een prima idee, maar wel
lastig. Dit is dus geen KDC
fout.Als met MIT
Kerberos een principal een
ticket moet krijgen dat langer geldig is dan de standaard
van tien uur, dan moet
modify_principal in
kadmin gebruikt worden om de maximale
geldigheidsduur (maxlife) van zowel de principal waar het
om gaat als de krbtgt principal aan
te passen. Dan kan de principal kinit-l gebruiken om een ticket met een
langere levensduur aan te vragen.Als een pakketsnuffelaar op de
KDC draait bij om te helpen bij het
oplossen van problemen en dan kinit
vanaf een werkstation wordt gestart, dan wordt zichtbaar
dat de TGT meteen wordt verstuurd als
kinit start, zelfs nog voor het
wachtwoord! De reden hiervoor is dat de
Kerberos server vrijelijk een
TGT (Ticket Granting
Ticket) verstuurt op iedere niet geautoriseerd verzoek.
Maar iedere TGT is versleuteld met een
sleutel die is afgeleid van het wachtwoord van de
gebruiker. Als een gebruiker zijn wachtwoord ingeeft,
wordt dat dus niet naar de KDC
gezonden, maar ontcijfert het de TGT
die kinit al heeft ontvangen. Als de
ontcijfering resulteert in een geldige ticket met een
geldige tijdstempel, dan heeft de gebruiker geldige
Kerberos rechten. Deze
rechten bevatten ook een sessiesleutel voor het opzetten
van beveiligde communicatie met de
Kerberos server in de toekomst
en de eigenlijke ticket-granting ticket, die is
versleuteld met de sleutel van de
Kerberos server zelf. Deze
tweede laag van versleuteling is niet bekend voor de
gebruiker, maar het stelt de
Kerberos server in staat om de
juistheid van iedere TGT te
bevestigen.Als tickets worden gebruik die lang geldig zijn (bv.
een week) en OpenSSH wordt
gebruikt om een verbinding te maken met de machine waarop
het ticket staat, zorg er dan voor dat de
Kerberos optie
op no
staat in sshd_config want anders
worden tickets verwijderd bij afmelden.Host principals kunnen ook een langere levensduur
hebben. Als een gebruikers principal een levensduur van
een week heeft, maar de host waar de verbinding mee
gemaakt wordt heeft een levensduur van negen uur,
dan heb staat er een verlopen host principal in de cache
en dan werkt e.e.a. niet zoals verwacht.Een krb5.dict bestand om het
gebruik van bepaalde slechte wachtwoorden te voorkomen
(dit wordt kort behandeld in de handboekpagina voor
kadmind) heeft alleen betrekking op
principals waar een wachtwoordbeleid voor geldt. De
opmaak van krb5.dict is eenvoudig:
een rij tekens per regel. Een symbolic link maken naar
/usr/share/dict/words is misschien
handig.Verschillen met de MIT portHet belangrijkste verschil tussen de
MIT en Heimdal installatie heeft
betrekking op kadmin, dat een andere (maar
gelijkwaardige) set commando's kent en een andere protocol
gebruikt. Dit betekent nogal wat als een
KDC MIT is, omdat
dan de kadmin van Heimdal niet gebruikt
kan worden om de KDC vanaf afstand te
beheren (dat geldt trouwens ook vice versa).De clientapplicaties kunnen ook commandoregelopties
gebruiken die een beetje verschillen, maar waarmee wel
hetzelfde wordt bereikt. We raden aan de instructies op de
MIT Kerberos
website () te volgen.
Wees voorzichtig met paden: de MIT port
installeert standaard in
/usr/local/ en dus kunnen de
normale systeemapplicaties gestart worden in
plaats van die van MIT als de
PATH omgevingsvariabele de systeemmappen als
eerste weergeeft.Als de MIT
security/krb5 port die
bij &os; zit wordt gebruikt, dan zorgt het lezen van
/usr/local/share/doc/krb5/README.FreeBSD
dat bij de port wordt geïnstalleerd voor een beter
begrip over waarom het aanmelden via
telnetd en klogind
soms wat vreemd verloopt. Als belangrijkste wijzen we erop
dat het bij het corrigeren van
onjuiste rechten op het cachebestand
noodzakelijk is dat het binaire bestand
login.krb5 wordt gebruikt voor
authenticatie zodat het op de juiste wijze eigenaarschap kan
wijzigen voor de doorgegeven rechten.Beperkingen in
KerberosKerberos5
- Beperkingen en Tekortkomingen
+ beperkingen en tekortkomingenKerberos is een alles of
niets aanpakIedere ingeschakelde dienst op het netwerk moet
aangepast worden om met Kerberos
te werken (of op een andere manier beschermd zijn tegen
netwerkaanvallen), want anders kunnen gebruikersrechten
worden gestolen en hergebruikt. Een voorbeeld hier van is
het inschakelen van Kerberos
voor alle shells op afstand (via rsh en
telnet bijvoorbeeld), maar de
POP3 mailserver die wachtwoorden als
platte tekst verzend ongemoeid laten.Kerberos is bedoeld voor
werkstations met een gebruikerIn een multi-user omgeving is
Kerberos minder veilig. Dit komt
doordat de tickets worden opgeslagen in de map
/tmp, waar gelezen kan worden door
alle gebruikers. Als een gebruiker een computer deelt met
andere gebruikers op hetzelfde moment (dus multi-user), dan
is het mogelijk dat een ticket van een gebruiker wordt
gestolen (gekopieerd) door een andere gebruiker.Dit kan voorkomen worden met de commandoregeloptie
-c bestandsnaam of (bij
voorkeur) de omgevingsvariabele KRB5CCNAME,
maar dat wordt zelden gedaan. In principe kan het opslaan
van een ticket in de thuismap van een gebruiker in
combinatie met eenvoudige bestandsrechten dit probleem
verhelpen.De KDC is een single point of failureZoals het is ontworpen, moet de KDC
zo goed mogelijk beveiligd zijn, omdat de hoofd
wachtwoorddatabase erop staat. De KDC
hoort geen enkele andere dienst aan te bieden en moet ook
fysiek afgeschermd worden. Het gevaar is groot, omdat
Kerberos alle wachtwoorden
versleutelt met dezelfde sleutel (de master
sleutel) die als een bestand op de KDC
staat.Toch is een gecompromitteerde master sleutel niet zo'n
groot probleem als wellicht wordt verondersteld. De
mastersleutel wordt alleen gebruikt om de
Kerberos database te
versleutelen en als zaad voor de generator van willekeurige
nummers. Zo lang als de toegang tot de
KDC is beveiligd, kan een aanvaller niet
echt iets doen met de mastersleutel.Als de KDC niet beschikbaar is
(misschien door een ontzeggen van dienst aanval of
netwerkproblemen) kunnen de netwerkdiensten niet gebruikt
worden omdat er geen authenticatie uitgevoerd kan worden;
een recept voor een ontzeggen van dienst aanval. Dit
risico kan omzeild worden door meerdere
KDC's (één master en
één of meer slaves) en een zorgvuldige
implementatie van secundaire of fall-back authenticatie.
PAM is hier uitermate geschikt
voor.Tekortkomingen van
KerberosKerberos stelt gebruikers,
hosts en diensten in staat om elkaar te authenticeren.
Maar het heeft geen mechanisme om de KDC
te authenticeren aan de gebruikers, hosts of diensten. Dit
betekent dat bijvoorbeeld een vervalste
kinit alle gebruikersnamen en
wachtwoorden zou kunnen afluisteren. Iets als
security/tripwire of
andere controle-instrumenten voor de integriteit van
bestandssystemen kunnen hier verlichting brengen.Bronnen en Verdere InformatieKerberos5
- Externe Bronnen
+ externe bronnen
De Kerberos FAQ
(Engels)Een
Authenticatiesysteem Ontwerpen: een Dialoog in Vier
Scenes (Engels)
RFC 1510, De Kerberos Netwerk
Authenticatie Dienst (V5) (Engels)
MIT
Kerberos
homepageHeimdal
Kerberos homepageTomRhodesGeschreven door SiebrandMazelandVertaald door OpenSSLbeveiligingOpenSSLOpenSSLEen toepassing die bij &os; zit die veel gebruikers over het
hoofd zien is OpenSSL.
OpenSSL biedt een versleutelde
transportlaag bovenop de normale communicatielaag. Daardoor
biedt het de mogelijkheid met veel netwerktoepassingen en
diensten verweven te raken.Een aantal toepassingen van
OpenSSL zijn versleutelde
authenticatie van mailclients, webgebaseerde transacties als
creditcardbetalingen en nog veel meer. Veel ports zoals
www/apache13-ssl en
mail/sylpheed-claws
bieden tijdens het compileren ondersteuning om
OpenSSL in te bouwen.
- In de meeste gevallen zal de portscollectie proberen
- security/openssl te bouwen,
- tenzij de make variabele WITH_OPENSSL_BASE
- expliciet naar yes is gezet.
+ In de meeste gevallen zal de portscollectie proberen de
+ port security/openssl te
+ bouwen, tenzij de make variabele
+ WITH_OPENSSL_BASE expliciet naar
+ yes is gezet.De versie van OpenSSL die bij &os;
zit ondersteunt Secure Sockets Layer v2/v3 (SSLv2/SSLv3),
Transport Layer Security v1 (TLSv1) netwerk
beveiligingsprotocollen en kan gebruikt worden als generieke
- versleutelingsbibliotheek voor applicaties.
+ versleutelingsbibliotheek.
Hoewel OpenSSL ondersteuning
biedt voor het IDEA algoritme, is dat
standaard uitgeschakeld in verband met patenten in de VS. Om
het te gebruiken dient de licentie gelezen te worden en, als
de restricties aanvaardbaar zijn, dient de make variabele
MAKE_IDEA ingesteld te worden in
make.conf.Een van de meest gebruikte toepassingen van
OpenSSL is het leveren van
certificaten voor gebruik met softwaretoepassingen. Deze
certificaten verzekeren dat de eigenschappen van een bedrijf
of individu geldig zijn en niet vervalst. Als het certificaat
in kwestie niet geldig verklaard is door een van de
- Certificate Authorities of CA's, dan komt er
- een waarschuwing. Een Certificate Authority is een bedrijf,
- zoals VeriSign, dat certificaten ondertekent zodat de
- eigenschappen van een bedrijf of individu geldig verklaard kunnen
- worden. Dit proces kost geld en het is zeker geen voorwaarde
- voor het gebruik van certificaten. Het stelt wel de meer
- paranoïde gebruikers gerust.
+ Certificate Authorities of
+ CA's, dan komt er een waarschuwing. Een
+ Certificate Authority is een bedrijf, zoals VeriSign, dat certificaten
+ ondertekent zodat de eigenschappen van een bedrijf of individu
+ geldig verklaard kunnen worden. Dit proces kost geld en het is
+ zeker geen voorwaarde voor het gebruik van certificaten. Het
+ stelt wel de meer paranoïde gebruikers gerust.
Certificaten MakenOpenSSLcertificaten makenVoor het maken van certificaten is het volgende commando
beschikbaar:&prompt.root; openssl req -new -nodes -out req.pem -keyout cert.pem
Generating a 1024 bit RSA private key
................
.......................................
writing new private key to 'cert.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:PA
Locality Name (eg, city) []:Pittsburgh
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
Organizational Unit Name (eg, section) []:Systems Administrator
Common Name (eg, YOUR name) []:localhost.example.org
Email Address []:trhodes@FreeBSD.org
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:SOME PASSWORD
An optional company name []:Another NameLet op dat het antwoord direct na Common
Name een domeinnaam weergeeft. De prompt wil
dat er een servernaam wordt ingegeven voor het
verificatieproces. Het plaatsen van iets anders dan een
domeinnaam zorgt ervoor dat het certificaat waardeloos wordt.
Er zijn ook andere opties als verloopdatum, andere
versleutelingsalgoritmen, etc, beschikbaar. Een volledige
lijst is na te lezen in de handboekpagina van
&man.openssl.1;.Er zou nu een bestand cert.pem moeten
bestaan in de map waar het voorgaande commando is uitgevoerd.
- Dit is het certificaat dat naar een van de
- CA's ter ondertekening gezonden kan
- worden.
+ Dit is het certificaat dat aan een CA ter
+ ondertekening gezonden kan worden.
In gevallen waar ondertekening door een
CA niet vereist is, kan een zelfondertekend
certificaat gemaakt worden. Maak als eerste de
RSA sleutel:&prompt.root; openssl dsaparam -rand -genkey -out
myRSA.key 1024Hierna kan de CA sleutel gemaakt
worden:&prompt.root; openssl gendsa -des3 -out \
myca.keymyRSA.keyDeze sleutel kan gebruikt worden om een certificaat te
maken:&prompt.root; openssl req -new -x509 -days 365 -key
myca.key -out new.crtEr zouden nu twee bestanden bijgekomen moeten zijn in de
map: een certificate authority ondertekeningsbestand
myca.key en new.crt,
het certificaat zelf. Deze moeten in een map geplaatst worden,
bij voorkeur onder /etc
waar alleen root kan lezen. De rechten
0700 zijn hier prima en die kunnen ingesteld worden met
chmod.Certificate Gebruiken: een VoorbeeldEn wat kunnen deze bestanden? Een prima toepassing zou
het versleutelen van verbindingen naar de
Sendmail MTA
kunnen zijn. Daardoor zouden gebruikers niet langer platte
tekst hoeven te authenticeren om mail te sturen via de lokale
MTA.Dit is niet de best denkbare toepassing omdat sommige
MUA's de gebruiker een foutmelding geven
als ze het certificaat niet lokaal geïnstalleerd hebben.
De documentatie bij de software geeft meer informatie over
het installeren van certificaten.De volgende regels moeten opgenomen worden in het lokale
.mc bestand:dnl SSL Options
define(`confCACERT_PATH',`/etc/certs')dnl
define(`confCACERT',`/etc/certs/new.crt')dnl
define(`confSERVER_CERT',`/etc/certs/new.crt')dnl
define(`confSERVER_KEY',`/etc/certs/myca.key')dnl
define(`confTLS_SRV_OPTIONS', `V')dnl/etc/certs/ is de
map die gebruikt wordt voor het lokaal opslaan van certificaten
en sleutels. De laatste voorwaarde het is opnieuw aanmaken van
het lokale .cf bestand. Dit gaat door
eenvoudigweg make<
install te typen in de map
/etc/mail. Laat dat
volgen door een makerestart waardoor de
Sendmail daemon herstart zou moeten
worden.Als alles goed is gegaan, dan staan er geen foutmeldingen
/var/log/maillog en is
Sendmail zichtbaar in de
proceslijst.Maak als eenvoudige test een verbinding met de mailserver
met &man.telnet.1;:&prompt.root; telnet example.com 25
Trying 192.0.34.166...
Connected to example.com.
Escape character is '^]'.
220 example.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT)
ehlo example.com
250-example.com Hello example.com [192.0.34.166], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP
quit
221 2.0.0 example.com closing connection
Connection closed by foreign host.Als de regel STARTTLS verschijnt in de
uitvoer dan werkt alles correct.NikClaytonnik@FreeBSD.orgGerschreven door SiebrandMazelandVertaald door VPN via IPsecEen VPN opzetten met &os; gateways tussen twee netwerken die
gescheiden zijn door internet.Hiten M.Pandyahmp@FreeBSD.orgGeschreven door SiebrandMazelandVertaald door IPsec BegrijpenDeze paragraaf is een gids in het proces van het opzetten,
en gebruiken van IPsec en het veilig laten communiceren van
machines in een omgeving die bestaat uit &os; en
µsoft.windows; 2000/XP.
Voordat IPsec opgezet kan worden dient de lezer bekend te zijn
met de concepten die nodig zijn om een aangepaste kernel te
bouwen (zie ).IPsec is een protocol dat bovenop de
Internet Protocol (IP) laag ligt. Hiermee kunnen twee of meer
host op een veilige manier communiceren (vandaar de naam). De
&os; IPsec netwerk wachtrij (stack) is gebaseerd
op de KAME
implementatie, die zowel de IPv4 als de IPv6 protocolfamilies
ondersteunt.&os; 5.X bevat een door hardware
geaccelereerde IPsec wachtrij die Fast
IPsec heet en uit OpenBSD komt. Die kan gebruik
maken van cryptografische hardware (waar mogelijk) via het
&man.crypto.4; subsysteem om de prestaties van IPsec te
optimaliseren. Dit subsysteem is nieuw en ondersteunt niet
alle opties die beschikbaar zijn in de KAME versie van
IPsec. Voordat er gebruik gemaakt kan worden van door
hardware versnelde IPsec, moet de volgende optie in het
kernelinstellingenbestand worden gezet:options FAST_IPSEC # new IPsec (cannot define w/ IPSEC) Het is op dit moment niet mogelijk om het
Fast IPsec subsysteem samen met de KAME
implementatie van IPsec te gebruiken. Zie
&man.fast.ipsec.4; voor meer informatie.IPsec bestaat uit twee subprotocollen:Encapsulated Security Payload
(ESP) beschermt de IP pakketdata tegen
inmenging door een derde partij door de inhoud te
versleutelen met symmetrische
versleutelingsalgoritmen (als Blowfish en 3DES).Authentication Header (AH)
beschermt de IP pakketkop tegen inmenging door een derde
partij en spoofing door een cryptografische checksum te
berekenen en de IP pakketkopvelden te hashen met een
veilige hashfunctie. Hierna wordt een extra kop ingevoegd
die de hash bevat zodat de informatie in het pakket
geauthenticeerd kan worden.ESP en AH kunnen
samen of apart gebruikt worden, afhankelijk van de
omgeving.IPsec kan gebruikt worden om het verkeer tussen twee hosts
direct te versleutelen (dat heet Transport
Mode) of door virtuele tunnels te
bouwen tussen twee subnetten die gebruikt kunnen worden voor
veilige communicatie tussen twee bedrijfsnetwerken (dat heet
Tunnel Mode). De laatste versie staat
beter bekend als Virtual Private Network
(VPN). In &man.ipsec.4; staat gedetailleerde
informatie over het IPsec subsysteem in &os;.Voor ondersteuning voor IPsec in de kernel zijn de
volgende opties nodig in het
kernelinstellingenbestand:options IPSEC #IP security
options IPSEC_ESP #IP security (crypto; define w/ IPSEC)Als er ook fouten in IPsec (debugging) verwijderd moeten
kunnen worden, dan is de volgende optie ook nodig:options IPSEC_DEBUG #debug for IP securityHet ProbleemEr bestaat geen standaard voor wat een VPN is. VPN's
kunnen opgezet worden met behulp van een aantal verschillende
technologieën die allemaal hun eigen voor- en nadelen
hebben. Dit onderdeel bevat een scenario en de
strategieën die gebruikt kunnen worden voor het
implementeren van een VPN in iedere situatie.Het Scenario: twee netwerken die één moeten
lijken en via internet verbonden zijnDit is het uitgangspunt:Er zijn tenminste twee locatiesBeide locaties gebruiken IPBeide locaties hebben een internetverbinding via een
gateway waarop &os; draait.De gateway op ieder netwerk heeft tenminste
één publiek IP
adres.De interne adressen van de twee netwerken mogen
publieke of private IP adressen zijn,
dat maakt niet uit. Er mag NAT draaien op de gateway als
dat nodig is.De interne IP adressen van de twee
netwerken mogen niet conflicteren.
Hoewel dit in theorie mogelijk is een combinatie van VPN en
NAT te gebruiken om dit te laten werken, wordt het vast een
drama om dit in te stellen.Als de twee netwerken die met elkaar verbonden moeten
worden intern dezelfde private IP
adresreeksen gebruiken (beiden gebruiken bijvoorbeeld 192.168.1.x), dan moet een van de
netwerken hernummerd worden.De netwerk topologie zou er zo uit kunnen zien:Netwerk #1 [ Interne Hosts ] Privaat Net, 192.168.1.2-254
[ Win9x/NT/2K ]
[ UNIX ]
|
|
.---[fxp1]---. Privaat IP, 192.168.1.1
| FreeBSD |
`---[fxp0]---' Publiek IP, A.B.C.D
|
|
-=-=- Internet -=-=-
|
|
.---[fxp0]---. Publiek IP, W.X.Y.Z
| FreeBSD |
`---[fxp1]---' Privaat IP, 192.168.2.1
|
|
Netwerk #2 [ Internal Hosts ]
[ Win9x/NT/2K ] Privaat Net, 192.168.2.2-254
[ UNIX ]Let op de twee publieke IP adressen.
In de rest van dit onderdeel worden de letters gebruikt
om ze aan te duiden. Overal waar die letters staan, kunnen ze
vervangen worden door eigen publieke IP
adressen. Zo hebben ook de twee gateway machines intern .1
IP adressen en de twee netwerken hebben
andere IP adressen (respectievelijk 192.168.1.x en 192.168.2.x). Alle machines op de
private netwerken zijn zo ingesteld dat ze de .1 machine als hun standaard gateway
gebruiken.Het is de bedoeling dat, vanuit het netwerkstandpunt, ieder
netwerk de machines in het andere netwerk kan zien alsof ze
beiden aan dezelfde router zouden zitten; wel een router die
een beetje langzaam is en af een toe een pakketje laat
vallen.Dit betekent dat (bijvoorbeeld) op machine 192.168.1.20:ping 192.168.2.34uitgevoerd kan worden en dat werkt, transparant.
µsoft.windows; machines moeten het andere netwerk kunnen
zien, gedeelde bestanden kunnen benaderen, enzovoort, op
dezelfde manier als ze dat kunnen op het lokale netwerk.En dat alles moet veilig zijn. Dat betekent dat verkeer
tussen de twee netwerken versleuteld moet zijn.Het opzetten van een VPN tussen twee netwerken is een
proces dat uit meerdere stappen bestaat:Het maken van een virtuele
netwerkverbinding tussen de twee netwerken over het
internet. Testen met gereedschappen als &man.ping.8; om te
bevestigen dat het werkt.Het instellen van beveiligingsbeleid om te verzekeren
dat het verkeer tussen de twee netwerken transparant wordt
versleuteld en ontsleuteld wanneer dat nodig is. Testen
met gereedschappen als &man.tcpdump.1; om te bevestigen dat
het werkt.Additionele software instellen op de &os; gateways om
µsoft.windows; machines de andere kant van het VPN te
laten zien.Stap 1: De virtuele netwerkverbinding
maken en testenStel dat een gebruiker is aangemeld op de gatewaymachine
in netwerk #1 (met publiek IP adres
A.B.C.D en privaat
IP adres 192.168.1.1) en de voert
ping 192.168.2.1 uit, naar het private
adres van de machine met IP adres W.X.Y.Z. Wat moet er gebeuren om
dat te laten werken?De gateway host moet weten hoe hij 192.168.2.1 kan bereiken. Met
andere woorden: hij moet een route hebben naar 192.168.2.1.Private IP adressen als de reeks
192.168.x horen in het
algemeen niet thuis op internet. Ieder pakket naar
192.168.2.1 moet dus
ingepakt worden in een ander pakket. Dit pakket moet
afkomstig lijken van A.B.C.D en moet naar
W.X.Y.Z verstuurd worden.
Dit proces heet inkapseling
(encapsulation).Als dit pakket aankomt bij W.X.Y.Z dan moet het
uitgekapseld (unencapsulated) worden en
afgeleverd worden aan 192.168.2.1.Dit is alsof er een tunnel moet bestaan
tussen de twee netwerken. De twee
tunnelopeningen zijn de IP
adressen A.B.C.D en
W.X.Y.Z en de tunnel moet op de
hoogte zijn van de private IP adressen die
door de tunnel mogen. De tunnel wordt gebruikt om verkeer
met private IP adressen over het internet
te leiden.Deze tunnel wordt gemaakt door gebruik te maken van de
generieke interface of gif devices
op &os;. De gif interface moet op
iedere gatewaymachine ingesteld zijn met vier
IP adressen: twee voor de publieke
IP adressen en twee voor de private
IP adressen.Ondersteuning voor het gif
device moet in de &os; kernel van beide machine gecompileerd
worden. Dit kan door de volgende optie toe te voegen aan de
kernelinstellingenbestanden op beide machines, dan de kernel
te compileren, te installeren en dan gewoon te
herstarten:pseudo-device gifHet instellen van de tunnel gaat in twee stappen. Eerst
moet de tunnel verteld worden wat de IP
adressen aan de buitenkant (publiek) zijn met
&man.gifconfig.8;. Daarna moeten de private
IP adressen ingesteld worden met
&man.ifconfig.8;.In &os; 5.X is de functionaliteit van &man.gifconfig.8;
opgenomen in &man.ifconfig.8;.Op de gatewaymachine op netwerk #1 moeten de volgende
commando's uitgevoerd worden om te tunnel in te
stellen.gifconfig gif0 A.B.C.D W.X.Y.Z
ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffffOp de andere gatewaymachine moeten dezelfde commando's
uitgevoerd worden met omgedraaide IP
adressen.gifconfig gif0 W.X.Y.Z A.B.C.D
ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffffDaarna toont:gifconfig gif0de instellingen. Op netwerk #1 zou dat het volgende
zijn:&prompt.root; gifconfig gif0
gif0: flags=8011<UP,POINTTOPOINT,MULTICAST> mtu 1280
inet 192.168.1.1 --> 192.168.2.1 netmask 0xffffffff
physical address inet A.B.C.D --> W.X.Y.ZEr is nu een tunnel gemaakt tussen de fysieke adressen
A.B.C.D en
W.X.Y.Z en het verkeer dat
door de tunnel mag is dat tussen 192.168.1.1 en
192.168.2.1.Hiermee is ook een regel gemaakt in de routetabel op
beide machines die te bekijken zijn met netstat
-rn. Deze uitvoer komt van de gatewayhost op
netwerk #1.&prompt.root; netstat -rn
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
...
192.168.2.1 192.168.1.1 UH 0 0 gif0
...De Flags waarde geeft aan dat dit een
hostroute is, wat betekent dat iedere gateway weet hoe hij de
andere gateway kan bereiken, maar dat ze niet weten hoe ze
bij de rest van elkaars netwerk kunnen komen. Dat probleem
wordt snel opgelost.Het is waarschijnlijk dat op beide machines een firewall
draait. Die moet omzeild worden voor VPN verkeer. Het is
mogelijk al het verkeer tussen de beide netwerken toestaan of
firewallregels toe te voegen waarmee de beide netwerken die
het VPN met elkaar verbindt tegen elkaar beschermd
worden.Het testen wordt een stuk eenvoudiger als de firewall zo
is ingesteld dat al het verkeer door het VPN wordt
doorgelaten. Laten kunnen nog restricties toegevoegd worden.
Met &man.ipfw.8; wordt metipfw add 1 allow ip from any to any via gif0al het verkeer tussen de twee eindstations van het VPN
toegestaan zonder dat dit de andere regels van de firewall
beïnvloedt. Dit commando moet natuurlijk wel op beide
gatewayhosts uitgevoerd worden.Deze instelling is toereikend om elke gateway machine het
recht te geven de ander te pingen. Op 192.168.1.1 kan nu:ping 192.168.2.1gedraaid worden en moet een antwoord komen. Op de andere
machine kan dezelfde test gedaan worden.Maar nu zijn de andere machines op het interne netwerk
nog niet te bereiken. Dat komt door de routering: hoewel de
gateway machines elkaar nu weten te vinden, weten ze nog niet
hoe ze het netwerk achter elkaar kunnen bereiken.Om dat probleem op te lossen moet een statische route
worden toevoegd op iedere gateway machine. Het commando
daarvoor is:route add 192.168.2.0 192.168.2.1 netmask 0xffffff00Dit betekent: om hosts op het netwerk 192.168.2.0 te bereiken moeten
pakketten naar de host 192.168.2.1 sturen. Een
zelfde dient op de andere gateway uitgevoerd te worden, maar
dan met de 192.168.1.x
adressen.IP verkeer van hosts op het ene netwerk kan nu hosts op
het andere netwerk bereiken.Hiermee is tweederde van het VPN tussen twee netwerken
aangelegd in de zin dat het virtueel is en er een
netwerk is. Maar het is nog niet privaat.
Dit wordt aangetoond met &man.ping.8; en &man.tcpdump.1;.
Voer op de gateway host het volgende commando uit:/para>
tcpdump dst host 192.168.2.1Voer vanuit een andere sessie op de host het onderstaande
commando uit:ping 192.168.2.1De uitvoer is ongeveer als volgt:16:10:24.018080 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:24.018109 192.168.1.1 > 192.168.2.1: icmp: echo reply
16:10:25.018814 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:25.018847 192.168.1.1 > 192.168.2.1: icmp: echo reply
16:10:26.028896 192.168.1.1 > 192.168.2.1: icmp: echo request
16:10:26.029112 192.168.1.1 > 192.168.2.1: icmp: echo replyHet is zichtbaar dat de ICMP berichten niet versleuteld
heen en weer gaan. Als met &man.tcpdump.1; de parameter
was gebruikt om meer bytes te tonen uit
de pakketten, dan was meer informatie te zien geweest.Dit is natuurlijk onacceptabel. In de volgende paragraaf
gaat het dan ook over het beveiligen van de verbinding tussen
de twee netwerken zodat al het verkeer automatisch wordt
versleuteld.Samenvatting:Stel voor beide kernels het pseudo-device
gif in.Wijzig /etc/rc.conf op gateway
host #1 en voeg de volgende regels toe (wijzig
IP adressen naar wens).gifconfig_gif0="A.B.C.D W.X.Y.Z"
ifconfig_gif0="inet 192.168.1.1 192.168.2.1 netmask 0xffffffff"
static_routes="vpn"
route_vpn="192.168.2.0 192.168.2.1 netmask 0xffffff00"Wijzig het firewallscript
(/etc/rc.firewall of iets dergelijks)
op beide hosts en voeg het volgende toe:ipfw add 1 allow ip from any to any via gif0Maak gelijksoortige wijzigingen in
/etc/rc.conf op gateway host #2 en
draai de volgorde van de IP adressen
om.Stap 2: De Verbinding BeveiligenOm de verbinding te beveiligen wordt IPsec gebruikt.
IPsec biedt een mechanisme waarmee twee hosts samen een
sleutel hebben en die sleutel dan gebruiken om gegevens te
versleutelen tussen die twee hosts.Hiervoor moet op twee plaatsen een aanpassing gemaakt
worden in de instellingen.Er moet een mechanisme zijn voor de twee hosts om het
eens te worden over het versleutelingsmechanisme dat
gebruikt gaat worden. Als de twee hosts het daar over
eens zijn, dan hebben ze een zogenaamde
beveiligingssamenwerking (security
association).Er moet een mechanisme zijn waarmee wordt aangegeven
welk verkeer versleuteld moet worden. Tenslotte moet
niet al het uitgaande verkeer versleuteld worden, maar
alleen het verkeer dat onderdeel is van het VPN. De
regels die worden opgesteld om te bepalen welke verkeer
versleuteld wordt heten beveiligingsbeleid
(security policies).Beveiligingssamenwerking en beveiligingsbeleid worden
beiden onderhouden door de kernel en kunnen aangepast worden
met programma's in userland. Maar voor dit mogelijk is, moet
de kernel geschikt gemaakt worden voor ondersteuning van IPsec
en het Encapsulated Security Payload (ESP) protocol. Dit kan
door de volgende regel op te nemen in het
kernelinstellingenbestand:options IPSEC
options IPSEC_ESPDaarna dienen hercompilatie en installatie van de kernel
plaats te vinden en moet de machine gereboot worden. Dit
moet voor beide gateway hosts uitgevoerd worden.Het is mogelijk twee wegen te bewandelen voor het
opzetten van beveiligingssamenwerking. Als het met de hand
wordt opgezet dan moeten een versleutelingsalgoritme,
coderingssleutels, enzovoort gekozen worden. Er kan ook een
daemons gebruikt worden die het Internet Key Exchange
protocol (IKE) implementeert om dit uit te voeren.Het advies is voor het laatste te kiezen. Los van andere
overwegingen is het makkelijker in te stellen.Voor het wijzigen en weergeven van het beveiligingsbeleid
is er &man.setkey.8;. Ter vergelijking:
setkey is voor het beveiligingsbeleid van
de kernel wat &man.route.8; is voor de routetabellen van de
kernel. setkey kan ook de huidige
beveiligingssamenwerkingen weergeven en om de vergelijking
door te zetten is het in die zin verwant aan
netstat -r.Er zijn een aantal daemons beschikbaar voor het bijhouden
van beveiligingssamenwerking in &os;. In dit artikel wordt
beschreven hoe dat met racoon gaat. racoon zit in de &os;
portscollectie in de security/ categorie en kan op de
gebruikelijke manier geïnstalleerd worden.racoon moet draaien op beide gateway hosts. Op iedere
host moet het IP adres van de andere
kant van het VPN ingesteld worden en een geheime sleutel (die
door de gebruiker zelf is gekozen en die hetzelfde moet zijn
op beide gateways).De twee daemons zoeken dan contact met elkaar en stellen
vast dat ze zijn wie ze beweren te zijn (door gebruik te
maken van de geheime sleutel die is ingesteld). De daemons
maken dan een nieuwe geheime sleutel aan en gebruiken die om
het verkeer over het VPN te versleutelen. Ze wijzigen die
sleutel periodiek zodat een aanvaller er niets aan heeft in
het geval hij achter een van de sleutels zou komen. Dit is
theoretisch trouwens vrijwel onuitvoerbaar. Tegen de tijd
dat de sleutel gekraakt is, hebben de twee daemons al een
nieuwe gekozen.De instellingen van racoon worden opgeslagen in
${PREFIX}/etc/racoon. Daar tref staat
een instellingenbestand aan dat niet ingrijpend hoeft te
wijzigen. De andere component van de instellingen van racoon
die gewijzigd moet worden is de wederzijds bekende
sleutel (pre-shared key).Standaard verwacht racoon dat die in
${PREFIX}/etc/racoon/psk.txt staat. Het
is belangrijk op te merken dat de wederzijds bekende sleutel
niet de sleutel is die gebruikt wordt om
het verkeer van de VPN verbinding te versleutelen. Het is
gewoon een token die de sleutelbeheerdaemons in staat stelt
elkaar te vertrouwen.psk.txt bevat een regel voor iedere
locatie waarmee verbinding bestaat. In dit voorbeeld zijn er
twee locaties en dus bevat ieder psk.txt
bestand één regel (omdat de ene kant van de VPN
alleen iets te maken heeft met één andere
kant).Op gateway host #1 ziet dat er als volgt uit:W.X.Y.Z secretEr staat dus het publieke
IP adres van de andere kant, witruimte
;– spatie(s) of tab(s) – en een stuk tekst met de
geheime sleutel. Natuurlijk dient secret niet
als sleutel gebruikt te worden. Ook hier gelden de normale
regels voor wachtwoorden.Op gateway host #2 ziet dat er dan zo uit:A.B.C.D secretDus het publieke
IP adres van de andere kant en dezelfde
geheime sleutel. psk.txt moet in mode
0600 staan (alleen lees en schrijfrechten
voor root) voordat racoon zal
werken.Racoon moet draaien op beide gatewaymachines. Er moeten
ook een aantal firewallregels toegevoegd worden om IKE
verkeer toe te staan, dat over UDP naar de ISAKMP (Internet
Security Association Key Management Protocol) poort loopt.
Nogmaals: deze regels staan bij voorkeur zo vroeg mogelijk in
de firewallregels.ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmpAls racoon eenmaal draait, dan kan de ene gateway host
vanaf de andere gepingd worden. De verbinding is dan nog
steeds niet versleuteld, maar racoon stelt wel de
beveiligingssamenwerking tussen de twee hosts op. Dat kan
heel even duren en dat uit zich in een kleine vertraging
voordat er een antwoord op de ping komt.Als de beveiligingssamenwerking tot stand is gekomen,
dan kan deze getoond worden met &man.setkey.8;:setkey -DHet bovenstaande commando toont de
beveiligingssamenwerkingsingsinformatie.Dat is de ene helft van het probleem. De andere helft is
het instellen van het beveiligingsbeleid.Voor er een zinvol beveiligingsbeleid opgesteld kan
worden volgt eerst een samenvatting van wat tot nu toe is
bereikt. Het volgende geldt voor beide kanten van de
verbinding.Ieder IP pakket dat wordt verzonden heeft een kop die
gegevens over het pakket bevat. De kop bevat het
IP adres van zowel de bron als de
bestemming. Zoals bekend horen private
IP adressen zoals de reeks
192.168.x.y niet thuis op
internet. Ze moeten eerst ingepakt worden in een ander
pakket. Voor dat pakket moeten het publieke bron en
bestemmingsadres op de plaats van de private adressen gezet
worden.Dus als een uitgaand pakket als volgt begon:
.----------------------.
| Src: 192.168.1.1 |
| Dst: 192.168.2.1 |
| <andere kopinfo> |
+----------------------+
| <pakket data> |
`----------------------'Dan wordt het ingepakt in een andere pakket dat er
ongeveer als volgt uitziet:
.--------------------------.
| Src: A.B.C.D |
| Dst: W.X.Y.Z |
| <andere kop info> |
+--------------------------+
| .----------------------. |
| | Src: 192.168.1.1 | |
| | Dst: 192.168.2.1 | |
| | <andere kop info> | |
| +----------------------+ |
| | <pakket data> | |
| `----------------------' |
`--------------------------'Het gif device zorgt voor het
inpakken. Het pakket heeft nu een echt IP
adres aan de buitenkant en het originele pakket zit ingepakt
als data in het pakket dat het internet opgestuurd gaat
worden.Nu moet het verkeer over het VPN natuurlijk versleuteld
worden. Dat kan als volgt worden weergegeven:Als een pakket A.B.C.D verlaat met als bestemming
W.X.Y.Z, versleutel het dan
met de benodigde beveiligingssamenwerkingen.Als een pakket aankomt van W.X.Y.Z en het heeft
A.B.C.D als bestemming,
ontcijfer het dan met de benodigde
beveiligingssamenwerkingen.Dat klopt bijna, maar niet helemaal. Als dit gebeurde,
dan zou al het verkeer van en naar W.X.Y.Z, zelfs als dat geen deel
uit zou maken van het VPN, versleuteld worden. Dat is niet
wenselijk. Het correcte beleid ziet er zo uit:Als een pakket A.B.C.D verlaat en dat pakket
bevat een ander pakket en als het W.X.Y.Z als bestemming heeft,
versleutel het dan met de benodigde
beveiligingssamenwerkingen.Als een pakket aankomt van W.X.Y.Z en het pakket bevat een
ander pakket en het heeft A.B.C.D als bestemming, ontcijfer
het dan met de benodigde
beveiligingssamenwerkingen.Dat is een subtiele aanpassing, maar wel
noodzakelijk.Beveiligingsbeleid wordt ook ingesteld met
&man.setkey.8;. &man.setkey.8; biedt een instellingtaal
voor het definiëren van beleid. Instructies kunnen via
STDIN gegeven worden of met de optie
uit een bestand komen dat de instellingen bevat.De instellingen op gateway host #1 (die het publieke
IP adres A.B.C.D heeft) om al het uitgaande
verkeer naar W.X.Y.Z te laten
versleutelen is:spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;Deze commando's kunnen in een bestand (bv.
/etc/ipsec.conf) gezet worden om
uitgevoerd te worden:&prompt.root; setkey -f /etc/ipsec.conf vertelt &man.setkey.8; dat er een
regel toegevoegd moet worden aan de database met het
beveiligingsbeleid. De rest van de regel geeft aan op welke
pakketten dit beleid van toepassing is. A.B.C.D/32 en W.X.Y.Z/32 zijn de
IP adressen en netmaskers waarmee het
netwerk of de hosts worden aangegeven waarop het beleid van
toepassing is. In dit geval is het van toepassing op het
verkeer tussen twee hosts. vertelt
de kernel dat dit beleid alleen van toepassing is op
pakketten waarin een ander pakket ingepakt zit. betekent dat dit beleid van toepassing is op
uitgaande pakketten en betekent dat de
pakketten beveiligd moeten worden.Het tweede deel geeft aan hoe een pakket versleuteld
wordt. is het protocol dat gebruikt
moet worden en geeft aan dat het
pakket ingepakt moet worden in een IPsec pakket. Het
herhaalde gebruik van A.B.C.D
en W.X.Y.Z heeft te maken met
het aangeven welke beveiligingssamenwerking gebruikt moet
worden en als laatste is het door
verplicht dat de pakketten versleuteld worden als deze regel
van toepassing is.Deze regel is alleen van toepassing op uitgaande
pakketten. Er moet ook nog een regel komen voor inkomende
pakketten.spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;Let wel dat hier dus staat in plaats
van en dat de IP
adressen zijn omgedraaid.Op de andere gateway host (met een publiek
IP adres W.X.Y.Z) zijn soortgelijke regels
nodig.spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;Tenslotte moeten de firewalls ESP en IPENCAP pakketten
naar beide kanten toestaan. Deze regels moeten op beide
hosts toegevoegd worden.ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.DOmdat deze regels symmetrisch zijn, kunnen ze op beide
gateway hosts gebruikt worden.Uitgaande pakketten zien er nu ongeveer zo uit:
.------------------------------. --------------------------.
| Src: A.B.C.D | |
| Dst: W.X.Y.Z | |
| <andere kop info> | | Versleuteld
+------------------------------+ | pakket.
| .--------------------------. | -------------. | inhoud
| | Src: A.B.C.D | | | | is
| | Dst: W.X.Y.Z | | | | volledig
| | <andere kop info> | | | |- veilig
| +--------------------------+ | | Ingepakt | voor
| | .----------------------. | | -. | pakket | snoopen
| | | Src: 192.168.1.1 | | | | Origineel|- met echt | door derden
| | | Dst: 192.168.2.1 | | | | pakket, | IP adres |
| | | <andere kop info> | | | |- privaat | |
| | +----------------------+ | | | IP adres | |
| | | <pakket data> | | | | | |
| | `----------------------' | | -' | |
| `--------------------------' | -------------' |
`------------------------------' --------------------------'
Als ze ontvangen worden door de andere kant van het VPN
dan worden ze eerst ontcijferd (met de
beveiligingssamenwerking die door racoon tot stand is
gebracht). Daarna komen ze de gif
interface binnen die de tweede laag uitpakt zodat het
binnenste pakket overblijft, dan nu naar het interne netwerk
kan reizen.De beveiliging kan gecontroleerd worden met dezelfde
&man.ping.8; test die eerder is uitgevoerd, door eerst aan
te melden op de A.B.C.D
gateway machine en het onderstaande uit te voeren:tcpdump dst host 192.168.2.1In nog een sessie op dezelfde host kan dan het volgende
commando uitgevoerd worden:ping 192.168.2.1Nu hoort de volgende uitvoer te zien te zijn:XXX tcpdump output&man.tcpdump.1; toont nu de ESP pakketten. Als deze
pakketten verder bekeken worden met de optie
dan is de uitvoer onbegrijpelijk vanwege
de versleuteling.Gefeliciteerd. Nu is het VPN tussen de twee locaties
opgezet.SamenvattingStel beide kernels in met:options IPSEC
options IPSEC_ESPInstalleer security/racoon. Wijzig
${PREFIX}/etc/racoon/psk.txt op
beide gateway hosts en voeg een regel toe voor het
IP adres van de host aan de andere
kant en een geheime sleutel die aan beide kanten bekend
is. Dit bestand hoort mode 0600 te hebben.Voeg de volgende regels toe aan
/etc/rc.conf voor iedere
host:ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"Maak /etc/ipsec.conf op iedere
host die de benodigde spdadd regels bevat. Op gateway
host #1 zou dat zijn:spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec
esp/tunnel/A.B.C.D-W.X.Y.Z/require;
spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec
esp/tunnel/W.X.Y.Z-A.B.C.D/require;En op gateway host #2 is dat:spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec
esp/tunnel/W.X.Y.Z-A.B.C.D/require;
spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec
esp/tunnel/A.B.C.D-W.X.Y.Z/require;Voeg firewallregels toe om IKE, ESP en IPENCAP
verkeer toe te staan naar beide hosts:
ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp
ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.DDe voorgaande twee stappen zouden voldoende moeten zijn
voor het opzetten van het VPN. Machines op ieder netwerk
kunnen elkaar nu bereiken op basis van IP
adressen en al het verkeer over de verbinding wordt
automatisch en veilig versleuteld.ChernLeeBijgedragen door SiebrandMazelandVertaald door OpenSSHOpenSSHbeveiligingOpenSSHOpenSSH is een groep
netwerkverbindingsprogramma's waarmee computers via het netwerk
veilig benaderd kunnen worden. Het kan ingezet worden als een
directe vervanger van rlogin,
rsh, rcp en
telnet. Daarnaast kunnen alle andere
TCP/IP verbindingen veilig
getunneld of geforward worden door SSH.
OpenSSH versleutelt al het verkeer om
afluisteren, het stelen van een verbinding en andere
netwerkaanvallen effectief te voorkomen.OpenSSH wordt onderhouden door het
OpenBSD project en is gebaseerd op SSH v1.2.12 met alle recente
bugfixes en updates. Het is compatibel met beide protocollen SSH
1 en 2. OpenSSH zit in de
basisinstallatie sinds &os; 4.0.Voordelen van Gebruik van OpenSSHAls gewoonlijk &man.telnet.1; of &man.rlogin.1; wordt
gebruikt, wordt de data in platte tekst en niet versleuteld
verzonden. Netwerksnuffelaars die ergens tussen de client en
de server meeluisteren, kunnen een gebruikersnaam en wachtwoord
stelen en zien welke gegevens er worden overgezonden tijdens
een sessie. OpenSSH biedt een
verscheidenheid aan authenticatie en versleutelingsmethoden
die het voorgaande voorkomen.sshd InschakelenOpenSSHinschakelenIn rc.conf dient het volgende te
staan:sshd_enable="YES"Hierdoor wordt &man.sshd.8; geladen, het daemonprogramma
voor OpenSSH, als het systeem de
volgende keer opstart. De sshd
daemon kan ook direct gestart worden door
sshd in te geven op de commandoregel.SSH ClientOpenSSHclient&man.ssh.1; werkt net zoals &man.rlogin.1;.&prompt.root; ssh user@example.com
Host key not found from the list of known hosts.
Are you sure you want to continue connecting (yes/no)? yes
Host 'example.com' added to the list of known hosts.
user@example.com's password: *******Het aanmelden gaat nu net zoals het zou gaan als wanneer
er een sessie gestart zou worden met rlogin
of telnet. SSH maakt gebruik van een
systeem met vingerafdrukken als sleutels voor het vaststellen
met welke server verbinding wordt gemaakt op het moment
dat de client verbinding zoekt. De gebruiker krijgt alleen de
eerste keer dat verbinding wordt gezocht met de server een
vraag waarop yes geantwoord dient te worden.
Bij volgende pogingen om aan te melden wordt de
vingerafdruksleutel vergeleken met de sleutel die is
opgeslagen. De SSH client alarmeert de gebruiker als de
opgeslagen vingerafdruk sleutel anders is dan de sleutel die
de server meldt. De vingerafdrukken worden opgeslagen in
~/.ssh/known_hosts of in
~/.ssh/known_hosts2 voor SSH v2
vingerafdrukken.OpenSSH servers staan standaard
- ingesteld om SSH v1 and SSH v2 en connecties toe te staan. De
- client kan echter tussen beiden kiezen. Versie 2 is robuster
- en veiliger dan zijn voorloper.
+ ingesteld om alleen SSH v2 connecties toe te staan. De client
+ kan echter tussen beiden kiezen. Versie 2 is robuster en
+ veiliger dan zijn voorloper.
Het commando &man.ssh.1; kan gedwongen worden om een van de
twee protocollen te gebruiken door de optie
of voor respectievelijk
v1 en v2 aan te geven.
- Veilig Kopieren
+ Veilig KopiërenOpenSSHveilig kopiërenscpHet commando &man.scp.1; (secure copy) werkt gelijk aan
&man.rcp.1;. Het kopieert een bestand van of naar een andere
machine, maar doet dat veilig.&prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT
user@example.com's password: *******
COPYRIGHT 100% |*****************************| 4735
00:00
&prompt.root;Omdat de vingerafdruk al is opgeslagen voor deze host in
het vorige voorbeeld, is die al geverifieerd als &man.scp.1;
gebruik wordt.De argumenten die aan &man.scp.1; gegeven worden zijn
vrijwel gelijk aan die voor &man.cp.1; met het bestand of
de bestanden als het eerste argument en de bestemming als het
tweede. Omdat het bestand over het netwerk gaat, door SSH,
hebben een of meer van de bestandsargumenten de vorm
.InstellenOpenSSHinstellenHet instellingenbestand dat voor het hele systeem geldt
voor zowel de OpenSSH daemon als
client staat in de map /etc/ssh.ssh_config bevat de instellingen voor
de client en sshd_config bevat ze voor
de daemon.Daarnaast bieden het
(standaard /usr/sbin/sshd) en
rc.conf
opties nog meer mogelijkheden voor instellingen.ssh-keygenIn plaats van het gebruik van wachtwoorden kan
&man.ssh-keygen.1; gebruikt worden om RSA sleutels te maken
om een gebruiker te authenticeren:&prompt.user; ssh-keygen -t rsa1
Initializing random number generator...
Generating p: .++ (distance 66)
Generating q: ..............................++ (distance 498)
Computing the keys...
Key generation complete.
Enter file in which to save the key (/home/user/.ssh/identity):
Enter passphrase:
Enter the same passphrase again:
Your identification has been saved in /home/user/.ssh/identity.
...&man.ssh-keygen.1; maakt een publiek en privaat sleutelpaar
aan dat gebruikt kan worden voor authenticatie. De private
sleutel staat opgeslagen in
~/.ssh/identity en de publieke sleutel
staat in ~/.ssh/identity.pub. De publieke
sleutel moet in ~/.ssh/authorized_keys
van de andere machine staan om dit te laten werken.Nu is het mogelijk een verbinding te maken met een andere
machine die gebaseerd is op RSA authenticatie in plaats van
op wachtwoorden.De optie maakt RSA sleutels
voor versie 1 van het SSH protocol. Als gebruik van versie 2
gewenst is, dan het commando ssh-keygen -t
rsa gebruikt te worden.Als er een wachtwoordzin is gebruikt bij &man.ssh-keygen.1;
dan wordt de gebruiker iedere keer dat de private sleutel wordt
gebruikt een wachtwoord gevraagd.Het is mogelijk een SSH protocol versie 2 DSA sleutel te
maken voor hetzelfde doel met het commando
ssh-keygen -t dsa. Hiermee wordt een
publiek/privaat DSA sleutelpaar gemaakt dat alleen gebruikt kan
worden in SSH protocol versie 2 sessies. De publieke sleutel
staat in ~/.ssh/id_dsa.pub en de private
sleutel staat in ~/.ssh/id_dsa.Publieke DSA staan ook in
~/.ssh/authorized_keys op de andere
machine.&man.ssh-agent.1; en &man.ssh-add.1; zijn hulpprogramma's
die gebruikt worden om meerdere met wachtwoorden beschermde
private sleutels te beheren.Opties en bestandslocaties kunnen afhankelijk zijn
van de gebruikte OpenSSH versie op
een systeem. Raadpleeg de &man.ssh-keygen.1; handboekpagina
voor de correcte gegevens.SSH TunnelsOpenSSHtunnelsOpenSSH kan een tunnel maken
waarin een ander protocol ingepakt kan worden zodat er een
versleutelde sessie ontstaat.Het volgende commando geeft &man.ssh.1; aan dat er een
tunnel voor telnet gemaakt moet
worden:&prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
&prompt.user;Aan het ssh commando worden de volgende
opties meegegeven:Dit dwingt ssh om versie 2 van het
protocol te gebruiken. Gebruik van deze optie wordt
afgeraden als er verbinding wordt gemaakt met oudere SSH
servers.Dit geeft aan dat er geen commando volgt, maar dat er
een tunnel opgezet moet worden. Als deze optie niet
aanwezig was, zou ssh een normale
sessie starten.Dit dwingt ssh om in de
achtergrond te draaien.Dit geeft aan dat de lokaal een tunnel wordt gemaakt
in de vorm
lokale_poort:netwerk_host:netwerk_poort.Wijst naar een gebruiker op de SSH server op het
netwerk.Een SSH tunnel werkt doordat een luistersocket wordt
gemaakt op localhost op de aangegeven poort.
Die stuurt dan iedere ontvangen verbinding op de lokale
host/poort via de SSH verbinding door naar de aangegeven host
en poort op het netwerk.In het voorbeeld wordt poort
5023 op localhost
doorgestuurd naar poort 23 op
localhost van de machine op het netwerk.
Omdat 23telnet is, zou dit een veilige
telnet verbinding opleveren door
een SSH tunnel.Dit kan gebruikt worden om ieder willekeurig onveilig
TCP protocol in te pakken als SMTP,
POP3, FTP, etc.SSH Gebruiken om een Veilige Tunnel te Maken voor
SMTP&prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com
user@mailserver.example.com's password: *****
&prompt.user; telnet localhost 5025
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mailserver.example.com ESMTPDit kan samen met een &man.ssh-keygen.1; en extra
gebruikersaccounts gebruikt worden om een min of meer
naadloze en eenvoudige SSH tunnelomgeving te maken. In
plaats van wachtwoorden kunnen sleutels gebruikt worden en de
tunnels kunnen in de omgeving van een aparte gebruiker
draaien.Praktische Voorbeelden van een SSH TunnelVeilige Toegang tot een POP3 ServerOp het werk staat een SSH server die verbindingen van
buitenaf toestaat. Op hetzelfde netwerk op kantoor staat
een mailserver waarop POP3 draait. Het netwerk of het
netwerkpad tussen de locatie op internet en kantoor is
wellicht niet helemaal te vertrouwen. Om deze reden dient
de mailserver op een veilige manier benaderd te worden. De
oplossing is een SSH verbinding opzetten naar de SSH server
op kantoor en dan door de tunnel heen een verbinding
opzetten met de mailserver.&prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com
user@ssh-server.example.com's password: ******Als de tunnel eenmaal draait, dan kan de mailclient
naar localhost poort 2110 gewezen worden.
Alle verbinding naar die poort worden veilig doorgestuurd
door de tunnel naar
mail.example.com.Een Draconische Firewall OmzeilenSommige netwerkbeheerders stellen draconische
firewallregels op en filteren niet alleen inkomende
verbindingen, maar ook uitgaande. Meestal mag dan alleen
maar verbinding gemaakt worden met andere machines op
poorten 22 en 80 voor SSH en websurfen.Soms wil een gebruiker dan toch toegang krijgen tot
andere (wellicht niet netwerk-gerelateerd) diensten, zoals
een Ogg Vorbis server om muziek te streamen. Als die Ogg
Vorbis server streamt op een andere poort dan 22 of 80, dan
kan deze niet bereikt worden.De oplossing ligt in het opzetten van een SSH
verbinding naar een machine buiten de firewall en die
tunnel te gebruiken om bij de Ogg Vorbis server te
komen.&prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org
user@unfirewalled-system.example.org's password: *******De streamingclient kan nu gewezen worden naar
localhost poort 8888 vanwaar er wordt
doorverwezen naar music.example.com poort
8000 en zo wordt de firewall succesvol ontwerken.Meer LezenOpenSSH&man.ssh.1; &man.scp.1; &man.ssh-keygen.1;
&man.ssh-agent.1; &man.ssh-add.1;&man.sshd.8; &man.sftp-server.8;TomRhodesBijgedragen door SiebrandMazelandVertaald door ACL
- Bestandssysteem Toegangscontrole Lijsten
+ Bestandssysteem ToegangscontrolelijstenIn combinatie met verbeteringen als snapshots, bieden
&os; 5.0 en volgende versies de veiligheid van
- Bestandssysteem Toegangscontrole Lijsten (Access Control Lists,
+ Bestandssysteem Toegangscontrolelijsten (Access Control Lists,
ACLs).
- Met Toegangscontrole Lijsten wordt het standaard &unix;
+ Met Toegangscontrolelijsten wordt het standaard &unix;
rechtenmodel uitgebreid op een zeer verenigbare (&posix;.1e)
manier. Deze methodes stellen een beheerder in staat om gebruik
te maken en voordeel te halen uit een geraffineerder
beveiligingsmodel.Om ondersteuning voor ACLs voor
bestandssystemen in te schakelen dient het volgende in de kernel
gecompileerd te worden:options UFS_ACLAls deze optie niet aanwezig is, dan wordt er een
waarschuwing weergegeven als er wordt geprobeerd een
bestandssysteem te mounten dat gebruik maakt van
ACLs. Deze optie is al geactiveerd in de
GENERIC kernel. ACLs
zijn afhankelijk van uitgebreide attributen die zijn ingeschakeld
op het bestandssysteem. Uitgebreide attributen worden standaard
ondersteund in het volgende generatie &unix; bestandssysteem
UFS2.Er is meer administratieve overhead nodig om
uitgebreide attributen in te stellen op
UFS1 dan op UFS2. De
prestaties van uitgebreide attributen zijn op
UFS2 ook veel beter. Daarom wordt
UFS2 ook meestal aangeraden boven
- UFS1 bij het gebruik van toegangscontrole
- lijsten.
+ UFS1 bij het gebruik van
+ toegangscontrolelijsten.ACLs worden ingeschakeld door de
beheersvlag op het moment van mounten. Dit
kan ook in /etc/fstab staan. De vlag op het
moment van mounten kan ook automatisch gezet worden op een
persistente wijze met &man.tunefs.8; door een superblok in de
bestandssysteemkop te wijzigen. In het algemeen wordt de
voorkeur gegeven aan de vlag in het superblok om een aantal
redenen:De ACLs vlag op het moment van mounten
kan niet gewijzigd worden bij opnieuw mounten (&man.mount.8;
), maar alleen door een volledige
&man.umount.8; en een verse &man.mount.8;. Dit betekent dat
ACLs niet ingeschakeld kunnen worden op
root bestandssysteem na het booten. Het betekent ook dat de
aard van een bestandssysteem niet veranderd kan worden als
het eenmaal in gebruik is.Het inschakelen van de superblok vlag zorgt ervoor dat
het bestandssysteem altijd wordt gemount met de
ACLs ingeschakeld, zelfs als het niet in
fstab staat of als de apparaten van
plaats veranderen. Hiermee wordt voorkomen dat het
bestandssysteem wordt gebruikt zonder dat
ACLs ingeschakeld zijn, wat ervoor zou
kunnen zorgen dat ACLs onjuist worden
toegepast wat weer kan zorgen voor
beveiligingsproblemen.Wellicht wordt het mogelijk om de
ACLs via de vlag in te schakelen zonder een
compleet verse &man.mount.8;, maar de ontwikkelaars vinden het
wenselijk om het per ongeluk zonder ACLs
mounten te ontmoedigen, omdat er bijzonder vervelende gevolgen
kunnen zijn als ACLs worden ingeschakeld,
daarna worden uitgezet en weer worden ingeschakeld zonder dat
de uitgebreide attributen worden geschoond. In het algemeen
geldt dat als ACLs eenmaal zijn ingeschakeld
voor een bestandssysteem, ze niet meer uitgeschakeld moeten
worden, omdat de resulterende bestandsbescherming wellicht niet
compatibel is met dat wat gebruikers van het systeem nodig
hebben en het opnieuw aanzetten van ACLs kan
leiden tot het opnieuw koppelen van voorheen bestaande
ACLs aan bestanden waarvoor de
toegangsrechten sindsdien zijn aangepast, wat kan leiden tot
onverwachte situaties.Bestandssystemen waarvoor ACLs zijn
ingeschakeld worden weergegeven met een +
(plus) teken als de toegangsrechten worden bekeken:drwx------ 2 robert robert 512 Dec 27 11:54 private
drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1
drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2
drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3
drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_htmlHierboven is te zien dat mappen
directory1, directory2
en directory3 allemaal gebruik maken van
ACLs. De map public_html
doet dat niet.Gebruik Maken van ACLsDe ACLs van het bestandssysteem kunnen
bekeken worden met het hulpprogramma &man.getfacl.1;. Om de
ACL op het bestand test
te bekijken zou het volgende commando nodig zijn:&prompt.user; getfacl test
#file:test
#owner:1001
#group:1001
user::rw-
group::r--
other::r--Om de ACL op dit bestand te wijzigen
wordt het hulpprogramma &man.setfacl.1; als volgt
gebruikt:&prompt.user; setfacl -k testDe vlag verwijdert alle bestaande
ACLs van een bestand of bestandssysteem. De
methode die de voorkeur geniet is gebruiken
omdat die optie de basisvelden die nodig zijn voor het laten
werken van de ACLs laat staan.&prompt.user; setfacl -m u:trhodes:rwx,group:web:r--,o::--- testBij het commando hierboven, werd de optie
gebruikt om de standaard
ACL aan te passen. Omdat er geen
voorgedefinieerde instellingen waren, die waren verwijderd door
het commando daarvoor, werden nu de standaardinstellingen
hersteld en de rechten die werden aangegeven toegevoegd. Let
op dat bij het toevoegen van een gebruiker of een groep die
niet bekend is op het systeem een foutmelding
Invalid argument wordt geschreven naar
stdout.TomRhodesBijgedragen door SiebrandMazelandVertaald door &os; Beveiligingswaarschuwingen&os; BeveiligingswaarschuwingenNet als veel andere kwalitatief goede
productiebesturingssystemen publiceert &os;
Beveiligingswaarschuwingen. Deze waarschuwingen
worden meestal pas naar de beveiligingslijst gemaild en
gedocumenteerd in de Errata als de van toepassing zijnde
releases gepatcht zijn. In deze paragraaf wordt toegelicht wat
een waarschuwing is, hoe die te begrijpen en welke maatregelen
er genomen moeten worden om een systeem bij te werken.Hoe Ziet een Waarschuwing eruit?De &os; beveiligingswaarschuwingen zien er ongeveer uit als
die hieronder die van de &a.security-notifications.name;
mailinglijst komt.=============================================================================
&os;-SA-XX:XX.UTIL Security Advisory
The &os; Project
Topic: denial of service due to some problem
Category: core
Module: sys
Announced: 2003-09-23
Credits: Person@EMAIL-ADDRESS
Affects: All releases of &os;
&os; 4-STABLE prior to the correction date
Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE)
2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6)
2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15)
2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8)
2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18)
2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21)
2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33)
2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43)
2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39)
&os; only: NO
For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit
http://www.FreeBSD.org/security/.
I. Background
II. Problem Description
III. Impact
IV. Workaround
V. Solution
VI. Correction details
VII. ReferencesHet veld Topic geeft aan wat precies
het probleem is. Het is eigenlijk een inleiding op de
beveiligingswaarschuwing en geeft aan welke programma
kwetsbaar is.Het veld Category geeft aan welk
onderdeel van het systeem kwetsbaar is. Dat kan een van de
onderdelen core,
contrib of ports
zijn. De categorie core betekent dat
de een kerncomponent van het &os; besturingssysteem
kwetsbaar is. De categorie contrib
betekent dat software die toegevoegd is aan het &os;
Project kwetsbaar is, zoals
sendmail. Tenslotte geeft de
categorie ports aan dat een optionele
component uit de portscollectie kwetsbaar is.Het veld Module geeft aan waar de
component zich bevindt, bijvoorbeeld
sys. In dit voorbeeld wordt het
duidelijk dat de module sys kwetsbaar
is. Hier gaat het dus om een kwetsbaar component die
gebruikt wordt in de kernel.Het veld Announced geeft aan wanneer
de beveiligingswaarschuwing gepubliceerd of aangekondigd
is. Dit betekent dat het beveiligingsteam heeft bevestigd
dat het probleem bestaat en dat er een patch is gecommit in
het depot met de broncode van &os;.In het veld Credits wordt iemand of
een organisatie bedankt die de kwetsbaarheid heeft ontdekt
en gerapporteerd.Het veld Affects geeft aan welke
releases van &os; door deze kwetsbaarheid worden getroffen.
Voor de kernel kan snel gekeken worden naar de uitvoer van
ident voor de betreffende bestanden om
te bepalen welke revisie ze hebben. Voor ports is het
versienummer te zien in /var/db/pkg.
Als het systeem niet gelijk op loopt met het &os;
CVS depot en dagelijks herbouwd wordt,
dan is de kans groot dat het systeem kwetsbaar is.Het veld Corrected geeft de datum,
tijd en tijdzone aan en de release die is aangepast.Het veld &os; only geeft aan of deze
kwetsbaarheid alleen betrekking heeft op &os; of dat hij
ook betrekking heeft op andere besturingssystemen.Het veld Background geeft meer
informatie over wat er precies aan de hand is. Meestal
staat hier waarom het programma aanwezig is in &os;, waar
het voor gebruikt wordt en hoe het programma is
ontstaan.Het veld Problem Description geeft
gedetailleerde toelichting op het beveiligingsprobleem.
Hier kan informatie bij staat over programmacode die
fouten bevat of zelfs hoe het programma gebruikt kan worden
om een beveiligingsgat te openen.Het veld Impact beschrijft welke
invloed het probleem kan hebben op het systeem. Dit kan
bijvoorbeeld een ontzegging van dienst aanval zijn,
gebruikers extra rechten geven of het verkrijgen van
supergebruiker toegang voor de aanvaller zijn.Het veld Workaround geeft aan hoe
het mogelijk is het probleem te omzeilen (workaround) in
het geval systeembeheerders niet in staat zijn om het
systeem bij te werken. Dit zou te maken kunnen hebben
met de tijd, beschikbaarheid van het netwerk en een hele
lijst met andere redenen. Hoe dan ook, beveiliging
dient serieus genomen te worden en een systeem dat
kwetsbaar is moet bijgewerkt worden of het gat in de
beveiliging moet gedicht worden met de alternatieve
oplossing.Het veld Solution geeft instructies
over hoe een systeem aangepast kan worden. Dit is een
werkinstructie die getest en gecontroleerd is om een
systeem aan te passen en weer veilig werkend te
krijgen.In het veld Correction Details staan
de CVS takken of releasenamen, met de
punten veranderd in een liggend streepje. Er staat ook
welke revisienummer de aangetaste bestanden binnen een tak
hebben.In het veld References wordt
gewoonlijk verwezen naar andere bronnen. Dit kunnen
URLs, boeken, mailinglijsten en
nieuwsgroepen zijn.
diff --git a/nl_NL.ISO8859-1/books/handbook/users/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/users/chapter.sgml
index cf1f4fc2d0..d90de6fdf1 100644
--- a/nl_NL.ISO8859-1/books/handbook/users/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/users/chapter.sgml
@@ -1,1285 +1,1285 @@
NeilBlakey-MilnerGeschreven door SiebrandMazelandVertaald door Gebruikers en Basis AccountbeheerOverzichtMet &os; is het mogelijk een computer met meerdere gebruikers
tegelijkertijd te gebruiken. Natuurlijk kan er op een zeker
moment maar één gebruiker achter het scherm en
toetsenbord zitten
Tenzij er natuurlijk meerdere terminals worden
aangesloten, maar dat wordt behandeld in .
, maar er kan een groot aantal gebruikers zijn aangemeld via het
netwerk om dingen met de computer te doen. Om een systeem te
gebruiken moet een gebruiker een account hebben.Na het lezen van dit hoofdstuk weet de lezer:De verschillen tussen de gebruikersaccounts op een &os;
systeem;Hoe gebruikersaccounts toe te voegen;Hoe gebruikersaccounts te verwijderen;Hoe eigenschappen van accounts te wijzigen, zoals de
volledige naam van de gebruiker of de voorkeursshell;Hoe op een per account basis limieten in te stellen om
het bronnengebruik van bijvoorbeeld geheugen en processortijd
te reguleren voor accounts en accountgroepen;Hoe groepen te gebruiken om accountbeheer te
vereenvoudigen.Aangeraden voorkennis:Basisbegrip van &unix; en &os; ().InleidingVia accounts wordt alle toegang tot een systeem gegeven en
alle processen worden door gebruikers gedraaid. Dus gebruikers
en accountbeheer zijn van integraal belang op &os;
systemen.Elke account op een &os; systeem heeft een aantal
informatievelden waarmee de account geïdentificeerd kan
worden.GebruikersnaamDe gebruikersnaam, zoals die ingevoerd wordt bij het
prompt login:. Gebruikersnamen moeten
uniek zijn op een computer. Er mogen geen twee
gebruikers zijn met dezelfde gebruikersnaam. Er horen een
aantal regels bij het maken van geldige gebruikersnamen,
die in &man.passwd.5; staan beschreven. Gebruikersnamen
bestaan gewoonlijk uit acht of minder karakters (geen
hoofdletters).WachtwoordBij ieder account hoort een wachtwoord. Het wachtwoord
kan leeg zijn. Er is dan geen wachtwoord nodig om toegang
te krijgen tot een systeem. Dit is meestal een slecht
idee. Ieder account hoort een wachtwoord te
hebben.Gebruikers ID (UID)Het UID is een nummer, traditioneel van 0 tot 65535
Het is mogelijk om UID/GID's te gebruiken tot
4294967295, maar die ID's kunnen tot serieuze
problemen leiden met software die aannames maakt over
de waarde van ID's.
, dat wordt gebruikt om een gebruiker op een systeem uniek
te identificeren. Intern gebruikt &os; het UID om
gebruikers te identificeren. Voor alle &os; commando's
waarin een gebruikersnaam wordt opgegegeven, wordt eerst
geconverteerd naar het UID voordat ermee gewerkt wordt.
Dit betekent dat er verschillende accounts kunnen zijn met
andere gebruikersnamen maar met hetzelfde UID. Wat &os;
betreft zijn al die accounts één gebruiker.
Het is onwaarschijnlijk dat het ooit nodig is deze
eigenschap te gebruiken.Groep ID (GID)Het GID is een nummer, traditioneel van 0 tot 65535
, gebruikt om de
primaire groep waartoe een gebruiker behoort, uniek te
identificeren. Groepen zijn een methode waarmee toegang
tot bronnen beheerst kan worden, gebaseerd op het GID van
een gebruiker in plaats van op een UID. Hiermee kan het
aantal instellingen in bepaalde bestanden aanzienlijk
verkleind worden. Een gebruiker kan lid zijn van meer dan
één groep.AanmeldklasseAanmeldklassen zijn een uitbreiding op het
groepenmechanisme waarmee additionele flexibiliteit wordt
geboden bij het aanpassen van een systeem op verschillende
gebruikers.Wijzigingstijd wachtwoordStandaard dwingt &os; gebruikers niet tot het periodiek
wijzigen van hun wachtwoord. Dit kan wel per gebruiker
afgedwongen worden, zodat sommige of alle gebruikers hun
wachtwoord na een bepaalde periode moeten wijzigen.Verloopdatum accountStandaard verlopen accounts op &os; niet. Als er
accounts gemaakt worden waarvan bekend is dat ze maar een
beperkte tijd nodig zijn, bijvoorbeeld op een school waar
accounts bestaan voor studenten, dan kan er aangegeven
worden wanneer een account verloopt. Nadat de verloopdatum
is verstreken kan de account niet meer gebruikt worden om
aan te melden op een systeem, hoewel de mappen en bestanden
van de account nog wel blijven bestaan.Volledige gebruikersnaamDe gebruikersnaam identificeert de account uniek voor
&os;, maar die geeft niet zonder meer de echte naam van de
gebruiker weer. Deze informatie kan aan de account
gekoppeld worden.ThuismapDe thuismap is het volledige pad naar een map op een
systeem waar de gebruiker start als die aanmeldt op een
systeem. Het is de gewoonte dat alle thuismappen voor
gebruikers onder
/home/gebruikersnaam
of
/usr/home/gebruikersnaam
staan. Gebruikers slaan hun persoonlijke bestanden op in
hun thuismap en in mappen die daaronder worden
gemaakt.GebruikersshellDe shell biedt een standaardomgeving waarmee gebruikers
met een systeem werken. Er zijn vele shells en ervaren
gebruikers hebben hun eigen voorkeuren, die hun weerslag
kunnen hebben in hun accountinstellingen.Er zijn drie hoofdtypen accounts: de Superuser, systeemgebruikers en gebruikersaccounts. De Superuser
account, die meestal root heet, wordt
gebruikt om een systeem te beheren zonder beperkingen.
Systeemgebruikers kunnen diensten draaien. Tenslotte kunnen
gebruikersaccounts gebruikt worden door echte personen, die
aanmelden, e-mail lezen, enzovoort.De Superuser Accountaccountssuperuser (root)De superuser account, die meestal
root heet, is al ingesteld om gebruikt te
worden voor systeembeheer en hoort niet gebruikt te worden voor
dagelijkse werkzaamheden, zoals het sturen en ontvangen van
e-mail, het verkennen van het systeem of programmeren.Dit omdat de Superuser, anders dan gewone gebruikersaccounts,
zonder beperkingen kan opereren en misbruik van een Superuser
account kan resulteren in spectaculaire problemen.
Gebruikersaccounts kunnen niet per ongeluk een systeem vernielen,
dus het is aan te raden om wanneer maar mogelijk gewone
gebruikersaccounts te gebruiken, tenzij de extra privileges
noodzakelijk zijn.Commando's die als superuser worden uitgevoerd dienen altijd
twee of drie keer gecontroleerd te worden voordat ze worden
uitgevoerd, omdat een extra spatie of een missend karakter kan
leiden tot niet terug te draaien dataverlies.Als het niet al geregeld is, is het dus na het lezen van dit
hoofdstuk aan te raden als eerste een gebruikersaccount zonder
bijzondere rechten te maken voor de dagelijkse bezigheden. Dit
geldt zowel als het gaat over een machine voor één
gebruiker als wanneer het gaat over een machine voor meerdere
gebruikers. Later in dit hoofdstuk wordt beschreven hoe
additionele accounts gemaakt kunnen worden en hoe er tussen de
normale gebruiker en de Superuser gewisseld kan worden.SysteemaccountsaccountssysteemSysteemgebruikers draaien diensten, zoals DNS, mailservers,
webservers, enzovoort. De reden hiervoor is beveiliging. Als
alle diensten als Superuser zouden draaien, dan zouden ze zonder
beperkingen kunnen opereren.accountsdaemonaccountsoperatorVoorbeelden van systeemgebruikers zijn
daemon, operator,
bind (voor de Domain Name Service) en
news. Vaak maken systeembeheerders
httpd om webservers die ze installeren te
draaien.accountsnobodynobody is de generieke systeemgebruiker
zonder bijzondere privileges Het is wel belangrijk om ervan
bewust te zijn dat hoe meer diensten nobody
gebruiken, hoe meer bestanden en processen er bij die gebruiker
horen en dat de gebruiker daardoor meer privileges kan
krijgen.GebruikersaccountsaccountsgebruikerGebruikersaccounts zijn het primaire middel dat echte
gebruikers gebruiken om toegang te krijgen tot een systeem en die
account schermen de gebruiker en de omgeving af, waardoor die
gebruikers het systeem of andere gebruikers niet kunnen
beschadigen en waardoor gebruikers hun omgeving kunnen aanpassen
zonder invloed te hebben op anderen.Iedereen die toegang heeft tot een systeem hoort een unieke
gebruikersaccount te hebben. Hierdoor is het mogelijk uit te
vinden wie wat aan het doen is, te voorkomen dat mensen elkaars
instellingen kunnen verpesten of elkaars e-mail kunnen lezen,
enzovoort.Iedere gebruiker kan zijn eigen omgeving instellen op een
systeem, door andere shells, editors, toetsenbordinstellingen en
taal te kiezen.Accounts WijzigenaccountswijzigenEr zijn vele commando's beschikbaar in de &unix; omgeving om
gebruikersaccounts te manipuleren. De meest gebruikte commando's
worden hieronder beschreven, gevolgd door meer gedetailleerde
voorbeelden van gebruik.CommandoSamenvatting&man.adduser.8;Het aanbevolen commandoregelprogramma voor het
aanmaken van nieuwe gebruikers.&man.rmuser.8;Het aanbevolen commandoregelprogramma voor het
verwijderen van gebruikers.&man.chpass.1;Een flexibel hulpprogramma voor het wijzigen van
informatie in de gebruikersdatabase.&man.passwd.1;Een eenvoudig commandoregelprogramma voor het
wijzigen van wachtwoorden van gebruikers.&man.pw.8;Een krachtig en flexibel hulpprogramma voor het
wijzigen van alle aspecten van
gebruikersaccounts.adduseraccountstoevoegenadduser/usr/share/skelskeleton map&man.adduser.8; is een eenvoudig programma voor het
aanmaken van nieuwe gebruikers. Er worden regels mee
toegevoegd aan de systeembestanden passwd
en group. Het maakt ook een thuismap voor
de nieuwe gebruiker, kopieert de standaard
instellingenbestanden (dotfiles) uit
/usr/share/skel en kan, optioneel, de
nieuwe gebruiker een welkomstbericht mailen.In &os; 5.0, is &man.adduser.8; herschreven van een
Perl script naar een shell script dat een wrapper om &man.pw.8;
is, zodat het gebruik wat verschilt tussen &os; 4.X en
&os; 5.X.Een eerste instellingenbestand kan gemaakt worden met
adduser -s -config_createDoor de optie start &man.adduser.8;
standaard in stille modus. Later wordt de optie
gebruikt als de standaarden worden
aangepast.
. Hierna worden de &man.adduser.8; standaarden ingesteld en kan
de eerste gebruikersaccount gemaakt worden, omdat het gebruik
van root voor normaal gebruik boosaardig
en naar kan zijn.adduser Instellen en een Gebruiker
op &os; 4.X Toevoegen&prompt.root; adduser -v
Use option ``-silent'' if you don't want to see all warnings and questions.
Check /etc/shells
Check /etc/master.passwd
Check /etc/group
Enter your default shell: csh date no sh tcsh zsh [sh]: zsh
Your default shell is: zsh -> /usr/local/bin/zsh
Enter your default HOME partition: [/home]:
Copy dotfiles from: /usr/share/skel no [/usr/share/skel]:
Send message from file: /etc/adduser.message no
[/etc/adduser.message]: no
Do not send message
Use passwords (y/n) [y]: y
Write your changes to /etc/adduser.conf? (y/n) [n]: y
Ok, let's go.
Don't worry about mistakes. I will give you the chance later to correct any input.
Enter username [a-z0-9_-]: jru
Enter full name []: J. Random User
Enter shell csh date no sh tcsh zsh [zsh]:
Enter home directory (full path) [/home/jru]:
Uid [1001]:
Enter login class: default []:
Login group jru [jru]:
Login group is ``jru''. Invite jru into other groups: guest no
[no]: wheel
Enter password []:
Enter password again []:
Name: jru
Password: ****
Fullname: J. Random User
Uid: 1001
Gid: 1001 (jru)
Class:
Groups: jru wheel
HOME: /home/jru
Shell: /usr/local/bin/zsh
OK? (y/n) [y]: y
Added user ``jru''
Copy files from /usr/share/skel to /home/jru
Add another user? (y/n) [y]: n
Goodbye!
&prompt.root;Samenvattend is de standaard shell gewijzigd in
zsh (een extra shell uit de
portscollectie) en is het sturen van een welkomstbericht aan
nieuwe gebruikers uitgeschakeld. Daarna zijn de instellingen
opgeslagen en is een account gemaakt voor
jru en is jru in de
groep wheel geplaatst (zodat die gebruiker
de rol van root mag aannemen met het
commando &man.su.1;).Het wachtwoord dat wordt ingegeven wordt niet weergegeven
en er worden ook geen sterretjes getoond. Het is belangrijk
geen typefouten in het wachtwoord te maken.Vanaf nu kan &man.adduser.8; zonder argumenten gebruikt
worden en hoeven de standaardinstellingen niet meer aangepast
te worden. Als het programma vraagt om de instellingen te
wijzigen, kan het verlaten worden en opnieuw gestart worden
met de optie .Een Gebruiker Toevoegen aan &os; 5.X&prompt.root; adduser
Username: jru
Full name: J. Random User
Uid (Leave empty for default):
Login group [jru]:
Login group is jru. Invite jru into other groups? []: wheel
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]: zsh
Home directory [/home/jru]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username : jru
Password : ****
Full Name : J. Random User
Uid : 1001
Class :
Groups : jru wheel
Home : /home/jru
Shell : /usr/local/bin/zsh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (jru) to the user database.
Add another user? (yes/no): no
Goodbye!
&prompt.root;rmuserrmuseraccountsverwijderenMet &man.rmuser.8; kan een gebruiker volledig van een
systeem verwijderd worden. &man.rmuser.8; voert de volgende
stappen uit:Verwijdert de &man.crontab.1; van de gebruiker (als die
bestaat).Verwijdert bestaande &man.at.1; taken van de
gebruiker.Stopt alle processen van de gebruiker.Verwijdert de gebruiker uit het lokale
wachtwoordbestand van een systeem.Verwijdert de thuismap van de gebruiker (als de
gebruiker daar eigenaar van is).Verwijdert de inkomende e-mail voor de gebruiker uit
/var/mail.Verwijdert alle bestanden waar de gebruiker eigenaar
van is uit opslaggebieden voor tijdelijke bestanden als
/tmp.Als laatste wordt de gebruikersnaam uit alle groepen
in /etc/group waar die lid van was
verwijderd.
Als een groep leeg raakt en de groepsnaam is
hetzelfde als de gebruikersnaam, dan wordt de groep
verwijderd. Dit is het tegenovergestelde van wat
&man.adduser.8; met een unieke groep per
gebruiker.&man.rmuser.8; kan niet gebruikt worden om superuser
accounts te verwijderen, omdat dat vrijwel altijd leidt tot
vreselijke verwoesting.Standaard wordt een interactieve modus gebruikt, die ervoor
zorgt dat alle stappen bewust worden genomen.Interactief Accounts Verwijderen met
rmuser&prompt.root; rmuser jru
Matching password entry:
jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
Is this the entry you wish to remove? y
Remove user's home directory (/home/jru)? y
Updating password file, updating databases, done.
Updating group file: trusted (removing group jru -- personal group is empty) done.
Removing user's incoming mail file /var/mail/jru: done.
Removing files belonging to jru from /tmp: done.
Removing files belonging to jru from /var/tmp: done.
Removing files belonging to jru from /var/tmp/vi.recover: done.
&prompt.root;chpasschpass&man.chpass.1; wijzigt informatie in de gebruikersdatabase,
zoals wachtwoorden, shells en persoonlijke informatie.Alleen systeembeheerders, zoals de Superuser, mogen de
informatie en wachtwoorden voor andere andere gebruikers
wijzigen met &man.chpass.1;.Als er geen opties worden meegegeven, buiten de optionele
gebruikersnaam, dan toont &man.chpass.1; een editor waarin de
gebruikersinformatie wordt weergegeven. Als de gebruiker de
editor verlaat, dan wordt de gebruikersdatabase bijgewerkt met
de nieuwe informatie.In &os; 5.X wordt er gevraagd om een wachtwoord na
het verlaten van de editor als de uitvoerende gebruiker geen
superuser is.Interactieve chpass door
Superuser#Informatie in de gebruikersdatabase wijzigen voor jru.
Login: jru
Password: *
Uid [#]: 1001
Gid [# or name]: 1001
Change [month day year]:
Expire [month day year]:
Class:
Home directory: /home/jru
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:Een normale gebruiker kan slechts een deel van de
bovenstaande informatie wijzen en alleen voor zijn eigen
account.Interactieve chpass door een Gewone
Gebruiker#Informatie in de gebruikersdatabase wijzigen voor jru.
Shell: /usr/local/bin/zsh
Full Name: J. Random User
Office Location:
Office Phone:
Home Phone:
Other information:&man.chfn.1; en &man.chsh.1; zijn gewoon links naar
&man.chpass.1;. Dat geldt ook voor &man.ypchpass.1;,
&man.ypchfn.1; en &man.ypchsh.1;. Ondersteuning voor NIS
gaat automatisch; er hoeft dus geen yp
voor het commando aangegeven te worden. NIS wordt behandeld
in .passwdpasswdaccountswachtwoord wijzigenMet &man.passwd.1; wijzigt een gebruiker gewoonlijk zijn
eigen wachtwoord of dat van een andere gebruiker als het door
de Superuser wordt uitgevoerd.Om onbedoelde of ongeautoriseerde wijzigen te voorkomen
moet het originele wachtwoord worden ingegeven voordat een
nieuw wachtwoord kan worden ingesteld.Wachtwoord Wijzigen&prompt.user; passwd
Changing local password for jru.
Old password:
New password:
Retype new password:
passwd: updating the database...
passwd: doneAls Superuser het Wachtwoord van een Andere Gebruiker
Wijzigen&prompt.root; passwd jru
Changing local password for jru.
New password:
Retype new password:
passwd: updating the database...
passwd: doneNet als bij &man.chpass.1; is &man.yppasswd.1; gewoon een
link naar &man.passwd.1;, dus NIS werkt met beide
commando's.pwpw&man.pw.8; is een commandoregelhulpprogramma om gebruikers
en groepen te maken, verwijderen, aan te passen en weer te
geven. Het werkt als een voorkant voor de systeembestanden met
gebruikers en groepen. &man.pw.8; heeft een zeer krachtige set
commandoregelopties, waardoor het erg geschikt is om in shell
scripts gebruikt te worden. Nieuwe gebruikers vinden het
wellicht gecompliceerder dan de andere commando's die hier
beschreven worden.Gebruikers Beperkengebruikers beperkenaccountsbeperkenBij het hebben van gebruikers komt wellicht ook de gedachte
aan het beperken van de mogelijkheden op een systeem. &os;
biedt een aantal mogelijkheden waarmee een beheerder de
hoeveelheid systeembronnen die een gebruiker kan aanwenden kan
beperken. Die beperkingen zijn onderverdeeld in twee onderdelen:
schijfquota en andere beperkingen voor bronnen.quotagebruikers beperkenquotaschijfquotaSchijfquota beperken het schijfgebruik voor gebruikers en ze
bieden een mogelijkheid om dat gebruik snel te controleren zonder
het iedere keer te hoeven berekenen. Quota worden besproken in
.De overige beperking van bronnen omvat het beperken van het
gebruik van CPU, geheugen en andere bronnen die gebruikers tot
hun beschikking hebben. Die worden ingesteld in aanmeldklassen
en worden hieronder beschreven./etc/login.confAanmeldklassen worden ingesteld in
/etc/login.conf. De precieze semantiek
wordt niet behandeld in dit handboek, maar die staat beschreven
in &man.login.conf.5;. Hier is het voldoende aan te geven dat
iedere gebruiker wordt toegewezen aan een aanmeldklasse
(standaard default) en dat iedere
aanmeldklasse verbonden is met een groep aanmeldmogelijkheden
(login capability). Een aanmeldmogelijkheid is een
naam=waarde
paar, waar naam een bekende eigenschap
is en waarde een arbitraire string is
die wordt verwerkt afhankelijk van de naam. Het instellen van
aanmeldklassen en -mogelijkheden is een redelijk eenvoudig proces
en wordt ook beschreven in &man.login.conf.5;.Een systeem leest de instellingen uit
/etc/login.conf niet direct, maar leest
het databasebestand /etc/login.conf.db.
/etc/login.conf.db kan met het volgende
commando gemaakt worden uit
/etc/login.conf:&prompt.root; cap_mkdb /etc/login.confBeperkingen van bronnen verschillen van standaard
aanmeldmogelijkheden op twee manieren. Ten eerste is er voor
iedere beperking een zachte en een harde limiet. Een zachte
(huidige) limiet kan door een gebruiker of applicatie aangepast
worden, maar mag niet hoger zijn dan de harde limiet. De laatste
kan door een gebruiker verlaagd worden, maar nooit verhoogd.
Deze verschillen worden veroorzaakt door de specifieke
behandeling van de beperkingen, niet door de implementatie van
het aanmeldmogelijkheden framework, dat wil zeggen dat ze niet
echt bijzondere aanmeldmogelijkheden
zijn.Hieronder worden de meest gebruikte beperkingen op bronnen
beschreven. De overige mogelijkheden, samen met alle andere
aanmeldmogelijkheden, staat beschreven in
&man.login.conf.5;.coredumpsizecoredumpsizegebruikers beperkencoredumpsizeDe limiet op de grootte van een corebestand dat wordt
gemaakt door een programma is, om verschillende redenen,
ondergeschikt aan andere beperkingen op het gebied van
schijfgebruik (bijvoorbeeld filesize of
schijfquota). Desalniettemin wordt deze instelling vaak
gebruikt als een minder zware methode voor het beheersen
van het gebruik van schijfruimte. Omdat gebruikers niet
hun eigen corebestanden maken en ze vaak niet verwijderen,
kan deze instelling helpen te voorkomen dat een schijf vol
loopt in het geval een groot programma (bijvoorbeeld
emacs) zou crashen.cputimecputimegebruikers beperkenprocessortijdDit is de maximale hoeveelheid processortijd die een
proces van een gebruiker mag gebruiken. Processen die meer
bronnen gebruiken worden afgeschoten door de kernel.
Dit is een beperking op de CPU
tijd die wordt gebruikt, niet op
een percentage van de CPU, zoals wordt getoond in
sommige velden door &man.top.1; en &man.ps.1;. Een
limiet op de laatste is op het moment van schrijven
niet mogelijk en zou ook redelijk waardeloos zijn:
een compiler – waarschijnlijk een legitieme taak
– kan makkelijk gedurende enige tijd bij 100% van
een CPU gebruiken.filesizefilesizegebruikers beperkenfilesizeDit is de maximale grootte voor een bestand waar een
gebruiker eigenaar van kan zijn. Anders dan bij schijfquota is deze limiet van
toepassing op individuele bestanden en niet op alle
bestanden samen waarvan een gebruiker eigenaar is.maxprocmaxprocgebruikers beperkenmaxprocDit is het maximale aantal processen dat een gebruiker
mag draaien. Hieronder vallen zowel processen die op de
voorgrond draaien als op de achtergrond. Om duidelijke
reden kan deze waarde niet groter zijn dan de ingestelde
systeemlimiet voor kern.maxproc met
&man.sysctl.8;. Het te laag zetten van deze instelling kan
de productiviteit van een gebruiker schaden: vaak is het
zinvol om meerdere keren aangemeld te zijn of om pipelines
uit te voeren. Sommige taken, zoals het compileren van een
groot programma, spawnen ook meerdere processen
(bijvoorbeeld &man.make.1;, &man.cc.1; en andere
tussentijdse preprocessors).memorylockedmemorylockedgebruikers beperkenmemorylockedDit is de maximale hoeveelheid geheugen die een proces
mag claimen om te locken in het hoofdgeheugen (zie
bijvoorbeeld &man.mlock.2;). Sommige systeemkritische
programma's, zoals &man.amd.8;, locken in het
hoofdgeheugen, zodat zij, in het geval het wisselbestand
gebruikt moet worden, niet hoeven bij te dragen aan dat
proces als het nodig is.memoryusememoryusegebruikers beperkenmemoryuseDit is de maximale hoeveelheid geheugen die een proces
op enig moment mag gebruiken. Hieronder vallen zowel
hoofdgeheugen als het gebruik van het wisselbestand. Deze
limiet vangt niet al het geheugengebruik af, maar het is
een prima begin.openfilesopenfilesgebruikers beperkenopenfilesDit is het maximale aantal bestanden dat een proces
open mag hebben. In &os; representeren bestanden ook
sockets en IPC kanalen. Deze limiet mag dus niet te laag
gezet worden. De limiet voor het systeem staat ingesteld
in kern.maxfiles van
&man.sysctl.8;.sbsizesbsizegebruikers beperkensbsizeDit is de limiet op de hoeveelheid netwerkgeheugen, en
dus mbufs, die een gebruiker ter beschikking staan. Deze
waarde komt voort uit het antwoord op een DoS aanval
waarmee veel sockets werden gemaakt, maar het kan in het
algemeen gebruikt worden om de hoeveelheid
netwerkcommunicatie te limiteren.stacksizestacksizegebruikers beperkenstacksizeDit is de maximale grootte voor een stack van een
proces. Deze instelling alleen is niet genoeg om de
hoeveelheid geheugen die een programma mag gebruiken te
beperken. Daarom moet deze limiet samen met andere
limieten gebruikt worden.Er zijn nog een aantal dingen belangrijk bij het instellen
bronbeperkingen. Hierna worden een aantal algemene tips,
suggesties en commentaren gegeven.Processen die bij het opstarten van een systeem gestart
worden vanuit /etc/rc worden toegewezen
aan de aanmeldklasse daemon.Hoewel de /etc/login.conf die bij
een systeem zit een goede bron is voor redelijke waardes voor
de meeste limieten, kan alleen de beheerder van een machine
de echt juiste waarden kennen. Het te hoog instellen van een
limiet kan een systeem kwetsbaar maken voor misbruik, terwijl
het te laag instellen van limieten de productiviteit te veel
kan hinderen.Gebruikers van het X Window Systeem (X11) horen
waarschijnlijk meer bronnen toegewezen te krijgen dan andere
gebruikers. X11 gebruikt zelf al meer bronnen, maar het
moedigt gebruikers ook aan om meerdere programma's
tegelijkertijd te draaien.Het is belangrijk niet te vergeten dat veel limieten
betrekking hebben op individuele processen en niet op een
hele gebruiker. Het instellen van bijvoorbeeld
openfiles op 50, betekent dat ieder proces
dat een gebruiker draait 50 open bestanden mag hebben. Het
totale aantal bestanden dat een gebruiker dus open kan hebben
is het produkt van de waarde van openfiles
en de waarde van maxproc. Dit geldt ook
voor het gebruik van geheugen.Meer informatie over bronbeperkingen en aanmeldklassen in het
algemeen staan in de relevante hulppagina's: &man.cap.mkdb.1;,
&man.getrlimit.2;, &man.login.conf.5;.Gebruikers PersonaliserenLocalisatie betekent dat een omgeving door een beheerder of
gebruiker is ingesteld om meerdere talen, karaktersets, datum en
tijdstandaarden, enzovoort, te ondersteunen. Dit staat
beschreven in het hoofdstuk over localisatie.Groepengroepen/etc/groupsaccountsgroepenEen groep is eenvoudigweg een lijst gebruikers. Groepen
kunnen geïdentificeerd worden aan de hand van hun naam en
- GID (Groep ID). In &os; (en de meeste andere &unix;-achtige
+ GID (Groep ID). In &os; (en de meeste andere &unix; achtige
systemen), worden besluiten door de kernel over of een proces
iets wel of niet mag doen genomen op basis van het bijbehorende
gebruikers ID en een lijst van groepen waar dat bij hoort.
Anders dan bij een gebruikers ID, heeft een proces een lijst met
bijbehorende groepen. Sommige programma's refereren wel eens aan
het groep ID van een gebruiker of een proces.
Meestal is dit gewoon de eerste groep in de hiervoor genoemde
lijst.De vertaling van groep ID naar groepsnaam staat in
/etc/group. Dit is een tekstbestand met
vier velden die door het karakter : (dubbele
punt) worden gescheiden. Het eerste veld is de groepsnaam, het
tweede veld is het versleutelde wachtwoord, het derde het groep
ID, het vierde een door komma's gescheiden lijst van leden van de
groep. Het bestand kan zonder gevaar met de hand aangepast
worden (aangenomen dat er geen fouten in de syntaxis worden
gemaakt, natuurlijk). Een volledige beschrijving van de syntaxis
staat in &man.group.5;.Als het onwenselijk is om /etc/group met
de hand aan te passen, dan kan &man.pw.8; gebruikt worden voor
het toevoegen en wijzigen van groepen. Om bijvoorbeeld een groep
met de naam teamtwo toe te voegen en
daarna het bestaan van die groep te bevestigen:Groepen Toevoegen met &man.pw.8;&prompt.root; pw groupadd teamtwo
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:Het getal 1100 hierboven is het groep ID
van de groep teamtwo. Met de huidige
instelling heeft teamtwo geen leden en is
die redelijk waardeloos. Dat kan veranderen door
jru aan de groep
teamtwo toe te voegen.Gebruikers aan Groepen Toevoegen met &man.pw.8;&prompt.root; pw groupmod teamtwo -M jru
&prompt.root; pw groupshow teamtwo
teamtwo:*:1100:jruHet argument voor de optie is een door
komma's gescheiden lijst van gebruikers die lid moeten zijn van
de aangegeven groep. In de voorgaande paragrafen is al
aangegeven dat het password bestand ook voor iedere gebruiker een
groep bevat. Een gebruiker wordt automatisch toegevoegd aan
de groepenlijst door een systeem. De gebruiker wordt niet als
lid getoond van die groep bij het gebruik van de optie
van &man.pw.8;, maar wordt wel getoond
als de informatie wordt opgevraagd via &man.id.1; of met een
soortgelijk programma. Met andere woorden: &man.pw.8; wijzigt
alleen het bestand /etc/group en probeert
nooit extra informatie te lezen uit
/etc/passwd.&man.id.1; Gebruiken om Groepslidmaatschap te
Bepalen&prompt.user; id jru
uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)Hierboven is te zien dat jru lid is van
de groepen jru en
teamtwo.Meer informatie over &man.pw.8; staat in de hulppagina en
meer informatie over de opmaak van
/etc/group staat in &man.group.5;.
diff --git a/nl_NL.ISO8859-1/books/handbook/vinum/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/vinum/chapter.sgml
index 204bb696cc..19ef6b0ea9 100644
--- a/nl_NL.ISO8859-1/books/handbook/vinum/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/vinum/chapter.sgml
@@ -1,1568 +1,1566 @@
GregLeheyGeschreven door ErwinKooiVertaald door De VINUM volume manager
- Samenvatting
+ OverzichtWelke harde schijven er ook gebruikt worden, er zijn altijd
mogelijke problemen:Ze kunnen te klein zijnZe kunnen te traag zijnZe kunnen te onbetrouwbaar zijn.Eén manier waarop gebruikers zich wapenen tegen
een aantal van deze problemen is door meerdere en soms ook
redundante disks te gebruiken.Naast ondersteuning voor verschillende kaarten en controllers
die hardware RAID ondersteunen, bevat het &os; basissysteem ook
de Vinum Volume Manager, een block device driver
waarmee virtuele disken gemaakt kunnen worden.Vinum biedt meer flexibiliteit, prestaties en betrouwbaarheid
dan traditionele diskopslag en er kan RAID-0, RAID-1 en RAID-5
mee gemaakt worden of een combinatie van deze RAID
niveau's.In dit hoofdstuk wordt een overzicht gegeven van de mogelijke
problemen die traditionele diskopslag met zich meebrengt en de
Vinum Volume Manager wordt geïntroduceerd.SchijfgrootteVinumRAID
- Software
+ softwareVinum is een Volume
Manager, een virtuele schijfdriver die de drie
genoemde problemen op kan lossen. Het probleem wordt in de
volgende paragrafen verder uitgediept. Verscheidene
oplossingen zijn al voorgesteld en toegepast:De capaciteit van schijven wordt groter, maar ook de vraag
naar capaciteit neemt toe. Vaak is het gewenste bestandsysteem
groter dan de op dat moment beschikbare schijven. Hoewel dit
probleem niet meer zo actueel als het tien jaar geleden was,
bestaat het nog steeds. In sommige systemen is dit opgelost door
een virtuele harde schijf te maken die de data op meerdere
fysieke harde schijven kan opslaan.Snelheid van ToegangModerne systemen hebben vaak simultaan toegang tot data
nodig. FTP en webservers kunnen bijvoorbeeld duizenden simultane
sessies onderhouden en hebben vaak meerdere 100 Mbit/s
verbindingen met de rest van de wereld. De benodigde
datadoorvoer is dan groter dan de meeste schijven kunnen
leveren.Huidige schijven kunnen data sequentieel overdragen met
ongeveer 70 MB/s, maar deze snelheid heeft geen waarde in een
omgeving waar onafhankelijke processen toegang tot de schijf
hebben. In zo'n situatie is het interessanter om vanuit het
standpunt van de schijfdriver te kijken: de belangrijkste
parameter is dan de belasting die een bepaalde data overdracht op
de driver plaatst. Met andere woorden: wat is het tijdbeslag van
een dataoverdracht op te schijf?Bij elke dataoverdracht moet de schijf eerst zijn kop
positioneren, wachten tot de eerste sector onder de kop doorkomt
en vervolgens de overdracht starten. Deze acties duren bijzonder
kort. Het heeft geen enkele zin om ze te onderbreken.Neem een overdracht van ongeveer
10 kB: de huidige generatie high-performance schijven kan de kop
in 3.5 ms plaatsen. De snelste schijven draaien met 15.000
toeren per minuut, dus de gemiddelde rotatie vertraging (een
halve omwenteling) bedraagt 2 ms. Met 70 MB/s de overdracht
zelf duurt ongeveer 150 μs, bijna niets vergeleken met de tijd
die verloren is gegaan aan het positioneren. In zulke gevallen
daalt de data overdracht naar iets meer dan 1 MB/s en is dus
duidelijk afhankelijk van de grootte van de over te dragen
data.De traditionele en logische oplossing voor dit probleem is
meer schijven: in plaats van één
grote schijf, meerdere kleine schijven met een zelfde totale
opslagcapaciteit. Iedere schijf is in staat om onafhankelijk de
kop te plaatsen en de data over te dragen, dus de effectieve
doorvoer neemt toe met een factor bijna gelijk aan het aantal
schijven.De exacte verbetering van de doorvoer is natuurlijk kleiner
dan het aantal schijven, want hoewel iedere schijf in staat is om
parallel de data over te dragen, er is geen garantie dat de data
gelijk over de schijven verdeeld is. De belasting op de ene
schijf zal dan ook groter zijn dan op de andere schijf.aaneenschakelendisken aaneenschakelenVinumaaneenschakelen
+ RAID
+
Een gelijke belasting van de schijven is in grote mate
afhankelijk van de manier waarop data over de schijven is
verdeeld. In het volgende stuk is de opslag van een virtuele
schijf voor te stellen als een verzameling sectoren die met een
nummer aangesproken kan worden, net als bladzijden in een boek.
De meest voor de hand liggende methode om een virtuele schijf
te maken is het achter elkaar plakken van de fysieke schijven.
Een virtueel boek zou dan opgebouwd zijn uit verschillende achter
elkaar zittende fysieke hoofdstukken. Deze methode heet
aaneenschakelen
(concatenation) en heeft het voordeel dat schijven
verschillend van grootte kunnen zijn. Dit werkt prima als
toegang tot de data gelijk verdeeld is over de hele dataset. Als
die toegang beperkt is tot een klein deel van de dataset, is de
snelheidsverbetering een stuk kleiner.
laat de manier zien hoe
aaneengeschakelde schijven hun data opslaan.verdelendisk stripingVinumverdelenEen andere methode is het verdelen van de totale opslag van
de virtuele schijf in kleinere stukjes van gelijke grootte en ze
achter elkaar op verschillende fysieke schijven op te slaan.
Bijvoorbeeld: de eerste 256 sectoren worden op schijf 1
opgeslagen, de tweede 256 sectoren op schijf 2 enzovoort, tot de
laatste schijf is gebuikt, waarna weer bij schijf 1 verder wordt
gegaan, net zolang tot de schijven vol zijn. Deze methode heet
verdelen (striping) of
RAID-0.
-
- RAID
-
-
RAID staat voor Redundant
Array of Inexpensive Disks (Redundante Reeks van
Goedkope Disks) en biedt verschillende vormen van
fout-tolerantie. Hoewel die laatste term wat misleidend is:
het biedt namelijk geen redundantie..
Bij RAID-0 kost het iets meer moeite om de data te vinden en het
kan extra I/O belasting met zich meebrengen als data is verdeeld
over verschillende fysieke schijven. Het kan echter ook zorgen
voor een constantere belasting van die schijven.
geeft weer hoe RAID-0 schijven hun
data opslaan.Betrouwbaarheid van DataHet laatste probleem met de huidige schijven is dat ze
onbetrouwbaar zijn. Hoewel de betrouwbaarheid de laatste jaren
enorm is toegenomen, blijven schijven het vitale onderdeel van
een server dat waarschijnlijk als eerste kapot gaat. Als dat
gebeurt kan het catastrofale gevolgen hebben: het vervangen van
de schijf en het terugplaatsen van de data kan dagen
kosten.spiegelendisken spiegelenVinumspiegelenRAID-1De traditionele manier om dit te voorkomen is
spiegelen (mirroring): het
hebben van een kopie van de data op een andere fysieke schijf.
Sinds de uitvinding van RAID niveau's staat dit bekend als
RAID-1. Een schrijfactie naar de virtuele schijf gebeurt op
beide fysieke schijven. Een leesactie hoeft slechts vanaf
één te gebeuren. Op deze manier kan de virtuele
schijf dus blijven werken als één van de twee
fysieke schijven kapot is.RAID-1 heeft twee problemen:Prijs. Er is twee keer zoveel schijfruimte nodig als bij
een niet-redundante schijf.Prestatie. Een schrijfacie moet op twee schijven
gebeuren en kost dus twee keer zoveel bandbreedte. Een
leesactie hoeft maar op één schijf te gebeuren
en heeft hier dus geen last van.RAID-5Een andere manier is pariteit,
uitgevoerd in RAID niveau's 2, 3, 4 en 5.
Van deze vier is RAID-5 het meest interessant.
In Vinum is het geïmplementeerd als een variant van een
verdeelde organisatie waarbij één blok van elk deel
is gereserveerd voor de pariteit van de andere blokken. Voor
Vinum is een RAID-5 samenstelling
(plex) dan ook gelijk aan een verdeelde
samenstelling, met als verschil dat het een pariteitblok bevat in
ieder deel. Zoals voorgeschreven door RAID-5
wisselt de locatie van dit pariteitblok van het ene deel naar het
andere. De nummers in de datablokken geven de relatieve
bloknummers aan.Vergeleken met spiegelen heeft RAID-5 het
voordeel dat er beduidend minder opslagcapaciteit nodig is.
Lezen gebeurt op dezelfde manier als bij een verdeelde
organisatie, maar schrijven kost beduidend meer tijd, ongeveer
25% van de leesprestaties meer. Als één schijf
uitvalt, kan de reeks doorwerken in een verslechterde
staat (degraded mode): data van een
functionerende schijf kan zonder problemen gelezen worden, maar
data van de defecte schijf moet eerst worden samengesteld uit de
pariteit van de overeenkomende blokken van de resterende
schijven.Vinum ObjectenOm deze problemen op te lossen, hanteert vinum een
hiërarchie met vier niveau's van objecten:Het meest zichtbare object is de virtuele schijf. Dit
object wordt volume genoemd. Op een
paar kleine details na, hebben volumes dezelfde
eigenschappen als een &unix; schijf. Het belangrijkste
verschil is dat er geen beperking aan de grootte van de
schijf is.Volumes zijn opgebouwd uit
samenstellingen, die elk de totale
opslagcapaciteit van het volume hebben. Dit niveau in de
hiërarchie biedt daarom redundantie. Een samenstelling
is goed voor te stellen als een individuele schijf in een
RAID-1 systeem. Iedere schijf bevat
dezelfde data.Omdat Vinum bestaat binnen het &unix; opslagsysteem, moet
het mogelijk zijn om &unix; partities te gebruiken als
bouwstenen voor samenstellingen die uit meerdere schijven
bestaan. Maar het blijkt dat dit te inflexibel is: &unix;
schijven hebben een beperkt aantal partities. In plaats
daarvan verdeelt Vinum een &unix; partitie (de schijf) in
aaneengesloten stukken die subschijven
worden genoemd. Deze subschijven worden vervolgens als
bouwstenen voor de samenstelling gebruikt.Subschijven bestaan op Vinum drives,
op dit moment &unix; partities. Een Vinum drive kan
een oneindig aantal subdisks bevatten. Met uitzondering van
een klein stukje aan het begin van de schijf, dat wordt
gebruikt om informatie over de configuratie en de toestand op
te slaan, is de gehele schijf beschikbaar voor de opslag van
data.In de volgende paragrafen wordt beschreven hoe deze objecten
de functionaliteit van Vinum leveren.Volumegrootte OverwegingenEen samenstelling kan meerdere subschijven bevatten die
uitgespreid zijn over alle disks in de Vinum configuratie. Dat
houdt in dat de grootte van een individuele schijf geen limiet
is voor de samenstelling en dus niet voor het volume.Redundante DataopslagVinum implementeert RAID-0 door meerdere
samenstellingen aan een volume te koppelen. Elke samenstelling
representeert hierbij de data in het volume. Een volume kan
tussen de één en acht samenstellingen
bevatten.Hoewel een samenstelling de totala data van een volume
voorstelt, is het mogelijk dat delen van deze voorstelling
missen, door ontwerp (door geen subdisk voor delen van de
samenstelling te definiëren) of per ongeluk (door een
defecte schijf). Zo lang tenminste één
samenstelling de data voor het gehele volume kan leveren, is
het volume volledig bruikbaar.PrestatiesVinum implementeert aaneenschakelen en spiegelen op het
niveau van de samenstelling:Een aaneengeschakelde samenstelling gebruikt de
adresruimte van elke subdisk achter elkaar.Een verdeelde samenstelling spreidt de data over
iedere subdisk. De subdisks moeten daarvoor allemaal
dezelfde grootte hebben en er moeten tenminste twee
subdisks zijn om onderscheid te kunnen maken met een
aaneengeschakelde samenstelling.Welke Samenstelling?De versie van Vinum die met &os; &rel.current; wordt
meegeleverd, kent twee soorten samenstellingen:Aaneengeschakelde samenstellingen zijn het meest
flexibel: ze kunnen een oneindig aantal subdisks bevatten
die verschillend van lengte mogen zijn. De samenstelling
kan uitgebreid worden door subdisks toe te voegen. Ze
kosten minder CPU tijd dan verdeelde
samenstellingen, hoewel het verschil van de
CPU belasting niet meetbaar is. Aan de
andere kant, ze zijn het meest kwetsbaar voor
hot-spots, waar één disk heel
intensief gebruikt wordt en anderen ongebruikt
blijven.Het grootste voordeel van verdeelde samenstellingen
(RAID-0) is dat ze geen
hot-spots hebben. Door het kiezen van een
optimale deelgrootte (veelal 256 kB) kan de belasting op de
fysieke schijven gelijk getrokken worden. De nadelen van
deze aanpak zijn (minescuul) complexere code en beperkingen
aan de subdisks: ze moeten allemaal van gelijke grootte
zijn en het uitbreiden van een samenstelling met extra
subdisks is zo gecompliceerd, dat de huidige versie van
Vinum dit niet ondersteunt. Vinum voegt een extra,
triviale, beperking toe: een verdeelde samenstelling moet
tenminste twee subdisks hebben, omdat die anders niet
onderscheiden kan worden van een aaneengeschakelde
samenstelling.In worden de voor- en
nadelen van elke samenstelling samengevat.
Vinum SamenstellingenSamenstellingtypeMin. aantal subdisksSubdisks toevoegenGelijke grootteToepassingaaneengeschakeld1janeeVeel dataopslag met maximale flexibiliteit en
gemiddelde performance.verdeeld2neejaHoge prestaties, ook bij veel gelijktijdige
toegang.
VoorbeeldenVinum houdt een configuratie database
bij waarin beschreven staat welke objecten bekend zijn in het
systeem. Bij het instellen vult de gebruiker deze database uit
één of meer configuratiebestanden &man.vinum.8;.
Vinum bewaart een kopie van de database op iedere slice (die
Vinum device noemt) die door Vinum wordt
beheerd. Deze database wordt na iedere statuswijziging
bijgewerkt, zodat een na een herstart acuraat de toestand van
ieder Vinum object wordt weergegeven.Het ConfiguratiebestandHet configuratiebestand beschijft de individuele vinum
objecten. De definitie van een eenvoudig volume kan er zo
uitzien:
drive a device /dev/da3h
volume myvol
plex org concat
sd length 512m drive aDit bestand beschrijft vier Vinum objecten:De drive regel beschrijft een
partitie (drive) en de relatieve
positie ten opzichte van de onderliggende hardware. Het
heeft de symbolische naam a. Deze
scheiding van de symbolische naam van de schijf maakt het
mogelijk om disks te verplaatsen van de ene locatie naar de
andere, zonder verwarring te veroorzaken.De volume regel beschrijft een
volume. Het enige benodigde attribuut is de naam:
myvol.De plex regel beschrijft een
samenstelling. Het enige benodigde attribuut is de
organisatie, in dit geval concat. Er
is geen naam nodig: het systeem genereert automatisch een
naam door .px aan
de volumenaam toe te voegen, waarbij x
het nummer van de samenstelling in het volume is. De naam
van deze samenstelling wordt dus
myvol.p0.De sd regel beschrijft een
subdisk. De minimale specificaties zijn de naam van een
schijf waar de subdisk kan worden opgeslagen en de lengte
van de subdisk. Net als bij een samenstelling is er geen
naam nodig: het systeem genereert automatisch een naam door
.sx aan de
samenstellingnaam toe te voegen, waarbij
x het nummer van de subdisk is. De
naam van deze subdisk is dus
myvol.p0.s0.Na het verwerken van deze definitie ziet de uitvoer van
&man.vinum.8; er als volgt uit:
&prompt.root; vinum -> create config1
Configuration summary
Drives: 1 (4 configured)
Volumes: 1 (4 configured)
Plexes: 1 (8 configured)
Subdisks: 1 (16 configured)
D a State: up Device /dev/da3h Avail: 2061/2573 MB (80%)
V myvol State: up Plexes: 1 Size: 512 MB
P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
S myvol.p0.s0 State: up PO: 0 B Size: 512 MBDeze uitvoer geeft de korte uitvoer van &man.vinum.8; weer.
Het is grafisch weergegeven in
.Deze en de volgende figuren stellen een volume voor dat
samenstellingen bevat die weer de subdisks bevatten. In dit
triviale voorbeeld bevat het volume een samenstelling en deze
samenstelling bevat een subdisk.Dit speciale volume heeft geen voordeel boven een gewone
schijf paritie. Het bevat één samenstelling, dus
het is niet redundant. De samenstelling bevat
één subdisk, dus er is geen verschil in de plaats
van de data met een conventionele schijf partitie. In de
volgende paragrafen worden meer interesante configuraties
getoond.Verbeterde Betrouwbaarheid: SpiegelenDe betrouwbaarheid van een volume wordt vergroot door
spiegelen. Bij het opzetten van een gespiegeld volume is het
van belang dat subdisks van iedere samenstelling op een
andere schijf staan, zodat een defecte schijf niet beide
samenstellingen beïnvloedt. De volgende configuratie maakt
een gespiegeld volume:
drive b device /dev/da4h
volume mirror
plex org concat
sd length 512m drive a
plex org concat
sd length 512m drive bIn dit voorbeeld was het niet nodig om drive
a opnieuw te definiëren, omdat Vinum
alle objecten bijhoudt in de configuratie database. Na het
verwerken van deze definitie, ziet de configuratie er als volgt
uit:
Drives: 2 (4 configured)
Volumes: 2 (4 configured)
Plexes: 3 (8 configured)
Subdisks: 3 (16 configured)
D a State: up Device /dev/da3h Avail: 1549/2573 MB (60%)
D b State: up Device /dev/da4h Avail: 2061/2573 MB (80%)
V myvol State: up Plexes: 1 Size: 512 MB
V mirror State: up Plexes: 2 Size: 512 MB
P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
P mirror.p0 C State: up Subdisks: 1 Size: 512 MB
P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB
S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
S mirror.p0.s0 State: up PO: 0 B Size: 512 MB
S mirror.p1.s0 State: empty PO: 0 B Size: 512 MBHet is grafisch weergegeven in
.In dit voorbeeld bevat iedere samenstelling de volledige 512
MB van de opslagcapaciteit. Net als in het vorige voorbeeld
bevat iedere samenstelling slechts één
subdisk.Verbeterde PrestatieHet gespiegelde volume in het vorige voorbeeld is beter
bestand tegen hardware fouten dan een niet-gespiegeld volume,
maar de prestaties zijn lager: iedere schrijfactie naar het
volume moet op beide schijven worden uitgevoerd, waardoor een
groter deel van de bandbreedte van de schijf nodig is. Als
prestaties een belangrijke rol spelen, moet er een andere
benadering gekozen worden: in plaats van spiegelen wordt de
data verdeeld over zoveel mogelijk schijven. De volgende
configuratie laat een volume zien waarbij een samenstelling
over vier schijven verdeeld is:
drive c device /dev/da5h
drive d device /dev/da6h
volume stripe
plex org striped 512k
sd length 128m drive a
sd length 128m drive b
sd length 128m drive c
sd length 128m drive dZoals eerder al te zien was, is het niet nodig om drives
die al bekend zijn bij Vinum opnieuw te definiëren. Na
het verwerken van deze definitie, ziet de configuratie er zo
uit:
Drives: 4 (4 configured)
Volumes: 3 (4 configured)
Plexes: 4 (8 configured)
Subdisks: 7 (16 configured)
D a State: up Device /dev/da3h Avail: 1421/2573 MB (55%)
D b State: up Device /dev/da4h Avail: 1933/2573 MB (75%)
D c State: up Device /dev/da5h Avail: 2445/2573 MB (95%)
D d State: up Device /dev/da6h Avail: 2445/2573 MB (95%)
V myvol State: up Plexes: 1 Size: 512 MB
V mirror State: up Plexes: 2 Size: 512 MB
V striped State: up Plexes: 1 Size: 512 MB
P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
P mirror.p0 C State: up Subdisks: 1 Size: 512 MB
P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB
P striped.p1 State: up Subdisks: 1 Size: 512 MB
S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
S mirror.p0.s0 State: up PO: 0 B Size: 512 MB
S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB
S striped.p0.s0 State: up PO: 0 B Size: 128 MB
S striped.p0.s1 State: up PO: 512 kB Size: 128 MB
S striped.p0.s2 State: up PO: 1024 kB Size: 128 MB
S striped.p0.s3 State: up PO: 1536 kB Size: 128 MBDit volume wordt weergegeven in
. De grijstinten geven de
positie binnen de samenstelling aan: de lichtste strepen komen
het eerst, de donkerste het laatst.Betrouwbaarheid en PrestatiesMet voldoende hardware is het
mogelijk om een volume te bouwen met zowel verbeterde
betrouwbaarheid als verbeterde prestaties ten opzichte van een
standaard &unix; partitie. De volgende configuratie is een
voorbeeld van zo'n volume:
volume raid10
plex org striped 512k
sd length 102480k drive a
sd length 102480k drive b
sd length 102480k drive c
sd length 102480k drive d
sd length 102480k drive e
plex org striped 512k
sd length 102480k drive c
sd length 102480k drive d
sd length 102480k drive e
sd length 102480k drive a
sd length 102480k drive bDe subdisks van de tweede samenstelling zijn twee schijven
verschoven ten opzichte van die van de eerste samenstelling.
Dit zorgt ervoor dat een schrijfactie niet naar dezelfde disks
gaat, zelfs niet als die schrijfactie over twee schijven
plaatsvindt. laat deze configuratie
zien in grafische vorm.ObjectnamenZoals eerder in dit hoofstuk beschreven staat, kent Vinum
standaardnamen toe aan samenstellingen en subdisks. Er mag
echter een andere naam aan gegeven worden. Een andere naamgeving
wordt niet aangeraden: ervaring met de VERITAS volume manager,
die een willekeurige object benaming toestaat, heeft laten zien
dat deze flexibiliteit geen beduidend voordeel heeft, terwijl het
de kans op verwarring vergroot.Namen mogen bestaan uit alle karakters, behalve de spatie,
maar het wordt aanbevolen om alleen letters, cijfers en het
liggende streepje te gebruiken. De namen van de volumes,
samenstellingen en subdisks kunnen 64 tekens lang zijn en de
namen van drives kunnen 32 tekens lang zijn.Vinum objecten worden device nodes toegekend in de
/dev/vinum hiërarchie. Met de
configuratie uit de vorige paragraaf creë Vinum de volgende
nodes:De controle devices
/dev/vinum/control en
/dev/vinum/controld, die &man.vinum.8;
en de Vinum daemon gebruiken.Blok en karakterdevice instellingen voor elk volume.
Dit zijn de primaire devices die door Vinum gebruikt
worden. De blokdevicenamen zijn de namen van het volume,
terwijl de karakterdevicenamen de BSD benaming volgen door er
de letter r voor te zetten. De zou de
volgende blokdevices bevatten:
/dev/vinum/myvol,
/dev/vinum/mirror,
/dev/vinum/striped,
/dev/vinum/raid5 en
/dev/vinum/raid10,
en de karakterdevices
/dev/vinum/rmyvol,
/dev/vinum/rmirror,
/dev/vinum/rstriped,
/dev/vinum/rraid5 en
/dev/vinum/rraid10. Hier zit duidelijk
een probleem. Er kunnen twee volumes te zijn die
r en rr heten, maar
er ontstaat een confict als device node
/dev/vinum/rr wordt aangemaakt: is het
een karakterdevice voor volume r
of een blokdevice voor volume rr? Nu
heeft Vinum geen oplossing. Het volume dat het eerst gemaakt
wordt, krijgt de naam.Een map /dev/vinum/drive met entries
voor elke drive. Deze entries zijn eigenlijk symbolic links
naar de bijbehorende schijfnodes.Een map /dev/vinum/volume met
entries voor elk volume. Het bevat submappen voor elke
samenstelling, die weer submappen voor de subdisks
bevatten.De mappen
/dev/vinum/plex,
/dev/vinum/sd en
/dev/vinum/rsd, die blokdevicenodes
bevatten voor elke samenstelling en blok- en
karakterdevicenodes voor elke subdisk daarvan.Dit is een volgend voorbeeld:
drive drive1 device /dev/sd1h
drive drive2 device /dev/sd2h
drive drive3 device /dev/sd3h
drive drive4 device /dev/sd4h
volume s64 setupstate
plex org striped 64k
sd length 100m drive drive1
sd length 100m drive drive2
sd length 100m drive drive3
sd length 100m drive drive4Na verwerking maakt &man.vinum.8; de volgende structuur aan
in /dev/vinum:
brwx------ 1 root wheel 25, 0x40000001 Apr 13 16:46 Control
brwx------ 1 root wheel 25, 0x40000002 Apr 13 16:46 control
brwx------ 1 root wheel 25, 0x40000000 Apr 13 16:46 controld
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 drive
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 plex
crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 rs64
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 rsd
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 rvol
brwxr-xr-- 1 root wheel 25, 2 Apr 13 16:46 s64
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 sd
drwxr-xr-x 3 root wheel 512 Apr 13 16:46 vol
/dev/vinum/drive:
total 0
lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive1 -> /dev/sd1h
lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive2 -> /dev/sd2h
lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive3 -> /dev/sd3h
lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive4 -> /dev/sd4h
/dev/vinum/plex:
total 0
brwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0
/dev/vinum/rsd:
total 0
crwxr-xr-- 1 root wheel 91, 0x20000002 Apr 13 16:46 s64.p0.s0
crwxr-xr-- 1 root wheel 91, 0x20100002 Apr 13 16:46 s64.p0.s1
crwxr-xr-- 1 root wheel 91, 0x20200002 Apr 13 16:46 s64.p0.s2
crwxr-xr-- 1 root wheel 91, 0x20300002 Apr 13 16:46 s64.p0.s3
/dev/vinum/rvol:
total 0
crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 s64
/dev/vinum/sd:
total 0
brwxr-xr-- 1 root wheel 25, 0x20000002 Apr 13 16:46 s64.p0.s0
brwxr-xr-- 1 root wheel 25, 0x20100002 Apr 13 16:46 s64.p0.s1
brwxr-xr-- 1 root wheel 25, 0x20200002 Apr 13 16:46 s64.p0.s2
brwxr-xr-- 1 root wheel 25, 0x20300002 Apr 13 16:46 s64.p0.s3
/dev/vinum/vol:
total 1
brwxr-xr-- 1 root wheel 25, 2 Apr 13 16:46 s64
drwxr-xr-x 3 root wheel 512 Apr 13 16:46 s64.plex
/dev/vinum/vol/s64.plex:
total 1
brwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 s64.p0.sd
/dev/vinum/vol/s64.plex/s64.p0.sd:
total 0
brwxr-xr-- 1 root wheel 25, 0x20000002 Apr 13 16:46 s64.p0.s0
brwxr-xr-- 1 root wheel 25, 0x20100002 Apr 13 16:46 s64.p0.s1
brwxr-xr-- 1 root wheel 25, 0x20200002 Apr 13 16:46 s64.p0.s2
brwxr-xr-- 1 root wheel 25, 0x20300002 Apr 13 16:46 s64.p0.s3Hoewel het wordt aangeraden om samenstellingen en subdisks
geen naam mee te geven, moeten Vinum drives een naam hebben.
Hierdoor kan een drive naar een andere locatie verplaatst worden
terwijl hij nog steeds automatisch herkend wordt. Drive namen
mogen maximaal 32 tekens lang zijn.Bestandssystemen MakenVolumes lijken voor het systeem identiek aan schijven, met
één uitzondering: in tegenstelling tot &unix;
schijven partitioneert Vinum het volume niet en het bevat dus
geen partitietabel. Daarom was het nodig een paar
disk hulpprogramma's te veranderen, met name &man.newfs.8;, dat
voorheen probeerde om de laatste letter van een Vinum
volumenaam als een partitie te zien. Bijvoorbeeld: een schijf
kan een naam hebben als /dev/ad0a of
/dev/da2h. Deze namen stellen
respectievelijk de eerste partitie (a)
op de eerste (0) IDE schijf (ad) en de
achtste partitie (h) op de derde (2)
SCSI schijf (da) voor. Een Vinum
volume kan daarintegen /dev/vinum/concat
heten. Een naam die geen enkele relatie met een partitienaam
heeft.Normaliter klaagt &man.newfs.8; als het de naam van de
schijf niet kan interpreteren. Bijvoorbeeld:&prompt.root; newfs /dev/vinum/concat
newfs: /dev/vinum/concat: can't figure out file system partitionHet volgende geldt alleen voor versies van &os; 4.X
en lager:Om een bestandsysyteem op dit volume te maken moet de
van &man.newfs.8; gebruikt worden:&prompt.root; newfs -v /dev/vinum/concatVinum ConfigurerenDe GENERIC kernel bevat geen Vinum. Het
is mogelijk een kernel te bouwen waar Vinum in zit, maar dit
wordt niet aangeraden. De standaard manier om Vinum te starten
is als kernelmodule (kld). Het is zelfs niet
nodig om &man.kldload.8; te gebruiken voor Vinum. Als
&man.vinum.8; wordt gestart en de module is niet geladen, dan
gebeurt dit alsnog automatisch.OpstartenVinum slaat de configuratie informatie op op de disk slices
in ongeveer dezelfde vorm als de configuratiebestanden. Bij
het lezen van de configuratie database herkent Vinum een aantal
aleutelwoorden die niet zijn toegestaan in
configuratiebestanden. Een diskconfiguratie kan bijvoorbeeld
de volgende tekst bevatten:volume myvol state up
volume bigraid state down
plex name myvol.p0 state up org concat vol myvol
plex name myvol.p1 state up org concat vol myvol
plex name myvol.p2 state init org striped 512b vol myvol
plex name bigraid.p0 state initializing org raid5 512b vol bigraid
sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b
sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b
sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b
sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b
sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b
sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b
sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b
sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b
sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 0b
sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 4194304b
sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 8388608b
sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b
sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216bDuidelijke verschillen zijn de aanwezigheid van explicite
locatie informatie en namen (beide zijn toegestaan, maar worden
afgeraden) en informatie over de toestand (die niet beschikbaar
is voor de gebruiker). Vinum slaat geen informatie over drives
op in de configuratie: het vindt de drives door de
geconfigureerde schijven te scannen naar partities met een
vinum label. Hierdoor kan Vinum zelfs drives detecteren als ze
aan een andere &unix; schijf worden toegekend.Automatisch OpstartenOm Vinum automatisch te laten starten als het systeem
geboot wordt, moet de volgende regel in het
/etc/rc.conf bestand staan:start_vinum="YES" # set to YES to start vinumAls het /etc/rc.conf bestand niet
bestaat, moet het gemaakt worden met de bovengenoemde inhoud.
Hierdoor laadt het systeem de Vinum kld
tijdens het starten en worden de objecten uit de configuratie
ook gestart. Dit gebeurt voordat de bestandssystemen gemount
worden. &man.fsck.8; kan dus automatisch draaien en
bestandssystemen op Vinum volumes kunnen gemount
worden.Als Vinum met vinum start wordt
gestart, leest Vinum de configuratie database van
één van de Vinum drives. Normaal gesproken
bevat iedere drive een identieke kopie van de configuratie
database. Het maakt dus niet uit welke drive gelezen wordt.
Na een crash moet Vinum echter bepalen welke drive het laatst
is bijgewerkt en de configuratie van die drive gebruiken. Als
het nodig is wordt de configuratie van de oudere drives
daarna bijgewerkt, in volgorde van leeftijd. Het Root Bestandssysteem op VinumBij een machine die een volledig gespiegeld bestandssysteem
heeft, is het wenselijk ook het root bestandssysteem te
spiegelen. Het bouwen van zo'n configuratie is niet zo
recht-toe-recht-aan als bij een ander bestandssysteem
omdat:Het root bestandssysteem al heel snel beschikbaar moet
zijn tijdens het opstartproces, dus de Vinum infrastructuur
moet dan al beschikbaar zijn.Het volume met het root bestandssysteem bevat ook de
bootstrap en de kernel, die gelezen moeten worden door de
eigen systeemprogramma's (bijvoorbeeld de BIOS op PC's), die
meestal geconfigureerd kunnen worden om Vinum te
gebruiken.In de volgende paragrafen wordt de term
root volume gebruikt voor het Vinum volume dat het
root bestandssysteem bevat. Het is waarschijnlijk een goed idee
om de naam root te gebuiken voor dit volume,
maar dit is niet technisch noodzakelijk. Alle
commandovoorbeelden in de volgende stukken gaan echter uit van
deze naam.Vinum op Tijd Starten voor het root BestandssysteemOm dit te bereiken, moeten een aantal stappen worden
doorlopen:Vinum moet beschikbaar zijn voor de kernel tijdens
het opstarten. De methode zoals beschreven in
is dus niet geschikt en
de start_vinum parameter mag zelfs
niet aanwezig zijn als de volgende
opzet wordt gebruikt. De eerste optie is Vinum statisch
in de kernel te compileren, zodat het altijd beschikbaar
is. Maar die is vaak niet wenselijk. Er is nog een
mogelijkheid door /boot/loader
() de Vinum kernel module te
laten laden, voordat de kernel gestart wordt. Dit wordt
gedaan door de volgende regel in
/boot/loader.conf op te nemen:vinum_load="YES"Vinum moet in een vroeg stadium geïnitialiseerd
worden om het volume voor het root bestandssysteem te
kunnen leveren. De Vinum kernel module gaat niet uit
zichzelf op zoek naar drives die mogelijk een Vinum
volume kunnen bevatten totdat de administrator (of een
van de opstartscripts) een vinum start
commando geeft.De volgende paragrafen laten de benodigde
stappen zien voor &os; 5.X. De stappen voor
&os; 4.X zijn anders, zoals wordt uitgelegd in
.Door de ondestaande regel in
/boot/loader.conf te zetten, zoekt
Vinum automatisch alle drives af naar Vinum informatie als
onderdeel van het starten van de kernel:vinum.autostart="YES"Het is dus niet nodig om de kernel te vertellen waar
het root bestandssysteem staat.
/boot/loader zoekt de naam voor het
root device op in /etc/fstab en geeft
deze informatie door aan de kernel. Op het moment dat het
root bestandssysteem gemount moet worden, haalt de kernel
uit de devicenaam welke driver gebuikt moet worden om dit
te vertalen naar het interne device ID (major/minor
number).Een Vinum Root Volume Beschikbaar Maken voor
BootstrapOmdat de huidige &os; bootstrap maar 7,5 KB code bevat en
al belast is met het lezen van bestanden (zoals
/boot/loader) van het UFS bestandssysteem,
is het bijna onmogelijk om het ook te leren hoe Vinum
informatie gelezen moet worden en deze dan te gebruiken om de
elementen van het boot volume samen te stellen. Er zijn daarom
een paar trucs nodig om de bootstrap code wijs te maken dat er
een standaard "a" partitie aanwezig is met
het root bestandssysteem.Om dit mogelijk te maken, moet het root volume aan de
volgende eisen voldoen:Het root volume mag niet verdeeld of RAID-5 zijn.Het root volume mag niet meer dan één
aaneengeschakelde subdisk per samenstelling
bevatten.Het is mogelijk en wenselijk om meer dan één
samenstelling te hebben, ieder met een replica van het root
bestandssysteem. Het bootstrap proces gebruikt wel maar
één van deze replica's om de bootstrap en alle
andere bestanden te vinden, tot het moment dat de kernel het
root bestandssysteem laadt. Iedere subdisk binnen deze
samenstellingen heeft dus zijn eigen "a"
partitievoorstelling nodig om dit device bootbaar te maken.
Het is niet verplicht dat iedere voorgestelde
"a" partitie op dezelfde offset is geplaatst
binnen het device, vergeleken met andere devices die
samenstellingen van het root volume bevatten. Het is wel een
goed idee om op die manier Vinum volumes te maken, zodat de
resulterende gespiegelde devices symmetrisch zijn. Dit om
verwarring te voorkomen.Om deze "a" partities voor ieder device
dat een deel van het root volume bevat te maken, moet het
volgende worden gedaan:De locatie (offset vanaf het begin van het device) en
de grootte van de subdisk die onderdeel is van het root
volume moet als volgt bekeken worden:&prompt.root; vinum l -rv rootDe Vinum offsets en groottes worden aangegeven in
bytes. Ze moeten door 512 worden gedeeld om de bloknummers
te krijgen die in disklabel moeten
worden gebruikt.Voor elk device dat deelneemt aan het root
bestandssysteem moet het onderstaande command uitgevoerd
worden:&prompt.root; disklabel -e devnamedevname moet of de naam van
een disk (zoals da0) voor schijven
zonder slice-tabel zijn (ook wel: fdisk), of de naam van de
slice zijn (zoals ad0s1).Als er al een "a" partitie op het
device aanwezig is (waarschijnlijk met een pre-Vinum
root bestandssysteem), moet die eerst worden hernoemd,
zodat het wel toegankelijk blijft (voor de zekerheid), maar
niet langer gebruikt wordt om het systeem van op te
starten. Actieve paritities (zoals een root bestandssysteem
dat op dit moment gemount is) kan geen andere naam gegeven
worden. Dit moet dus gebeuren als het systeem vanaf een
Fixit medium opgestart is of in twee
stappen, waar (in een gespiegelde situatie) de disk waar
niet van geboot is als eerste wordt aangepast.Daarna moet de offset van de Vinum partitie op dit
device (als het bestaat) opgeteld worden bij de offset van
de root volume subdisk op dit device. De resulterende
waarde wordt de "offset" waarde voor de
nieuwe "a" partitie. De
"size" waarde voor deze partitie kan
worden gehaald uit bovenstaande berekening. De
"fstype" wordt
4.2BSD. De "fsize",
"bsize" en "cpg"
waardes moeten zo goed mogelijk worden gekozen om een
daadwerkelijk bestandssysteem na te bootsen, hoewel ze
vrij onbelangrijk zijn in deze context.Op deze manier wordt een nieuwe "a"
partitie gemaakt dat de Vinum partitie op dit device
overlapt. Het disklabel staat deze
overlap alleen toe als de Vinum partitie gemarkeerd is met
het fstype "vinum".Dat is het! Er bestaat nu een nep
"a" partitie op ieder device dat een
replica van het root volume heeft. Het is aan te bevelen
om de resultaten nogmaals te verifieren met iets
als:&prompt.root; fsck -n /dev/devnaamaAlle bestanden die controle informatie bevatten
moeten relatief zijn ten opzichte van het root bestandssysteem
in het Vinum volume dat, bij het creëren van een Vinum
volume, niet overeen hoeft te komen met het root
bestandssysteem dat op dit moment in gebruik is. Dit geldt in
het bijzonder voor /etc/fstab en
/boot/loader.conf.Bij de volgende herstart zou de bootstrap de juiste
controle informatie moeten vinden in het nieuwe, op Vinum
gebaseerde, root bestandssysteem en moeten starten. Aan het
einde van het kernel initialisatie proces, nadat alle devices
aangemeld zijn, geeft het volgende bericht aan dat het opzetten
gelukt is:Mounting root from ufs:/dev/vinum/rootEen op Vinum Gebaseerde Root SetupNadat het Vinum root volume is opgezet, geeft
vinum l -rv root een volgend
resultaat:
...
Subdisk root.p0.s0:
Size: 125829120 bytes (120 MB)
State: up
Plex root.p0 at offset 0 (0 B)
Drive disk0 (/dev/da0h) at offset 135680 (132 kB)
Subdisk root.p1.s0:
Size: 125829120 bytes (120 MB)
State: up
Plex root.p1 at offset 0 (0 B)
Drive disk1 (/dev/da1h) at offset 135680 (132 kB)De interessante waarden zijn 135680 voor
de offset (relatief ten opzichte van de partitie
/dev/da0h). Dit vertaalt zich naar 265
512-byte disk blocks in disklabel's termen.
Zo is de grootte van dit root volume 245760 512-byte blocks.
/dev/da1h, dat de tweede replica van dit
root volume bevat, is symmetrische opgezet.Disklabel voor deze devices kan er zo uitzien:
...
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 245760 281 4.2BSD 2048 16384 0 # (Cyl. 0*- 15*)
c: 71771688 0 unused 0 0 # (Cyl. 0 - 4467*)
h: 71771672 16 vinum # (Cyl. 0*- 4467*)Hieruit blijkt dat de "size" parameter
voor de nep "a" partitie overeenkomt met
de waarde als hierboven beschreven en dat de
"offset" parameter de som is van de offset
binnen de Vinum partitie "h" en de offset
van deze partitie binnen het device (of de slice). Dit is een
normale opzet om problemen te voorkomen zoals in
beschreven is. Verder blijkt
dat de hele "a" partitie volledig binnen de
"h" partitie valt die alle Vinum data voor
dit device bevat.In het bovenstaande voorbeeld is de volledige schijf voor
Vinum gereserveerd en er is geen restant van de pre-Vinum root
partitie, omdat dit een nieuwe schijf is die vanaf het begin af
aan bedoeld was als onderdeel van een Vinum
configuratie.Problemen OplossenAls er iets fout gaat moet er een manier zijn om dat te
herstellen. De volgende lijst bevat een paar bekende valkuilen
en oplossingen.Systeem Bootstrap Laadt, Maar Systeem Start Niet
DoorAls om wat voor reden dan ook het systeem niet doorgaat
met opstarten, kan de bootstrap worden onderbroken door de
spatie toets in te drukken tijdens de 10
seconden waarschuwing. Dan kunnen de loader variabelen
(zoals vinum.autostart) bekeken worden
met behulp van show en aangepast worden
met set of
unset.Als het enige probleem was dat de Vinum kernel module
nog niet in de lijst van modules staat die automatisch
geladen wordt, dan moet load vinum
voldoende zijn.Als alles in orde is, kan het bootproces doorgestart
worden met boot -as. De opties
geven de kernel aan om het root
bestandssysteem te vragen (),
en het boot proces te stoppen in single-user mode
(), waarbij het root bestandssysteem
als read-only gemount wordt. Op die manier is er geen
risico op data inconsistentie tussen de samenstellingen,
zelfs niet als er maar één samenstelling van
een multi-samenstellingen volume gemount is.Op de prompt, waar om het root bestandssysteem gevraagd
wordt, kan ieder device dat een valide root bestandssysteem
bevat worden opgegeven. Als /etc/fstab
goed is opgezet, is iets als
ufs:/dev/vinum/root te zien. Een andere
keuze kan ufs:da0d zijn, dat een
hypothetische partitie is die het pre-Vinum root
bestandssysteem bevat. Als één van de alias
"a" partities ingevuld wordt die
eigenlijk een referentie naar de subdisk van het Vinum root
device zijn, dan wordt in een gespiegelde setup maar
éé kant van het gespiegelde volume gemount.
Als dit bestandssysteem later als read-write gemount wordt,
moet(en) de andere samenstelling(en) van het root volume
verwijderd worden, omdat deze samenstellingen anders
inconsistente data bevatten.Alleen Primaire Bootstrap LaadtAls /boot/loader niet start, maar
de primaire bootstrap laadt wel (zichtbaar door een enkel
minnetje in de linker bovenhoek van het scherm, direct na de
start van het boot proces), kan worden geprobeerd het
primaire boot proces te onderbreken door op de
spatie toets te drukken. Dit zorgt ervoor
dat het boot proces stopt bij de tweede fase (zie ook
). Hier kan worden geprobeerd
vanaf een andere partitie te starten, bijvoorbeeld van de
partitie waar het vorige root bestandssysteem op stond, dat
nu van de "a" verplaatst is.Niets start, Paniek van BootstrapDit gebeurt als de bootstrap is vernietigd door de Vinum
installatie. Helaas laat Vinum op dit moment slechts 4 KB
vrij aan het begin van zijn paritie voordat de Vinum volume
identificatie geschreven wordt. De stage 1 en 2 bootstraps
en de disklabel informatie hebben ongeveer 8 KB nodig. Dus
als de Vinum partitie op offset 0 van de slice van de schijf
begint die als bootbaar was bedoeld, zal deze Vinum
informatie de bootstrap vernielen.Als bovenstaande situatie is omzeild, bijvoorbeeld door
te starten vanaf een Fixit medium, en de
bootstrap opnieuw is aangemaakt met
disklabel -B zoals beschreven in
, overschrijft de nieuwe bootstrap
de Vinum identificatie en kan Vinum de Vinum disks niet
langer vinden. Hoewel geen Vinum configuratie data of
data in de Vinum volumes overschreven wordt en alle data
hersteld kan worden door precies dezelfde Vinum configuratie
data opnieuw in te vullen, is dit een lastige situatie om te
herstellen. Het zou nodig zijn om de complete Vinum
parititie tenminste 4 KB te verplaatsen, om te voorkomen
dat de Vinum identificatie en de bootstrap met elkaar
botsen.Verschillen met &os; 4.XIn &os; 4.X missen sommige interne functies die nodig
zijn om Vinum automatisch alle disks te laten scannen en de code
die het interne ID van de root device achterhaalt is niet slim
genoeg om met een naam als /dev/vinum/root
om te gaan. Daarom zijn er een paar verschillen ten opzichte
van &os; 5.X.Vinum moet expliciet verteld worden welke disks bekeken
moeten worden door iets als het volgende in
/boot/loader.conf:vinum.drives="/dev/da0 /dev/da1"Het is belangrijk dat alle schijven die Vinum data kunnen
bevatten genoemd worden. Het maakt niet uit of er
meer schijven genoemd worden en het is ook
niet nodig om iedere slice en/of partitie expliciet op te
geven, omdat Vinum alle slices en paritities van de genoemde
schijven afgaat voor valide Vinum identificatie
informatie.Omdat de routines die de naam van het root bestandssysteem
verwerken en daar het device ID (major/minor nummers) uit halen
alleen maar met de klassieke devicenamen als
/dev/ad0s1a overweg kunnen, kunnen ze
niets maken van een root volume naam als
/dev/vinum/root. Daarom moet Vinum zelf
de interne kernel parameter dat het ID van het root volume
bevat aanpassen tijdens zijn eigen initialisatie. Dit gaat
door de naam van het root volume op te geven in de loader
variable vinum.root. Dit ziet er in
/boot/loader.conf zo uit:vinum.root="root"Als de kernel initialisatie probeert uit te vinden welk
root device gemount moet worden, ziet het dat sommige
kernelmodules al parameters gezet hebben. In dat geval
en als het device dat het root device
claimt hetzelfde major nummer heeft als de driver die gevonden
is uit de naam van het root device (Vinum in
dit geval), dan gebruikt het het van te voren gedefinieerde
device ID, in plaats van het zelf proberen uit te vinden. Zo
kan het normale automatische boot process doorgaan met het
mounten van het Vinum root volume voor het root
bestandssysteem.Maar als boot -a is gegeven om de naam
van het root device te vragen, kan het nog steeds niet overweg
met een naam die refereert aan een Vinum volume. Als er een
devicenaam is gegeven die niet refereert aan een Vinum device,
dan zorgt het verschil tussen de major nummers van de van te
voren ingestelde root parameter en de driver zoals die uit de
gegeven naam wordt afgeleid ervoor dat deze routine zijn eigen
afgeleide naam gebruikt. Invoer als
ufs:da0d werkt zoals verwacht. Als dit
mislukt, is het niet meer mogelijk om nogmaals iets als
ufs:vinum/root in te voeren, omdat het
niet een tweede keer verwerkt kan worden. De enige uitweg is
het systeem opnieuw te starten en opnieuw te beginnen. Op de
askroot prompt kan /dev/
altijd achterwege gelaten worden.
diff --git a/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml
index f06af66dea..b931d09c2b 100644
--- a/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml
@@ -1,1924 +1,1926 @@
KenTomGeupdate voor X.Org's X11 server door MarcFonvieilleErikRadderVertaald door Het X Window Systeem
- Samenvatting
+ Overzicht&os; gebruikt X11 om gebruikers een krachtige grafische
gebruikersschil te bieden. X11 is een open-source
implementatie van het X Window System dat zowel
&xorg; als
&xfree86; bevat. &os; versies tot en
met &os; 4.10-RELEASE en &os; 5.2.1-RELEASE hebben
&xfree86; als standaard, de X11 server
die is uitgebracht door The &xfree86; Project, Inc. Vanaf
&os; 5.3-RELEASE is de officiële standaardversie van
X11 gewijzigd naar &xorg;, de X11
server die is ontwikkeld door de X.Org Foundation.In dit hoofdstuk wordt de installatie en instelling van X11
behandeld met de nadruk op
&xorg;.Meer informatie over de videohardware die X11 ondersteunt
kan gevonden worden op &xorg; of &xfree86; websites.Na het lezen van dit hoofdstuk weet de lezer:Wat de componenten van het X Window systeem zijn en hoe
zij samenwerken.Hoe X11 geïnstalleerd en ingesteld kan
worden.Hoe verschillende window managers geïnstalleerd en
gebruikt kunnen worden.Hoe &truetype; lettertypen in X11 te gebruiken.Hoe het systeem ingesteld moet worden voor grafisch
aanmelden (XDM).Aangeraden voorkennis:Hoe extra software van derden te installeren
().In dit hoofdstuk wordt het installeren en instellen van de
&xorg; en
&xfree86; X11 servers behandeld. De
bestanden met instellingen, commando's en syntaxis is
overwegend hetzelfde. Waar dat anders is wordt het
aangegeven.X BegrijpenX voor de eerste keer gebruiken kan een hele schok zijn voor
mensen die gewend zijn aan andere grafische omgevingen, zoals
µsoft.windows; of &macos;.Het is niet noodzakelijk om alle details te kennen over de
X componenten en hoe zij samenwerken, maar enige basiskennis
draagt wel bij aan krachtiger gebruik kunnen maken van
X.Waarom X?X is niet het eerste windows systeem dat geschreven is voor
&unix;, maar wel het meest populaire. Het oorspronkelijke X
ontwikkelteam werkte eerst aan een ander window systeem. De
naam van dat systeem was W (van
Window). X was gewoon de volgende letter in het
alfabet.X kan gewoon X,
X Window Systeem, X11 of nog
anders genoemd worden. X11 X Windows noemen kan
door sommigen als een belediging opgevat worden. &man.X.7; kan
hierover wat licht laten schijnen.Het X Client/Server ModelX is vanaf het begin aan ontworpen om netwerk-centraal te
zijn en gebruikt een client-server model.In het X model, draait de X server op de
computer waar het toetsenbord, beeldscherm en muis aan vast
zit. De server is verantwoordelijk voor het regelen van
beeldinformatie, verwerken van invoer van toetsenbord en muis,
enzovoort. Iedere X applicatie (zoals
XTerm, of
&netscape;) is een
client. Een client stuurt berichten naar de
server zoals teken een venster op deze
coördinaten en de server stuurt berichten terug
zoals de gebruiker heeft op de OK knop
gedrukt.
- Thuis of in kleine bedrijven is draaien zowel de X server
- als de X clients op dezelfde machine. Het is heel goed mogelijk
+ Thuis of in kleine bedrijven draaien zowel de X server als
+ de X clients op dezelfde machine. Het is heel goed mogelijk
dat de X server op een minder krachtige desktop computer draait
en de X applicaties (de clients) op een, zeg maar, dure
krachtige machine van het bedrijf. Hier vindt de communicatie
tussen de X client en server plaats over het netwerk.Dit verwart sommige mensen, omdat de X terminologie geheel
omgekeerd is aan wat ze verwachten. Dat is namelijk dat de
X server de grote krachtige machine aan het eind
van de gang is en de X client de machine op hun
bureau is.De X server is de machine met het beeldscherm en het
toetsenbord en de X clients zijn de programma's die de
vensters tonen.Het protocol vereist niet dat de clients en servers
hetzelfde besturingssysteem moeten draaien of hetzelfde soort
computer moeten zijn. Het is heel goed mogelijk om X server op
een µsoft.windows; of Apple's &macos; te draaien en er
zijn verschillende gratis en commerciële applicaties die
dat doen.&xorg;, zit vanaf
&os; 5.3-RELEASE als standaard X server bij &os; en is
gratis onder een gelijksoortig licentie als de &os; licentie.
Er zijn ook commerciële X servers voor &os;
verkrijgbaar.De Window ManagerDe filosofie van het X ontwerp lijkt veel op die van
&unix;: gereedschappen, geen beleid. Dit houdt
in dat X niet bepaalt hoe een taak volbracht moet worden. In
plaats daarvan worden gereedschappen geleverd aan de gebruiker
die verantwoordelijk is voor het juiste gebruik hiervan.Deze filosofie verbreedt zich door X niet te laten bepalen
hoe vensters er moeten uitzien op het scherm, hoe ze verplaatst
moeten worden met de muis, welke toetsaanslagen gebruikt moeten
worden om te schakelen tussen vensters (bijvoorbeeld AltTab in het geval van µsoft.windows;), hoe de
titelbalken eruit moeten zien, of ze wel of niet sluitknoppen
moeten hebben, enzovoort.In plaats daarvan delegeert X deze verantwoordelijkheid aan
een applicatie die Window Manager heet. Er zijn
tientallen window managers voor X:
AfterStep,
Blackbox,
ctwm,
Enlightenment,
fvwm,
Sawfish,
twm,
Window Maker en vele anderen. Elk
van deze window managers heeft een eigen voorkomen en werking.
Er zijn window managers met virtual desktops of
met eigen toetscombinaties om de desktop te beheren; of hebben
een Start knop of iets gelijksoortigs. Sommige
gebruiken thema's die uiterlijk en beleving
compleet veranderen door een nieuw thema te kiezen. Window
managers zijn te vinden in de categorie
x11-wm van de Portscollectie.De KDE en
GNOME desktop omgevingen hebben hun
eigen window managers die in het bureaublad zijn
geïntegreerd.Iedere windows manager heeft zijn eigen manier van
instellen. Sommige werken met handgetypte bestanden, anderen
beschikken over grafische gereedschappen voor de meeste
instellingen. Er is er minstens één
(Sawfish) waarvan het
instellingenbestand is geschreven in een dialect van de taal
Lisp.FocusbeleidDe window manager is ook verantwoordelijk voor het
focusbeleid van de muis. Ieder window
geörienteerd systeem heeft een manier nodig om te
bepalen welk venster actief is, toetsaanslagen ontvangt en
daarbij zichtbaar aangeeft welk venster actief is.Een bekend focus beleid heet
click-to-focus. Dit model wordt gebruikt door
µsoft.windows;, waarbij een venster actief wordt door er
met de muis op te klikken.X ondersteunt geen specifiek focusbeleid. In plaats
daarvan bepaalt de window manager op welk venster, op welk
moment, de focus ligt. Een aantal window managers
ondersteunen verschillende focusmethoden. Ze ondersteunen
allemaal click to focus en de meerderheid
ondersteunt ook nog andere.De meest populaire zijn:focus-volgt-muis (focus-follows-mouse)Het venster dat onder de muis zit is het venster
waarop de focus ligt. Dit hoeft niet het venster te
zijn dat bovenop alle andere vensters ligt. De focus
verandert door te wijzen naar een ander venster. Het
is niet nodig om er ook nog eens op te klikken.slordige-focus (sloppy-focus)Dit beleid is een kleine uitbreiding op
focus-follows-mouse. Indien bij focus-follows-mouse de
muis over het root venster (of de achtergrond) gaat,
ligt op geen enkel venster de focus en gaan alle
toetsaanslagen verloren. Bij sloppy-focus, verandert
de focus alleen als de muis in een nieuw venster komt
en niet als het huidige venster wordt verlaten.klik-voor-focus (click-to-focus)Het actieve venster wordt geselecteerd door erop
te klikken. Het venster wordt dan
opgetild en verschijnt dan voor alle
andere vensters. Alle toetsaanslagen worden nu naar
dit venster gestuurd, zelfs als de cursor naar een
ander scherm wordt verplaatst.Veel window managers ondersteunen andere soorten of
variaties op de bovenstaande typen muisbeleid. Hierover
staat meestal meer in de documentatie van de betreffende
window manager.WidgetsDe X aanpak door gereedschappen te leveren en niets af te
dwingen breidt zich uit naar de widgets die in elk
applicatievenster te zien zijn.Widget is een term voor alle dingen van de
gebruikersinterface waarop geklikt kan worden of een andere
actie mee uitgevoerd kan worden: knoppen, vinkvakjes, iconen,
lijsten en ga zo maar door. µsoft.windows; noemt ze
controls.µsoft.windows; en Apple's &macos; hebben beide een erg
strikt widgetbeleid. Van de applicatieontwikkelaars wordt
verwacht dat hun applicaties eenduidig zijn wat betreft
uiterlijk en beleving. Bij X is ervoor gekozen geen grafische
stijl of widgets te verplichten.X applicaties hebben dus niet allemaal hetzelfde uiterlijk.
Er zijn populaire widgetsets en variaties, inclusief de
originele Athena widgetset van MIT,
&motif; (waarvan de widgetset van
µsoft.windows; is afgeleid: schuine randen en drie
gradaties grijs), OpenLook en
anderen.De meeste nieuwe X applicaties gebruiken een modern
uitziende widgetset: Qt, gebruikt door
KDE, of GTK+ van het
GNOME project. Vanuit dit oogpunt
lijkt het enigzins op de &unix; desktop, wat het makkelijker
maakt voor de beginnende gebruiker.X11 InstallerenZowel &xorg; als
&xfree86; kan op &os;
geïnstalleerd worden. Vanaf &os; 5.3-RELEASE is
&xorg; de standaard X11
implementatie voor &os;. &xorg; is
- de X11 server van de X11R6.7 distributie die is uitgebracht door
- X.Org Foundation. X11R6.7 is gebaseerd op de code van
+ de X11 server van de open source implementatie die is uitgebracht
+ door de X.Org Foundation. &xorg; is
+ gebaseerd op de code van
&xfree86 4.4RC2 en X11R6.6.
De X.Org Foundation heeft X11R6.7 uitgebracht in april
- 2004.
+ 2004 en X11R6.8.1 in september 2004. De laatstgenoemde versie
+ is beschikbaar via de &os; portscollectie.
Om &xorg; vanuit de
portscollectie te bouwen en te installeren:&prompt.root; cd /usr/ports/x11/xorg
&prompt.root; make install cleanOm &xorg; compleet te
bouwen is tenminste 4 GB vrije schijfruimte nodig.Om &xfree86; vanuit de
portscollectie te bouwen en te installeren:&prompt.root; cd /usr/ports/x11/XFree86-4
&prompt.root; make install cleanX11 kan ook als package geïnstalleerd worden doordat er
binaire packages beschikbaar zijn voor &man.pkg.add.1;. Als
hiervoor de optie remote fetching van
&man.pkg.add.1; wordt gebruikt, dan moet het versienummer
verwijderd worden. &man.pkg.add.1; haalt automatisch de laatste
versie van het programma op.Om het package voor &xorg; op te
halen en te installeren:&prompt.root; pkg_add -r xorgHet &xfree86; 4.X package kan
geïnstalleerd worden met:
- &prompt.root; pkg-add -r XFree86
+ &prompt.root; pkg_add -r XFree86Het voorbeeld hierboven installeert de complete X11
distributie inclusief de servers, clients, lettertypen enz. Er
zijn ook afzondelijke packages en ports beschikbaar voor
verschillende delen van X11.De rest van dit hoofdstuk licht toe hoe X11 wordt ingesteld
en hoe een productieve desktopomgeving gebouwd kan worden.Van &xfree86; naar
&xorg;Zoals voor iedere port, moet
/usr/ports/UPDATING bekeken worden voor
de wijzigingen. In dit bestand staan instructies die
nodig zijn om een systeem te migreren van
&xfree86; naar
&xorg;.CVSup kan gebruikt worden om
de ports tree bij te werken voordat er wordt begonnen met een
migratie. Naast deze maatregel moet ook sysutils/portupgrade
geïnstalleerd worden voor de migratie van een X11
systeem.In /etc/make.conf kan de variabele
X_WINDOW_SYSTEM=xorg ingesteld worden.
Hierdoor is het zeker dat een systeem weet welke X11 er wordt
gebruikt. De oude variabele XFREE86_VERSION
is komen te vervallen en vervangen door de variabele
X_WINDOW_SYSTEM.Dan kunnen de volgende commando's uitgevoerd worden:&prompt.root; pkg_delete -f /var/db/pkg/imake-4* /var/db/pkg/XFree86-*
&prompt.root; cd /usr/ports/x11/xorg
&prompt.root; make install clean
&prompt.root; pkgdb -F&man.pkgdb.1; is onderdeel van de
portupgrade software en kan packages
inclusief afhankelijkheden bijwerken.Om &xorg; compleet te bouwen
is tenminste 4 GB vrije schijfruimte nodig.ChristopherShumwayBijgedragen door X11 Instellen&xfree86; 4.X&xfree86;&xorg;X11VoorbereidingVoordat er wordt begonnen met het instellen van X11 is de
volgende informatie van de te installeren machine nodig:Monitor specificatiesChipset van de videokaartGeheugen van de videokaarthorizontale scansnelheidverticale scansnelheidDe specificaties van de monitor worden door X11 gebruikt om
de resolutie en ververssnelheid te bepalen. Deze specificaties
kunnen normaal gesproken verkregen worden uit de bij de monitor
geleverde documentatie of van de website van de leverancier.
Er zijn twee nummerreeksen nodig: de horizontale scansnelheid
(scan rate) en de vertikale syncronisatiesnelheid (vertical
synchronization).De chipset van de videokaart bepaalt welke driver X11
gebruikt om de grafische hardware aan te spreken. Bij de
meeste chipsets kan dit automatisch bepaald worden, maar het is
altijd handig om dit te weten voor het geval de automatische
detectie niet correct werkt.Het geheugen op de videokaart bepaalt de resolutie en
kleurdiepte waarmee het systeem kan werken. Dit is belangrijk
omdat de gebruiker zo de grenzen van zijn systeem kent.X11 InstellenHet instellen van X11 bestaat uit meerdere stappen. De
eerste stap is het bouwen van een instellingenbestand. Dit kan
met:&prompt.root; Xorg -configureIn het geval van &xfree86; is
dat:&prompt.root; XFree86 -configureDit genereert een kaal X11 instellingbestand in de map
/root met de naam
xorg.conf.new. Feitelijk wordt bepaald
waar de map staat door hoe er superuser rechten zijn verkregen.
$HOME is anders bij gebruik van &man.su.1; of
bij direct aanmelden. Het X11 programma probeert dan de
grafische hardware te detecteren en schrijft een
instellingenbestand dat de juiste drivers laadt voor de
gevonden hardware van het systeem.De volgende stap is het testen van de bestaande
configuratie om te controleren of
&xorg; met de grafische kaart van
het doelsysteem kan werken. Dit kan met:&prompt.root; Xorg -config xorg.conf.newVoor &xfree86;
gebruikers:&prompt.root; XFree86 -xf86config XF86Config.newAls er een zwart/grijs rooster en een X muis cursor
verschijnen was de configuration successvol. Om de test te
stoppen dient gelijktijdig op CtrlAltBackspace gedrukt te
worden.Als de muis niet werkt, dan moet deze eerst ingesteld
worden. Zie in het &os; installatie
hoofdstuk.
- X11 Optimaliseren
+ X11 optimaliserenNu moet xorg.conf.new (of
XF86Config.new als
&xfree86; wordt gebruikt) worden
aangepast aan de smaak van de gebruiker. Hiervoor moet het
bestand in een teksteditor zoals &man.emacs.1; of &man.ee.1;
worden geladen. Eerst moeten de frequenties van de monitor
toegevoegd worden. Die zijn meestal weergegeven als
horizontale en vertikale synchronisatiesnelheid. Deze waarden
worden toegevoegd aan xorg.conf.new in het
onderdeel "Monitor":Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30-107
VertRefresh 48-120
EndSectionIn het instellingenbestand kunnen de sleutelwoorden
HorizSync en VertRefresh
missen. Als ze er niet staan, moeten ze toegevoegd worden met
de juiste horizontale synchronisatiesnelheid achter het
HorizSync sleutelwoord en de vertikale
synchronisatiesnelheid achter het
VertRefresh sleutelwoord. In het
bovenstaande voorbeeld werden de gegevens van de monitor
ingevoerd.X kan DPMS (Energy Star) eigenschappen gebruiken bij
monitoren die dit ondersteunen. &man.xset.1; regelt de
time-outs en kan de statussen standby, suspend of uit forceren.
Om DPMS eigenschappen voor een monitor te activeren, moet de
volgende regel toegevoegd worden aan de monitor sectie:
Option "DPMS"xorg.confXF86ConfigAls het instellingenbestand
xorg.conf.new (of
XF86Config.new) toch open staat in de
editor dan kan ook meteen de gewenste standaardresolutie en
kleurdiepte gekozen worden. Dit staat in het onderdeel
"Screen":Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
EndSubSection
EndSectionHet sleutelwoord DefaultDepth beschrijft
de kleurdiepte die standaard wordt gebruikt. Met de
commandoregeloptie van &man.Xorg.1; (of
&man.XFree86.1;) kan dit overschreven worden. Het sleutelwoord
Modes beschrijft de resolutie waarmee
gewerkt wordt bij de opgegeven kleurdiepte. Alleen VESA
standaarden die door de grafische kaart van het systeem worden
gedefinieerd worden ondersteund. In het voorbeeld hierboven is
de standaardkleurdiepte 24 bits per pixel. Bij deze
kleurdiepte is de toegestane resolutie 1024 bij 768
pixels.Bij het oplossen van problemen zijn de logboekbestanden
van X11 vaak een goede hulp. Ze bevatten informatie voor
ieder apparaat waar de X11 server verbinding mee maakt.
Namen van &xorg; logboekbestanden
hebben de vorm /var/log/Xorg.0.log
(namen van &xfree86;
logboekbestanden hebben de vorm
XFree86.0.log). De precieze naam van
een logboekbestand van variëren van
Xorg.0.log tot
Xorg.8.log enzovoort.Als alles is ingesteld, moet het instellingenbestand op een
plaats gezet worden waar &man.Xorg.1; (of &man.XFree86.1;) het
kan vinden. Dit is meestal
/etc/X11/xorg.conf of
/usr/X11R6/etc/X11/xorg.conf (voor
&xfree86; heet het
/etc/X11/XF86Config of
/usr/X11R6/etc/X11/XF86Config):&prompt.root; cp xorg.conf.new /etc/X11/xorg.confVoor &xfree86;:&prompt.root; cp XF86Config.new /etc/X11/XF86ConfigHet instellen van X11 is nu gereed. Om
&xfree86; 4.X te kunnen starten
met &man.startx.1; dient de x11/wrapper port geïnstalleert
te worden. &xorg; heeft wrappercode
en heeft geen extra wrapper nodig. De X11 server kan ook
gestart worden met &man.xdm.1;.Er zit ook een grafisch instellingenprogramma bij de
X11 distributie: &man.xorgcfg.1; (man.xf86cfg.1; voor
&xfree86;). Hiermee kunnen de
instellingen en drivers interactief gekozen worden. Dit
kan ook op het console gebruikt worden:
xorgcfg -textmode. Meer details zijn
te vinden in &man.xorgcfg.1; en &man.xf86cfg.1;.Er is ook nog het hulpprogramma &man.xorgconfig.1;
(&man.xf86config.1; voor
&xfree86;). Dit programma is
op het console te gebruiken en is veel minder
gebruikersvriendelijk, maar het zou wel kunnen werken in
gevallen waarin andere hulpprogramma's dat niet doen.Bijzondere InstellingenInstellen met de &intel; i810 Graphics ChipsetsIntel i810 graphic
chipsetInstellen met &intel; i810 integrated chipsets vereist de
agpgart AGP programmeringsinterface
voor X11 om de kaart aan te sturen. De &man.agp.4; driver
zit in de GENERIC kernel sinds
4.8-RELEASE en 5.0-RELEASE. Bij eerdere versies dient het
volgende toegevoegd te worden aan het bestand met
kernelinstellingen:device agpHierna dient een nieuwe kernel gebouwd te worden. In
plaats hiervan, kan de kernelmodule
agp.ko automatisch geladen worden met
&man.loader.8; tijdens het opstarten. Hiervoor moet het
volgende in /boot/loader.conf
staan:agp_load="YES"Als gebruik wordt gemaakt van &os; 4.X of recenter,
dan moet een apparaatnode gemaakt worden voor de
programmainterface. Om deze AGP apparaatnode te maken, dient
&man.MAKEDEV.8; gestart te worden in de map
/dev:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV agpgart&os; 5.X of later gebruikt &man.devfs.5; om
apparaatnodes transparant te verwerken, dan is de
stap met &man.MAKEDEV.8; niet meer nodig.Hierdoor wordt het configureren van de hardware net
als ieder andere grafische kaart. Bij systemen die zonder
&man.agp.4; driver gecompileerd zijn slaagt het laden van
module met &man.kldload.8; niet. De driver moet in de kernel
geladen zijn tijdens het opstarten door te compileren of door
/boot/loader.conf te gebruiken.Als &xfree86; 4.1.0 (of
later) gebruikt wordt en er verschijnen berichten over
unresolved symbols zoals
fbPictureInit, dan kan het toevoegen van
de regel aan het
&xfree86; instellingenbestand na
Driver "i810" de oplossing zijn:Option "NoDDC"MurrayStokelyBijgedragen door Lettertypen Gebruiken in X11Type1 LettertypenDe standaard lettertypen van X11 zijn allerminst ideaal voor
het typische bureaubladprogramma. Grote presentatielettertypen
zien er hoekig en onprofessioneel uit en kleine lettertypen in
&netscape; zijn bijna onleesbaar. Er
zijn diverse gratis, kwalitatief goede Type1 (&postscript;)
lettertypen die meteen gebruikt kunnen worden met X11. De URW
lettertypecollectie (x11-fonts/urwfonts) heeft bijvoorbeeld
hoge kwaliteit versies van standaard Type1 lettertypen
(Times Roman,
Helvetica,
Palatino en anderen).
De Freefonts collectie (x11-fonts/freefonts) heeft nog meer
lettertypen, maar de meesten ervan zijn bedoeld om in grafische
software als Gimp gebruikt te worden
en zijn niet compleet genoeg om als schermlettertypen te
gebruiken. Daarbij kan X11 zonder veel moeite ingesteld worden
worden om &truetype; lettertypen te gebruiken. Meer informatie
staat in &man.X.7; of de paragraaf over &truetype; Lettertypen.Om de bovenstaande Type1 lettertypecollectie van de
portscollectie te installeren:&prompt.root; cd /usr/ports/x11-fonts/urwfonts
&prompt.root; make install cleanDat geldt ook voor de freefont en andere collecties. Om de
X server te vertellen dat deze lettertypen bestaan, dient de
volgende regel toegevoegd te worden in
XF86Config (in /etc/
voor &xfree86; versie 3 of in
/etc/X11/ voor versie 4):FontPath "/usr/X11R6/lib/X11/fonts/URW/"Ook kan op de commando regel in de X sessie het volgende
gestart worden:&prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/URW
&prompt.user; xset fp rehashDit werkt wel, maar zodra de X sessie wordt afgesloten is het
weer verdwenen tenzij het is toegevoegd aan het opstartbestand
(~/.xinitrc voor een normale
startx sessie of
~/.xsession als er wordt aangemeld met een
grafische aanmeldmanager als XDM).
Een derde manier is het gebruik van het nieuwe bestand
/usr/X11R6/etc/fonts/local.conf: zie
hiervoor de paragraaf over over Anti-aliasing.&truetype; LettertypenTrueType lettertypenlettertypenTrueType&xfree86; 4.X en
&xorg; hebben ingebouwde ondersteuning
voor het renderen van &truetype; lettertypen. Er zijn twee
verschillende modules die deze functionaliteit activeren. In dit
voorbeeld wordt de freetype module gebruikt omdat deze beter
werkt met de andere lettertypen die back-ends renderen. Om de
freetype module te activeren dient de volgende regel toegevoegd
te worden aan het onderdeel "Module" van
/etc/X11/xorg.conf of
/etc/X11/XF86Config.Load "freetype"Voor &xfree86; 3.3.X is een
aparte &truetype; lettertypeserver nodig. Meestal wordt
Xfstt gebruikt. Om
Xfstt te installeren hoeft alleen
de port x11-servers/Xfstt
geïnstalleerd te worden.Hierna dient een map voor de &truetype; lettertypen gemaakt
te worden (bijvoorbeeld
/usr/X11R6/lib/X11/fonts/TrueType) en alle
&truetype; lettertypen moeten naar deze map gekopieerd worden.
&truetype; lettertypen kunnen niet direct van een &macintosh;
gehaald worden. Ze moeten in een &unix;/&ms-dos;/&windows;
formaat zijn voor X11. Zodra de bestanden naar deze map zijn
gekopieerd, kan ttmkfdir gestart
worden om een fonts.dir bestand te maken
zodat de X lettertyperenderer weet waar deze nieuwe bestanden
zijn geïnstalleerd. ttmkfdir zit in de
&os; portscollectie als x11-fonts/ttmkfdir.&prompt.root; cd /usr/X11R6/lib/X11/fonts/TrueType
&prompt.root; ttmkfdir > fonts.dirNu moet de &truetype; map toe aan het lettertypepad
toegevoegd worden. Dit gebeurt op dezelde wijze als boven is
beschreven voor Type1
lettertypen:&prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/TrueType
&prompt.user; xset fp rehashof door een FontPath regel toe te voegen
aan xorg.conf (of
XF86Config).Dat is alles. Nu herkennen
&netscape;,
Gimp,
&staroffice; en alle andere X
applicaties de geïnstalleerde &truetype; lettertypen.
Extreem kleine lettertypen (zoals hoge resolutie tekst op een
webpagina) en extreme grote lettertypen (in
&staroffice;) zien er nu veel beter
uit.Joe MarcusClarkeBijgewerkt door Anti-alias Lettertypenanti-alias lettertypenlettertypenanti-aliasAnti-aliasing wordt door X11 sinds ondersteund sinds
&xfree86; versie 4.0.2. Maar
instellingen voor lettertypen waren bewerkelijk voordat
&xfree86; 4.3.0 geïntroduceerd
werd. Vanaf &xfree86; 4.3.0
zijn alle lettertypen die X11 in de mappen
/usr/X11R6/lib/X11/fonts/ en
~/.fonts/ aantreft automatisch beschikbaar
voor anti-aliasing in applicaties die Xft ondersteunen. Niet
alle applicaties ondersteunen Xft. Voorbeelden van applicaties
met Xft ondersteuning zijn Qt 2.3 en hoger (de
hulpprogramma's voor het KDE
bureaublad), GTK+ 2.0 en hoger (de hulpprogramma's voor het
GNOME bureaublad) en
Mozilla 1.2 en hoger.Om te kunnen regelen welke lettertypen gebruik maken van
anti-alias of om de eigenschappen van anti-aliasing in te stellen
kan /usr/X11R6/etc/fonts/local.conf gemaakt
of gewijzigd worden. In dit bestand kunnen speciale
eigenschappen van het Xft lettertypesysteem aangepast worden.
Deze paragraaf beschijft wat eenvoudige mogelijkheden.
Meer details staan in &man.fonts-conf.5;.XMLDit bestand moet in het XML formaat opgemaakt worden.
Hoofdletters en kleine letters worden onderscheiden en alle tags
moeten netjes worden afgesloten. Het bestand begint met de
gewone XML header gevolgd door een DOCTYPE definitie en daarna de
<fontconfig> tag:<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>Zoals al eerder is vermeld zijn alle lettertypen in
/usr/X11R6/lib/X11/fonts/ en in
~/.fonts/ al geschikt gemaakt voor
Xft applicaties. Als naast deze twee mappen nog een andere
lettertypen moeten kunnen bevatten, dan dient een soortgelijke
regel als de onderstaande aan
/usr/X11R6/etc/fonts/local.conf toegevoegd
te worden:<dir>/path/to/my/fonts</dir>Na het toevoegen van nieuwe lettertypen en zeker nieuwe
lettertypemappen dienen de lettertypecaches opnieuw opgebouwd
worden met:&prompt.root; fc-cache -fAnti-aliasing maakt randen een beetje wazig wat kleine
teksten beter leesbaar maakt en voorkomt
trapvorming van grote letters. Maar het kan
oogkramp veroorzaken als het op normale tekst wordt toegepast.
Om lettertypen kleiner dan 14 punten uit te sluiten van
anti-aliasing moeten de volgende regels toegevoegd worden:<match target="font">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<test name="pixelsize" compare="less" qual="any">
<double>14</double>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>lettertypenspacingSpatiëring voor sommige enkel gespatieerde lettertypen
kan ook ongepast zijn bij anti-aliasing. Dit lijkt vooral een
probleem te zijn bij KDE. Een
mogelijke oplossing hiervoor is het vergroten van de
spatiëring van die lettertypen naar 100:<match target="pattern" name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>console</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>Het bovenstaande hernoemt de standaardnamen van lettertypen
naar "mono"). Voeg daarna het volgende
toe:<match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="spacing" mode="assign">
<int>100</int>
</edit>
</match>Bepaalde lettertypen, zoals Helvetica, kunnen problemen
hebben met anti-aliasing. Dit uit zich meestal in een
lettertype dat vertikaal door midden lijkt gesneden. Op zijn
ergst kan het applicaties zoals
Mozilla laten crashen. Om dit te
voorkomen kan overwogen worden om ook de volgende regels toe
te voegen aan local.conf:<match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match>Als de wijzigingen in local.conf zijn
gemaakt dient niet vergeten te worden het bestand te eindigen
met de tag </fontconfig> tag. Als dit
niet gedaan wordt, dan worden de wijzigingen niet gezien.De standaard lettertypeset die geleverd wordt bij X11 is
niet erg geschikt als het aankomt op anti-aliasing. Een veel
betere set standaardlettertypen is de x11-fonts/bitstream-vera port. Deze
port maakt /usr/X11R6/etc/fonts/local.conf
aan als het nog niet bestaat. Als het al wel bestaat maakt de
port /usr/X11R6/etc/fonts/local.conf-vera
aan. De inhoud van dit bestand dient in
/usr/X11R6/etc/fonts/local.conf geplaatst
te worden en dan vervangen de Bitstream lettertypen automatisch
de standaard X11 Serif, Sans Serif en Monospaced
lettertypen.Als laatste kunnen gebruikers hun eigen instellingen aan een
persoonlijk .fonts.conf bestand toevoegen.
Om dit te doen moet iedere gebruiker het bestand
~/.fonts.conf maken. Ook dit bestand moet
in het XML formaat zijn.LCD screenlettertypenLCD screenNog een laatste punt: bij een LCD scherm kan sub-pixel
sampling prettig zijn. Eigenlijk zorgt dit er voor dat de
(horizontaal gesplitste) rode, groene en blauwe componenten
gewijzigd worden om de horizontale resolutie te verbeteren. Het
resultaat is geweldig. Voeg hiervoor de volgende regels ergens
aan local.conf toe:<match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>Afhankelijk van het soort beeldscherm kan
rgb veranderd moeten worden in
bgr, vrgb of
vbgr. Experimenteren levert de beste
instelling op.Mozillaweb browsersMozillaMozillaAnti-aliasing moet werken zodra de X server opnieuw gestart
is. Programma's dienen echter wel te weten hoe ze er mee moeten
werken. Op dit moment geldt dat voor de Qt toolkit en de hele
KDE omgeving kan met anti-alias
omgaan (zie over
KDE). GTK+ en
GNOME anti-aliasing gebruiken via de
Font capplet (zie ).
Mozilla 1.2 en hoger gebruiken
automatisch anti-aliasing. Om dit uit te zetten moet
Mozilla opnieuw gebouwd worden met de
optie -DWITHOUT_XFT.SethKingsleyBijgedragen door De X Display ManagerOverzichtX BeeldschermmanagerDe X Beeldschermmanager (XDM) is
een optioneel onderdeel van het X Window Systeem dat gebruikt
wordt voor beheer van aanmeldsessies. Dit is vaak erg handig
bij bijvoorbeeld X Terminals, desktops en grote
netwerk beeldschermservers. Omdat het X Window Systeem
netwerk- en protocolonafhankelijk is, zijn er veel
mogelijkheden om X clients en servers op verschillende machines
in een netwerk te verbinden. XDM
levert een grafische interface waarmee er gekozen kan worden
welke beeldschermserver gebruikt moet worden en handelt
authorisatie informatie (gebruikersnaam en wachtwoord)
af.XDM levert de gebruiker dezelfde
funtionaliteit levert als &man.getty.8; (zie
). Dus het regelt de
systeemaanmeldingen voor de schermen waaraan verbonden moet
worden en start dan een sessie manager namens de gebruiker
(meestal een X window manager). XDM
wacht dan tot het programma stopt en geeft aan dat de gebruiker
klaar is en afgemeld kan worden. Hierna kan
XDM het aanmeldscherm weer tonen
zodat de volgende gebruiker kan aanmelden.XDM GebruikenDe XDM daemon staat in
/usr/X11R6/bin/xdm. Dit programma
kan als root altijd gestart worden en
regelt dan het X weergavegedeelte van de lokale machine. Als
XDM iedere keer bij het opstarten
moet starten is het handig om een regel toe te voegen aan
/etc/ttys. Meer informatie over het
gebruik van dit bestand staat in .
In de standaardversie van /etc/ttys staat
een regel om de applicatie deamon
XDM op een virtuele terminal te
draaien:ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secureStandaard staat deze regel uit. Om hem aan te zetten moet
veld 5 van off naar on
gewijzigd worden en moet met &man.init.8; herstart worden met
gebruikmaking van de aanwijzingen in .
Het eerste veld, de naam van de terminal die het programma
aanstuurt, is ttyv8. Dit houdt in dat
XDM op de negende virtuele terminal
begint te draaien.XDM InstellenDe map met instellingen voor XDM
is /usr/X11R6/lib/X11/xdm. In deze map
staan diverse bestanden die gebruikt kunnen worden om het
gedrag en uiterlijk van XDM te
veranderen. Meestal zijn dit de volgende bestanden:
-
+ BestandOmschrijvingXaccessRegels voor client authorisatie.XresourcesStandaard waarden voor X bronnen.XserversLijst met op afstand en lokaal te beheren schermen.XsessionStandaard sessie script voor logins.Xsetup_*Script die applicaties start voordat de login
interface start.xdm-configAlgehele configuratie voor alle schermen op
deze machine.xdm-errorsErrors die gegenereerd zijn door het server programma.xdm-pidHet proces ID van de draaiende XDM.Tevens staan in deze map een aantal scripts en programma's
om het bureaublad in te stellen als
XDM draait. Het doel van elk van
deze bestanden wordt kort omschreven. De juiste syntaxis en
het gebruik van deze bestanden staat in &man.xdm.1;.De standaardinstelling regelt een eenvoudig rechthoekig
aanmeldvenster met bovenin de hostnaam van de machine in een
groot lettertype met een Login: en
Password: prompt eronder. Dit is een goed
beginpunt om het uiterlijk en werking van het
XDM venster te veranderen.XaccessOm een verbinding te maken met
XDM gestuurde schermen wordt het
protocol X Display Manager Connection Protocol (XDMCP)
gebruikt. Het bestand is een set regels die XDMCP
verbindingen met andere machines bestuurt. Standaard mag
iedere client een verbinding maken. Zolang
xdm-config niet is aangepast om
verbindingen te accepteren is dat geen probleem.XresourcesDit is een bestand met standaarden voor de schermkiezer
en de aanmeldschermen. Hier kan het uiterlijk van het
aanmeldprogramma gewijzigd worden. De indeling is hetzelfde
als bij het app-defaults bestand en is beschreven in de X11
documentatie.XserversDit is een lijst met netwerkschermen waaruit gekozen kan
worden.XsessionDit is het standaard sessiescript voor
XDM dat start nadat de gebruiker
is aangemeld. Normaal heeft iedere gebruiker een eigen
sessiescript in ~/.xsession dat dit
script overheerst.Xsetup_*Deze starten automatisch voordat de kiezers of
aanmeldschermen getoond worden. Er is een script voor ieder
gebruikt scherm met de naam Xsetup_
gevolgd door het lokale schermnummer (bijvoorbeeld
Xsetup_0). Normaal draaien deze scripts
éé of twee programma's in de achtergrond zoals
xconsole.xdm-configDit bevat de instellingen die toegepast worden op ieder
scherm die deze installatie aanstuurt. De indeling is
hetzelfde als van app-defaults.xdm-errorsHierin staan de meldingen die de X servers geven als
XDM ze probeert te starten. Als
een scherm dat gestart is door XDM
om onduidelijke reden hangt, is dit een goede plaats om te
zoeken naar foutmeldingen. Deze meldingen worden ook per
sessie naar het ~/.xsession-errors van
de gebruiker gestuurd.Een Netwerk Beeldschermserver GebruikenOm gebruikers een verbinding te laten maken met een X
server moeten de toegangsregels gewijzigd worden en de
connectielistener moet aangezet worden. Deze hebben standaard
wat terughoudende waarden. Om XDM
te laten luisteren naar verbindingen moet als eerste een regel
uitgecommentarieerd worden in
xdm-config:! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with XDM
DisplayManager.requestPort: 0Hierna moet XDM herstart worden.
Afwijkend in dit bestand is dat commentaar in app-defaults
bestanden begint met het karakter ! en niet met
het karakter #. Het kan wenselijk zijn om de
toegangcontrole aan te scherpen. Hiervoor staan
voorbeeldregels in Xaccess en
&man.xdm.1;.Alternatieven voor XDMEr bestaan diverse alternatieven voor
XDM programma.
kdm (wordt geleverd bij
KDE) wordt later in dit hoofstuk
behandeld. De kdm
beeldschermmanager biedt vele grafische verbeteringen en
cosmetische franje en de mogelijkheid om de gebruiker de kans
te geven een window manager te laten kiezen bij het
aanmelden.ValentinoVaschettoBijgedragen door BureaubladomgevingenDeze sectie beschrijft de verschillende
bureaubladomgevingen voor X op &os;. Een
bureaubladomgeving kan van alles inhouden: van
een simpele window manager tot een complete suite van
bureaubladapplicaties zoals KDE of
GNOME.GNOMEOver GNOMEGNOMEGNOME is een
gebruikersvriendelijke bureaubladomgeving die de gebruiker de
mogelijkheid geeft om gemakkelijk de computer te gebruiken en
in te stellen. GNOME heeft een
paneel (voor het starten en tonen van statusinformatie van
applicaties), een bureaublad (waar data en applicaties
geplaatst kunnen worden), een set standaard
bureaubladapplicaties en een regels die het makkelijker maakt
voor applicaties om eenduidig met elkaar samen te werken.
Gebruikers van andere besturingssystemen of omgevingen voelen
zich meestal meteen thuis bij het gebruik van de krachtige
grafisch gestuurde omgeving die
GNOME biedt. Meer informatie over
GNOME op &os; staat op de &os; GNOME
Project website.GNOME InstallerenDe makkelijkste manier om
GNOME te installeren is door
middel van het Desktop Configuration menu
tijdens de &os; installatie zoals beschreven in . Het kan ook makkelijk
geïnstalleerd worden van een package of uit de
portscollectie:Om het GNOME package te
installeren:&prompt.root; pkg_add -r gnome2Om GNOME vanuit de
portscollectie te installeren:&prompt.root; cd /usr/ports/x11/gnome2
&prompt.root; make install cleanZodra GNOME geïnstalleerd
is, moet de X server verteld worden dat in plaats van de
standaard window manager GNOME
gebruikt moet worden. Als er al een
.xinitrc is, dan hoeft alleen de regel
die de huidige windows manager start veranderd te worden in
een regel die
/usr/X11R6/bin/gnome-session start.
Als er niets speciaals met dit instellingenbestand is
gedaan:&prompt.user; echo "/usr/X11R6/bin/gnome-session" > ~/.xinitrcNu kan met startx de
GNOME bureaubladomgeving gestart
worden.Als een beeldschermmanager als
XDM gebruikt wordt werkt het
bovenstaande niet. In plaats daarvan moet een uitvoerbaar
.xsession gemaakt worden met hetzelfde
commando erin. Hiervoor moet het bestand aangepast worden
door het bestaande window manager commando te vervangen door
/usr/X11R6/bin/gnome-session:&prompt.user; echo "#!/bin/sh" > ~/.xsession
&prompt.user; echo "/usr/X11R6/bin/gnome-session" >> ~/.xsession
&prompt.user; chmod +x ~/.xsessionHet is ook mogelijk de beeldschermanager zo in te stellen
dat de window manager gekozen kan worden tijdens het
aanmelden. In de paragraaf Meer KDE Details wordt
uitgelegd hoe dit gedaan moet worden voor de
kdm beeldschermmanager van
KDE.Anti-alias Lettertypen in GNOMEGNOMEanti-alias lettertypenX11 ondersteunt anti-aliasing via de
RENDER uitbreiding. GTK+ 2.0 en hoger
(de toolkit die gebruikt wordt bij
GNOME) kunnen dit gebruiken. Het
instellen van anti-aliasing is beschreven in . Dus met up-to-date software is
anti-aliasing in de GNOME
bureaublagomgeving mogelijk. In ApplicationsDesktop
PreferencesFont kan gekozen wordne voor Best
shapes, Best contrast of
Subpixel smoothing (LCDs). Bij een
GTK+ applicatie die geen onderdeel is van het
GNOME bureaublad moet de
omgevingsvariabele GDK_USE_XFT op
1 gezet worden voordat het programma wordt
gestart.KDEKDEOver KDEKDE is een bureaubladomgeving
die eigentijds is en makkelijk in gebruik.
KDE biedt de gebruiker:Een schitterende eigentijdse desktop;Een desktop die volledig netwerktransparant
is;Een geïntegreerd hulpsysteem dat eenvoudig
bruikbare informatie geeft over het gebruik van het
KDE bureaublad en de
applicaties;Alle KDE applicaties
werken op dezelfde manier en zien er hetzelfde
uit;Gestandaardiseerde menu's en werkbalken,
keybindings, kleurschema's, enzovoort;Internationalisatie:
KDE is beschikbaar in meer dan
40 talen;Gecentraliseerde vraag en antwoord gestuurde
bureaubladinstelling;Een grote hoeveelheid bruikbare
KDE applicaties;KDE heeft een office
applicatie suite die gebaseerd is op
KDE's
KParts technologie en bestaat uit een
spread-sheet, een presentatieprogramma, een organizer, een
nieuwsclient en meer. KDE heeft
ook de webbrowser Konqueror die
niet onder doet voor de andere bestaande webbrowsers op
&unix; systemen. Meer informatie over
KDE staat op de KDE website. Voor &os;
specifieke informatie en bronnen over
KDE is er de &os;-KDE team
website.KDE InstallerenNet als bij GNOME of iedere
andere bureaubladomgeving is de makkelijkste manier om
KDE te installeren door middel van
het Desktop Configuration menu in het &os;
installatie proces. Dat wordt beschreven in . Ook nu geldt weer dat de software
eenvoudig geïnstalleerd met een package of uit de
portscollectie:Om KDE van een package te
installeren:&prompt.root; pkg_add -r kde&man.pkg.add.1; haalt automatisch de laatste versie van
de applicatie op.Om KDE vanuit de
portscollectie te bouwen en te installeren:&prompt.root; cd /usr/ports/x11/kde3
&prompt.root; make install cleanNadat KDE geïnstalleerd
is, moet de X server verteld worden dat déze
applicatie gestart moet worden in plaats van de standaard
window manager. Hiervoor kan .xinitrc
aangepast worden:&prompt.user; echo "exec startkde" > ~/.xinitrcAls het X Window System wordt gestart met
startx is KDE
het bureaublad.Als er een beeldschermmanager als
XDM gebruikt wordt, is de
instelling anders. Dan moet .xsession
gewijzigd worden. Instructies voor
kdm worden later in dit hoofdstuk
beschreven.Meer KDE detailsNadat KDE
geïnstalleerd is op een systeem, kunnen de meeste dingen
uitgezocht worden via de hulppagina's of door de verschillende
menu's aan te wijzen en erop te klikken. &windows; en &mac;
gebruikers voelen zich meestal helemaal thuis.Het beste naslagwerk voor KDE
is de on-line documentatie. KDE
heeft zijn eigen web browser,
Konqueror, tientallen handige
applicatie's en uitgebreide documentatie. De volgende
paragrafen beschrijven de technische zaken die moeilijk
proefondervindelijk te achterhalen zijn.De KDE BeeldschermmanagerKDEbeeldschermmanagerEen beheerder van een multi-user systeem die een grafisch
aanmeldscherm willen hebben voor zijn gebruikers kan hiervoor
XDM gebruiken, zoals eerder
beschreven. KDE biedt
kdm als alternatief. Dat is
ontworpen met een beter uiterlijk en heeft meer
aanmeldopties. Gebruikers kunnen via een menu kiezen
welke bureaubladomgeving (KDE,
GNOME of een andere) zij na het
aanmelden willen gebruiken.Om te beginnen dient het KDE
beheerpaneel kcontrol door
root uitgevoerd te worden. Er wordt in
het algemeen vanuit gegaan dat het niet veilig is om als
root de X omgeving te gebruiken. In
plaats daarvan wordt de window manager als normale gebruiker
gestart en in een terminalvenster (zoals
xterm of
KDE's
konsole) wordt root
met su aangemeld. De gebruiker moet
hiervoor wel in de groep wheel
in /etc/group staan). In het
terminalvenster kan dan kcontrol
ingegeven worden.Eerst dient geklikt te worden op het linker icoon
System, daarna op Login
manager. Rechts staan nu verschillende opties om
in te stellen die de KDE
handleiding uitgebreid behandelt. Klik op
sessions aan de rechterzijde. Klik
New type om de verschillende window
managers en bureaubladomgevingen toe te voegen. Dit zijn
alleen de labels, hierop staat dan
KDE en
GNOME in plaats van
startkde of
gnome-session. Er dient ook nog
een label failsafe gemaakt te
worden.Er wordt aangeraden ook met de andere menu's te spelen.
Die zijn hoofdzakeklijk voor cosmetische zaken en spreken
voor zich. Als de instellingen gemaakt zijn kan onderaan op
Apply geklikt worden en kan het
beheerprogramma verlaten worden.Om te zorgen kdm begrijpt
wat de labels (KDE en
GNOME etc) betekenen, dienen de
bestanden die XDM gebruikt
gewijzigd te worden.In KDE 2.2 is dit veranderd:
kdm gebruikt nu zijn eigen
instellingenbestanden. In de
KDE 2.2 documentatie staan
meer details.Als root, in een terminal venster,
dient /usr/X11R6/lib/X11/xdm/Xsession
gewijzigd te worden. In het midden van het bestand is een
onderdeel dat er als volgt uitziet:case $# in
1)
case $1 in
failsafe)
exec xterm -geometry 80x24-0-0
;;
esac
esacEr moeten een aantal regels toegevoegd worden aan dit
onderdeel. Aangenomen dat de gebruikte labels
KDE en GNOME waren, dient
dat het volgende de worden:case $# in
1)
case $1 in
kde)
exec /usr/local/bin/startkde
;;
GNOME)
exec /usr/X11R6/bin/gnome-session
;;
failsafe)
exec xterm -geometry 80x24-0-0
;;
esac
esacOm bij het aanmelden de KDE
bureaubladachtergrond hetzelfde te laten zijn als na het
aanmelden, dient de volgende regel toegevoegd worden aan
/usr/X11R6/lib/X11/xdm/Xsetup_0:/usr/local/bin/kdmdesktopNu moet kdm voorkomen in
/etc/ttys en starten bij de volgende
herstart. Om dit te doen kunnen de instructies uit XDM gebruikt worden en kan
/usr/X11R6/bin/xdm vervangen worden
in /usr/local/bin/kdm.Anti-alias LettertypenKDEanti-alias lettertypenX11 ondersteunt anti-aliasing door de toevoeging de
RENDER toevoeging en vanaf
Qt versie 2.3 ondersteunt Qt (de toolkit die bij
KDE zit) deze toevoeging. Het
instellen hiervan is beschreven in
over anti-aliasing X11 lettertypen. Dus met up-to-date
software is anti-aliasing mogelijk op een
KDE bureaublad. In het
KDE menu moet in PreferencesLook and
FeelFonts het vinkvakje Gebruik
Anti-aliasing voor Lettertypen en Iconen
aangevinkt worden. Voor Qt applicaties die geen onderdeel
zijn van KDE moet de
omgevingsvariabele QT_XFT op
true gezet worden voordat het programma
wordt gestart.XFceOver XFceXFce is een bureaubladomgeving
die gebaseerd is op de GTK+ toolkit die gebruikt wordt bij
GNOME, maar is eenvoudiger en
bedoeld voor gebruikers die een simpel en efficient
bureaublad willen dat toch eenvoudig en makkelijk in te
stellen is. Het ziet er bijna hetzelfde uit als
CDE dat bij commerciële
&unix; systemen zit. Een aantal
XFce functies zijn:Een eenvoudige, makkelijk te bedienen
desktop;Geheel in te stellen met de muis, met klikken en
slepen, enzovoort;Hoofdpaneel hetzelfde als
CDE met menu's, applets en
applicatiesGeïntegreerde window manager, bestandsmanager,
geluidsmanager, GNOME
compliance module en andere zaken;Thema's (sinds het gebruik van GTK+);Snel, licht en efficient: ideaal voor de oudere
of langzamere machines of machines met beperkte
hoeveelheid geheugen;Meer informatie over XFce
staat op de XFce
website.Installeren van XFceXFce is met een package
te installeren:&prompt.root; pkg_add -r xfce4Of vanuit de portscollectie:&prompt.root; cd /usr/ports/x11-wm/xfce4
&prompt.root; make install cleanNu moet de X server weten dat
XFce gestart moet worden als X de
volgende keer start:&prompt.user; echo "/usr/X11R6/bin/startxfce4" > ~/.xinitrcDe volgende keer dat X start is
XFce het bureaublad. Wederom:
als een beeldschermmanager als XDM
gebruikt wordt, moet .xsession gemaakt
worden zoals beschreven in de paragraaf over GNOME. Nu moet echter het
command /usr/X11R6/bin/startxfce4
gebruikt. Het is ook mogelijk de beeldschermmanager in te
stellen om bureaublad te kiezen bij het aanmelden, zoals is
uitgelegd in de paragraaf over kdm.