<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
<!-- Dit is het SGML-bronbestand van de Linux Administration Made Easy -->

<Book>
   
<!-- Titel informatie -->

<BookInfo>
<Title>Linux Administration Made Easy</Title>
<Author><FirstName>door Steve Frampton, &lt;frampton@LinuxNinja.com&gt;
</FirstName></Author>
<Author><FirstName>Vertaald door: Ellen Bokhorst, &lt;bokkie@nl.linux.org&gt;
</FirstName></Author>
<PubDate>21 oktober 1999</PubDate>
<ReleaseInfo>v1.06, 21 oktober 1999</ReleaseInfo>

<Abstract>
<Para>De gids <Quote>Linux Administration Made Easy</Quote>
(<Acronym>LAME</Acronym>) probeert het dagelijks beheer en onderhoud
te beschrijven waar Linux systeembeheerders gewoonlijk mee worden
geconfronteerd. Het maakt onderdeel uit van het Linux Documentatie Project.
</Para>
</Abstract>
</BookInfo>

<!-- Inhoudsopgave -->

<TOC></TOC>

<!-- Begin het document -->

<Chapter id="preface"><Title>Voorwoord</Title>

<Sect1 id="acknowledgements"><Title>Erkenningen</Title>

<Para>Ik zou graag de Linux-gemeenschap willen bedanken; in het bijzonder
die leden die hebben deelgenomen aan USENET en mailinglijsten met zeer
behulpzame tips, antwoorden, en suggesties over hoe Linux op z'n best te
gebruiken is. Jullie bijdragen zijn nuttig voor ons allemaal.</Para>

<Para>Dit document werd in het DocBook SGML-formaat geschreven, en vervolgens
met behulp van SGMLTools 2.x in een diversiteit aan documentformaten weergegeven, waaronder HTML, postscript, Rich-Text-Format, en PDF. Zie 
de website van het project op <ULink URL="http://www.sgmltools.org/">
http://www.sgmltools.org/</ULink> voor meer informatie over de SGMLTools.</Para>

</Sect1>

<!--***********************************************************************-->
<!--Let op: hier begint het copyright, niet vertalen-->

<Sect1 id="copyright-and-disclaimer"><Title>Copyright Information and Legal Disclaimers</Title>

<Para>Copyright &copy; 1997-1999 by Steve Frampton. This material may
be distributed only subject to the terms and conditions set forth in the
Open Publication License, v0.4 or later (the latest version is presently
available at <ULink URL="http://www.opencontent.org/openpub/">
http://www.opencontent.org/openpub/</ULink>).</Para>

<Para>I've written this documentation and am providing it free to the
Linux community as a public-service.  I have made every attempt to ensure
that the information contained herein is timely, accurate, and helpful,
but in no way will I be held liable for any damage(s) caused directly or
indirectly by any misinformation contained herein.</Para>

<Para>I will not appreciate being flamed for any errors or omissions.  
However, if you notice a glaring inaccuracy, or have suggestions for
further improvement, please, let me know.  However, please check the
version number and date of this document (see the table of contents) to
ensure you are looking at the most recent version.  If this document is
more than three months old, please check the Linux Documentation Project
home page at
<ULink URL="http://metalab.unc.edu/LDP/">http://metalab.unc.edu/LDP/</ULink>
in case a newer version is available.</Para>

<Para>This document, currently, should be considered moderate-beta. I
began writing it in 1997, and continue to update it as time permits.  
Development in the Open Source community continues at a rapid pace, and at
times it is a challenge to keep this document up to date.  As such, this
document may have one or more sections which contain obsolete
information.</Para>

<Para>In short, I make no guarantees for any of this information to be
correct.  If it helps you out, that's great!</Para>

<!--********************************************************************-->
<!-- einde copyright -->

</Sect1>

<Sect1 id="help-plea"><Title>Een dringend verzoek om Hulp</Title>

<Para>Als je dit document van nut vindt en er graag je waardering voor wilt
laten blijken, overweeg dan alsjeblieft een donatie aan een goed doel. 
<!-- a local food bank doesn't exist in the Netherlands, so I left it out,
therefore I made it more general, just a donation  , het doneren van
een of twee voedingsartikelen aan je lokale food bank.-->
</Para>

</Sect1>

</Chapter>

<Chapter id="introduction"><Title>Introductie</Title>

<Para><Emphasis>Linux 2.2.0, released 25-Jan-99: Onwards to World
Domination...</Emphasis></Para>

<Para>Misschien dat Linux tamelijk nieuw voor je is en dat je hoopt
hierin een samenvatting te vinden van de soort configuratie en 
beheertaken die van tijd tot tijd benodigd kunnen zijn. 
Als dit voor jou geldt, is dit document misschien nou net waar
je naar op zoek was!
</Para>

<Sect1 id="scope"><Title>Strekking</Title>

<Para>In deze documentatie wordt een poging ondernomen de installatie
en configuratie samen te vatten, als ook de dagelijkse beheer-
en onderhoudsprocedures die zouden moeten worden gevolgd om een server of
desktop-systeem gebaseerd op Linux beschikbaar en werkend te houden.
Het is gericht op zowel bedrijfs- als thuisgebruikers.
Het is niet bedoeld als een volledig overzicht van
Unix-bewerkingen, aangezien er verscheidene goede teksten beschikbaar zijn
als ook online documentatie waarnaar kan worden gerefereerd in die gevallen
waar meer gedetailleerde informatie is vereist.
</Para>

<Para>In het algemeen kan je Linux-systeem met een minimum aan
gebruikersbeheer werken. Routinetaken, zoals het draaien en verwijderen
van systeemlogs zijn geautomatiseerd. Daarom zal Linux voor het grootste
deel zelfs met zeer weinig tussenkomst van de gebruiker zijn taak prima
volbrengen. Echter in situaties met aangepaste benodigdheden of 
het falen van het systeem zal deze documentatie zijn nut kunnen bewijzen.
</Para>

<Para>Ik gebruik Linux op het moment zowel thuis als op mijn werk.
Het is me goed van dienst geweest en het heeft nu al meer dan vier
jaar als een betrouwbare Internet en bestands/printer-service voor mijn
werkgever gefunctioneerd.
</Para>

</Sect1>

<Sect1 id="choosing-linux"><Title>Uitkiezen van een Linux Distributie</Title>

<Para>Er is een zeer grote vari&euml;teit aan Linux-distributies waar je
uit kunt kiezen. Alle distributies bieden dezelfde basis bestaande uit de
Linux-kernel en systeemtools, maar ze verschillen in installatiemethode
en gebundelde applicaties. Iedere distributie heeft zijn eigen voordelen
als ook nadelen, dus je doet er verstandig aan wat tijd te spenderen aan
het onderzoeken welke features in een gegeven distributie beschikbaar zijn,
voordat je beslist welke je wilt.
</Para>

<Para>Hierna volgt een lijst met een paar te bezoeken websites,
die een beschrijving geven van de gegeven Linux distributie als ook in
informatie voorzien over hoe je het kunt downloaden of aan kunt schaffen:
</Para>

<VariableList> <VarListEntry> <Term><ULink
URL="http://www.redhat.com/">http://www.redhat.com/</ULink</Term>
<ListItem><Para>De Red Hat distributie, door de commerci&euml;le verkoper
Red Hat Software, Inc. is &eacute;&eacute;n van de meest populaire 
distributies. Red Hat 6.1 is met een keuze uit GUI- en op tekst gebaseerde
installatieprocedure waarschijnlijk de eenvoudigst te installeren
Linux-distributie. Het biedt eenvoudig upgrade en package-beheer via het
``<Literal>RPM</Literal>'' utility, en
bevat zowel de GNU Network Object Model Environment
(<Emphasis>GNOME</Emphasis>) als de ``K Desktop Environment''
(<Emphasis>KDE</Emphasis>), beiden zijn populaire GUI window managers
voor het X Window Systeem. Deze distributie is beschikbaar voor de Intel,
Alpha, en Sparc platformen.</Para></ListItem> </VarListEntry>

<VarListEntry> <Term><ULink
URL="http://www.debian.org/">http://www.debian.org/</ULink></Term>
<ListItem><Para>De Debian distributie, door de non-profit organisatie bekend
als <Quote>Het Debian Project</Quote> is de lieveling van de Open Source
gemeenschap. Het biedt ook eenvoudig upgrade en package-beheer via het
``<Literal>dpkg</Literal>'' utility. Deze distributie is beschikbaar voor
de Intel, Alpha, Sparc, en Motorola (Macintosh, Amiga, Atari) platformen.</Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term><ULink URL="http://www.suse.com/">http://www.suse.com/</ULink></Term>
<ListItem><Para>De S.u.S.E. distributie, door commerci&euml;le verkoper
S.u.S.E., is een andere populaire distributie, en is de leidende distributie in
Europa. Het bevat de ``K Desktop Environment''
(<Emphasis>KDE</Emphasis>), en biedt ook eenvoudig upgrade en package-beheer
via het ``<Literal>YaST</Literal>'' utility. Deze distributie is beschikbaar
voor zowel Intel als Alpha platformen.
</Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term><ULink URL="http://www.caldera.com/">http://www.caldera.com/</ULink></Term>
<ListItem><Para>De OpenLinux distributie, door commerci&euml;le verkoper
Caldera, is gericht op gemeenschappelijke gebruikers. Met de nieuwe
OpenLinux 2.2 release, heeft Caldera de barri&egrave;re overtroffen en het
schijnt de eenvoudigst te installeren Linux-distributie te zijn die
vandaag de dag beschikbaar is. Bovendien wordt het standaard geleverd met de
``K Desktop Environment'' (<Emphasis>KDE</Emphasis>). Deze
distributie is alleen beschikbaar voor het Intel platform.</Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term><ULink URL="http://www.linux-mandrake.com/">http://www.linux-mandrake.com/</ULink></Term
<ListItem><Para>De Mandrake distributie, door commerci&euml;le verkoper
MandrakeSoft S.A., integreert de Red Hat of Debian distributies (naar keuze)
met aanvullende waarde toevoegende software packages dan die
zijn opgenomen in de originele distributies.
</Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term><ULink URL="http://www.slackware.com/">http://www.slackware.com/</ULink></Term>
<ListItem><Para>De Slackware distributie, door Patrick Volkerding van
Walnut Creek Software, is de grootvader van moderne Linux-distributies.
Biedt een tamelijk eenvoudige installatieprocedure, maar een
mager upgrade en package-beheer.
Nog steeds gebaseerd op de libc library's maar bij de volgende versie
zal waarschijnlijk worden overgegaan naar de nieuwere glibc.
Aanbevolen voor de meer technische gebruikers en die bekend zijn met
Linux. Deze distributie is alleen beschikbaar voor het Intel-platform.
</Para></ListItem>
</VarListEntry>

</VariableList>

<Para>Het opsommen van alle beschikbare distributies valt buiten het kader
van dit document, dus heb ik slechts de populairste opgesomd.
Verdere informatie over de beschikbare distributies is echter te vinden in
de ``<Emphasis>Distribution-HOWTO</Emphasis>'', beschikbaar op <ULink
URL="http://metalab.unc.edu/LDP/HOWTO/Distribution-HOWTO.html">
http://metalab.unc.edu/LDP/HOWTO/Distribution-HOWTO.html</ULink></Para>

<Tip><Para>Tip: Als je besluit je distributie op CD-ROM te kopen, kun je
bij andere verkopers wellicht betere prijzen treffen.
(Ik was bijvoorbeeld heel tevreden met verscheidene
transacties met de op Internet gebaseerde software-verkoper
<ULink URL="http://www.cheapbytes.com/">http://www.cheapbytes.com/</ULink>).
Aan de andere kant wil je misschien de hogere prijs neertellen aan de
distributie-verkopers om er zeker van te zijn dat wat ze aanbieden
nog verder wordt verbeterd.
</Para></Tip>

<Para>Mijn keuze viel op de distributie Red Hat Linux (het schijnt ook
onbetwistbaar de meest populaire distributie onder Linux-gebruikers te zijn).
Gedurende bijna drie jaar, was ik een verknochte Slackware fanatiekeling
(daarvoor had ik wat gerommeld met een kleine distributie van tsx-11
in de tijd van kernel 0.90a) en alhoewel ik Red Hat in het verleden
heb uitgeprobeerd, kon ik mezelf er niet toe brengen iets goeds over
hun distributies te zeggen. Toen probeerde ik Red Hat 5.1, en bemerkte
dat ik al snel was bekeerd! Naar mijn mening, zit Red Hat met 5.1
eindelijk <Quote>goed</Quote>.</Para>

<Para>Een aantal redenen waarom ik een fan van de Red Hat
distributie werd, is het installatie-gemak, de ondersteuning voor meerdere
platformen (tot voor kort was Red Hat de enige distributie-verkoper die
zijn distributie leverde voor Intel, Alpha, en Solaris platformen), en
bovenal de RPM package-beheerder. Bovendien plaatsen ze updates van 
RPM's op hun FTP-site (op <ULink URL="ftp://ftp.redhat.com/redhat/updates/">ftp://ftp.redhat.com/redhat/updates/</ULink>)
als ze beschikbaar komen, wat een goede manier is om je systeem bijgewerkt
en vrij van enige bugs of beveiligingsproblemen, die van tijd tot tijd 
worden ontdekt, te houden.
</Para>

<Para>Sinds het voor het eerst laden van Red Hat 5.1 op een
andere reserve computer op het werk voor testdoeleinden, heb ik twee
van onze belangrijkste Internet/File &amp;Print servers omgezet van Slackware
naar Red Hat en heb daar nog geen spijt van gehad. Ik heb het ook op mijn
systeem thuis geladen en installeerde het ook op drie andere systemen
die als lichte servers dienen. Bovendien kreeg ik de kans niet alleen met de
versies die op Intel zijn gebaseerd te spelen maar ook met de op Alpha- en
de Sparc gebaseerde versies. Ik heb onlangs alle Linux-systemen waarvoor
ik verantwoordelijk ben, overgezet naar Red Hat 6.1.
</Para>

<Para>Daarom heeft dit document beslist een Red Hat <Quote>feel</Quote>
en is het 't meest relevant voor de Intel-gebaseerde 6.1 versie. 
Echter hopelijk zal het meeste of tenminste iets van de informatie in
dit document ook nuttig zijn voor gebruikers van andere distributies.
</Para>

</Sect1>

</Chapter>

<Chapter id="linux-overview"><Title>Linux Overzicht</Title>

<Para>Welkom bij Linux!</Para>

<Sect1 id="what-is-linux"><Title>Wat is Linux?</Title>

<Para>Linux is een echt 32-bit besturingssysteem dat draait op een diversiteit
aan verschillende platformen, waaronder Intel, Sparc, Alpha, en Power-PC
(op een aantal van deze platformen zoals de Alpha, is Linux in feite 64-bit).
Er zijn bovendien andere ports beschikbaar, maar daar heb ik geen ervaring mee.
</Para>

<Para>Linux werd voor 't eerst ontwikkeld in het begin van het jaar 1990, 
door een jonge Finse toen-universiteits student genaamd Linus Torvalds.
Linus had thuis een 386 box en besloot een alternatief op het Minix-systeem,
gebaseerd op de 286'r te schrijven (een klein op unix lijkende implementatie
voornamelijk gebruikt in besturingssysteemklassen), om voordeel te hebben van
de extra instructieset die op de toen nieuwe chip beschikbaar was, en begon
een kleine kale kernel te schrijven.</Para>

<Para>Tenslotte kondigde hij zijn kleine project aan in de
USENET groep <ULink URL="news:comp.os.minix">comp.os.minix</ULink>, met 
de vraag of er ge&iuml;nteresseerden waren om ernaar te kijken en misschien
aan het project bij te dragen. De resultaten waren fenomenaal!
</Para>

<Para>Wat zo interessant is aan Linux, is dat het volledig vrij is!
Linus besloot de GNU Copyleft licentie van de Free Software
Foundation over te nemen, wat betekent dat de code door een copyright is
beschermd in die zin dat het altijd voor anderen beschikbaar moet zijn.
</Para>

<Para>Vrij betekent <Emphasis>vrij</Emphasis> -- je kunt het vrij
krijgen, het vrij gebruiken en je bent er zelfs vrij in het met winst
te verkopen (dit is niet zo vreemd als het klinkt; verscheidene
organisaties, waaronder Red Hat, hebben de standaard Linux kernel
met een verzameling GNU utilities verpakt en daarin hun eigen
<Quote>soort</Quote> applicatie bij ingesloten en ze verkopen ze als
distributies. Een aantal algemene en populaire distributies zijn
Slackware, Red Hat, SuSe, en Debian)!  Wat er zo geweldig aan is, is dat
je toegang hebt tot de broncode wat betekent dat je de besturingssystemen
naar <Emphasis>eigen</Emphasis> inzicht aan kunt passen, niet die 
van de <Quote>doelmarkt</Quote> van de meeste commerci&euml;le verkopers.
</Para>

<Para>Linux kan en zou moeten worden aangemerkt als een
geheel ontwikkelde implementatie van unix.
Het kan echter geen <Quote>Unix</Quote> worden genoemd; niet vanwege
incompatibiliteiten of gebrek aan functionaliteit, maar omdat het woord
<Quote>Unix</Quote> een geregistreerd handelsmerk is, waarvan
AT&amp;T de eigenaar is, en het gebruik van het woord alleen is toegestaan
middels een licentie-overeenkomst.</Para>

<Para>Linux wordt net zo ondersteund en is betrouwbaar en uitvoerbaar als
ieder ander besturingssysteem (naar mijn mening, heel wat beter!).
Echter vanwege zijn oorsprong, de achterliggende filosofie en het gebrek
aan een multi-miljoen dollar marketing campagne dat het promoot, zijn er
heel veel mythen over. Mensen moeten nog heel wat leren over dit schitterende
OS!
</Para>

</Sect1>

<Sect1 id="linux-myths"><Title>De Mythen Doorbreken</Title>

<Para>Ik heb Linux verscheidene jaren gebruikt, en ik denk graag te weten
dat ik wat over het besturingssysteem weet en wat het wel en niet kan.
Aangezien ik een gretige USENET lezer ben, volg ik de laatste ontwikkelingen
en natuurlijk de diverse hooglopende ruzies die constant aan de dag treden
(die vervloekte cross-postende verdedigende mensen! ;-) ).
Ik heb mijn aandeel in mythen gezien (vaak
<Emphasis>FUD</Emphasis> -- <Quote>Fear, Uncertainty, Doubt</Quote> genoemd
welke als een algemene tactiek wordt gebruikt door commerci&euml;le
verkopers van technologie om hun markt af te schrikken van concurrerende
technologi&euml;n) waarin meer dan een paar mensen geloven. Dus laat
me proberen een paar van de meer algemene mythen te laten afnemen en
ze proberen te ondermijnen. :-)
</Para>

<ItemizedList Mark="Bullet" Spacing="Normal">
<ListItem><Para>Linux is freeware, daarom is het een stuk speelgoed.
</Para></ListItem>
</ItemizedList>

<Para>Een aantal mensen schijnen de indruk te hebben dat
het wel zo moet zijn dat de resultaten ondergeschikt zijn aan 
commerci&euml;le aanbiedingen, omdat een stuk software door vrijwilligers 
zonder winstmotief in gedachten werd geschreven.
</Para>

<Para>In het verleden klopte dit misschien wel (ik bedoel dat er
heel veel freeware <Emphasis>was</Emphasis> wat absolute rommel was in
de eerdere wereld van DOS en Windows), maar tegenwoordig is dit zeker niet
niet 't geval.
</Para>

<Para>De kracht van het Internet heeft het mogelijk gemaakt een aantal
van de pientere gemoederen op de aardbol samen te brengen, waarbij het
mogelijk is aan projecten mee te werken die men interessant vindt.
De mensen die een hand hebben toegestoken in de ontwikkeling van Linux
of de duizenden GNU-utilities en applicatie-packages komen van diverse
achtergronden, en allen hebben verschillende persoonlijke redenen waarom
ze willen bijdragen.</Para>

<Para>Sommigen zijn taaie hackers die ontwikkelen vanwege een voorliefde
voor het coderen, anderen hebben iets nodig
(zoals bijvoorbeeld een netwerkmonitor voor een LAN op 't werk)
en besluiten die zelf te schrijven, anderen zijn academici en
computerwetenschappers die Linux vanwege zijn onderzoekskwaliteiten gebruiken.
</Para>

<Para>In tegenstelling tot een commercieel aanbod waarbij een package
wordt ontwikkeld en zonder de sourcecode aan
de eindgebruiker wordt verkocht, wordt de code in Linux nauwkeurig 
onderzocht, fouten opgespoord en door iedereen die daarin is
ge&iuml;nteresseerd en de mogelijkheden heeft, verbeterd.
Deze beoordeling door anderen is &eacute;&eacute;n van de redenen waardoor
Linux de grootste betrouwbaarheid en hoge performance kan bieden die het geeft.
</Para>

<Para>Vergeet niet: Het Internet zelf werd opgezet en draait bijna exclusief
op Open Source projecten. Van de e-mail die je op dagelijkse basis met
mensen in de hele wereld uitwisselt, bestaat een kans van 80% dat het door
&eacute;&eacute;n of beide kanten door Sendmail wordt afgehandeld, de 
webpagina's waar je doorheen bladert onderwijl je 
<Quote>op het Web Surft</Quote> worden in meer dan 50% van de websites in de
wereld aan je bezorgd door Apache. Betrouwbaar genoeg voor je? 
</Para>

<ItemizedList Mark="Bullet" Spacing="Normal">
<ListItem><Para>Er is geen ondersteuning voor Linux.</Para></ListItem>
</ItemizedList>

<Para>Deze mythe aanhorend maakt me een beetje misselijk. En bieden de 
<Quote>andere</Quote> verkopers soms <Emphasis>wel</Emphasis> ondersteuning?
Ik heb met een zeer populair commercieel besturingssysteem persoonlijk ervaren
dat de zogenaamde <Quote>ondersteuning</Quote> van de verkoper compleet
nutteloos was.</Para>

<Para>Ten eerste, er <Emphasis>is</Emphasis> ondersteuning voor Linux.
Ja, commerci&euml;le ondersteuning. Er zijn een aantal bedrijven die zoveel
ondersteuning kunnen leveren als waarvoor je bereid bent te betalen;
het aanbieden van telefonische en e-mail ondersteuning, 
veel ervan bieden aan, aan je deur te komen om het probleem aan te pakken!
</Para>

<Para>In 99% van de situaties die je onder Linux tegenkomt, zal je echter
hetgeen je wilt, kunnen bereiken als je gewoon het antwoord op 
&eacute;&eacute;n of twee vragen krijgt. Dit kan eenvoudig worden
bewerkstelligd via USENET of &eacute;&eacute;n van de beschikbare
discussielijsten!
</Para>

<Para>Ik had nog nooit eerder een probleem waar ik geen oplossing voor kon
vinden, &oacute;f door het doorzoeken van <ULink URL="http://www.dejanews.com/">
http://www.dejanews.com/</ULink>, &oacute;f door het vragen in &eacute;&eacute;n
van de comp.os.linux.* nieuwsgroepen. Normaal gesproken kan ik op ieder
van de ondersteuningszaken waarover ik een vraag stel 
binnen drie tot twaalf uur na het posten een antwoord verwachten.
</Para>

<Para>Een ander interessant aspect van Linux is dat,
omdat de sourcecode voor de gehele kernel en de meeste andere componenten
van het besturingssysteem vrij-verkrijgbaar is, de voornaamste
ondersteuning zoals beveiliging, het geen toegang krijgen
of CPU bugs (zoals Intel's <Emphasis>F00F</Emphasis> fatale uitzondering)
worden opgespoord en <Emphasis>zeer</Emphasis> snel worden opgelost -- 
meestal in volgorde van belangrijkheid die sneller is dan oplossingen die
voor vergelijkbare of identieke problemen met de commerci&euml;le aanbiedingen
worden geboden. Dus waar is nu de commerci&euml;le ondersteuning!?</Para>

<Para>Er zijn ontelbare andere mythen die ik van hun voetstuk zou willen
stoten, maar dat valt buiten het kader van dit document. 
Echter voor meer ondermijningen van mythen, kijk eens op de
<Quote>Linux Myth Dispeller</Quote> bij <ULink
URL="http://www.KenAndTed.com/KensBookmark/linux/index.html">
http://www.KenAndTed.com/KensBookmark/linux/index.html</ULink> als ook op
<Quote>The Linux FUDfactor FAQ</Quote> bij <ULink
URL="http://www.geocities.com/SiliconValley/Hills/9267/fud2.html">
http://www.geocities.com/SiliconValley/Hills/9267/fud2.html</ULink></Para>

</Sect1>

<Sect1 id="user-perspective"><Title>Perspectief van een gebruiker</Title>

<Para>Ik gebruik Linux zowel thuis als op het werk.</Para>

<Para>Op mijn werk maken we gebruik van Linux om honderden gebruikers in
Internet services te voorzien. Deze services bestaan uit TACACS (dial-in
modem user) authenticatie, web page hosting en proxy caching, als ook
SMTP en POP services. Bovendien gebruiken we Linux om te voorzien in NFS
services, en ook voor het leveren en mounten van het SMB-protocol
(WfW/Win95/WinNT) file &amp; print en FAX services met gebruik van het Samba
package.</Para>

<Para>Thuis gebruik ik Linux voor mijn persoonlijke behoeften, zoals
Internet services, software-ontwikkeling en natuurlijk het spelen van spellen
(het zien draaien van Quake II op een Linux box is prachtig)! 
&Eacute;&eacute;n van de dingen die ik prettig vind aan Linux is, dat 
hoe hard ik er ook op ploeter, het crasht <Emphasis>niet</Emphasis>! Het is
ook een geweldige manier te leren mijn Unix-vaardigheden te ontwikkelen en
bij te houden.
</Para>

<Para>Ik gebruik de Red Hat 6.1 Linux-distributie (zie <ULink
URL="http://www.redhat.com/">http://www.redhat.com/</ULink> voor meer
informatie). Deze distributie bevat alle noodzakelijke software voor een
geheel ontwikkeld unix systeem -- shells, compilers &amp; interpreters,
netwerkondersteuning, het X Window Systeem, en alle Internet services 
(bv. Mail, news, web server, telnet, enz.). De distributie wordt standaard
geleverd met Linux kernel 2.2.12.</Para>

<Para>Op mijn werk, gebruiken we een op Linux gebaseerd systeem als 
primaire Internet-server met de volgende configuratie:
</Para>

<ItemizedList Mark="Bullet" Spacing="Compact">
<ListItem><Para>Kernel: 2.2.12</Para></ListItem>
<ListItem><Para>Machine: Pentium II @ 300 MHz (bogo-mips 299.83) met PCI-bus, 256 Mb RAM</Para></ListItem>
<ListItem><Para>een 3 Gb Fujitsu IDE harddisk (/dev/hda)</Para></ListItem>
<ListItem><Para>vier 4.4 Gb Quantum Fireball SCSI harddisks (/dev/sd0 tot en met
/dev/sd3),</Para></ListItem>
<ListItem><Para>24x speed SCSI CD-ROM (/dev/scd0),</Para></ListItem>
<ListItem><Para>Adaptec AHA-131 SCSI controller</Para></ListItem>
<ListItem><Para>HP SCSI DAT tape drive (/dev/st0 en /dev/nst0),</Para></ListItem>
<ListItem><Para>Intel EtherExpress Pro 10/100 Ethernetkaart </Para></ListItem>
</ItemizedList>

<Para>We hebben een tweede systeem -- een zelfs mooiere Intel box -- ook
Red Hat 5.2 draaiend, op een andere kantoorlokatie. Het voorziet in netwerk 
file &amp; print services via Samba, lokale web caching via Squid, en
secondary DNS services. Helaas staat deze box meer dan 50 km verderop vanaf
waar ik gewoonlijk werk, en staat het daardoor nogal aan z'n lot overgelaten 
-- ja deze baby is echt mijn trots en plezier!
Hier zijn wat specs:</Para>

<ItemizedList Mark="Bullet" Spacing="Compact">
<ListItem><Para>Kernel: 2.2.12</Para></ListItem>
<ListItem><Para>Machine: Pentium II @ 350 MHz (bogo-mips 349.80) met PCI-bus, 256 Mb RAM</Para></ListItem>
<ListItem><Para>een 4.1 Gb Quantum Fireball SCSI harddisk (/dev/sda)</Para></ListItem>
<ListItem><Para>vier 9.4 Gb Quantum Fireball SCSI harddisks (/dev/rd/c0d0, /dev/rd/c0d1) als hardware RAID level 5 array,</Para></ListItem>
<ListItem><Para>36x speed SCSI CD-ROM (/dev/scd0),</Para></ListItem>
<ListItem><Para>BusLogic BT-948 SCSI controller</Para></ListItem>
<ListItem><Para>Mylex AcceleRAID 250 (DAC960) RAID controller,</Para></ListItem>
<ListItem><Para>HP SCSI DAT tape drive (/dev/st0 and /dev/nst0),</Para></ListItem>
<ListItem><Para>Intel EtherExpress Pro 10/100 Ethernetcard</Para></ListItem>
</ItemizedList>

<Para>Het hebben van een ongelofelijke 24+ Gb beschikbare opslagruimte, met
overvloedige opslag geconfigureerd als een hardware RAID5 array is een
nederig gevoel.
De Mylex RAID controller werkt geweldig en ik zou niet aarzelen anderen, die
op zoek zijn naar een hardware RAID oplossing, het aan te bevelen!
(Zie voor details de <XRef LinkEnd="hardware-raid">, als je
ge&iuml;nteresseerd bent je Linux-systeem met een RAID-array te configureren).
</Para>

<Para>We hebben nog vier andere Linux-systemen; een Alpha, een Sparc, en
twee Intel boxes; twee daarvan zijn in produktie, en dan is er nog mijn eigen
persoonlijke systeem thuis, maar ik zal je niet lastig vallen met de
details.
</Para>

<Para>In dit document is geprobeerd zo hardware-onafhankelijk mogelijk
te blijven, maar het kan van nut zijn als je weet waar ik vandaan kom
zover als het hardware betreft.
</Para>

</Sect1>

</Chapter>

<Chapter id="install-config"><Title>Installatie en Hardware Configuratie</Title>

<Para>In dit hoofdstuk zullen de procedures die nodig zijn om Red Hat 6.1
op een Intel systeem te installeren, nauwkeurig worden omschreven;
de procedures zijn vergelijkbaar of je nu kiest voor een installatie
gebaseerd op GUI- of tekst.
Aangezien veel van deze informatie reeds goed is gedocumenteerd in de
Red Hat User's Guide (geleverd als een papieren handboek in de 
<Quote>Offici&euml;le</Quote> set in doos, ingesloten in de
``<Literal><Filename>/doc</Filename></Literal>'' directory op de
CD, als ook online beschikbaar op 
<ULink URL="ftp://ftp.redhat.com/pub/redhat/redhat-6.1/i386/doc/rhinst/index.htm">
ftp://ftp.redhat.com/pub/redhat/redhat-6.1/i386/doc/rhinst/index.htm</ULink>).
Ik heb veel van de details vluchtig doorgenomen. Er zijn echter een paar zaken
waarvan ik vind dat ze in de Red Hat gids ontbreken, en daarom zal ik 
proberen die items in meer detail te behandelen.
</Para>

<Sect1 id="install-diskette"><Title>Aanmaken van een Installatie-diskette</Title>

<Para>Voor de eerste stap in het verkrijgen van de Linux Red Hat distributie
op een systeem, zal je een manier moeten vinden om het installatieprogramma
te starten. De gebruikelijke methode om dit te doen is door een 
installatiedisk aan te maken, als je echter vanaf CD-ROM installeert en
de BIOS van je systeem ondersteunt dit, zou je het installatieprogramma
kunnen starten door direct vanaf de CD te booten.
</Para>

<Para>Anders zal je de ``<Literal><Filename>boot.img</Filename></Literal>'' 
naar een diskette moeten kopi&euml;ren om
een installatiediskette aan te maken (wat gewoon een afbeelding is van
een ext2-geformatteerde Linux bootdiskette met een aanvullend 
installatieprogramma.). Het
``<Literal><Filename>boot.img</Filename></Literal>'' bestand kan worden
verkregen vanuit de
<Literal>/images</Literal> directory van de Red Hat CD-ROM disk, of
worden gedownload via FTP vanaf <ULink
URL="ftp://ftp.redhat.com/">ftp://ftp.redhat.com</ULink> in de <ULink
URL="ftp://ftp.redhat.com/pub/redhat/redhat-6.1/i386/images">
/pub/redhat/redhat-6.1/i386/images</ULink> directory (ervan uitgaande
dat je Linux op een Intel box installeert).
</Para>

<Para>Je kunt de boot-diskette vanaf een DOS of Windows systeem
aanmaken, of vanaf een bestaand Linux of Unix systeem.
Voor je doeldiskette kun je gebruik maken van een ongeformatteerde
of (voor DOS) voorgeformatteerde diskette -- het maakt geen verschil.
</Para>

<Para>Onder DOS: In de veronderstelling dat je CD-ROM als station D: 
toegankelijk is, kun je typen:
</Para>

<BlockQuote>

<Screen>
<UserInput>d:</UserInput>
<UserInput>cd \images</UserInput>
<UserInput>..\dosutils\rawrite</UserInput>
</Screen>

<Para>Voor het bronbestand geef je op
``<Literal><Filename>boot.img</Filename></Literal>''. Voor het
doelbestand, geef je op ``<Literal>a:</Literal>'' (in de veronderstelling dat de
diskette die je hebt aangemaakt in station A: is gedaan).
Het ``<Literal>rawrite</Literal>'' programma zal het
``<Literal><Filename>boot.img</Filename></Literal>'' bestand dan naar
de diskette kopi&euml;ren.
</Para>
</BlockQuote>

<Para>Onder Linux/Unix: In de veronderstelling dat het bestand
``<Literal><Filename>boot.img</Filename></Literal>'' is te vinden in
de huidige directory (het kan zijn dat je de CD-ROM onder /mnt/cdrom
moet mounten om het bestand in /mnt/cdrom/images te kunnen vinden), kun je
typen:
</Para>

<BlockQuote>

<Screen>
<UserInput>dd if=boot.img of=/dev/fd0</UserInput>
</Screen>

<Para>Het ``<Literal>dd</Literal>'' utility zal als zijn invoerbestand
(<Quote>if</Quote>), het ``<Literal><Filename>boot.img</Filename></Literal>''
bestand kopi&euml;ren naar het uitvoerbestand
(<Quote>of</Quote>) /dev/fd0 (in de veronderstelling dat je diskettestation
toegankelijk is via /dev/fd0).
</Para>

<Para>Tenzij je Linux of Unix-systeem schrijfpermissie toestaat naar het
diskette-device, kan het zijn dat je dit commando als superuser uit moet
voeren. (Als je het root-wachtwoord kent, typ je
``<Literal>su</Literal>'' om superuser te worden, voer het 
``<Literal>dd</Literal>'' commando uit, en typ vervolgens
``<Literal>exit</Literal>'' om naar de normale gebruikersstatus terug te
keren).</Para>
</BlockQuote>

<Para>Met &eacute;&eacute;n van de hiervoor genoemde mogelijkheden, zou je
nu een opstartbare Red Hat 6.1 installatiediskette moeten hebben, welke je
kunt gebruiken om je nieuwe Red Hat Linux-systeem mee te installeren!
</Para>

</Sect1>

<Sect1 id="booting-install"><Title>Booten van het Linux Installatie Programma</Title>

<Para>Om aan de instelling van je nieuwe Red Hat systeem te beginnen,
boot je &oacute;f vanaf de installatie-CD &oacute;f doe je de 
installatiediskette in station A: en herstart je het systeem &oacute;f zet
je het systeem aan. Na een paar tellen, zou het scherm van het Red Hat
installatieprogramma moeten verschijnen.
</Para>

<Para>In de meeste gevallen, kun je gewoon op <Literal>&lt;Enter&gt;</Literal>
drukken om het installatieproces te beginnen, maar als je een meer
ervaren gebruiker bent die precies weet hoe zijn hardware-devices zouden
moeten worden ingesteld, dan kun je 
``<Literal>expert</Literal>'' intikken voor de aanvullende informatie
en aanwijzingen waarin deze feature voorziet. (Als je niets doet, zal de
standaard installatieprocedure na ongeveer 10 tot 15 seconden na de 
eerste verschijning van het installatiescherm, opstarten).
</Para>

<Para>Er zal je vervolgens worden gevraagd naar de taal (meestal
<Quote><Literal>English</Literal></Quote>) en het type toetsenbord (zelfs
in Canada koos ik <Quote><Literal>US 101-key</Literal></Quote>), als ook
als waar je vanaf installeert (zoals vanaf je CD-ROM of via het netwerk). 
Red Hat is zeer flexibel in waar het vanaf ge&iuml;nstalleerd kan worden.
</Para>

<Para>Zeer waarschijnlijk zal je kiezen voor ``<Literal>Local CDROM</Literal>'' om vanaf je Red Hat CD-ROM te installeren (die in je CD-ROM apparaat gedaan
zou moeten zijn). Als je systeem echter niet met een CD-ROM apparaat is
uitgerust, zijn er een aantal andere installatiemethoden waaruit je
kunt kiezen.
</Para>

<Para>Als je een ander Linux-systeem hebt (of enig ander besturingssysteem
dat NFS file mounting ondersteunt), kun je gebruik maken van ``NFS'' om 
vanaf een NFS mount te installeren. Om dit te doen, zal je je CD-ROM onder
het andere systeem moeten zijn gemount (of anders de directory-structuur
van Red Hat ergens op het andere systeem moeten hebben -- het is mogelijk
alles via FTP te downloaden en het vervolgens vanaf de harddisk van je
andere systeem te installeren), zorg ervoor dat er een record voorkomt
in het bestand /etc/exports waardoor toegang tot de daarvoor bestemde
directory wordt toegestaan voor het nieuwe systeem. 
(zie de <XRef LinkEnd="nfs-services"> voor details over hoe je NFS instelt
en gebruikt), en vul vervolgens de juiste details in.
Hier is een voorbeeld:</Para>

<BlockQuote>
<ItemizedList Mark="Bullet" Spacing="Normal">

<ListItem><Para>Doe de Red Hat CD er onder het andere systeem (bv. een
systeem genaamd ``spock'') in.
</Para></ListItem>

<ListItem><Para>Om de CD te mounten, typ je:</Para>

<Screen>
<UserInput>mount /dev/cdrom /mnt/cdrom -t iso9660</UserInput>
</Screen>
</ListItem>

<ListItem><Para>Wijzig als superuser, het bestand
``<Literal><Filename>/etc/exports</Filename></Literal>'' en plaats er
een regel in als:
</Para>

<Screen>
<UserInput>/mnt/cdrom nieuwsys.mijndomein.naam(ro)</UserInput>
</Screen>

<Para>(Hiermee wordt aangegeven dat het nieuwe systeem op 
nieuwsys.mijndomein.naam read-only toegang heeft tot de directory
``<Literal><Filename>/mnt/cdrom/</Filename></Literal>'' en alle
daaronder liggende subdirectory's).
</Para>

<Para>Als er aan je nieuwe systeem nog geen domeinnaam is toegekend,
kun je in plaats daarvan het IP-adres gebruiken:
</Para>

<Screen>
<UserInput>/mnt/cdrom 10.23.14.8(ro)</UserInput>
</Screen>

<Para>(In de veronderstelling dat je nieuwe systeem als IP-adres 
10.23.14.8 heeft).</Para></ListItem>

<ListItem><Para>Typ wederom als superuser:</Para>

<Screen>
<UserInput>killall -HUP rpc.nfsd ; killall -HUP rpc.mountd</UserInput>
</Screen>

<Para>Hiermee zullen je NFS en mountd daemons worden herstart, wat 
noodzakelijk is voor je nieuwe NFS export zal functioneren.
</Para></ListItem>

<ListItem><Para>Nu kun je als installatiebron vanaf je nieuwe systeem kiezen
voor ``<Literal>NFS</Literal>''. Er zal je worden gevraagd informatie te
geven over je netwerkkaart, als ook je IP-instellingen.
Je zal waarschijnlijk gebruik gaan maken van static IP-instelllingen als je
systeem voorkomt op een lokaal LAN, of DHCP-instellingen als je systeem
bijvoorbeeld is aangesloten op een kabelmodem.
Vul de van toepassing zijnde instellingen voor je systeem in.
</Para></ListItem>

<ListItem><Para>Er zal je dan worden gevraagd de naam van de NFS-server
en Red Hat directory in te vullen. Voor ons voorbeeldsysteem, zouden we
``<Literal>spock</Literal>'' invullen als de naam van de NFS-server, en
``<Literal><Filename>/mnt/cdrom/</Filename></Literal>'' voor de Red Hat
directory.</Para></ListItem>

</ItemizedList>
</BlockQuote>

<Para>Er zijn nog andere manieren om Red Hat te installeren, zoals met
behulp van een Samba-verbinding (netwerk in de stijl van Windows), vanaf een
bestaande partitie op je harddisk (zoals je DOS- of Windows 95 partitie),
of via FTP. Kijk in de Red Hat gebruikersgids voor meer details over het
installeren aan de hand van dergelijke methoden, of probeer je er gewoon
doorheen te worstelen (de procedures zijn echt niet zo moeilijk!) 
</Para>

<Para>Zodra je een installatiebron hebt uitgekozen, zal Red Hat je vragen
of je een <Quote><Literal>Install</Literal></Quote> of
<Quote><Literal>Upgrade</Literal></Quote> op je systeem uit wilt voeren.
Als je een nieuw systeem gaat installeren, zou je moeten kiezen voor
<Quote><Literal>Install</Literal></Quote>. (Even terzijde, ik ben iemand
die <Emphasis>nooit</Emphasis> een upgrade
uit zal voeren van een nieuwe distributie-release over bestaande systemen
-- Ik denk dat dat komt omdat ik met Microsoft producten zoveel problemen
tegen ben gekomen, dat ik een veelbetekenend wantrouwen heb opgebouwd
tegen het sowieso upgraden van systemen. Ik geef er de voorkeur aan de
installatie vanaf het begin opnieuw te doen en mijn persoonlijke/gebruikers
en lokale site-bestanden vanaf een backup terug te zetten).
</Para>

<Para>Het installatieprogramma zal vervolgens vragen of je een SCSI-adapter
hebt. Als je yes antwoordt, zal je worden gevraagd de hiervoor bestemde 
driver uit te kiezen. In een aantal gevallen, zal Red Hat je adapter automatisch
kunnen detecteren.
</Para>

<Para>Daarna zal je worden gevraagd je bestandssystemen op te zetten, (d.w.z.
&eacute;&eacute;n of meer drives voor Linux te partitioneren).
Er zijn twee tools beschikbaar voor het instellen van deze partities,
waaronder de met Red Hat meegeleverde <Quote><Literal>Disk Druid</Literal>
</Quote>, en het standaard Linux <Quote><Literal>/fdisk</Literal></Quote>
utility.</Para>

<Para>Beide tools zijn qua functie gelijk, en geven je de mogelijkheid
partitie-typen en groottes te specificeren.
Disk Druid blijkt wat <Quote>gebruikersvriendelijker</Quote> en
wat completer dan fdisk te zijn. In feite is het zo dat als je fdisk gebruikt om
je harddisks te partitioneren, je het Disk Druid scherm voor je krijgt om
<Emphasis>hoe dan ook</Emphasis> je mountpoints te specificeren. 
Dat als ex-Slackware gebruiker te hebben gezegd, gebruik ik persoonlijk
altijd fdisk -- macht der gewoonte, denk ik!  :-)</Para>

<Para>De volgende sectie zal in detail beschrijven hoe en waarom je je
partitie-informatie op zou moeten zetten.
</Para>

</Sect1>

<Sect1 id="install-partitioning"><Title>Partitioneren van HardDisk(s)</Title>

<Para>Waarom zou je eigenlijk partitioneren? Alhoewel het mogelijk is een
perfect functionerend Linux-systeem op een systeem met een enkele partitie
draaiend te krijgen, en het in feite eenvoudiger is het op deze wijze te
configureren, zijn er een aantal voordelen bij het partitioneren van 
&eacute;&eacute;n of meer opslagdevices in meerdere partities.
</Para>

<Para>Ondanks dat het waar is dat Linux prima zal werken op een disk
met slechts &eacute;&eacute;n grote gedefinieerde partitie, zijn er
verscheidene voordelen om je disk op zijn minst in de vier belangrijkste
(root, usr, home, en swap) bestandssystemen te partitioneren.
Dit zijn:</Para>

<Para>Als eerste kan het zijn dat het minder lang duurt om de controle's
op de bestandssystemen uit te voeren (zowel bij het opstarten als bij
een handmatige fsck), omdat deze controle's parallel kunnen worden uitgevoerd.
(Tussen twee haakjes, voer fsck <Emphasis>NOOIT</Emphasis> uit op een
gemount bestandssysteem!!! Je zal er bijna zeker spijt van krijgen wat
ermee gebeurt. De uitzondering hierop is wanneer het bestandssysteem
read-only is gemount, in welk geval dit veilig is te doen).
Ook zijn controle's op bestandssystemen veel eenvoudiger te doen op een
systeem met meerdere partities. Als ik bijvoorbeeld wist dat er zich op
mijn /home partitie problemen voordeden, zou ik het gewoon kunnen unmounten,
er een bestandssysteemcontrole op uit kunnen voeren, en het dan opnieuw
kunnen mounten om het bestandssysteem te repareren (als tegenovergestelde
van het booten van mijn systeem in single-user mode met een rescue-diskette
en het dan te repareren).
</Para>

<Para>Ten tweede kun je met meerdere partities &eacute;&eacute;n of meer
partities als read-only mounten, als je dat wilt.
Als je bijvoorbeeld besluit dat alles in /usr door niemand, zelfs niet
door root, mag worden aangeroerd, dan kun je de /usr partitie als
read-only mounten.
</Para>

<Para>Als laatste, het belangrijkste voordeel waarin partitionering voorziet
is dat het bescherming biedt aan je bestandssystemen.
Als er iets gebeurt met een bestandssysteem
(&oacute;f door een fout van een gebruiker &oacute;f door falen van het
systeem), zou men op een gepartitioneerd systeem waarschijnlijk alleen
bestanden op een enkel bestandssysteem kwijt raken. Op een niet-gepartioneerd
systeem zou men ze waarschijnlijk op alle bestandssystemen kwijt raken.
</Para>

<Para>Dit kleine feit kan een groot voordeel zijn. Als je root-partitie
bijvoorbeeld zo beschadigd is dat je niet kunt booten, kun je fundamenteel
booten vanaf een rescue-diskset, je root-partitie mounten en kopi&euml;ren
wat je kunt (of herstellen vanaf een backup, zie 
<XRef LinkEnd="backup-and-restore"> voor details over hoe van bestanden
een backup kan worden gemaakt en ze kunnen worden teruggezet) naar een
andere partitie zoals home, en dan opnieuw booten met behulp van de
nood-bootdisk, door in te tikken
<Quote><Literal>mount root=/dev/hda3</Literal></Quote> (in de 
veronderstelling dat de partitie met je tijdelijke root bestandssysteem
zich op de derde partitie van hda bevindt) en je volledig functionele
Linux-box booten. Vervolgens kun je fsck op je niet gemounte beschadigde
root-partitie uitvoeren.
</Para>

<Para>Ik <Emphasis>heb</Emphasis> persoonlijk catastrofen ervaren bij
bestandssystemen, en ik was erg dankbaar dat de schade door het gebruik van
meerdere partities was beperkt.
</Para>

<Para>Ten slotte, aangezien het onder Linux mogelijk is andere besturingssystemen (zoals Windows 95/98/NT, BeOS, of wat je dan ook hebt) in te stellen,
en dan tweevoudig (of drievoudig, ...) je systeem te booten, kan het zijn
dat je aanvullende partities in wilt stellen om hier gebruik van te maken.
Je zou hier op z'n minst een apartie partitie voor ieder besturingssysteem
in moeten stellen. Linux heeft een behoorlijke bootloader (genaamd LILO voor
systemen gebaseerd op Intel, alhoewel iets vergelijkbaars ook beschikbaar
is als MILO voor de Alpha, en SILO voor de Sparc) waarmee het mogelijk is
tijdens het opstarten aan te geven welk besturingssysteem je wilt booten,
met een time-out standaardboot van je favoriete besturingssysteem 
(waarschijnlijk Linux, niet?)
</Para>

<Para>Je zou een disk (of meer disks) overeenkomstig je behoeften kunnen
partitioneren. In mijn ervaring op Intel, Alpha, en Sparc platformen, voor
een tamelijk belast systeem (rekening houdend met de toekomst), 
waarmee een tamelijke hoeveelheid taken kan worden verricht
(als een desktopsysteem thuis of als een Internet-server op 't werk)
heb ik bij benadering voor het vaststellen van een partitie-grootte
de volgende ruimte tamelijk effectief gevonden.
</Para>

<Screen>
Gegeven:

Een gegeven disk van X Mb/Gb          (bv. 2 Gb)
(Of, meer dan &eacute;&eacute;n disk met een gecombineerd totaal van X Mb/Gb)

Bereken:

(swap) ongeveer twee keer de hoeveelheid RAM (bv. 64 Mb systeem wordt 128 Mb swap)
/ (root)  ongeveer 10% van wat beschikbaar is             (bv. 200 Mb)
/home ongeveer 20% van wat beschikbaar is                 (bv. 400 Mb)
/usr alle resterende ruimte                               (bv. 1272 Mb)

/var (optioneel -- zie hieronder)
/boot (optioneel -- zie hieronder)
/archive (optioneel -- zie hieronder)
</Screen>

<Para>Natuurlijk zijn de hoeveelheden van hierboven slechts benaderingen.
Uiteraard wil je een beetje met deze percentages goochelen, afhankelijk van
waar je je Linux-systeem voor wilt gebruiken. Als je iets dergelijks gaat
doen als het toevoegen van zeer grote applicaties als WordPerfect of
Netscape, of misschien ondersteuning voor Japanse tekens toe gaat voegen, 
zou je er waarschijnlijk van profiteren als je wat meer /usr ruimte hebt.
</Para>

<Para>Ik schijn <Emphasis>altijd</Emphasis> veel ruimte beschikbaar te
hebben op /home, dus als je gebruikers niet veel doen (of als je strikte
quota-grootte hebt opgelegd) of je geen shell-accounts en persoonlijke
webpagina's biedt, enz., zou je de ruimte voor /home waarschijnlijk
kunnen verlagen en /usr verhogen.
</Para>

<Para>Hieronder staat een beschrijving van de diverse mountpoints en
bestandssysteem-informatie, wat je een beter beeld kan geven van hoe
je het best je partitie-grootte voor je eigen behoeften kunt defini&euml;ren:
</Para>

<ItemizedList Mark="Bullet" Spacing="Normal">

<ListItem><Para><Emphasis>/ (root)</Emphasis> - gebruikt om zaken als
tijdelijke bestanden, de Linux kernel en boot-image, belangrijke
binaire bestanden (dat wat nodig is voordat Linux de /usr partitie
kan mounten), en belangrijker de logbestanden, spoolgebieden voor
afdruktaken en uitgaande e-mail, en inkomende e-mail voor gebruikers
op te slaan. Het wordt ook als tijdelijke ruimte gebruikt wanneer er
bepaalde bewerkingen moeten worden uitgevoerd, zoals het bouwen van
RPM-packages vanuit RPM bronbestanden. 
Als je daarom veel gebruikers met veel e-mail hebt, of denkt veel
tijdelijke ruimte nodig te hebben, wil je misschien meer ruimte tot je
beschikking hebben. Het type partitie zou de standaarwaarde 83 
(Linux native) moeten blijven. Bovendien zal je waarschijnlijk de 
bootable flag op deze partitie in willen schakelen om het mogelijk
te maken informatie hier op te slaan.
</Para></ListItem>

<ListItem><Para><Emphasis>/usr/</Emphasis> - zou de grootste partitie
moeten zijn, omdat de meeste binaire bestanden benodigd voor Linux,
als ook enige lokaal ge&iuml;nstalleerde software, webpages, Squid proxy
cache, Samba share services, wat lokaal ge&iuml;nstalleerde software
logbestanden, enz. hier zijn opgeslagen.
Het type partitie zou de standaardwaarde 83 (Linux native) moeten blijven.
</Para></ListItem>

<ListItem><Para><Emphasis>/home/</Emphasis> - als je voor je
gebruikers niet in shell-accounts voorziet, hoef je deze partitie
niet zo groot te maken. De uitzondering hierop is als je voorziet in
homepages voor gebruikers (zoals webpages voor school), in welk geval
je er profijt van kunt hebben als je deze partitie wat groter maakt.
Nogmaals, het type partitie zou de standaardwaarde 83 (Linux native)
moeten blijven.
</Para></ListItem>

<ListItem><Para><Emphasis>(swap)</Emphasis> - Linux voorziet in iets dat
<Quote>virtueel geheugen</Quote> wordt genoemd om een grotere hoeveelheid
geheugen beschikbaar te maken dan het fysieke RAM dat op je systeem is
ge&iuml;nstalleerd. Om dit te bewerkstelligen wordt de swappartitie
met main RAM door Linux gebruikt. Als stelregel zou je swappartitie
op z'n minst zo groot moeten zijn als tweemaal de hoeveelheid op je
systeem ge&iuml;nstalleerd fysiek RAM.
</Para>

<Para>Als je meer dan &eacute;&eacute;n fysieke harddisk in je systeem
hebt, kun je meerdere swappartities aanmaken.
Hierdoor kan de performance van het swappen worden verbeterd door
het voordeel van parallelle disktoegang. Op bijvoorbeeld een 256 Mb
systeem met vier drives, zou ik waarschijnlijk vier 128 Mb swappartities
aanmaken, voor een totaal van 256 Mb RAM, 512 Mb swap (voor een gecombineerd
totaal van 768 Mb beschikbaar als virtueel geheugen).
Het type partitie moet worden gewijzigd in 82 (Linux swap).</Para>

<Note><Para>Noot: Het is een algemene misvatting dat Linux een 128 Mb
swapgrootte limiet heeft. Voorheen klopte dit, maar in moderne 
Linux-distributies is de grootte afhankelijk van je architectuur
(Intel-systemen kunnen bijvoorbeeld swapgroottes tot wel 2 Gb hebben).
Typ ``<Literal>man mkswap</Literal>'' voor meer informatie.</Para></Note>
</ListItem>

<ListItem><Para><Emphasis>/var/</Emphasis> (optioneel) - Misschien dat
je wilt overwegen je / (root) partitie wat verder op te splitsen. De
/var directory wordt voor een heel groot deel tijdens de uitvoering
gebruikt voor opslag, waaronder mail spools (zowel inkomende als uitgaande),
afdruktaken, locks op processen, enz. 
Het kan wat gevaarlijk zijn deze directory onder / (root) te mounten,
omdat (bijvoorbeeld) een grote hoeveelheid inkomende e-mail de partitie
mogelijk op kan vullen.
Aangezien er vervelende dingen kunnen gebeuren (systeemcrash?) wanneer
de / (root) partitie volraakt, kunnen dergelijke problemen met een /var 
op een eigen partitie worden voorkomen. Ik had succes bij welke hoeveelheid
ruimte ik dan ook aan / (root) had toegekend, misschien het
verdubbelend, en dan vervolgens aparte partities voor / (root) en voor
/var aan te maken. Het type partitie zou de standaardwaarde 83 (Linux native)
moeten worden gelaten.
</Para></ListItem>

<ListItem><Para><Emphasis>/boot/</Emphasis> (optioneel) - In een aantal
omstandigheden (zoals een systeem setup in een software RAID-configuratie)
kan een aparte partitie nodig zijn waarvan het Linux-systeem boot.
Met deze partitie zou het mogelijk zijn te booten en de vereiste drivers te
laden en de andere bestandssystemen in te lezen. De grootte van deze partitie
kan zo klein zijn als een paar Mb; Ik raad bij benadering een partitie aan
van 10 Mb (wat voldoende ruimte zou zijn om de kernel, initi&euml;le RAMdisk
image, en misschien &eacute;&eacute;n of twee backupkernels op te slaan).
Het type partitie zou de standaardwaarde 83 (Linux native) moeten worden
gelaten.</Para></ListItem>

<ListItem><Para><Emphasis>/archive/</Emphasis> (optioneel) - Als je extra
ruimte overhebt, zou je misschien baat hebben bij een partitie voor een
directory bijvoorbeeld genaamd, /archive. Je kunt de /archive directory
dan gebruiken om backupmateriaal, grote of niet frequent benaderde 
bestanden, samba file-services, of wat dan ook wat je van nut vindt, op te
slaan. Het type partitie kan als de standaardwaarde 83 (Linux native)
blijven, of als je het zowel van onder Linux als vanuit een ander 
besturingssysteem wilt kunnen benaderen, zou je het kunnen wijzigen naar
een andere ID, zoals 6 (DOS 16-bit >=32M).
</Para></ListItem>

</ItemizedList>

<Para>Als er extra disk(s) worden toegevoegd, kunnen er verdere partities
op de nieuwe disk(s) worden toegevoegd, 
op diverse mountpoints zoveel als nodig worden gemount -- dit betekent dat
je met een Linux-systeem je nooit zorgen hoeft te maken dat je ruimte
te kort gaat komen. Als het bijvoorbeeld in de toekomst duidelijk is dat
sda6 vol zal raken, zouden we een andere drive toe kunnen voegen, een
aardig grote partitie in kunnen stellen met een mount-point op
/usr/local -- en dan alle informatie vanaf /usr/local naar de nieuwe disk
kunnen transporteren. Maar geen enkel systeem of applicatie-component 
zou <Quote>breken</Quote> omdat Linux /usr/local zou zien ongeacht waar
het te lokaliseren was.
</Para>

<Para>Om je een voorbeeld te geven van hoe men partities in zou kunnen
stellen, heb ik het volgende partitieschema op een Intel-systeem gebruikt
(dual boot, Windows 95 en Linux):</Para>

<Screen>
   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/hda1  *         1        1      254  1024096+   6  DOS 16-bit >=32M
/dev/hda2          255      255      782  2128896    5  Extended
/dev/hda5          255      255      331   310432+  83  Linux native
/dev/hda6          332      332      636  1229728+  83  Linux native
/dev/hda7          637      637      749   455584+  83  Linux native
/dev/hda8          750      750      782   133024+  82  Linux swap
</Screen>

<Para>De eerste partitie, <Emphasis>/dev/hda1</Emphasis>, is een
DOS-geformatteerd bestandssysteem dat wordt gebruikt voor het opslaan van
het alternatieve besturingssysteem (Windows 95). Dit geeft me voor dat
besturingssysteem 1 Gb aan ruimte.
</Para>

<Para>De tweede partitie, <Emphasis>/dev/hda2</Emphasis>, is een fysieke
partitie (genaamd <Quote>extended</Quote>) welke de resterende ruimte
op de drive omvat.
Het wordt alleen gebruikt om de overblijvende logische partities in te
kapselen (er kunnen slechts 4 fysieke partities op een disk voorkomen;
in mijn situatie waren meer dan 4 partities nodig, daarom moest ik een 
logisch partitieschema voor de andere partities gebruiken).
</Para>

<Para>De derde tot aan de vijfde partitie, <Emphasis>/dev/hda5</Emphasis>,
<Emphasis>/dev/hda6</Emphasis>, en <Emphasis>/dev/hda7</Emphasis>, zijn
allen e2fs-geformatteerde bestandssystemen die respectievelijk voor de 
/ (root), /usr, en de /home partities worden gebruikt.</Para>

<Para>Ten slotte wordt de zesde partitie <Emphasis>/dev/hda8</Emphasis>, voor
de swappartitie gebruikt.
</Para>

<Para>Voor nog een ander voorbeeld, deze keer een Alpha box met twee
harddisks (enkele boot, alleen Linux), heb ik voor het volgende 
partitieschema gekozen:
</Para>

<Screen>
   Device Boot   Begin    Start      End   Blocks   Id  System
/dev/sda1            1        1        1     2046    4  DOS 16-bit <32M
/dev/sda2            2        2      168   346859   83  Linux native
/dev/sda3          169      169      231   130851   82  Linux swap
/dev/sda4          232      232     1009  1615906    5  Extended
/dev/sda5          232      232      398   346828   83  Linux native
/dev/sda6          399      399     1009  1269016   83  Linux native
/dev/sdb1            1        1      509  2114355   83  Linux native
/dev/sdb2          510      510     1019  2118540   83  Linux native
</Screen>

<Para>De eerste partitie, <Emphasis>/dev/sda1</Emphasis>, is een
DOS-geformatteerd bestandssysteem, welke wordt gebruikt om de MILO boot loader
op te slaan. Het Alpha-platform heeft een iets andere methode om te booten
dan een Intel-systeem, daarom slaat Linux zijn boot-informatie op in een
FAT-partitie. Deze partitie hoeft slechts zo groot te zijn als de kleinst
mogelijk toegestane partitie -- in deze situatie, 2Mb.
</Para>

<Para>De tweede partitie, <Emphasis>/dev/sda2</Emphasis>, is een
e2fs-geformatteerd bestandssysteem dat voor de / (root) partitie wordt
gebruikt.</Para>

<Para>De derde partitie, <Emphasis>/dev/sda3</Emphasis>, wordt gebruikt voor
de swappartitie.
</Para>

<Para>De vierde partitie, <Emphasis>/dev/sda4</Emphasis>, is een
<Quote>extended</Quote> partitie (zie vorige voorbeeld voor details).
</Para>

<Para>De vijfde en zesde partitie, <Emphasis>/dev/sda5</Emphasis>, en
<Emphasis>/dev/sda6</Emphasis>, zijn e2fs-geformatteerde bestandssystemen
respectievelijk voor de /home en /usr partities.
</Para>

<Para>De zevende partitie, <Emphasis>/dev/sdb1</Emphasis>, is een
e2fs-geformatteerd bestandssysteem dat wordt gebruikt voor de /archive 
partitie.</Para>

<Para>De achtste en laatste partitie, <Emphasis>/dev/sdb2</Emphasis>, is
een e2fs-geformatteerd bestandssysteem dat wordt gebruikt voor de /archive2 
partitie.</Para>

<Para>Nadat je klaar bent met het instellen van de partitie-informatie,
zal je de nieuwe partitie naar disk weg moeten schrijven.
Hierna laadt het installatieprogramma de partitietabel opnieuw in het
geheugen, en kun je dus verdergaan met de volgende stap van het 
installatieproces.
</Para>

</Sect1>

<Sect1 id="install-swap"><Title>Instellen van Swap Space</Title>

<Para>Zodra je de informatie voor je partitie(s) hebt ingesteld, en
<Quote>mount-points</Quote> hebt toegekend (dwz. /usr is het mountpoint
voor het /usr bestandssysteem), zal het installatieprogramma je vragen
welke partitie(s) het moet gaan gebruiken als swap space. Aangezien je
swappartities reeds als zodanig zouden moeten zijn ge&iuml;dentificeerd
(partitie ID # 82), kun je op <Literal>&lt;Enter&gt;</Literal> drukken om
het formatteren van die partitie(s) voor swap gebruik te starten.
Ik raad je aan de <Quote><Literal>Check for bad
blocks during format</Literal></Quote> te activeren om er zeker van te
zijn dat de partitie vrij is van potenti&euml;le problemen betreft beschadingen.
Het vertraagt het formatteringsproces wezenlijk, maar ik geloof dat
dat 't waard is.
</Para>

</Sect1>

<Sect1 id="install-format"><Title>Te formatteren Partities Uitkiezen</Title>

<Para>Nu zal het installatieprogramma je een lijst tonen met de
partities die je aan Linux hebt toegekend, en je vragen welke daarvan je
als nieuwe bestandssystemen wilt formatteren. Waarschijnlijk zal je ze
allemaal willen formatteren, behalve als je je systeem aan het upgraden
bent of misschien wat informatie hebt (bv. onder /home) die je niet kwijt
wilt.
</Para>

<Para>Weer raad ik je aan de optie <Quote><Literal>Check for bad
blocks during format</Literal></Quote> te activeren.</Para>

</Sect1>

<Sect1 id="install-packages"><Title>Uitkiezen van de Gewenste te Installeren Packages</Title>

<Para>Vervolgens zal je een lijst met systeemcomponenten worden gepresenteerd,
en worden gevraagd om aan te geven welke daarvan zouden moeten worden 
ge&iuml;nstalleerd. Als je een ervaren Linux-gebruiker bent, kun je 
overeenkomstig van wat je wilt met zorg uitkiezen. 
Als Linux nieuw voor je is, zal je wellicht de onderste optie 
<Quote>Everything</Quote> willen selecteren.</Para>

<Para>Wat ik meestal doe is de componenten te selecteren waarvan ik
weet dat ik ze nodig heb, en vervolgens de optie
<Quote><Literal>Select individual packages</Literal></Quote> activeer, wat
me de mogelijkheid biedt verfijndere controle uit te oefenen op de installatie.
</Para>

<Para>Zodra je de gewenste componenten hebt uitgekozen, selecteer je
<Quote><Literal>Ok</Literal></Quote> om de installatie te beginnen. Als je
<Quote><Literal>Select individual packages</Literal></Quote> hebt geselecteerd,
zal je worden gevraagd aan te geven welke individuele packages zouden moeten
worden ge&iuml;nstalleerd. Dit is tamelijk ongecompliceerd, en als je er niet
zeker van bent, waar een gegeven package voor is, kun je de
<Literal>&lt;<KeyCap>F1</KeyCap>&gt;</Literal>-toets indrukken voor een
beknopte beschrijving van wat het doet.
</Para>

<Para>Maak je er geen zorgen om als je een vergissing maakt bij het
kiezen (of niet kiezen) van &eacute;&eacute;n of twee packages.
Per slot van rekening staan alle packages op je CD-ROM (of op andere
source media), dus je kunt de handige Red Hat RPM-tool gebruiken om
aanpassingen te maken nadat je systeem beschikbaar en werkend is
(zie de <XRef LinkEnd="using-rpm"> voor details).</Para>

<Para>Nadat je de gewenste te installeren packages hebt uitgekozen,
zal het installatieprogramma de partities die je hebt gedefinieerd nu
gaan formatteren. Dit kan verscheidene minuten duren, vooral voor grote
partities of als je de controle op slechte blokken hebt geactiveerd, dus
denk alsjeblieft niet dat je systeem tijdens deze procedure is vastgelopen!
</Para>

<Para>Nadat het formatteren gereed is, zal Red Hat Linux de installatie van
de geselecteerde packages opstarten. Dit zou, afhankelijk van de snelheid van
je systeem, tussen vijf en vijftien minuten kunnen duren. 
</Para>

</Sect1>

<Sect1 id="install-configuration"><Title>Hardware Configuratie</Title>

<Para>Na het installeren van de packages, zal Red Hat de apparaten op je
systeem gaan configureren. In de meeste gevallen, behalve met zeer nieuwe
hardware die mogelijk nog niet volledig door Linux wordt ondersteund, is
het installatieprogramma erg goed in de automatische configuratie.
</Para>

<Para>De aanwijzingen die je te zien krijgt zijn zeer ongecompliceerd:</Para>

<ItemizedList Mark="Bullet" Spacing="Compact">
<ListItem><Para>Detectie van je muis (waaronder de keuze tussen 2- en
3-knops modellen.
Als je een 2-knops muis hebt, zal je wellicht de 3-knops emulatie
willen activeren).
</Para></ListItem>

<ListItem><Para>Detectie van je videokaart</Para></ListItem>

<ListItem><Para>Uitkiezen van je monitor</Para></ListItem>

<ListItem><Para>Het draaien van de ``<Literal>XConfigurator</Literal>'' om
het X Window Systeem te configureren (wellicht wil je kiezen voor de optie
<Quote>Probe</Quote> voor het automatisch detecteren van je kaart.
Als je hier een fout krijgt, maak je er dan niet druk om, aangezien
je later kunt zorgen voor de X-configuratie,
nadat je systeem beschikbaar en werkend is; zie <XRef
LinkEnd="xwindows-configuration"> voor details).</Para></ListItem>

<ListItem><Para>Selectie van videomodes (je kunt voor de standaardwaarden
kiezen, of je kunt de videomodes die je onder het X-Window systeem wilt
gebruiken fijnafstemmen).
</Para></ListItem>

<ListItem><Para>LAN configuratie</Para></ListItem>

<ListItem><Para>Klok en tijdzone configuratie</Para></ListItem>

<ListItem><Para>Startup services (de standaardselectie is waarschijnlijk
het beste, maar nogmaals, je kunt de
<Literal>&lt;<KeyCap>F1</KeyCap>&gt;</Literal> indrukken om een beschrijving
te krijgen van wat een gegeven service doet)
</Para></ListItem>

<ListItem><Para>Printer configuratie</Para></ListItem>

<ListItem><Para>Toekenning van het root-wachtwoord (kies iets dat veilig
is!)</Para></ListItem>

<ListItem><Para>Aanmaken van een bootdisk [ wees niet lui! Maak er &eacute;&eacute;n!  
:-) ]</Para></ListItem>
</ItemizedList>

</Sect1>

<Sect1 id="install-lilo"><Title>Booten met LILO</Title>

<Para>Vervolgens moet het installatieprogramma een bootloader naar je
harddisk wegschrijven.
De bootloader (<Emphasis>LILO</Emphasis> op Intel systemen)
is verantwoordelijk voor het booten van Linux samen met enige andere
besturingssystemen als je je systeem voor multi-boot hebt ingesteld.
(zie de <XRef LinkEnd="install-lilo-multi"> voor details).</Para>

<Para>In het dialoogvenster <Quote><Literal>Lilo Installation</Literal>
</Quote> wordt je gevraagd te kiezen waar het bootloader image naar zou moeten
worden weggeschreven. Je zal het waarschijnlijk in het master bootrecord van
je eerste disk willen installeren (meestal /dev/hda voor IDE, /dev/sda voor
SCSI). 
</Para>

<Para>Zodra je de lokatie hebt geselecteerd waarnaar de bootloader kan worden
weggeschreven, verschijnt er een tweede dialoogvenster, waarbij je de
mogelijkheid wordt geboden extra boot-time configuratieparameters in te voeren.
Meestal hoef je hier niets in te voeren, maar als je meer dan 64 Mb RAM
hebt, zal je hier een speciale parameter op moeten geven om Linux gebruik
te kunnen laten maken van het extra RAM (anders zal het slechts gebruik maken
van de eerste 64 Mb). Als er zich bijvoorbeeld 128 Mb Ram in je computer
bevindt, zou je in kunnen voeren:
</Para>

<Screen>
append="mem=128M"
</Screen>

<Para>Als je SCSI-drives op je systeem hebt, of je wenst LILO op een
partitie met meer dan 1023 cylinders te installeren, kan het nodig zijn
de optie <Quote><Literal>Use linear mode</Literal></Quote> te activeren.
Als het niet is geactiveerd, kan het activeren van deze optie geen kwaad,
dus waarschijnlijk is het een goed idee om het wel te doen.
</Para>

<Sect2 id="install-lilo-multi"><Title>Multi-boot met Andere Besturingssystemen</Title>

<Para>Tenslotte, zal je een derde dialoogvenster worden gepresenteerd, 
waarin de beschikbare partities zullen worden weergegeven als je je
systeem zo hebt ingesteld dat er tijdens de systeemstart uit Linux en
andere besturingssystemen kan worden gekozen. Hier kun je namen 
toekennen aan je andere besturingssystemen (die je tijdens het booten
achter de <Quote>LILO</Quote>-prompt in zal voeren om het gewenste
besturingssysteem te booten. Het installatieprogramma kent aan iedere
opstartbare partitie reeds standaardnamen toe, dus het is niet nodig ze
te wijzigen, tenzij de standaardwaarden je niet bevallen.
</Para>

<Para>Het standaard besturingssysteem dat tijdens de systeemstart zal worden
geboot, is natuurlijk Linux. Als je dat echter wilt, kun je de standaardwaarde
op &eacute;&eacute;n van de andere gedefinieerde besturingssystemen instellen.
</Para>

<Para>Na het installeren van de bootloader op je harddisk, presenteert het
installatieprogramma je hopelijk een dialoogvenster met
<Quote>Congratulations</Quote>, waarmee wordt aangegeven dat Linux succesvol
is ge&iuml;nstalleerd. Verwijder de installatiediskette (als er 
&eacute;&eacute;n is), en druk op 
<Literal>&lt;<KeyCap>Enter</KeyCap>&gt;</Literal> om je systeem opnieuw
te booten...in Linux!
</Para>

<Para>Linux zal booten, en als alles goed gaat, krijg je een
<Quote>login</Quote>-prompt te zien. Van hieruit, zou je als
<Quote>root</Quote> in moeten kunnen loggen met het wachtwoord dat je
tijdens het installatieproces hebt toegekend.
</Para>

</Sect2>

</Sect1>

<Sect1 id="update-redhat"><Title>Downloaden en Installeren van Red Hat Updates</Title>

<Para>Red Hat heeft tot dusverre een aantal aardig indrukwekkende versies
van hun distributie geproduceerd, maar naar het schijnt heeft het een
geschiedenis ze uit te geven wanneer ze nog niet geheel <Quote>gereed voor
de hoogste volmaaktheid</Quote> is. 
Om daarom volledig profijt te hebben van je Linux-systeem is het noodzakelijk
bijgewerkte packages te downloaden en toe te passen. 
Deze packages, ook wel <Quote>rpm files</Quote> genoemd worden toegepast
met behulp van het RPM-utility, zie de <XRef LinkEnd="using-rpm">
voor details over dit utility).</Para>

<Para>Dit zal &eacute;&eacute;n van de meer tijdrovende onderdelen zijn
in het gereed krijgen van je Linux-systeem (tenzij je een stervormige snelle
Internet-verbinding hebt). Neem echter de tijd om dit te doen!
Het zal je vermoedelijk <Emphasis>heel veel</Emphasis> hartzeer besparen!</Para>

<Para>Download eerst alle bestanden vanaf:</Para>

<BlockQuote>
<Para><ULink URL="ftp://ftp.redhat.com/redhat/updates/6.1/i386/">
ftp://ftp.redhat.com/redhat/updates/6.1/i386/</ULink></Para>
</BlockQuote>

<Para>(Hierbij wordt verondersteld dat je gebruik maakt van Linux op een
Intel box).</Para>

<Para>Het is waarschijnlijk het beste als je alles in een enkele
directory download omdat je dan eenvoudig
``<Literal>rpm -Uvh *</Literal>'' kunt typen, waarmee een upgrade op alle
packages zal worden toegepast.
Als je kernel rpm-bestanden hebt gedownload doe je er waarschijnlijk beter
aan ze voorlopig naar een andere directory te verplaatsen. 
Het upgraden of aanpassen van je kernel is wat gecompliceerder
en moet met heel veel zorg worden gedaan (zie de
<XRef LinkEnd="linux-kernel-upgrades"> voor details).
Overweeg daarom alle kernel-*.rpm bestanden vanuit je tijdelijke upgrade-directory te verplaatsen naar elders voordat je de upgrades toe gaat passen.
</Para>

<Para>Om de upgrades toe te passen, kun je eenvoudigweg
``<Literal>rpm</Literal>'' tegelijkertijd op alle packages uitvoeren (dwz.
<Quote><Literal>rpm -Uvh *</Literal></Quote>), of als je daar de voorkeur
aangeeft, ze &eacute;&eacute;n voor &eacute;&eacute;n upgraden
(dwz. <Quote><Literal>rpm -Uvh te_upgraden_bestand.rpm</Literal></Quote>).
De laatste methode is voor degenen die er zeker van willen zijn dat iedere
update correct en zonder fouten wordt toegepast. :-)
</Para>

<Para>Misschien dat je er nieuwsgierig naar bent of een gegeven package
is ge&iuml;nstalleerd, voordat je het probeert te upgraden.
Of misschien dat je uit wilt zoeken welke versie van een gegeven package
is ge&iuml;nstalleerd. Dit kan allemaal worden gedaan met het
RPM utility; zie de <XRef LinkEnd="using-rpm"> voor details.</Para>

</Sect1>

</Chapter>

<Chapter id="xwindows-configuration"><Title>Configureren van het X Window Systeem</Title>

<Para>Het X Window Systeem, ala <Quote>X</Quote> (bij velen in het algemeen en
onjuist bekend als <Quote>X-Windows</Quote>) is een GUI welke bovenop Linux
is gezeteld. In tegenstelling tot Microsoft Windows, kan het X Window Systeem
er op zeer verschillende manieren uitzien en functioneren. Het kan zeer
primitief maar ook zeer geavanceerd werken, er mooi of lelijk uitzien, zich
zeer mooi en snel &oacute;f log en traag voordoen (waarvan ieder subjectieve
kwaliteiten zijn die zoveel argumenten tussen gebruikers veroorzaken als de
woordenstrijd tussen <Quote>Linux vs. Microsoft NT</Quote> lijkt te
veroorzaken).</Para>

<Para>X op juiste wijze aan het werk krijgen kan zowel eenvoudig zijn als
zo gecompliceerd, dat je je haren wel uit je hoofd kunt trekken!
Het is een algemene klacht van gebruikers voor wie Linux nieuw is,
en ik heb zelf ontelbare keren met de configuratie-instellingen gevochten,
dus ik voel volledig met deze mensen mee. 
Gelukkig wordt een dergelijke configuratie in de nieuwere Linux-distributies
eenvoudiger en meer geautomatiseerd.
In feite is het zo dat als je Red Hat 6.1 gebruikt, je je hierover
waarschijnlijk geen zorgen hoeft te maken.
</Para>

<Para>Alhoewel X in een meerderheid van de gevallen automatisch kan worden
geconfigureerd, zijn er uitzonderingen;
Ik raad je aan uit te zoeken of erachter te komen welk type videokaart
je hebt en de hoeveelheid video RAM dat op je systeem is ge&iuml;nstalleerd,
als ook het type monitor en daarvan de horizontale en verticale synch rates
(deze informatie is meestal beschikbaar op de laatste bladzijden van de
gebruikershandleiding van de monitor of ze zijn op het WWW te vinden).
</Para>

<Sect1 id="xwindows-xconfigurator"><Title>Het X Window Systeem werkend krijgen met de X-Configurator</Title>

<Para>Er zijn twee belangrijkste methoden om X onder de Linux-distributie 
Red Hat werkend te krijgen. De eerste en eenvoudigste methode is door
gebruik te maken van Red Hat's eigen
``<Literal>Xconfigurator</Literal>'' utility. Het utility probeert je
hardware te detecteren en installeert de van toepassing zijnde X-software
met de juiste configuratie-instellingen.
</Para>

<Para>Als het je na het uitproberen van diverse instellingen met 
Xconfigurator nog steeds niet lukt, zou het kunnen dat je meer succes hebt
met het utility ``<Literal>xf86config</Literal>''. Alhoewel het zeker niet
zo gebruikersvriendelijk of aantrekkelijk is als Xconfigurator, geeft het je
wat preciezere controle bij het configuratieproces.
</Para>

<Para>Als je uiteindelijk <Emphasis>nog steeds</Emphasis> geen geluk hebt,
moet je je mogelijk wenden tot het met de hand wijzigen van het bestand
``<Literal><Filename>/etc/X11/XF86Config</Filename></Literal>''
en diverse instellingen fijnafstemmen. Als dit het geval is, kan het zijn
dat je hulp nodig hebt van de Linux-gemeenschap
(zie de <XRef LinkEnd="where-to-turn"> voor details).
Echter ontspan -- in een meerderheid van de gevallen verricht de
Xconfigurator een uitstekende taak!
</Para>

<Para>Nadat je X juist werkend hebt gekregen, kan het zijn dat je wat
teleurgesteld bent over het gebrek aan rijke kleuren.
Dit komt omdat X gebruik maakt van een standaardkleurdiepte van 8-bit per pixel
(``<Emphasis>bpp</Emphasis>''). Je kunt echter hogere kleurdiepten gebruiken,
in de veronderstelling dat je videohardware dit ondersteunt.
</Para>

<Para>De diverse kleurdiepten worden opgesomd in het bestand
``<Literal><Filename>/etc/X11/XF86Config</Filename></Literal>'', en dit ziet
er ongeveer zo uit:
</Para>

<ProgramListing>
    Subsection "Display"
        Depth       24
        Modes       "800x600" "1024x768"
        ViewPort    0 0
        Virtual     1024 768
    EndSubsection
</ProgramListing>

<Para>De sectie hierboven toont de mogelijke resoluties die beschikbaar
zijn wanneer gebruik wordt gemaakt van de 24-bit kleurdiepte
(800x600 en 1024x768, zoals opgesomd in de <Quote>Modes</Quote> regel); 
er kan <Quote>tijdens het werken</Quote> tussen deze resoluties worden
geschakeld met de
<Literal>&lt;<KeyCap>Alt</KeyCap>&gt;&lt;<KeyCap>+</KeyCap>&gt;</Literal>
en <Literal>&lt;<KeyCap>Alt</KeyCap>&gt;&lt;<KeyCap>-</KeyCap>&gt;</Literal>
toetsen.</Para>

<Tip><Para>Tip: Standaard maakt X bij het opstarten gebruik van de laagste
resolutie. Als je dit gedrag net zo min prettig vindt als ik, wijzig je
gewoon het bestand ``<Literal><Filename>/etc/X11/XF86Config</Filename></Literal>'' en verwissel je de resoluties (dwz. <Quote>1024x768</Quote> <Quote>800x600</Quote>).</Para></Tip>

<Para>Wanneer je met de instelling klaar bent, kun je iedere kleurdiepte
handmatig testen door te typen ``<Literal>startx -- -bpp 24</Literal>''
(voor de 24-bits diepte) en om er zeker van te zijn dat X goed werkt als je
gebruik maakt van de gewenste kleurdiepte).
</Para>

<Para>Als het je is gelukt een hogere kleurdiepte met succes te gebruiken
en het als standaardwaarde in wilt stellen, zal je als volgt een bestand
genaamd ``<Literal><Filename>/etc/X11/xinit/xserverrc</Filename></Literal>'' 
aan moeten maken:</Para>

<ProgramListing>
exec X :0 -bpp 24
</ProgramListing>

<Para>De wijziging hierboven zal X toestaan 24 bits per pixel te gebruiken
(als je hier problemen mee ervaart, probeer in plaats daarvan dan
16 of 32).</Para>

<Para>In de veronderstelling dat je X juist hebt geconfigureerd, is het
starten ervan eenvoudig een kwestie van als gebruiker 
``<Literal>startx</Literal>'' in te tikken. De X GUI zal worden opgestart
en nadat je je sessie hebt be&euml;indigd en X hebt verlaten, zal je naar
de reguliere Linux-console terugkeren.
</Para>

<Para>X kan naar keuze tijdens de systeemstart worden opgestart, en
<Emphasis>altijd</Emphasis> draaien (zie de <XRef LinkEnd="xwindows-xdm"> voor
details over hoe je dit kunt bewerkstelligen). Dit kan handig zijn voor die
gebruikers die het niet prettig vinden tegen een <Quote>saai</Quote> zwart
&amp; wit console aan te kijken, of voor degenen die zoveel mogelijk wensen
te voorkomen met commandoregel-shells van doen te hebben.
</Para>

</Sect1>

<Sect1 id="xwindows-xdm"><Title>De X Desktop Manager Gebruiken</Title>

<Para>Als je dat wenst, kun je de X Desktop Manager 
(``<Literal>xdm</Literal>'') gebruiken om het X Window Systeem automatisch
bij de systeemstart op te starten. Dit geeft je de mogelijkheid je Linux
systeem altijd onder X te draaien
(alhoewel je van de GUI naar de reguliere consoles over kunt schakelen met
<Literal>&lt;<KeyCap>Ctrl</KeyCap>&gt;-&lt;<KeyCap>Alt</KeyCap>&gt;-&lt;<KeyCap>F1</KeyCap>&gt;</Literal>, en dan zonodig weer naar de GUI terug kunt gaan met
<Literal>&lt;<KeyCap>Alt</KeyCap>&gt;-&lt;<KeyCap>F7</KeyCap>&gt;</Literal>).
Dit is een prettige manier om in een aantrekkelijke en vriendelijke
omgeving voor jou en je gebruikers te voorzien, en voorkomt het iedere keer
weer intikken van ``<Literal>startx</Literal>''.</Para>

<Para>Wijzig gewoon het bestand
``<Literal><Filename>/etc/inittab</Filename></Literal>'' om xdm te
gebruiken en verander hierin de regel met
<Quote><Literal>id:3:initdefault:</Literal></Quote>
door het volgende:</Para>

<ProgramListing>
id:5:initdefault:
</ProgramListing>

<Para>Deze wijziging zorgt ervoor dat Linux bij de systeemstart in level 5
opstart; dit run level zal standaard xdm opstarten. 
Misschien dat je ook het bestand
``<Literal><Filename>/etc/inittab</Filename></Literal>'' wilt controleren,
waarschijnlijk ergens onderaan, om er zeker van te zijn dat de volgende
regel aanwezig is:
</Para>

<ProgramListing>
x:5:respawn:/usr/bin/X11/xdm -nodaemon
</ProgramListing>

<Para>Als je xdm hebt geactiveerd en een hogere ``bpp'' waarde wilt gebruiken
dan de standaardwaarde 8 (en je videokaart en monitor ondersteunen dit), dan zal
je het bestand ``<Literal><Filename>/etc/X11/xdm/Xservers</Filename></Literal>''
als volgt aan moeten passen:</Para>

<ProgramListing>
:0 local /usr/X11R6/bin/X -bpp 24
</ProgramListing>

<Para>Deze wijziging zal xdm in 24 bits per pixel opstarten.
</Para>

<Para>Wellicht wil je ook het bestand
``<Literal><Filename>/etc/X11/xdm/Xsetup_0</Filename></Literal>'' wijzigen
en met een ``<Literal>#</Literal>'' teken, een commentaarregel maken van de
regel die begint met ``<Literal>xbanner</Literal>'':</Para>

<ProgramListing>
#/usr/X11R6/bin/xbanner
</ProgramListing>

<Para>Hiermee wordt voorkomen dat het standaard xdm banner scherm
voor een gedeelte van een seconde tussen KDE-sessies wordt getoond.
Esthetisch, ik weet 't, maar...
</Para>

<Tip><Para>Tip: Soms kun je het nodig vinden naar de console terug te
keren (bijvoorbeeld omdat bepaalde spellen onder de console draaien en
niet onder X). Er zijn twee manieren om dit te doen. Druk op
<Literal>&lt;<KeyCap>Alt</KeyCap>&gt;&lt;<KeyCap>F1</KeyCap>&gt;</Literal>,
om tijdelijk van X naar de console over te schakelen en om weer naar X
terug te gaan, druk je op 
<Literal>&lt;<KeyCap>Alt</KeyCap>&gt;&lt;<KeyCap>F7</KeyCap>&gt;</Literal>.  
Of, als je X helemaal wilt be&euml;indigen (om je beschikbare geheugen
vrij te geven) kun je als <Quote>root</Quote> typen 
``<Literal>/sbin/telinit 3</Literal>'' om naar een ander run-level van het
systeem over te schakelen; dit vertelt XDM dat het moet stoppen.
Om terug te schakelen, typ je ``<Literal>/sbin/telinit 5</Literal>''.
</Para></Tip>

</Sect1>

<Sect1 id="xwindows-fonts"><Title>Verbeteren van de Font-weergave Onder X
</Title>

<Para>Eerlijk gezegd heeft X nooit bekend gestaan om zijn speciale 
aantrekkelijke fonts. In feite doen veel mensen er afstand van met het
denkbeeld dat lelijke, beroerde fonts een ongelukkig feit van het werken
onder X is.
</Para>

<Para>Gelukkig <Emphasis>is</Emphasis> het mogelijk het voorkomen van en
het verhogen van het aantal te gebruiken fonts onder X, drastisch te
verbeteren. Als je in het bezit bent van een kopie van Windows, kun je
de TrueType fonts zelfs vanaf dat platform kopi&euml;ren en ze ook onder
X gebruiken! Dergelijke ondersteuning van fonts wordt bewerkstelligd door het
gebruik van een fontserver zoals ``xfstt'' of ``xfs''.
</Para>

<Para>Red Hat 6.1 bevat nu ingebouwde ondersteuning voor ``xfs'' en voorziet
als resultaat in een aantrekkelijke ondersteuning voor fonts.
Als je daarom deze versie van Linux gebruikt, kan het zijn dat je tevreden
bent met de wijze zoals het is. Er zijn echter nog dingen die je kunt doen om
het nog wat verder te verbeteren, en bovendien gebruik te maken van je eigen
TrueType fonts als je die beschikbaar hebt.
</Para>

<Para>Maak voor het activeren van de ondersteuning voor TrueType fonts een
directory aan (bv. 
``<Literal><Filename>/usr/local/share/ttfonts</Filename></Literal>'') en
kopieer &eacute;&eacute;n of alle fontbestanden vanuit je Windowssysteem
(waar ze zijn te vinden in de directory 
``<Literal><Filename>c:\windows\fonts</Filename></Literal>'') naar de nieuwe
 directory.</Para>

<Tip><Para>Tip: Als je geen TrueType fonts beschikbaar hebt, kun je
ze direct downloaden vanaf Microsoft op <ULink
URL="http://www.microsoft.com/typography/fontpack/default.htm">
http://www.microsoft.com/typography/fontpack/default.htm</ULink>.
</Para></Tip>

<Para>Typ vanuit je nieuwe ``ttfonts'' directory (als root) het volgende
in om gebruik te maken van de fonts:
</Para>

<Screen>
ttmkfdir -o fonts.scale
mkfontdir
</Screen>

<Para>Wijzig vervolgens het bestand
``<Literal><Filename>/etc/X11/fs/config</Filename></Literal>'', 
voeg je nieuwe directory met fonts toe aan de lijst met bestaande directory's.
Wijzig ook de <Literal>default-point-size</Literal> van 120 naar 140, 
waarmee je grotere, betere leesbare fonts zal krijgen.
</Para>

<Para>Sluit vervolgens X af (als je dit nog niet had gedaan) en start
de xfs server als volgt opnieuw op:
</Para>

<Screen>
/etc/rc.d/init.d/xfs restart
</Screen>

<Para>Herstart als laatste X en geniet van je prachtige nieuwe fonts!</Para>

<Para>Voor meer gedetailleerde informatie over het verbeteren van font
support onder X, is er een uitstekende bron genaamd de
``<Emphasis>XFree86 Font Deuglification Mini HOW-TO</Emphasis>'' op
<ULink URL="http://www.frii.com/~meldroc/Font-Deuglification.html">
http://www.frii.com/~meldroc/Font-Deuglification.html</ULink>.</Para>

</Sect1>

<Sect1 id="xwindows-winmgr"><Title>Uitkiezen van een Window Manager voor X</Title>

<Para>Nu zou je een beslissing moeten nemen over een window manager.
Het X Window Systeem is gewoon de omgeving die het toestaat dat er
grafische afbeeldingen op de hardware van je systeem kunnen worden
weergegeven; de window manager is verantwoordelijk voor de weergave van X en
hoe de wisselwerking tussen jou en je applicaties plaatsvindt.
</Para>

<Para>De Red Hat Linux-distributie bevat verscheidene window managers,
waaronder fvwm, olvm, twm, AfterStep, en anderen. De standaard window manager
die je waarschijnlijk te zien krijgt als je X voor de eerste keer opstart, is
fvwm95, een op Win95 lijkende omgeving.</Para>

<Para>Persoonlijk merk ik verschillen tussen dat wat gebruikelijk wordt 
aangeboden en mijn eigen smaak, en ik raad je aan gebruik te maken van
&oacute;f GNOME &oacute;f KDE (of beiden!), waarvan de installatie in de
volgende twee secties wordt behandeld.
</Para>

</Sect1>

<Sect1 id="using-gnome"><Title>GNOME Installatie en Configuratie</Title>

<Para>De GNU Network Object Model Environment (GNOME) is een window
omgeving die je X window omgeving uitbreidt. Het bevat volledige mogelijkheden,
waaronder een grote selectie applicaties die van nut kunnen zijn.
Op moment van dit schrijven heeft GNOME echter nog een paar kleine bugs,
wat betekent dat het kan zijn dat je zo nu en dan zit opgescheept met
een dolende werking. Het is echter tamelijk stabiel en beslist bruikbaar!
</Para>

<Para>Als je Red Hat 6.1 gebruikt, wordt de laatste GNOME-versie (tenminste,
de laatste op moment van dit schrijven!) met de distributie geleverd.
Anders zal je de laatste RPM-distributie van het package
moeten downloaden. Op moment van dit schrijven, zijn de RPM-bestanden voor
Red Hat 6.0 i386 systemen te vinden op
<ULink URL="ftp://ftp.gnome.org/pub/GNOME/RHAD/redhat-6.0/i386/">
ftp://ftp.gnome.org/pub/GNOME/RHAD/redhat-6.0/i386/</ULink> (of vanaf een
mirror-site).</Para>

<Note><Para>Noot: Als je Red Hat 6.0 gebruikt, zou je je er bewust van 
moeten zijn dat het met een GNOME-versie met tamelijk veel fouten werd
geleverd. Je zou de laatste RPM's vanaf de FTP-site zoals hierboven
beschreven, moeten downloaden.
</Para></Note>

<Para>Nadat je alle benodigde bestanden hebt, kan het GNOME-package met
een eenvoudig commando worden ge&iuml;nstalleerd, typ als
<Quote>root</Quote>:</Para>

<Screen>
rpm -Uvh gtk*.rpm *.rpm
</Screen>

<Para>(Het commando hierboven verzekert je ervan dat de GTK library's als
eerste worden ge&iuml;nstalleerd, om fouten over afhankelijkheden te
voorkomen).
</Para>

<Para>In tegenstelling tot wat mensen geloven, is GNOME in werkelijkheid
<Emphasis>geen</Emphasis> Window manager, maar in plaats daarvan bevindt het
zich bovenop je favoriete Window manager, en voegt het er aanvullende 
functionaliteit aan toe. Daarom zou je zodra je
GNOME hebt ge&iuml;nstalleerd, een beslissing moeten nemen over welke
window manager je wenst te gebruiken en een bestand
``<Literal><Filename>.xinitrc</Filename></Literal>'' in je directory
aan moeten maken, welke de van toepassing zijnde window manager laadt en
GNOME opstart. Het bestand zou er ongeveer zo uit moeten zien:</Para>

<ProgramListing>
afterstep &
exec gnome-session
</ProgramListing>

<Para>Hiermee zal AfterStep voor de window manager worden geladen en 
vervolgens zal GNOME daar bovenop worden gedraaid.
</Para>

<Para>Meer informatie over de GNU Network Object Model Environment is te
vinden op de webpage van GNOME op <ULink URL="http://www.gnome.org/">
http://www.gnome.org/</ULink>. Vergeet de schermafbeeldingen te vinden op,
<ULink URL="http://www.gnome.org/screenshots/">
http://www.gnome.org/screenshots/</ULink> niet te bekijken.</Para>

</Sect1>

<Sect1 id="using-kde"><Title>KDE Installatie en Configuratie</Title>

<Para>Het K Desktop Package (KDE) is een andere populaire window manager 
dat tijdens dit schrijven wat volwassener is dan GNOME.
Het schijnt echter wat meer geheugenbronnen te vereisen dan GNOME, 
dus neem de hoeveelheid RAM op je systeem in overweging (als je
minder hebt dan 64 Mb RAM en 128 Mb swap, ben je wellicht beter af met
GNOME). 
</Para>

<Para>De eerste stap voor het installeren van KDE is het downloaden van
de laatste RPM-distributie van het package.
Zoek hiervoor naar een FTP-mirror op <ULink
URL="http://www.kde.org/mirrors.html">
http://www.kde.org/mirrors.html</ULink>. Probeer een mirror uit te kiezen
die zich dichtbij je geografische lokatie bevindt, en wees er zeker van dat
je er &eacute;&eacute;n uitkiest die vaak wordt bijgewerkt (dit kan worden
vastgesteld door de lijst met mirrors te bekijken).
</Para>

<Para>Wanneer je een geschikte mirror hebt gevonden, download je alle
RPM-bestanden die van toepassing zijn op je Red Hat versie en platform.
Als je bijvoorbeeld Red Hat 5.2 (of hoger) gebruikt op een Intel-platform,
zal je het package waarschijnlijk vanaf de FTP-mirror vanuit de directory 
``<Literal><Filename>/pub/mirrors/kde/stable/latest/distribution/rpm/RedHat-5.2/i386/</Filename></Literal>'' willen downloaden.
</Para>

<Para>Als je alle benodigde bestanden hebt, kan het KDE package als
<Quote>root</Quote> met de volgende simpele commando's worden
ge&iuml;nstalleerd (zorg dat je je in de directory bevindt met de KDE
rpm-bestanden):
</Para>

<Screen>
rpm -Uvh qt*.rpm
install-kde-1.1-base
</Screen>

<Para>Deze commando's zullen als eerste de Qt library's installeren, en
vervolgens het KDE base package. Zodra dit is gebeurd, zou je uit moeten
loggen (of als je met ``su'' als root bent ingelogd, typ je gewoon exit en
nogmaals ``su''), zodat het path juist wordt ingesteld, en vervolgens tik
je in: </Para>

<Screen>
install-kde-1.1-apps
</Screen>

<Para>Met dit commando zullen de applicatie-programma's worden ge&iuml;nstalleerd.</Para>

<Para>Deze installatieprocedure wordt in meer detail besproken in het
bestand ``<Literal><Filename>readme-redhat-rpms.txt</Filename></Literal>'' dat
met de KDE-bestanden die je downloadde zou moeten zijn meegeleverd.</Para>

<Para>Als alles goed gaat en KDE zonder foutmeldingen is ge&iuml;nstalleerd,
kun je als je dat wilt, KDE als de standaard window manager voor al je
gebruikers configureren (degene die ze onmiddellijk zullen zien na het
intikken van ``<Literal>startx</Literal>''), door wederom als 
<Quote>root</Quote> het volgende in te tikken:</Para>

<Screen>
/opt/kde/bin/usekde <Emphasis>userid</Emphasis>
</Screen>

<Para>(Vervang <Emphasis>userid</Emphasis> door een echt gebruikers-id!)
</Para>

<Para>Meer informatie over de K Desktop Environment is te vinden op de
webpage van KDE op <ULink URL="http://www.kde.org/">http://www.kde.org/</ULink>.
Vergeet de schermafbeeldingen, te vinden op
<ULink URL="http://www.kde.org/kde2shots.html">
http://www.kde.org/kde2shots.html</ULink> niet te bekijken.</Para>

</Sect1>

</Chapter>
 
<Chapter id="administrative-issues"><Title>Algemene Systeembeheer Zaken</Title>

<Sect1 id="root-account"><Title>Root Account</Title>

<Para>Het <Quote>root</Quote> account is het meest bevoorrechte account op
een Unix-systeem. Dit account geeft je de mogelijkheid alle facetten van
systeembeheer uit te voeren, waaronder het toevoegen van accounts, het wijzigen
van wachtwoorden voor gebruikers, bestuderen van logbestanden, installeren van
software, enz.
</Para>

<Para>Bij het gebruiken van dit account is het van groot belang zo
voorzichtig mogelijk te zijn.
Het <Quote>root</Quote> account heeft geen beveiligingsbeperkingen
opgelegd gekregen. Dit betekent dat het eenvoudig is administratieve
verplichtingen zonder gedoe uit te voeren.
Het systeem verkeert echter in de veronderstelling dat je weet wat je
doet en het zal exact datgene doen waar je om verzoekt -- er worden
geen vragen gesteld. Daarom is het nogal makkelijk door een onjuist
ingetikt commando, kritieke systeembestanden te verwijderen.
</Para>

<Para>Als je je als <Quote>root</Quote> hebt ge&iuml;ntroduceerd of
je als <Quote>root</Quote> voordoet, toont de shell-prompt als het laatste
teken een '#' (als je gebruik maakt van bash). Dit dient als een waarschuwing
voor de absolute kracht van dit account.
</Para>

<Para>De stelregel is nooit als <Quote>root</Quote> in te loggen, tenzij
het absoluut noodzakelijk is. Typ als <Quote>root</Quote> de commando's
met aandacht in en controleer ze nog eens voordat je op de return drukt.
Log zo snel mogelijk uit van het <Quote>root</Quote>-account nadat je
de taak waarvoor je hebt ingelogd hebt bewerkstelligd.
Tenslotte, (dit geldt voor ieder account maar is vooral voor dit
account belangrijk), houd het wachtwoord veilig!
</Para>

</Sect1>

<Sect1 id="creating-user-accounts"><Title>Gebruikersaccounts Aanmaken</Title>

<Warning><Para>(WAARSCHUWING: GECENTREERD RONDOM SLACKWARE. MOET WORDEN BIJGEWERKT VOOR RED HAT)</Para></Warning>

<Para>In deze sectie wordt verondersteld dat je de Shadow passwd suite
op je Linux-systeem gebruikt. Als dit niet zo is, zou je het in overweging
moeten nemen het wel te gebruiken, aangezien het helpt de beveiliging
wat aan te scherpen. De Shadow suite is tamelijk eenvoudig
te installeren en het zal je niet-shadow password bestand automatisch
converteren naar het nieuwe shadow-formaat.
</Para>

<Para>Er zijn twee stappen benodigd voor het aanmaken van een nieuw
gebruikersaccount. De eerste bestaat uit het daadwerkelijk aanmaken van
de account zelf, het tweede bestaat uit het voorzien in een alias naar
het e-mail adres (op m'n werk volgen we de conventie
<Quote>Voornaam.Achternaam@onze.domein.naam</Quote>).</Para>

<Para>Neem een beslissing over welke gebruikersnaam je aan de gebruiker
toekent, om de account aan te maken.
De gebruikersnaam is ten hoogste 8 tekens lang en waar mogelijk zou je
voor hun achternaam moeten kiezen of de achternaam en de eerste initiaal
als een gebruikersaccount reeds bestaat (het adduser script detecteert
dit en zal beletten dat je dubbele account-namen toevoegt).
</Para>

<Para>Er zal je dan worden gevraagd andere informatie in te voeren:
volledige naam van de gebruker, gebruikersgroep (meestal de standaardwaarde),
een gebruikersid # (wordt automatisch toegekend), de homedirectory (wordt
automatisch toegekend), een gebruikers-shell, wat waarden voor het verlopen
van het wachtwoord, en als laatste het gewenste wachtwoord (wat niet naar
het scherm teruggekaatst zal worden; je zou er voor moeten zorgen dat de
gebruiker om beveiligingsredenen een wachtwoord kan kiezen tussen de 6 en 8
tekens).
</Para>

<Para>Merk alsjeblieft op dat <Emphasis>alles</Emphasis>, behalve de
volledige naam van de gebruiker, in kleine letters ingevuld zal moeten
worden. De naam van de gebruiker en het wachtwoord kunnen 
in een <Quote>prettig formaat</Quote> (bv. Joe Smith) worden ingevoerd.
Informeer je gebruiker(s) dat ze gezien de hoofdlettergevoeligheid bij het
invoeren van hun gebruikersnaam en wachtwoord identieke letters gebruiken.
</Para>

<Para>Hierna volgt een voorbeeldsessie waarin we een gebruiker met de
naam Joe Smith toe zullen voegen:
</Para>

<Screen>
<Prompt>mail:~#</Prompt> <UserInput>/sbin/adduser</UserInput>
<Prompt>User to add (^C to quit):</Prompt> <UserInput>smith</UserInput>
That name is in use, choose another.
<Prompt>User to add (^C to quit):</Prompt> <UserInput>smithj</UserInput>
Editing information for new user [smithj]
<Prompt>Full Name:</Prompt> <UserInput>Joe Smith</UserInput>
<Prompt>GID [100]:</Prompt> <UserInput> </UserInput>
Checking for an available UID after 500
First unused uid is 859
<Prompt>UID [859]:</Prompt> <UserInput> </UserInput>
<Prompt>Home Directory [/home/smithj]:</Prompt> <UserInput> </UserInput>
<Prompt>Shell [/bin/bash]:</Prompt> <UserInput> </UserInput>
<Prompt>Min. Password Change Days [0]:</Prompt> <UserInput> </UserInput>
<Prompt>Max. Password Change Days [30]:</Prompt> <UserInput>90</UserInput>
<Prompt>Password Warning Days [15]:</Prompt> <UserInput> </UserInput>
<Prompt>Days after Password Expiry for Account Locking [10]:</Prompt> <UserInput>0</UserInput>
<Prompt>Password [smithj]:</</Prompt> <UserInput>FL1539</UserInput>
<Prompt>Retype Password:</</Prompt> <UserInput>Fl1539</UserInput>
Sorry, they do not match.
<Prompt>Password:</</Prompt>> <UserInput>FL1539</UserInput>
<Prompt>Retype Password:</</Prompt> <UserInput>FL1539</UserInput>

Information for new user [smithj]:
Name: Joe Smith
Home directory: /home/smithj
Shell: /bin/bash
Password: &lt;hidden&gt;
Uid: 859        Gid: 100
Min pass: 0     maX pass: 99999
Warn pass: 7    Lock account: 0
public home Directory: no
Typ 'y' als dit juist is, 'q' om het programma te annuleren en verlaten,
<Prompt>of de letter van het item dat je wenst te veranderen:</Prompt> <UserInput>Y</UserInput>
</Screen>

<Para>De volgende stap bestaat uit het aanmaken van de alias voor
het e-mail account van de gebruiker.
Dit geeft mensen de keuze hun accountnaam voor hun e-mail adres 
&oacute;f hun volledige naam (Eerste.Laaste combinatie) te gebruiken om het voor
de buitenwereld te <Quote>vereenvoudigen</Quote> hun e-mail adres te raden
wanneer er voor de eerste keer wordt geprobeerd contact met ze te maken.
</Para>

<Para>Wijzig als volgt het bestand
``<Literal><Filename>/etc/aliases</Filename></Literal>'' 
om de e-mail alias toe te voegen:</Para>

<Para><Prompt>mail#</Prompt> <UserInput>pico -w /etc/aliases</UserInput></Para>

<Para>Voeg de nieuwe alias onderaan het bestand toe. Het formaat voor een
alias is:
</Para>

<Screen>
Voornaam.Achternaam:gebruikersnaam
</Screen>

<Para>Je zou de gebruiker moeten vragen naar zijn voorkeur (bv.
Joseph.Smith of Joe.Smith). Voor onze nieuwe gebruiker Joe Smith, 
zou het er als volgt uitzien:</Para>

<Screen>
Joe.Smith:smith
</Screen>

<Para>Wanneer je klaar bent met het toevoegen van de alias, druk je op
<Literal>&lt;<KeyCap>Ctrl</KeyCap>&gt;-&lt;<KeyCap>X</KeyCap>&gt;</Literal>
en sla je het bestand op. Typ vervolgens ``<Literal>newaliases</Literal>'' 
om de database met aliassen bij te werken.
</Para>

<Para>Tot op dit punt is de gebruikersaccount aangemaakt en klaar voor
gebruik. Je doet er goed aan de gebruiker er aan te herinneren dat zijn
gebruikersnaam en wachtwoord in kleine letters moeten worden ingevoerd, en
wat het e-mail adres is
(bv. ``<Emphasis>Joe.Smith@mail.mijndomein.naam</Emphasis>'').</Para>

</Sect1>

<Sect1 id="changing-user-passwords"><Title>Gebruikerswachtwoorden Wijzigen</Title>

<Para>Om het wachtwoord namens een gebruiker te wijzigen, log je eerst in
of gebruik je het <Quote>su</Quote> commando voor het 
<Quote>root</Quote>-account. Vervolgens typ je
``<Literal>passwd user</Literal>'' (waar user staat voor de naam van de
gebruiker wiens wachtwoord je gaat wijzigen). Het systeem zal je
dan vragen een wachtwoord in te voeren. Wachtwoorden worden niet naar het
scherm teruggekaatst wanneer je ze invoert.
</Para>

<Para>Je kunt ook je eigen wachtwoord wijzigen, door het intikken van
``<Literal>passwd</Literal>'' (zonder het specificeren van een gebruikersnaam).
Er zal je ter verificatie worden gevraagd naar je eigen wachtwoord,
en vervolgens kun je een nieuw wachtwoord invoeren.
</Para>

</Sect1>

<Sect1 id="disabling-user-accounts"><Title>Gebruikersaccounts deactiveren</Title>

<Para>Wijzig als root het bestand
 ``<Literal><Filename>/etc/shadow</Filename></Literal>'' om een
gebruikersaccount te deactiveren (ervan uitgaand dat je gebruik maakt van
shadow passwords; als dit niet zo is, wijzig je in plaats daarvan het
bestand ``<Literal><Filename>/etc/passwd</Filename></Literal>''),
en vervang je het wachtwoord (die in een versleutelde vorm is opgeslagen)
door een ``*'' asterisk. Alle Unix-wachtwoorden, ongeacht de lengte (tot
aan een maximum van 8 tekens), worden als versleutelde strings van
13 tekens in het wachtwoordbestand opgeslagen.
Daarom is het door het vervangen van het wachtwoord door een
enkel ``*'' teken, onmogelijk voor een gebruiker om in te loggen.
</Para>

<Note><Para>Noot: Deze methode vereist dat je een nieuw wachtwoord aan de
gebruiker toekent als je de account weer activeert, aangezien het
versleutelde wachtwoordveld zal zijn vervangen. &Eacute;&eacute;n 
tussen systeembeheerders populair lijkende oplossing hiervoor is
gewoon het ``*'' teken voor het versleutelde wachtwoord te plaatsen om
het account te deactiveren, en de asterisk gewoon weer te verwijderen om
het te activeren.
</Para></Note>

<Para>Zie de 
<XRef LinkEnd="shadow-file-formats"> voor meer informatie over de
``<Literal><Filename>/etc/passwd</Filename></Literal>'' en
``<Literal><Filename>/etc/shadow</Filename></Literal>'' bestanden.
</Para>

</Sect1>

<Sect1 id="removing-user-accounts"><Title>Gebruikersaccounts Verwijderen</Title>

<Para>Bij gelegenheid, wil je wellicht een gebruiker de toegang tot je server
geheel ontzeggen.
</Para>

<Para>Als Red Hat gebruiker, is de eenvoudigste manier om een ongewenst
gebruikersaccount te verwijderen met het commando
``<Literal>userdel</Literal>'', dat als ``root'' moet worden ingetypt.
Een voorbeeld:</Para>

<Screen>
/usr/sbin/userdel baduser
</Screen>

<Para>Met het commando hierboven zal de gebruikersnaam volledig overeenkomend
met ``<Emphasis>baduser</Emphasis> vanuit het bestand
``<Literal><Filename>/etc/passwd</Filename></Literal>'' worden verwijderd,
en als je gebruik maakt van het Shadow password formaat (wat zo zou moeten
zijn; zie de <XRef LinkEnd="shadow-file-formats"> voor details), vanuit
``<Literal><Filename>/etc/shadow</Filename></Literal>''.</Para>

<Note><Para>Noot: Het bestand ``<Literal><Filename>/etc/group</Filename>
</Literal>'' wordt <Emphasis>niet</Emphasis> aangepast, ter voorkoming
van de verwijdering van een groep waar ook andere gebruikers toe kunnen
behoren. Dit is niet zo'n probleem, maar als dit je hindert, kun je het
bestand wijzigen en de regel met de hand verwijderen.
</Para></Note>

<Para>Voeg de optie ``<Literal>-r</Literal>'' toe aan het commando
``userdel'', als je tevens de homedirectory van de gebruiker wilt verwijderen.
Bijvoorbeeld:</Para>

<Screen>
/usr/sbin/userdel -r baduser
</Screen>

<Para>Ik raad je aan een account niet onmiddellijk te verwijderen, maar
het eerst gewoon te <Emphasis>deactiveren</Emphasis>, vooral als je met
een bedrijfsserver met veel gebruikers werkt.
Per slot van rekening, kan het zijn dat de eerder genoemde gebruiker op
een dag het gebruik van zijn of haar account weer nodig heeft, of om 
&eacute;&eacute;n of meerdere bestanden vraagt die in zijn/haar homedirectory
waren opgeslagen. Of misschien dat een 
<Emphasis>nieuwe</Emphasis> gebruiker (zoals bij vervanging van een
werknemer) toegang nodig heeft tot de bestanden van de eerdere gebruiker.
Zorg er in ieder geval voor dat je backups hebt van de homedirectory van
de eerdere gebruiker, <Quote>voor het geval dat</Quote>. Zie de
<XRef LinkEnd="disabling-user-accounts"> voor details over het deactiveren
van een account, en <XRef LinkEnd="backup-and-restore"> voor details over
het maken van backups.</Para>

</Sect1>

<Sect1 id="shadow-file-formats"><Title>Linux Password &amp; Shadow Bestandsformaten</Title>

<Para>Tradionele Unix-systemen houden informatie bij over een 
gebruikersaccount, waaronder de in &eacute;&eacute;n richting versleutelde
wachtwoorden, in een tekstbestand genaamd ``<Literal><Filename>/etc/passwd</Filename></Literal>''. Aangezien dit bestand door veel tools wordt gebruikt
(zoals ``ls'') om de eigenaar van bestanden te tonen, enz. 
door een match tussen het gebruikersid # en de gebruikersnaam, moet het
bestand voor iedereen leesbaar zijn. 
Dit heeft als consequentie dat het een beveiligingsrisico met zich
meebrengt.
</Para>

<Para>Een andere methode om account-informatie op te slaan, &eacute;&eacute;n
die ik altijd gebruik, is in het shadow passwd formaat. Net als bij de 
traditionele methode wordt de account-informatie in het bestand /etc/passwd
in een compatibel formaat opgeslagen. Het wachtwoord wordt echter als een
enkel <Quote>x</Quote>-teken opgeslagen (dwz. niet echt in dit bestand
opgeslagen). In een tweede bestand, genaamd
``<Literal><Filename>/etc/shadow</Filename></Literal>'', staat een
versleuteld wachtwoord als ook nog wat andere informatie zoals waarden
wanneer de account of het wachtwoord verloopt, enz.
Het bestand /etc/shadow is alleen leesbaar voor het root-account en is 
daarom een minder beveiligingsrisico.
</Para>

<Para>Terwijl een aantal Linux-distributies je dwingen de Shadow Password
Suite te installeren om gebruik te kunnen maken van het shadow-formaat,
maakt Red Hat het je gemakkelijk.
Om tussen de twee formaten te schakelen, typ je (als root):
</Para>

<Screen>
  /usr/sbin/pwconv	Converteren naar het shadow formaat
  /usr/sbin/pwunconv	Weer terugzetten in het tradionele formaat
</Screen>

<Para>Met shadow passwords, staat in het bestand
``<Literal><Filename>/etc/passwd</Filename></Literal>'' de account-informatie
en het ziet er ongeveer zo uit:</Para>

<ProgramListing>
smithj:x:561:561:Joe Smith:/home/smithj:/bin/bash
</ProgramListing>

<Para>De velden in een passwd record worden van elkaar gescheiden door een
dubbele punt, <Quote>:</Quote>, en dit zijn:
</Para>

<ItemizedList Mark="Bullet" Spacing="Compact">

<ListItem><Para>Gebruikersnaam, tot aan 8 tekens. Hoofdlettergevoelig,
meestal geheel in kleine letters
</Para></ListItem>

<ListItem><Para>Een <Quote>x</Quote> in het wachtwoordveld. Wachtwoorden
zijn opgeslagen in het bestand ``<Literal><Filename>/etc/shadow</Filename>
</Literal>''.</Para></ListItem>

<ListItem><Para>Numeriek gebruikers-id. Deze wordt toegekend door het
``<Literal>adduser</Literal>'' script.  Unix gebruikt dit veld, plus het
volgende groepsveld, om te achterhalen welke bestanden aan de gebruiker
toebehoren.
</Para></ListItem>

<ListItem><Para>Numeriek groeps-id. Red Hat maakt op een tamelijk
unieke wijze gebruik van groeps-id's voor verbeterde bestandsbeveiliging.
Meestal komt de groeps-id overeen met de gebruikers-id.
</Para></ListItem>

<ListItem><Para>Volledige naam van de gebruiker. Ik weet niet zeker wat
de maximumlengte van dit veld is, maar probeer het redelijk te houden
(minder dan 30 tekens).
</Para></ListItem>

<ListItem><Para>Homedirectory van de gebruiker. Meestal /home/username (bv.
/home/smithj). Alle persoonlijke bestanden, webpage's, mail forwarding,
enz. van de gebruiker zullen hier worden bewaard.
</Para></ListItem>

<ListItem><Para><Quote>shell account</Quote> van de gebruiker. Vaak
ingesteld op ``<Literal><Filename>/bin/bash</Filename></Literal>'' 
om toegang tot de bash-shell te verschaffen (mijn persoonlijke favoriete
shell).</Para></ListItem>
</ItemizedList>

<Para>Misschien dat je niet in shell-accounts voor je gebruikers wilt
voorzien. Je zou bijvoorbeeld een script-bestand genaamd
``<Literal><Filename>/bin/sorrysh</Filename></Literal>'' aan kunnen maken,
dat &eacute;&eacute;n of andere foutmelding weergeeft en de gebruiker uitlogt,
en je zou dit script dan als de standaardshell in kunnen stellen.
</Para>

<Note><Para>Noot: Als de account moet zijn worden voorzien van 
<Quote>FTP</Quote>-transport om webpages bij te werken, enz.,
dan zal de shell-account moeten worden ingesteld
op ``<Literal><Filename>/bin/bash</Filename></Literal>'' -- en vervolgens
zullen speciale permissies moeten worden ingesteld in de homedirectory van
de gebruiker om shell-logins te voorkomen.
Zie de <XRef LinkEnd="web-server-administration"> voor details.
</Para></Note>

<Para>Het ``<Literal><Filename>/etc/shadow</Filename></Literal>'' bestand
bevat informatie over het verlopen van het wachtwoord en account voor
gebruikers en het ziet er ongeveer zo uit:
</Para>

<ProgramListing>
smithj:Ep6mckrOLChF.:10063:0:99999:7:::
</ProgramListing>

<Para>Net als in het passwd bestand, worden ook alle velden in het shadow
bestand door <Quote>:</Quote> dubbele punten gescheiden, en dit zijn de velden:
</Para>

<ItemizedList Mark="Bullet" Spacing="Compact">
<ListItem><Para>Gebruikersnaam, tot aan 8 tekens. Hoofdlettergevoelig, 
meestal allen kleine letters. Een directe overeenkomst met de gebruikersnaam
in het bestand /etc/passwd.
</Para></ListItem>

<ListItem><Para>Wachtwoord, 13 versleutelde tekens. Een leeg veld (dwz. ::)
geeft aan dat er geen wachtwoord is vereist om in te loggen (dit is
gewoonlijk een slecht plan), en een ``*'' veld (dwz. :*:) geeft aan dat
het account is gedeactiveerd.
</Para></ListItem>

<ListItem><Para>Het aantal dagen (sedert 1 januari, 1970) sinds het wachtwoord
voor het laatst werd gewijzigd.
</Para></ListItem>

<ListItem><Para>Het aantal dagen voordat het wachtwoord mag worden gewijzigd
(0 geeft aan dat het op ieder moment mag worden gewijzigd)</Para></ListItem>

<ListItem><Para>Het aantal dagen nadat het wachtwoord 
<Emphasis>moet</Emphasis> worden gewijzigd (99999 geeft aan dat de
gebruiker zijn of haar wachtwoord vele, vele jaren ongewijzigd mag laten)
</Para></ListItem>

<ListItem><Para>Het aantal dagen dat een gebruiker moet worden gewaarschuwd
dat een wachtwoord is verlopen (7 voor een volledige week)</Para></ListItem>

<ListItem><Para>Het aantal dagen nadat het wachtwoord is verlopen dat het
account wordt gedeactiveerd
</Para></ListItem>

<ListItem><Para>Het aantal dagen sinds Januari 1, 1970 dat een account
werd gedeactiveerd
</Para></ListItem>

<ListItem><Para>Een gereserveerd veld voor mogelijk toekomstig gebruik</Para></ListItem>
</ItemizedList>

</Sect1>

<Sect1 id="system-shutdown-and-restart"><Title>Systeem Afsluiten en Herstarten
</Title>

<Para>Voor het afsluiten van het systeem vanuit een terminalsessie,
log je in of gebruik je <Quote>su</Quote> voor het <Quote>root</Quote>-account. Vervolgens typ je ``<Literal>/sbin/shutdown -r now</Literal>''. Het kan even
duren voor alle processen zijn be&euml;indigd, en vervolgens zal Linux worden
afgesloten. De computer zal zichzelf rebooten. Als je onder de console werkt,
is het indrukken van
<Literal>&lt;<KeyCap>Ctrl</KeyCap>&gt;-&lt;<KeyCap>Alt</KeyCap>&gt;-&lt;<KeyCap>Del</KeyCap>&gt;</Literal> een sneller alternatief voor het afsluiten.
Wees alsjeblieft geduldig aangezien het afsluiten van Linux een paar minuten
kan duren.
</Para>

<Para>Je kunt het systeem ook afsluiten en het een halt toeroepen (dwz,
het zal worden afgesloten zonder dat het 't systeem opnieuw opstart).
Het systeem zal niet beschikbaar zijn totdat je de aan-/uitknop weer hebt
ingedrukt of het met
<Literal>&lt;<KeyCap>Ctrl</KeyCap>&gt;-&lt;<KeyCap>Alt</KeyCap>&gt;-&lt;<KeyCap>Del</KeyCap>&gt;</Literal> hebt gereboot.  
Dit kan handig zijn als je bijvoorbeeld het systeem af moet sluiten en het
naar een andere lokatie moet verplaatsen.
Typ hiervoor ``<Literal>/sbin/shutdown -h now</Literal>'' wanneer je je als
<Quote>root</Quote> hebt aangemeld of via het
<Quote>su</Quote>-commando op het <Quote>root</Quote>-account bent ingelogd.
Linux zal zichzelf afsluiten en vervolgens de melding
<Quote>System halted</Quote> weergeven. Op dit punt kun je de stroom afsluiten.
</Para>

<Para>Het is waarschijnlijk een goed idee alleen het systeem af te sluiten,
wanneer je op de console bent. Alhoewel je op afstand het systeem via een
shell-sessie af kunt sluiten, zal het systeem niet meer beschikbaar zijn
totdat er actie wordt ondernomen op de systeemunit als er iets fout gaat
en het systeem niet juist herstart.
(Ik heb hier echter zelf geen problemen mee ervaren).
</Para>

<Para>Bij de systeemstart, zal Linux automatisch alle benodigde services
waaronder netwerkondersteuning, en Internet-services starten en laden.
</Para>

<Tip><Para>Tip: Als je eventuele online-gebruikers
(online in de betekenis van ingelogd op shell-accounts) wilt waarschuwen, 
kun je het sleutelwoord <Quote>now</Quote> vervangen door een tijdswaarde.
Je kunt ook de waarschuwingsmelding bij het afsluiten aanpassen.
Met ``<Literal>/sbin/shutdown -r +5 Hardware upgrade</Literal>'' zouden
de gebruikers bijvoorbeeld worden gewaarschuwd dat het systeem vanwege de
opgegeven reden af zal worden gesloten. Vervolgens krijgen ze periodieke
waarschuwingen dat ze bestanden zouden moeten sluiten en uit moeten loggen
voordat het grote moment aanbreekt.
</Para></Tip>

</Sect1>

</Chapter>

<Chapter id="custom-config"><Title>Aangepaste Configuratie en Beheer
</Title>

<Para>Voor zowel persoonlijk gebruik als op het werk, lukte het me met
een standaardinstallatie van de Red Hat Linux-distributie van start te
gaan en <Quote>direct</Quote> met weinig tot geen veranderingen aan de
standaard configuratie-instellingen in services te voorzien.
</Para>

<Para>Er waren echter een aantal kleine wijzigingen en extra services
nodig om in alle Internet, file &amp; print services, en andere services
te voorzien, die op mijn werk in gebruik zijn.
De lokale beheerder zou met het volgende rekening moeten houden:</Para>

<ItemizedList Mark="Bullet" Spacing="Normal">
<ListItem><Para>Het bestand
``<Literal><Filename>/etc/rc.d/rc.local</Filename></Literal>'' wordt bij
het starten van het systeem uitgevoerd en hierin staan extra services die
je aan je server toevoegt die tijdens de systeemstart uitgevoerd zouden
moeten worden.
</Para></ListItem>

<ListItem><Para>Kijk in /etc voor alle site-specifieke wijzigingen die
mogelijk nodig kunnen zijn. Dit zouden onder andere kunnen zijn:
</Para>

<ItemizedList Mark="Bullet" Spacing="Compact">
<ListItem><Para>``<Literal><Filename>/etc/inetd.conf</Filename></Literal>''
(verzeker je ervan dat onnodige services, zoals finger, echo, chargen
zijn gedeactiveerd; en tevens dat alle benodigde services zijn toegevoegd of
gewijzigd).
</Para></ListItem>

<ListItem><Para>``<Literal><Filename>/etc/exports</Filename></Literal>''
(hierin staat een lijst met hosts die NFS-volumes mogen mounten; zie de <XRef
LinkEnd="nfs-services"> voor details)</Para></ListItem>

<ListItem><Para>``<Literal><Filename>/etc/organization</Filename></Literal>'',
``<Literal><Filename>/etc/nntpserver</Filename></Literal>'',
``<Literal><Filename>/etc/NNTP_INEWS_DOMAIN</Filename></Literal>'' (stel het
in zoals van toepassing is)
</Para></ListItem>

<ListItem><Para>``<Literal><Filename>/etc/lilo.conf</Filename></Literal>''
(hierin staat informatie voor de LILO bootloader -- het proces waarmee
de Linux-kernel tijdens het booten wordt geladen; zie de
<XRef LinkEnd="install-lilo"> voor de details)</Para></ListItem>

<ListItem><Para>``<Literal><Filename>/etc/sudoers</Filename></Literal>''
(een lijst met gebruikers aan wie speciale privileges zijn gegeven, met
de commando's die zij uit mogen voeren)
</Para></ListItem>

<ListItem><Para>``<Literal><Filename>/etc/named.boot</Filename></Literal>''
(voor het gebruik van DNS; zie de <XRef LinkEnd="domain-name-server"> voor
details)</Para></ListItem>
</ItemizedList></ListItem>

<ListItem><Para>Alles in
``<Literal><Filename>/usr/local/</Filename></Literal>'' (en
subdirectory's) bestaat uit extra packages of aanpassingen van bestaande
packages die je hier hebt ge&iuml;nstalleerd, als je vanuit iets dergelijks
als tar-archieven hebt ge&iuml;nstalleerd in plaats van RPM.
(Of je zou ze op z'n minst hier moeten hebben ge&iuml;nstalleerd).
Deze bestanden zouden, vooral die in /usr/local/src/, up-do-date moeten
worden gehouden. Zie <XRef LinkEnd="upgrading-linux"> voor details.</Para>
</ListItem>

</ItemizedList>

<Sect1 id="web-server-administration"><Title>Web Server en HTTP Caching Proxy Beheer</Title>

<Warning><Para>(WAARSCHUWING: NEGEER DEZE SECTIE!)</Para></Warning>

<OrderedList Spacing="Normal">

<ListItem><Para>Maak net als anders een Internet gebruiker aan. Het
<Quote>shell</Quote> account zou
``<Literal><Filename>/bin/bash</Filename></Literal>'' moeten zijn
(aangezien FTP een geldige shell vereist).
</Para></ListItem>

<ListItem><Para>``<Literal>cd /home ; chown root.root theuser</Literal>''
Dit maakt dat de directory <Quote>theuser</Quote> veiligheidshalve
aan root toebehoort.
</Para></ListItem>

<ListItem><Para>``<Literal>cd /home/theuser ; mkdir www ; chown
theuser.theuser</Literal>'' Hiermee wordt een <Quote>www</Quote>
directory aangemaakt, en de eigenaarschap zodanig ingesteld dat ze
er naar kunnen schrijven en vanuit kunnen lezen.
</Para></ListItem>

<ListItem><Para>``<Literal>echo "exit" > .profile</Literal>''
Hiermee wordt een ``<Literal><Filename>.profile</Filename></Literal>'' bestand
aangemaakt met daarin de enkele regel ``<Literal>exit</Literal>''. Als de
gebruiker via telnet probeert in te loggen, zal de verbinding ogenblikkelijk
worden verbroken.
</Para></ListItem>

<ListItem><Para>Voer een ``<Literal>ls -l</Literal>'' uit en wees er zeker
van dat er slechts 2 bestanden in de directory voorkomen
(waaronder niet de ``..'' en ``.''):</Para>

<ItemizedList Mark="Bullet" Spacing="Compact">
<ListItem><Para><Emphasis>.profile</Emphasis> (met als eigenaar
root.root)</Para></ListItem>

<ListItem><Para><Emphasis>www</Emphasis> (met als eigenaar
theuser.theuser)</Para></ListItem>
</ItemizedList>

<Para>Alle andere bestanden kunnen worden verwijderd (bv. ``<Literal>rm .less ;
rm .lessrc</Literal>'')</Para></ListItem>

<ListItem><Para>Als de gebruiker e-mail forwarding geactiveerd nodig heeft,
zou je een .forward bestand aan kunnen maken waarin gewoon het juiste e-mail
adres als eerste en enige regel in het bestand staat.
</Para></ListItem>
</OrderedList>

<Para>Dat was 't. De gebruiker kan gebruik maken van FTP om de pagina's
bij te werken.</Para>

</Sect1>

<Sect1 id="domain-name-server"><Title>Domain Name Server (DNS) Configuratie en Beheer</Title>

<Para>Op m'n werk gebruiken we Linux als een DNS-server. Het voldoet uitstekend.
Deze sectie richt zich op de configuratie van DNS-tabellen voor deze services
door gebruik te maken van het package BIND 8.x dat standaard bij de
Red Hat distributie wordt geleverd.
</Para>

<Note><Para>Noot: In Red Hat versie 5.1 en eerder wordt gebruik gemaakt van
het package BIND 4.x, welke een iets ander formaat voor zijn configuratie
bestand toepast. BIND 8.x biedt meer functionaliteit dan wat door BIND 4.x
wordt geboden en aangezien 4.x niet langer verder wordt ontwikkeld,
zou je moeten overwegen je BIND-package tot de laatste versie bij te werken.
Installeer gewoon het BIND RPM-package
(zie <XRef LinkEnd="using-rpm"> voor details over het gebruik van het RPM
utility), en converteer je configuratiebestand dan naar het nieuwe formaat.
</Para>

<Para>Gelukkig is het eenvoudig je bestaande BIND 4.x configuratiebestand
te converteren zodat het in overeenstemming is met BIND 8.x!
In de documentatie directory waarin als onderdeel van BIND wordt voorzien
(bijvoorbeeld ``<Literal><Filename>/usr/doc/bind-8.1.2/</Filename></Literal>''
voor BIND versie 8.1.2), komt een bestand voor genaamd
``<Literal><Filename>named-bootconf.pl</Filename></Literal>'', dit is een
uitvoerbaar Perl-programma. In de veronderstelling dat je Perl op je systeem
hebt ge&iuml;nstalleerd, kun je dit programma gebruiken om je
configuratiebestand te converteren. 
Typ hiervoor (als root) de volgende commando's:</Para>

<Screen>
<UserInput>cd /usr/doc/bind-8.1.2</UserInput>
<UserInput>./named-bootconf.pl < /etc/named.boot > /etc/named.conf</UserInput>
<UserInput>mv /etc/named.boot /etc/named.boot-obsolete</UserInput>
</Screen>

<Para>Nu zou je een bestand ``<Literal><Filename>/etc/named.conf</Filename>
</Literal>'' moeten hebben dat <Quote>direct voor gebruik</Quote> met 
BIND 8.x zou moeten werken. Je bestaande DNS-tabellen zullen met de nieuwe
versie van BIND werken zoals ze zijn, aangezien het formaat van de
tabellen hetzelfde is gebleven.
</Para>
</Note>

<Para>Het configureren van DNS-services onder Linux bestaat uit de volgende
stappen:
</Para>

<OrderedList Spacing="Normal">
<ListItem><Para>Om DNS-services te activeren, zou het bestand
``<Literal><Filename>/etc/host.conf</Filename></Literal>'' er ongeveer
zo uit moeten zien:
</Para>

<ProgramListing>
# Zoek namen eerst op via /etc/hosts, dan door een DNS query
order hosts, bind
# We hebben geen computers met meerdere adressen
multi on
# Controleer op IP-adres spoofing
nospoof on
# Waarschuw ons als iemand toegang tot de root van het systeem probeert te
# krijgen
alert on
</ProgramListing>

<Para>De extra spoof-detectie treft de performance iets van de DNS-lookups
(alhoewel te verwaarlozen), dus als je je hier niet al te veel zorgen
om maakt, kun je de regels met <Quote>nospool</Quote> en <Quote>alert</Quote>
deactiveren.
</Para></ListItem>

<ListItem><Para>Configureer naar wens het bestand
``<Literal><Filename>/etc/hosts</Filename></Literal>''.  
Kenmerkend dat hieraan niet veel hoeft te worden gedaan, maar voor een
verbeterde performance kun je alle hosts toevoegen die je vaak benaderd
(zoals lokale servers) om de uitvoering van DNS-lookups hierop te voorkomen.
</Para></ListItem>

<ListItem><Para>Het bestand
``<Literal><Filename>/etc/named.conf</Filename></Literal>'' zou zodanig
moeten zijn geconfigureerd dat het naar de DNS-tabellen overeenkomstig
het voorbeeld hieronder verwijst.
</Para>

<Note><Para>(Noot: de hierboven gebruikte IP-adressen zijn slechts voorbeelden
en moeten door je eigen class adressen worden vervangen!):
</Para></Note>

<ProgramListing>
options {
	// DNS tabellen zijn gelokaliseerd in de directory /var/named 
	directory "/var/named";

	// Forward eventule onopgeloste verzoeken naar onze ISP's name server
	// (dit is slechts een voorbeeld IP-adres, gebruik het niet!)
	forwarders {
		123.12.40.17;
	};

	/*
	 * Als er zich een firewall bevindt, tussen jou en de nameservers
         * waarmee je wilt communiceren, dan kan het zijn dat je de
         * commentaar-tekens voor de query-source richtlijn hieronder weg
         * moet halen.
	 * Vorige versies van BIND stelden vragen altijd via poort 53,
         * maar BIND 8.1 gebruikt standaard geen vastgestelde poort.
	 */
	// query-source address * port 53;
};

// Activeer caching en laad root server info
zone "named.root" {
	type hint;
	file "";
};

// Al onze DNS informatie wordt opgeslagen in /var/named/mijndomein_naam.db
// (bv. als mijndomein.naam = foobar.com gebruik dan foobar_com.db)
zone "mijndomein.naam" {
	type master;
	file "mijndomein_naam.db";
	allow-transfer { 123.12.41.40; };
};

// Reverse lookups voor 123.12.41.*, .42.*, .43.*, .44.* class C's
// (dit zijn slechts voorbeelden van Class C's -- gebruik ze niet!)
zone "12.123.IN-ADDR.ARPA" {
	type master;
	file "123_12.rev";
	allow-transfer { 123.12.41.40; };
};

// Reverse lookups voor 126.27.18.*, .19.*, .20.* class C's
// (dit zijn slechts voorbeelden van Class C's -- gebruik ze niet!)
zone "27.126.IN-ADDR.ARPA" {
	type master;
	file "126_27.rev";
	allow-transfer { 123.12.41.40; };
};
</ProgramListing>

<Tip><Para>Tip: Let hierboven op de opties <Literal>allow-transfer</Literal>,
waarmee DNS zone transfers tot een gegeven IP-adres worden begrenst.
In ons voorbeeld staan we de host op 123.12.41.40 (waarschijnlijk een slave
DNS-server in ons domein) toe zone transters te ondervragen. Als je deze
optie achterwege laat, zal iedereen op het Internet de mogelijkheid hebben
dergelijke transporten te ondervragen. Aangezien de hierboven geleverde
informatie vaak door spammers en IP-spoofers wordt gebruikt, raad ik je
ten zeerste aan zone transfers te begrenzen behalve naar je slave 
DNS-server(s), of in plaats daarvan gebruik te maken van het loopback adres,
``<Literal>127.0.0.1</Literal>''.
</Para></Tip>

</ListItem>

<ListItem><Para>Nu kun je je DNS-tabellen instellen in de
``<Literal><Filename>var/named/</Filename></Literal>'' directory zoals
is geconfigureerd in het bestand 
``<Literal><Filename>/etc/named.conf</Filename></Literal>'' in stap
drie. Het voor de eerste keer configureren van DNS database bestanden is
een grootse onderneming, en valt buiten het kader van dit boek. Er zijn
verscheidene leidraads, online en in afgedrukte vorm die zouden moeten worden
geraadpleegd. Hieronder worden echter verscheidene voorbeelden gegeven.
</Para>

<Para>Voorbeeld-entries in het
``<Literal><Filename>/var/named/mijndomein_naam.db</Filename></Literal>''
forward lookup bestand:</Para>

<ProgramListing>
; Dit is het Start of Authority (SOA) record. Bevat contact
; &amp; andere informatie over de name-server. Het serienummer
; moet worden gewijzigd wanneer het bestand is bijgewerkt (ter informatie aan
; secondary servers dat de zone informatie is gewijzigd).
    @ IN SOA mijndomein.naam.  postmaster.mijndomein.naam. (
	19990811	; Serienummer
	3600		; 1 uur refresh
	300		; 5 minuten retry
	172800		; 2 dagen expiry
	43200 )		; 12 uur minimum

; Een opsomming van de in gebruik zijnde name-servers. Onopgeloste 
; (entries in andere zones)
; zullen naar onze ISP's name server isp.domein.naam.com gaan
	IN NS		mijndomein.naam.
	IN NS		isp.domein.naam.com.

; Dit is de mail-exchanger. Je kunt er meer dan &eacute;&eacute;n inzetten.
; (als van toepassing), met het integer veld dat de prioriteit aangeeft
; (laagste heeft hogere prioriteit).
	IN MX		mail.mijndomein.naam.

; Voorziet in optionele informatie over het type computer &amp;
; besturingssysteem dat voor de server wordt gebruikt
	IN HINFO	Pentium/350	LINUX

; Een lijst met computernamen &amp; adressen
    spock.mijndomein.naam.    IN A    123.12.41.40   ; OpenVMS Alpha
    mail.mijndomein.naam.     IN A    123.12.41.41   ; Linux (main server)
    kirk.mijndomein.naam.     IN A    123.12.41.42   ; Windows NT (blech!)

; Inclusief eventuele in onze andere class C's
    twixel.mijndomein.naam.   IN A    126.27.18.161  ; Linux test machine
    foxone.mijndomein.naam.   IN A    126.27.18.162  ; Linux devel. kernel

; Alias (gebruikelijke) namen
    gopher	IN CNAME	mail.mijndomein.naam.
    ftp		IN CNAME	mail.mijndomein.naam.
    www		IN CNAME	mail.mijndomein.naam.
</ProgramListing>

<Para>Voorbeeld entries in het
``<Literal><Filename>/var/named/123_12.rev</Filename></Literal>'' reverse
lookup bestand:</Para>

<ProgramListing>
; Dit is het Start of Authority record. Hetzelfde als in de forward lookup
; tabel.
    @ IN SOA mijndomein.naam.  postmaster.mijndomein.naam. (
	19990811	; Serienummer
	3600		; 1 uur refresh
	300		; 5 minuten retry
	172800		; 2 dagen expiry
	43200 )		; 12 uur minimum

; Name servers zoals opgesomd in forward lookup tabel
	IN NS		mail.mijndomein.naam.
	IN NS		isp.domein.naam.com.

; Een lijst met computernamen &amp; adressen, maar dan omgekeerd.
; We wijzen hier meer dan &eacute;&eacute;n class C toe, dus we moeten hier
; ook het class B gedeelte opsommen.
    40.41	IN PTR    spock.mijndomein.naam.
    41.41	IN PTR    mail.mijndomein.naam.
    42.41	IN PTR    kirk.mijndomein.naam.

; Zoals je kunt zien, kunnen we onze andere class C's toewijzen, zolang ze maar
; onder de 123.12.* class B adressen zijn
    24.42	IN PTR    tsingtao.mijndomein.naam.
    250.42	IN PTR    redstripe.mijndomein.naam.
    24.43	IN PTR    kirin.mijndomein.naam.
    66.44	IN PTR    sapporo.mijndomein.naam.

; In het reverse lookup bestand zouden geen alias (gebruikelijke) namen
; moeten staan (om vanzelfsprekende redenen).
</ProgramListing>

<Para>Enige andere reverse lookup bestanden die nodig zijn om adressen in een
andere class B (zoals 126.27.*) in te delen, kunnen worden aangemaakt,
en die zouden er vrijwel hetzelfde uitzien als het reverse lookup 
voorbeeldbestand van hierboven.
</Para></ListItem>

<ListItem><Para>Zorg ervoor dat de named daemon draait. Deze daemon wordt
normaal gesproken bij de systeemstart vanuit het bestand
``<Literal><Filename>/etc/rc.d/init.d/named</Filename></Literal>'' opgestart.
Je kunt de daemon ook handmatig starten en stoppen; typ respectievelijk
``<Literal>named start</Literal>'' en ``<Literal>named stop</Literal>''.
</Para></ListItem>

<ListItem><Para>Wanneer er wijzigingen aan de DNS-tabellen worden aangebracht,
zou de DNS-server opnieuw moeten worden opgestart door het intikken van
``<Literal>/etc/rc.d/init.d/named restart</Literal>''. 
Wellicht dat je je wijzigingen dan wilt testen door gebruik te maken van
een tool zoals <Quote><Literal>nslookup</Literal></Quote> om de computer
die je hebt toegevoegd of gewijzigd te ondervragen.
</Para></ListItem>
</OrderedList>

<Para>Meer informatie over het configureren van DNS-services is te vinden
in de ``<Emphasis>DNS-HOWTO</Emphasis>'' op
<ULink URL="http://metalab.unc.edu/Linux/HOWTO/DNS-HOWTO-5.html">
http://metalab.unc.edu/Linux/HOWTO/DNS-HOWTO-5.html</ULink>.</Para>

</Sect1>

<Sect1 id="internet-user-authentication"><Title>Internet User Authenticatie met TACACS</Title>

<Para>Op mijn werk maken we voor TACACS authenticatie van dial-up Internet
gebruikers (die een verbinding hebben met onze modempool en die op hun 
beurt weer verbonden zijn aan een paar Cisco 250x access servers)
gebruik van de Vikas versie van <Quote>xtacacsd</Quote>.</Para>

<Para>Na het compileren en installeren van het Vikas package (laatste versies
zijn beschikbaar vanaf <ULink URL="ftp://ftp.navya.com/pub/vikas">
ftp://ftp.navya.com/pub/vikas</ULink>; Ik geloof niet dat het package
beschikbaar is in het RPM-formaat), zou je de volgende records aan het
bestand ``<Literal><Filename>/etc/inetd.conf</Filename></Literal>'' toe moeten
voegen zodat de daemon door de inetd-daemon zal worden geladen als er een
TACACS-verzoek is ontvangen.
</Para>

<ProgramListing>
# TACACS is een user authenticatie protocol dat voor Cisco Router producten
# wordt gebruikt.
tacacs dgram udp wait root /etc/xtacacsd xtacacsd -c /etc/xtacacsd-conf
</ProgramListing>

<Para>Vervolgens zou je het bestand
``<Literal><Filename>/etc/xtacacsd-conf</Filename></Literal>'' moeten
wijzigen en het overeenkomstig je systeem aan moeten passen (alhoewel
je waarschijniljk de standaardinstellingen kunt gebruiken, zoals ze zijn).
</Para>

<Note><Para>Noot: Als je gebruik maakt van shadow passwords (zie de <XRef
LinkEnd="shadow-file-formats"> voor details), zal je wat problemen met
dit package ondervinden. Helaas wordt PAM (Pluggable Authentication Module),
wat Red Hat gebruikt voor de authenticatie van gebruikers, door dit package
niet ondersteund. De oplossing die ik gebruik is om een apart
``<Literal><Filename>passwd</Filename></Literal>'' bestand in
``<Literal><Filename>/usr/local/xtacacs/etc/</Filename></Literal>'' 
bij te houden die overeenkomt met die in /etc/ maar dan zonder shadow.
Dit is een beetje een gedoe en als je hiervoor kiest, zorg er dan voor dat
je de permissies op het andere wachtwoordbestand instelt om er zeker van
te zijn dat het alleen voor root leesbaar is:
</Para></Note>

<Screen>
<UserInput>chmod a-wr,u+r /usr/local/xtacacs/etc/passwd</UserInput>
</Screen>

<Para>Als je inderdaad gebruikt maakt van shadow, zal je vrijwel zeker
het bestand ``<Literal><Filename>/etc/xtacacsd-conf</Filename></Literal>''
moeten wijzigen en de lokatie van het niet-shadowed wachtwoordbestand
(in de veronderstelling dat je gebruik maakt van de oplossing die ik
hierboven aanbeveelde).
</Para>

<Para>De volgende stap bestaat uit het configureren van je
access server(s) om logins voor de gewenste devices (zoals dial-up modems)
met TACACS te verifi&euml;ren. Hier is een voorbeeldsessie van hoe je dit
kunt doen:</Para>

<Screen>
<Prompt>mail:/tftpboot#</Prompt> <UserInput>telnet xyzrouter</UserInput>

Escape character is '^]'.
User Access Verification
<Prompt>Password:</Prompt> <UserInput>****</UserInput>
<Prompt>xyzrouter></Prompt> <UserInput>enable</UserInput>
<Prompt>Password:</Prompt> <UserInput>****</UserInput>
<Prompt>xyzrouter#</Prompt> <UserInput>config terminal</UserInput>
Enter configuration commands, one per line.  End with CNTL/Z.
<Prompt>xyzrouter(config)#</Prompt> <UserInput>tacacs-server attempts 3</UserInput>
<Prompt>xyzrouter(config)#</Prompt> <UserInput>tacacs-server authenticate connections</UserInput>
<Prompt>xyzrouter(config)#</Prompt> <UserInput>tacacs-server extended</UserInput>
<Prompt>xyzrouter(config)#</Prompt> <UserInput>tacacs-server host 123.12.41.41</UserInput>
<Prompt>xyzrouter(config)#</Prompt> <UserInput>tacacs-server notify connections</UserInput>
<Prompt>xyzrouter(config)#</Prompt> <UserInput>tacacs-server notify enable</UserInput>
<Prompt>xyzrouter(config)#</Prompt> <UserInput>tacacs-server notify logouts</UserInput>
<Prompt>xyzrouter(config)#</Prompt> <UserInput>tacacs-server notify slip</UserInput>
<Prompt>xyzrouter(config)#</Prompt> <UserInput>line 2 10</UserInput>
<Prompt>xyzrouter(config-line)#</Prompt> <UserInput>login tacacs</UserInput>
<Prompt>xyzrouter(config-line)#</Prompt> <UserInput>exit</UserInput>
<Prompt>xyzrouter(config)#</Prompt> <UserInput>exit</UserInput>
<Prompt>xyzrouter#</Prompt> <UserInput>write</UserInput>
Building configuration...
<Prompt>[OK]</Prompt> <UserInput> </UserInput>
<Prompt>xyzrouter#</Prompt> <UserInput>exit</UserInput>

Connection closed by foreign host.
</Screen>

<Para>Alle logmeldingen over TACACS activiteiten zullen voor onderzoek in 
``<Literal><Filename>/var/log/messages</Filename></Literal>'' worden
opgenomen.
</Para>

</Sect1>

<Sect1 id="samba-file-and-print"><Title>Windows-stijl File en Print Services met Samba</Title>

<Para>Linux kan in SMB-services voorzien (bv. het delen van bestanden &amp;
printers in de stijl van WfW, Win95, en NT netwerken), door gebruik te maken
van het Samba package. In deze sectie zal worden beschreven hoe je gedeelde
bronnen configureert, en hoe je ze vanaf client-machines kunt benaderen.
</Para>

<Para>Het Samba package wordt met de Red Hat distributie meegeleverd, je
kunt controleren of het is ge&iuml;nstalleerd en welke versie je hebt,
door het intikken van:
</Para>

<Screen>
<UserInput>rpm -q samba</UserInput>
</Screen>

<Para>Als het niet is ge&iuml;nstalleerd, zal je het nog moeten installeren
met behulp van het RPM-utility.
Zie de <XRef LinkEnd="using-rpm"> voor details over hoe je dit kan doen.</Para>

<Para>De belangrijkste van belang zijnde Samba-bestanden zijn:
</Para>

<VariableList>

<VarListEntry>
<Term>/etc/smb.conf</Term>
<ListItem><Para>Samba configuratiebestand waarin gedeelde bronnen en andere
configuratieparameters kunnen worden ingesteld
(zie onder)</Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>/var/log/samba/</Term>
<ListItem><Para>Locatie van Samba's logbestanden</Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>/home/samba/</Term>
<ListItem><Para>Aanbevolen lokatie waar bestanden voor gezamenlijk gebruik
zouden moeten worden ingesteld. Je zou echter een lokatie uit moeten kiezen
waar je voldoende ruimte op het bestandssysteem hebt passend voor de
bestanden dit je op wilt slaan. Persoonlijk gebruik ik meestal een grote
partitie gemount op /archive/ en plaats hier mijn bestanden voor gezamenlijk
gebruik.
</Para></ListItem>
</VarListEntry>

</VariableList>

<Para>Het bestand ``<Literal><Filename>/etc/smb.conf</Filename></Literal>''
bevat configuratie-informatie over gezamelijk te gebruiken bestanden &amp;
printers. De eerste paar regels van het bestand bestaan uit globale configuratie
richtlijnen, die voor alle gedeelde bronnen gelijk zijn (tenzij ze teniet
worden gedaan op basis van &eacute;&eacute;n gedeelde bron), gevolgd door share secties.
</Para>

<Para>De Samba-installatie bestaat onder andere uit een standaard smb.conf
bestand dat in veel gevallen voldoende zou moeten zijn voor wat je nodig
hebt en slechts een paar wijzigingen vereist.
</Para>

<Para>Hier is een voorbeeld van dit bestand (dat ik flink heb aangepast om
je een aantal van de meer belangrijke en interessante opties te laten zien):
</Para>

<ProgramListing>
# Items gelijk voor alle gedeelde bronnen (tenzij overschreven op basis van
&eacute;&eacute;n gedeelde bron)
[global]
   # Aantal minuten inactiviteit voor de verbinding met een client wordt
   # verbroken ter voorkoming van consumerende bronnen. Bij de meeste clients
   # zal de verbinding automatisch weer worden hersteld, dus is het verstandig
   # dit te activeren.
   dead time = 10

   # Laat gebruikers niet toe een verbinding te maken als <Quote>root</Quote>,
   # slechts voor het geval dat.  :-)
   invalid users = root

   # Specificeer het account voor guest shares (gedeelde bronnen waarvoor
   # geen wachtwoord is vereist om een verbinding mee te maken.
   # Deze gebruikersnaam moet een geldige gebruiker zijn in het bestand
   # /etc/passwd.
   guest account = guest

   # Geef aan waar logbestanden naartoe zouden moeten worden geschreven.
   # Het toevoegsel <Quote>%m</Quote> betekent dat logbestanden in het
   # formaat log.machine-name (bv. <Quote>log.twixel</Quote>) zullen worden
   # aangemaakt.
   log file = /usr/local/samba/logs/log.%m

   # Maximumgrootte van logbestand, in Kilobytes.
   max log size = 1000

   # Wachtwoordniveau 3 betekent dat het er bij het invoeren van wachtwoorden
   # niet toe doet of hoofd- of kleine letters worden gebruikt.
   # Iets minder veilig dan niveau 1 of 2 zou zijn, maar het schijnt een
   # tamelijk eerlijke compromis te zijn voor gebruikersgemak.
   password level = 3

   # Geef aan dat alle gedeelde bronnen in de browse list zouden moeten
   # verschijnen
   # (doe eventuele die je niet wilt teniet door die per gedeelde bron
   # in te stellen).
   browseable = yes

   # Als dit is geactiveerd, kun je actieve connecties bekijken met het
   # commando <Quote>smbstatus</Quote>.
   status = yes

   # Het niveau aan debug-informatie dat in de logbestanden wordt bijgehouden.
   # Hogere waarden genereren meer informatie (wat waarschijnlijk meestal niet
   # van zoveel nut is).
   debug level = 2

   # Hiermee zullen alle <Quote>POPUP</Quote>-berichten in de stijl van Windows
   # die op de server worden ontvangen via e-mail naar de postmaster worden
   # verzonden. Niet erg nuttig, maar een interessante demonstratie van wat
   # kan worden bewerkstelligd.
   message command = /bin/mail -s 'Message from %f on %m' postmaster < %s; rm %s &amp;

   # Dit is een vorm van caching welke, wanneer geactiveerd, de performance
   # bij het lezen van bestanden kan verbeteren.
   read prediction = true

   # Een opsomming van services die automatisch aan de browse-list zou moeten
   # worden toegevoegd.
   auto services = cdrom

   # De locatie van je <Quote>printcap</Quote> bestand, een tekstbestand met
   # daarin de definities van je printers.
   printcap name = /etc/printcap

   # Als dit is geactiveerd zullen alle printers in het bestand
   # /etc/printcap in de browse-list worden geladen.
   load printers = yes

   # Het afdrukcommando waarmee gegevens worden gespoold naar een printer
   # onder Linux.
   print command = lpr -r -P%p %s

   # Het afdrukcommando waarmee wachtrij-informatie (printer status) over de
   # job kan worden verkregen.
   lpq command = lpq -P%p

   # Het afdrukcommando waarmee ongewenste jobs uit de wachtrij kunnen worden
   # verwijderd.
   lprm command = lprm -P%p %j

   # Het niveau waarop Samba zichzelf adverteert als browse uitverkorene.
   # Thans ingesteld op een hoge waarde om zichzelf <Quote>staande</Quote>
   # te houden tussen alle rondzwervende NT-servers op het netwerk.  :-)
   os level = 34

# Dit zijn de persoonlijke gedeelde bronnen van de gebruiker. Als de
# gebruikersnaam van de client met die op de server overeenkomt, kunnen zij
# hun homedirectory benaderen (op voorwaarde dat ze het juiste wachtwoord
# invoeren).
[homes]
   # De tekst die in de browse-list verschijnt.
   comment = Home Directories

   # Dit vergelijkt de gebruikersnaam van de client met dat van de gedeelde
   # bron. Als die niet overeenkomen, zal in de browse list geen gedeelde bron
   # worden weergegeven, of beschikbaar zijn om een verbinding mee te maken.
   user = %S

   # Het pad naar de gedeelde bron. Bijvoorbeeld, aan <Quote>smithj</Quote> 
   # zou <Quote>/home/smithj</Quote> worden toegekend
   path = /home/%S

   # Maakt read/write toegang tot de gedeelde bronnen mogelijk, als dit is
   # geactiveerd.
   writeable = yes

   # Slechts een omgekeerd synoniem voor <Quote>writeble</Quote>. We hebben
   # ze niet *echt* beiden nodig. :-)
   read only = no

   # Houd dit gedeactiveerd zodat een wachtwoord is vereist voor het benaderen
   # van deze gedeelde bronnen.
   public = no

   # We willen niet dat deze gedeelde bron (per slot van rekening is het
   # priv&eacute;) in de browse-list van andere gebruikers verschijnt.
   browseable = no

# Dit is een voor het publiek beschikbare gedeelde printer, genaamd 
# <Quote>hp_laser</Quote>. Het verschijnt in de 
# browse lists en kan zonder een wachtwoord door iedere client worden
# benaderd.
[hp_laser]
   # De tekst die in de browse-list verschijnt.
   comment = Main office printer (HP Laserjet 400)

   # De gebruikersnaam van door wie de gedeelde bron wordt benaderd
   # (guest betekent alle gebruikers).
   user = guest

   # Alle gegenereerde afdrukbestanden zullen eerst in de directory /tmp
   # worden aangemaakt.
   path = /tmp

   # Sta de aanmaak van bestanden niet toe behalve via print spooling.
   writeable = no

   # Stel overeenkomstig de permissies in -- alleen root-toegang om de taken
   # af te drukken.
   create mode = 0700

   # Als dit is geactiveerd, is een wachtwoord niet vereist om de gedeelde
   # bron te benaderen
   public = yes

   # Dit zou moeten worden geactiveerd om aan te geven dat dit een 
   # gezamenlijke printer is.
   printable = yes

# Dit is een service die voorziet in het benaderen van het CD-ROM apparaat.
[cdrom]
   comment = Gedeeld CD-ROM station onder Linux
   user = guest
   path = /cdrom
   writeable = no
   read only = true
   browseable = yes
   public = yes
   guest ok = yes
</ProgramListing>

<Tip><Para>Tip: Recente versies van Samba, vanaf versie 2.0, voorzien in een
zeer handig op web gebaseerd configuratie utility genaamd
``<Emphasis>swat</Emphasis>'', wat het proces veel gebruikersvriendelijker
maakt. Het utility luistert op TCP-poort <Emphasis>901</Emphasis>
van je server, dus om het utility te gebruiken verwijs je je favoriete
webbrowser als volgt:
</Para></Tip>

<Screen>
mijndomein.naam:901
</Screen>

<Para>(Uiteraard zal je een webserver, zoals Apache, draaiend moeten hebben,
wil je het SWAT-utility kunnen gebruiken. Zie de <XRef
LinkEnd="web-server-administration"> voor details).</Para>

<Para>De laatste Samba-versies voegen ook opmerkelijke mogelijkheden toe in
vergelijking met versies van voor 2.0. Het is het waard tijd te steken in het
upgraden van dit package.
</Para>

<Para>Een client moet een TCP/IP-netwerkstack hebben draaien om een
verbinding met gedeelde bronnen te kunnen maken. Verder moet, wil het
browsen functioneren, het TCP/IP-protocol worden verbonden met NETBEUI.
Onder Windows 95 kan dit via het <Quote>Netwerk</Quote> ikoon vanuit het
Configuratiescherm worden geconfigureerd.
</Para>

<Para>In de veronderstelling dat de client juist is geconfigureerd, 
zou je de gedeelde bronnen op de server in hun
<Quote>Netwerkomgeving</Quote> moeten zien verschijnen (of
equivalent browsing scheme als je Windows 95/NT niet gebruikt). Je kunt
netwerkstations dan vanuit de netwerkomgeving toekennen,
of een absoluut pad naar de gedeelde bron intikken (<Emphasis>bv.
<Quote>\\mail\cdrom</Quote></Emphasis>). Als voor de gedeelde service een
wachtwoord nodig is, zal ernaar worden gevraagd.
</Para>

<Para>Meer informatie over Samba kan worden verkregen vanaf de Samba Home Page
op <ULink URL="http://samba.anu.edu.au/samba/">
http://samba.anu.edu.au/samba/</ULink>.</Para>

</Sect1>

<Sect1 id="netatalk-file-and-print"><Title>File en Print Services met Netatalk in de stijl van Macintosh</Title>

<Para>Linux kan ook voorzien in Appleshare services (bv. Macintosh-stijl network
file &amp; printer sharing), door gebruik te maken van het Netatalk package.
In deze sectie zal worden beschreven hoe gedeelde bronnen te configureren,
en hoe ze vanuit client-computers te benaderen.
</Para>

<Para>Voor gebruik van Netatalk heb je Appletalk netwerkondersteuning in
je Linux-kernel nodig. Stock kernels van Red Hat hebben deze ondersteuning
reeds als een module opgenomen, maar je kunt je eigen aangepaste kernel met
dergelijke ondersteuning compileren.
</Para>

<Note><Para>Noot: Verzeker jezelf ervan dat de ondersteuning voor
Appletalk als een <Emphasis>module</Emphasis> is gecompileerd en niet als
onderdeel van de kernel is opgenomen (zie de
<XRef LinkEnd="linux-kernel-upgrades"> voor details over het upgraden of
aanpassen van de Linux-kernel). Anders zal je problemen ervaren bij het
stoppen en vervolgens weer herstarten van de Netatalk daemon.
</Para></Note>

<Para>Zodra je er zeker van bent dat je kernel capabel is voor de
ondersteuning van Appletalk, zal je het Netatalk package moeten installeren.
Omdat Netatalk niet met de Red Hat distributie wordt meegeleverd, zal je een
kopie moeten dowloaden en installeren. Het Netatalk package is te vinden op 
de <Quote>contrib</Quote> site van Red Hat, op
<ULink URL="ftp://ftp.redhat.com/contrib/libc6/i386/">
ftp://ftp.redhat.com/contrib/libc6/i386/</ULink>.</Para>

<Para>Nadat Netatalk is ge&iuml;nstalleerd, kan het zijn dat je
&eacute;&eacute;n of meer configuratiebestanden in 
``<Literal><Filename>/etc/atalk/</Filename></Literal>'' moet aanpassen. In de
meeste bestanden staan voorbeelden van de configuratie, en daarom is het
op z'n minst wat zelfdocumenterend. Het zijn de bestanden:</Para>

<VariableList>

<VarListEntry>
<Term>config</Term>
<ListItem><Para>In dit bestand bevindt zich de configuratie voor het
fijnafstemmen van je Netatalk-daemon.
Deze informatie wordt gespecificeerd in omgevingsvariabelen, en het bestand
wordt door het opstartscript van Netatalk voordat de service wordt gestart
<Quote>gesourced</Quote> (dwz. gelezen).
Je kunt het aantal simultane verbindingen opgeven, of guest-logins wel of
niet zijn toegestaan, enz. Het is vrijwel zeker dat je dit bestand
overeenkomstig je behoeften aan wilt passen.
</Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>atalk.conf</Term>
<ListItem><Para>In dit bestand staat informatie over de te gebruiken
netwerk-interface, als ook je Appletalk routing, naamregistratie, en
andere daaraan gerelateerde informatie.
Waarschijnlijk zal je deze informatie niet aan hoeven passen; de vereiste
netwerk-informatie wordt gedetecteerd en aan dit bestand toegevoegd als
je voor het eerst de Netatalk-server opstart.
Wellicht wil je echter de naam van je server toevoegen.</Para>

<Note><Para><Emphasis>Noot: Typ ``<Literal>man atalkd</Literal>'' voor
meer informatie over dit bestand.</Emphasis></Para></Note></ListItem>
</VarListEntry>

<VarListEntry>
<Term>afpd.conf</Term>
<ListItem><Para>In dit bestand is het mogelijk aanvullende parameters
op te geven die aan Netatalk als commandoregel-opties worden doorgegeven.
Je kunt opgeven via welke poort je de Netatalk server wilt draaien, een
loginbericht toevoegen welke aan gebruikers wordt getoond die een verbinding
maken, als ook andere daaraan gerelateerde opties.
Waarschijnlijk hoef je dit bestand niet aan te passen.
</Para>

<Note><Para><Emphasis>Noot: Typ ``<Literal>man afpd</Literal>'' voor meer
informatie over dit bestand.
</Emphasis></Para></Note></ListItem>
</VarListEntry>

<VarListEntry>
<Term>papd.conf</Term>
<ListItem><Para>In dit bestand staat informatie over het activeren van
Mac-gebruikers om naar netwerkprinter-shares af te drukken. Ik heb hier nog
niets mee gedaan dus helaas kan ik je hierover niet adviseren.
</Para>

<Note><Para><Emphasis>Noot: Typ ``<Literal>man papd</Literal>'' voor meer
informatie over dit bestand.</Emphasis></Para></Note></ListItem>
</VarListEntry>

<VarListEntry>
<Term>AppleVolumes.default</Term>
<ListItem><Para>In dit bestand staan de beschikbare gezamenlijke bestanden
opgesomd, die een Mac-gebruiker na het inloggen te zien zal krijgen.
Vul het pad in naar de directory van het bestand, gevolgd door een
tekstuele beschrijving ervan, voor het activeren van een gedeelde bron.
Bijvoorbeeld:</Para>
<ProgramListing>
~                "Home"
/archive/busdept "Business Department Common Files"
</ProgramListing>

<Para>(Hiermee zal in twee gedeelde bronnen worden voorzien voor verbonden
Mac-gebruikers: hun homedirectory, als ook een gezamelijk gebied voor de
business department).
</Para>

<Tip><Para>Tip: Een handige truc hier is gedeelde bronnen met hetzelfde pad
naar bestanden onder Samba in te stellen, waardoor je gebruikers worden
voorzien in platform onafhankelijke gezamenlijke bestanden
voor zowel je Mac als ook je Windows-gebruikers.
Zie de <XRef LinkEnd="samba-file-and-print"> voor details over het gebruik van
Samba.</Para></Tip></ListItem>
</VarListEntry>

<VarListEntry>
<Term>AppleVolumes.system</Term>
<ListItem><Para>In dit bestand staan ook de gezamenlijke bestanden net als
in ``<Literal><Filename>AppleVolumes.default</Filename></Literal>'',het
verschil is dat deze gedeelde bronnen beschikbaar zullen zijn voor
<Emphasis>alle</Emphasis> gebruikers, ongeacht of ze wel of niet inloggen.
In dit bestand staan ook de bestandstype toekenningen. Je zal dit bestand
waarschijnlijk niet hoeven wijzigen, tenzij je algemene gedeelde bronnen
voor iedereen beschikbaar toe wilt voegen; dit is voor de meeste mensen
waarschijnlijk niet zo verstandig.
</Para></ListItem>
</VarListEntry>

</VariableList>

<Para>Zodra alles is ingesteld met de van toepassing zijnde configuratie-informatie, kun je de Netatalk-services handmatig opstarten door het intikken van:
</Para>

<Screen>
<UserInput>/etc/rc.d/init.d/atalk start</UserInput>
</Screen>

<Para>(De services zouden bij de systeemstart automatisch op moeten starten).
</Para>

<Para>Meer informatie over Netatalk kan worden verkregen vanaf de Netatalk Home
Page op <ULink URL="http://www.umich.edu/~rsug/netatalk/">
http://www.umich.edu/~rsug/netatalk/</ULink>. Bovendien is zeer behulpzame
configuratie-informatie beschikbaar in de Linux Netatalk HOWTO,
beschikbaar op <ULink URL="http://thehamptons.com/anders/netatalk/">
http://thehamptons.com/anders/netatalk/</ULink>.</Para>

</Sect1>

<Sect1 id="nfs-services"><Title>Network File System (NFS) Services</Title>

<Para>Linux kan voor gezamenlijke bestandssystemen zowel als client en als
server fungeren door gebruik te maken van het Network File System (NFS)
protocol, wat tussen Unix-systemen de feitelijke standaard is om te
voorzien in bestandssysteem mounts.
</Para>

<Note><Para>Noot: Let er alsjeblieft op dat een op je systeem beschikbare
NFS-service een beveiligingsrisico kan zijn. Persoonlijk raad ik je niet
aan het te gebruiken.
</Para></Note>

<Para>Voor het gebruik van NFS, zal je ervoor moeten zorgen dat 
NFS-ondersteuning in je kernel of als kernel-modules is opgenomen. Zie
de <XRef LinkEnd="linux-kernel-upgrades"> voor details over hoe je de 
Linux-kernel kunt upgraden of aanpassen.
</Para>

<Para>Via NFS gedeelde bronnen worden geconfigureerd door het aanpassen van
het bestand ``<Literal><Filename>/etc/exports</Filename></Literal>''.  Hier
zijn een aantal voorbeeldregels, die wat van de beschikbare opties laten zien:
</Para>

<ProgramListing>
/archive spock.mijndomein.naam(ro)  
/archive2 spock.mijndomein.naam(ro)  
/mnt/cdrom ander.domein(ro)
/archive2 10.23.14.8(ro,insecure)  
</ProgramListing>

<Para>De eerste paar regels maken het de host ``spock.mijndomein.naam'' mogelijk
zowel de directory ``<Literal><Filename>/archive</Filename></Literal>''
als ook de directory ``<Literal><Filename>/archive2</Filename></Literal>''
via NFS te benaderen. Deze gedeelde bronnen worden met de optie
``<Literal>(ro)</Literal>'' voor alleen-lezen beschikbaar gesteld.
Veiligheidshalve is het verstandig dit zo mogelijk voor alle via NFS gedeelde
bronnen te doen.
</Para>

<Para>De derde regel zal het mogelijk maken dat iedere host in de
domeinnaam ruimte ``domein.naam'' de CD-ROM drive kan benaderen.
Uiteraard is het nodig het CD-ROM device eerst op
``<Literal>/mnt/cdrom</Literal>'' te mounten.</Para>

<Note><Para>Noot: Het gebruik van de ``<Literal>(ro)</Literal>)'' optie 
om dit device als read-only te markeren, mag dan wat overbodig lijken, dit
echter doen zal een onverlaat behoeden naar een echt bestandssysteem te
schrijven mocht het CD-ROM device niet zijn gemount.
</Para></Note>

<Para>Nadat je wijzigingen aan het bestand
``<Literal><Filename>/etc/exports</Filename></Literal>'' hebt aangebracht,
zal je de NFS-daemon opnieuw op moeten starten. Hiervoor tik je in:</Para>

<Screen>
<UserInput>/etc/rc.d/init.d/nfs restart</UserInput>
</Screen>

<Para>Je kunt je NFS mountpoints ook met de
``<Literal>Network Configurator</Literal>'' tool configureren dat in het
``<Literal>Linuxconf</Literal>'' utility is opgenomen. Zie de
<XRef LinkEnd="linuxconf"> voor meer informatie over het Linuxconf utility.
</Para>

<Para>Meer informatie over NFS is te vinden in de
``<Emphasis>NFS-HOWTO</Emphasis>'' gids op <ULink
URL="http://metalab.unc.edu/LDP/HOWTO/NFS-HOWTO.html">
http://metalab.unc.edu/LDP/HOWTO/NFS-HOWTO.html</ULink>, als ook in de
man pages over ``<Literal>nfsd</Literal>'' en ``<Literal>exports</Literal>''.
</Para>

</Sect1>

<Sect1 id="linuxconf"><Title>Configuratie van A-Z met Linuxconf</Title>

<Para>Er is een uitstekende tool met de naam ``<Literal>linuxconf</Literal>''
waarmee configuratie-zaken makkelijker te bewerkstelligen zijn.
Linuxconf draait in iedere beschikbare display-omgeving -- je kunt het
vanuit de console draaien, via een telnet-sessie, en als een op een GUI
gebaseerde tool onder X en het zal automatisch op de juiste wijze opstarten.
</Para>

<Para>Als het nodig is je systeemtijd aan te passen, je netwerkinstellingen
te wijzigen, bestandssystemen in moet stellen, gebruikersbeheer uit moet
voeren, als ook vele andere beheer- en configuratietaken uit moet voeren, zou
je dit hulpmiddel eens moeten proberen.
De enige keerzijde die ik je zou willen geven is dat, tijdens dit schrijven,
de op een GUI gebaseerde tool nog steeds wat <Quote>fouten</Quote> bevat en
het mogelijk kan gebeuren dat het niet meer reageert op muisklikken. Dit
hulpmiddel is echter een veelbelovend werk in uitvoering, en toekomstige
revisies zouden zeer bruikbaar kunnen worden.
</Para>

</Sect1>

</Chapter>

<Chapter id="backup-and-restore"><Title>Backup en Restore Procedures</Title>

<Para>Uitvoeren van reguliere backups zou als &eacute;&eacute;n van de
verantwoordelijkste top-prioriteiten van een systeembeheerder moeten worden
aangemerkt. Ofschoon Linux een uitermate betrouwbaar besturingssysteem is,
kunnen fouten voorkomen en ze zullen waarschijnlijk ook plaatsvinden.
Ze kunnen worden veroorzaakt door een hardwarefout, stroomuitval, of door
andere onvoorziene problemen.
</Para>

<Para>Waarschijnlijker zullen het problemen zijn die door een menselijke fout
zijn veroorzaakt, resulterend in ongewenste wijzigingen aan, of zelfs 
verwijderingen van kritieke bestanden. Als je andere gebruikers op je
systeem host, zal je vrijwel zeker worden verzocht &eacute;&eacute;n
of meer per ongeluk verwijderde bestanden terug te zetten.
</Para>

<Para>Als je regelmatig backups maakt, bij voorkeur dagelijks (op z'n minst
van de gebruikersbestanden die vaak worden bijgewerkt), zal je hopelijk
de kans verminderen op, en het herstel vergroten van dergelijk bestandsverlies.
</Para>

<Para>De veiligste methode om backups aan te maken is ze op aparte media
op te nemen, zoals tapes, een verwijderbare drive, beschrijfbare CD, enz.,
en je backupsets dan in een lokatie apart van je Linux-systeem te bewaren.
Soms kan dit niet praktisch zijn --
-- misschien heb je geen brandbeveiligde kluis waarin je de backuptapes
op kunt bergen! Of misschien heb je in de eerste plaats geen toegang tot een
dergelijk backupsysteem. Niettemin kunnen backups nog steeds worden uitgevoerd,
ofschoon op een wat beperkte basis.
</Para>

<Para>Op mijn werk voer ik op verscheidene Linux-servers backups uit.
Afhankelijk van de situatie, worden een aantal van deze backupsets
naar tapes weggeschreven, anderen worden naar een aparte server over het
netwerk weggeschreven, terwijl weer anderen gewoon naar een aparte 
diskpartitie (bijvoorbeeld in het bestandssysteem
``<Literal><Filename>/archive/</Filename></Literal>'') door een automatische
cron-job worden weggeschreven (misschien omdat de server op
een lokatie op afstand staat, waarbij een dagelijks bezoek voor een tape
backup niet praktisch of onmogelijk is).</Para>

<Para>Thuis heb ik geen extern backupsysteem, noch heb ik enorme
hoeveelheden beschikbare diskruimte om een backup-image naar weg te
schrijven. Daarom maak ik in plaats daarvan alleen een backup van mijn
gebruikersbestanden in ``<Literal><Filename>/home/</Filename></Literal>'' 
en een aantal aangepaste configuratiebestanden in
``<Literal><Filename>/etc/</Filename></Literal>'', waarbij ik de backup
naar een aparte diskpartitie wegschrijf.
</Para>

<Sect1 id="server-backup"><Title>Server Backup Procedures</Title>

<Para>Er zijn onder Linux diverse methoden voor het uitvoeren van backups.
Hieronder bevinden zich commandoregel-tools die met iedere Linux-distributie
worden meegeleverd, zoals ``dd'', ``dump'', ``cpio'', als ook ``tar''.  
Tevens zijn op tekst gebaseerde utilities beschikbaar, zoals
``Amanda'' en ``Taper'', die zijn ontworpen om een wat gebruikersvriendelijker
interface aan de backup- en restore-procedures toe te voegen.
Er zijn bovendien op GUI gebaseerde utilities, zoals ``KDat''.  
Als laatste zijn er ook nog commerci&euml;le backup-utilities beschikbaar,
zoals ``BRU'' en ``PerfectBackup+''. 
Al deze backup-oplossingen kunnen voorzien in bescherming van je
waardevolle gegevens.
</Para>

<Para>Een beknopte opsomming van een aantal beschikbare tools, inclusief
waar ze te krijgen zijn, is te vinden op de
<Quote>Linux Applications and Utilities Page</Quote>, op <ULink
URL="http://www.xnet.com/~blatura/linapp2.html#back">
http://www.xnet.com/~blatura/linapp2.html#back</ULink>. Neem bij de
beslissing over een backup-oplossing de volgende factoren in overweging:
</Para>

<ItemizedList Mark="Bullet" Spacing="Normal">

<ListItem><Para><Emphasis>Overdraagbaarheid</Emphasis> - Is backup
overdraagbaarheid (dwz. de mogelijkheid een backup te maken op de ene Linux
distributie of implementatie van Unix en het herstellen ervan op een andere;
bijvoorbeeld vanaf Solaris naar Red Hat Linux) belangrijk voor je?
Als dat zo is, valt je keuze waarschijnlijk op &eacute;&eacute;n van de
commandoregel-tools (bv. ``dd'', ``dump'', ``cpio'', of ``tar''), omdat je
er dan redelijk zeker van kunt zijn dat dergelijke tools op ieder *nix
systeem beschikbaar zullen zijn.
</Para></ListItem>

<ListItem><Para><Emphasis>Onbeheerde of geautomatiseerde backups</Emphasis> - Is
de mogelijkheid om backups te automatiseren, zodat ze op reguliere tijden
zonder menselijke tussenkomst kunnen worden uitgevoerd, belangrijk voor je?
Als dat zo is, zal je een tool en een backupmedium uit moeten kiezen waarmee
een dergelijk backupontwerp zal worden ondersteund.
</Para></ListItem>

<ListItem><Para><Emphasis>Gebruikersvriendelijkheid</Emphasis> - Is een
gebruikersvriendelijke interface belangrijk voor je? Als dat zo is, zal
je waarschijnlijk een tool uit willen kiezen die voorziet in een op
tekst of GUI gebaseerde interface. De commerci&euml;le utilities leveren
wellicht de eenvoudigste interfaces en tevens aanvullende technische
ondersteuning.
</Para></ListItem>

<ListItem><Para><Emphasis>Remote backups</Emphasis> - Is de mogelijkheid
om backups en restores vanaf een remote computer te starten belangrijk
voor je? Als dit zo is, zal je waarschijnlijk &eacute;&eacute;n van de
tools voor op de commandoregel of op tekst gebaseerde tools uit willen
kiezen in plaats van de utilities gebaseerd op een GUI (tenzij je een
redelijk snelle netwerkverbinding hebt en de mogelijkheid om remote X-sessies
te draaien).
</Para></ListItem>

<ListItem><Para><Emphasis>Netwerk backups</Emphasis> - Is het uitvoeren
van backups en het terugzetten ervan naar en vanuit netwerkhosts belangrijk
voor je?  Als dit zo is, zal je wellicht &eacute;&eacute;n van de verscheidene
utilities voor op de commandoregel (zoals ``tar'') willen gebruiken, 
waarmee netwerktoegang tot backupdevices wordt ondersteund, of een
gespecialiseerd utility zoals ``Amanda'' of &eacute;&eacute;n van de
verscheidene commerci&euml;le utilities.
</Para></ListItem>

<ListItem><Para><Emphasis>Media-typen</Emphasis> - Backups kunnen op
een diversiteit aan media, zoals tape, een extra harddisk, ZIP-drives, of
herschrijfbare CD's worden opgeslagen. Neem hierbij de kosten vs.
betrouwbaarheid, opslagcapaciteit en transportsnelheid in overweging.
</Para></ListItem>
</ItemizedList>

<Caution><Para>Pas op: Neem bij het maken van je bestandssystemen 
<Emphasis>niet</Emphasis> het ``<Literal><Filename>/proc</Filename></Literal>''
pseudo-bestandssysteem mee!  
De bestanden in /proc zijn in feite geen bestanden maar gewoon op bestanden
lijkende links die de datastructuren van de kernel beschrijven en er naar
verwijzen. Het maken van een backup van een bestand als
``<Literal><Filename>/proc/kcore</Filename></Literal>'', wat in feite
een pseudo-bestand is met je gehele geheugen als inhoud, lijkt op
een tamelijk grote verspilling van de tape! :-)
Wellicht dat je ook het maken van een backup van het bestandssysteem
``<Literal><Filename>/mnt</Filename></Literal>'' wilt voorkomen, tenzij
je een speciale wens hebt een backup te maken van de bestanden op je
CD-ROM, diskette, bestanden die via het netwerk worden gedeeld, of
andere gemounte apparaten.
</Para></Caution>

<Para>Uiteraard zullen, afhankelijk van je keuze voor een backup-oplossing,
de procedures voor het uitvoeren van een backup en het terugzetten anders zijn.
In deze sectie zal ik echter methoden bespreken voor het uitvoeren van
backups met de twee tools ik het meest gebruik:
``tar'' (waarvan de naam staat voor <Quote>Tape ARchiver</Quote>),
een hulpmiddel voor op de commandoregel dat zeer overdraagbaar is tussen
*nix systemen; als ook ``KDat'', een op GUI gebaseerd tape backup utility
wat in de KDE-packages is opgenomen (zie de <XRef LinkEnd="using-kde"> voor meer
informatie over KDE).</Para>

<Para>Als laatste zou ik nog willen toevoegen dat zelfs als het hulpmiddel
niet de ingebouwde mogelijkheid heeft om geautomatiseerde of onbeheerde
backups te plannen, je afhankelijk van je backup oplossing,
mogelijk door middel van de cron faciliteiten dergelijke backups kunt 
automatiseren. Zie de <XRef LinkEnd="using-cron"> voor details over het gebruik
van cron en over het aanmaken van crontab-bestanden.</Para>

<Sect2 id="tar-backup"><Title>Backup met ``tar'':</Title>

<Para>Als je besluit als oplossing voor je backup ``tar'' te gebruiken,
zal je waarschijnlijk wat tijd uit moeten trekken om de diverse beschikbare
commandoregel-opties te leren kennen;
typ <Quote><Literal>man tar</Literal></Quote> voor een uitgebreide lijst.
Je zal ook moeten weten hoe je de van toepassing zijnde backupmedia kunt
benaderen; alhoewel alle devices in de wereld van Unix als bestanden worden
behandeld, is de naam van het <Quote>bestand</Quote> de naam van het device
zelf als je naar een character device zoals een tape schrijft
(bv. ``<Literal><Filename>/dev/nst0</Filename></Literal>'' voor een
op SCSI gebaseerde tape-drive).</Para>

<Para>Met het volgende commando zal van je gehele Linux-systeem een
backup worden aangemaakt op het ``<Literal><Filename>/archive/</Filename>
</Literal>'' bestandssysteem, met uitzondering van het
``<Literal><Filename>/proc/</Filename></Literal>'' pseudo-bestandssysteem,
alle gemounte bestandssystemen in ``<Literal><Filename>/mnt/</Filename>
</Literal>'', het ``<Literal><Filename>/archive/</Filename></Literal>''
bestandssysteem (het heeft geen zin een backup te maken van je backupsets!),
als ook Squid's nogal grote cache-bestanden (die naar mijn mening een
verspilling zijn van de backupmedia en waarvan het onnodig is een backup
te maken):
</Para>

<Screen>
<UserInput>tar -zcvpf /archive/full-backup-`date '+%d-%B-%Y'`.tar.gz \
    --directory / --exclude=mnt --exclude=proc --exclude=var/spool/squid .</UserInput>
</Screen>

<Para>Laat je niet intimideren door de lengte van dit commando! Als we het
in componenten opbreken, zal je de pracht van dit krachtige utility inzien.
</Para>

<Para>In het commando hierboven worden de opties ``<Emphasis>z</Emphasis>''
(comprimeer; de backupgegevens worden met ``gzip'' gecomprimeerd),
``<Emphasis>c</Emphasis>'' (create; er wordt een archiefbestand aangemaakt),
``<Emphasis>v</Emphasis>'' (verbose; toon een lijst met bestanden als er een
backup van wordt gemaakt), ``<Emphasis>p</Emphasis>'' (behoud permissies;
bestandsprotectie informatie zal worden <Quote>onthouden</Quote> dus kunnen
ze worden teruggezet) opgegeven. De ``<Emphasis>f</Emphasis>'' (file) optie
geeft aan dat het direct hieropvolgende argument de naam van het 
archiefbestand (of het device) zal zijn dat wordt beschreven.
Merk op hoe een bestandsnaam met daarin de huidige datum wordt afgeleid,
simpelweg door het ``date'' commando te omsluiten door twee aanhalingstekens
openen te gebruiken. Een algemene naamconventie is om aan niet gecomprimeerde
archieven het toevoegsel ``<Literal><Filename>tar</Filename></Literal>'' 
toe te voegen, en aan gecomprimeerde archieven het achtervoegsel
``<Literal><Filename>tar.gz</Filename></Literal>''.
</Para>

<Para>Met de optie ``<Emphasis>--directory</Emphasis>'' wordt aan
tar opgegeven dat het eerst naar de daaropvolgende directory moet gaan
(in dit voorbeeld de ``<Literal><Filename>/</Filename></Literal>'' directory)
voordat het de backup opstart. Met de ``<Emphasis>--exclude</Emphasis>'' opties
wordt tar aangegeven zich niet bezig te houden met het maken van een backup
van de opgegeven directory's of bestanden.
Als laatste wordt door middel van de ``<Emphasis>.</Emphasis>'' aan tar
opgegeven dat het van alles in de huidige directory een backup moet maken.
</Para>

<Note><Para>Noot: Het is belangrijk je te realiseren dat de opties aan
tar hOoFdlEtTeRgEvOeLiG zijn! Bovendien kunnen de meeste opties &oacute;f
als enkele mnemonische tekens (bv. ``f'') worden opgegeven, &oacute;f
door hun makkelijker-te-onthouden volledige optienamen (bv. ``file'').
De mnemonische representaties worden ge&iuml;ndentificeerd door ze te
laten voorafgaan door een ``-'' teken, terwijl de volledige namen worden
voorafgegaan door twee van dergelijke tekens. Nogmaals, zie de
<Quote>man</Quote> pages voor informatie over het gebruik van tar.</Para></Note>

<Para>Een ander voorbeeld, waarbij ditmaal als volgt alleen de opgegeven
bestandssystemen (als tegengestelde van ze <Emphasis>allemaal</Emphasis>
weg te schrijven met uitzondering als in het voorbeeld hiervoor is
gedemonstreerd) op een SCSI-tape worden weggeschreven:
</Para>

<Screen>
<UserInput>tar -cvpf /dev/nst0 --label="Backupset aangemaakt op `date '+%d-%B-%Y'`." \
    --directory / --exclude=var/spool/ etc home usr/local var/spool</UserInput>
</Screen>

<Para>Merk op dat in dit voorbeeld de optie ``<Emphasis>z</Emphasis>''
(compress) niet wordt gebruikt. Ik raad je <Emphasis>sterk</Emphasis> af
gecomprimeerde gegevens naar tape weg te schrijven, omdat je je volledige
backupset verliest als een deel van de tape beschadigd raakt.
Van archiefbestanden die zonder compressie zijn opgeslagen, kunnen
niet aangetaste bestanden altijd worden teruggezet, zelfs als delen van
het tape-archief beschadigd zijn.
</Para>

<Para>Omdat de tape-drive een character-device is, is het niet mogelijk
een echte bestandsnaam te specificeren. Daarom is het argument aan tar
gewoon de naam van het device,
``<Literal><Filename>/dev/nst0</Filename></Literal>'', het eerste
tape-device op de SCSI-bus.
</Para>

<Note><Para>Noot: Het ``<Literal><Filename>/dev/nst0</Filename></Literal>''
device spoelt nadat de backupset is weggeschreven niet terug; daardoor is het
mogelijk meerdere sets op &eacute;&eacute;n tape weg te schrijven. 
(Je mag ook naar het device refereren als
``<Literal><Filename>/dev/st0</Filename></Literal>'', in welk geval de
tape automatisch nadat de backupset is weggeschreven wordt teruggespoeld).
</Para></Note>

<Para>Aangezien we niet de mogelijkheid hebben om een bestandsnaam voor
de backupset op te geven, kan de optie
``<Emphasis>--label</Emphasis>'' worden gebruikt om wat informatie over
de backupset in het archiefbestand zelf te schrijven.
</Para>

<Para>Tenslotte worden alleen de bestanden in de directory's
``<Literal><Filename>/etc/</Filename></Literal>'',
``<Literal><Filename>/home/</Filename></Literal>'',
``<Literal><Filename>/usr/local</Filename></Literal>'', en
``<Literal><Filename>/var/spool/</Filename></Literal>'' (met uitzondering
van Squid's cache databestanden) naar de tape weggeschreven.</Para>

<Para>Bij het werken met types, kun je de volgende commando's gebruiken
voor het terugspoelen, en vervolgens je tape uit te laten werpen:
</Para>

<Screen>
<UserInput>mt -f /dev/nst0 rewind</UserInput>
<UserInput>mt -f /dev/nst0 offline</UserInput>
</Screen>

<Tip><Para>Tip: Je zal bemerken dat de voorafgaande ``<Literal>/</Literal>''
(slash) tekens door tar worden verwijderd wanneer een archiefbestand wordt
aangemaakt. Dit is tar's standaardwerking, en het is bedoeld je te behoeden
voor het overschrijven van kritieke bestanden door oudere versies van
die bestanden, mocht je per ongeluk de verkeerde bestanden in een 
herstelbewerking terugzetten. Als je dit gedrag echt niet prettig vindt,
(denk er aan, het is een <Emphasis>mogelijkheid</Emphasis>!) dan kun je de
optie ``<Literal>--absolute-paths</Literal>'' aan tar opgeven, waarbij de
voorafgaande slashes behouden zullen blijven. Ik raad je dit echter niet
aan, aangezien het <Emphasis>Gevaarlijk</Emphasis> is!</Para></Tip>

</Sect2>

<Sect2 id="kdat-backup"><Title>Backup met ``KDat'':</Title>

<Para>Als je de KDE-desktopomgeving gebruikt, geloof ik dat je het utility
``KDat'' zowel krachtig als ook gebruikersvriendelijk zal vinden.
Bovendien is een toegevoegde bonus dat KDAT als backupmotor gebruik maakt
van ``tar''. Daarom kunnen backupsets die met KDat zijn weggeschreven,
niet alleen met KDat worden gelezen maar ook met tar!
Dit maakt KDat een zeer fraaie keuze in zowel gebruikersvriendelijkheid
als backupoverdraagbaarheid.
</Para>

<Tip><Para>Tip: Zelfs als je er voor kiest het volledige KDE-package niet
te gebruiken of installeren, dan kun je KDAT <Emphasis>nog steeds</Emphasis>
gebruiken, zolang je de Qt-library's dan maar hebt ge&iuml;nstalleerd.
</Para></Tip>

<Para>De eerste keer dat je het programma KDat opstart, zal je een 
backupprofiel aan moeten maken. Met een dergelijk profiel geef je KDat op van
welke bestanden op je systeem je een backup zou willen maken. Als je dat wilt,
kun je afhankelijk van je behoeften, meer dan &eacute;&eacute;n profiel
samenstellen, (je zou bijvoorbeeld een profiel samen kunen stellen met de naam
<Quote><Emphasis>Volledige Backup</Emphasis></Quote> voor een volledige
systeembackup, en <Quote><Emphasis>Snelle Backup</Emphasis></Quote> voor een
backup van alleen de gebruikersbestanden).
</Para>

<Para>Voor het aanmaken van een backupprofiel, kies je &oacute;f voor
<Quote><Literal>Create Backup Profile</Literal></Quote> vanuit de optie
<Quote><Literal>File</Literal></Quote> op de menubalk (of klik je
met de rechtermuisknop op de folder
<Quote><Literal>Backup Profiles</Literal></Quote>, en kies je vervolgens
voor <Quote><Literal>Create Backup Profile</Literal></Quote>). Aan de
rechterkant van het KDat venster, kun je diverse instellingen wijzigen, 
zoals de naam van het profiel, de naam van het archief, de tar-opties
als ook andere opties. Klik op het menu <Quote><Literal>Help</Literal>
</Quote> voor meer informatie over waar deze instellingen voor zijn.
</Para>

<Para>Om aan te geven welke bestanden in je backupprofiel zouden moeten
worden opgenomen, klik je met de linkermuisknop op het aankruisvakje naast
de ``<Literal><Filename>/</Filename></Literal>'' directory-folder. Hiermee
zullen alle bestanden in en onder deze directory voor backups worden
geselecteerd. Klik dan op het kleine ``+'' teken naast de folder.
Hiermee zal de folder worden ge&euml;xtraheerd, waarbij de daarin en daaronder
bevindende lijst met bestanden wordt getoond.
Hierdoor krijg je de mogelijkheid alle bestanden waarvan je geen backup
wenst te maken uit te sluiten; klik gewoon met de linkermuisknop op het
aankruisvakje naast ieder bestand of iedere directory dat je uit wilt sluiten.
Voor bijvoorbeeld een volledige backup zou ieder aankruisvakje voor het
bestand of de directory zijn gemarkeerd, met uitzondering van 
``<Literal><Filename>/proc</Filename></Literal>'' (een pseudo-bestandssysteem
met informatie over je draaiende systeem),
``<Literal><Filename>/mnt</Filename></Literal>'' (een directory waaronder
CD-ROM drives, diskettes en gedeelde netwerkbronnen gewoonlijk zijn gemount)
en als je een Squid-gebruiker bent
``<Literal><Filename>/var/spool/squid</Filename></Literal>'' (Squid's
cache data-bestanden). Zodra je de van toepassing zijnde bestanden hebt
geselecteerd, klik je met de linkermuisknop op het backupprofiel dat je
aan het maken bent, klik vervolgens op de knop
<Quote><Literal>Files &gt;&gt;</Literal></Quote> om de lijst met
geselecteerde bestanden naar je backupprofiel te verplaatsen.
</Para>

<Note><Para>Noot: Mocht de serverdata groter zijn dan wat fysiek op een
tape kan worden opgeslagen, dan zal je aparte backupprofielen aan moeten
maken, &eacute;&eacute;n voor ieder deel van je backupset.
</Para></Note>

<Para>Voor het daadwerkelijk uitvoeren van de backup, voeg je een tape
in de drive, en kies je voor <Quote><Literal>Mount Tape</Literal></Quote>
vanuit het <Quote><Literal>File</Literal></Quote> menu (of klik je met
de linkermuisknop op het ikoon dat op een tape lijkt).
Hierdoor zal de tape worden <Quote><Emphasis>gemount</Emphasis></Quote>
(eigenlijk is het niet echt mogelijk het te mounten omdat een tape-device
een character-device is -- wat KDat in werkelijkheid doet is dat het eerst
de tape terugspoelt, dan de header-informatie probeert in te lezen, en als
het daarin slaagt, de corresponderende tape-index op je harddisk opzoekt.
Anders zal KDat je melden de tape te formatteren.
</Para>

<Note><Para>(Noot: Als KDat aan blijft geven dat er zich geen tape in de
drive bevindt en het wel degelijk in de drive aanwezig
<Emphasis>is</Emphasis>, dan zou je na moeten kijken of de naam van het
tape-device in de voorkeuren correct is aangegeven; klik met de linkermuisknop
op de optie <Quote><Literal>Edit</Literal></Quote> op de menubalk en kies
voor <Quote><Literal>User Preferences</Literal></Quote>.)</Para></Note>

<Para>Zodra KDat de tape heeft gemount, moet je eerst het backupprofiel,
dat je voor de backup wenst te gebruiken, uitkiezen voordat je de backup
opstart. Klik voor het starten van de backup met de rechtermuisknop op het
gewenste backupprofiel en klik dan met de linkermuisknop op de optie
<Quote><Literal>Backup</Literal></Quote>. KDat zal eerst een dialoogvenster
weergeven met de details van het door jou geselecteerde backupprofiel,
klik met de linkermuisknop op de knop <Quote><Literal>Ok</Literal></Quote>
om de backup te starten.</Para>

<Para>Onderwijl de backup in bewerking is, zal KDat een dialoogvenster weergeven
met diverse statische informatie (geschatte tijd, backupgrootte, 
backupsnelheid, resterende geschatte tijd, als ook het aantal bestanden en
totaal weggeschreven bytes), en een lijst met bestanden tonen als er een
backup van is gemaakt. Een volledige backup bestaande uit verscheidene
gigabytes aan gegevens kan verscheidene uren duren voor het klaar is. Als je
dat nodig vindt, kun je op ieder ogenblik met de linkermuisknop op de knop
<Quote>Abort</Quote> klikken om het backupproces te onderbreken.
</Para>

<Para>Zodra de backup klaar is, kun je de tape unmounten door vanuit de
menubalk te kiezen voor <Quote>Edit</Quote>, en vervolgens 
<Quote>Unmount Tape</Quote>, of met de linkermuisknop op de ikoon van de
tape te klikken, waarmee de tape zal worden teruggespoeld er eruit zal
worden geworpen.</Para>

</Sect2>

</Sect1>

<Sect1 id="server-restore"><Title>Server Restore Procedures</Title>

<Para>Onbetwistbaar is datgene wat nog belangrijker is dan het regelmatig
uitvoeren van backups, ze beschikbaar te hebben wanneer het er op aankomt
dat een belangrijk bestand teruggezet moet worden!
</Para>

<Para>Uiteraard, zoals beproken in de <XRef LinkEnd="server-backup">, zullen
de procedures voor een herstelactie, afhankelijk van je keuze voor de
oplossing van een backup, anders zijn. In deze sectie, zal ik methoden
bespreken voor het terugzetten van bestanden waarvan met ``tar'' en ``KDat''
een backup is gemaakt.
</Para>

<Sect2 id="tar-restore"><Title>Terugzetten met ``tar'':</Title>

<Para>Met het volgende commando zullen alle bestanden uit het archief
``<Literal><Filename>full-backup-09-October-1999.tar.gz</Filename></Literal>''
worden teruggezet; dit is een voorbeeldbackup van ons Linux-systeem 
(aangemaakt met behulp van de voorbeeldcommando's zoals weergegeven in de
<XRef LinkEnd="tar-backup">:</Para>

<Screen>
<UserInput>tar -zxvpf /archive/full-backup-09-October-1999.tar.gz</UserInput>
</Screen>

<Para>Met dit commando worden alle bestanden in het gecomprimeerde archief
ge&euml;xtraheerd, waarbij de oorspronkelijke eigenaar en permissies van
de bestanden behouden zijn.
De optie ``<Literal>x</Literal>'' staat voor extract. (De andere opties
worden beschreven in de <XRef LinkEnd="tar-backup">.</Para>

<Caution><Para>Pas op: Het extraheren van bestanden vanuit een tar-archief
kan heel gevaarlijk zijn, en het zou daarom met veel oplettendheid moeten
worden uitgevoerd. Misschien dat de bestanden niet werden gearchiveerd zonder
een voorafgaand pad (een paar onjuist ge&iuml;nstrueerde of niet 
ge&iuml;nformeerde ontwikkelaars distribueren op deze wijze tar-archieven
van hun software-aanbiedingen), wat inhoudt dat ze allen in de huidige
directory worden ge&euml;xtraheerd. Misschien dat de bestanden met
voorafgaande ``<Literal>/</Literal>'' slashes werden gearchiveerd 
(door het opgeven van de optie ``<Literal>--absolute-paths</Literal>'' toen
het archief werd aangemaakt), wat betekent dat de bestanden naar hun absolute
lokaties worden teruggezet (zelfs als je dat niet wilt).
Of misschien werden de bestanden <Emphasis>zonder</Emphasis> voorafgaande
``<Literal>/</Literal>'' slashes gearchiveerd, wat betekent dat de bestanden
onder de huidige directory worden teruggezet (zelfs als je dit niet wilt).
Dit hangt natuurlijk af van hoe de backup werd aangemaakt. Om deze reden,
raad ik je ten zeerste aan het ``tar'' commando met de optie
``<Literal>t</Literal>'' (<Emphasis>type</Emphasis>) <Emphasis>eerst</Emphasis>
te testen en dan pas de ``<Literal>t</Literal>'' te vervangen door een
``<Literal>x</Literal>'' (<Emphasis>extract</Emphasis>) als je er absoluut
zeker van bent dat het commando zal doen wat je verwacht dat het zal doen.
</Para></Caution>

<Para>Als het niet nodig is alle bestanden in het archief terug te zetten,
kun je &eacute;&eacute;n of meer bestanden die je terug wenst te zetten,
opgeven, zoals in het volgende voorbeeld wordt getoond:
</Para>

<Screen>
<UserInput>tar -zxvpf /archive/full-backup-09-October-1999.tar.gz \
               etc/profile usr/local/bin/tolower</UserInput>
</Screen>

<Para>Met dit commando worden de bestanden 
``<Literal><Filename>etc/profile</Filename></Literal>'' en
``<Literal><Filename>usr/local/bin/tolower</Filename></Literal>'' 
vanuit het voorbeeldarchief teruggezet.</Para>

<Tip><Para>Als je slechts &eacute;&eacute;n of een paar bestanden vanaf
je archief terug wilt zetten, zal dit niet lukken, tenzij je de bestandsnaam
en het directorypad <Emphasis>exact</Emphasis> zo opgeeft als in het archief
is opgeslagen. Het volgende voorbeeld zou hierbij kunnen helpen:
</Para>

<Screen>
<UserInput>tar -ztvpf /archive/full-backup-09-October-1999.tar.gz \
    | grep -i profile</UserInput>
</Screen>

<Para>In dit voorbeeld, worden alle bestanden in het archief door een 
bestandsnaam weergegeven. De resulterende uitvoer wordt dan naar het
``<Literal>grep</Literal>'' commando doorgestuurd (met de optie
 ``<Literal>i</Literal>'' van grep om geen onderscheid te maken tussen
hoofdletters en kleine letters), waarbij alle bestanden met &oacute;f
in de naam van de directory &oacute;f bestandsnaam de string ``profile'' 
worden weergegeven. Zodra je de exacte bestandsnaam die je terug wenst
te zetten, hebt vastgesteld, kun je het voor extractie opgeven in een
gewoon tar-commando.
</Para></Tip>

<Para>Zoals vermeld in de <XRef LinkEnd="server-backup">, bij het aanmaken
van het archiefbestand, zal tar voorafgaande ``<Literal>/</Literal>'' (slash)
tekens van de padnamen van het bestand verwijderen. Dit betekent dat
herstelde bestanden mogelijk niet in dezelfde lokaties terecht komen als
vanwaar er een backup van is gemaakt. Ga daarom naar de
``<Literal><Filename>/</Filename></Literal>'' root-directory, of gebruik
de optie ``<Literal>--directory /</Literal>''.</Para>

<Note><Para>Noot: Een veel veiliger oplossing zou zijn om de gewenste
bestanden in een andere directory terug te zetten (in bijvoorbeeld je
homedirectory) en de bestanden daarna dan te vergelijken, verplaatsen
of bij te werken op de oorspronkelijke lokaties.
</Para></Note>

</Sect2>

<Sect2 id="kdat-restore"><Title>Terugzetten met ``KDat'':</Title>

<Para>Doe de backuptape in de drive, kies
<Quote><Literal>Mount Tape</Literal></Quote> vanuit de menu-optie 
<Quote><Literal>File</Literal></Quote> (of klik met de linkermuisknop op het
ikoon dat er uitziet als een tape) om &eacute;&eacute;n of meer bestanden
vanuit een met KDAT aangemaakte backupset terug te zetten.
</Para>

<Para>KDat zal proberen headerinformatie vanaf de tape te lezen en als het
hierin slaagt, proberen de tape-index op te zoeken die met de identificatie
overeenkomt die werd gevonden in de tape-header.
Deze tape-index wordt op je harddisk opgeslagen, en voor iedere door
KDat geformateerde backuptape wordt een uniek bestand aangemaakt, deze
wordt iedere keer dat je een backup uitvoert, bijgewerkt.
</Para>

<Para>Als deze corresponderende tape-index ontbreekt (omdat je van een
backup gegevens terug wilt zetten die op een andere computer is aangemaakt,
of het index-bestand werd verwijderd of is beschadigd), dan zal KDat je
hierover informeren en je vragen of het ok is om de index opnieuw aan te
maken door het lezen van de tape.
Omdat je het opnieuw aan zal moeten maken voordat je de gewenste
bestanden terug kunt zetten, is het nogal logisch op
<Quote>Yes</Quote> te klikken.</Para>

<Note><Para>(Noot: Zodra een tape wordt geherindexeerd, wordt de naam ervan
gewijzigd in <Quote><Emphasis>Reindexed Tape</Emphasis></Quote>. Je zou
de tape naar de oorspronkelijke naam moeten hernoemen).
</Para></Note>

<Para>Zodra de tape-index met succes is ingelezen, kan het worden gebruikt
om de directory's of bestanden die je terug wenst te zetten vanaf de
backupset te selecteren. Dit kan op vrijwel dezelfde manier als toen je
de backupprofielen aanmaakte (zie de
<XRef LinkEnd="server-backup"> voor gedetailleerde instructies over het
bestandsselectieproces).
</Para>

<Para>Zodra je de van toepassing zijnde bestanden hebt geselecteerd, kun je
het herstelproces opstarten door op de menubalk te kiezen voor de
<Quote>File</Quote> optie en vervolgens te kiezen voor 
<Quote><Literal>Restore...</Literal></Quote>
(of met de linkermuisknop klikken op het tape restore ikoon).
KDat zal een dialoogvenster weergeven, waarbij je de mogelijkheid krijgt te
bevestigen welke bestanden je terug wilt zetten.
Bovendien heb je de optie een directory aan te geven waarin de bestanden
zullen worden teruggezet. Dit biedt je de mogelijkheid kritieke systeembestanden
in je homedirectory terug te plaatsen, en ze vervolgens later te vergelijken,
verplaatsen of die bestanden bij te werken naar de bedoelde lokatie.
Dit is werkelijk de veiligste manier om bestanden te herstellen.
</Para>

<Para>Klik op de knop <Quote><Literal>Okay</Literal></Quote> om het
herstelproces te beginnen. KDat zal de tape dan scannen en de geselecteerde
bestanden terugzetten.
</Para>

<Para>Zo nu en dan zal je het wellicht nodig hebben of handig vinden
&eacute;&eacute;n of meer bestanden vanuit een backupset aangemaakt met
KDat terug te zetten <Emphasis>zonder</Emphasis> daarvoor KDat te 
gebruiken. Misschien dat je dergelijke bestanden op een systeem terug
zou willen zetten waar geen op GUI gebaseerde omgeving wordt geboden,
of zou je dit willen doen over een langzame netwerkverbinding waarbij
een remote uitvoering van KDat onpraktisch zou zijn.
Gelukkig schrijft KDat zijn set backupgegevens weg door gebruik te maken
van de tool ``tar'', een op de commandoregel gebaseerd hulpmiddel dat
op ieder *nix-systeem beschikbaar is.
</Para>

<Para>Mocht je de met KDat aangemaakte backupset met tar willen terugzetten,
dan kun je dit gewoon doen met de opties die je normaal gesproken bij een
backupset, aangemaakt met tar zelf, zou gebruiken.
Houd echter in gedachten, dat de gegevens niet in gecomprimeerd formaat
zijn opgeslagen.</Para>

<Note><Para>Noot: Je zal vrijwel zeker een foutmelding krijgen als je de
KDat backupset met tar probeert te benaderen. Dit komt doordat KDat header
en andere informatie aan de tape heeft toegevoegd toen het voor het eerst
werd geformatteerd. Herhaal gewoon twee of driemaal het tar-commando 
om naar het begin van het echte tar-archiefbestand te gaan.
</Para></Note>

</Sect2>

</Sect1>

<Sect1 id="router-configuration"><Title>Cisco Router Configuratie Backups</Title>

<Para>Op mijn werk hebben we een WAN, een verbinding tussen verscheidene
remote lokaties.
Deze remote lokaties hebben Cisco-routers verbonden via ISDN,
of in een aantal instances, Centrex data circuits, om te voorzien in
Internet en WAN connectiviteit. Cisco router producten maken het gebruik
van TFTP (<Quote>Trivial File Transfer Protocol</Quote>) op een netwerkserver
mogelijk om configuratiebestanden te lezen en beschrijven.
Wanneer een router-configuratie is gewijzigd, is het
belangrijk het configuratiebestand op de Linux-server op te slaan zodat
de backup wordt onderhouden.</Para>

<Para>Red Hat deactiveert standaard de TFTP-service, omdat het een echt
beveiligingslek kan zijn als het niet juist is geconfigureerd.
De TFTP-daemon maakt het iedereen mogelijk bestanden te lezen en
beschrijven zonder het uitvoeren van authenticatie. De wijze waarop ik dingen
persoonlijk instel is het aanmaken van een directroy
``<Literal><Filename>/tftpboot/</Filename></Literal>'', met als eigenaar
root, en vervolgens het aanpassen van de bestaande configuratieregel in
het bestand ``<Literal><Filename>/etc/inetd.conf</Filename></Literal>''
om de bestandslokatie op te geven:</Para>

<ProgramListing>
tftpd   dgram   udp    wait   root   /usr/sbin/tcpd  in.tftpd  /tftpboot
</ProgramListing>

<Note><Para>Noot: Het toevoegen van het ``<Literal>/tftpboot</Literal>'' path
aan het einde van de regel hierboven, geeft specifiek aan waar het de
TFTP-daemon is toegestaan bestanden te benaderen. Alhoewel je dit deel er
in feite uit kan laten en het TFTP mogelijk maakt bestanden overal op
je systeem te benaderen, zou dit waarschijnlijk een heel slecht idee zijn,
aangezien TFTP enigszins als een beveiligingsrisico wordt aangemerkt.
</Para></Note>

<Para>Vergeet niet na het activeren van de TFTP-service in te tikken:
</Para>

<Screen>
<UserInput>killall -HUP inetd</UserInput>
</Screen>

<Para>Met dit commando wordt de INETD-daemon opnieuw opgestart om de
wijzigingen die je hebt gemaakt aan het inetd.conf bestand te herkennen.
</Para>

<Para>Het aanmaken van een backup van een router-configuratiebestand
bestaat uit een uit 3 stappen bestaand proces:
het instellen van permissies op een bestaand bestand (of het 
aanmaken van een nieuw bestand) om schrijfopdrachten mogelijk te maken,
het schrijven van het backupbestand en het opnieuw instellen van de
permissies om toegang tot het bestand te beperken.
Hierna volgt een router backupsessie:
</Para>

<Screen>
<Prompt>mail:~#</Prompt> <UserInput>cd /tftpboot</UserInput>
<Prompt>mail:/tftpboot#</Prompt> <UserInput>chmod a+w xyzrouter-confg</UserInput>
chmod: xyzrouter-confg: No such file or directory
<Prompt>mail:/tftpboot#</Prompt> <UserInput>touch xyzrouter-confg</UserInput>
<Prompt>mail:/tftpboot#</Prompt> <UserInput>chmod a+w loyola-confg</UserInput>
<Prompt>mail:/tftpboot#</Prompt> <UserInput>telnet xyzrouter</UserInput>

Escape character is '^]'.
User Access Verification
<Prompt>Password:</Prompt> <UserInput>****</UserInput>
<Prompt>xyzrouter></Prompt> <UserInput>enable</UserInput>
<Prompt>Password:</Prompt> <UserInput>****</UserInput>
<Prompt>xyzrouter#</Prompt> <UserInput>write network</UserInput>
<Prompt>Remote host []?</Prompt> <UserInput>123.12.41.41</UserInput>
<Prompt>Name of configuration file to write [xyzrouter-confg]?</Prompt> <UserInput> </UserInput>
<Prompt>Write file xyzrouter-confg on host 123.12.41.41? [confirm]</Prompt> <UserInput> </UserInput>
Building configuration...
<Prompt>Writing xyzrouter-confg !! [OK]</Prompt><UserInput> </UserInput>
<Prompt>xyzrouter#</Prompt> <UserInput>exit</UserInput>
Connection closed by foreign host.

<Prompt>mail:/tftpboot#</Prompt> <UserInput>chmod a-wr,u+r xyzrouter-confg</UserInput>
<Prompt>mail:/tftpboot#</Prompt> <UserInput>exit</UserInput>
</Screen>

<Para>In geval van een storing aan de router (bijvoorbeeld veroorzaakt door
een stroomonderbreking tijdens een blikseminslag), kunnen deze backupbestanden
van pas komen voor het opnieuw laden van de router-configuratie.
Ook het herstellen van een configuratiebestand bestaat uit een uit 3 stappen
bestaand proces: het instellen van de permissies op het bestaande bestand,
het laden van het bestand en het vervolgens opnieuw instellen van de
permissies om toegang tot het bestand te beperken.
Hierna volgt een voorbeeldsessie van een router-herstel:</Para>

<Screen>
<Prompt>mail:~#</Prompt> <UserInput>cd /tftpboot</UserInput>
<Prompt>mail:/tftpboot#</Prompt> <UserInput>chmod a+r xyzrouter-confg</UserInput>
<Prompt>mail:/tftpboot#</Prompt> <UserInput>telnet xyzrouter</UserInput>

Escape character is '^]'.
User Access Verification
<Prompt>Password:</Prompt> <UserInput>****</UserInput>
<Prompt>xyzrouter></Prompt> <UserInput>enable</UserInput>
<Prompt>Password:</Prompt> <UserInput>****</UserInput>
<Prompt>xyzrouter#</Prompt> <UserInput>config network</UserInput>
<Prompt>Host or network configuration file [host]?</Prompt> <UserInput> </UserInput>
<Prompt>Address of remote host [255.255.255.255]?</Prompt> <UserInput>123.12.41.41</UserInput>
<Prompt>Name of configuration file [xyzrouter-confg]?</Prompt> <UserInput> </UserInput>
<Prompt>Configure using loyola-confg from 123.12.41.41? [confirm]</Prompt> <UserInput> </UserInput>
Loading xyzrouter-confg from 123.12.41.41 (via BRI0): !
[OK - 1265/32723 bytes]
<Prompt>xyzrouter#</Prompt> <UserInput>write</UserInput>
<Prompt>xyzrouter#</Prompt> <UserInput>exit</UserInput>
Connection closed by foreign host.

<Prompt>mail:/tftpboot#</Prompt> <UserInput>chmod a-wr,u+r xyzrouter-confg</UserInput>
<Prompt>mail:/tftpboot#</Prompt> <UserInput>exit</UserInput>
</Screen>

</Sect1>

</Chapter>

<Chapter id="various-and-sundry"><Title>Diversen &amp; Allerlei Beheertaken
</Title>

<Para>Linux heeft zichzelf bewezen, tijdens de meer dan vier jaren dat ik het in
gebruik had als Internet-server, uitermate betrouwbaar te zijn en
het vereist zeer weinig handmatig beheer om het draaiend te houden.
Waar mogelijk kunnen en zouden veel repeterende of saaie beheertaken 
moeten worden geautomatiseerd via crontab-velden en script-bestanden.
Om er echter zeker van te zijn dat Linux op probleemloze wijze blijft
functioneren, kunnen van tijd tot tijd snelle controle's worden uitgevoerd.
Dit zijn onder andere:</Para>

<Sect1 id="checking-storage-space"><Title>Het controleren van de opslagruimte</Title>

<Para>Het is belangrijk van tijd tot tijd te controleren dat er voldoende
vrije ruimte op de opslagdevices overblijft. Gebruik het commando 
<Quote><Literal>df</Literal></Quote> voor een rapport over de beschikbare
ruimte. Het zal er ongeveer als volgt uitzien
(de informatie die wordt weergegeven is afkomstig van de Internet-server
op mijn werk):
</Para>

<Screen>
Filesystem         1024-blocks  Used Available Capacity Mounted on
/dev/sda1            1888052  135908  1654551      8%   /
/dev/sdd1            4299828  100084  3977246      2%   /archive
/dev/hda2            3048303  897858  1992794     31%   /archive2
/dev/hda1              11677    1380     9694     12%   /boot
/dev/sdc1            4299828  350310  3727020      9%   /home
/dev/sdb1            4299828  598504  3478826     15%   /usr
/dev/sda2            1888083  700414  1090075     39%   /var
/dev/scd0             593958  593958        0    100%   /cdrom
</Screen>

<Para>Deze bestandssystemen zijn nogal stabiel in dat ze tamelijk langzaam
toenemen.
</Para>

<Para>Het <Quote><Emphasis>/</Emphasis></Quote> (ala root) bestandssysteem,
gemount op /dev/hda1, bevat de Linux-kernel, device drivers, en
andere directory's. Hier worden ook de mailberichten bewaard
(<Emphasis>/var/spool/mail/</Emphasis>) als ook de logbestanden
(<Emphasis>/var/adm/</Emphasis>), maar aangezien mailberichten worden
opgehaald en logbestanden worden gerecycled, blijft de beschikbare capaciteit
tamelijk stabiel (naar schatting een groei van ongeveer 1% per maand).
Logbestanden worden gerouleerd en worden wekelijks automatisch uitgewist, dus je
zal altijd loginformatie van ongeveer een maand tot je beschikking hebben.
</Para>

<Tip><Para>Tip: Concentreer je op de directory /var/spool/mail, als dit
bestandssysteem snel toeneemt, -- zoek naar
zeer grote mailboxen (iets als ``<Literal>find /var/spool/mail -size +1000k
</Literal>'' zou een lijst met mailboxen groter dan 1Mb laten zien).
De gebruiker haalt zijn mail waarschijnlijk niet op, is geabonneerd op een
discussielijst met hoog volume, of hun e-mailpackage is niet zodanig
geconfigureerd dat de mail van de server wordt verwijderd, als je een bestand
aantreft dat groter is dan 1.000.000 bytes. 
Neem contact op met de gebruiker en/of schoon het mailbestand op, met
<Quote><Literal>&gt; mailbox</Literal></Quote>, (bv.
``<Literal>&gt;smithj</Literal>'' om de mailbox van Joe Smith op te schonen).
Controleer ook de directory ``<Literal><Filename>/tmp/</Filename></Literal>''
die mogelijk zo nu en dan moet worden opgeschoond (gewoonlijk blijven oude
tin* bestanden van een afgebroken newsreader-sessie, oude afdrukbestanden, enz.
achter).</Para></Tip>

<Para>Het <Quote>/usr/</Quote> (ala user) bestandssysteem, gemount op
/dev/hda2, bevat gebruikers-installeerbare (gebruiker in de betekenis van
voor de gebruiker ge&iuml;nstalleerd door de systeembeheerder) software,
dingen zoals je website-pagina's, enz. Dit is het grootste bestandssysteem,
en het neemt ook tamelijk langzaam in grootte toe. De logbestanden voor de
webpagina's kunnen hier ook zijn opgeslagen, en nemen in grootte toe;
controleer en trim ze periodiek zover dat nodig is. Aan het begin van de maand
worden op mijn computers de huidige web-logbestanden naar cumulatieve
maandlogs verplaatst (bv. access_log.11 voor November's log entries). Aan
het einde van het jaar worden ze allemaal verwijderd en begint de cyclus opnieuw
(wat betekent dat iedere 1e januari een behoorlijke hoeveelheid beschikbare
ruimte is te bespeuren).</Para>

<Tip><Para>Tip: Kijk in de directory's
 ``<Filename>/usr/local/etc/httpd/logs</Filename>'' en
``<Filename>/usr/local/squid/logs/</Filename>'' (als je ze hebt)
als dit bestandssysteem snel toeneemt. Mogelijk zijn er logbestanden die
te groot worden (als de website misschien teveel werd bezocht)
Als de logs echter regelmatig worden uitgewist zoals ik dat doe, zou je
hier geen problemen met ruimte moeten ervaren. (weliswaar zou ik ze zo
mogelijk liever niet laten verwijderen, als de logs worden gebruikt voor
statische analyses van het verkeer op mijn site). Een andere te controleren
plaats voor potentieel te verwijderen bestanden is
``<Filename>/usr/tmp/</Filename>''.
</Para></Tip>

<Para>Het <Quote>/home/</Quote> (ala user's personal home) bestandssysteem
gemount op /dev/hda3, bevat alle directory's en de bestanden van de
gebruiker(s). Tenzij je shell-accounts uitgeeft, zullen de meeste daarvan
nutteloos en ontoegankelijk zijn voor de gebruiker
(deze directory's werden bij de aanmaak van iedere gebruikersaccount
aangemaakt en ze kunnen later worden gebruikt voor het forwarden van
mail van de gebruiker, enz.). Gebruikers van shell-accounts als ook eventuele
gebruikers zonder shell-accounts die webpagina's hebben (bv. persoonlijke
webpagina's) zullen ze echter waarschijnlijk hier hebben opgeslagen.
Bovendien worden de pagina's van de hoofdserver onder Red Hat,
in de directory /home/httpd opgeslagen, terwijl ze bij andere distributies
meestal in het /usr bestandssysteem worden opgeslagen (zie de <XRef
LinkEnd="web-server-administration"> voor meer informatie).</Para>

<Para>Dit bestandssysteem neemt waarschijnlijk het langzaamste toe, tenzij
je heel veel shell-accounts biedt.
</Para>

<Tip><Para>Tip: Als de grootte van dit bestandssysteem plotseling toeneemt,
komt dat waarschijnlijk doordat &eacute;&eacute;n van je gebruikers webpagina's
of binaire bestanden aan zijn/haar persoonlijke ruimte toevoegt.
Kijk in de ``<Literal><Filename>/var/adm/xferlog.*</Filename></Literal>''
logbestanden voor recente activiteiten, waarin je zou moeten kunnen zien
welke gebruikers iets aan hun webpagina's hebben toegevoegd.
</Para></Tip>

<Para>Ik heb tevens een <Quote>/archive/</Quote> (ala archiefbestanden)
bestandssysteem, gemount op /dev/hdb1, wat een gereserveerde 1.02 Gb harddisk
is die voor ieder doel kan worden gebruikt (bv. gegevensbestanden,
software-kits, enz.). Een groot deel van deze disk (bij benadering 70%)
gebruik ik voor volledige huidige disk-naar-disk backups van het systeem).  
In het algemeen gesproken kun je je eigen devices toevoegen en
ze mounten als je dat wilt.
</Para>

<Para>Ik ben ook in het bezit van een CD-ROM station, gemount als 
<Quote>/mnt/cdrom/</Quote> op /dev/scd0, een 24X-speed SCSI CD-ROM device
waarmee iedere ISO9660 geformatteerde CD kan worden gelezen. Het wordt primair
voor de installatie van software gebruikt, maar 
DOS/Windows CD's kunnen zonodig worden gemount en dan vanuit Windows 3.x/95/NT
netwerk shares via een Samba-service worden benaderd
(zie de <XRef LinkEnd="samba-file-and-print"> voor details).</Para>

<Para>Met het commando <Quote><Literal>rm</Literal></Quote> zal een bestand
worden verwijderd. Het gebruik is ``<Literal>rm bestandsnaam</Literal>''. 
Als je een bevestiging wilt van de verwijdering, gebruik je de optie
<Quote><Literal>-i</Literal></Quote> (bv.  ``<Literal>rm -i *</Literal>'').
Er zal je voor ieder bestand om bevestiging worden gevraagd voordat het
wordt verwijderd.
</Para>

<Note><Para>(Noot: Voor normale shell-gebruikers is dit de standaardwaarde --
maar denk er aan -- het root-account zal voor het verwijderen van bestanden niet
om een bevestiging vragen, tenzij je de optie
<Quote>-i</Quote> opgeeft!)</Para></Note>

<Para>Wees voorzichtig geen domme typfout met dit commando te maken
-- vooral als je als <Quote>root</Quote> bent ingelogd -- omdat dit er toe
zal leiden dat je er spijt van zal krijgen als je het verkeerde bestand
verwijderd.
</Para>

</Sect1>

<Sect1 id="managing-processes"><Title>Processen Beheren</Title>

<Para>Wellicht wil je zo nu en dan de processen die onder Linux draaien
bekijken. Typ ``<Literal>ps -aux</Literal>'' om een lijst met deze
processen te krijgen, wat vergelijkbaar is met de volgende uitvoer:

<Screen>
USER       PID %CPU %MEM  SIZE   RSS TTY STAT START   TIME COMMAND
bin         69  0.0  1.0   788   320  ?  S   Nov 30   0:00 /usr/sbin/rpc.portmap
frampton 10273  0.0  2.1  1136   664  p0 S    14:12   0:00 -bash
frampton 10744  0.0  1.1   820   360  p0 R    17:25   0:00 ps -aux
frampton 10745  0.0  0.8   788   264  p0 S    17:25   0:00 more
nobody   10132  0.0  1.8  1016   588  ?  S    13:36   0:00 httpd
nobody   10133  0.0  1.8   988   568  ?  S    13:36   0:00 httpd
nobody   10413  0.0  1.8  1012   580  ?  S    14:56   0:00 httpd
nobody   10416  0.0  1.8  1012   580  ?  S    14:56   0:00 httpd
nobody   10418  0.0  1.8  1012   588  ?  S    14:57   0:00 httpd
nobody   10488  0.0  1.7   976   556  ?  S    15:34   0:00 httpd
nobody   10564  0.0  1.8   988   564  ?  S    16:06   0:00 httpd
nobody   10600  0.0  1.8   988   564  ?  S    16:15   0:00 httpd
nobody   10670  0.0  1.8   988   568  ?  S    16:45   0:00 httpd
nobody   10704  0.0  1.7   976   552  ?  S    17:03   0:00 httpd
root         1  0.0  1.0   776   312  ?  S   Nov 30   1:13 init [3]
root         2  0.0  0.0     0     0  ?  SW  Nov 30   0:00 (kflushd)
root         3  0.0  0.0     0     0  ?  SW  Nov 30   0:00 (kswapd)
</Screen>
</Para>
<Para>De lijst toont je de eigenaar van het proces (<Quote>nobody</Quote>
voor speciale services zoals webservers), het proces identificatie
nummer, het % aan CPU-tijd dat het proces thans gebruikt, het % aan
geheugen dat het proces consumeert, en andere gerelateerde informatie,
als ook een beschrijving van de taak zelf. 
</Para>

<Para>Typ ``<Literal>ps <Option>pid</Option></Literal>'' om meer informatie
over een gegeven proces te krijgen (waarbij
<Quote><Literal><Option>pid</Option></Literal></Quote> het proces-identificatie
nummer is). Naar ons voorbeeld hierboven kijkend, zou <Quote><Literal>ps
10704</Literal></Quote> weergeven:</Para>

<Screen>
10704  ?  S     0:00 /usr/local/etc/httpd/httpd
</Screen>

<Para>Hiermee wordt aangegeven dat dit bepaalde proces een webserver is
(de Apache webserver verschijnt meerdere malen in de lijst met processen;
zie de <XRef LinkEnd="web-server-administration"> voor informatie over het
waarom).</Para>

<Para>Als je bemerkt dat een service niet werkt, kun je gebruik maken van
<Quote><Literal>kill -HUP <Option>pid</Option></Literal></Quote> (waarbij
<Quote><Literal><Option>pid</Option></Literal></Quote> het proces
identificatienummer is dat in de lijst met processen geproduceerd door
<Quote>ps</Quote> wordt getoond). Als bijvoorbeeld Internet-services
(een proces genaamd inetd, in ons voorbeeld proces #123) niet werken zoals
ze behoren te werken, zal het commando ``<Literal>kill -HUP 123</Literal>''
(of zelfs veiliger, gebruik het ``<Literal>killall</Literal>'' commando en
geef de naam van het proces op: ``<Literal>killall -HUP inetd</Literal>'')
het proces opnieuw opstarten. De optie <Option>-HUP</Option> van het
kill-commando betekent <Quote>hang op</Quote>; het proces weet dat het
verondersteld wordt zichzelf uit het geheugen te verwijderen.
</Para>

<Para>Wat je nog meer zou kunnen proberen, als het je niet lukt het probleem
op te lossen, zou het afsluiten en weer opnieuw opstarten van je systeem kunnen
zijn (zie de <XRef LinkEnd="system-shutdown-and-restart"> voor details).</Para>

<Para>Er zullen keren zijn dat je het wellicht nodig vindt, tijdelijk
een proces te onderbreken, en de uitvoering dan later weer voort te
zetten. Je draait bijvoorbeeld mogelijk een CPU-intensieve taak en wenst
een op IDE gebaseerde CDRecordable te branden.
Aangezien op IDE gebaseerde devices voor veel van het werk achter input/output
op de CPU rekenen, zijn ze vatbaar voor bufferhonger als je CPU het te druk
heeft en eindig je met een onbruikbaar bierviltje in plaats van een
juist geprepareerde CD! Met de volgende twee commando's zal respectievelijk
een proces worden uitgesteld en het weer worden voortgezet:
</Para>

<Screen>
kill -STOP 945
kill -CONT 945
</Screen>

<Para>Red Hat voorziet in een betere manier om een aantal processen te
starten en stoppen, wat hierna in de <XRef LinkEnd="redhat-processes">
wordt behandeld.</Para>


</Sect1>

<Sect1 id="redhat-processes"><Title>Processen Starten en Stoppen</Title>

<Para>De Red Hat distributie van Linux voorziet in een iets beter georganiseerde
wijze om processen te beheren. In plaats van het afzoeken in de tabel met
processen en het killen van het bijbehorende proces-id, voorziet Red Hat in
een verzameling scripts in de directory
``<Literal><Filename>/etc/rc.d/init.d</Filename></Literal>''
waarmee het je mogelijk wordt gemaakt, processen naar wens te starten en
te stoppen.
</Para>

<Para>Voor bijvoorbeeld het afsluiten van de service
``<Literal>httpd</Literal>'' (Apache webserver), start je gewoonweg als volgt
het httpd-script:</Para>

<Screen>
<UserInput>/etc/rc.d/init.d/httpd stop</UserInput>
</Screen>

<Para>Op vrijwel dezelfde manier, kun je de
``<Literal>start</Literal>'' optie gebruiken om een service te starten.
Of als je wijzigingen aan een configuratiebestand hebt aangebracht en een
service opnieuw wenst te starten, waardoor die wijzigingen worden herkend,
kun je de optie ``<Literal>restart</Literal>'' gebruiken.</Para>

<Note><Para>(Noot: Vreemd genoeg, lijkt de optie ``<Literal>restart</Literal>''
voor een aantal services niet te worden ondersteund).
</Para></Note>

</Sect1>

<Sect1 id="using-cron"><Title>Taken Automatiseren met Cron en Crontab bestanden</Title>

<Para>Zoals de meeste Linux-gebruikers, vind je het wellicht nodig
repeterende taken te plannen om op een bepaalde tijd uit te laten voeren.
Dergelijke taken kunnen zo frequent als &eacute;&eacute;nmaal per minuut,
of zo infrequent als &eacute;&eacute;nmaal per jaar plaatsvinden. Deze
planning kan worden bewerkstelligd met behulp van de ``cron'' faciliteiten.
</Para>

<Para>De faciliteiten van cron zoals ge&iuml;mplementeerd onder Linux zijn
tamelijk vergelijkbaar met die in andere Unix-implementaties beschikbaar zijn.
Red Hat volgt echter een iets andere wijze in het plannen van taken dan
gewoonlijk in andere distributies van Linux wordt gedaan.
Net als in andere distributies is de geplande informatie in het systeem
geplaatst in het ``<Literal><Filename>crontab</Filename></Literal>'' bestand
(te vinden in de directory ``<Literal><Filename>/etc/</Filename></Literal>''),
waarbij gebruik wordt gemaakt van het volgende formaat:</Para>

<ProgramListing>
minuut uur dag maand jaar commando
</ProgramListing>

<Para>Je kunt iedere tijdseenheid als een geheel getal opgeven (bv. 1
tot met 12 voor de maanden januari tot en met december), of &eacute;&eacute;n
of meer onderdelen opgegeven als ``<Literal>*</Literal>'' tekens die als
jokertekens zullen worden aangemerkt
(bv. een * in de maand component betekent dat het commando op
<Emphasis>iedere</Emphasis> gegeven dag en tijd wordt uitgevoerd.
Hier zijn wat voorbeelden:
</Para>

<ProgramListing>
# Mail de systeemlogs om 4:30 's-middags iedere 15e juni.
30 16 15 06 * for x in /var/log/*; do cat ${x} | mail postmaster; done

# Informeer om middernacht de beheerder, over de wijzigende seizoenen.
00 00 20 04 * echo 'Woohoo, het is lente!'
00 00 20 06 * echo 'Yeah, de zomer is aangebroken, tijd om naar het strand te gaan!
00 00 20 10 * echo 'De herfst is aangebroken. Haal de jassen maar tevoorschijn. :-('
00 00 20 12 * echo 'Tijd voor 5 maanden ellende.  ;-('
</ProgramListing>

<Para>Merk op dat commando's die uitvoer naar standaarduitvoer produceren
(dwz. een terminal) zoals in de voorbeelden hierboven gebruik maken van
``<Literal>echo</Literal>'' deze uitvoer naar het ``<Literal>root</Literal>''
account zal worden gemaild. Als je dit wilt voorkomen, stuur je de uitvoer
gewoon naar het null device, zoals in het volgende voorbeeld:
</Para>

<ProgramListing>
00 06 * * * echo 'Ik erger dagelijks om 6:00 's-morgens de systeembeheerder!' >/dev/null
</ProgramListing>

<Para>In aanvulling op de standaard ``<Literal>crontab</Literal>'' entries,
voegt Red Hat nog verscheidene directory's toe:</Para>

<Screen>
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/
</Screen>

<Para>Zoals de namen al aangeven, kunnen uitvoerbare bestanden in
ieder van deze directory's worden geplaatst, en zullen die ieder uur,
dagelijks of wekelijks worden uitgevoerd. Dit bespaart een beetje tijd
als je regelmatig voorkomende taken instelt; plaats het uitvoerbare
script of het programma (of een symbolische link naar &eacute;&eacute;n
die elders is opgeslagen) in de van toepassing zijnde directory en je
hebt er geen omkijken meer naar.
</Para>

</Sect1>

</Chapter>

<Chapter id="upgrading-linux"><Title>Linux en Andere Applicaties Upgraden</Title>

<Para>Om zoveel mogelijk uit je Linux-systeem te halen, zoals het toevoegen
van mogelijkheden, het afgeraken van potenti&euml;le bugs, en de verzekering
dat het redelijk vrij is van beveiligingslekken, is het een goed idee je
server -- waaronder de Linux-kernel, de modules en gebruikersutilities --
te upgraden. Nu en dan kan het ook nodig zijn hardware-componenten, zoals
een grotere harddisk te upgraden. Dit hoofdstuk richt zich op dit onderwerp.
</Para>

<Sect1 id="using-rpm"><Title>Het gebruik van de Red Hat Package Manager (RPM)</Title>

<Para>De Red Hat distributie van Linux, waaronder de kernel, library's, en
applicaties worden als RPM-bestanden geleverd. Een RPM-bestand, ook bekend
als een <Quote>package</Quote> is een manier om software te distribueren,
zodat het eenvoudig kan worden ge&iuml;nstalleerd, bijgewerkt, ondervraagd,
en verwijderd. RPM-bestanden bevatten informatie over de naam van het
package, de versie en (als dit van toepassing is) informatie waarvan
de bestanden afhankelijk zijn, het platform (zoals Intel of Alpha, enz.),
en tevens de standaardlocaties waar de bestanden worden ge&iuml;nstalleerd.
</Para>

<Para>Het RPM-utility werd voor het eerst ontworpen als een Open Source
product zoals dit gebruikelijk is in de Linux-gemeenschap. Andere ontwikkelaars
pakte het op en voegde er extra functionaliteit aan toe. De RPM-methode
bij het in een pakket verpakken van bestanden is populair geworden en het
wordt niet alleen voor Red Hat gebruikt maar ook voor een aantal andere
distributies.
</Para>

<Para>Populaire Linux applicaties worden bijna altijd en meestal tamelijk
snel als RPM-bestanden uitgegeven. In de wereld van Unix wordt de
feitelijke standaard voor het distribueren van packages echter voortgezet
in de vorm van zogenoemde <Quote>tarballs</Quote>. Tarballs zijn gewoonweg
bestanden die leesbaar zijn met het utility ``<Literal>tar</Literal>''.
Het installeren vanuit tar is meestal wat lastiger dan met gebruik van
RPM. Dus waarom zouden mensen er voor kiezen? Helaas duurt het soms een paar
weken eer ontwikkelaars de laatste versie van een package naar RPM
geconverteerd krijgen. (veel ontwikkelaars geven ze als eerste als tarballs
uit).</Para>

<Para>Als je een upgrade op je systeem of applicaties met tar
start, dan zal je RPM-database verouderd en inconsistent geraken.
Dit is niet echt een probleem (toen ik Slackware gebruikte, gebruikte ik
zonder al teveel ongemak -- exclusief tar -- er was geen andere keuze),
maar waar mogelijk probeer ik geduldig te zijn en te wachten totdat de
RPM beschikbaar komt, of misschien dat ik de ontwikkelaar van het package
een beleefd verzoek stuur. (Je kunt ook je eigen RPM-bestanden bouwen en
ze naar anderen distribueren, waarmee je andere ontwikkelaars, die de
mogelijkheid of tijd niet hebben om zelf dergelijke bestanden te produceren,
soms behulpzaam kunt zijn).
</Para>

<Para>Een werkelijk goede plaats om uit te zoeken of bepaalde software
in de vorm van een RPM beschikbaar is, is de RPM-opslagplaats
op <ULink URL="http://rufus.w3.org/linux/RPM/">
http://rufus.w3.org/linux/RPM/</ULink>. De opslagplaats voorziet in 
ge&iuml;ndexeerde categori&euml;n, die behulpzaam kunnen zijn bij het
lokaliseren van een gegeven RPM-bestand, en het bevat verwijzingen naar
duizenden van dergelijke bestanden.
</Para>

<Para>Voor het ondervragen van een package, gebruik je
``<Literal>rpm -q pkg-name</Literal>''(bv. ``<Literal>rpm -q pine</Literal>'').
RPM zal je &oacute;f aangeven dat de versie van het package reeds is
ge&iuml;nstalleerd, &oacute;f dat het package niet is ge&iuml;nstalleerd.
</Para>

<Para>Ervan uitgaande dat het package reeds is ge&iuml;nstalleerd, en een
eerdere versie is dan het update package dat je downloadde (wat het zou moeten
zijn), dan zou het mogelijk moeten zijn de update met
``<Literal>rpm -Uvh pkg-name</Literal>'' toe te passen. Als alles goed gaat,
zal het package automatisch worden ge&iuml;nstalleerd en is onmiddellijk
klaar voor gebruik. Als dit niet zo is, zal RPM je een tamelijk goede reden
geven (bijvoorbeeld omdat er eerst een upgrade moet worden toegepast op
een ondersteunend package). Mogelijk is hier wat denkwerk voor nodig, maar
problemen als deze zijn zeer eenvoudig uit te komen.
</Para>

<Para>Als aan de andere kant, het package nog <Emphasis>niet</Emphasis> 
is ge&iuml;nstalleerd, en je besluit dat je het wenst te installeren, dan
typ je ``<Literal>rpm -ivh pkg-name</Literal>''. Als er enige ondersteunende
packages zijn vereist, dan zal RPM je dit aangeven.
</Para>

<Para>Soms zal je een package willen installeren dat alleen in het bronformaat
beschikbaar is. In feite zou je vanuit de source <Emphasis>moeten</Emphasis>
installeren voor het geval het binaire package een trojan horse of iets
anders vervelends bevat (natuurlijk zou iets dergelijks ook in een source
voor kunnen komen, maar dat is zeer onwaarschijnlijk omdat die vermoedelijk
op korte termijn door een andere ontwikkelaar zou worden ontmaskerd).
</Para>

<Para>De wijze om een package vanuit de source te installeren, is door
het aan het RPM-utility specificeren van de
``<Literal>rebuild</Literal>'' switch. Bijvoorbeeld:</Para>

<Screen>
<UserInput>rpm -ivh --rebuild foo.src.rpm</UserInput>
</Screen>

<Para>Hiermee zou het package ``foo'' worden geconfigureerd en gecompileerd,
waarbij een binair RPM-bestand in de directory
``<Literal><Filename>/usr/src/redhat/RPMS/i386/</Filename></Literal>''
zou worden geproduceerd (ervan uitgaande dat je Linux op het Intel-platform
gebruikt). Je kunt het package dan net als anders installeren.
</Para>

<Para>Tenslotte, als je problemen krijgt bij het compileren van een
source-package (misschien dat je een makefile moet wijzigen, of een
configuratie-optie moet veranderen, enz.) kun je de volgende stappen volgen
(waarbij we het wederom illustreren van de hand van ons fictieve 
voorbeeldpackage ``foo'') om de source te compileren, een nieuw binair package
te bouwen en het dan vanuit het binaire package te installeren:
</Para>

<Screen>
<UserInput>rpm -ivh foo.src.rpm</UserInput>
<UserInput>cd /usr/src/redhat/SPECS</UserInput>
<UserInput>pico -w foo.spec</UserInput>
</Screen>

<Para>Maak de wijzigingen die je nodig acht aan het ``.spec'' bestand, en
tik vervolgens in:</Para>

<Screen>
<UserInput>rpm -ba foo.spec</UserInput>
</Screen>

<Para>Hiermee zal het package opnieuw worden samengesteld met de wijzigingen
die je aan het ``.spec'' bestand hebt aangebracht. Net als hiervoor, zal
het binaire RPM-bestand te lokaliseren zijn in 
``<Literal><Filename>/usr/src/redhat/RPMS/i386/</Filename></Literal>'',
en kan net als anders worden ge&iuml;nstalleerd.</Para>

<Para>Voor meer informatie over RPM zou je in de Red Hat documentatie moeten
kijken. Het is een uitermate krachtig hulpmiddel dat het waard is om beter te
leren kennen. De beste bron met informatie over RPM is ``Maximum RPM'', dat
zowel in de vorm van een boek als ook in postscript-formaat beschikbaar is op
<ULink URL="http://www.rpm.org/maximum-rpm.ps.gz">
http://www.rpm.org/maximum-rpm.ps.gz</ULink>.  (Als je besluit het
postscript-document af te drukken, houdt dan in de gaten dat je hier
<Emphasis>heel veel</Emphasis> papier voor nodig hebt!).
Er is tevens een kleinere gids beschikbaar, de ``<Literal>RPM-HOWTO</Literal>'',op <ULink URL="http://www.rpm.org/support/RPM-HOWTO.html">
http://www.rpm.org/support/RPM-HOWTO.html</ULink>.
</Para>

</Sect1>

<Sect1 id="using-tarballs"><Title>Installeren en Upgraden Zonder RPM</Title>

<Para>Soms kan je het nodig vinden een applicatie te installeren of upgraden
waarvan geen RPM-package beschikbaar is. Uiteraard is het zeker mogelijk
om iets dergelijks te doen (in feite is het in de <Quote>echte</Quote>
wereld van Unix <Quote>feitelijke standaard</Quote> wijze om iets te doen),
maar ik raad het je niet aan, tenzij het absoluut noodzakelijk is 
(zie de <XRef LinkEnd="using-rpm"> voor redenen over het waarom).</Para>

<Para>Mocht het nodig zijn dat je iets vanuit tarballs installeert, dan is
de algemene stelregel voor systeemomvattende software-installaties het in
het bestandssysteem ``<Literal><Filename>/usr/local/</Filename></Literal>''
te plaatsen. Daarom zouden source-tarballs in 
``<Literal><Filename>/usr/local/src/</Filename></Literal>'' uit moeten
worden gepakt, terwijl de resulterende binaire bestanden waarschijnlijk in
``<Literal><Filename>/usr/local/bin</Filename></Literal>'' zouden worden
ge&iuml;nstalleerd, en de bijbehorende configuratiebestanden in
``<Literal><Filename>/usr/local/etc/</Filename></Literal>''. Het volgen
van een dergelijk schema zal de administratie van je systeem er wat
eenvoudiger op maken (ofschoon niet zo eenvoudig als op een systeem
samengesteld uit alleen RPM-archieven).
</Para>

<Para>Tenslotte zouden eindgebruikers die software vanuit tarballs voor
eigen priv&eacute;-gebruik willen installeren, dit waarschijnlijk onder
hun eigen homedirectory doen.
</Para>

<Para>Na het downloaden van het tar-archief vanaf je betrouwbare 
software-archief, ga je naar de van toepassing zijnde top-level directory
en pak je het archief uit door het typen (zonodig als root) van de commando's
als in het volgende voorbeeld:
</Para>

<Screen>
tar zxvpf cardgame.tar.gz
</Screen>

<Para>Met dit commando zullen alle bestanden vanuit het gecomprimeerde
``<Literal><Filename>cardgame.tar.gz</Filename></Literal>''-archief worden
ge&euml;xtraheerd. Met de optie ``<Literal>z</Literal>'' wordt aan tar
opgegeven dat het archief met gzip is gecomprimeerd 
(dus laat deze optie achterwege als je tarball niet is gecomprimeerd);
met de optie ``<Literal>x</Literal>'' wordt aan tar opgegeven alle bestanden
vanuit het archief te extraheren. De optie ``<Literal>v</Literal>'' staat voor
verbose, het weergeven van alle bestandsnamen naar het display als ze worden
ge&euml;xtraheerd. De optie ``<Literal>p</Literal>'' beheert het origineel
en de permissies die de bestanden hadden toen het archief werd aangemaakt.
Als laatste de optie ``<Literal>f</Literal>'' waarmee aan tar wordt opgegeven
dat het allereerste daaropvolgende argument de bestandsnaam is.
Vergeet niet dat de opties van tar hOoFdLeTtErGeVoElIg zijn.
</Para>

<Caution><Para>Pas op: Zoals reeds vermeld in de <XRef LinkEnd="tar-restore">, 
raad ik je aan eerst gebruik te maken van de optie ``<Emphasis>t</Emphasis>''
voor het weergeven van de inhoud van het archief om de inhoud te
verifi&euml;ren v&oacute;&oacute;r het werkelijk extraheren van de bestanden.
Dit doen kan helpen voorkomen dat bestanden in onbedoelde lokaties worden
uitgepakt, of zelfs nog erger, per ongeluk bestaande bestanden overschrijven.
</Para></Caution>

<Para>Zodra het tar-archief in de van toepassing zijnde directory is
ge&iuml;nstalleerd, zal je bijna zeker een 
``<Literal><Filename>README</Filename></Literal>'' of een
``<Literal><Filename>INSTALL</Filename></Literal>'' bestand aantreffen tussen de
nieuw ge&iuml;nstalleerde bestanden, met verdere instructies over hoe
het software-package voor gebruik voor te bereiden.
Vermoedelijk zal je commando's vergelijkbaar met het volgende voorbeeld
uit moeten voeren: 
</Para>

<Screen>
./configure
make
make install
</Screen>

<Para>Met deze commando's zou de software worden geconfigureerd om er zeker
van te zijn dat het systeem de nodige functionaliteit en library's heeft om
het package succesvol te kunnen compileren, alle bronbestanden naar uitvoerbare
binaire bestanden worden gecompileerd, en vervolgens zouden de binaire
en alle ondersteunende bestanden naar de van toepassing zijnde lokaties worden
verplaatst. De werkelijke procedures die je zal moeten volgen,
kunnen uiteraard tussen de diverse software-packages vari&euml;ren, dus
je zou alle opgenomen documentatie grondig door moeten lezen.
</Para>

<Para>Nogmaals, ik raad je echt aan tar-archieven te vermijden en het
te houden bij RPM als dat kan, tenzij het absoluut noodzakelijk is.
</Para>

</Sect1>

<Sect1 id="keeping-up-to-date"><Title>Strategi&euml;n voor het Bijhouden van een
Up-to-date Systeem</Title>

<Para>Van tijd tot tijd zal je via diverse bronnen mogelijk horen over
veelbetekenende upgrades aan de Linux-kernel of gebruikersapplicaties.
Deze bronnen kunnen onder andere bestaan uit tijdschriften, nieuwsgroepen,
webpagina's, enz.</Para>

<Para>Vermoedelijk de beste enkele bron online waar een Linux systeembeheerder
een oogje op zou kunnen -- nee, <Emphasis>moet</Emphasis> -- houden is de <ULink
URL="http://freshmeat.net/">http://freshmeat.net/</ULink> website.
Deze site bevat beschrijvingen van nieuwe Open Source applicaties en
projecten, documentatie, en andere aankondigingen van belang voor de
Linux-gemeenschap.
</Para>

<Para>Een andere bron voor het bijhouden van aankondigingen over nieuwe
applicaties is via de nieuwsgroep <ULink URL="news:comp.os.linux.announce">
comp.os.linux.announce</ULink>. In deze nieuwsgroep worden aankondigingen
voor Linux beschikbare nieuwe applicaties, een aantal kernel of
applicatie-upgrades, webpages, enz gepost.
Het is een moderated nieuwsgroep en heeft daarom een hoge
<Quote>signaal/ruis</Quote>verhouding.</Para>

<Para>Niet alle aankondigingen van upgrades aan producten worden echter in
comp.os.linux.announce gemeld. Daarom is het bovendien waarschijnlijk een
goed idee, de webpagina's of FTP-sites voor de door jou gebruikte applicaties
bezoeken.
</Para>

</Sect1>

<Sect1 id="linux-kernel-upgrades"><Title>Linux Kernel Upgrades</Title>

<Para>Het kan verstandig zijn van tijd tot tijd je Linux-kernel te upgraden.
Dit zal je de mogelijkheid geven met nieuwe mogelijkheden en bugfixes
bij te blijven zodra ze beschikbaar komen.
Of misschien dat je Linux op nieuwe of speciale hardware draait,
of bepaalde mogelijkheden wenst te activeren waarvoor een aangepaste
kernel nodig is.
</Para>

<Para>In deze sectie zal het upgraden en aanpassen van een nieuwe kernel
worden beschreven. Het is niet zo moeilijk als je wellicht denkt!</Para>

<Para>Aankondigingen van nieuwe kernelversies kunnen via diverse bronnen
worden verkregen, waaronder de nieuwsgroep 
<ULink URL="news:comp.os.linux.announce">
comp.os.linux.announce</ULink>, als ook op de websites 
<ULink URL="http://freshmeat.net/">http://freshmeat.net/</ULink>
en <ULink URL="http://slashdot.org/">http://slashdot.org/</ULink>.
</Para>

<Para>Merk alsjeblieft op dat er thans twee <Quote>stromen</Quote> 
kernel development zijn -- &eacute;&eacute;n stroom wordt aangemerkt als
<Quote>stabiele</Quote> releases, terwijl de andere stroom wordt aangemerkt als 
<Quote>development</Quote>-releases. Voor kritieke applicaties
zoals een Internet-server, is het sterk aan te bevelen dat je de stabiele
releases gebruikt en de development kernels uit de weg gaat.
</Para>

<Para>Het verschil tussen de twee stromen is dat met de development
kernels, nieuwe nog niet geteste hardware-drivers, bestandssystemen en
andere ontwikkelingen regelmatig worden ge&iuml;ntroduceerd. Deze kernels zijn
alleen voor hackers -- mensen die het niet uitmaakt hun systeem te rebooten,
mocht een kernelbug naar de voorgrond treden.</Para>

<Para>De stabiele kernels introduceren alleen nieuwe mogelijkheden en drivers
als ze grondig zijn getest.
Minor releases in deze stroom dienen er ook voor eventuele resterende
gevonden en gecorrigeerde fouten op te schonen.
</Para>

<Para>De twee stromen gebruiken versienummers anders, als hulpmiddel onderscheid
te maken tussen de twee stromen. De stabiele kernels worden met een even
tweede nummer (bv. 2.0.35, 2.0.36, 2.2.4) aangeduid, terwijl de development
kernels zijn genummerd met een oneven tweede nummer (bv. 2.1.120, 2.1.121,
2.3.0).</Para>

<Para>De laatste stabiele kernel is altijd in het bronformaat als ook
als voorgecompileerd binair formaat beschikbaar op de FTP-site 
<ULink URL="ftp://ftp.redhat.com/redhat/updates/">
ftp://ftp.redhat.com/redhat/updates/</ULink>. Download de
gewenste kernelpackages voor je versie en platform (je zou bijvoorbeeld
naar de directory ``<Literal><Filename>/6.1/i386/</Filename></Literal>''
navigeren en
de ``<Literal><Filename>kernel-*.i386.rpm</Filename></Literal>''
bestanden voor de 6.1 versie om de Intel-versie te downloaden).</Para>

<Note><Para>Noot: Je hoeft de kernel-sources niet te downloaden tenzij je
van plan bent zelf een aangepaste kernel te bouwen
(zie de <XRef LinkEnd="kernel-custom"> voor details over het bouwen van een
aangepaste kernel).
</Para></Note>

<Para>Soms kan je het nodig vinden een kernel te gebruiken welke nog niet
beschikbaar is als een RPM. In dit geval kan je de laatste kernels
vinden op de FTP-site 
<ULink URL="ftp://ftp.kernel.org">ftp://ftp.kernel.org</ULink>, in de
<ULink URL="ftp://ftp.kernel.org/pub/linux/kernel/">
/pub/linux/kernel/</ULink> directory. Ga naar de van toepassing zijnde major
versie subdirectory (bv. ``<Literal><Filename>v2.0</Filename></Literal>''),
waarin alle kernel-releases tot aan de meest huidige voorkomen.
Download het gewenste kernel package (als voorbeeld, het gecomprimeerde
tar-archief voor versie 2.0.36 voor het Intel platform zal 
``<Literal><Filename>linux-2.0.36.tar.gz</Filename></Literal>''
zijn genoemd) en pak het uit in de directory
``<Literal><Filename>/usr/src</Filename></Literal>''.</Para>

<Note><Para>Noot: De meeste gebruikers-ge&iuml;nstalleerde applicaties
die niet vanuit RPM worden ge&iuml;nstalleerd, zouden volgens afspraak onder de
directory ``<Literal><Filename>/usr/local/src/</Filename></Literal>'' 
moeten worden uitgepakt, maar dit is een kernel-tree en dus maken we in dit
geval een uitzondering. :-)
</Para></Note>

<Para>Houd alsjeblieft in de gaten dat als je besluit je kernel door het
downloaden van een tarball te upgraden, je het beslist zelf zal moeten
configureren, compileren en installeren. Tenzij je speciale behoeften
hebt waarvoor de allerlaatste ontwikkelaars kernel is vereist,
raad ik je <Emphasis>ten zeerste</Emphasis> aan je kernel via de
door Red Hat geleverde RPM-bestanden te upgraden -- deze zijn voor je
voorgeconfigureerd en voorgecompileerd, alhoewel je ook een aangepaste
kernel vanuit RPM-bestanden kunt compileren als je dat wenst.
</Para>

</Sect1>

<Sect1 id="kernel-upgrade"><Title>Upgraden van een Red Hat Stock Kernel</Title>

<Para>Verreweg de makkelijkste manier om je kernel te upgraden is dit
te doen door gebruik te maken van een stock kernel RPM zoals ze door Red Hat
wordt geleverd. Deze RPM-bestanden bevatten voorgecompileerde binaire
kernelcode, met ondersteuning voor een grote diversiteit aan
hardware en populaire mogelijkheden.</Para>

<Para>Het installeren van een stock kernel is eenvoudig te doen en brengt
weinig risico met zich mee. Typ gewoonweg als root, de volgende reeks
commando's:
</Para>

<Screen>
<UserInput>rpm -Uvh kernel-2.0.36.i386.rpm</UserInput>
<UserInput>cd /boot</UserInput>
<UserInput>ls</UserInput>
</Screen>

<Para>Let op de nieuwe kernelnaam, zoals gerapporteerd door het commando
``<Literal>ls</Literal>''. Je bent ge&iuml;nteresseerd in het bestand
``<Literal><Filename>vmlinuz</Filename></Literal>''; de derde RPM-release
van kernel 2.0.36 zou bijvoorbeeld
``<Literal><Filename>vmlinuz-2.0.36-3</Filename></Literal>'' heten.</Para>

<Para>Gebruik nu een editor om het LILO configuratiebestand te wijzigen
(typ: ``<Literal>pico -w /etc/lilo.conf</Literal>'') en wijzig de regel
``<Literal>image=/boot/...</Literal>'' zodanig dat het naar het nieuwe
kernelbestand verwijst. Nadat je dit hebt gedaan, typ je
``<Literal><Filename>/sbin/lilo</Filename></Literal>''. Als LILO een
foutmelding rapporteert, controleer je de bestandsnaam in
``<Literal><Filename>lilo.conf</Filename></Literal>'' nogmaals met
de bestandsnaam in de ``<Literal><Filename>/boot/</Filename></Literal>''
directory.</Para>

<Caution><Para>Pas op: Vergeet deze stap niet!</Para></Caution>

<Para>(Bij de commando's hierboven wordt ervan uitgegaan dat je het Intel
platform gebruikt en gebruik maakt van LILO om je systeem te booten.
Zie de <XRef LinkEnd="install-lilo"> voor details over de LILO bootloader).
</Para>

<Para>Nadat je een upgrade op je stock kernel hebt uitgevoerd en je
bootloader informatie hebt bijgewerkt, zou je het systeem af moeten kunnen
sluiten en met de nieuwe kernel op moeten kunnen starten
(zie de <XRef LinkEnd="system-shutdown-and-restart"> voor 
details over het afsluiten van je systeem).</Para>

</Sect1>

<Sect1 id="kernel-custom"><Title>Bouwen van een Aangepaste Kernel</Title>

<Para>Als je Linux op een systeem draait, of mogelijkheden wenst te gebruiken,
die niet in de stock kernels worden ondersteund, of misschien dat je
het geheugen dat de kernel in beslag neemt wilt verminderen om beter gebruik
te maken van het systeemgeheugen, vind je het wellicht nodig je eigen 
aangepaste kernel te bouwen.
</Para>

<Para>Het upgraden van de kernel bestaat uit het configureren van de
gewenste modules, het compileren van de kernel en modules en als laatste
het installeren van de kernel-image.
Dit wordt gevolgd door een systeemboot (met de vingers gekruist!) om de
nieuwe kernel te laden. Dit is allemaal gedocumenteerd in het
``<Literal><Filename>README</Filename></Literal>'' bestand dat met ieder
kernel-package wordt meegeleverd. Verdere informatie is te vinden in de
``<Literal><Filename>Documentation/</Filename></Literal>'' subdirectory.  
Een in het bijzonder behulpzaam bestand is 
``<Literal><Filename>Configure.help</Filename></Literal>'' waarin
gedetailleerde informatie staat over de beschikbare kernel compileer-opties
en modules.
</Para>

<Para>Het volgende is een voorbeeldsessie waarbij wordt gedemonstreerd hoe
je een aangepaste kernel, versie 2.0.36 voor het Intel-platform kunt
bouwen. Ondanks dat het bouwen van een aangepaste kernel gewoonlijk een
kwestie is van het configureren, compileren &amp; installeren, is het
soms (meestal in het geval van nieuwe hardware) nodig aanvullende
driversoftware te downloaden mocht je hardware nog niet worden ondersteund
door de kernelversie die je gaat compileren.
</Para>

<Para>De eerste stap in het bouwen van een aangepaste kernel bestaat uit
het downloaden en installeren van de kernel-sources &oacute;f vanuit een
RPM- (heeft de voorkeur), &oacute;f vanuit een tar-archief.
Zie de <XRef LinkEnd="linux-kernel-upgrades"> voor details over het verkrijgen
van de juiste bestanden.
</Para>

<Para>Gebruik vervolgens het ``<Literal>rpm</Literal>'' utility (of
``<Literal>tar</Literal>'', als dit van toepassing is) om de kernel-source
structuur en header bestanden te installeren.
Om bijvoorbeeld de 2.0.36-3 kernel RPM-bestanden te installeren:
</Para>

<Screen>
<UserInput>rpm -Uvh kernel-source-2.0.36-3.i386.rpm kernel-headers-2.0.36-3.i386.rpm</UserInput>
<UserInput>rpm -Uvh kernel-ibcs-2.0.36-3.i386.rpm</UserInput>
</Screen>

<Para>(Als je Linux op een notebook draait, zou je waarschijnlijk
ook het bestand
``<Literal><Filename>kernel-pcmcia-cs-2.0.36-3.i386.rpm</Filename></Literal>''
willen downloaden, waarmee in mogelijkheden voor power management wordt
voorzien).</Para>

<Para>Na het installeren van de kernel-bestanden, zou je de nieuwe
source tree in de ``<Literal><Filename>/usr/src/linux/</Filename></Literal>''
directory moeten kunnen vinden.</Para>

<Para>De volgende stap bestaat uit het downloaden van de aanvullende
driverbestanden (als dit van toepassing is) en het installeren daarvan
in de nieuwe kernel source-tree. Om bijvoorbeeld ondersteuning voor
de Mylex DAC960 hardware RAID-controller toe te voegen, zou ik de
driversoftware downloaden van de website
<ULink URL="http://www.dandelion.com/"> http://www.dandelion.com/</ULink>.
Helaas wordt dergelijke driversoftware vaak alleen als een tar-archief
aangeboden en moet het worden ge&iuml;nstalleerd door gebruik te maken van
het ``<Literal>tar</Literal>'' utility. Bijvoorbeeld:</Para>

<Screen>
<UserInput>cd /usr/src/</UserInput>
<UserInput>tar zxvpf DAC960-2.0.0-Beta4.tar.gz</UserInput>
</Screen>

<Para>Als dit van toepassing is, zou je de documentatie moeten lezen die
met je aanvullende driversoftware wordt meegeleverd.
Bij de DAC960-driver wordt bijvoorbeeld een bestand
``<Literal><Filename>README</Filename></Literal>'' meegeleverd waarin
instructies worden gegeven over waar de nieuwe gedownloade bestanden
zouden moeten zijn gelokaliseerd en hoe de kernel-patch kan worden toegepast:
</Para>

<Screen>
<UserInput>mv README.DAC960 DAC960.[ch] /usr/src/linux/drivers/block</UserInput>
<UserInput>patch -p0 < DAC960.patch</UserInput>
</Screen>

<Para>De volgende stap is om er zeker van te zijn dat de links naar
symbolische bestanden op je systeem consistent zijn met de nieuwe
kernel-structuur. Eigenlijk hoeft deze stap slechts &eacute;&eacute;nmaal
te worden gedaan, dus het volgende hoeft alleen te worden gedaan als je nog
niet eerder een aangepaste kernel hebt gecompileerd:
</Para>

<Screen>
<Prompt>mail:/usr/src#</Prompt> <UserInput>cd /usr/include</UserInput>
<Prompt>mail:/usr/include#</Prompt> <UserInput>rm -rf asm linux scsi</UserInput>
<Prompt>mail:/usr/include#</Prompt> <UserInput>ln -s /usr/src/linux/include/asm-i386 asm</UserInput>
<Prompt>mail:/usr/include#</Prompt> <UserInput>ln -s /usr/src/linux/include/linux linux</UserInput>
<Prompt>mail:/usr/include#</Prompt> <UserInput>ln -s /usr/src/linux/include/scsi scsi</UserInput>
</Screen>

<Note><Para>Noot: De stap hierboven is voor 2.2.x of hogere kernelversies
niet langer nodig.
</Para></Note>

<Para>De volgende stap bestaat uit het configureren van je kernel-instellingen.
Dit is de belangrijkste stap bij het bouwen van de aangepaste kernel.
Als je de verkeerde instellingen deactiveert, zal er geen ondersteuning zijn
voor kenmerken of hardware die je nodig hebt.
Als je echter de verkeerde instellingen <Emphasis>activeert</Emphasis> zal
de kernel onnodig groot worden en zal waardevol systeemgeheugen worden
verspild (met dat te hebben gezegd, is het waarschijnlijk beter een fout
te maken bij het laatstgenoemde dan het eerstgenoemde).
</Para>

<Para>De beste manier om er zeker van te zijn dat je de kernel juist
compileert is door bekend te zijn met de mogelijkheden die je zal moeten
gebruiken, en welke hardware er in je systeem zit waar je ondersteuning voor
nodig zal hebben. Nadat je een paar keer ervaring hebt opgedaan in het
aanpassen van je kernel, zal het proces <Quote>vanzelfsprekend</Quote> worden en
niet meer zo intimiderend lijken!</Para>

<Para>Typ het volgende om het configuratieproces te beginnen:</Para>

<Screen>
<Prompt>mail:/usr/include#</Prompt> <UserInput>cd /usr/src/linux</UserInput>
<Prompt>mail:/usr/src/linux#</Prompt> <UserInput>make mrproper</UserInput>
<Prompt>mail:/usr/src/linux#</Prompt> <UserInput>make menuconfig</UserInput>
</Screen>

<Para>(Als je het X Window Systeem draaiend hebt, zou je 
``<Literal>make xconfig</Literal>'' in kunnen tikken in plaats van
``<Literal>make menuconfig</Literal>'';
zie <XRef LinkEnd="xwindows-configuration"> voor details over hoe je
X werkend krijgt).
</Para>

<Para>Neem voor het configureren van de kernel de diverse instellingen door
en selecteer (activeer) die instellingen die je nodig hebt, en deselecteer
(deactiveer) die instellingen die niet vereist zijn.
Je kunt een keuze maken uit ondersteuning die in de kernel is ingebouwd
of dat het als een module wordt gebouwd die wanneer nodig door de kernel
kan worden geladen en uit het geheugen kan worden verwijderd wanneer het
niet meer nodig is. (Als je een kenmerk, zoals een SCSI-driver, als een
module compileert die echt nodig is om je systeem te booten zal je
een RAMdisk-image aan moeten maken anders zal je systeem niet kunnen booten.
Dit wordt gedaan met het commando ``<Literal>mkinitrd</Literal>''; 
deze procedure wordt even verderop beschreven).
</Para>

<Para>Bij het doornemen van de configuratie-instellingen, kun je
<Literal>&lt;Help&gt;</Literal> selecteren voor een beschrijving waarvoor
een gegeven kernel-optie is.
</Para>

<Para>Typ voor het compileren van je kernel de volgende commando's nadat je
de kernel-instellingen hebt geconfigureerd:
</Para>

<Screen>
<Prompt>mail:/usr/src/linux#</Prompt> <UserInput>make dep ; make clean</UserInput>
<Prompt>mail:/usr/src/linux#</Prompt> <UserInput>make bzImage</UserInput>
<Prompt>mail:/usr/src/linux#</Prompt> <UserInput>make modules</UserInput>
</Screen>

<Para>Als je dezelfde kernel als voorheen opnieuw aan het
<Emphasis>compileren</Emphasis> bent (in dit voorbeeld 2.0.36-3), zal je
wellicht de bestaande modules naar een backupdirectory willen verplaatsen
zoals met het volgende commando:
</Para>

<Screen>
<Prompt>mail:/usr/src/linux#</Prompt> <UserInput>mv /lib/modules/2.0.36-3 /lib/modules/2.0.36-3-backup</UserInput>
</Screen>

<Para>Typ nu het volgende commando om de nieuwe modules daadwerkelijk te
installeren:</Para>

<Screen>
<Prompt>mail:/usr/src/linux#</Prompt> <UserInput>make modules_install</UserInput>
</Screen>

<Para>De volgende stap bestaat uit het kopi&euml;ren van de kernel naar
de ``<Literal><Filename>/boot/</Filename></Literal>'' directory en met LILO
het bootrecord bij te werken zodat de nieuwe kernel wordt herkend. 
De volgende commando's zullen een backupkopie van je bestaande kernel maken,
de nieuwe kernel kopi&euml;ren en vervolgens het LILO-bootrecord verversen:
</Para>

<Screen>
<Prompt>mail:/usr/src/linux#</Prompt> <UserInput>cd /boot</UserInput>
<Prompt>mail:/boot#</Prompt> <UserInput>cp vmlinuz vmlinuz.OLD</UserInput>
<Prompt>mail:/boot#</Prompt> <UserInput>cp /usr/src/linux/arch/i386/boot/bzImage vmlinuz-2.0.36</UserInput>
<Prompt>mail:/boot#</Prompt> <UserInput>/sbin/lilo</UserInput>
</Screen>

<Para>Tenslotte zal je het bestand
 ``<Literal><Filename>/etc/lilo.conf</Filename></Literal>'' moeten wijzigen,
en er voor moeten zorgen dat de <Quote>image</Quote> verwijzing naar de nieuwe
kernel verwijst. Je zou ook een sectie toe kunnen voegen die naar de backup
van je kernel, wellicht genaamd <Quote>OudeLinux</Quote> zal verwijzen. 
Hier is een voorbeeldbestand:</Para>

<ProgramListing>
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz
	label=Linux
	root=/dev/hdb1
	read-only
image=/boot/vmlinuz.OLD
	label=OudeLinux
        read-only
</ProgramListing>

<Para>Door op deze wijze de informatie over je backupkernel toe te voegen,
kun je gewoon ``<Literal>OudeLinux</Literal>'' intikken om van de oude kernel
te booten, mocht het je niet lukken op juiste wijze van de nieuwe kernel
te booten, om vervolgens het probleem te kunnen onderzoeken (misschien dat
een device niet werd herkend, of een daemon niet startte zoals het dat zou
moeten doen).
</Para>

<Note><Para>Noot: Zoals eerder vermeld, zal je een initi&euml;le RAM
disk-image aan moeten maken om je systeem te booten, als je een feature
hebt gecompileerd die vereist je systeem als een module te booten (Vergeet je
kernel niet met ondersteuning voor een dergelijke initi&euml;le boot-image te
compileren).
</Para></Note>

<Para>De procedure voor het aanmaken en gebruiken van een initi&euml;le
RAM-diskimage is als volgt:
</Para>

<ItemizedList Mark="Bullet" Spacing="Normal">
<ListItem><Para>Voeg een record toe aan
``<Literal><Filename>/etc/lilo.conf</Filename></Literal>'' om van de
initi&euml;le RAM disk-image te booten;
dit wordt getoond in aanvulling op het eerdere getoonde voorbeeld
configuratiebestand:
</Para>

<ProgramListing>
image=/boot/vmlinuz
        label=Linux
        root=/dev/hdb1
        initrd=/boot/initrd-2.2.4-4.img
        read-only
</ProgramListing>
</ListItem>

<ListItem><Para>Het loopback-device moet worden geladen voordat je
het commando mkinitrd kunt gebruiken. Zorg ervoor dat de module
voor het loopback-device is geladen:
</Para>

<Screen>
<UserInput>/sbin/insmod loop</UserInput>
</Screen>

<Para>(Als je een foutmelding krijgt over dat het de loopback-module
niet kan laden, dan zal je wellicht het volledige pad naar de module voor
de <Emphasis>huidige</Emphasis> kernel waaronder je systeem nog steeds draait,
op moeten geven, bijvoorbeeld.
``<Literal><Filename>/lib/modules/2.0.35/loop</Filename></Literal>''.)</Para></ListItem>

<ListItem><Para>Gebruik het commando ``<Literal>mkinitrd</Literal>'' om de
image echt aan te maken:
</Para>

<Screen>
<UserInput>/sbin/mkinitrd /boot/initrd-2.0.36-3.img 2.0.36-3</UserInput>
</Screen>
</ListItem>

<ListItem><Para>Start ``<Literal>/sbin/lilo</Literal>'' voor het bijwerken
van je bootloader.
</Para></ListItem>
</ItemizedList>

<Para>Sluit nu je systeem af en boot de nieuwe kernel!</Para>

<Screen>
<Prompt>mail:/boot#</Prompt> <UserInput>/sbin/shutdown -r now</UserInput>
</Screen>

<Para>Raak niet in paniek, als je kernel in alle opzichten weigert te booten.
Boot van de bootdisk die tijdens de installatie van Linux werd aangemaakt.
Als je geen kopie&euml;n van deze disks hebt, zou je er &eacute;&eacute;n
van de Red Hat CD af moeten kunnen maken. Doe de bootdiskette in de drive en
reboot de computer. Bij het zien van de <Quote>boot:</Quote>-prompt,
typ je:</Para>

<Screen>
<UserInput>mount root=/dev/hda1</UserInput>
</Screen>

<Para>Bij dit commando wordt verondersteld dat je <Quote>/</Quote> (root)
partitie op /dev/hda1 is gelokaliseerd.
</Para>

<Para>Linux zou normaal moeten booten (alhoewel niet alle services of
devices juist opereren voor deze sessie, aangezien je de kernel vanaf
de bootdisk gebruikt), en dan kun je de oude kernel terugzetten en
de LILO bootloader informatie herinstalleren
(dwz. ``<Literal>mv /vmlinuz.old /vmlinuz ; /sbin/lilo</Literal>'') 
en het systeem afsluiten/herstarten. Vervolgens kun je proberen de
kernel opnieuw, ditmaal met andere opties, te compileren en het nogmaals
te proberen.
</Para>

</Sect1>

<Sect1 id="linux-2.2.x"><Title>Overstappen op Linux 2.2.x Kernels</Title>

<Para>De Linux kernel 2.2.0 werd uitgegeven op 25 januari, 1999, 
met veel nieuwe mogelijkheden, performance verbeteringen, en hardware
ondersteuning. Een bestaand Linux-systeem kan (onder voorbehoud) op vrijwel
dezelfde wijze met &eacute;&eacute;n van deze nieuwe kernels worden bijgewerkt
zoals beschreven in de <XRef LinkEnd="linux-kernel-upgrades">.</Para>

<Para>In deze sectie zal worden beschreven hoe je je Red Hat systeem met
de nieuwe kernels upgrade. Aangezien Red Hat 6.0 (en hoger) reeds standaard met
de nieuwe kernel en ondersteunende packages wordt geleverd, zal deze sectie
alleen bruikbaar zijn voor degenen die nog steeds een eerdere versie, zoals
5.2, gebruiken. Ik zal deze sectie in een toekomstige versie van dit document
waarschijnlijk verwijderen, zodra ik denk dat de meerderheid van de
gebruikers naar 6.0 en daarboven is gemigreerd.
</Para>

<Warning><Para>Waarschuwing! Als je besluit je oudere systeem te upgraden
zodat het de nieuwe kernels ondersteunt, houd er dan rekening mee dat het
mogelijk is dat er iets verschrikkelijk mis kan gaan, aangezien het proces
upgrades van een aantal packages met zich mee brengt. Zorg er als altijd
voor dat je recente backups tot je beschikking hebt voor het geval er iets
fout gaat. Als je geen ervaring hebt in het upgraden van bestanden van RPM
als ook het compileren van kernels, wil je wellicht naar Red Hat 6.1 upgraden.
</Para></Warning>

<Para>Je hebt de keuze uit &oacute;f het upgraden van een stock kernel zoals
ze door Red Hat worden geleverd, &oacute;f het upgraden door het compileren
van een aangepaste kernel. Ik zou je aan willen raden alles eerst met een
stock kernel aan de gang te krijgen, en dan later een aangepaste kernel te
bouwen zoals je dat normaal gesproken zou doen
(zie de <XRef LinkEnd="kernel-upgrade"> voor details).</Para>

<Para>Om de laatste kernel te kunnen gebruiken, is het als eerste nodig
naar de nieuwste utilities en library's te upgraden.
Red Hat heeft aangegeven welke packages moeten worden bijgewerkt om de
nieuwste kernel te ondersteunen, en heeft de van toepassing zijnde packages
op hun FTP-site geplaatst op <ULink
URL="ftp://ftp.redhat.com/redhat/updates/5.2/kernel-2.2/i386/">
ftp://ftp.redhat.com/redhat/updates/5.2/kernel-2.2/i386/</ULink> (voor Red Hat
5.2 gebruikers op het i386 platform).</Para>

<Para>Een zeer goede webpagina, met een meer gedetailleerde beschrijving van
de van toepassing zijnde systeemtools, die noodzakelijk zijn voor de
overgang naar 2.2.x  is beschikbaar op <ULink
URL="http://www-stu.calvin.edu/~clug/users/jnieho38/goto22.html">
http://www-stu.calvin.edu/~clug/users/jnieho38/goto22.html</ULink>; Ik zal
hieronder proberen de informatie samen te vatten (items gemarkeerd met een
voorafgaand ``<Emphasis>**</Emphasis>'' geven aan dat je vrijwel zeker het
item voor Red Hat 5.2 moet upgraden; items die niet als zodanig zijn
gemarkeerd, zijn <Emphasis>waarschijnlijk</Emphasis> okay, maar vermoedelijk
waard ze te controleren).</Para>

<ItemizedList Mark="Bullet" Spacing="Compact">

<ListItem><para><Emphasis>**</Emphasis> <Emphasis>initscripts-3.78-2.4 of
beter</Emphasis> (Typ ``<Literal>rpm -q initscripts</Literal>'' om je versie
te controleren)
</Para></ListItem>

<ListItem><Para><Emphasis>**</Emphasis> <Emphasis>modutils-2.1.121 of
beter</Emphasis> (Typ ``<Literal>rpm -q modutils</Literal>'' om je versie
te controleren)
</Para></ListItem>

<ListItem><Para><Emphasis>**</Emphasis> <Emphasis>mount-2.9-0 of beter</Emphasis>
(Typ ``<Literal>rpm -q mount</Literal>'' om je versie te controleren
)</Para></ListItem>

<ListItem><Para><Emphasis>gcc-2.7.2.3 of beter</Emphasis>
(``<Literal>rpm -q gcc</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>binutils-2.8.1.0.23 of beter</Emphasis>
(``<Literal>rpm -q binutils</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>libc-5.4.46 of beter</Emphasis> (Red Hat gebruikt
de nieuwere ``<Emphasis>glibc</Emphasis>''. Niet nodig.)</Para></ListItem>

<ListItem><Para><Emphasis>glibc-2.0.7-6 of beter</Emphasis> (``<Literal>rpm -q
glibc</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>ld.so 1.9.9 of beter</Emphasis> (``<Literal>ls -l
/lib/ld.so.*</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>libg++-2.7.2.8 of beter</Emphasis> (``<Literal>rpm
-q libg++</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>procps-1.2.9 of beter</Emphasis> (``<Literal>rpm -q
procps</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>**</Emphasis> <Emphasis>procinfo-15 of beter</Emphasis>
(``<Literal>rpm -q procinfo</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>psmisc-17 of beter</Emphasis> (``<Literal>rpm -q
psmisc</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>**</Emphasis> <Emphasis>net-tools-1.50 of
beter</Emphasis> (``<Literal>rpm -q net-tools</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>loadlin-1.6 of beter</Emphasis> (Alleen nodig als
je Linux boot vanuit DOS met Loadlin. Niet zeker hoe achter het
versienummer te komen; download voor de zekerheid de laatste versie).
</Para></ListItem>

<ListItem><Para><Emphasis>sh-utils-1.16 of beter</Emphasis> (``<Literal>rpm -q
sh-utils</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>autofs-3.1.1 of beter</Emphasis> (``<Literal>rpm -q
autofs</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>nfs-server2.2beta37 of beter</Emphasis>
(``<Literal>rpm -q nfs-server</Literal>''; alleen nodig voor NFS-fileshares).
</Para></ListItem>

<ListItem><Para><Emphasis>bash-1.14.7 of beter</Emphasis> (``<Literal>rpm -q
bash</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>ncpfs-2.2.0 of beter</Emphasis> (``<Literal>rpm -q
ncpfs</Literal>''; is alleen nodig als je Novell bestandssystemen mount).
</Para></ListItem>

<ListItem><Para><Emphasis>kernel-pcmcia-cs-3.0.6 of beter</Emphasis>
(``<Literal>rpm -q kernel-pcmcia-cs</Literal>''; alleen nodig voor laptops
die ondersteuning nodig hebben voor de PCMCIA-kaart).
</Para></ListItem>

<ListItem><Para><Emphasis>ppp-2.3.5 of beter</Emphasis> (``<Literal>rpm
-q ppp</Literal>''; alleen nodig als je met een modem en PPP een verbinding
met het Internet tot stand brengt).
</Para></ListItem>

<ListItem><Para><Emphasis>dhcpcd-1.3.16-0 of beter</Emphasis>
(``<Literal>rpm -q dhcpcd</Literal>''; alleen nodig als je een DHCP-client
nodig hebt voor het tot stand brengen van een verbinding met het Internet,
zoals met een kabelmodem).
</Para></ListItem>

<ListItem><Para><Emphasis>**</Emphasis> <Emphasis>util-linux-2.9.0</Emphasis>
(``<Literal>rpm -q util-linux</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>setserial-2.1 of beter</Emphasis>
(``<Literal>rpm -q setserial</Literal>'')</Para></ListItem>

<ListItem><Para><Emphasis>ipfwadmin/ipchains</Emphasis> (Alleen nodig voor
IP-firewalling; zie de ``<Emphasis>IPCHAINS-HOWTO</Emphasis>'' gids op <ULink
URL="http://isunix.it.iltu.edu/resources/ldp/HOWTO/IPCHAINS-HOWTO.html">
http://isunix.it.iltu.edu/resources/ldp/HOWTO/IPCHAINS-HOWTO.html</ULink>.)</Para></ListItem>
</ItemizedList>

<Para>Je zou alle benodigde packages moeten downloaden en upgraden met gebruik
van RPM (zie <XRef LinkEnd="using-rpm"> voor details over het gebruik van RPM).
</Para>

<Caution><Para>Pas op: Upgraden naar het nieuwe ``<Literal>modutils</Literal>''
package zal resulteren in niet langer functionerende modules voor de oudere
2.0.x kernels!  Upgrade dit package daarom niet totdat je de nieuwe kernel
in ``<Literal><Filename>/usr/src/linux</Filename></Literal>'' hebt
ge&iuml;nstalleerd.</Para></Caution>

<Para>Nadat je je systeemtools hebt bijgewerkt, kun je de kernelsources
installeren. Deze zijn ook op de FTP-site van Red Hat te vinden; Ik raad
je aan degenen te downloaden die als updates voor Red Hat 6.1 worden geleverd,
op <ULink URL="ftp://ftp.redhat.com/redhat/updates/6.1/i386/">
ftp://ftp.redhat.com/redhat/updates/6.1/i386/</ULink>. Typ hiervoor het
volgende:
</Para>

<Screen>
<UserInput>rpm -Uvh kernel-source*.rpm kernel-headers*.rpm</UserInput>
</Screen>

<Para>Nu dat de nieuwe kernelsources zijn ge&iuml;nstalleerd, zou het veilig
moeten zijn je modutils-package te upgraden. De nieuwe kernel maakt echter
geen gebruik meer van de module ``<Literal>kerneld</Literal>'' voor het op
verzoek laden van kernel-modules. Daarom zou je deze module moeten upgraden
voordat je een upgrade van modutils uitvoert.
Typ voor het deactiveren van kerneld en het upgraden van het modutils
package als <Quote>root</Quote> het volgende:</Para>

<Screen>
<UserInput>/sbin/chkconfig kerneld off</UserInput>
<UserInput>/etc/rc.d/init.d/kerneld stop</UserInput>
<UserInput>rpm -Uvh modutils*.rpm</UserInput>
</Screen>

<Para>Het zou nu mogelijk moeten zijn je 2.2 kernel te configureren, 
compileren en installeren zoals je dat normaal geproken zou doen
(zie <XRef LinkEnd="kernel-custom"> voor details). Wellicht dat je verrast
bent de duizelingwekkende hoeveelheid nieuwe beschikbare 
configuratie-instellingen te zien. Neem je tijd en lees de helptekst voor alle
opties waar je niet bekend mee bent!
</Para>

<Para>Met enig geluk, zal je de volgende keer dat je je systeem boot de
laatste en geweldige Linux-kernelversie draaien!
</Para>

<Para>Veel meer gedetailleerde informatie over deze produkten is te
vinden op de website van Red Hat op
<ULink URL="http://www.redhat.com/corp/support/docs/kernel-2.2/kernel2.2-upgrade.html">
http://www.redhat.com/corp/support/docs/kernel-2.2/kernel2.2-upgrade.html</ULink>.</Para>

</Sect1>

<Sect1 id="apache-config"><Title>Configureren van de Apache Web Server</Title>

<Para>Op mijn werk gebruiken we het Apache package om in webservices te
voorzien. Apache is een webserver met volledige kenmerken met volledige
ondersteuning voor de HTTP 1.1. standaard, proxy caching, password authenticated
web pages, en diverse andere mogelijkheden. Apache is &eacute;&eacute;n van
de populairste beschikbare webservers (volgens een recent verricht 
site-onderzoek door Netcraft, gebruikt meer dan 54% van alle websites op het
Internet Apache of &eacute;&eacute;n van zijn afgeleiden), en levert een
performance gelijk aan of beter dan commerci&euml;le servers.
</Para>

<Para>( In bewerking.  :-p )</Para>

<Para>Om bij te blijven met toegevoegde mogelijkheden en bugfixes die voor
Apache zijn gemaakt, is het waarschijnlijk een goed idee je server van tijd
tot tijd te upgraden.
De Apache website is gelokaliseerd op <ULink URL="http://www.apache.org/">
http://www.apache.org/</ULink> en bevat informatie over de laatste versies.
</Para>

</Sect1>

<Sect1 id="squid-upgrades"><Title>Configureren van de Squid HTTP Caching Proxy Daemon</Title>

<Para>Op mijn werk, maken we gebruik van het Squid package om te voorzien
in proxy caching van webpagina's. Squid biedt hoge performance bij het cachen
van webclients, en het biedt ook ondersteuning voor FTP, Gopher, en 
HTTP-verzoeken. Bovendien kan Squid hi&euml;rachisch zijn gelinkt met andere
op Squid gebaseerde proxyservers voor gestroomlijnde caching van pagina's.
</Para>

<Para>Er zijn thans twee versies van Squid beschikbaar. Ten eerste is er
de <Quote>reguliere</Quote> versie, die goed schijnt te functioneren op
computers met heel veel RAM. De tweede versie, 
<Quote><Emphasis>SquidNOVM</Emphasis></Quote> is geschikt voor computers
met minder RAM (ik raad je aan deze versie te gebruiken als je 64 MB RAM of
minder hebt). In wezen maakt de <Quote>NOVM</Quote> versie gebruik van minder
geheugen ten koste van meer file descriptors. Het is degene die ik gebruik,
en het werkt goed.
</Para>

<Para>( In bewerking :-p )</Para>

<Para>Om bij te blijven met de nieuwe mogelijkheden en bug-fixes, is het
waarschijnlijk een goed idee de Squid-server van tijd tot tijd te
upgraden. Meer informatie over Squid is te vinden op de website op
<ULink URL="http://squid.nlanr.net/Squid/">
http://squid.nlanr.net/Squid/</ULink>.</Para>

</Sect1>

<Sect1 id="sendmail-upgrades"><Title>Configureren van de Sendmail E-mail Daemon</Title>

<Para>Ik gebruik het Sendmail-package om in e-mail services te voorzien.
Sendmail is <Emphasis>de</Emphasis> definitieve mail handler; het is in feite
zo populair dat het naar schatting meer dan 80% van de over het Internet
passerende e-mail aan &eacute;&eacute;n of beide zijden afhandelt.
Het doet zo ongeveer alles en ik zou het me niet voor kunnen stellen een
Internet server zonder te moeten draaien (een ander
e-mail server package genaamd Qmail schijnt bovendien ook heel populair
te zijn -- maar ik heb nog geen reden gehad het uit te proberen).
</Para>

<Para>Om bij te blijven met nieuwe mogelijkheden en bug-fixes, en als
belangrijkste, om redenen van beveiliging, is het waarschijnlijk een goed
idee Sendmail van tijd tot tijd te upgraden. Bovendien bevatten de 
laatste versies van Sendmail krachtige anti-spam mogelijkheden die kunnen
voorkomen dat er misbruik wordt gemaakt van je mailserver door 
niet geautoriseerde gebruikers</Para>

<Para>In deze sectie zullen een aantal zaken worden besproken als je 
Sendmail als een inkomende e-mailserver wenst te gebruiken.
Dit zou het waarschijnlijke scenario zijn voor serversystemen.
Als je het in plaats daarvan niet nodig hebt voor inkomende mail
te gebruiken en het alleen als een uitgaande mail queue wenst te gebruiken,
zou je ((heb hier wat info nodig)).
</Para>

<Para>In deze sectie wordt verondersteld dat je de allerlaatste versie
van Sendmail (tijdens dit schrijven is dit versie 8.9.3),
hebt ge&iuml;nstalleerd en het werkend hebt.
</Para>

<Para>Zoals met de Red Hat distributie verpakt, bevat Sendmail meestal de
passende configuratie-informatie om in de meerderheid van de serversetups
juist te opereren. Toch kun je het nodig vinden het bestand
``<Literal><Filename>/etc/sendmail.cf</Filename></Literal>'' te wijzigen
en een aantal instellingen aan te passen. Dit valt echter buiten het kader
van dit document.
</Para>

<Para>&Eacute;&eacute;n ding wat ik echter van hulp vind, is het maken van
een paar wijzigingen in het configuratiebestand om spammers tegen te
werken. Hieronder vallen:
</Para>

<ProgramListing>
<Emphasis>O PrivacyOptions=authwarnings</Emphasis>
<Emphasis>change to:</Emphasis>
O PrivacyOptions=authwarnings,noexpn,novrfy

<Emphasis>O SmtpGreetingMessage=$j Sendmail $v/$Z; $b</Emphasis>
<Emphasis>change to:</Emphasis>
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b  NO UCE  C=xx L=xx
</ProgramListing>

<Para>(De eerste wijziging verhindert spammers gebruik te maken van de
``<Literal>EXPN</Literal>'' en ``<Literal>VRFY</Literal>'' commando's in
sendmail. Ik bemerk dat van deze commando's te vaak misbruik wordt gemaakt
door onethische individuen. De tweede wijziging verandert de banner die Sendmail
weergeeft bij het ontvangen van een verbinding. Je zou de
``<Emphasis>xx</Emphasis>'' in de ``<Literal>C=xx L=xx</Literal>''
entries kunnen vervangen door je land- en lokatie-codes.
In mijn geval zou ik bijvoorbeeld ``<Literal>C=CA L=ON</Literal>'' voor
Ontario, Canada gebruiken.  (De laatste wijziging heeft in feite geen
effect, maar werd aanbevolen door de mensen in 
<ULink URL="news:news.admin.net-abuse.email">
news.admin.net-abuse.email</ULink> nieuwsgroep als een
rechtsgeldige voorzorgsmaatregel.</Para>

<Para>Het volgende, als je mailserver een andere hostnaam zal hebben dan de
feitelijk computer waarop het draait, kun je &eacute;&eacute;n of meer
aliassen in het bestand ``<Literal><Filename>/etc/sendmail.cw</Filename>
</Literal>'' toevoegen. Als je bijvoorbeeld een systeem genaamd
<Quote><Emphasis>kirk.mijndomein.naam</Emphasis></Quote> hebt die is ingesteld
als de mail exchanger voor mijndomein.naam, maar wilt dat inkomende mail 
geadresseerd aan ``<Emphasis>user@mijndomein.naam</Emphasis>'' wordt bezorgd
aan je gebruikers op <Quote><Emphasis>kirk</Emphasis></Quote>, voeg je gewoon
als volgt deze alias toe:
</Para>

<ProgramListing>
mijndomein.naam
</ProgramListing>

<Para>Als laatste, als je een domein (of subdomein) moet beperken in het
maken van een verbinding met je sendmail-service, kun je het bestand
``<Literal><Filename>/etc/mail/access</Filename></Literal>'' wijzigen en
de domein-informatie als ook het type beperking toevoegen.
Bijvoorbeeld:</Para>

<ProgramListing>
een.domein              REJECT
hax0r.ander.domein      550 Neem contact op met de site-beheerder via (555) 555-1234.
</ProgramListing>

<Para>Met de bovenstaande voorbeelden zouden alle e-mail connecties van de
``<Emphasis>een.domein</Emphasis>'' en tevens de specifieke computernaam
``<Emphasis>hax0r.ander.domein</Emphasis>'' met een beschrijvende melding
worden afgewezen.</Para>

<Para>Na het maken van de wijzigingen aan dit bestand, zal je het bestand
``<Literal><Filename>access.db</Filename></Literal>'' moeten bijwerken,
en vervolgens als volgt sendmail opnieuw op moeten starten:
</Para>

<Screen>
<UserInput>/usr/sbin/makemap hash /etc/mail/access.db < /etc/mail/access</UserInput>
<UserInput>/etc/rc.d/init.d/sendmail restart</UserInput>
</Screen>

<Tip><Para>Tip: Als je je ongerust maakt over e-mail misbruik, kun je zeer
behulpzame informatie krijgen van het <Quote>Mail Abuse Prevention
System</Quote> (<Acronym>MAPS</Acronym>) project over het omgaan met dergelijk
misbruik; zie de webpagina's op <ULink
URL="http://www.mail-abuse.org/">http://www.mail-abuse.org/</ULink></Para>

<Para>Als je Sendmail versie 8.9 of daarboven gebruikt, is RBL-ondersteuning
reeds ingebouwd, maar niet standaard geactiveerd. Voeg voor de activering van
deze ondersteuning het volgende toe aan het bestand sendmail.mc:
</Para>

<ProgramListing>
        FEATURE(rbl)
</ProgramListing>

<Para>Herconfigureer en herstart vervolgens de Sendmail daemon.</Para>

<Para>
Zie <ULink URL="http://www.mail-abuse.org/rbl/usage.html">
http://www.mail-abuse.org/rbl/usage.html</ULink> voor meer gedetailleerde
informatie, waaronder configuratie-instructies voor andere mail transport
agents.</Para>

<Para>Soms eindigt een domein in de RBL-lijst, waarmee je de communicatie wenst
voort te zetten. Misschien is het noodzakelijk voor je met bepaalde gebruikers
in het domein vermeld op de zwarte lijst te communiceren.
In dit geval staat Sendmail het je toe deze domeinen te overschrijven om
hun e-mail te ontvangen. Wijzig gewoon het bestand
``<Literal><Filename>/etc/mail/access</Filename></Literal>'' op de wijze
zoals hiervoor beschreven met de juiste domein-informatie. Bijvoorbeeld:
</Para>

<ProgramListing>
zwarte_lijst.domein      OK
</ProgramListing>

<Para>Vergeet niet je bestand access.db opnieuw samen te stellen 
(hiervoor beschreven)!</Para>

<Para>Als je besluit je op de RBL te abonneren, is het, als dit van toepassing
is, waarschijnlijk een wijs plan je mailgebruikers te informeren, zodat zij
andere service maatregelen kunnen nemen als zij het niet eens zijn met je
beslissing.
</Para></Tip>

<Para>Zie het FAQ-document te vinden op
<ULink URL="http://www.sendmail.org/faq/">http://www.sendmail.org/faq/</ULink>
voor meer informatie over Sendmail.</Para>

</Sect1>

</Chapter>

<Chapter id="enterprise-computing"><Title>Enterprise Computing met Linux</Title>

<Para>Aangezien Linux een solide reputatie heeft verdiend voor zijn stabiliteit
en betrouwbaarheid, wordt het om zijn betrouwbaarheid, gebruikt voor kritische
applicaties in de bedrijfs- en wetenschappelijke wereld.
</Para>

<Para>In dit hoofdstuk zullen onderwerpen worden besproken die 
vooral relevant zijn voor degenen die Linux in de onderneming gebruiken,
zoals het fijnafstemmen van je server voor betere performance onder hogere
loads, je gegevens veiligstellen met RAID-technologi&euml;n, en tevens een
bespreking van de algemene procedures om tussen servers te migreren.
</Para>

<Sect1 id="performance-tuning"><Title>Fijnafstemmen van de Performance</Title>

<Para><Emphasis>( In bewerking.  :-p )</Emphasis></Para>

</Sect1>

<Sect1 id="hardware-raid"><Title>High Availability met RAID</Title>

<Para>Aangezien er meer opslagruimte nodig kan zijn, is het soms nodig
aanvullende disks met grotere capaciteiten online te plaatsen. 
Maar ironisch genoeg, dicteert de wet naar waarschijnlijkheid dat als het
aantal opslagapparaten toeneemt, zo ook de waarschijnlijkheid van een
storing aan de hardware toeneemt. Daarom is het aannemelijk
dat bij een enkele harddisk in vergelijking met een systeem met vier disks
slechts 25% kans bestaat op een storing aan de hardware. 
[ Nou ja, in ieder geval theoretisch gesproken :-) ]</Para>

<Para>Gelukkig kunnen dergelijke storingen elegant worden afgehandeld, en
nog belangrijker zonder downtime, door een techniek genaamd
<Quote>Redundant Array of Inexpensive Disks</Quote> 
(<Emphasis>RAID</Emphasis>) te gebruiken, waarbij
&eacute;&eacute;n of verscheidene methoden worden gebruikt voor het
distribueren van gegevens over meerdere disks.
Deze overtolligheid maakt automatisch herstel van gegevens mogelijk mocht
een device het begeven.
</Para>

<Para>In deze sectie zal de installatie, configuratie en setup van een
RAID-diskarray worden beschreven waarbij gebruik wordt gemaakt van de
Mylex AcceleRAID DAC960 controller. Ik was niet alleen zeer onder de indruk
van de performance en betrouwbaarheid van de controller zelf, maar ook
van de technische ondersteuning die ik ontving van Mylex -- ze zijn zeer
Linux-vriendelijk! (Er is echter een zeer grote vari&euml;teit aan hardware
RAID oplossingen voor Linux, en RAID kan door de Linux kernel zelf in software
worden ge&iuml;mplementeerd). Het type RAID-implementatie dat
vooral handig is, is waarschijnlijk RAID level 5.</Para>

<Para>De eerste stap in het onder Linux bruikbaar krijgen van de 
RAID-controller bestaat uit het bouwen van een aangepaste kernel met
driver ondersteuning voor de hardware. De driver voor de Mylex DAC960
kan worden gedownload vanaf de Dandelion Digital Linux
page op <ULink URL="http://www.dandelion.com/Linux/DAC960-2.0.tar.gz">
http://www.dandelion.com/Linux/DAC960-2.0.tar.gz</ULink>.</Para>

<Para>De laatste stap om je RAID-array bruikbaar onder Linux bruikbaar
te krijgen is door gebruik te maken van het utility
``<Literal>fdisk</Literal>'' om geldige partities aan te maken.
Dit wordt op exact dezelfde wijze gedaan als je zou hebben gedaan bij een
IDE of reguliere SCSI-disk.
Zie <XRef LinkEnd="install-partitioning"> voor details over het instellen
van partitie-informatie.
</Para>

<Note><Para>Noot: De DAC960 driver ondersteunt maximum 7 partities per
logische drive. Als je meer nodig hebt, zal je meerdere logische drives
in het RAID configuratie-utility moeten defini&euml;ren.
(druk tijdens de systeemstart op
<Literal>&lt;<KeyCap>Alt</KeyCap>&gt;-&lt;<KeyCap>R</KeyCap>&gt;</Literal>
om naar het setup-utility te gaan).</Para></Note>

<Para>Zodra je je RAID-array kunt zien, zou je alle swapgebieden en
bestandssystemen die je wenst te defini&euml;ren moeten initialiseren.
Hierna volgt een voorbeeld van het initialiseren van een swapgebied op
de derde partitie van de tweede disk, als ook een ext2 geformateerd
bestandssysteem op de eerste partitie van de eerste disk:
</Para>

<Screen>
<UserInput>/sbin/mkswap -c /dev/rd/c0d1p3</UserInput>
<UserInput>/sbin/swapon /dev/rd/c0d1p3</UserInput>
<UserInput>/sbin/mkfs.ext2 -c /dev/rd/c0d0p1</UserInput>
</Screen>

<Note><Para>Noot: Met de optie ``<Literal>-c</Literal>'' in het voorbeeld
bij de commando's ``<Literal>mkswap</Literal>'' en
``<Literal>mkfs.ext2</Literal>'' wordt de controle op slechte
blokken geactiveerd als de van toepassing zijnde swap/bestandssystemen
worden aangemaakt. Hiermee wordt <Emphasis>aanzienlijk</Emphasis> wat tijd
toegevoegd dat het in beslag neemt om het proces te voltooien, maar het
is waarschijnlijk een heel goed idee om dergelijke controle's uit te voeren.
</Para></Note>

<Para>Je zou voor alle nieuwe gedefinieerde swapgebieden een regel aan
moeten maken in het bestand ``<Literal>/etc/fstab</Literal>'' om er zeker
van te zijn dat het swapgebied na een opeenvolgende boot werkelijk wordt
gebruikt. Volgens het voorbeeld hiervoor, zou de volgende regel moeten worden
toegevoegd:
</Para>

<ProgramListing>
/dev/rd/c0d1p3  swap       swap  defaults   0 0
</ProgramListing>

<Para>Je kunt tenslotte mountpoints aanmaken en naar wens je grote
bestandssystemen naar de array verplaatsen, zodra je bestandssystemen
zijn ge&iuml;nitialiseerd.
Het is vermoedelijk een goed idee de array een paar dagen te testen
alvorens je het in een produktie-omgeving gaat gebruiken.
</Para>

<Para>Breng voor verdere informatie over de Mylex AcceleRAID controller een
bezoek aan de Mylex website op <ULink URL="http://www.mylex.com/">
http://www.mylex.com/</ULink> als ook de drivepage van Dandelion Digital
DAC960 <ULink URL="http://www.dandelion.com/Linux/DAC960.html">
http://www.dandelion.com/Linux/DAC960.html</ULink>. ZIe de Linux High
Availability website op <ULink URL="http://linas.org/linux/raid.html">
http://linas.org/linux/raid.html</ULink> voor meer informatie over
RAID in het algemeen (waaronder zowel oplossingen gebaseerd op software als
ook op hardware). 
</Para>

</Sect1>

<Sect1 id="server-migration"><Title>Server Migratie en Schaalbaarheids onderwerpen</Title>


<Para>Met ondersteuning voor een diverse selectie aan hardware, als ook
bewezen snelheid en betrouwbaarheid, is Linux toe aan de uitdaging
evenredig toe te nemen om tegemoet te komen aan de eis van resources
als ze toenemen. Dit zou in kunnen houden naar een SMP
(<Emphasis>Symmetric Multi Processing</Emphasis>) configuratie voor
groter verwerkingsbehoeften, RAID levels 0 tot en met 5 (zowel in software
als in hardware gestuurde modes) enz. over te gaan.
</Para>

<Para>Zo nu en dan kan het zijn dat de Linux-server, de hardware
waarop het draait, is ontgroeid, je wilt een major upgrade
van een Linux-versie uitvoeren of misschien overstappen op een andere 
Linux-distributie. Er zijn natuurlijk twee manieren om hier iets aan te
doen. &Oacute;f je zal je server op bestaande of ge-upgrade hardware laten
(in welk geval je gewoon je services afsluit, een backup van je gegevens
maakt, de benodigde aanpassingen maakt, en dan zonodig gegevens terugzet),
&oacute;f in de meer radicale situatie, je server naar nieuwe hardware migreren.
</Para>

<Para>Deze sectie zal zich meer op de laatste situatie concentreren, waar
je in werkelijkheid je diverse services van de oude server naar een nieuwe
server zal migreren.
Er zijn uiteraard verscheidene strategi&euml;n voor migratie,
in deze sectie zal echter worden geprobeerd een aantal globale richtlijnen
te geven die je kunt volgen om er zeker van te zijn dat je poging tot de
migratie met minimale ontwrichting voor de gebruikers slaagt.
</Para>

<ItemizedList Mark="Bullet" Spacing="Normal"> <ListItem><Para>Bereid je
nieuwe server zoveel voor als nodig is; installeer en configureer Linux zodanig
dat je nieuwe hardware-devices worden ondersteund en alle vereiste daemons en
op de kernel gebaseerde mogelijkheden (zoals firewalling) zijn geactiveerd.
Zie <XRef LinkEnd="install-config">, als ook <XRef LinkEnd="kernel-custom"> 
voor details.</Para></ListItem>

<ListItem><Para>Stel je bestaande services in (zoals de Apache web
server, Samba of Netatalk file &amp; print services, enz.) en maak er
op z'n minst verscheidene dagen gebruik van met testgegevens om er zeker
van te zijn dat alles naar wens functioneert.
Zie <XRef LinkEnd="samba-file-and-print">, als ook
<XRef LinkEnd="netatalk-file-and-print"> voor details. Vergeet jezelf er
niet van te verzekeren dat alle wijzigingen of aangepaste script die je in
de directory ``<Literal><Filename>/etc/</Filename></Literal>'' waaronder
alles in ``<Literal><Filename>/etc/rc.d/</Filename></Literal>'' hebt
aangebracht, ook zover nodig op de nieuwe server hebt aangepast.
Het is vooral belangrijk dat je er aan denkt de informatie over de 
gebruikersaccounts in 
``<Literal><Filename>/etc/passwd</Filename></Literal>'',
``<Literal><Filename>/etc/group</Filename></Literal>'', en als je gebruik
maakt van ``<Literal><Filename>/etc/shadow</Filename></Literal>'' over te
zetten!</Para></ListItem>

<ListItem><Para>Sluit services op je oudere server af, zodat je bestandssystemen
een minimale hoeveelheid bestandsupdate activiteit zullen bespeuren.
Uiteraard wil je niet dat gebruikers webpagina's aan het uploaden zijn en
e-mail ontvangen op de oude server, terwijl je de gegevens op de nieuwe server
aan het terug zetten bent! Je kunt als root met het volgende commando de
meeste services afsluiten:
</Para>

<Screen>
<UserInput>killall httpd atalkd smbd nmbd squid sendmail ftpd</UserInput>
</Screen>

<Para>Met dit commando zal de webserver, file &amp; print
services, e-mailserver, en FTP-service worden afgesloten.
(Misschien dat je meer of minder services draait dan die ik hierboven heb
opgesomd. Kijk je lijst met processen er op na en be&euml;indig alle andere
services die je af wilt sluiten; zie <XRef
LinkEnd="managing-processes"> voor details).</Para>

<Para>Wellicht dat je ook het bestand
``<Literal><Filename>/etc/inetd.conf</Filename></Literal>'' op je oude
server wilt wijzigen, en met het ``<Literal>#</Literal>'' teken, een 
commentaarregel wilt maken van alle services (zoals FTP, IMAP, en POP3-services)
die mogelijk in updates van het bestandssysteem resulteren.
Typ vervolgens wederom als root:</Para>

<Screen>
<UserInput>killall -HUP inetd</UserInput>
</Screen>

<Para>Met dit commando zullen de TCP-wrappers (security wrappers naar Internet
services) opnieuw worden geladen zodat toekomstige connecties naar alle
services die je hebt gedeactiveerd in het bestand
``<Literal><Filename>/etc/inet.conf</Filename></Literal>'' niet zullen worden
geladen).
</Para></ListItem>

<ListItem><Para>Nu zou het mogelijk moeten zijn om de gegevens van het ene
systeem naar het andere systeem te verplaatsen. Naar alle waarschijnlijkheid
zal je de nieuwe server moeten voorbereiden dat het alles bevat wat het nodig
heeft om te functioneren, waaronder alle aanvullende software die
je wenst te installeren die niet met je Red Hat distributie werd meegeleverd.
Daarom zal je waarschijnlijk voor zover van toepassing een backup van alle
gegevens opgeslagen in ``<Literal><Filename>/home</Filename></Literal>'',
``<Literal><Filename>/var/spool</Filename></Literal>'', als ook
optionele bestandssystemen, zoals
``<Literal><Filename>/archive</Filename></Literal>'' aan moeten maken.  
Hier is een voorbeeldcommando waarbij gebruik wordt gemaakt van het
``<Literal>tar</Literal>'' utility voor het aanmaken van een gecomprimeerd
backupbestand met gegevens:</Para>

<Screen>
<UserInput>cd /</UserInput>
<UserInput>tar zcvpf /tmp/backup_data.tar.gz --exclude=var/spool/squid \
          home archive var/spool</UserInput>
</Screen>

<Para>Het commando hierboven zal een backup van je 
``<Literal><Filename>/archive</Filename></Literal>'',
``<Literal><Filename>/home</Filename></Literal>'', en
``<Literal><Filename>/var/spool</Filename></Literal>'' bestandssystemen (of
subdirectory's maken, afhankelijk van hoe je je systeem hebt ingesteld), 
naar een bestand genaamd
``<Literal><Filename>/tmp/backup_data.tar.gz</Filename></Literal>'' in
gecomprimeerd tar-formaat. Zorg ervoor dat je voldoende ruimte vrij hebt om
de backup aan te maken, of schrijf het naar elders.!</Para>

<Tip><Para>Tip: Je kunt het utiliy ``<Literal>du</Literal>'' gebruiken als 
hulp bij het vaststellen van de vereiste ruimte.
Voor bijvoorbeeld het vaststellen van de vereisten voor de directory-structuren
``<Literal><Filename>/archive/</Filename></Literal>'' en
``<Literal><Filename>/home/</Filename></Literal>'',
typ je:</Para>

<Screen>
<UserInput>du -h -s /archive /home</UserInput>
</Screen>

<Para>Houd in gedachten dat dit commando de werkelijke grootte van je
gegevens rapporteert, maar als je gebruik maakt van tar's optie
``<Literal>z</Literal>'' (zoals hierboven) om het image-bestand te comprimeren,
je vereisten voor gebruik waarschijnlijk aanmerkelijk minder zullen zijn.
Zie de uitvoer van het ``<Literal>du</Literal>'' commando als de
schatting voor de benodigde ruimte in de slechtst voorkomende situatie.
</Para></Tip>
</ListItem>

<ListItem><Para>Nu kun je de backupgegevens vanuit het tar-bestand op de
nieuwe server terugzetten. Je kunt het direct via NFS (zie de <XRef
LinkEnd="nfs-services"> voor details over het configureren van NFS)
terugzetten, of gewoon FTP gebruiken om het te transporteren en het lokaal
uitpakken. Hier is een voorbeeld waarmee de bestanden zullen worden teruggezet
waarvan een backup zoals hierboven is aangemaakt:
</Para>

<Screen>
<UserInput>cd /</UserInput>
<UserInput>tar zxvpf /tmp/backup_data.tar.gz</UserInput>
</Screen>
</ListItem>

<ListItem><Para>Verwissel zonodig je IP-adressen zodat je nieuwe server
op het oude adres wordt gezien.
</Para></ListItem>

<ListItem><Para>Ten slotte, wil je wellicht je server afsluiten en weer
opnieuw opstarten om er zeker van te zijn dat er geen onverwachte
foutmeldingen aan de dag treden. Zie <XRef
LinkEnd="system-shutdown-and-restart"> voor details.</Para></ListItem>

</ItemizedList>

<Para>Zorg dat zodra je klaar bent alles naar verwachting werkt!
Als dit niet zo is, kun je altijd nog alle gedeactiveerde services op de
oude server weer activeren en ze opnieuw opstarten zodat gebruikers ze
verder kunnen gebruiken totdat je de problemen op de nieuwe server hebt
opgelost (houd echter in gedachten dat je de bovenstaande stappen weer zal
moeten herhalen als je hiervoor kiest).
</Para>

</Sect1>

</Chapter>

<Chapter id="security"><Title>Strategi&euml;n voor het Behouden van een Secure Server</Title>

<Para>Linux kan beslist als veilig worden aangemerkt -- of veiliger
-- dan besturingssystemen van andere verkopers. Toegegeven, gezien Linux
steeds populairder wordt, wordt het een zeer aantrekkelijk doelwit voor
crackers om hun inbreekpogingen op te concentreren. Er zijn uitbuitingen
die van tijd tot tijd worden ontdekt, de open natuur van Linux betekent echter
gewoonlijk dat dergelijke uitbuitingen snel worden gepatcht, en aankondigingen
met betrekking tot de beveiliging met &oacute;f tijdelijke oplossingen of
verwijzingen naar bijgewerkte software worden wijd verspreid.
</Para>

<Para>Ik zal me niet voordoen als een expert in zaken aangaande beveiliging,
alhoewel ik me hiervan op z'n minst bewust ben, waarvan ik geloof dat ze
een groot deel van de strijd uitmaken om systemen zo veilig mogelijk te maken.
Alhoewel bewustzijn en ijver in het bijhouden van updates aangaande de
beveiliging op geen enkele wijze garanderen dat iemand de 
beveiligingsmaatregelen op het systeem te slim af is, is de waarschijnlijkheid
van een inbraak enorm afgenomen.
</Para>

<Para>Alhoewel er beveilingsexploitaties in externe services zijn gevonden
die door crackers zouden kunnen hebben worden gebruikt om op het systeem
in te breken (bijvoorbeeld de IMAP daemon exploitatie), geloof ik dat het
veel waarschijnlijker is dat een vastbesloten cracker het systeem van
<Emphasis>binnenuit</Emphasis> zal binnendringen.
Vergeleken met een handjevol services die met de buitenwereld communiceren,
zijn er <Emphasis>duizenden</Emphasis> commando's en utilities beschikbaar
vanuit de shell, &eacute;&eacute;n of meer die mogelijk bugs bevatten die
die kunnen worden uitgebuit door de beveiliging binnen te dringen
(met dat te hebben gezegd, moet ik toegeven dat ik ontdekte dat
&eacute;&eacute;n van de servers die ik onderhoud, gecompromitteerd was
geweest via een externe service).
</Para>

<Para>Om deze reden, raad ik je aan te vermijden shell-accounts aan gebruikers
uit te geven, tenzij dit absoluut noodzakelijk is. Zelfs als je in 
aanmerking neemt dat je gebruikers volledig te vertrouwen zijn en geen
angstig voorgevoel hebt bij het ze toegang geven tot de shell, is slechts
&eacute;&eacute;n van deze gebruikers met een zwak wachtwoord voldoende.
Een cracker die van buitenaf zijn weg op je systeem vindt door dit zwakke
wachtwoord te exploiteren zal dan op zijn gemak in staat zijn intern als hem
of haar te werk te gaan, op zoek naar verdere zwakheden.
</Para>

<Para>Er zijn gelukkig een aantal zaken die je kunt doen om de
beveiliging van je Linux-systeem enorm te verbeteren. Aangezien een
gedetailleerde bespreking van beveiligingszaken buiten het kader van dit
document valt, geeft de volgende checklist je het belangrijkste wat je
zou moeten doen om de beveiliging uit te breiden:
</Para>

<ItemizedList Mark="Bullet" Spacing="Normal">

<ListItem><Para><Emphasis>Upgrade systeemtools, applicaties, en kernel:</Emphasis>
Verreweg de meest algemene oorzaak van het inbreken op een systeem is 
door geen toewijding uit te oefenen in het behouden van een up-tot-date server.
Het regelmatig uitvoeren van upgrades van de systeemkernel, tools en utilities
zal er voor zorgen dat je systeem niet met oudere items is opgevuld waarvan
bekend is dat exploitaties beschikbaar zijn.
Zie voor details over het bijhouden van een up-to-date server
<XRef LinkEnd="update-redhat">, als ook <XRef LinkEnd="keeping-up-to-date">.
</Para></ListItem>

<ListItem><Para><Emphasis>Shadow passwords:</Emphasis> Je zou beslist gebruik
moeten maken van Shadow passwords; het is <Emphasis>eenvoudig</Emphasis> om naar
dit wachtwoord-formaat over te schakelen. Zie
<XRef LinkEnd="shadow-file-formats"> voor de details.</Para></ListItem>

<ListItem><Para><Emphasis>Slim wachtwoord-beheer:</Emphasis> Zorg er voor dat
wachtwoorden, <Emphasis>vooral</Emphasis> voor gebruikers waaraan je toegang
tot een shell hebt toegekend, sterk zijn en vaak worden gewijzigd.
Bied bij het gebruik van meerdere servers bovendien weerstand tegen de
verleiding voor alle servers hetzelfde wachtwoord te gebruiken
(anders kan een cracker die op &eacute;&eacute;n server met het ontdekte
wachtwoord inbreekt, op al deze servers inbreken).
</Para></ListItem>

<ListItem><Para><Emphasis>Gebruik secure shell (ssh):</Emphasis>
Schakel over naar het gebruik van ``ssh'' in plaats van ``telnet''. 
Telnet is om twee redenen niet veilig: Ten eerste, 
worden sessies niet versleuteld, wat betekent dat alles, inclusief de naam
en het wachtwoord van de gebruiker als gewone tekst worden overgeseind.
Ten tweede is een open telnetpoort &eacute;&eacute;n van de eerste
plaatsen waar een cracker een verbinding mee zal proberen te maken.
</Para>

<Para>Ssh voorziet in versleutelde en gecomprimeerde verbindingen en 
levert wezenlijk meer beveiliging dan telnetverbindingen. Je kunt onder
Linux een ssh-server draaien (waarmee veilige inkomende verbindingen mogelijk
zijn) als ook als een client (voor veilige uitgaande verbindingen).
Binaire RPM-packages zijn te 
vinden op <ULink URL="ftp://ftp.replay.com/pub/replay/redhat/i386/">
ftp://ftp.replay.com/pub/replay/redhat/i386/</ULink>. Je hebt hiervoor de
volgende bestanden nodig (tegen de tijd dat je dit leest kan het zijn dat er
nieuwere versies beschikbaar zijn):
</Para>

<ItemizedList Mark="Bullet" Spacing="Compact">
<ListItem><Para><ULink URL="ftp://ftp.replay.com/pub/replay/redhat/i386/ssh-1.2.27-5i.i386.rpm">ssh-1.2.27-5i.i386.rpm</ULink> Het basispakket.</Para></ListItem>

<ListItem><Para><ULink URL="ftp://ftp.replay.com/pub/replay/redhat/i386/ssh-clients-1.2.27-5i.i386.rpm">ssh-clients-1.2.27-5i.i386.rpm</ULink> Clients voor uitgaande connecties.</Para></ListItem>

<ListItem><Para><ULink URL="ftp://ftp.replay.com/pub/replay/redhat/i386/ssh-extras-1.2.27-5i.i386.rpm">ssh-extras-1.2.27-5i.i386.rpm</ULink> Een aantal handige op perl gebaseerde scripts.</Para></ListItem>

<ListItem><Para><ULink URL="ftp://ftp.replay.com/pub/replay/redhat/i386/ssh-server-1.2.27-5i.i386.rpm">ssh-server-1.2.27-5i.i386.rpm</ULink> Server voor inkomende connecties.</Para></ListItem>
</ItemizedList>

<Note><Para>Noot: De hierboven genoemde SSH RPM-bestanden zijn de 
internationale versies.
Als je in de U.S. of Canada verblijft, kun je ervoor kiezen de U.S. packages
te downloaden (die mogelijk sterkere encryptie algoritmen hebben); deze packages
hebben achter het versienummer een achtervoegsel ``us'' in plaats van ``i''.
Het is volgens de U.S. wet <Emphasis>verboden</Emphasis> sterk cryptografische
producten buiten de U.S. of Canada te exporteren.
Hopelijk zullen de imbecielen in de U.S. Department of Justice uiteindelijk op
een dag het licht zien, en deze domme beperking verwijderen
(Red Hat neemt vanwege deze reden SSH niet op in hun distributie, en we
leiden hier <Emphasis>allemaal</Emphasis> onder).
</Para></Note>

<Para>Mochten je Windows-gebruikers protesteren over het feit dat ze
niet langer een verbinding met je systeem tot stand kunnen brengen, dan
zullen ze blij zijn te weten dat er verscheidene vrij-verkrijgbare
ssh-clients voor Windows beschikbaar zijn:
</Para>

<VariableList>

<VarListEntry>
<Term><Quote>TeraTerm Pro</Quote> client software</Term>
<ListItem><Para><ULink URL="http://hp.vector.co.jp/authors/VA002416/teraterm.html">
http://hp.vector.co.jp/authors/VA002416/teraterm.html</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term><Quote>TTSSH</Quote> client software</Term>
<ListItem><Para><ULink URL="http://www.zip.com.au/~roca/download.html">
http://www.zip.com.au/~roca/download.html</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term><Quote>Cryptlib</Quote> client software</Term>
<ListItem><Para><ULink URL="http://www.doc.ic.ac.uk/~ci2/ssh">
http://www.doc.ic.ac.uk/~ci2/ssh</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term><Quote>Putty</Quote> client software</Term>
<ListItem><Para><ULink URL="http://www.chiark.greenend.org.uk/~sgtatham/putty.html">
http://www.chiark.greenend.org.uk/~sgtatham/putty.html</ULink></Para></ListItem>
</VarListEntry>

</VariableList>

<Note><Para>Noot: Als je besluit op ssh over te gaan, zorg er dan voor dat
je het op <Emphasis>alle</Emphasis> servers installeert. Vijf veilige en
&eacute;&eacute;n onveilige server is een verspilling van tijd,
<Emphasis>vooral</Emphasis> als je zo dwaas bent voor meer dan 
&eacute;&eacute;n server hetzelfde wachtwoord te gebruiken.
</Para></Note></ListItem>

<ListItem><Para><Emphasis>Beperk de toegang tot externe services:</Emphasis>
Vervolgens zou je het bestand ``<Literal>/etc/hosts.allow</Literal>'' als ook
het bestand ``<Literal><Filename>/etc/hosts.deny</Filename></Literal>'' moeten
wijzigen om de toegang tot services naar externe hosts te beperken.
Hier is een voorbeeld van hoe je telnet en ftp-toegang kunt beperken.
Als eerste het bestand ``<Literal><Filename>/etc/hosts.allow</Filename>
</Literal>'':</Para>

<ProgramListing>
# hosts.allow

in.telnetd: 123.12.41., 126.27.18., .mijndomein.naam, .andere.naam
in.ftpd: 123.12.41., 126.27.18., .mijndomein.naam, .andere.naam
</ProgramListing>

<Para>Hiermee zou het iedere host in de IP class C's 123.12.41.* en
126.27.18.*, als ook iedere host binnen de mijndomein.naam en andere.naam
domeinen zijn toegestaan telnet- en ftp-connecties tot stand te brengen.</Para>

<Para>Vervolgens het bestand ``<Literal><Filename>/etc/hosts.deny</Filename>
</Literal>'':</Para>

<ProgramListing>
# hosts.deny
in.telnetd: ALL
in.ftpd: ALL
</ProgramListing>

</ListItem>

<ListItem><Para><Emphasis>Deactiveer en de-installeer onnodige services:
</Emphasis> Wijzig het bestand
``<Literal><Filename>/etc/inetd.conf</Filename></Literal>'',
en deactiveer (dwz. plaats er een commentaarteken ``<Literal>#</Literal>'' voor)
alle services die niet nodig zijn (als je ssh gebruikt, zoals ik je hiervoor
aanraadde, wil je wellicht de ``telnet'' service deactiveren). Nadat je dit hebt
gedaan, typ je als root ``<Literal>/etc/rc.d/init.d/inet
restart</Literal>'' om de inetd-daemon opnieuw op te starten met de gemaakte
wijzigingen.
</Para></ListItem>

<ListItem><Para><Emphasis>Installeer een beveiligings-detectiesysteem:
</Emphasis> Neem het installeren van beveiligingsprogramma's, zoals
``Tripwire'' in overweging (zie <ULink URL="http://www.tripwiresecurity.com/">
http://www.tripwiresecurity.com/</ULink>), waarmee inbreuk kan worden 
gedetecteerd en ``Abacus Sentry'' 
(zie <ULink URL="http://www.psionic.com/abacus/">
http://www.psionic.com/abacus/</ULink>) welke van hulp kan zijn bij de
voorkoming ervan.
</Para></ListItem>

<ListItem><Para><Emphasis>Te danken aan ijver:
</Emphasis>Door een oogje op je systeem te houden, het uitvoeren van
willekeurige beveiligingscontrole's (wat zo simpel kan zijn als het
controleren op verdachte velden in de wachtwoordbestanden, het bestuderen van je
lijst met processen, en het controleren van je logbestanden op verdachte
inhoud) kun je een heel eind komen bij het veilighouden van je systeem.
Rapporteer bovendien alle pogingen om in te breken aan de
daarvoor van toepassing zijnde authoriteiten -- het kan een gedoe zijn dit
te doen, vooral als je systeem verscheidene van deze aanvallen in een
gegeven week ziet, maar dergelijke rapporten geven de verzekering dat
potenti&euml;le crackers worden afgeschrikt door de dreiging van een 
straf en bovendien verzekert het dat systemen van anderen 
(die er zelf wellicht ook mee zijn geconfronteerd) veilig blijven.
</Para></ListItem>

<ListItem><Para>In de veronderstelling dat je de systeemtools en
applicaties met het ``<Literal>RPM</Literal>'' utility installeert en
upgrade, wil je de integriteit van je ge&iuml;nstalleerde packages wellicht
verifi&euml;ren door ze met het volgende commando te controleren:
</Para>

<Screen>
<UserInput>rpm --verify -a > /tmp/rpm-audit.txt</UserInput>
</Screen>

<Para>Met dit commando zullen alle relevante bestanden met de RPM-database
op je systeem worden vergeleken, en zal door het tonen van een '5' worden
weergegeven welke zijn gewijzigd.
Hier is wat voorbeelduitvoer van een dergelijke controle:</Para>

<Screen>
S.5....T   /bin/ls
S.5....T   /usr/bin/du
......G.   /dev/tty5
.....U..   /dev/vcs5
.....U..   /dev/vcsa5
S.5....T c /etc/lynx.cfg
S.5....T c /etc/sendmail.cf
</Screen>

<Para>In dit voorbeeld is een lijst te zien met zeven bestanden,
vier daarvan zijn gewijzigd. Nu zullen er kennelijk verscheidene,
misschien vele bestanden zijn die zijn gewijzigd als je je systeem
geheel hebt aangepast. Een korte controle van de bestanden
<Filename>/etc/lynx.cfg</Filename> en <Filename>/etc/sendmail.cf</Filename>
misschien visueel of misschien vanaf backup, zouden de echte door jou aan
het systeem gemaakte wijzigingen aan de configuratie kunnen openbaren.
</Para>

<Para>In het voorbeeld hierboven zijn twee van de gewijzigde bestanden
<Emphasis>binaire uitvoerbare</Emphasis> bestanden? Naar alle
waarschijnlijkheid zijn deze twee binaire bestanden , het ``ls'' commando als
ook het ``du'' commando, in feite trojan binaries die een systeemcracker
met schandelijke doeleinden heeft ge&iuml;nstalleerd
(een ``<Literal>diff</Literal>'' commando toegepast op enige gewijzigde
binaire bestanden met die teruggezet vanaf een backup of RPM zou 
andere verschillen ten toon kunnen spreiden; verdere aanwijzigingen
van trojans).
</Para>

<Para>(Voor meer informatie over ``<Literal>RPM</Literal>'', zie de <XRef
LinkEnd="using-rpm">.)</Para></ListItem>
</ItemizedList>

<Para>Voor meer informatie over aan beveiliging gerelateerde onderwerpen
bestaat een uitstekende bron, met de titel <Quote>Securing RedHat 5.x</Quote>.
Dit document is beschikbaar op 
<ULink URL="http://redhat-security.ens.utulsa.edu/">
http://redhat-security.ens.utulsa.edu/</ULink>. Een uitstekende bron
voor Linux crypto en daaraan gerelateerde software is te vinden op
<ULink URL="http://replay.com/redhat">http://replay.com/redhat/</ULink>.</Para>

</Chapter>

<Chapter id="trouble-in-paradise"><Title>Help! Trouble in Paradise!</Title>

<Para>Linux verdient een wereldwijde reputatie voor zijn performance en
betrouwbaarheid. Niettemin is geen enkel systeem perfect en van tijd tot
tijd kom je vast te zitten. Gelukkig in vergelijking met de uptimes in de maand
(vergeleken met die afgemeten in de dagen of weken als met NT),
zullen dergelijke moeilijkheden maar weinig en niet regelmatig voorkomen.
</Para>

<Sect1 id="unsupported-tips"><Title>Linux ge&iuml;nstalleerd krijgen op 
nieuwe niet Ondersteunde Hardware</Title>

<Para><Emphasis>( In bewerking :-p )</Emphasis></Para>

</Sect1>

<Sect1 id="crash-repair"><Title>Bestandssysteem Corruptie na Stroomuitval of Systeemcrash</Title>

<Para>Alhoewel Linux een stabiel besturingssysteem is, zou het kunnen
gebeuren dat het onverwachts crasht, (misschien vanwege een kernelbug of
wellicht vanwege een stroomonderbreking), op je bestandssystemen zal
daardoor het commando umount niet zijn toegepast en daarom zullen ze bij
het opnieuw opstarten van Linux automatisch worden gecontroleerd.
</Para>

<Para>Meestal zijn problemen met het bestandssysteem klein, veroorzaakt door
bestandsbuffers die niet naar disk zijn geschreven, zoals verwijderde inodes
die als in gebruik zijn gemarkeerd. In de meerderheid van de gevallen,
zal de bestandssysteemcontrole dergelijke onregelmatigheden automatisch
kunnen detecteren, en tot aan de voltooi&iuml;ng zal het Linux bootproces
normaal continueren.
</Para>

<Para>Mocht een probleem aan het bestandssysteem ernstiger zijn (zoals
problemen die geneigd zijn te worden veroorzaakt door gebrekkige hardware
zoals een slechte harddisk of geheugenchip; iets om in gedachten te houden
wanneer een beschadiging aan het bestandssysteem frequent optreedt), 
kan het zijn dat de bestandssysteemcontrole het probleem niet automatisch
kan repareren. Dit is gewoonlijk, maar niet altijd, het geval wanneer het
root-bestandssysteem zelf is beschadigd. In dit geval zal het Red Hat
bootproces een foutmelding weergeven en je in een shell droppen, waarbij je
de mogelijkheid krijgt te proberen het bestandssysteem handmatig te repareren.
</Para>

<Para>Als de recovery-shell alle bestandssystemen unmount, en vervolgens
het root-bestandssysteem <Quote>read-only</Quote> mount, zal je de mogelijkheid
krijgen volledige controles op het bestandssysteem uit te voeren met
de daarvoor van toepassing zijnde utilities. Vermoedelijk zal je
e2fsck op het beschadigde bestandssysteem uit kunnen voeren waarmee
hopelijk alle gevonden problemen kunnen worden opgelost.
</Para>

<Para>Nadat je (hopelijk) alle problemen met het bestandssysteem hebt
gerepareerd, verlaat je gewoon met exit de shell om Linux het systeem 
opnieuw te laten booten in een poging een opeenvolgende herstart uit
te voeren.
</Para>

<Para>Natuurlijk zal je &eacute;&eacute;n of meer van de volgende dingen
tot je beschikking moeten hebben, om voorbereid te zijn op situaties, zoals
niet te herstellen problemen met bestandssystemen.
</Para>

<ItemizedList Spacing="Compact">
<ListItem><Para>De boot/root emergency disk set,
<Emphasis>EN/OF</Emphasis></Para></ListItem>

<ListItem><Para>De LILO emergency bootdisk,
<Emphasis>EN</Emphasis></Para></ListItem>

<ListItem><Para>Een recente backupkopie van je belangrijke bestanden --
voor het geval dat!
</Para></ListItem>
</ItemizedList>

</Sect1>

<Sect1 id="where-to-turn"><Title>Waar je voor hulp terecht kunt</Title>

<Para>Aangezien Linux door leden van de Internet-gemeenschap is ontwikkeld,
is de beste plaats voor het verkrijgen van hulp waarschijnlijk door het
posten van een bericht in &eacute;&eacute;n van de volgende nieuwsgroepen:
</Para>

<VariableList>

<VarListEntry>
<Term>Diverse postings die niet in &eacute;&eacute;n van de andere groepen thuishoren</Term>
<ListItem><Para><ULink URL="news:comp.os.linux.misc">comp.os.linux.misc</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>Netwerk gerelateerde zaken onder Linux</Term>
<ListItem><Para><ULink URL="news:comp.os.linux.networking">comp.os.linux.networking</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>Beveiligings gerelateerde zaken onder Linux</Term>
<ListItem><Para><ULink URL="news:comp.os.linux.security">
comp.os.linux.security</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>Linux installatie &amp; systeembeheer</Term>
<ListItem><Para><ULink URL="news:comp.os.linux.setup">
comp.os.linux.setup</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>Iedereen heeft recht op zijn eigen mening :-p</Term>
<ListItem><Para><ULink URL="news:alt.linux.sux">
alt.linux.sux</ULink></Para></ListItem>
</VarListEntry>

</VariableList>

<Para>Voor niet Linux-specifieke zaken zijn er diverse groepen in de
comp.* hi&euml;rarchie die aan je behoeften tegemoet kunnen komen. Hier zijn er
slechts een paar van:
</Para>

<VariableList>

<VarListEntry>
<Term>Cisco router/access-server serie producten</Term>
<ListItem><Para><ULink URL="news:comp.dcom.sys.cisco">comp.dcom.sys.cisco</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>Diverse webserver vragen</Term>
<ListItem><Para><ULink URL="news:comp.infosystems.www.servers.misc">
comp.infosystems.www.servers.misc</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>Algemene unix (niet Linux-specifieke) vragen</Term>
<ListItem><Para><ULink URL="news:comp.os.unix">
comp.os.unix</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>Het SMB protocol (WfW/95/NT-stijl file/print services)</Term>
<ListItem><Para><ULink URL="news:comp.protocols.smb">
comp.protocols.smb</ULink></Para></ListItem>
</VarListEntry>

</VariableList>

<Para>Er zijn tevens verscheidene bronnen op het Web die van nut kunnen zijn.
Geef op het web een zoekopdracht naar <Quote>Linux</Quote>, of bezoek 
&eacute;&eacute;n van de volgende sites:
</Para>

<VariableList>

<VarListEntry>
<Term>Linux Resources</Term>
<ListItem><Para><ULink URL="http://www.linuxresources.com/">
http://www.linuxresources.com/</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>Het Linux Documentatie Project</Term>
<ListItem><Para><ULink URL="http://metalab.unc.edu/LDP/">
http://metalab.unc.edu/LDP/</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>De RPM repository</Term>
<ListItem><Para><ULink URL="http://rufus.w3.org/linux/RPM/">
http://rufus.w3.org/linux/RPM/</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>De Linux Software Map</Term>
<ListItem><Para><ULink URL="http://www.boutell.com/lsm">
http://www.boutell.com/lsm</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>Linux Applications &amp; Utilities Guide</Term>
<ListItem><Para><ULink URL="http://www.xnet.com/~blatura/linapps.shtml">
http://www.xnet.com/~blatura/linapps.shtml</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>LinuxHardware.net: Hardware Driver Support</Term>
<ListItem><Para><ULink URL="http://www.linuxhardware.net/">
http://www.linuxhardware.net/</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>Linux User Support Team</Term>
<ListItem><Para><ULink URL="http://www.ch4549.org/lust">
http://www.ch4549.org/lust</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>De Linux v2 Informatie Headquarters</Term>
<ListItem><Para><ULink URL="http://www.linuxhq.com/">
http://www.linuxhq.com/</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>De Samba Home Page (WfW/95/NT-style file/print services)</Term>
<ListItem><Para><ULink URL="http://samba.anu.edu.au/samba/">
http://samba.anu.edu.au/samba/</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>De Apache Web Server</Term>
<ListItem><Para><ULink URL="http://www.apache.org/">
http://www.apache.org/</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>De Squid HTTP Proxy Caching Daemon</Term>
<ListItem><Para><ULink URL="http://squid.nlanr.net/Squid/">
http://squid.nlanr.net/Squid/</ULink></Para></ListItem>
</VarListEntry>

</VariableList>

<Para>Er zijn tevens talloze discussielijsten die behulpzaam kunnen zijn bij
het beantwoord krijgen van je vragen. Deze zijn meestal te vinden via een
eenvoudige zoekopdracht op het web (het zoeken naar <Emphasis>``linux
raid mailing list''</Emphasis> kan je bijvoorbeeld helpen bij het vinden van
discussielijsten die zijn bestemd voor RAID-zaken onder Linux).
Hier zijn een aantal die ik je aanbeveel; om je te abonneren op 
&eacute;&eacute;n van deze lijsten, stuur je gewoon een e-mailbericht naar
het subscription-adres dat wordt weergegeven, met het woord 
<Quote><Emphasis>subscribe</Emphasis> </Quote> in de inhoud van het bericht:
</Para>

<VariableList>

<VarListEntry>
<Term>Red Hat Discussielijsts</Term>
<ListItem><Para>Beschrijving van beschikbare Red Hat lijsten: <ULink URL="http://archive.redhat.com/">
http://www.redhat.com/</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>GNOME Discussielijsts</Term>
<ListItem><Para>Beschrijving van beschikbare GNOME lijsten: <ULink URL="http://www.gnome.org/mailing-lists/index.shtml">
http://www.gnome.org/mailing-lists/index.shtml</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>KDE Discussielijsts</Term>
<ListItem><Para>Beschrijving van beschikbare KDE-lijsten: <ULink URL="http://www.kde.org/contact.html">
http://www.kde.org/contact.html</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>Linux SCSI Discussielijst</Term>
<ListItem><Para>Subscription adres: <ULink URL="mailto:linux-scsi-request@vger.rutgers.edu">
linux-scsi-request@vger.rutgers.edu</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>Linux RAID Discussielijst</Term>
<ListItem><Para>Subscription adres: <ULink URL="mailto:linux-raid-request@vger.rutgers.edu">
linux-raid-request@vger.rutgers.edu</ULink></Para></ListItem>
</VarListEntry>

</VariableList>

<Para>Als laatste ben je wellicht ge&iuml;nteresseerd in het erop nazien van
de volgende twee sites, waarvan beiden voor mijzelf favorieten en
<Quote>verplichte dagelijkse kost</Quote> zijn.
SlashDot geeft het laatste technologische nieuws in het algemeen waarbij het
beslist is gericht op Linux, terwijl FreshMeat voorziet in een bijgewerkte
opsomming van de aankondigingen van Open Source applicaties.
</Para>

<VariableList>

<VarListEntry>
<Term>SlashDot: Nieuws Voor Nerds</Term>
<ListItem><Para><ULink URL="http://slashdot.org/">
http://slashdot.org/</ULink></Para></ListItem>
</VarListEntry>

<VarListEntry>
<Term>FreshMeat: Aankondigingen van Open Source Applicaties</Term>
<ListItem><Para><ULink URL="http://freshmeat.net/">
http://freshmeat.net/</ULink></Para></ListItem>
</VarListEntry>

</VariableList>

</Sect1>

<Sect1 id="additional-docs"><Title>Verwijzingen naar Aanvullende Documentatie</Title>

<Para>Er is een ongelofelijke hoeveelheid documentatie beschikbaar voor Linux
en de applicaties die er onder draaien. Het meeste hiervan kan op het web
worden gevonden en bij je lokale boekwinkel, maar je zal waarschijnlijk
bemerken dat een grote hoeveelheid nuttige documentatie reeds voor je
beschikbaar is, wat als onderdeel van de Red Hat Linux installatieprocedure
is geladen.
</Para>

<Para>De man pages zijn verplichte kost voor als je er achter probeert
te komen hoe een commando werkt.
Als je bijvoorbeeld probeert uit te zoeken hoe je het ``tar'' utility kunt
gebruiken, zou je ``<Literal>man tar</Literal>'' in kunnen typen en worden
voorzien van een zeer woordenrijke beschrijving van tar waaronder alle 
commandoregel opties.
</Para>

<Para>Je kunt meer algemene informatie vinden in de
``<Literal><Filename>/usr/doc/</Filename></Literal>'' directory. Hier zal
je subdirectory's aantreffen met daarin documentatie over utilities en 
commando's, Frequently Asked Questions (FAQ) documenten, als ook 
HOWTO-documenten, die voorzien in een goede instructie over een diversiteit
aan onderwerpen, zoals hoe een netwerk op te zetten of ondersteuning voor
de Japanse taal in te stellen.
</Para>

<Para>Je zou ook kunnen kijken in de directory
``<Literal><Filename>/usr/info/</Filename></Literal>'' waarin tutorials
over utilities, library's en applicaties zoals emacs zijn te vinden.
</Para>

<Para>Als laatste zou je het Red Hat User's Frequently Asked Questions
(FAQ) document bij <ULink URL="http://www.pobox.com/~aturner/RedHat-FAQ/">
http://www.pobox.com/~aturner/RedHat-FAQ/</ULink> kunnen raadplegen waarin
heel veel behulpzame informatie specifiek voor de Red Hat distributie van
Linux staat.
</Para>

</Sect1>

</Chapter>

</Book>
