<!doctype linuxdoc system>  
<linuxdoc>  
<article>  
<titlepag>  
<title>Linux Security HOWTO</title>  
<author><name>Kevin Fenzi, <tt>kevin@tummy.com</tt> &ero Dave Wreski,  
<tt>dave@linuxsecurity.com</tt> <newline>  
Vertaald door Nine Matthijssen,  
<tt>smurfin@nl.linux.org</tt></name></author> 
<!-- Met dank aan Reggy Ekkebus die de vertaling van de vorige versies van
deze HOWTO voor zijn rekening heeft genomen -->
<date>v1.1.1, 17 maart 2000</date>   
<abstract> 
Dit document is een algemeen overzicht van beveiligingskwesties waar een
beheerder van Linux systemen mee geconfronteerd wordt. Het behandelt een
algemene beveiligingsfilosofie en een aantal specifieke voorbeelden van hoe je
je Linux-systeem beter tegen indringers kunt beveiligen. Ook zijn er
verwijzingen naar materiaal en programma's die betrekking hebben op
beveiliging. Verbeteringen, constructieve kritiek, toevoegingen en correcties
worden dankbaar geaccepteerd. Stuur je reactie alsjeblieft naar beide auteurs,
met "Security HOWTO" als onderwerp. </abstract>   
</titlepag>   
<toc>  
     
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect><heading>Inleiding</heading>      

<p> Dit document behandelt enkele van de belangrijkste kwesties die
betrekking hebben op beveiliging in Linux. Algemene filosofie en via het
netwerk ontstane middelen worden besproken.</p>      

<p> In een aantal andere HOWTO documenten worden ook beveiligingskwesties
behandeld en naar deze documenten wordt verwezen als dat nodig is.</p>
     
<p> Dit document kan <em>niet</em> zo bijgewerkt zijn dat alle nieuwe
beveiligingslekken erin genoemd worden, aangezien er voortdurend nieuwe
beveiligingslekken worden ontdekt. Dit document zal je vertellen waar je
moet zoeken naar dergelijke up-to-date informatie en zal je enkele algemene
methoden geven om te voorkomen dat zulke beveiligingslekken plaats hebben.
</p>      

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading>Nieuwe versies van dit document</heading>      

<p> Nieuwe versies van dit document zullen periodiek worden gestuurd naar
<it>comp.os.linux.answers</it>. Ze zullen ook worden toegevoegd aan de
diverse sites die zulke informatie archiveren, waaronder:</p>      

<p><tt><htmlurl url="http://www.linuxdoc.org/"  
name="http://www.linuxdoc.org/"></tt></p>      

<p> Bovendien zul je normaal gesproken dit document ook moeten kunnen vinden 
op de Linux World Wide Web home page via:</p>      

<p> <tt><htmlurl url="http://metalab.unc.edu/mdw/linux.html"  
name="http://metalab.unc.edu/mdw/linux.html"></tt></p>      

<p> Tot slot zou de meest recente versie van dit document ook in
verschillende formaten beschikbaar moeten zijn op:</p>       

<p> <tt><htmlurl url="http://scrye.com/~kevin/lsh/"  
name="http://scrye.com/~kevin/lsh/"></tt></p>
     
<p> of </p>  
  
<p> <tt><htmlurl url="http://www.linuxsecurity.com/docs/Security-HOWTO"  
name="http://www.linuxsecurity.com/Security-HOWTO"></tt></p>  
  
<p> of </p>  
  
<p><tt><htmlurl url="http://www.tummy.com/security-howto"  
 name="http://www.tummy.com/security-howto"></tt></p>  
</sect1>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading>Reacties</heading>  
  
<p> Alle opmerkingen, foutmeldingen, aanvullende informatie en alle  
mogelijke vormen van kritiek kunnen worden gestuurd naar: </p>  
  
<p> <tt><htmlurl url="mailto:kevin@tummy.com" name="kevin@tummy.com"></tt></p>  
  
<p> en </p>  
  
<p> <tt><htmlurl url="mailto:dave@linuxsecurity.com"  
name="dave@linuxsecurity.com"></tt></p>  
  
<p> <em>Let op</em>: Stuur je reactie alsjeblieft naar <em>beide</em>  
auteurs. Ook moet je voor de zekerheid "Linux", "security" of "HOWTO" in  
het onderwerp zetten om Kevin's spamfilter te ontwijken.</p>  
</sect1>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Disclaimer</heading>  
  
<p> Voor de inhoud van dit document kan geen aansprakelijkheid worden  
geaccepteerd. Gebruik de begrippen, voorbeelden en andere inhoud op eigen  
risico. Bovendien is dit een concept, mogelijk met veel  
onnauwkeurigheden of fouten. </p>  
  
<p> Voor een aantal voorbeelden en beschrijvingen wordt gebruik gemaakt van de  
RedHat(tm) pakket-layout en systeemsetup. De weg die jij moet bewandelen
om zover te komen kan anders zijn. </p> 
    
<p> Voor zover we weten worden er alleen programma's beschreven die onder  
bepaalde voorwaarden mogen worden gebruikt of ge&euml;valueerd voor  
persoonlijke doeleinden. De meeste programma's zijn beschikbaar, compleet met  
broncode, onder <url url="http://www.gnu.org/copyleft/gpl.html" name="GNU">  
voorwaarden.</p>   
</sect1>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading>Copyright informatie</heading>  
  
<p> Dit document is auteursrechtelijk beschermd (c)1998-2000 Kevin Fenzi  
en Dave Wreski en wordt verspreid onder de volgende voorwaarden: </p>  
  
<p> <itemize>   
<item> Linux HOWTO documenten mogen worden gereproduceerd en in z'n geheel of  
in gedeelten, in elk medium, fysiek of electronisch worden verspreid, als
deze   copyright-vermelding maar behouden blijft op alle copie&euml;n.   
Commerci&euml;le herverspreiding is toegestaan en wordt aangemoedigd; echter,  
de auteurs willen graag op de hoogte gesteld worden van zulke distributies.</item>  
  
<item> Alle vertalingen, afgeleide werken of verzamelde werken die  
te maken hebben met enige Linux HOWTO documenten moeten deze 
copyright-vermelding bevatten. Dat houdt in dat je geen afgeleid werk van een 
HOWTO mag maken en aanvullende beperkingen op de distributie mag opleggen.  
Uitzonderingen op deze regels kunnen onder bepaalde voorwaarden toegestaan  
worden; neem alsjeblieft contact op met de Linux HOWTO co&ouml;rdinator op  
het onderstaande adres. </item>
    
<item> Als je vragen hebt, neem dan alsjeblieft contact op met Tim Bynum, de  
Linux HOWTO co&ouml;rdinator, op </item>  
</itemize></p>  
  
<p> <tt><htmlurl url="mailto:tjbynum@metalab.unc.edu"  
name="tjbynum@metalab.unc.edu"> </tt> </p>   
</sect1>  
</sect>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect><heading>Overzicht</heading>  
  
<p> Dit document zal enkele procedures en veelgebruikte software om je  
te helpen je Linux systeem veiliger te maken proberen uit te leggen. Het is  
belangrijk om, voordat we beginnen, eerst enkele basisbegrippen te  
bespreken en een basisbeveiliging te cre&euml;ren. </p>   
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Wat is het nut van beveiliging?</heading>   
  
<p> In de altijd veranderende wereld van globale datacommunicatie, goedkope  
Internetverbindingen en het hoge tempo van software ontwikkeling, wordt  
beveiliging een steeds belangrijker onderwerp. Beveiliging is nu een  
basisvereiste, omdat globale informatica inherent onveilig is. Als je 
gegevens bijvoorbeeld van punt A naar B op het Internet gaan, zou het 
onderweg via diverse andere punten kunnen gaan, hetgeen andere gebruikers de  
gelegenheid geeft het te onderscheppen en het zelfs te wijzigen. Zelfs andere  
gebruikers op je systeem kunnen opzettelijk jouw gegevens veranderen in 
iets dat je niet bedoelde. Onbevoegde toegang tot je systeem kan verkregen 
worden door indringers, ook bekend als "crackers", die dan geavanceerde
kennis gebruiken om zich als jou voor te doen, informatie van je te stelen of
je  zelfs de toegang tot je eigen middelen te ontzeggen. Als je je afvraagt
wat  het verschil is tussen een "Hacker" en een "Cracker", bekijk dan Eric 
Raymond's document "How to Become A Hacker", beschikbaar op <htmlurl  
url="http://www.netaxs.com/~esr/faqs/hacker-howto.html"  
name="http://www.netaxs.com/~esr/faqs/hacker-howto.html">. </p>  
</sect1>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Hoe veilig is veilig?</heading>  
  
<p> Houd allereerst in gedachten dat geen enkel computersysteem ooit  
volledig veilig kan zijn. Je kunt het alleen maar steeds moeilijker voor  
iemand maken om je systeem in gevaar te brengen. Voor de gemiddelde Linux  
thuisgebruiker is er niet veel nodig om de terloopse cracker buiten de deur
te houden. Voor professionele Linux gebruikers (banken,
telecommunicatie-bedrijven enz.) is echter veel meer werk vereist. </p>
 
<p> Een andere factor om rekening mee te houden is dat hoe veiliger je  
systeem is, hoe indringeriger je beveiliging wordt. Je moet een balans zien
te vinden zodat je systeem nog steeds bruikbaar is en toch veilig voor jouw
doeleinden. Je kunt bijvoorbeeld verlangen dat iedereen die op je systeem
inbelt een 'call-back modem' gebruikt om ze terug te kunnen bellen op hun
nummer thuis. Dit is veiliger, maar als iemand niet thuis is, wordt het
moeilijk voor hen om in te loggen. Je kunt je Linux systeem ook instellen
zonder netwerk of verbinding met het Internet, maar dit beperkt zijn
bruikbaarheid. </p>      

<p> Als het een gemiddeld tot grote site betreft, zul je een  
beveiligingsbeleid moeten vaststellen, waarin staat hoeveel beveiliging voor  
jouw site vereist is en op welke wijze dit gecontroleerd wordt. Je kunt een  
voorbeeld van een welbekend beveiligingsbeleid vinden op <htmlurl  
url="http://www.faqs.org/rfcs/rfc2196.html"  
name="http://www.faqs.org/rfcs/rfc2196.html">. Het is recent bijgewerkt en  
bevat een goede opzet om een beveiligingsbeleid voor jouw bedrijf vast te  
kunnen stellen. </p>    
</sect1>     

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Wat probeer je te beschermen?</heading>  
  
<p> Voordat je probeert je systeem te beveiligen, moet je vaststellen tegen  
welk niveau van bedreiging je je moet beschermen, welke risico's je wel of  
niet moet nemen en hoe kwetsbaar je systeem als gevolg hiervan is. Je  
moet je systeem analiseren om te weten wat je beschermt, waarom je het  
beschermt, welke waarde het heeft en wie de verantwoording voor je data en  
andere bezittingen heeft. </p>  
  
<p>  
<itemize>  
<item> Een <em>risico</em> is de mogelijkheid dat een indringer succesvol kan
zijn in zijn pogingen om toegang tot je computer te krijgen. Kan een indringer
bestanden lezen of schrijven of programma's uitvoeren die schade kunnen
veroorzaken? Kan hij kritieke data verwijderen? Kan hij voorkomen dat jij of 
jouw bedrijf belangrijk werk gedaan krijgt? Vergeet niet: iemand die zich
toegang verschaft tot jouw account of jouw systeem kan zich ook als jou
voordoen. Bovendien kan het hebben van &eacute;&eacute;n onveilig
account erin resulteren dat je hele netwerk in gevaar komt. Als je een
enkele gebruiker toestaat om in te loggen middels een <tt>.rhosts</tt> file
of door gebruik te maken van een onveilige service als <tt>tftp</tt>,
riskeer je dat een indringer 'zijn voet tussen de deur krijgt'. Als de
indringer eenmaal een gebruikersaccount op jouw of iemand anders z'n systeem
heeft, kan het gebruikt worden om toegang tot een ander systeem of account
te verkrijgen.
 </item

<item> Een <em>bedreiging</em> vormt iemand die gemotiveerd is om onbevoegd  
toegang tot je netwerk of computer te krijgen. Je moet vaststellen wie je  
vertrouwt om toegang tot je systeem te hebben en welke bedreiging ze kunnen  
vormen. 
</item>
<item>
Er zijn verschillende typen indringers en het is handig om hun  
verschillende karakteristieken in gedachten te houden als je je systemen gaat  
beveiligen.
  
<itemize>   
<item><bf> De Nieuwsgierige</bf> - Dit type indringer is voornamelijk  
ge&iuml;nteresseerd in het uitvinden wat voor type systeem en gegevens je  
hebt.</item>   
  
<item><bf> De Kwaadwillige</bf> - Dit type indringer is erop uit  
om je systemen ten val te brengen, je webpagina te ontsieren  
of je op een andere manier te dwingen om geld en tijd te spenderen aan  
het herstellen van de schade die hij heeft aangebracht. </item>   
  
<item><bf> De Geavanceerde</bf> - Dit type indringer probeert je  
systeem te gebruiken om populair en berucht te worden. Hij kan je systeem  
gebruiken om aandacht te vragen voor zijn bekwaamheden. </item>  
  
<item><bf> De Concurrentie</bf> - Dit type indringer is ge&iuml;nteresseerd in  
wat voor gegevens je op je systeem hebt. Het kan iemand zijn die denkt dat je  
iets hebt waarvan hij kan profiteren, financieel of anderszins. </item>   
  
<item><bf> De Lener</bf> - Dit type indringer is ge&iuml;nteresseerd in het  
`winkelen' op je systeem om de daarbij verkregen middelen voor eigen  
doeleinden te gebruiken. Het typeert hem om chat of irq servers te draaien,  
porno archiefsites of zelfs DNS servers. </item>   
  
<item><bf> Haasje-over</bf> - Dit type indringer is alleen  
ge&iuml;nteresseerd in je systeem om het te gebruiken om andere systemen   
binnen te dringen. Als je systeem voorzien is van veel verbindingen of een  
poort is naar een aantal interne hosts, zou je dit type tegen kunnen komen om  
te proberen je systeem te beschadigen.
</item>  
 </itemize>
 </item>

<item> <em>Kwetsbaarheid</em> beschrijft hoe goed beveiligd je computer is  
vanaf een ander netwerk en de mogelijkheid die iemand heeft om onbevoegd  
toegang te verkrijgen.   
Wat staat er op het spel als iemand inbreekt in je systeem? Natuurlijk  
zullen de zorgen van een dynamische PPP thuisgebruiker verschillen van die  
van een bedrijf die zijn machine met het Internet of een ander groot  
netwerk heeft verbonden.  
Hoeveel tijd zal het in beslag nemen om alle gegevens die verloren zijn
gegaan te herstellen/opnieuw aan te maken? Nu wat tijd investeren kan tien
keer zoveel tijd later besparen als je de gegevens die verloren zijn gegaan
opnieuw aan moet maken. Heb je je back-up strategie gecontroleerd en je
gegevens recentelijk geverifieerd?</item>
</itemize></p>  
</sect1>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Een beveiligingsbeleid ontwikkelen</heading>  
  
<p> Cre&euml;er een eenvoudig, algemeen beleid voor je systeem dat je  
gebruikers gemakkelijk kunnen begrijpen en volgen. Het moet zowel de  
gegevens als de privacy van de gebruikers beschermen. Enkele dingen die je  
kunt overwegen om toe te voegen zijn: wie heeft toegang tot het systeem  
(Kan mijn vriend mijn account gebruiken?), wie is er bevoegd om  
software op het systeem te installeren, wie bezit welke gegevens, herstel  
na een ramp en passend gebruik van het systeem. </p>  
  
<p> Een algemeen geaccepteerd beveiligingsbeleid begint met  
de zin:   
  
<quote><bf> Dat wat niet toegestaan is, is verboden.</bf> </quote> </p>  
  
<p> Dit betekent dat, tenzij je een gebruiker toegang tot een dienst toestaat,
die gebruiker geen gebruik mag maken van die dienst totdat je toegang
toestaat. Verzeker jezelf ervan dat het beleid werkt op je reguliere  
gebruikersaccount. Zeggen "Ach, ik word geen wijs uit dat permissie-probleem, 
ik doe het wel als root", kan leiden tot beveiligingslekken die erg voor de  
hand liggend zijn, zelfs degenen die nog niet misbruikt zijn.</p>      

<p><htmlurl url="ftp://www.faqs.org/rfcs/rfc1244.html" name="rfc1244"> is een  
document dat beschrijft hoe je je eigen netwerk beveiligingbeleid moet  
cre&euml;ren. </p>
     
<p> <htmlurl url="ftp://www.faqs.org/rfcs/rfc1281.html" name="rfc1281"> is een  
document dat een voorbeeld van een beveiligingsbeleid laat zien met een  
gedeta&iuml;lleerde beschrijving van elke stap. </p>  
  
<p> Tot slot zou je het COAST-beleid archief op   
<htmlurl url="ftp://coast.cs.purdue.edu/pub/doc/policy"  
name="ftp://coast.cs.purdue.edu/pub/doc/policy"> kunnen bekijken om na te gaan  
hoe een beveiligingsbeleid er in werkelijkheid uitziet. </p>   
</sect1>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->    
<sect1><heading>Manieren om je site te beveiligen</heading>  
  
<p> Dit document zal verschillende manieren bespreken waarop je de  
dingen waar je hard voor hebt gewerkt kunt beveiligen: je lokale  
machine, je gegevens, je gebruikers, je netwerk en zelfs je reputatie. Wat zou  
er gebeuren met je reputatie als een indringer enkele gegevens van je  
gebruikers zou wissen? Of je website zou ontsieren? Of het collectieve project  
plan van je bedrijf voor het komend kwartaal zou publiceren? Als je een  
netwerkinstallatie overweegt, zijn er vele factoren waar je rekening
mee moet houden alvorens een enkele machine aan je netwerk toe te voegen.</p>      

<p>Zelfs als je een enkel dialup PPP account hebt of slechts een kleine site,
houdt dit niet in dat indringers niet in jouw systemen ge&iuml;nteresseerd
zijn. Grote geavanceerde sites zijn niet de enige doelen -- veel indringers
willen simpelweg zoveel mogelijk sites binnendringen, ongeacht hun grootte.
Bovendien kunnen ze een beveiligingslek in jouw site gebruiken om toegang te
verkrijgen tot andere sites waarmee je bent verbonden. </p>  
  
<p> Indringers hebben heel veel tijd en kunnen het gokken hoe je je systeem  
verduisterd hebt voorkomen door gewoon alle mogelijkheden te proberen. Er zijn  
ook een aantal redenen waarom een indringer in jouw systeem  
ge&iuml;nteresseerd zou kunnen zijn, welke we later zullen bespreken.</p>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect2><heading>Beveiliging van de host</heading>  
  
<p> Het gebied van beveiliging waar beheerders zich het meest op  
concentreren is wellicht de host-gebaseerde beveiliging. Dit houdt
kenmerkend in het ervoor zorgen dat je eigen systeem veilig is en
het hopen dat iedereen op je netwerk hetzelfde doet. Goede wachtwoorden
kiezen, de lokale netwerkdiensten van je host beveiligen, de
account-bestanden goed bijhouden en programma's met bekende
beveiligingslekken verbeteren, zijn onder andere de dingen die onder de
verantwoordelijkheid vallen van de lokale beveiligingsbeheerder. Hoewel dit
absoluut noodzakelijk is, kan het een ontmoedigende taak worden als je
systeem groter wordt dan een paar machines. </p>  
</sect2>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect2><heading>Beveiliging van het lokale netwerk</heading>  
  
<p> Beveiliging van het netwerk is net zo belangrijk als beveiliging  
van de lokale host. Met honderden, duizenden of meer computers op  
hetzelfde netwerk kun je er niet op vertrouwen dat al deze systemen  
veilig zijn. Je ervan verzekeren dat alleen geautoriseerde gebruikers je  
netwerk kunnen gebruiken, firewalls bouwen, een hoge mate van  
versleuteling gebruiken en zeker weten dat er geen "louche" (dus onveilige)  
machines met je netwerk verbonden zijn, maakt allemaal deel uit van de taken  
van de beveiligingsbeheerder van een netwerk. </p>  
  
<p> Dit document behandelt enkele van de technieken die worden gebruikt om je
site te beveiligen en zal je hopelijk enkele manieren laten zien om te
voorkomen dat een indringer toegang krijgt tot wat je probeert te
beschermen.</p>   
</sect2>     

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect2><heading>Beveiliging door onduidelijkheid</heading>  
  
<p> Een soort beveiliging die besproken moet worden is "beveiliging door  
onduidelijkheid". Dit betekent bijvoorbeeld het verplaatsen van een dienst die  
bekende beveiligingskwetsbaarheden heeft naar een niet-standaard poort in de  
hoop dat aanvallers het niet in de gaten hebben en het dus niet misbruiken.  
Wees gerust dat ze kunnen vaststellen dat het er is en dat ze het zullen  
misbruiken. Beveiliging door onduidelijkheid is helemaal geen beveiliging.  
Simpelweg omdat het feit dat je een kleine site hebt of niet te veel  
opvalt niet inhoudt dat een indringer niet ge&iuml;nteresseerd zal zijn in  
wat je hebt. We zullen bespreken wat je beschermt in de volgende paragrafen.  
</p>  
</sect2>  
</sect1>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Organisatie van dit document</heading>  
  
<p> Dit document is verdeeld in een aantal paragrafen. Ze behandelen  
verscheidene algemene beveiligingskwesties. De eerste, <ref  
id="fysieke-beveiliging" name="Fysieke beveiliging">, behandelt hoe je je  
fysieke machine moet beschermen tegen geknoei. De tweede, <ref  
id="lokale-beveiliging" name="Lokale beveiliging">, beschrijft hoe je je
systeem moet beschermen tegen geknoei van lokale gebruikers. De derde, <ref
id="bestands-beveiliging" name="Beveiliging van bestanden en  
bestandssystemen">, laat zien hoe je bestandssystemen en permissies op  
bestanden moet instellen. De volgende, <ref   id="wachtwoord-beveiliging"
name="Wachtwoordbeveiliging en -versleuteling">, bespreekt hoe je
versleuteling kunt gebruiken om je  machine en netwerk beter te beveiligen.
<ref id="kernel-beveiliging"  name="Beveiliging van de kernel"> bespreekt
welke kernelopties je moet instellen of je bewust van moet zijn voor een
veiliger systeem. <ref   id="netwerk-beveiliging" name="Beveiliging van het
netwerk"> beschrijft hoe je je Linux systeem beter kunt beveiligen tegen
netwerkaanvallen. <ref id="beveiligings-voorbereidingen"  
name="Beveiligingsvoorbereidingen"> bespreekt hoe je je machine(s) moet  
voorbereiden voor je ze on-line brengt. De volgende, <ref id="na-inbraak"  
name="Wat te doen tijdens en na een inbraak">, bespreekt wat te doen als je  
een aanval op je systeem constateert of ontdekt dat dit recentelijk is
gebeurd. In <ref id="bronnen" name="Bronnen"> worden enkele primaire bronnen
opgesomd waar je meer over beveiliging kunt vinden. In de V en A paragraaf
<ref id="v-en-a" name="Veel gestelde vragen"> worden enkele veel
gestelde vragen beantwoord en tot slot volgt een conclusie in <ref
id="conclusie" name="Conclusie">.</p>     

<p> De twee belangrijkste punten die je je moet realiseren als je dit document  
leest, zijn:  
<itemize>  
<item> Wees je bewust van je systeem. Controleer systeemlogs zoals  
<tt>/var/log/messages</tt>, houd een oogje op je systeem en </item>  
<item> Houd je systeem up-to-date door je ervan te verzekeren dat je de meest  
recente software versies hebt ge&iuml;nstalleerd en verbeteringen hebt  
aangebracht bij beveiligingswaarschuwingen. Dit gewoonweg doen zal helpen om  
je systeem merkbaar veiliger te maken. </item> </itemize></p>   
</sect1>  
</sect>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<SECT><heading>Fysieke beveiliging <label id="fysieke-beveiliging"></heading>  
   
<p> De eerste laag van beveiliging waar je rekening mee moet houden is de  
fysieke beveiliging van je computersystemen. Wie heeft directe fysieke  
toegang tot je machine? Zouden ze dat ook moeten hebben? Kun je je machine  
beschermen tegen hun geknoei? Zou je dat ook moeten doen? </p>  
  
<p> Hoeveel fysieke beveiliging je nodig hebt op je systeem is erg  
afhankelijk van je situatie en/of budget.</p>  
  
<p> Als je een thuisgebruiker bent, zul je waarschijnlijk niet veel nodig  
hebben (alhoewel je misschien je machine wilt beschermen tegen het geknoei  
van kinderen of hinderlijke familieleden). Als je in een laboratorium bent,  
zul je aanzienlijk meer nodig hebben, maar gebruikers moeten wel hun werk  
kunnen doen op hun machines. Veel van de volgende paragrafen bieden  
uitkomst. Als je in een kantoor bent, kun je wel of niet je machine  
beveiligen na kantoortijd of als je weg bent. Bij sommige bedrijven leidt het  
onbeveiligd achterlaten van je computer tot ontslag.</p>  
  
<p> Voor de hand liggende fysieke beveiligingsmethoden als sloten op  
deuren, kabels, afgesloten kasten en videobewaking zijn allemaal goede  
idee&euml;n, maar vallen buiten de strekking van dit document. :)</p>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Computersloten</heading>  
  
<p> Veel moderne PC-kasten bieden een voorziening om ze "op slot te doen".  
Gewoonlijk zal dit een socket aan de voorkant van de kast zijn, waarmee je met  
een bijgeleverd sleuteltje de computer op slot kunt zetten of van het slot  
kunt halen. Kastsloten kunnen helpen voorkomen dat iemand je PC steelt of de  
kast opent en je hardware rechtstreeks manipuleert/steelt. Soms kunnen ze ook  
voorkomen dat iemand je computer opnieuw opstart vanaf z'n eigen floppy of  
andere hardware. </p>  
  
<p> Deze kastsloten doen verschillende dingen al naar gelang de  
ondersteuning in het moederbord en de wijze waarop de kast is gemaakt. Op veel  
PC's is het zo gemaakt dat je de kast moet openbreken om hem open te krijgen.  
Op enkele andere laten ze je geen nieuwe toetsenborden of muizen aansluiten.  
Raadpleeg de voorschriften van je moederbord of kast voor meer informatie. Dit  
kan soms een erg bruikbare voorziening zijn, ondanks dat de sloten gewoonlijk  
van erg lage kwaliteit zijn en makkelijk kunnen worden gesloopt door  
aanvallers met slotenmakersgereedschap.</p>  
  
<p> Sommige machines (voornamelijk SPARC's en Mac's) hebben een oog  
aan de achterkant waar je een kabel door kunt halen, zodat aanvallers de kabel  
moeten doorknippen of de kast moeten slopen om erin te kunnen komen. Een  
hangslot of een combinatieslot erdoor is een afschrikwekkend middel voor  
iemand die je machine wil stelen. </p>  
</sect1>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading>Beveiliging van de BIOS</heading>  
  
<p> De BIOS is het laagste niveau van software dat je x86-gebaseerde hardware  
configureert of manipuleert. LILO en andere Linux bootmethodes benaderen de  
BIOS om vast te stellen hoe je Linux machine opgestart moet worden. Andere  
hardware waar Linux op draait heeft vergelijkbare software (OpenFirmware op  
Mac's en nieuwe Sun's, Sun boot PROM, enz...). Je kunt je BIOS gebruiken om  
te voorkomen dat aanvallers je machine opnieuw opstarten en je Linux systeem  
manipuleren. </p>  
  
<p> In de BIOS van veel PC's kun je een boot wachtwoord instellen. Dit  
verschaft niet zo heel veel beveiliging (de BIOS kan worden gereset of  
verwijderd als iemand in de kast kan komen), maar het kan een goed  
afschrikwekkend middel zijn (d.w.z. het kost tijd en laat sporen van  
geknoei na). Op dezelfde wijze kan op S/Linux (Linux voor SPARC(tm) processor  
machines) je EEPROM worden ingesteld om een boot-wachtwoord te vereisen.  
Dit kan vertragend werken voor aanvallers. </p>  
  
<p> Veel x86 BIOS'sen staan je ook toe om diverse andere goede  
beveiligingsinstellingen te specificeren. Raadpleeg je BIOS handleiding of  
bekijk het de volgende keer als je opstart. Sommige BIOS'sen staan  
bijvoorbeeld het opstarten vanaf floppy drives niet toe en sommigen vereisen  
wachtwoorden om toegang te krijgen tot enkele BIOS voorzieningen.</p>  
  
<p> <em> Let op</em>: Als je een server machine hebt en je stelt een boot  
wachtwoord in, zal je machine niet onbeheerd opstarten. Houd in gedachten  
dat je in geval van een stroomstoring moet komen opdagen om het wachtwoord  
in te toetsen. ;( </p>  
</sect1>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Beveiliging van de Boot Loader</heading>  
  
<p> In de verschillende Linux boot loaders kan ook een wachtwoord  
ingesteld worden. LILO heeft bijvoorbeeld <tt>password</tt> en  
<tt>restricted</tt> instellingen; <tt>password</tt> vereist een  
wachtwoord bij het opstarten, terwijl <tt>restricted</tt> alleen een  
wachtwoord bij het opstarten vereist als je opties specificeert  
(zoals <tt>single</tt>) bij de <tt>LILO</tt> prompt. </p>  
  
<p> Uit de lilo.conf man pagina:  
<tscreen><verb>   
password=password              
              The per-image option `password=...' (see below) applies to all images. 
restricted                 
              The per-image option `restricted' (see below) applies to all images.
             
       password=password                 
              Protect the image by a password.     

       restricted  
              A password is only required to boot the image if  
              parameters are specified  on  the  command  line   
              (e.g. single).  
</verb></tscreen></p>  
  
<p> Houd in gedachten dat wanneer je al deze wachtwoorden instelt, je ze  
ook moet onthouden. :) Onthoud ook dat deze wachtwoorden de vastbesloten  
aanvaller louter zullen vertragen. Ze kunnen niet voorkomen dat iemand  
opstart vanaf een floppy en je root partitie mount. Als je beveiliging  
samen met een boot loader gebruikt, kun je net zo goed het opstarten vanaf  
een floppy uitschakelen in de BIOS van je computer en de BIOS met een  
wachtwoord beschermen. </p>  
  
<p> Als iemand beveiligingsgerelateerde informatie van een andere boot  
loader heeft, zouden we dat graag willen horen. (<tt>grub</tt>,
<tt>silo</tt>, <tt>milo</tt>, <tt>linload</tt>, enz.)</p>  
  
<p><em>Let op</em>: Als je een server machine hebt en je stelt een boot  
wachtwoord in, zal je machine <em>niet</em> onbeheerd opstarten. Houd in  
gedachten dat je in geval van een stroomstoring moet komen opdagen om het  
wachtwoord in te toetsen. ;( </p>  
</sect1>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>xlock en vlock</heading>  
  
<p> Als je af en toe van je machine afdwaalt, is het wel aardig dat je de  
mogelijkheid hebt om je console te "vergrendelen" zodat niemand je werk kan  
verknoeien of bekijken. Twee programma's die dat doen zijn <tt>xlock</tt>  
en <tt>vlock</tt>. </p>  
  
<p> <tt>xlock</tt> is een X beeldschermvergrendeling. Het zou bij elke Linux  
distributie moeten zitten die X ondersteunt. Bekijk hiervoor de man pagina voor  
meer opties, maar in het algemeen kun je <tt>xlock</tt> draaien vanaf elke  
xterm op je console en het zal het beeldscherm vergrendelen en om een  
wachtwoord vragen om te ontgrendelen. </p>  
  
<p> <tt>vlock</tt> is een simpel klein programma waarmee je enkele of alle
virtuele consoles op je Linux box kunt vergrendelen. Je kunt alleen
degene waarop je aan het werk bent vergrendelen, of allemaal. Als je er maar
&eacute;&eacute;n afsluit, kunnen anderen binnenkomen en de console
gebruiken; ze kunnen alleen niet jouw virtuele console gebruiken totdat je
hem ontgrendelt. <tt>vlock</tt> wordt geleverd bij Redhat Linux, maar de  
weg die jij moet bewandelen om zover te komen kan anders zijn.</p>     

<p> Natuurlijk zal het vergrendelen van je console iemand ervan weerhouden om  
met je werk te knoeien, maar het zal ze niet beletten om je machine opnieuw  
op te starten of anderszins je werk te verstoren. Het weerhoudt ze ook niet om  
je machine te benaderen vanaf een andere machine op het netwerk en problemen  
te veroorzaken. </p>  
  
<p> Maar belangrijker, het weerhoudt iemand niet om het X Window systeem  
geheel te verlaten en naar een normale virtuele login prompt te gaan of  
naar de virtuele console waarvan X11 is opgestart en het op non-actief te  
zetten om zodoende jouw privileges te verkrijgen. Om deze reden zou je moeten  
overwegen om het alleen in combinatie met xdm te gebruiken. </p>   
</sect1>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Fysieke beveiligingsgevaren opsporen</heading>  
  
<p> Het eerste waar je altijd op moet letten is of je machine opnieuw is  
opgestart. Omdat Linux een robuust en stabiel besturingssysteem is, zijn de  
enige keren dat het opnieuw opgestart moet worden, de keren dat <em>jij</em>  
het buiten gebruik stelt voor upgrades van het besturingssysteem, wisseling  
van hardware of iets dergelijks. Als je machine opnieuw is opgestart buiten  
jouw medeweten, kan dat een teken zijn dat een indringer je systeem in gevaar  
brengt. Veel van de manieren waarop je machine in gevaar kan worden gebracht,  
vereisen dat de indringer je machine opnieuw opstart of hem uitschakelt. </p>  
    
<p> Controleer op tekenen van geknoei met de kast of de omgeving van de  
computer. Hoewel veel indringers hun sporen in de logbestanden verwijderen,   
is het een goed idee om ze te controleren en enige discrepantie op te merken.  
</p>  
  
<p> Het is ook een goed idee om loggegevens op een veilige plaats op te
slaan, bijvoorbeeld op een toegewijde log server op je goed beschermde
netwerk. Als een machine eenmaal te maken heeft gehad met een aanval, zijn
loggegevens van weinig nut meer, omdat ze hoogstwaarschijnlijk ook zijn
aangepast door de indringer. </p>     

<p> De syslog daemon kan zo worden ingesteld dat hij loggegevens automatisch  
naar een centrale syslog server stuurt, maar dit wordt kenmerkend
ongecodeerd gedaan, zodat een indringer de mogelijkheid heeft om de
gegevens te bekijken terwijl ze worden verzonden. Dit kan informatie
over je netwerk blootgeven, waarvan het niet de bedoeling is dat het
openbaar wordt. Er zijn syslog daemons beschikbaar die de gegevens
coderen terwijl ze worden verzonden. </p>     

<p> Wees je ook bewust dat het namaken van syslogberichten gemakkelijk
is   -- met een speciaal programma dat reeds gepubliceerd is. Syslog
accepteert   zelfs net log entries die het doen voorkomen alsof ze van de
lokale host   afkomstig zijn, zonder enige aanwijzing over hun ware herkomst.
</p>     
<p> Enkele dingen die je moet controleren in je logs:  
<itemize>   
<item> korte of onvolledige logs </item>  
<item> logs die vreemde tijdstippen bevatten </item>  
<item> logs met verkeerde permissies of eigendomsrecht </item>  
<item> registraties van het opnieuw opstarten van het systeem of diensten  
</item>  
<item> ontbrekende logs </item>   
<item> <tt>su</tt> entries of logins vanaf vreemde plaatsen </item>  
</itemize>  
</p>  
  
<p> We zullen systeemloggegevens <ref id="logs" name="later"> in  
deze HOWTO bespreken. </p>  
</sect1>  
</sect>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect><heading>Lokale beveiliging<label id="lokale-beveiliging"></heading>  
  
<p> Het volgende waar we naar gaan kijken is de beveiliging van je systeem  
tegen aanvallen van lokale gebruikers. Zeiden we zojuist <em>lokale</em>  
gebruikers? Ja! </p>  
  
<p> Toegang verkrijgen tot een lokaal gebruikersaccount is een van de  
eerste dingen die indringers op een systeem proberen op hun weg naar het  
misbruiken van het root account. Met een lakse lokale beveiliging kunnen  
ze hun normale gebruikerstoegang "upgraden" naar een roottoegang door  
gebruik te maken van een verscheidenheid aan bugs en minnetjes
ingestelde lokale diensten. Als je ervoor zorgt dat je lokale beveiliging  
waterdicht is, zal de indringer nog een hindernis moeten nemen. </p>
     
<p> Lokale gebruikers kunnen ook een hoop schade aanrichten op je systeem,  
zelfs (juist) als ze inderdaad diegene zijn die ze zeggen dat ze zijn. Het  
verstrekken van accounts aan mensen die je niet kent of van wie je geen  
achtergrondinformatie hebt, is een erg slecht idee. </p>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Nieuwe accounts aanmaken</heading>   
  
<p> Je moet ervan overtuigd zijn dat je gebruikersaccounts verschaft met  
slechts de minimale vereisten voor de taak die ze moeten doen. Als je je zoon  
(10 jaar) een account verschaft, zul je wellicht willen dat hij alleen toegang  
heeft tot een tekstverwerker of tekenprogramma, maar geen gegevens kan  
verwijderen die niet van hem zijn. </p>      
  
<p> Enkele goede vuistregels als je andere mensen rechtmatige toegang tot je  
Linux-machine toestaat:</p>       
  
<p><itemize>    
<item> Geef ze het minimale aantal privileges dat ze nodig hebben.</item>   
<item> Weet wanneer/waar vandaan ze inloggen of waar vandaan ze zouden moeten  
inloggen.</item>    
<item> Verwijder niet gebruikte accounts.</item> 
<item> Het gebruik van hetzelfde gebruikers ID op alle computers en  
netwerken is aan te raden om het onderhoud van accounts te vereenvoudigen. Ook  
staat het een eenvoudigere analyse van loggegevens toe.</item>    
<item> Het aanmaken van groeps-gebruiker ID's zou absoluut verboden moeten zijn.  
Gebruikersaccounts zorgen ook voor verantwoordelijkheid en dit is bij  
groepsaccounts niet mogelijk.</item>    
</itemize></p>      
<p> Veel lokale gebruikersaccounts die gebruikt worden bij een aanval zijn  
in geen maanden of jaren meer gebruikt. Omdat niemand ze gebruikt,
zorgen ze voor een ideaal aanvalsvoertuig.</p>    
</sect1>      
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Root beveiliging<label id="root-beveiliging"></heading>     
  
<p> Het meest gewilde account op je machine is het root (superuser) account.  
Dit account heeft zeggenschap over de gehele machine, wat ook zeggenschap kan  
inhouden over andere machines op het netwerk. Onthoud dat je het root account  
alleen moet gebruiken voor hele korte specifieke taken en dat het meestal
uitgevoerd moet worden als een normale gebruiker. Zelfs kleine foutjes als
je ingelogd bent als root kunnen problemen veroorzaken. Hoe korter je
ingelogd bent met root privileges, hoe veiliger het is.</p>      
  
<p> Enkele trucks om te voorkomen dat je je computer overhoop haalt als root:  
  
<itemize>    
<item> Als je bezig bent met een complex commando, probeer het dan eerst op  
een niet-destructieve manier ... vooral commando's die wildcards gebruiken:  
als je bijvoorbeeld <tt> "rm foo*.bar"</tt> wilt doen, doe dan eerst <tt>"ls  
foo*.bar"</tt> om zeker te weten dat je de bestanden verwijdert die je wilde  
verwijderen. Het gebruik van <tt>echo</tt> in plaats van destructieve  
commando's werkt soms ook. </item> 
   
<item> Voorzie je gebruikers van een standaard alias voor het rm commando om  
een bevestiging te vragen voordat ze bestanden verwijderen. </item>    

<item> Wordt alleen root om enkele specifieke taken uit te voeren. Als je
jezelf erop betrapt dat je probeert uit te vinden hoe iets werkt, ga dan
eerst terug naar de gewone gebruiker-shell, totdat je <tt>zeker</tt> weet
wat er als root gedaan moet worden. </item>    

<item> Het command path voor de root gebruiker is erg belangrijk. Het command  
path (dat wil zeggen de <tt>PATH</tt> omgevingsvariabele) specificeert de  
directory's waarin de shell zoekt naar programma's. Probeer het command path  
voor de root gebruiker zoveel mogelijk te beperken en zet <em>nooit</em>  
een <tt>.</tt> (hetgeen betekent "de huidige directory") in je PATH. Zorg er  
bovendien voor dat je nooit directory's met schrijfpermissie in je zoekpad  
hebt, omdat dit aanvallers toestaat om bestaande binary's aan te passen of  
nieuwe binary's aan je zoekpad toe te voegen, hetgeen hen toestaat als root te  
opereren de volgende keer dat je dat commando uitvoert. </item>    

<item> Gebruik nooit de rlogin/rsh/rexec tools (genaamd de r-utility's) als  
root. Ze zijn onderhevig aan vele soorten aanvallen en zijn ronduit gevaarlijk  
als je ze uitvoert als root. Maak nooit een <tt>.rhosts</tt> bestand aan voor  
root. </item>    

<item> Het <tt>/etc/securetty</tt> bestand bevat een lijst met terminals  
waarop root in kan loggen. Standaard (onder Red Hat Linux) is dit ingesteld
op   alleen de lokale virtuele consoles (vty's). Wees erg voorzichtig met het  
toevoegen van iets anders aan dit bestand. Je zou indirect op je normale    
gebruikersaccount in moeten kunnen loggen en vervolgens <tt>su</tt> als dat  
nodig is (hopelijk via <tt><ref id="ssh" name="ssh"></tt> of een ander  
versleuteld kanaal), zodat er geen reden is waarom je direct als root in zou  
moeten loggen. </item>    

<item> Wees altijd langzaam en weloverwogen als je bezig bent als root. Je  
acties kunnen een heleboel dingen be&iuml;nvloeden. Denk na voordat je typt!  
</item>    
</itemize> </p>      
  
<p> Als het absoluut noodzakelijk is om iemand (hopelijk erg vertrouwd)
roottoegang tot je machine toe te staan, zijn er een aantal tools
die kunnen helpen. <tt>sudo</tt> staat gebruikers toe hun wachtwoord te
gebruiken om toegang te krijgen tot een beperkte set commando's als root.
Zodoende kun je, bijvoorbeeld, een gebruiker in staat stellen om verwijderbare
media uit te  werpen en te mounten op je Linux box, maar verder geen andere
root privileges te hebben. <tt>sudo</tt> houdt ook een log bij van alle
geslaagde en mislukte sudo pogingen, zodat je uit kunt zoeken wie welk
commando gebruikte om wat te doen. Om deze reden werkt <tt>sudo</tt> zelfs
goed op plaatsen waar een aantal mensen root toegang hebben, omdat het je
helpt om aangebrachte wijzigingen bij te houden. </p>       

<p> Hoewel <tt>sudo</tt> gebruikt kan worden om bepaalde gebruikers bepaalde
privileges voor bepaalde taken te geven, heeft het een aantal tekortkomingen.
Het moet alleen gebruikt worden voor een beperkt takenpakket, zoals een
server opnieuw opstarten of nieuwe gebruikers toevoegen. Elk programma
waarbij het uitwijken naar een shell mogelijk is, zal root toegang  
verschaffen aan een gebruiker die het aanroept via <tt>sudo</tt>. Dit omvat de
meeste tekstverwerkers bijvoorbeeld. Ook een programma zo onschadelijk als 
<tt>/bin/cat</tt> kan worden gebruikt om bestanden te overschrijven, waarmee 
het mogelijk zou kunnen worden om root te misbruiken. Beschouw <tt>sudo</tt> 
als een middel voor het toekennen van verantwoordelijkheden en verwacht niet 
dat het de root gebruiker kan vervangen en tevens veilig is. </p>    
</sect1>
</sect>          

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect><heading>Beveiliging van bestanden en bestandssystemen<label   
id="bestands-beveiliging"></heading>          

<p> Een paar minuten van voorbereiding en planning vooraf, voordat je je  
systemen online zet, kan helpen ze (en de gegevens die erop opgeslagen zijn)  
te beschermen.</p>            

<p><itemize><item>Er zou nooit een reden mogen zijn om toe te staan dat
SUID/SGID programma's uitgevoerd mogen worden vanuit de home directory's van
gebruikers. Gebruik de <tt>nosuid</tt> optie in <tt>/etc/fstab</tt> voor
partities die beschrijfbaar zijn door anderen dan root. Je wilt misschien ook
<tt>nodev</tt> en <tt>noexec</tt> toepassen op de home partities van
gebruikers, evenals op <tt>/var</tt>, dus het uitvoeren van programma's is
verboden, net als het cre&euml;ren van character of block devices, wat
trouwens toch nooit noodzakelijk zou moeten zijn.</item>

<item> Als je bestandssystemen exporteert middels NFS, let er dan op dat je
<tt>/etc/exports</tt> instelt met de meest beperkte toegang mogelijk. Dit  
houdt in dat je geen gebruik moet maken van wildcards, geen root  
schrijfpermissie toestaat en waar mogelijk read-only exporteert. </item>
   
<item> Stel de bestandsaanmaak <tt>umask</tt> van je gebruikers zo beperkt  
mogelijk in. Zie <ref id="umask" name="umask instellingen">.</item>
    
<item> Als je gebruik maakt van een netwerk bestandssysteem zoals NFS om  
bestandssystemen te mounten, let er dan op dat je <tt>/etc/exports</tt>  
instelt met geschikte beperkingen. Kenmerkend is het gebruik van 'nodev',  
`nosuid' en misschien `noexec' wenselijk.</item>
    
<item> Stel limieten in voor het bestandssysteem in plaats van het
toestaan van <tt>unlimited</tt>, wat standaard is. Je kunt de limieten per
gebruiker beheren door gebruik te maken van de resource-limits PAM module en
<tt>/etc/pam.d/limits.conf</tt>. De limieten voor de groep <tt>users</tt>  
kunnen er bijvoorbeeld zo uit zien:      
  
<tscreen><verb>@users     hard  core    0   	  
@users     hard  nproc   50   	  
@users     hard  rss     5000</verb></tscreen>     
  
Dit zegt: verbied het cre&euml;ren van core bestanden, beperk het aantal  
processen tot 50 en beperk het geheugengebruik tot 5M per gebruiker.
</item>
         
<item> De <tt>/var/log/wtmp</tt> en <tt>/var/run/utmp</tt> bestanden  
bevatten de login records van alle gebruikers op je systeem. Hun zuiverheid  
moet behouden blijven, omdat ze gebruikt kunnen worden om te bepalen wanneer  
en waar vandaan een gebruiker (of een mogelijke indringer) je systeem is  
binnengekomen. Deze bestanden moeten ook <tt>644</tt> permissies hebben,  
zonder dat het invloed heeft op het normale systeemgebruik.</item>

<item> Het onveranderlijke bit kan gebruikt worden om te voorkomen dat een
bestand dat beschermd moet worden per ongeluk verwijderd of overschreven
wordt. Het voorkomt ook dat iemand een symbolische link aanmaakt naar het
bestand (zulke symbolische links zijn de bron geweest van aanvallen die
betrekking hadden op het verwijderen van <tt>/etc/passwd</tt> of  
<tt>/etc/shadow</tt>). Zie de <tt>chattr</tt>(1) man pagina voor informatie  
over het onveranderlijke bit.</item>

<item> SUID en SGID bestanden op je systeem vormen een mogelijk  
beveiligingsrisico en zullen nauwgezet in de gaten gehouden moeten worden.  
Omdat deze programma's speciale privileges toekennen aan de gebruiker die ze  
uitvoert, is het noodzakelijk om je ervan te verzekeren dat er geen onveilige  
programma's ge&iuml;nstalleerd zijn. Een favoriet trucje van crackers is om   
SUID-root programma's te misbruiken en dan een SUID programma achter te laten  
als een achterdeur om de volgende keer binnen te komen, zelfs als het  
oorspronkelijke gat is gedicht.

<tscreen><verb></verb></tscreen>
       
Zoek alle SUID/SGID programma's op je systeem en houd bij wat ze
zijn, zodat je je bewust bent van enige veranderingen die kunnen duiden op
een mogelijke indringer. Gebruik het volgende commando om te zoeken naar
alle SUID/SGID programma's op je systeem:
  
<tscreen><verb>root#  find / -type f \( -perm -04000 -o -perm -02000 \)</verb></tscreen>
  
De Debian distributie voert elke nacht een taak uit om te bepalen welke  
SUID programma's er bestaan. Het vergelijkt het dan met de uitvoer van de  
vorige nacht. Je kunt kijken in <tt>/var/log/setuid*</tt> voor deze log.
    
<tscreen><verb></verb></tscreen>

Je kunt de SUID of SGID permissies op een verdacht programma verwijderen  
met <tt>chmod</tt> en ze dan terugzetten als je denkt dat dat absoluut nodig  
is.</item>
  
<item> Bestanden met schrijfpermissie voor iedereen, in het bijzonder  
systeembestanden, kunnen een beveiligingslek zijn als een cracker toegang  
krijgt tot je systeem en ze aanpast. Directory's met schrijftoegang voor  
iedereen zijn bovendien gevaarlijk, omdat ze een cracker toestaan om naar wens  
bestanden toe te voegen of te verwijderen. Om alle bestanden met  
schrijfpermissie voor iedereen op je systeem te vinden, gebruik je het  
volgende commando:      
  
<tscreen><verb>root# find / -perm -2 ! -type l -ls</verb></tscreen>    
  
en verzeker je ervan dat je weet waarom deze bestanden schrijfpermissie  
hebben. Bij normaal gebruik zullen verscheidene bestanden schrijfpermissie  
voor iedereen hebben, inclusief enkele van <tt>/dev</tt> en symbolische links,  
dus middels <tt>! -type l</tt> worden deze niet meegenomen door het voorgaande  
<tt>find</tt> commando.</item>
  
<item> Bestanden die niemand toebehoren kunnen ook een indicatie zijn dat  
een indringer je systeem is binnengedrongen. Je kunt bestanden op je systeem  
die geen eigenaar hebben of tot geen enkele groep behoren, vinden met het  
commando:       
  
<tscreen><verb>root# find / -nouser -o -nogroup -print</verb></tscreen></item>
  
<item> Het zoeken naar <tt>.rhosts</tt> bestanden zou onderdeel uit moeten
maken van je vaste systeembeheertaken, omdat deze bestanden
niet   toegestaan zouden mogen zijn op je systeem. Onthoud, een cracker heeft  
slechts &eacute;&eacute;n onveilig account nodig om mogelijk toegang tot je  
gehele netwerk te verkrijgen. Je kunt alle <tt>.rhosts</tt> bestanden op je  
systeem vinden met het volgende commando:         
<tscreen><verb>root# find /home -name .rhosts -print</verb></tscreen></item>      
  
<item> Tot slot, voordat je de permissies op welke systeembestanden dan  
ook gaat wijzigen, moet je je ervan verzekeren dat je begrijpt wat je aan het  
doen bent. Verander nooit de permissies van een bestand, omdat het de  
makkelijkste manier lijkt om dingen werkend te krijgen. Bepaal altijd waarom  
het bestand die permissie heeft alvorens het te veranderen.</item>
</itemize></p>      
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Umask instellingen<label id="umask"></heading>      
  
<p> Het <tt>umask</tt> commando kan gebruikt worden om de standaard manier  
waarop bestanden op je systeem aangemaakt worden te bepalen. Het is de achtste  
aanvulling van de gewenste bestandsmodus. Als bestanden worden aangemaakt
zonder te letten op hun permissie-instellingen, kan de gebruiker onbewust
lees- of schrijfpermissie geven aan iemand die deze permissie niet mag
hebben. Kenmerkende <tt>umask</tt> instellingen bevatten <tt>022</tt>,
<tt>027</tt> en <tt>077</tt> (welke de meest beperkte is). Normaal
gesproken wordt umask ingesteld in  <tt>/etc/profile</tt>, zodat het van
toepassing is op alle gebruikers op het systeem. Het bestandsaanmaak-mask
kan worden berekend door de gewenste waarde af te trekken van 777. Met
andere woorden, een umask van 777 heeft tot gevolg dat nieuw aangemaakte
bestanden voor niemand lees-, schrijf- of uitvoerpermissies bevatten. Een
mask van 666 heeft tot gevolg dat nieuw aangemaakte bestanden een mask van
111 hebben. Je kunt bijvoorbeeld een regel hebben die er zo uitziet:
    
<tscreen><verb># Set the user's default umask 
  umask 033</verb></tscreen></p>      
  
<p> Let erop dat je de umask van root <tt>077</tt> maakt, wat lees-, schrijf  
en uitvoerpermissie voor andere gebruikers uitschakelt, tenzij het expliciet  
is gewijzigd met <tt>chmod</tt>. In dit geval zullen nieuw aangemaakte  
directory's 744 permissies hebben, verkregen door 033 af te trekken van 777.  
Nieuw aangemaakte bestanden die gebruik maken van de 033 umask, zullen   
permissies van 644 hebben. </p>      
<p> Als je Red Hat gebruikt en je houdt aan hun gebruiker- en groep-ID  
aanmaakschema (User Private Groups), is het alleen noodzakelijk om  
<tt>002</tt> voor een <tt>umask</tt> te gebruiken. Dit komt door het feit dat  
de standaard instelling &eacute;&eacute;n gebruiker per groep is. </p>    
</sect1>   
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Bestandspermissies</heading>      
  
<p> Het is belangrijk om je ervan te verzekeren dat je systeembestanden niet  
open staan voor aanpassingen door gebruikers en groepen die zulk  
systeemonderhoud niet zouden moeten doen. </p>      
  
<p> Unix scheidt toegangsbeheer op bestanden en directory's volgens drie  
kenmerken: eigenaar, groep en anderen. Er is altijd exact &eacute;&eacute;n  
eigenaar, een willekeurig aantal leden van de groep en alle anderen.</p>      
  
<p> Een korte uitleg van Unix permissies:</p>      
  
<p> Eigendom   - Welke gebruiker(s) en groep(en) heeft/hebben het beheer over  
de permissie-instellingen van de node en parent van de node. </p>      
  
<p> Permissies - Bits die kunnen worden ingesteld of opnieuw ingesteld kunnen  
worden om bepaalde soorten toegang tot ze te kunnen verlenen. Permissies voor  
directory's kunnen een andere betekenis hebben dan dezelfde set permissies  
voor bestanden. </p>      
  
<p><bf>Lezen:</bf>      
<itemize>    
<item> De mogelijkheid hebben om de inhoud van een bestand te kunnen lezen</item>    
<item> De mogelijkheid hebben om een directory te kunnen lezen</item>
</itemize></p>         

<p><bf>Schrijven:</bf>    
<itemize>    
<item> De mogelijkheid hebben om een bestand te kunnen toevoegen of wijzigen
</item>    
<item> De mogelijkheid hebben om bestanden in een directory te kunnen
verwijderen of verplaatsen </item>    
</itemize></p>      
  
<p><bf>Uitvoeren:</bf>    
<itemize>   
<item> De mogelijkheid hebben om een binair programma of shell script uit te kunnen  
voeren </item>   
<item> De mogelijkheid hebben om in een directory te kunnen zoeken, gecombineerd met  
leestoegang </item>  
</itemize> </p>  
  
<p><descrip><tag> Save Text attribuut: (Voor directory's)</tag>  
<p>Het "sticky bit" heeft ook een andere betekenis als het toegepast wordt op  
directory's dan wanneer het toegepast wordt op bestanden. Als het "sticky  
bit" wordt ingesteld op een directory, mag een gebruiker alleen bestanden  
verwijderen die zijn eigendom zijn of waarvoor hem expliciet  
schrijfpermissie is verleend, zelfs wanneer hij schrijfpermissie heeft  
voor de directory. Dit is ontworpen voor directory's als <tt>/tmp</tt>, die  
schrijfpermissie voor iedereen hebben, maar waar het misschien niet  
wenselijk is dat elke gebruiker naar wens bestanden kan verwijderen. Het  
"sticky bit" is te zien als een <tt>t</tt> in een lange directory  
opsomming.</p></descrip></p>  
  
<p><descrip><tag> SUID attribuut: (Voor bestanden) </tag>  
<p>Dit beschrijft set-uder-id permissies op het bestand. Als de set-user-ID 
access mode is ingesteld in de eigendomsrechten en het bestand is executable, 
zullen processen die het uitvoeren toegang verkrijgen tot systeembronnen, 
gebaseerd op de gebruiker die eigenaar van het bestand is, in tegenstelling 
tot de gebruiker die het proces heeft aangemaakt. Dit is de oorzaak van de
vele "buffer overflow" misbruiken.</p> </descrip></p>       

<p><descrip><tag> SGID attribuut: (Voor bestanden)</tag>   
<p>Indien ingesteld in de groeppermissies, beheert deze bit de "set-group-ID" 
status van een bestand. Dit gaat op dezelfde manier als SUID, behalve dat het 
nu op de groep betrekking heeft. Het bestand moet executable zijn voordat dit
enig effect kan hebben.</p></descrip></p>        

<p><descrip><tag> SGID attribuut: (Voor directory's)</tag>    
<p>Als je het SGID bit op een directory instelt (met <tt>chmod g+s 
<it>directory</it></tt>), hebben bestanden die in die directory aangemaakt 
zijn hun groep ingesteld op de groep van de directory. </p></descrip> </p>   

<p> Jij - De eigenaar van het bestand</p>   
 
<p> Groep - De groep waar je toe behoort</p> 
 
<p> Iedereen - Iedereen op het systeem die niet de eigenaar is en geen 
deel uitmaakt van de groep</p>   
 
<p><bf>Bestandsvoorbeeld:</bf></p> 
  
<p><tscreen><verb>  
       -rw-r--r--  1 kevin  users                 114 Aug 28  1997 .zlogin     
       1e bit - directory?                      (nee)            
        2e bit - lezen door eigenaar?            (ja, door kevin)       
         3e bit - schrijven door eigenaar?        (ja, door kevin)          
          4e bit - uitvoeren door eigenaar?        (nee)        
           5e bit - lezen door groep?               (ja, door users)      
            6e bit - schrijven door groep?           (nee)          
             7e bit - uitvoeren door groep?           (nee)           
              8e bit - lezen door iedereen?            (ja, door iedereen)    
               9e bit - schrijven door iedereen?        (nee)    
                10e bit - uitvoeren door iedereen?       (nee)    
</verb></tscreen></p>     
 
<p> De volgende regels zijn voorbeelden van de minimale set van permissies 
die vereist zijn voor de beschreven toegang. Misschien wil je meer permissies 
geven dan hetgeen hier opgesomd is, maar dit zou moeten beschrijven wat deze 
minimale permissies op bestanden doen:</p>     
 
<p><tscreen><verb>     
-r-------- Staat leestoegang op het bestand toe aan de eigenaar. 
--w------- Staat het de eigenaar toe om het bestand aan te passen of te
           verwijderen.(Merk op dat iedereen met schrijfpermissie op de
           directory waar het bestand zich in bevindt, het kan overschrijven
           en dus verwijderen.)     
---x------ De eigenaar kan dit programma uitvoeren, maar geen shell scripts  
	   waarvoor ook nog leestoegang nodig is.     
---s------ Uitvoeren is mogelijk met een effectieve User-ID = naar eigenaar.  
--------s- Uitvoeren is mogelijk met een effectieve Group-ID = naar groep. 
-rw------T Geen update van "last modified time". Wordt meestal gebruikt voor  
           swap bestanden.     
---t------ Geen effect.(voorheen sticky bit)  
</verb></tscreen></p>         

<p><bf>Directoryvoorbeeld:</bf></p>   
<p><tscreen><verb>     
       drwxr-xr-x  3 kevin  users                   512 Sep 19 13:47 .public_html/                 
       1e bit - directory?                        (ja, het bevat veel bestanden)                     
        2e bit - lezen door eigenaar?              (ja, door kevin) 
         3e bit - schrijven door eigenaar?          (ja, door kevin)   
          4e bit - uitvoeren door eigenaar?          (ja, door kevin)         
           5e bit - lezen door groep?                 (ja, door users)   
            6e bit - schrijven door groep?             (nee)          
             7e bit - uitvoeren door groep?             (ja, door users)      
              8e bit - lezen door iedereen?              (ja, door iedereen)                   
               9e bit - schrijven door iedereen?          (nee)    
                10e bit - uitvoeren door iedereen?         (ja, door iedereeen)     
</verb></tscreen></p>     
 
<p> De volgende regels zijn voorbeelden van de minimale set van permissies 
die vereist zijn voor de beschreven toegang. Misschien wil je meer permissies 
geven dat hetgeen hier opgesomd is, maar dit zou moeten beschrijven wat deze 
minimale permissies op directory's doen:</p>     
 
<p><tscreen><verb>    
dr-------- De inhoud kan opgesomd worden, maar bestandsattributen kunnen niet 
           gelezen worden.    
d--x------ De directory is toegankelijk en kan in opdrachten worden verwerkt
           waarin het directorypad wordt gebruikt.   
dr-x------ Bestandsattributen kunnen gelezen worden door de eigenaar 
d-wx------ Bestanden kunnen worden aangemaakt/verwijderd, zelfs als de 
           directory niet de huidige is.   
d------x-t Voorkomt dat bestanden worden verwijderd door anderen met 
           schrijftoegang. Wordt gebruikt bij /tmp.   
d---s--s-- Geen effect.    
</verb></tscreen></p>     
 
<p> Systeemconfiguratie bestanden (meestal in <tt>/etc</tt>) zijn meestal 
modus <tt>640</tt> (<tt>-rw-r-----</tt>) en eigendom van root. Afhankelijk van 
de beveiligingsvereisten van je site kun je dit aanpassen. Laat nooit enige 
systeembestanden beschrijfbaar zijn voor een groep of iedereen. Sommige 
configuratiebestanden, waaronder <tt>/etc/shadow</tt>, zouden alleen leesbaar 
voor root moeten zijn en directory's in <tt>/etc</tt> zouden op z'n minst niet 
toegankelijk voor anderen moeten zijn.</p>     
 
<p><descrip><tag> SUID shell scripts</tag>   
<p>
SUID shell scripts vormen een serieus beveiligingsrisico en om deze reden zal 
de kernel ze niet toejuichen. Ongeacht hoe veilig je denkt dat een shell 
script is, het kan worden misbruikt om een cracker een root shell te 
geven.</p></descrip></p>   
</sect1>     
 
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading>Controle op integriteit</heading>     
<p> Een andere zeer goede manier om lokale (en ook netwerk) aanvallen op je 
systeem op te sporen is het uitvoeren van een "integrity checker" zoals 
<tt>Tripwire</tt>, <tt>Aide</tt> of <tt>Osiris</tt>.  Deze "Integrity 
checkers" voeren een aantal controles uit op al je belangrijke binary's en 
configuratiebestanden en vergelijkt ze met een database van eerdere, 
goed-bewezen waarden als een naslagwerk. Kortom, alle veranderingen in de 
bestanden zullen genoteerd worden.</p>     
 
<p> Het is een goed idee om dit soort programma's op een floppy te 
installeren en dan het floppy tegen schrijven te beveiligen. Op deze manier 
kunnen indringers niet knoeien met de "Integrity checker" of de database 
veranderen. Als je zoiets eenmaal hebt ingesteld, is het een goed idee om het 
uit te voeren als een onderdeel van je normale beveiligingsbeheertaken  om te
zien of er iets is veranderd. </p>       
<p> Je kunt zelfs een <tt>crontab</tt> entry toevoegen om het 
controleprogramma vanaf je floppy elke nacht uit te voeren en de resultaten 
in de ochtend per e-mail te krijgen. Iets als:     
 
<tscreen><verb>  	
                        # set mailto 
                    	  MAILTO=kevin 
               		# run Tripwire   
                          15 05 * * * root /usr/local/adm/tcheck/tripwire   
</verb></tscreen>     
 
zal je elke morgen om 5.15 uur een verslag mailen.</p>    
 
<p> "Integrety checkers" kunnen een uitkomst zijn om indringers op te sporen 
voordat je ze op een andere manier in de gaten krijgt. Omdat er op een 
doorsnee systeem veel bestanden wijzigen, moet je voorzichtig zijn in het 
bepalen van wat het werk van een cracker is en wat je zelf gedaan hebt.</p>    
 
<p> Je kunt de open source versie van <tt>Tripwire</tt> vinden op <htmlurl   
url="http://www.tripwire.org" name="http://www.tripwire.org">, zonder kosten. 
Handleidingen en ondersteuning kunnen aangeschaft worden.</p>   
 
<p><tt>Aide</tt> vind je op <htmlurl url="http://www.cs.tut.fi/~rammer/aide.html"  
name="http://www.cs.tut.fi/~rammer/aide.html">.</p>      
 
<p><tt>Osiris</tt> vind je op <htmlurl  url="http://www.shmoo.com/osiris/" 
name="http://www.shmoo.com/osiris/">.</p>   
</sect1>     
 
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Trojan Horses</heading>     
 
<p> "Trojan Horses" zijn genoemd naar de fabelachtige tactische zet in 
Homer's "Iliad".  Het idee is dat een cracker een programma of binary dat er 
goed uitziet verspreidt en andere mensen aanmoedigt het te downloaden en het 
uit te voeren als root. Het programma kan vervolgens schade aanrichten op hun 
systeem als ze niet opletten. Terwijl ze denken dat de binary die ze zojuist 
hebben verkregen iets doet (en dat is wellicht ook zo), schaadt het ook hun 
beveiliging. </p>     
 
<p> Je moet voorzichtig zijn welke programma's je installeert op je computer. 
Red Hat levert MD5 checksums en PGP signatures op zijn RPM bestanden, zodat je 
kunt verifi&euml;ren dat je het origineel installeert. Andere distributies 
hebben soortgelijke methoden. Je moet nooit enige onbekende binary, waarvan je 
de source niet hebt, als root uitvoeren! Er zijn maar weinig aanvallers bereid 
om source code vrij te geven, zodat het in het openbaar aan een nauwkeurig
onderzoek kan worden onderworpen.</p>     

<p> Hoewel het veelomvattend kan zijn, vergewis je er dan van dat je
de  source van een programma van de originele distributie site afhaalt. Als
het  programa uitgevoerd gaat worden als root, zorg dan dat of jij of iemand
die je  vertrouwt de source heeft bekeken en geverifieerd heeft.</p>   
</sect1>  
</sect>     
 
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect><heading>Wachtwoordbeveiliging en -versleuteling<label 
id="wachtwoord-beveiliging"></heading>      
 
<p> Wachtwoorden zijn &eacute;&eacute;n van de belangrijkste 
beveiligingsmogelijkheden die vandaag de dag gebruikt worden. Het is 
belangrijk voor zowel jezelf als je gebruikers om veilige, niet te raden, 
wachtwoorden te hebben. Het merendeel van de meer recente Linux distributies 
levert <tt>passwd</tt> programma's die het je niet toestaan om een makkelijk 
te raden wachtwoord in te stellen. Zorg dat je <tt>passwd</tt> programma up to 
date is en deze mogelijkheden heeft.</p>     
 
<p> Een diepgaande verhandeling over versleuteling valt buiten de strekking 
van dit document, maar een inleiding is op z'n plaats. Versleuteling is erg 
nuttig, waarschijnlijk zelfs noodzakelijk tegenwoordig. Er zijn veel 
verschillende methoden om gegevens te versleutelen, elk met zijn eigen 
kenmerken.</p>     
 
<p> De meeste Unix systemen (en Linux is geen uitzondering) gebruiken primair
een  eenrichtingsverkeer versleutelingsalgoritme, genaamd DES (Data Encryption
Standard)  om wachtwoorden te versleutelen. Dit versleutelde wachtwoord wordt
dan  opgeslagen in  (gebruikelijk) <tt>/etc/passwd</tt> (of minder
gebruikelijk)  <tt>/etc/shadow</tt>. Als je probeert in te loggen wordt het
wachtwoord dat je  intypt opnieuw versleuteld en vergeleken met de entry in
het bestand waarin je wachtwoorden worden opgeslagen. Als ze overeenkomen
moet het wel hetzelfde wachtwoord  zijn en word je toegang verleend. Hoewel
DES een tweerichtingsverkeer  versleutelingsalgoritme is (je kunt een bericht
coderen en decoderen, op  voorwaarde dat je de juiste sleutels hebt), is de
variant die de meeste  Unix systemen gebruiken de "one-way". Dit betekent dat
het niet mogelijk is om de  versleuteling om te keren om zodoende het
wachtwoord te verkrijgen vanuit de  inhoud van <tt>/etc/passwd</tt> (of
<tt>/etc/shadow</tt>).</p>        
<p>Aanvallen met brute kracht, zoals "Crack" of "John the Ripper" (zie paragraaf 
<ref id="crack">) kunnen vaak wachtwoorden raden, tenzij je wachtwoord 
afdoende willekeurig is. PAM modules (zie hieronder) staan je toe om een 
andere versleutelingsroutine voor je wachtwoorden te gebruiken. (MD5 of iets 
dergelijks). Je kunt tevens Crack in je voordeel gebruiken. Overweeg het 
periodiek uitvoeren van Crack op je wachtwoord database om onveilige 
wachtwoorden te vinden. Neem vervolgens contact op met de overtredende 
gebruiker en vertel hem dat hij zijn wachtwoord moet veranderen.</p>     
 
<p>Kijk op <htmlurl url="http://consult.cern.ch/writeup/security/security_3.html"  
name="http://consult.cern.ch/writeup/security/security_3.html"> voor 
informatie over het kiezen van een goed wachtwoord.</p>       

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>PGP en Public-Key versleuteling</heading>     
 
<p> Public-key versleuteling, zoals dat gebruikt wordt voor PGP, 
gebruikt een sleutel voor het coderen en een sleutel voor het decoderen. 
Traditionele versleuteling gebruikt echter dezelfde sleutel voor het coderen 
en decoderen; deze sleutel moet bekend zijn bij beide partijen en zal dus op 
de een af andere wijze veilig van de een naar de ander overgebracht moeten 
worden. </p>  
 
<p> Om de noodzaak van het veilig overbrengen van de coderingssleutel te 
verlichten, gebruikt public-key versleuteling twee afzonderlijke sleutels: een 
publieke sleutel en een persoonlijke sleutel. Ieders publieke sleutel is
beschikbaar voor iedereen om de codering uit te voeren, terwijl 
tegelijkertijd iedereen zijn of haar persoonlijke sleutel heeft om 
berichten, die gecodeerd zijn met de juiste publieke sleutel, te 
decoderen.</p> 
       
<p> Zowel public-key als private-key versleuteling hebben hun voordelen en je 
kunt over deze verschillen lezen in <url 
url="http://www.rsa.com/rsalabs/newfaq/" name="The RSA Cryptography FAQ">, 
genoemd aan het eind van deze paragraaf.</p>     
 
<p> PGP (Pretty Good Privacy) wordt goed ondersteund onder Linux. De versies 
2.6.2 en 5.0 staan er bekend om dat ze goed werken. Voor een goed 
eerste-beginselen-boekje over PGP en hoe het te gebruiken, kun je de PGP FAQ 
bekijken: <htmlurl  url="http://www.pgp.com/service/export/faq/55faq.cgi"  
name="http://www.pgp.com/service/export/faq/55faq.cgi">.</p>     
 
<p> Let erop dat je de versie gebruikt die geschikt is voor het land waar je 
woont. Als gevolg van exportbeperkingen door de regering van de VS, is het 
verboden om sterke versleuteling in elektronische vorm de landsgrenzen over te 
brengen. </p>     
 
<p> Exportcontroles worden nu beheerd door EAR (Export Administration 
Regulations). Ze worden niet langer bepaald door ITAR.</p>    
 
<p> Er is ook een stap-voor-stap gids voor het instellen van PGP onder Linux, 
beschikbaar op <htmlurl  
url="http://mercury.chem.pitt.edu/~angel/LinuxFocus/English/November1997/article7.html" 
name="http://mercury.chem.pitt.edu/~angel/LinuxFocus/English/November1997/article7.html">. 
Het is geschreven voor de internationale versie van PGP, maar het is 
makkelijk aan te passen aan de versie voor de Verenigde Staten. Je hebt 
mogelijk ook een patch nodig voor de recente versies van Linux; de patch is 
beschikbaar op <htmlurl url="ftp://metalab.unc.edu/pub/Linux/apps/crypto"  
name="ftp://metalab.unc.edu/pub/Linux/apps/crypto">.</p>     
 
<p> Er is een project waar gewerkt wordt aan een gratis re-implementatie van 
PGP met open source. GnuPG is een complete en gratis vervanging van PGP. Omdat 
het geen IDEA of RSA gebruikt, kan het zonder enige beperkingen gebruikt 
worden. GnuPG komt bijna overeen met <htmlurl  
url="http://www.faqs.org/rfcs/rfc2440.html" name="OpenPGP">. Zie de GNU 
Privacy Guard webpagina voor meer informatie: <htmlurl 
url="http://www.gnupg.org"  name="http://www.gnupg.org/">.</p>     
 
<p> Meer informatie over versleuteling kan gevonden worden in "The RSA 
cryptography FAQ", beschikbaar op <htmlurl 
url="http://www.rsa.com/rsalabs/newfaq/"  
name="http://www.rsa.com/rsalabs/newfaq/">. Hier vind je informatie over 
begrippen als "Diffie-Hellman", "public-key cryptography", "digital 
certificates", enz.</p>   
</sect1>     
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>SSL, S-HTTP, HTTPS en S/MIME</heading> 
 
<p> Gebruikers vragen vaak naar de verschillen tussen de diverse 
beveiligings- en versleutelingsprotocollen en hoe ze gebruikt moeten worden. 
Hoewel dit geen document over versleuteling is, is het een goed idee om kort 
uit te leggen wat elk protocol inhoudt en waar meer informatie te vinden is. 
</p>     
 
<p><itemize>   
<item><bf>SSL:</bf> - SSL, of Secure Sockets Layer, is een 
versleutelingsmethode die ontwikkeld is door Netscape om in beveiliging over 
het Internet te voorzien.  Het ondersteunt diverse verschillende 
versleutelingsprotocollen en voorziet in client en server authenticatie. SSL 
opereert op de transportlaag, cre&euml;ert een veilig versleuteld kanaal
met  gegevens en kan dus naadloos vele soorten gegevens versleutelen. Dit is
in de meeste gevallen te zien wanneer een veilige site wordt benaderd om een
veilig online  document te bekijken met Communicator en dient als de basis voor
veilige  communicatie met Communicator, net als vele andere  Netscape
Communications  gegevensversleuteling. Meer informatie kan worden gevonden op 
<htmlurl  url="http://www.consensus.com/security/ssl-talk-faq.html"  
name="http://www.consensus.com/security/ssl-talk-faq.html">.  Informatie over 
Netscape's andere beveiligingsimplementaties en een goed startpunt voor deze 
protocollen is beschikbaar op <htmlurl  
url="http://home.netscape.com/info/security-doc.html"  
name="http://home.netscape.com/info/security-doc.html">.
<tscreen><verb></verb></tscreen></item>    

<item><bf>S-HTTP:</bf> - S-HTTP is een ander protocol dat voorziet in 
beveiligingsdiensten over het Internet. Het is ontworpen om te voorzien in 
vertrouwelijkheid, authenticatie, integriteit en niet afwijzend te zijn
&lsqb;kan niet aangezien worden voor iemand anders] terwijl het meerdere
sleutelbeheertechnieken en cryptografische algoritmen ondersteunt via
onderhandeling over de mogelijkheden tussen de betrokken partijen in iedere
transactie. S-HTTP is beperkt tot de specifieke software die het
uitvoert en versleutelt elk bericht individueel. &lsqb;Uit de RSA
Cryptography FAQ, pagina 138.]<tscreen><verb></verb></tscreen></item>     

<item><bf>S/MIME:</bf> - S/MIME, of Secure Multipurpose Internet Mail  
Extension, is een versleutelingsstandaard die gebruikt wordt om e-mail en 
andere soorten berichten op het Internet te versleutelen. Het is een open 
standaard, ontwikkeld door RSA, dus het is waarschijnlijk dat we het 
binnenkort onder Linux tegenkomen. Meer informatie over S/MIME kan worden 
gevonden op <htmlurl  
url="http://home.netscape.com/assist/security/smime/overview.html"  
name="http://home.netscape.com/assist/security/smime/overview.html">.</item>
</itemize></p>    
</sect1>        

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading>Linux IPSEC uitvoeringen</heading>        

<p> Afgezien van CIPE en andere vormen van gegevensversleuteling, zijn er
ook  diverse andere uitvoeringen van IPSEC voor Linux. IPSEC is een poging van
de IETF om cryptografisch-veilige communicaties op het IP netwerkniveau te  
cre&euml;ren en om te voorzien in authenticatie, integriteit, toegangscontrole
en vertrouwelijkheid. Informatie over IPSEC en ontwerpen voor Internet kan
gevonden worden op <htmlurl
url="http://www.ietf.org/html.charters/ipsec-charter.html"
name="http://www.ietf.org/html.charters/ipsec-charter.html">. Je kunt er ook
verwijzingen naar andere protocollen betreffende sleutelbeheer vinden en een 
IPSEC mailing list en archieven.</p>        

<p> De x-kernel Linux uitvoering, die ontwikkeld wordt op de Universiteit 
van Arizona, gebruikt een object-gebaseerde opzet voor het uitvoeren van
netwerkprotocollen genaamd x-kernel en kan worden gevonden op <htmlurl  
url="http://www.cs.arizona.edu/xkernel/hpcc-blue/linux.html"  
name="http://www.cs.arizona.edu/xkernel/hpcc-blue/linux.html">. Simpel
gezegd is de x-kernel een methode om berichten op het kernelniveau door
te geven, wat zorgt voor een gemakkelijkere uitvoering.  </p>        

<p> Een andere vrij verkrijgbare IPSEC uitvoering is de Linux FreeS/WAN  
IPSEC.  Hun webpagina verklaart:      

<quote>"Met deze diensten kun je veilige tunnels door niet vertrouwde
netwerken bouwen. Alles wat door het niet vertrouwde net gaat wordt
gecodeerd door de IPSEC gateway machine en gedecodeerd door de gateway aan de
andere kant. Het resultaat is Virtual Private Network of VPN. Dit is een
netwerk dat effectief priv&eacute; is, ondanks dat het machines op
verschillende sites omvat die zijn verbonden door het onveilige
Internet."</quote></p>        

<p> Het is beschikbaar om te downloaden vanaf
<htmlurl   url="http://www.xs4all.nl/~freeswan/" 
name="http://www.xs4all.nl/~freeswan/">  en heeft op het moment van dit
schrijven juist versie 1.0 bereikt. </p>        

<p>Net als bij andere vormen van versleuteling wordt het niet verspreid met
de kernel vanwege exportbeperkingen.</p>    
</sect1> 

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading><tt>ssh</tt> (Secure Shell) en <tt>stelnet</tt><label
id="ssh"></heading>        

<p> <tt>ssh</tt> en <tt>stelnet</tt> zijn programma's die het mogelijk maken 
om in te loggen op remote systemen middels een versleutelde verbinding.</p>        

<p> <tt>openssh</tt> is een serie programma's die gebruikt wordt als een 
veilige vervanging voor <tt>rlogin</tt>, <tt>rsh</tt> en <tt>rcp</tt>. Het 
gebruikt public-key versleuteling zowel om communicatie tussen twee hosts te 
versleutelen als wel het authenticeren van gebruikers. Het kan gebruikt 
worden om veilig in te loggen op een remote host of voor het copi&euml;ren van
gegevens tussen hosts, terwijl "man-in-het-midden aanvallen" (sessie-kaping) en
DNS spoofing voorkomen worden. Het voert gegevenscompressie op je
verbindingen uit en zorgt voor veilige X11 communicatie tussen hosts. </p>   

<p> Er zijn tegenwoordig diverse ssh uitvoeringen. De originele 
commerci&euml;le uitvoering van Data Fellows kan gevonden worden op <htmlurl  
url="http://www.datafellows.com"   name="http://www.datafellows.com">. De 
<tt>ssh</tt> homepage kan worden gevonden op <htmlurl
url="http://www.cs.hut.fi/ssh/"  name="http://www.cs.hut.fi/ssh/">. </p>  
    
<p> De uitstekende Openssh uitvoering is gebaseerd op een vroege versie van 
ssh van Data Fellows en is geheel bewerkt zodat het geen enkel patent of 
eigendomsdelen bevat. Het is gratis en onder een BSD licentie. Het kan 
worden gevonden op: <htmlurl url="http://www.openssh.com" 
name="http://www.openssh.com">. </p>        

<p> Er is ook een open source project om ssh van de grond af te 
re-implementeren, genaamd "psst...". Voor meer informatie zie: <htmlurl 
url="http://www.net.lut.ac.uk/psst/" 
name="http://www.net.lut.ac.uk/psst/"></p>         

<p> Je kunt ook <tt>ssh</tt> gebruiken vanaf je Windows werkstation naar je 
Linux <tt>ssh</tt> server. Er zijn diverse gratis verkrijgbare Windows client  
uitvoeringen, inclusief degene op <htmlurl  
url="http://guardian.htu.tuwien.ac.at/therapy/ssh/"  
name="http://guardian.htu.tuwien.ac.at/therapy/ssh/"> als ook een 
commerci&euml;le uitvoering van Data Fellows <htmlurl  
url="http://www.datafellows.com"  name="http://www.datafellows.com">. </p>    
  
<p> SSLeay is een gratis uitvoering van Netscape's Secure Sockets
Layer protocol, ontwikkeld door Eric Young. Het bevat diverse applicaties
zoals een veilig telnet, een module voor Apache, diverse databases en ook
diverse algoritmes inclusief DES, IDEA en Blowfish.</p>    

<p> Door gebruik te maken van deze library werd een veilige telnet vervanging 
gecre&euml;erd die versleutelt over een telnet-verbinding. In tegenstelling 
tot SSH gebruikt stelnet SSL, het Secure Sockets Layer protocol, ontwikkeld 
door Netscape.  Je kunt Secure telnet en Secure FTP vinden door te beginnen 
met de  SSLeay FAQ, beschikbaar op <htmlurl 
url="http://www.psy.uq.oz.au/~ftp/Crypto/"  
name="http://www.psy.uq.oz.au/~ftp/Crypto/">.</p>        

<p> SRP is een andere veilige telnet/ftp implementatie. Uit hun 
webpagina:</p>        

<p><quote>"Het SRP project ontwikkelt veilige Internet software voor gratis
wereldwijd gebruik. Beginnend met een volledig veilig Telnet en FTP
distributie, hopen we de zwakke netwerk authenticatie systemen te verdringen
met sterke vervangers die gebruikersvriendelijkheid niet opofferen voor
beveiliging. Beveiliging moet standaard zijn, geen optie!"</quote></p>      

<p> Ga voor meer informatie naar <htmlurl url="http://srp.stanford.edu/srp"   
name="http://srp.stanford.edu/srp">.</p>    
</sect1>        

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading>PAM - Pluggable Authentication Modules</heading>       

<p>Recente versies van de Red Hat Linux distributie komen met een uniform 
authenticatie schema, genaamd "PAM". PAM maakt het mogelijk dat je je 
authenticatiemethoden en vereisten in &eacute;&eacute;n keer verandert en alle
lokale authencatiemethoden kort samenvat zonder dat je enige binary's hoeft
te recompileren. Configuratie van PAM ligt buiten de strekking van dit
document, maar neem  zeker eens een kijkje op de PAM website voor meer
informatie. <htmlurl  
url="http://www.kernel.org/pub/linux/libs/pam/index.html"  
name="http://www.kernel.org/pub/linux/libs/pam/index.html">.</p>        

<p>Gewoon een paar dingen die je met PAM kunt doen:</p>        

<p><itemize>  
<item> Gebruik versleuteling anders dan DES voor je wachtwoorden. (Het maakt 
het moeilijker ze met brute kracht te decoderen.)</item>    
<item> Stel resource limits voor al je gebruikers in, zodat ze geen 
denial-of-service aanvallen kunnen uitvoeren (hoeveelheid processen, 
hoeveelheid geheugen enz.) </item>    
<item> Schakel shadow passwords (zie hieronder) in &eacute;&eacute;n keer
in.</item>  
<item> Zorg ervoor dat bepaalde gebruikers alleen kunnen inloggen op 
bepaalde tijden vanaf bepaalde plaatsen.</item>  
</itemize></p>    

<p> Binnen een paar uur, nodig voor het installeren en configureren van je 
systeem, kun je veel aanvallen op voorhand voorkomen. Gebruik bijvoorbeeld PAM
om het systeemwijd gebruik van <tt>.rhosts</tt> bestanden in home directory's
van gebruikers uit te schakelen door het toevoegen van deze regels aan 
<tt>/etc/pam.d/rlogin</tt>:  
<tscreen><verb> 
           #   	              
           # Disable rsh/rlogin/rexec for users   	                      
           # 
           login auth required pam_rhosts_auth.so no_rhosts  
</verb></tscreen></p>    
</sect1>   

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading>Cryptographic IP Encapsulation (CIPE)</heading>   
 
<p> Het primaire doel van deze software is te voorzien in een
faciliteit voor een veilige (tegen het afluisteren of aftappen van
berichten, inclusief het analyseren van het netwerkverkeer en faked message
injection) subnetwerk interconnectie over een onveilig packet netwerk zoals
het Internet.</p>
 
<p> CIPE versleutelt de gegevens op het netwerk niveau. Pakketten die 
reizen tussen hosts op het netwerk worden versleuteld. Het 
versleutelingsmechanisme is dichtbij het stuurprogramma geplaatst dat 
de pakketten verstuurt en ontvangt.</p> 
 
<p> Dit werkt in tegenstelling tot SSH, dat de gegevens per verbinding
versleutelt, op het socket niveau. Een logische verbinding tussen programma's
die op  verschillende hosts uitgevoerd worden wordt versleuteld.</p>   

<p> CIPE kan gebruikt worden bij "tunnelling" om een Virtual Private 
Network aan te maken. Low-level versleuteling heeft het voordeel dat 
het zo gemaakt kan worden dat het transparant werkt tussen de twee 
netwerken verbonden in het VPN, zonder enige wijziging aan 
applicatie-software. </p> 
 
<p> Samengevat uit de CIPE documentatie:</p> 
  
<p><quote> De IPSEC normen defini&euml;ren een set protocollen die
gebruikt kunnen worden (onder andere) om versleutelde VPN's te bouwen.
IPSEC is echter een zware en gecompliceerde set van protocollen met
een heleboel opties. Uitvoeringen van de volledige set protocollen
worden nog zelden gebruikt en sommige geschilpunten (zoals sleutelbeheer) zijn
nog niet volledig opgelost. CIPE gebruikt een eenvoudigere benadering,
waarbij veel dingen die in parameters vastgelegd kunnen worden (zoals de
keuze van het actuele versleutelingsalgoritme wat gebruikt wordt) een keuze
is die tijdens de installatie gemaakt moet worden. Dit beperkt de
flexibiliteit, maar zorgt voor een eenvoudige (en derhalve effici&euml;nte,
makkelijk te debuggen...) uitvoering. </quote></p>      

<p> Verdere informatie kan worden gevonden op <htmlurl 
url="http://www.inka.de/~bigred/devel/cipe.html"  
name="http://www.inka.de/~bigred/devel/cipe.html"></p>    

<p> Net als met andere vormen van versleuteling wordt het niet standaard met 
de kernel meegeleverd wegens exportbeperkingen.</p>  
</sect1>    

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Kerberos</heading>    

<p>  Kerberos is een authenticatiesysteem, ontwikkeld door het Athena Project
op MIT. Als een gebruiker inlogt, authenticeert Kerberos deze gebruiker 
(gebruik makend van een wachtwoord) en voorziet de gebruiker in een manier
om zijn identiteit te bewijzen aan andere servers en hosts verspreid over het 
netwerk. </p>    

<p> Deze authenticatie wordt dan gebruikt door programma's zoals 
<tt>rlogin</tt> om het de gebruiker mogelijk te maken op andere hosts in te 
loggen zonder wachtwoord (in plaats van het <tt>.rhosts</tt> bestand). Deze  
authenticatiemethode kan ook gebruikt worden door het mailsysteem om te 
garanderen dat de mail is aangeleverd bij de juiste persoon, evenals het 
garanderen dat de afzender is wie hij beweert te zijn.</p>    

<p>  Kerberos en de andere programma's die erbij geleverd worden, voorkomen 
dat gebruikers het systeem "spoofen" en zodoende laten geloven dat ze  iemand
anders zijn. Helaas is het installeren van Kerberos erg indringend, omdat het
het aanpassen of vervangen van vele standaard programma's vereist.</p>   

<p> Je kunt meer informatie over Kerberos vinden door te kijken op <htmlurl 
url="http://www.cis.ohio-state.edu/hypertext/faq/usenet/kerberos-faq/general/faq.html"
name="the kerberos FAQ"> en de code kan worden gevonden op <htmlurl  
url="http://nii.isi.edu/info/kerberos/" 
name="http://nii.isi.edu/info/kerberos/">.</p>    

<p> [Van: Stein, Jennifer G., Clifford Neuman en Jeffrey L. Schiller.  
"Kerberos: Een Authenticatie Service voor Open Netwerk Systemen." USENIX   
Conference Proceedings, Dallas, Texas, Winter 1998.]</p>  
 
<p> Kerberos zou niet je eerste stap moeten zijn in het verbeteren van de 
beveiliging van je host. Het is nogal ingewikkeld en wordt niet zo veel 
gebruikt als bijvoorbeeld SSH.</p> 
</sect1>   
 
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Shadow Passwords</heading> 
 
<p> Shadow passwords is een manier om je gecodeerde wachtwoordinformatie 
geheim te houden voor normale gebruikers. Recente versies van zowel Red 
Hat als Debian Linux maken standaard gebruik van shadow passwords, maar op 
andere systemen worden gecodeerde wachtwoorden opgeslagen in het 
<tt>/etc/passwd</tt> bestand, dat iedereen kan lezen. Iedereen kan 
hier vervolgens programma's op loslaten die wachtwoorden kunnen raden en 
zodoende proberen vast te stellen wat ze zijn. Shadow passwords daarentegen 
worden opgeslagen in <tt>/etc/shadow</tt>, dat alleen door bevoegde
gebruikers kan worden gelezen. Om shadow passwords te kunnen gebruiken, moet
je je  ervan vergewissen dat al je voorzieningen die toegang nodig hebben tot 
wachtwoordinformatie opnieuw zijn gecompileerd om het te ondersteunen. PAM 
(hierboven) biedt je de mogelijkheid om simpelweg een shadow module te 
plaatsen; het vereist geen hercompilatie van executables. Je kunt een beroep 
doen op de Shadow-Password HOWTO voor meer informatie als dat nodig is. Het is 
beschikbaar op <htmlurl url="http://metalab.unc.edu/LDP/HOWTO/Shadow-Password-HOWTO.html"  
name="http://metalab.unc.edu/LDP/HOWTO/Shadow-Password-HOWTO.html">  Het is nu  
behoorlijk gedateerd en niet nodig voor distributies die PAM ondersteunen. </p> 
</sect1> 
 
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>"Crack" en "John the Ripper"<label id="crack"></heading>   
 
<p> Als om wat voor reden dan ook je <tt>passwd</tt> programma geen moeilijk 
te raden wachtwoorden afdwingt, zul je wellicht een programma willen uitvoeren 
dat wachtwoorden kraakt om je zodoende ervan te kunnen vergewissen dat de
wachtwoorden van je gebruikers veilig zijn.</p> 
 
<p> Programma's die wachtwoorden kraken zijn gebaseerd op een simpel idee: ze 
proberen elk woord in het woordenboek en vervolgens variaties op deze woorden, 
coderen ze allemaal en vergelijken ze met je gecodeerde wachtwoord. Als dit 
tot een treffer leidt, weten ze wat je wachtwoord is.</p> 
 
<p> Er zijn een aantal van deze programma's in omloop ... waarvan de twee meest 
opvallende "Crack" en "John the Ripper" zijn (<htmlurl 
url="http://www.false.com/security/john/index.html"  
name="http://www.false.com/security/john/index.html">). Ze nemen een hoop 
van je CPU tijd in beslag, maar je zou wel moeten kunnen vertellen of een 
aanvaller binnen zou kunnen komen middels deze programma's, door ze eerst zelf 
uit te voeren en gebruikers met zwakke wachtwoorden op de hoogte te stellen. 
Houd in de gaten dat een aanvaller eerst een ander lek moet gebruiken om je 
<tt>/etc/passwd</tt> bestand te kunnen lezen, maar zulke lekken komen vaker 
voor dan je denkt.</p> 
 
<p> Omdat beveiliging slechts zo krachtig is als je meest onveilige host, is 
het de moeite waard te vermelden dat als je enige Windows machines op je 
netwerk hebt, je eens L0phtCrack, een Crack implementatie voor Windows, zou 
moeten proberen. Het is beschikbaar op <htmlurl url="http://www.l0pht.com" 
name="http://www.l0pht.com"> </p> 
</sect1> 
 
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>CFS - Cryptographic File System en TCFS - Transparent Cryptographic File System</heading> 
 
<p> CFS is een manier om hele directorystructuren te coderen en gebruikers 
de mogelijkheid te geven om gecodeerde bestanden hierin op te slaan. Het 
maakt gebruik van een NFS server die draait op de lokale machine. RPM's zijn 
beschikbaar op <htmlurl  url="http://www.zedz.net/redhat/"  
name="http://www.zedz.net/redhat/"> en meer informatie over hoe het werkt 
staat op <htmlurl url="ftp://ftp.research.att.com/dist/mab/"  
name="ftp://ftp.research.att.com/dist/mab/">.</p> 
 
<p> TCFS overtreft CFS doordat er meer integratie met het bestandssysteem is 
toegevoegd, zodat het duidelijker voor de gebruikers is dat het 
bestandssysteem gecodeerd is. Meer informatie staat op <htmlurl  
url="http://edu-gw.dia.unisa.it/tcfs/" name="http://edu-gw.dia.unisa.it/tcfs/">. 
</p> 
  
<p> Het hoeft ook niet gebruikt te worden op gehele bestandssystemen, het
werkt  ook op directorystructuren.</p> 
</sect1>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>X11, SVGA en beeldschermbeveiliging</heading>   
 
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect2><heading>X11</heading> 
 
<p> Het is belangrijk dat je je grafische beeldscherm beveiligt om 
te voorkomen dat aanvallers je wachtwoord inpikken terwijl je het intypt, 
documenten of andere informatie die op je scherm staat lezen of zelfs een
lek gebruiken om root toegang te verkrijgen. Het uitvoeren  van remote X
applicaties over het netwerk kan ook vol gevaar zijn, doordat het snuffelaars
mogelijk wordt gemaakt om al je interactie met het remote systeem te zien.
</p>   

<p> X heeft een aantal manieren voor toegangsbeheer. De eenvoudigste van deze 
is host-gebaseerd: je gebruikt <tt>xhost</tt> om alle hosts die toegang mogen 
hebben tot je beeldscherm te specificeren. Dit is absoluut niet veilig, want 
als iemand toegang heeft tot je machine, kan het commando <tt>xhost + 
<it>hun machine</it></tt> gegeven worden en men komt gemakkelijk binnen.
Bovendien, als  je toegang vanaf een niet vertrouwde machine toe moet staan,
kan iedereen daar  je beeldscherm compromitteren.</p>    

<p> Als je <tt>xdm</tt> (X Display Manager) gebruikt om in te loggen, krijg 
je een veel betere toegangsmethode: MIT-MAGIC-COOKIE-1. Een 128-bit "cookie" 
wordt gegenereerd en opgeslagen in je <tt>.Xauthority</tt> bestand. Als je 
een remote machine toegang moet verschaffen tot je beeldscherm, kun je het 
<tt>xauth</tt> commando en de informatie in je <tt>.Xauthority</tt> bestand 
gebruiken om toegang te verschaffen voor alleen die verbinding. Zie de 
Remote-X-Apps mini-HOWTO, beschikbaar op <htmlurl  
url="http://metalab.unc.edu/LDP/HOWTO/mini/Remote-X-Apps.html"  
name="http://metalab.unc.edu/LDP/HOWTO/mini/Remote-X-Apps.html">. </p> 
 
<p> Je kunt ook <tt>ssh</tt> gebruiken (zie <ref id="ssh">, hierboven) om 
veilige X verbindingen mogelijk te maken. Dit heeft als voordeel dat het 
ook duidelijk is voor de eindgebruiker en houdt in dat er geen 
ongecodeerde gegevens over het netwerk verzonden worden. </p> 
 
<p> Bekijk de <tt>Xsecurity</tt> man pagina voor meer informatie over X  
beveiliging. De meest veilige gok is het gebruik van <tt>xdm</tt> om in te 
loggen op je console en vervolgens <tt>ssh</tt> te gebruiken om naar remote 
sites te gaan waarop je X programma's wilt uitvoeren. </p> 
</sect2> 
 
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect2><heading>SVGA</heading>  
 
<p> SVGAlib programma's zijn kenmerkend SUID-root, ten einde al de video 
hardware van je Linux machines te kunnen benaderen. Dit maakt ze erg 
gevaarijk. Als ze crashen, zul je kenmerkend je machine opnieuw moeten 
opstarten om een bruikbare console terug te krijgen. Let er op dat elk SVGA 
programma dat je uitvoert authentiek en op z'n minst enigszins vertrouwd is. 
Nog beter, voer ze helemaal niet uit. </p> 
</sect2> 
 
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect2><heading>GGI (Generic Graphics Interface project)</heading>   
 
<p> Het Linux GGI project probeert verschillende van de problemen met video 
interfaces onder Linux op te lossen. GGI zal een klein stukje van de video 
code naar de Linux kernel verplaatsen en vervolgens de toegang tot het 
videosysteem beheren. Dit betekent dat GGI in staat is om op elk moment je 
console in een bekende, goede staat te herstellen. Het voorziet ook in een 
beveiligings-waarschuwingssleutel, zodat je zeker weet dat er geen Trojan 
horse <tt>login</tt> programma op je console draait.<htmlurl  
url="http://synergy.caltech.edu/~ggi/"  
name="http://synergy.caltech.edu/~ggi/"></p> 
</sect2> 
</sect1> 
</sect> 
 
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect><heading>Beveiliging van de kernel<label id="kernel-beveiliging"> 
</heading> 
 
<p> Dit is een beschrijving van de opties voor het configureren van de 
kernel die met beveiliging te maken hebben, een beschrijving van wat ze doen 
en hoe je ze moet gebruiken.</p> 
 
<p> Omdat de kernel het gebruik van je computer op het netwerk beheert, is het 
belangrijk dat deze erg veilig is en niet in gevaar gebracht kan worden. Om 
enkele van de meest recente netwerkaanvallen te voorkomen, moet je proberen om 
je kernelversie actueel te houden. Je kunt nieuwe kernels vinden op 
<url url="ftp://ftp.kernel.org"> of bij de leverancier van je distributie.</p> 
  
<p> Er is ook een internationale groep die een afzonderlijke uniforme 
coderingspatch verschaft voor de conventionele Linux kernel. Deze patch 
verschaft ondersteuning voor een aantal cryptografische subsystemen en 
zaken die niet kunnen worden toegevoegd aan de conventionele kernel vanwege 
exportbeperkingen. Voor meer informatie kun je hun webpagina bezoeken op: 
<htmlurl  url="http://www.kerneli.org" name="http://www.kerneli.org"></p> 
 
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Opties om 2.0 kernels te compileren</heading> 
 
<p> De volgende opties zijn voor 2.0.x kernels van toepassing. Je zou deze 
opties moeten kunnen zien tijdens het configuratieproces van de kernel. Veel
van de  opmerkingen hier komen uit
<tt>./linux/Documentation/Configure.help</tt>. Dit  is hetzelfde document als
waarnaar verwezen wordt wanneer de Help faciliteit  aangeroepen wordt
tijdens de <tt>make config</tt> fase van het compileren  van de kernel.</p>   
<p><itemize> 
<item> Netwerk Firewalls (CONFIG_FIREWALL) 
<tscreen><verb></verb></tscreen> 
Deze optie moet ingeschakeld zijn als je van plan bent om enige 
firewalling of masquerading op je Linux machine uit te voeren. Als het 
slechts gaat om een gewone client machine, is het veilig deze optie niet in 
te schakelen.<tscreen><verb></verb></tscreen></item>  
 
<item> IP: forwarding/gatewaying (CONFIG_IP_FORWARD)
<tscreen><verb></verb></tscreen> 
Als je IP forwarding inschakelt, wordt je Linux box wezenlijk een router. 
Als je machine aangesloten is op een netwerk, kun je gegevens doorsturen van 
het ene netwerk naar het andere en wellicht een firewall ondermijnen die daar 
was geplaatst om dit te voorkomen. Gewone dial-up gebruikers zullen dit uit 
willen schakelen en andere gebruikers moeten zich concentreren op de 
beveiligingsimplicaties als ze dit doen. Firewall machines zullen dit 
ingeschakeld willen hebben en samen met firewall software gebruiken.
<tscreen><verb></verb></tscreen> 
Je kunt IP forwarding dynamisch inschakelen door gebruik te maken van 
het volgende commando:
 
<tscreen><verb>root#  echo 1 > /proc/sys/net/ipv4/ip_forward</verb></tscreen>
   
en het uitschakelen met het commando: 
 
<tscreen><verb>root#  echo 0 >/proc/sys/net/ipv4/ip_forward</verb></tscreen>  

Houd in gedachten dat de bestanden in /proc "virtuele" bestanden zijn 
en de getoonde omvang van het bestand wellicht niet overeenkomt met de 
gegevensuitvoer hiervan. <tscreen><verb></verb></tscreen></item> 
 
<item> IP: syn cookies (CONFIG_SYN_COOKIES) 
<tscreen><verb></verb></tscreen> 
Een "SYN Attack" is een "denial of service" (DoS) aanval die alle 
hulpbronnen op je machine verbruikt en je dwingt om opnieuw op te 
starten. We kunnen geen reden bedenken waarom je dit niet gewoon 
inschakelt. In de 2.2.x kernel series staat deze configuratieoptie alleen 
syn cookies toe, maar schakelt ze niet in. Om ze in te schakelen, moet je 
het volgende commando geven:
 
<tscreen><verb>root# echo 1 >
/proc/sys/net/ipv4/tcp_syncookies</verb></tscreen></item>      

<item> IP: Firewalling (CONFIG_IP_FIREWALL)
<tscreen><verb></verb></tscreen>    
Deze optie is noodzakelijk als je je machine gaat configureren als een 
firewall, aan masquerading gaat doen of je dial-up werkstation wil 
beschermen tegen het binnendringen van iemand via je PPP dial-up 
interface.<tscreen><verb></verb></tscreen></item>   
 
<item> IP: firewall packet logging (CONFIG_IP_FIREWALL_VERBOSE) 
<tscreen><verb></verb></tscreen> 
Deze optie geeft je informatie over de pakketten die je firewall 
ontvangt, zoals afzender, ontvanger, poort enzovoorts.
<tscreen><verb></verb></tscreen></item>  

<item> IP: Drop source routed frames (CONFIG_IP_NOSR) 
<tscreen><verb></verb></tscreen> 
Deze optie moet ingeschakeld worden. Source routed frames bevatten 
het gehele pad tot hun bestemming binnenin het pakket. Dit betekent dat 
de routers waar het pakket doorheen gaat het niet hoeven te inspecteren en het 
gewoon doorsturen. Dit kan ertoe leiden dat er gegevens je systeem binnenkomen 
die een potentieel beveilingslek kunnen zijn.
<tscreen><verb></verb></tscreen></item>  

<item> IP: masquerading (CONFIG_IP_MASQUERADE) 
<tscreen><verb></verb></tscreen> 
Als een van de computers op je lokale netwerk, waarvoor je Linux box als 
een firewall optreedt, iets wil versturen naar buiten, kan jouw box zich 
vermommen (masquerade) als die host. Dat wil zeggen, het stuurt het 
verkeer door naar de bedoelde bestemming, maar laat het eruitzien alsof 
het komt van de firewall box zelf. Zie <htmlurl 
url="http://www.indyramp.com/masq"  name="http://www.indyramp.com/masq"> 
voor meer informatie.<tscreen><verb></verb></tscreen></item>
 
<item> IP: ICMP masquerading (CONFIG_IP_MASQUERADE_ICMP)
<tscreen><verb></verb></tscreen> 
Deze optie voegt ICMP masquerading toe aan de vorige optie, waarbij alleen 
masquerading van TCP of UDP verkeer plaatvindt.
<tscreen><verb></verb></tscreen></item>  

<item> IP: transparent proxy support (CONFIG_IP_TRANSPARENT_PROXY)
<tscreen><verb></verb></tscreen> 
Hiermee kan je Linux firewall elk netwerkverkeer dat van het lokale
netwerk afkomstig is en bestemd is voor een remote host transparant omleiden
naar een lokale server, genaamd een "transparent proxy server". Dit zorgt
ervoor dat de lokale computers denken dat ze praten tegen het remote eind,
terwijl ze in feite verbonden zijn met de lokale proxy. Zie de IP-Masquerading
HOWTO en <htmlurl  url="http://www.indyramp.com/masq" 
name="http://www.indyramp.com/masq"> voor meer informatie.
<tscreen><verb></verb></tscreen></item>   

<item> IP: always defragment (CONFIG_IP_ALWAYS_DEFRAG)
<tscreen><verb></verb></tscreen>
Gewoonlijk is deze optie uitgeschakeld, maar als je een firewall of een
masquerading host aan het bouwen bent, zul je dit in willen schakelen. Wanneer
gegevens van de ene host naar de andere worden gestuurd, wordt het niet altijd
verstuurd als een enkel gegevenspakket, maar eerder wordt het gefragmenteerd
in verschillende stukken. Het probleem hierbij is dat de poortnummers alleen
in het eerste fragment opgeslagen zijn. Dit betekent dat iemand informatie aan
de overblijvende pakketten kan toevoegen die daar niet hoort te zijn. Het kan
ook een "teardrop attack" voorkomen tegen een interne host die hier zelf nog
niet tegen gepatched is.<tscreen><verb></verb></tscreen></item>

<item> Packet Signatures (CONFIG_NCPFS_PACKET_SIGNING)
<tscreen><verb></verb></tscreen>
Dit is een optie, beschikbaar in de 2.2.x kernel series, die NCP pakketten zal
voorzien van een kenmerk voor een betere beveiliging.
Normaal kun je het uit laten staan, maar het is er als je het toch nodig hebt.
<tscreen><verb></verb></tscreen></item>

<item>IP: Firewall packet netlink device (CONFIG_IP_FIREWALL_NETLINK)    
<tscreen><verb></verb></tscreen>
Dit is een erg aardige optie waarmee je de eerste 128 bytes van de
pakketten van een user-space programma kan analyseren, om zodoende te bepalen
of je, gebaseerd op zijn deugdelijkheid, het pakket wilt accepteren of
afwijzen. </item>
</itemize></p>  
</sect1>      

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading> Opties om 2.2 kernels te compileren</heading>       

<p> Voor 2.2.x kernels zijn veel van de opties hetzelfde, maar er zijn ook
een paar nieuwe ontwikkeld. Veel van de opmerkingen hier komen van   
<tt>./linux/Documentation/Configure.help</tt>, wat hetzelfde document is
waarnaar verwezen wordt als je de Help faciliteit gebruikt tijdens de
<tt>make config</tt> fase bij het compileren van de kernel. Alleen de nieuw
toegevoegde opties worden hieronder opgesomd. Raadpleeg de 2.0 beschrijving
voor een lijst met andere noodzakelijke opties. De meest opmerkelijke
verandering in de 2.2 kernel series is de  IP firewalling code. Het
<tt>ipchains</tt> programma wordt nu gebruikt om IP  firewalling te
installeren, in plaats van het <tt>ipfwadm</tt> programma dat gebruikt werd in
de 2.0 kernel.</p>     

<p><itemize><item> Socket Filtering  (CONFIG_FILTER)    
<tscreen><verb></verb></tscreen>
Voor de meeste mensen is het veilig om nee te zeggen tegen deze optie.
Met deze optie kun je een userspace filter verbinden met elke socket en
vaststellen of pakketten moeten worden toegestaan of afgewezen. Zeg nee,
tenzij je een erg specifieke noodzaak hebt en in staat bent om zo'n filter te
programmeren. Houd ook in de gaten dat ten tijde van dit schrijven alle
protocollen behalve TCP ondersteund werden.
<tscreen><verb></verb></tscreen></item>     

<item> Port Forwarding    
<tscreen><verb></verb></tscreen>
Port Forwarding is een aanvulling op Masquerading, dat enige doorzending
van pakketten van buiten naar binnenin een firewall op vastgestelde poorten
toestaat. Dit kan nuttig zijn als je, bijvoorbeeld, een webserver achter een
firewall of masquerading host wil draaien en die webserver toegankelijk moet
zijn vanaf de buitenwereld. Een externe client stuurt een verzoek naar poort
80 van de firewall, de firewall stuurt dit verzoek door naar de webserver, de
webserver behandelt het verzoek en de resultaten worden via de firewall naar
de originele client verstuurd. De client denkt dat de firewall machine zelf de
webserver draait. Dit kan ook gebruikt worden voor het verdelen van de
belasting als je een heleboel identieke webservers achter de firewall hebt.
Informatie over deze voorziening is beschikbaar op   
http://www.monmouth.demon.co.uk/ipsubs/portforwarding.html (om op het WWW te
surfen heb je toegang tot een machine op het Internet nodig, die een programma
als lynx of Netscape heeft). Voor algemene informatie kun je kijken op
ftp://ftp.compsoc.net/users/steve/ipportfw/linux21/
<tscreen><verb></verb></tscreen></item>

<item> Socket Filtering  (CONFIG_FILTER)
<tscreen><verb></verb></tscreen>
Bij gebruik van deze optie kunnen user-space programma's een filter aan
elke socket verbinden en daardoor de kernel vertellen dat bepaalde soorten
gegevens wel of niet door de socket mogen gaan. Linux socket filtering werkt
voorlopig op alle soorten sockets behalve TCP. Zie het
tekstbestand <tt>./linux/Documentation/networking/filter.txt</tt> voor meer
informatie.<tscreen><verb></verb></tscreen></item>

<item> IP: Masquerading    
<tscreen><verb></verb></tscreen>
De 2.2 kernel masquerading is verbeterd. Het verschaft aanvullende
ondersteuning voor het vermommen (masquerading) van speciale protocollen etc.
Lees de IP Chains HOWTO voor meer informatie. </item>
</itemize></p> 
</sect1>    

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading> Kernel Devices</heading>      

<p> Er zijn een paar block en character devices beschikbaar onder Linux die
je ook behulpzaam kunnen zijn met de beveiliging.</p>    

<p> De twee devices <tt>/dev/random</tt> en <tt>/dev/urandom</tt> worden
verschaft door de kernel om op elk tijdstip te kunnen voorzien in willekeurige
gegevens.</p>    

<p> Zowel <tt>/dev/random</tt> als <tt>/dev/urandom</tt> zouden veilig genoeg
moeten zijn om te gebruiken voor het genereren van PGP sleutels, het aanroepen
van <tt>ssh</tt> en andere applicaties waar veilige, willekeurige nummers
vereist zijn. Voor aanvallers moet het onmogelijk zijn het volgende nummer te
voorspellen gezien elke aanvangsvolgorde van nummers van deze bronnen. Er is
een hoop moeite voor gedaan om zeker te stellen dat de nummers die je van deze
bronnen krijgt, willekeurig in elke betekenis van het woord zijn.</p>    

<p> Het enige verschil tussen de twee devices, is dat <tt>/dev/random</tt> door
zijn voorraad willekeurige bytes heen raakt en je laat wachten tot er weer een
voorraad is aangemaakt. Merk op dat het op sommige systemen een blokkade voor
lange tijd kan opwerpen doordat er gewacht wordt op het invoegen van nieuwe
door de gebruiker gegenereerde entropie in het systeem.
Je moet voorzichtigheid betrachten voordat je <tt>/dev/random</tt> gebruikt.
(Wellicht is het beste wat je kunt doen, het te gebruiken wanneer je
gevoelige sleutelinformatie aan het genereren bent en je de gebruiker vertelt
herhaaldelijk op het toetsenbord te slaan totdat je de melding "OK, genoeg"
geeft).</p>      

<p><tt>/dev/random</tt> is hoge kwaliteit entropy, gegenereerd door het meten
van de interrupt tijden etc. Het blokkeert totdat er voldoende bits met
willekeurige gegevens beschikbaar zijn.</p>      

<p><tt>/dev/urandom</tt> is vergelijkbaar, maar wanneer de opslag van entropie
op een laag pitje staat, zal het een cryptografisch sterk mengelmoesje van wat
er is terugsturen. Dit is niet zo veilig, maar het is voldoende voor de meeste
applicaties.</p>    

<p> Je kunt de devices raadplegen door iets dergelijks te gebruiken:</p>    

<p><tscreen><verb>   root#  head -c 6 /dev/urandom | mimencode</verb></tscreen>        
Dit zal acht regels willekeurige karakters op de console afdrukken, geschikt
voor wachtwoordgeneratie. Je kunt <tt>mimencode</tt> in het <tt>metamail</tt>
package vinden.</p>      

<p> Zie <tt>/usr/src/linux/drivers/char/random.c</tt> voor een beschrijving
van het algoritme.</p>     

<p> Met dank aan Theodore Y. Ts'o, Jon Lewis en anderen van Linux-kernel die
mij (Dave) hiermee geholpen hebben.</p>  
</sect1>  
</sect>    

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect><heading> Beveiliging van het netwerk<label
id="netwerk-beveiliging"></heading>      

<p> Netwerkbeveiliging wordt steeds belangrijker omdat mensen steeds langer
verbonden zijn met het netwerk. De beveiliging van het netwerk in gevaar
brengen is vaak veel eenvoudiger dan het in gevaar brengen van de fysieke of
lokale beveiliging en wordt steeds alledaagser.</p>    

<p> Er zijn een aantal goede tools die hulp bieden bij netwerkbeveiliging en
steeds meer daarvan worden geleverd bij Linux distributies.</p>      

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Packet Sniffers</heading>      

<p> Een van de meest gebruikte manieren waarop indringers zich toegang tot
meer systemen op je netwerk verschaffen is door het gebruik van een "packet
sniffer" op een reeds in gevaar gebrachte host. Deze "sniffer" luistert 
op de Ethernet poort slechts naar dingen als <tt>passwd</tt>, <tt>login</tt>
en <tt>su</tt> in de pakkettenstroom en logt dan het verkeer dat volgt. Op
deze manier verkrijgen aanvallers wachtwoorden voor systemen waarop ze niet
eens probeerden in te breken. Wachtwoorden die uit platte tekst bestaan zijn
erg kwetsbaar voor deze aanval.</p>    

<p> Voorbeeld: Host A is gecompromitteerd. Aanvaller installeert een sniffer.
Sniffer pikt een beheerder logging op naar host B, afkomstig van host C.
Het verkrijgt het persoonlijke wachtwoord van de beheerder zodra er
ingelogd wordt op B. Dan doet de beheerder een <tt>su</tt> om een probleem
op te lossen. Ze hebben nu het root wachtwoord voor host B. Later laat de
beheerder iemand <tt>telnet</tt> uitvoeren vanaf zijn account naar host Z
op een andere site. Nu heeft de aanvaller een wachtwoord/login op host Z.</p> 

<p> Tegenwoordig hoeft de aanvaller niet eens meer een systeem te
compromitteren om dit te doen: ze kunnen ook een laptop of pc het gebouw
binnenbrengen en het systeem aftappen. </p>    

<p> Het gebruik van <tt>ssh</tt> of andere methoden om wachtwoorden te
coderen dwarsboomt deze aanval. Zaken als APOP voor POP accounts kunnen deze
aanval ook voorkomen. (Normale POP logins zijn hier erg kwetsbaar voor, zoals
alles dat platte-tekst wachtwoorden over het netwerk verstuurt).</p>  
</sect1> 

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Systeemdiensten en tcp-wrappers</heading>      

<p> Het eerste waar je naar moet kijken, voordat je je Linux systeem op
<em>ENIG</em> netwerk aansluit, is wat voor diensten je moet bieden. Diensten
die je niet hoeft te bieden moeten uitgeschakeld worden, zodat je
&eacute;&eacute;n ding minder hebt om je zorgen over te maken en aanvallers
een plek minder hebben om te zoeken naar een lek.</p>    

<p> Er zijn een aantal manieren om diensten onder Linux uit te schakelen. Je
kunt kijken naar je <tt>/etc/inetd.conf</tt> bestand om te zien welke diensten
worden aangeboden door je <tt>inetd</tt>. Schakel degenen die je niet nodig
hebt uit door een <tt>&num;</tt> aan het begin van de regel te plaatsen en
vervolgens je inetd proces een SIGHUP te sturen.</p>    

<p> Je kunt ook diensten uit je <tt>/etc/services</tt> bestand verwijderen (of
een <tt>&num;</tt> aan het begin van de regel plaatsen). Dit heeft tot
gevolg dat lokale clients de dienst ook niet kunnen vinden (als je
bijvoorbeeld <tt>ftp</tt> verwijdert en probeert te ftp-en naar een remote
site vanaf die machine, zal dat mislukken en de boodschap "unknown service"
zal getoond worden). Het is meestal de moeite niet waard om diensten te
verwijderen uit <tt>/etc/services</tt>, omdat het geen aanvullende beveiliging
verschaft. Als een lokale persoon <tt>ftp</tt> zou willen gebruiken ondanks
het feit dat je een <tt>&num;</tt> aan het begin van de regel hebt geplaatst,
maken ze hun eigen client aan die de gebruikelijke FTP poort gebruikt en nog
prima werkt. </p>    

<p> Enkele diensten die je wellicht ingeschakeld zou willen laten zijn:</p>  

<p><itemize><item><tt>ftp</tt></item>   
<item><tt>telnet</tt> (of <tt>ssh</tt>)</item>    
<item>mail, zoals <tt>pop-3</tt> of <tt>imap</tt></item> 
<item><tt>identd</tt></item>  
</itemize></p>    

<p> Als je weet dat je een bepaald pakket niet gaat gebruiken, kun je het ook
helemaal verwijderen. <tt>rpm -e <it>naam van het pakket</it></tt> onder de
Red Hat distributie zal het gehele pakket verwijderen. Onder Debian doet
<tt>dpkg --remove</tt> hetzelfde.</p>    

<p> Bovendien moet je echt de rsh/rlogin/rcp utility's uitschakelen en tevens
voorkomen dat login (gebruikt door <tt>rlogin</tt>), shell (gebruikt door
<tt>rcp</tt>) en exec (gebruikt door <tt>rsh</tt>) worden gestart in
<tt>/etc/inetd.conf</tt>. Deze protocollen zijn extreem onveilig en zijn in
het verleden het doel geweest van misbruik.</p>    

<p> Je moet <tt>/etc/rc.d/rc[0-9].d</tt> (op Red Hat;
<tt>/etc/rc[0-9].d</tt> op Debian) controleren om te zien of er servers in
deze directory's gestart worden die niet nodig zijn. De bestanden in deze
directory's zijn eigenlijk symbolische links naar bestanden in de directory
<tt>/etc/rc.d/init.d</tt> (op Red Hat; <tt>/etc/init.d</tt> op Debian). Het
hernoemen van de bestanden in de <tt>init.d</tt> directory schakelt alle
symbolische links uit die naar dat bestand verwijzen. Als je een dienst
slechts voor een bepaald run level uit wilt schakelen, hernoem dan de
desbetreffende symbolische link door de hoofdletter  <tt>S</tt> te vervangen
door een kleine letter <tt>s</tt>, zoals dit:</p>    

<p><tscreen><verb>      
                          root#  cd /etc/rc6.d 
                          root#  mv S45dhcpd s45dhcpd  </verb></tscreen></p>      

<p> Als je <tt>rc</tt> bestanden in BSD-stijl hebt, moet je <tt>/etc/rc*</tt>
controleren op programma's die je niet nodig hebt.</p>    

<p> Bij de meeste Linux distributies worden tcp_wrappers geleverd die al je
TCP diensten "wrappen". Een tcp_wrapper (<tt>tcpd</tt>) wordt aangeroepen door
<tt>inetd</tt> in plaats van de echte server. <tt>tcpd</tt> controleert dan de
host die om de dienst verzoekt en start ofwel de echte server op of weigert
toegang vanaf die host. Met <tt>tcpd</tt> kun je de toegang tot je TCP
diensten beperken. Je moet een <tt>/etc/hosts.allow</tt> aanmaken en alleen
toevoegen in de hosts die toegang tot de diensten van je machine nodig hebben.
</p>    

<p> Als je een dialup thuisgebruiker bent, stellen we voor dat je ze ALLEMAAL
weigert. <tt>tcpd</tt> logt ook mislukte pogingen om toegang tot diensten te
krijgen, dus dit kan je waarschuwen als je aangevallen wordt. Als je nieuwe
diensten toevoegt, moet je je ervan overtuigen dat je ze zo configureert dat
ze tcp-verbindingen gebruiken als ze zijn gebaseerd op TCP. Een
normale dialup gebruiker kan bijvoorbeeld voorkomen dat buitenstaanders
verbinding maken met zijn machine en toch de mogelijkheid hebben om post te
ontvangen en netwerkverbindingen naar het Internet te maken. Om dit te doen,
moet je het volgende aan je <tt>/etc/hosts.allow</tt> toevoegen:</p>    

<p> ALL: 127.</p> 

<p> En natuurlijk bevat /etc/hosts.deny:</p>      

<p> ALL: ALL</p>    

<p> wat externe verbindingen naar je machine voorkomt en je toch toestaat om
van binnenuit een verbinding te maken met servers op het Internet. </p>    

<p> Houd in gedachten dat tcp_wrappers alleen diensten die uitgevoerd worden
door <tt>inetd</tt> beschermt en een bepaald aantal anderen. Het is heel goed
mogelijk dat er ook andere diensten op je machine draaien. Je kunt <tt>netstat
-ta</tt> gebruiken om een lijst te zoeken met alle diensten die je machine
aanbiedt. </p>  
</sect1>    

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> 
<sect1><heading>Verifieer je DNS informatie</heading>     

<p> Het up-to-date houden van DNS informatie van alle hosts op je netwerk kan
helpen op de beveiliging te vergroten. Als een ongeautoriseerde host
verbinding krijgt met je netwerk, kun je dat herkennen door het ontbreken van
een DNS entry. Veel diensten kunnen zo worden ingesteld dat ze geen
verbindingen toestaan van hosts die geen geldige DNS entry hebben.</p> 
</sect1>      

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading><tt>identd</tt></heading>     

<p> <tt>identd</tt> is een klein programma dat als kenmerk heeft dat het
buiten je <tt>inetd</tt> server om draait. Het houdt bij welke gebruiker welke
TCP dienst uitvoert en rapporteert dit vervolgens aan een ieder die hierom
verzoekt.</p>    

<p> Veel mensen onderschatten de bruikbaarheid van <tt>identd</tt> en
schakelen het dus uit of blokkeren alle verzoeken van de site hiervoor.
<tt>identd</tt> is er niet om remote sites van dienst te zijn. Er is geen
enkele manier om erachter te komen of de gegevens die je ontvangt van de
remote <tt>identd</tt> al dan niet correct zijn. Er vindt geen verificatie
plaats van <tt>identd</tt> verzoeken.</p>     

<p> Waarom zou je het dan willen draaien? Omdat het <em>jou</em> van nut is
en het extra gegevens kan opleveren als je iemand moet traceren. Als je
<tt>identd</tt> niet is gecompromitteerd, weet je dat het remote sites
de gebruikersnaam of gebruikers-id van mensen die TCP diensten gebruiken
vertelt. Als de beheerder op een remote site je aanspreekt en je vertelt
dat gebruiker die-en-die heeft geprobeerd om hun site te "hacken", kun je
gemakkelijk actie ondernemen tegen die gebruiker. Als je geen <tt>identd</tt>
draait, zul je een heleboel logs moeten bekijken om uit te vinden wie er op
dat moment online was en normaal gesproken veel meer tijd nodig hebben om die
gebruiker op te sporen.</p>   

<p> Aan de <tt>identd</tt> die geleverd wordt bij de meeste distributies is
meer in te stellen dan de meeste mensen denken. Je kunt het voor bepaalde
gebruikers uitschakelen (ze kunnen een <tt>.noident</tt> bestand aanmaken), je
kunt alle <tt>identd</tt> verzoeken loggen (we raden dit aan), je kunt zelfs
identd een uid in plaats van een gebruikersnaam of zelfs NO-USER laten
terugsturen. </p> </sect1>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->    
<sect1><heading>SATAN, ISS en andere netwerkscanners</heading>

<p> Er zijn een aantal verschillende softwarepakketten die doen aan poort-
en dienst-gebaseerd scannen van machines of netwerken. SATAN, ISS, SAINT en
Nessus zijn enkele van de meer bekende. Deze software maakt verbinding met de
doelmachine (of al de doelmachines op een netwerk) op alle mogelijke poorten
en probeert uit te vinden welke dienst daar draait. Gebaseerd op deze
informatie kun je zeggen of de machine kwetsbaar is voor een bepaald soort
misbruik op die server. </p>

<p> SATAN (Security Administrator's Tool for Analyzing Networks) is een
poortscanner met een webinterface. Het kan ingesteld worden om lichte, medium
of zware controles op een machine of een computernetwerk uit te voeren.
Het is een goed idee om SATAN te downloaden en je machine of netwerk te
scannen en de problemen die het vindt op te lossen. Download SATAN vanaf <url  
url="http://metalab.unc.edu/pub/packages/security/Satan-for-Linux/"  
name="metalab"> of vanaf een goed bekend staande FTP of website. Er is een
trojaanse copie van SATAN verspreid over het net: <htmlurl   
url="http://www.trouble.org/~zen/satan/satan.html"  
name="http://www.trouble.org/~zen/satan/satan.html">. Merk op dat SATAN al
geruime tijd niet meer is bijgewerkt en enkele van de andere tools hieronder
wellicht beter werken. </p>

<p> ISS (Internet Security Scanner) is een andere poort-gebaseerde
scanner. Het is sneller dan SATAN en dus wellicht beter voor grotere
netwerken. Echter, SATAN heeft de eigenschap dat het meer informatie
verschaft.</p>

<p> Abacus bestaat uit een set tools om te voorzien in host-gebaseerde
beveiliging en inbraakdetectie. Neem een kijkje op de homepage op het web voor
meer informatie. <htmlurl  url="http://www.psionic.com/abacus" 
name="http://www.psionic.com/abacus/"></p>

<p> SAINT is een bijgewerkte versie van SATAN. Het is web-gebaseerd en
heeft veel meer up-to-date tests dan SATAN. Je kunt hier meer over te weten
komen op:  <htmlurl url="http://www.wwdsi.com/saint"
name="http://www.wwdsi.com/~saint"></p>

<p> Nessus is een gratis beveiligingsscanner. Het is gemakkelijk in gebruik
dankzij een GTK grafische interface. Het is ook uitgerust met een erg aardige
plugin setup voor nieuwe poort-scan testen. Kijk voor meer informatie
op: <htmlurl url="http://www.nessus.org/" name="http://www.nessus.org"></p>
 


<sect2><heading>Poortscans detecteren</heading>
<p> Er zijn enkele tools ontworpen om je te waarschuwen voor poortscans door
SATAN, ISS en andere scansoftware. Echter, als je tcp_wrappers ruimdenkend
gebruikt en regelmatig je logbestanden nakijkt, zullen je deze poortscans
wel opvallen. Zelfs met de meest minimale instelling laat SATAN sporen na
in de logs op een Red Hat systeem.   
</p>

<p> Er zijn ook "stealth" poort scanners. Een pakket waarop het TCP ACK bit
ingesteld is (zoals dat gedaan wordt wanneer de verbindingen tot stand zijn
gebracht) zal waarschijnlijk wel door een firewall komen die
pakketten filtert. Het RST pakket dat teruggestuurd wordt vanaf een poort
die <em>_geen tot stand gebrachte sessie had_</em> kan worden gezien als
bewijs dat er leven is op die poort. Ik denk niet dat tcp_wrappers dit zal
detecteren.</p>   
</sect2> 
</sect1>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading><tt>sendmail</tt>, <tt>qmail</tt> en MTA's</heading>  

<p> Een van de belangrijkste diensten die je aan kan bieden is een
mailserver. Helaas is het ook de meest kwestbare voor aanvallen, wat te wijten
is aan het aantal taken dat het uit moet voeren en de privileges die het
kenmerkend nodig heeft.</p>  

<p> Als je <tt>sendmail</tt> gebruikt, is het erg belangrijk dat je de meest
recente versie gebruikt. <tt>sendmail</tt> heeft een heel lange
geschiedenis van misbruik op het gebied van beveiliging. Let erop dat
je altijd de meest recente versie vanaf <htmlurl url="http://www.sendmail.org/"
name="http://www.sendmail.org"> gebruikt.</p>

<p> Houd in gedachten dat sendmail niet hoeft te draaien om mail te kunnen
versturen. Als je een thuisgebruiker bent, kun je sendmail helemaal
uitschakelen en gewoon je mail client gebruiken om mail te versturen. Je kunt
er ook voor kiezen om de "-bd" flag uit het sendmail startup bestand te
verwijderen en daarbij inkomende verzoeken om mail uit te schakelen. Met
andere woorden, je kunt sendmail opstarten vanuit je startup script door
daarvoor in de plaats het volgende te gebruiken:  

<tscreen><verb>   	#  /usr/lib/sendmail -q15m  </verb></tscreen>
 
Dit zorgt ervoor dat sendmail de berichtenlijst elke vijftien minuten nazoekt
op berichten die bij de eerste poging niet met succes konden worden
overgebracht. </p>

<p> Veel beheerders kiezen ervoor om sendmail niet te gebruiken en
kiezen in plaats daarvan voor een van de andere mailtransport middelen. Je zou
kunnen overwegen om over te stappen op <tt>qmail</tt>. <tt>qmail</tt> is vanaf
het eerste begin ontworpen met beveiliging in gedachten. Het is snel, stabiel
en veilig. Qmail kan worden gevonden op <htmlurl url="http://www.qmail.org" 
name="http://www.qmail.org"></p>  

<p> Een directe concurrent van qmail is "postfix", geschreven door Wietse
Venema, de auteur van tcp_wrappers en andere beveiligingstools. Vroeger
heette het vmailer, werd gesponsord door IBM en is ook een mailtransport
middel dat vanaf het eerste begin geschreven is met beveiliging in het
achterhoofd. Je kunt meer informatie over postfix vinden op <htmlurl 
url="http:/www.postfix.org"  name="http://www.postfix.org"></p>
</sect1>

<!-- - - - -  - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading>Denial of Service aanvallen</heading>  

<p> Een "Denial of Service" (DoS) aanval is er een waar de aanvaller
probeert om enkele bronnen zo overbelast te maken dat ze geen rechtmatige
verzoeken meer kunnen beantwoorden of rechtmatige gebruikers de toegang
tot hun machine ontzeggen. </p>  

<p> Denial of service aanvallen zijn in de aflopen jaren sterk in aantal
toegenomen. Enkele van de meer populaire en recente zijn hieronder opgesomd.
Merk op dat er steeds weer nieuwe verschijnen, dus dit zijn slechts een paar
voorbeelden. Lees de Linux security lists, de bugtraq list en archieven
voor meer recente informatie.</p>  

<p><itemize><item><bf>SYN Flooding</bf> - SYN flooding is een denial of
service aanval op het netwerk. Het maakt misbruik van een "loophole" in de
manier waarop TCP verbindingen tot stand gekomen zijn. De nieuwere Linux
kernels (2.0.30 en hoger) hebben diverse in te stellen opties om te
voorkomen dat SYN flood aanvallen mensen de toegang tot hun machine of
diensten ontzeggen. Zie <ref  id="kernel-beveiliging" name="Kernel
beveiliging"> voor opties om de kernel juist te beveiligen.</item>

<item><bf>Pentium "F00F" Bug</bf> - Het is recentelijk ontdekt dat een
serie assembleercodes die gestuurd wordt naar een echte Intel
Pentium processor de machine opnieuw op zal starten. Dit heeft betrekking op
elke machine met een Pentium processor (geen klonen, geen Pentium Pro of PII),
ongeacht op welk besturingssysteem het draait. Linux kernels 2.0.32 en hoger
bevatten een handigheid om deze bug te omzeilen en zodoende te voorkomen dat
het je machine "op slot zet". Kernel 2.0.33 heeft een verbeterde versie van
deze kernel fix en wordt aangeraden vanaf versie 2.0.32. Als je draait op een
Pentium, moet je deze upgrade nu uitvoeren!</item>

<item><bf>Ping Flooding</bf> - Ping flooding is een eenvoudige denial of
service aanval met brute kracht. De aanvaller stuurt een stroom (flood) van
ICMP pakketten naar je machine. Als ze dit doen vanaf een host met een
grotere bandbreedte dan die van jou, zal je machine niet in staat zijn
om ook maar iets over het netwerk te versturen. Een variatie op deze aanval,
genaamd "smurfing", stuurt ICMP pakketten naar een host met het return IP
van <em>jouw</em> machine's, hetgeen ze toestaat om je minder traceerbaar te
"flooden". Je kunt meer informatie over de "smurf" aanval vinden op <htmlurl 
url="http://www.quadrunner.com/~chuegen/smurf.txt" name="  
http://www.quadrunner.com/~chuegen/smurf.txt">
<tscreen><verb></verb></tscreen>
Als je ooit te maken krijgt met een ping flood aanval, gebruik dan
een tool als <tt>tcpdump</tt> om te bepalen waar de pakketten vandaan komen
(of vandaan schijnen te komen) en neem vervolgens contact op met je provider
om deze informatie door te geven. Ping floods kunnen het eenvoudigst tot
staan worden gebracht op het router niveau of door gebruik te maken van
een firewall.</item>

<item><bf>Ping o' Death</bf> -  De Ping o' Death aanval stuurt ICMP ECHO
REQUEST pakketten die te groot zijn om te passen in de kernel
gegevensstructuren die bedoeld zijn om ze op te slaan. Omdat het sturen van
een enkel, groot (65,510 bytes) "ping" pakket naar veel systemen erin zal
resulteren dat ze "hangen" of zelfs crashen, werd dit probleem al snel de
"Ping  o' Death" genoemd. Dit probleem is al lang geleden opgelost en is niet
langer iets waar je je druk over hoeft te maken. </item>

<item><bf>Teardrop / New Tear</bf> - Een van de meest recente misbruiken
heeft te maken met een bug die aanwezig is in de IP fragmentatie code op Linux
en Windows platformen. Het is opgelost in kernel versie 2.0.33 en het is niet
meer nodig om tijdens het compileren van de kernel een optie te
selecteren om gebruik te maken van deze oplossing. Linux is blijkbaar niet
kwetsbaar voor het "newtear" misbruik. </item></itemize></p>

<p>Je kunt de code van de meeste misbruiken en een meer diepgaande
beschrijving van hoe ze werken, vinden op <htmlurl
url="http://www.rootshell.com"   name="http://www.rootshell.com"> door
gebruik te maken van hun zoekmachine.</p> 
</sect1>

<!-- - - - -  - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading>NFS (Network File System) beveiliging</heading>   

<p> NFS is een veelgebruikt protocol om bestanden te delen. Het staat
servers toe om <tt>nfsd</tt> en <tt>mountd</tt> te draaien om gehele
bestandssystemen te "exporteren" naar andere machines door gebruik te
maken van de ondersteuning van het NFS bestandssysteem dat is ingebouwd
in hun kernels (of een andere client ondersteuning als het geen Linux
machines zijn). <tt>mountd</tt> houdt de gemounte bestandssystemen bij in
<tt>/etc/mtab</tt> en kan ze tonen met <tt>showmount</tt>.</p>

<p> Veel sites gebruiken NFS om gebruikers te voorzien van een home directory,
zodat ze, ongeacht vanaf welke machine in het cluster ze inloggen, allemaal
hun eigen bestanden hebben.</p>  

<p> Er is maar een kleine hoeveelheid beveiliging toegestaan bij het
exporteren van bestandssystemen. Je kunt je <tt>nfsd</tt> de remote root
gebruiker (uid=0) laten omzetten naar de <tt>nobody</tt> gebruiker,
waardoor totale toegang tot de bestanden die worden ge&euml;xporteerd wordt
ontzegt. Omdat individuele gebruikers echter toegang hebben tot hun eigen
bestanden (of op z'n minst met hetzelfde uid), kan de remote root gebruiker
inloggen (of <tt>su</tt> gebruiken om in te loggen) op hun account en totale
toegang hebben tot hun bestanden. Dit is slechts een kleine hindernis voor een
aanvaller die toegang heeft om je remote bestandssystemen te mounten. </p>
  
<p> Als je NFS moet gebruiken, wees er dan zeker van dat je alleen exporteert
naar die machines waarnaar het echt nodig is. Exporteer nooit je gehele root
directory; exporteer alleen directory's die je moet exporteren.</p>

<p> Bekijk de NFS HOWTO voor meer informatie over NFS, beschikbaar op
<htmlurl url="http://metalab.unc.edu/mdw/HOWTO/NFS-HOWTO.html"  
name="http://metalab.unc.edu/mdw/HOWTO/NFS-HOWTO.html"></p>
</sect1>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>NIS (Network Information Service) (voorheen YP)</heading>
   
<p> Network Information Service (voorheen YP) is een manier waarop informatie
verspreid wordt naar een groep machines. De NIS beheerder beheert de
informatietabellen en converteert ze naar NIS map bestanden. Deze mappen
worden dan op het netwerk gezet, waar ze NIS client machines toestaan om
login, wachtwoord, home directory en shell informatie te verkrijgen (alle
informatie in een standaard <tt>/etc/passwd</tt> bestand). Dit staat
gebruikers toe om eenmalig hun wachtwoord te veranderen, waarna dit zijn
uitwerking heeft op alle machines in het NIS domein.</p> 

<p> NIS is helemaal niet veilig. Dit was ook nooit de bedoeling. Het was
bedoeld om handig en nuttig te zijn. Iedereen die de naam van je NIS domein
kan raden (waar dan ook op het net), kan in het bezit komen van een kopie
van je passwd bestand en gebruik maken van "crack" en "John the Ripper"
om de wachtwoorden van je gebruikers te kraken. Ook is het mogelijk om
NIS te "spoofen" en allerlei soorten nare trucks uit te halen.Als je NIS moet
gebruiken, wees je dan bewust van de gevaren.</p>    

<p> Er is een veel veiligere vervanging voor NIS, genaamd NIS+. Bekijk de NIS
HOWTO voor meer informatie: <htmlurl 
url="http://metalab.unc.edu/mdw/HOWTO/NIS-HOWTO.html"  
name="http://metalab.unc.edu/mdw/HOWTO/NIS-HOWTO.html"></p>
</sect1>   

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Firewalls</heading>   

<p> Firewalls zijn bedoeld om te controleren welke informatie je lokale
netwerk binnenkomt en uitgaat. De firewall host is kenmerkend
verbonden met het Internet en je lokale LAN en de enige toegang vanaf je LAN
naar het Internet is via de firewall. Op deze manier kan de firewall in de
gaten houden wat naar en vanaf het Internet en je lokale LAN wordt
gestuurd.</p>
 
<p> Er zijn een aantal soorten firewalls en manieren om ze op te zetten. Op
Linux machines kunnen erg goede firewalls gemaakt worden. Firewall code kan
rechtstreeks in 2.0 en hogere kernels ingebouwd worden. De user-space tools
<tt>ipfwadm</tt> voor 2.0 kernels en <tt>ipchains</tt> voor 2.2 kernels staan
je toe om direct de soorten netwerkverkeer die je toestaat te veranderen. Je
kunt ook bepaalde soorten netwerkverkeer loggen.</p>    

<p> Firewalls zijn een erg nuttige en belangrijke techniek om je netwerk
te beveiligen. Denk echter nooit dat omdat je een firewall hebt, je je
machines die erachter hangen niet hoeft te beveiligen. Dit is een fatale fout.
Bekijk de erg goede <tt>Firewall-HOWTO</tt> op je meest recente metalab
archief voor meer informatie over firewalls en Linux. <htmlurl  
url="http://metalab.unc.edu/mdw/HOWTO/Firewall-HOWTO.html"  
name="http://metalab.unc.edu/mdw/HOWTO/Firewall-HOWTO.html"></p>   

<p> Meer informatie kan ook gevonden worden in de IP-Masquerade mini-howto: <htmlurl  
url="http://metalab.unc.edu/mdw/HOWTO/mini/IP-Masquerade.html"  
name="http://metalab.unc.edu/mdw/HOWTO/mini/IP-Masquerade.html"></p>    

<p> Meer informatie over <tt>ipfwadm</tt> (de tool waarmee je de instellingen
voor je firewall kan veranderen) kan worden gevonden op:
<htmlurl url="http://www.xos.nl/linux/ipfwadm/" name="http://www.xos.nl/linux/ipfwadm/">   
</p>

<p>  Als je geen ervaring met firewalls hebt en van plan bent er een op te
zetten voor meer dan slechts een simpel beveiligingsbeleid, is het "Firewalls
book" door O'Reilly and Associates of een ander online firewall document
verplicht leesvoer. Bekijk <htmlurl url="http://www.ora.com"
name="http://www.ora.com"> voor meer informatie. Het National Institute of
Standards and Technology heeft een uitstekend document over firewalls
samengesteld. Hoewel het stamt uit 1995, is het nog steeds behoorlijk goed. Je
kunt het vinden op <htmlurl
url="http://csrc.nist.gov/nistpubs/800-10/main.html"  
name="http://csrc.nist.gov/nistpubs/800-10/main.html">. Ook interessant:</p>  

<p><itemize><item> The Freefire Project -- een lijst van vrij verkrijgbare
firewall tools, beschikbaar op <htmlurl 
url="http://sites.inka.de/sites/lina/freefire-l/index_en.html"  
name="http://sites.inka.de/sites/lina/freefire-l/index_en.html"></item>
   
<item> SunWorld Firewall Design -- geschreven door de auteurs van het
O'Reilly book. Dit verschaft een globale introductie tot de verschillende
soorten firewalls. Het is beschikbaar op <htmlurl  
url="http://www.sunworld.com/swol-01-1996/swol-01-firewall.html"  
name="http://www.sunworld.com/swol-01-1996/swol-01-firewall.html"></item>
   
<item> Mason - de geautomatiseerde firewall bouwer voor Linux. Dit is een
firewall script dat je al doende de dingen leert die je moet doen op je
netwerk. Meer informatie op: <htmlurl url="http://www.pobox.com/~wstearns/mason/"  
name="http://www.pobox.com/~wstearns/mason/"></item></itemize></p>
</sect1>  

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>IP Chains - Linux Kernel 2.2.x Firewalling</heading>

<p>Linux IP Firewalling Chains is een update naar de 2.0 Linux firewalling  
code voor de 2.2 kernel. Het heeft veel meer voorzieningen dan voorgaande
uitvoeringen, inclusief:

<itemize><item> Meer flexibele pakketmanipulaties</item>
<item> Complexere accounting</item>   
<item> Eenvoudige beleidswijzigingen zijn mogelijk op detail-niveau</item> 
<item> Fragmenten kunnen expliciet worden geblokkeerd, geweigerd etc.</item>
<item> Logt verdachte pakketten</item>  
<item> Kan omgaan met protocollen anders dan ICMP/TCP/UDP.</item>
</itemize></p>   

<p>Als je nu <tt>ipfwadm</tt> op je 2.0 kernel gebruikt, zijn er scripts
beschikbaar om het <tt>ipfwadm</tt> commando formaat te converteren naar het
formaat dat <tt>ipchains</tt> gebruikt.</p>

<p> Lees de IP Chains HOWTO voor verdere informatie. Het is beschikbaar op <htmlurl
url="http://www.rustcorp.com/linux/ipchains/HOWTO.html"  
name="http://www.rustcorp.com/linux/ipchains/HOWTO.html"></p>
</sect1>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>VPN's - Virtual Private Networks</heading>

<p> VPN's zijn een manier om een "virtueel" netwerk tot stand te brengen
bovenop een reeds bestaand netwerk. Dit virtuele netwerk is vaak gecodeerd
en stuurt het verkeer alleen naar en van enkele bekende entiteiten die deel
uitmaken van het netwerk. VPN's worden vaak gebruikt om iemand die
thuis werkt via het publieke Internet te verbinden met het interne
bedrijfsnetwerk.</p>    

<p> Als je een Linux masquerading firewall draait en je moet MS PPTP
(Microsoft's VPN point-to-point product) pakketten omzeilen, is er een Linux
kernel patch uitgekomen om juist dat te doen. Zie: <htmlurl
url="ftp://ftp.rubyriver.com/pub/jhardin/masquerade/ip_masq_vpn.html"  
name="ip-masq-vpn">.</p>   

<p> Er zijn diverse Linux VPN oplossingen beschikbaar: 

<itemize><item> vpnd. Zie de <htmlurl url="http://sunsite.auc.dk/vpnd/"
name="http://sunsite.auc.dk/vpnd/">.</item>    
<item> Free S/Wan, beschikbaar op <htmlurl
url="http://www.xs4all.nl/~freeswan/"
name="http://www.xs4all.nl/~freeswan/"></item>    
<item> ssh kan worden gebruikt om een VPN te construeren. Zie de VPN
mini-howto voor meer informatie.</item>
<ITEM> vps (virtual private server) op <htmlurl  
url="http://www.strongcrypto.com" name="http://www.strongcrypto.com">.</item>
</itemize></p>   

<p> Zie ook de paragraaf over IPSEC voor aanwijzingen en meer informatie.</p>
</sect1>
</sect>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect><heading>Beveiligingsvoorbereidingen (voordat je on-line gaat)<label
id="beveiligings-voorbereidingen"></heading>   

<p> Ok, dus je hebt je systeem gecontroleerd en bevonden dat het zo veilig 
mogelijk is en je bent klaar om het on-line te zetten. Er zijn een aantal
dingen die je nu moet doen om je voor te bereiden op een aanval, zodat je de
indringer snel kan uitschakelen, de zaak herstelt en weer draait.</p>   

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Maak een volledige backup van je machine</heading>

<p> Een discussie over backupmethodes en opslag valt buiten de strekking van
dit document, maar hier zijn een paar woorden over backups en beveiliging:</p>
 
<p>Als je minder dan 650 mb aan gegevens op een partitie op te slaan hebt, is
een kopie van je gegevens op een CD-R een goede manier (omdat het moeilijk is
om er later mee te knoeien en het een hele tijd meegaat mits het juist wordt
bewaard). Tapes en andere herschrijfbare media moeten gelijk tegen schrijven
worden beveiligd zodra je backup klaar is en vervolgens worden geverifieerd
om geknoei te voorkomen. Let erop dat je je backups bewaart op een veilige
off-line lokatie. Een goede backup verzekert je ervan dat je je systeem
kunt herstellen vanaf een bekend goed punt.</p> </sect1>   

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Het kiezen van een goed backupschema</heading>

<p> Een cyclus van zes tapes is makkelijk te onderhouden. Dit houdt in: vier
tapes voor door de week, een tape voor de even vrijdagen en een tape voor de
oneven vrijdagen. Voer elke dag een backup uit van alleen de gegevens die er
op die dag bijgekomen zijn en zet op de desbetreffende vrijdagtape een
volledige backup. Als je bepaalde belangrijke wijzigingen aanbrengt of enkele
belangrijke gegevens aan je systeem toevoegt, zal een volledige backup op zijn
plaats zijn.</p>
</sect1>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Maak een backup van je RPM of Debian File Database</heading>   

<p> In het geval dat je systeem binnengedrongen wordt, kun je je RPM database
gebruiken zoals je <tt>tripwire</tt> zou gebruiken, maar alleen als je er
zeker van kan zijn dat het niet ook is aangepast. Je moet de RPM database
kopi&euml;ren naar een diskette en deze kopie ten alle tijden off-line
bewaren. De Debian distributie heeft waarschijnlijk iets dergelijks.</p>

<p> De bestanden <tt>/var/lib/rpm/fileindex.rpm</tt> en  
<tt>/var/lib/rpm/packages.rpm</tt> zullen waarschijnlijk niet op een enkele
diskette passen. Maar gecomprimeerd zal elk wel op een enkele diskette
passen.</p>   

<p> Nu, als je systeem in gevaar is gebracht, kun je het volgende commando
gebruiken:</p>
  
<p><tscreen><verb>   	 	root#  rpm -Va   </verb></tscreen></p>
   
<p> om elk bestand op je systeem te verifi&euml;ren. Zie de <tt>rpm</tt> man
pagina, want er zijn een paar andere opties die kunnen worden meegegeven om
het minder verbose (uitgebreid) te maken. Denk eraan dat je er ook
zeker van moet zijn dat je RPM binary niet in gevaar is gebracht.</p>   

<p> Dit betekent dat elke keer dat een RPM wordt toegevoegd aan het systeem,
de RPM database opnieuw moet worden gearchiveerd. Je moet de voordelen
afwegen tegen de nadelen. </p>
</sect1>
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Houd je systeemlog gegevens bij<label
id="logs"></heading>   
<p> Het is erg belangrijk dat de informatie die afkomstig is van
<tt>syslog</tt> niet gecompromitteerd is. De bestanden in <tt>/var/log</tt>
lees- en schrijfbaar maken voor slechts een beperkt aantal gebruikers is
een goed begin.</p>

<p> Houd een oogje op wat er daar weggeschreven wordt, speciaal onder de 
<tt>auth</tt> faciliteit. Veelvuldig mislukte logins bijvoorbeeld, kunnen
een indicatie zijn voor een poging tot inbraak.</p>

<p> Waar je je logbestand moet zoeken hangt af van je distributie. Onder een
Linux systeem dat in overeenstemming is met de "Linux Filesystem Standard",
zoals Red Hat, moet je kijken in <tt>/var/log</tt> en <tt>messages</tt>,  
<tt>mail.log</tt> en anderen controleren.</p>

<p> Je kunt uitzoeken waar je distributie de logs wegschrijft door te kijken
naar je <tt>/etc/syslog.conf</tt> bestand. Dit is een bestand dat
<tt>syslogd</tt> (de systeem logging daemon) vertelt waar de diverse
berichten moeten worden gelogd.</p>    

<p> Misschien wil je ook je log-rotating script of daemon zo instellen dat ze
de logs langer bewaren, zodat je de tijd hebt om ze te onderzoeken. Bekijk
het <tt>logrotate</tt> pakket op recente Red Hat distributies. Andere
distributies hebben waarschijnlijk een soortgelijk proces.</p>    

<p> Als er met je logbestanden is geknoeid, kijk dan of je kan bepalen wanneer
het geknoei is begonnen en met wat voor soort dingen geknoeid is. Zijn er
grote periodes van tijd die niet gelogd zijn? Het zoeken op je backup tapes
(als je die hebt) naar logbestanden waar niet mee geknoeid is, is een goed
idee.</p>   

<p> Indringers staan er bekend om dat ze logbestanden aanpassen om hun sporen
uit te wissen, maar ze moeten toch worden gecontroleerd op vreemde
gebeurtenissen. Je kunt de indringer in de gaten krijgen als hij probeert
toegang te verkrijgen of een programma misbruikt om het root account te pakken
te krijgen. Misschien zie je wel log entries voordat de indringer tijd heeft
om ze aan te passen.</p>   

<p> Je moet ook de <tt>auth</tt> faciliteit scheiden van andere
loggegevens, evenals pogingen om van gebruiker te wisselen door gebruik te
maken van <tt>su</tt>, login pogingen en andere loginformatie van
gebruikers.</p>   

<p> Stel, indien mogelijk, <tt>syslog</tt> zo in dat het een kopie van de
belangrijkste gegevens stuurt naar een veilig systeem. Dit voorkomt dat een
indringer zijn sporen uit kan wissen door het verwijderen van zijn login/su/ftp/etc
pogingen. Zie de <tt>syslog.conf</tt> man pagina en ga naar de <tt>@</tt>
optie.</p>   

<p> Er zijn diverse meer geavanceerde <tt>syslogd</tt> programma's
beschikbaar. Neem een kijkje op <htmlurl url="http://www.core-sdi.com/ssyslog/"
name="http://www.core-sdi.com/ssyslog/"> voor Secure Syslog. Met Secure Syslog
kun je je syslog entries versleutelen om zeker te weten dat er niemand mee
heeft geknoeid. </p>    

<p> Een andere <tt>syslogd</tt> met meer mogelijkheden is <htmlurl  
url="http://www.balabit.hu/products/syslog-ng.html" name="syslog-ng">.
Hiermee heb je meer flexibiliteit in je logging en het kan ook voorkomen dat
er met je remote syslog stromen wordt geknoeid.</p>  

<p> Tot slot, logbestanden zijn veel minder bruikbaar als niemand ze leest.
Maak zo af en toe eens wat tijd vrij om je logbestanden te bekijken om een
indruk te krijgen hoe ze er op een gewone dag uitzien. Dit kan helpen om
alles wat ongebruikelijk is te onderscheiden.</p>
</sect1>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Maak gebruik van alle nieuwe systeem updates</heading>   

<p> De meeste Linux gebruikers installeren vanaf een CD-ROM. Doordat het tempo
waarop beveiligingsfixes uitkomen hoog is, worden er altijd nieuwe
(gecorrigeerde) programma's uitgegeven. Voordat je je machine verbindt
met het netwerk, is het een goed idee om op de ftp site van je distributie te
kijken en alle bijgewerkte pakketten, vanaf het moment dat je de CD-ROM van je
distributie hebt ontvangen, te downloaden. Vaak bevatten deze pakketten
belangrijke beveiligingsfixes, dus het is een goed idee om ze te
installeren.</p> </sect1> </sect>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect><heading>Wat te doen tijdens en na een inbraak<label id="na-inbraak"></heading>   

<p> Dus je hebt enkele van de adviezen hier (of ergens anders) opgevolgd en
een inbraak geconstateerd? Het eerste dat je moet doen is kalm blijven.
Overhaaste acties kunnen meer schade aanrichten dan de aanvaller zou hebben
gedaan.</p> 

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Een aanval op de beveiliging is aan de gang</heading>

<p> Het in de gaten krijgen van een aanval op de beveiliging die aan de gang
is, kan een gespannen onderneming zijn. De manier waarop je reageert kan
grote gevolgen hebben.</p>

<p> Als de aanval die je ziet een fysieke is, bestaat de kans dat je iemand
hebt opgemerkt die heeft ingebroken in je huis, kantoor of laboratorium. Je zou
de plaatselijke autoriteiten in moeten lichten. In een laboratorium kun je
misschien iemand opgemerkt hebben die probeerde een kast te openen of een
machine opnieuw op te starten. Afhankelijk van je autoriteit en procedures
kun je hem vragen daarmee te stoppen of contact opnemen met lokale
beveiligingsmensen.</p>   

<p> Als je hebt geconstateerd dat een lokale gebruiker je beveiliging in gevaar
tracht te brengen, is het eerste dat je moet doen je ervan vergewissen dat het
inderdaad de persoon is die je denkt dat het is. Controleer de site waar vanaf
hij inlogt. Is het de site waar vanaf hij normaal gesproken inlogt? Nee?
Gebruik dan een niet-elektronische manier om contact te maken. Bel hem
bijvoorbeeld op of loop naar zijn kantoor/huis en praat met hem. Als hij
bevestigt dat hij verbinding heeft, kun je hem vragen om uit te leggen
wat hij aan het doen was of hem vertellen dat hij ermee op moet houden. Als
hij geen verbinding heeft en ook geen idee heeft waar je het over hebt,
bestaat de kans dat dit incident verder uitgezocht moet worden. Bestudeer
zulke incidenten en verzamel genoeg informatie voordat je enige beschuldiging
uit.</p> 

<p> Als je een aanval via het netwerk hebt geconstateerd, is het eerste dat
je moet doen (als je daartoe de mogelijkheid hebt) het verbreken van de
verbinding met het netwerk. Als ze verbonden zijn met een modem, haal de
stekker van het modem er dan uit; als je verbonden zijn via Ethernet, haal dan
de Ethernet kabel los. Dit voorkomt dat ze nog meer schade aanrichten. Ze
zullen het waarschijnlijk als een netwerkprobleem zien en niet als een signaal
dat ze opgemerkt zijn.</p>    

<p> Als je de verbinding met het netwerk niet kunt verbreken (als je een
drukke site hebt of je hebt geen fysieke controle over je machines), is de
volgende stap om iets als <tt>tcp_wrappers</tt> of <tt>ipfwadm</tt> te
gebruiken om toegang vanaf de site van de indringer te weigeren.</p>    

<p> Als je niet alle mensen vanaf dezelfde site als de indringer de toegang
kunt weigeren, zal afsluiten van het gebruikersaccount de oplossing zijn.
Houd er rekening mee dat het afsluiten van een account niet gemakkelijk is.
Denk aan de <tt>.rhosts</tt> bestanden, FTP toegang en een host met
mogelijke achterdeuren.</p>   

<p> Als je een van de bovenstaande dingen hebt gedaan (het netwerk afgesloten, 
toegang vanaf hun site geweigerd en/of hun account uitgeschakeld), moet je
al hun gebruikersprocessen afsluiten en ze uitloggen.</p>

<p> Je moet je site de komende paar minuten goed in de gaten houden, want de
aanvaller probeert om weer binnen te komen. Misschien door gebruik te maken van
een ander account en/of vanaf een ander netwerkadres.</p>
</sect1>   

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect1><heading>Een aanval heeft reeds plaatsgevonden</heading>   

<p> Dus je hebt ofwel een aanval opgemerkt die reeds heeft plaatsgevonden
of je hebt het opgemerkt en (hopelijk) de overtredende aanvaller buiten je
systeem gesloten. Wat nu?</p>  

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect2><heading>Het gat dichten</heading>   

<p> Als het gelukt is om vast te stellen op welke manier de aanvaller je
systeem is binnengedrongen, moet je proberen dat gat te dichten. Misschien zie
je bijvoorbeeld diverse FTP entries net voordat de gebruiker inlogte. Schakel
de FTP service uit en kijk of er een bijgewerkte versie van is of dat een van
de mailing lists iets weet over een fix.</p>    

<p> Controleer al je logbestanden en breng een bezoek aan je beveiligings
lists en pagina's om te kijken of er een fix is voor nieuwe algemene
misbruiken. Je kunt beveiligingsfixes voor Caldera vinden op <htmlurl  
url="http://www.caldera.com/tech-ref/security/"  
name="http://www.caldera.com/tech-ref/security/">. Red Hat heeft zijn
beveiligingsfixes nog niet gescheiden van zijn bug fixes, maar hun
distributie errata is beschikbaar op <htmlurl 
url="http://www.redhat.com/errata"   name="http://www.redhat.com/errata">.</p>
  
<p> Debian heeft nu een mailing list over beveiliging en een webpagina. Zie:
<htmlurl   url="http://www.debian.org/security/"  
name="http://www.debian.org/security/"> voor meer informatie.</p>    

<p> Het is erg waarschijnlijk dat als de ene distributeur een
beveiligingsupdate heeft uitgegeven, de meeste andere Linux distributeurs dit
ook zullen doen.</p>    

<p> Er is nu een project dat de beveiliging onder Linux doorlicht. Ze gaan
systematisch door alle user-space voorzieningen en kijken naar mogelijke
beveiligingslekken en overflows. Uit hun aankondiging:</p>  

<p><quote>"We proberen de Linux bronnen systematisch door te lichten
teneinde net zo veilig te zijn als OpenBSD. We hebben reeds enkele problemen
ontdekt (en opgelost), maar meer hulp is welkom. De lijst staat open voor
iedereen en is tevens een bruikbaar hulpmiddel voor algemene
discussies over beveiliging. Het adres van de lijst is:
security-audit@ferret.lmh.ox.ac.uk. Stuur, om je in te schrijven, een e-mail
naar: security-audit-subscribe@ferret.lmh.ox.ac.uk" </quote></p>   

<p> Als je de aanvaller niet buitensluit, komt hij waarschijnlijk terug.
Niet alleen terug op je machine, maar terug ergens op je netwerk. Als hij een 
packet sniffer draaide, is de kans groot dat hij toegang heeft tot andere
lokale machines.</p>
</sect2>  

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->   
<sect2><heading>De schade opnemen</heading>   

<p> Het eerste dat je moet doen is de schade opnemen. Waar is mee geknoeid? 
Als je een integrity checker zoals <tt>Tripwire</tt> draait, kun je die
gebruiken om een integriteitscontrole uit te voeren; het helpt je met het
bepalen waarmee is geknoeid. Zo niet, dan zul je al je belangrijke gegevens
moeten nakijken.</p>   

<p> Omdat Linux systemen steeds eenvoudiger te installeren zijn, kun je
overwegen om je configuratiebestanden op te slaan, je disk(s) schoon te vegen,
opnieuw te installeren en je gebruikersbestanden en configuratiebestanden vanaf
backups terug te zetten. Zo ben je ervan verzekerd dat je een nieuw, schoon
systeem hebt. Als je bestanden moet terugplaatsen vanaf een gecompromitteerd
systeem, wees dan vooral voorzichtig met enige binary's die je terug plaatst,
omdat het Trojan horses kunnen zijn die daar neergezet zijn door de
indringer. </p>    

<p> Als een indringer root toegang heeft verkregen, moet je opnieuw
installeren. Bovendien wil je alle bewijs dat er is graag bewaren, dus het
hebben van een reserve disk in de kluis is zinvol.</p> 

<p> Vervolgens moet je je druk maken over hoe lang geleden het gebeurd is en
of de backups beschadigd werk bevatten. Meer over backups volgt later.</p>
</sect2>     

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - --> 
<sect2><heading>Backups, backups, backups!</heading>   

<p> Het hebben van regelmatig gemaakte backups is een uitkomst voor
beveiligingsaangelegenheden. Als je systeem gecompromitteerd is, kun je de
gegevens die je nodig hebt herstellen vanaf de backups. Natuurlijk zijn
sommige gegevens ook voor de aanvaller waardevol. Ze zullen ze niet alleen
vernietigen, ze zullen ze stelen en er kopie&euml;n voor henzelf van maken;
maar je hebt in ieder geval de gegevens nog.</p>

<p> Je moet diverse eerdere backups controleren voordat je een bestand
herstelt waarmee geknoeid is. De indringer kan je bestanden al lang geleden
hebben gecompromitteerd en je kunt veel succesvolle backups gemaakt hebben van
het gecompromitteerde bestand. </p> 

<p> Natuurlijk kleven er ook een aantal beveiligingsbezwaren aan backups.
Zorg ervoor dat je ze op een veilige plaats bewaart. Weet wie er toegang toe
heeft. (Als een indringer je backups te pakken kan krijgen, heeft hij toegang
tot al je gegevens zonder dat je het ooit te weten komt.)</p> 
</sect2>  

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect2><heading>De indringer traceren</heading>   

<p> Ok, je hebt de indringer buitengesloten en je systeem hersteld, maar je
bent nog niet helemaal klaar. Hoewel het onwaarschijnlijk is dat de meeste
indringers ooit worden opgepakt, moet je aangifte doen van de aanval.</p>

<p> Je moet de aanval rapporteren aan de beheerder van de site vanwaar de
aanvaller je systeem heeft aangevallen. Je kunt deze beheerder opzoeken
met <tt>whois</tt> of de Internic database. Je zou hem een e-mail kunnen
sturen met alle van toepassing zijnde log entries, datums en tijden. Als je
iets anders opmerkerkelijks over je indringer is opgevallen, moet je dat ook
melden. Na de e-mail verstuurd te hebben, zou je dit (mocht je daartoe geneigd
zijn) moeten laten volgen door een telefoontje. Als die beheerder op zijn beurt
je aanvaller in de gaten krijgt, kan contact worden opgenomen met de
beheerder van de site waar de aanvaller vandaan komt enzovoort.</p> 

<p> Goede crackers gebruiken vaak veel bemiddelende systemen. Sommige (of
veel) daarvan weten wellicht niet eens dat ze zijn gecompromitteerd. Proberen
om het spoor van een cracker terug te volgen naar zijn eigen systeem kan
moeilijk zijn. Wees beleefd tegen de beheerders waar je mee praat, ze
kunnen je een heel eind op weg helpen.</p>   

<p> Je moet ook de beveiligingsorganisaties waar je deel van uitmaakt
op de hoogte stellen (<url url="http://www.cert.org/" name="CERT"> of
soortgelijk), evenals de verkoper van je Linux systeem.</p>    
</sect2>
</sect1>
</sect>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect><heading>Bronnen<label id="bronnen"></heading>  

<p>Er zijn VEEL goede sites over de beveiliging van Unix in het algemeen
en over de beveiliging van Linux in het bijzonder. Het is erg belangrijk om je
te abonneren op een (of meer) van de beveiligings mailing lists en bij te
blijven op het gebied van beveiligingsfixes. De meeste van deze lists zijn
klein van omvang en erg informatief.</p>      

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading>FTP Sites<label id="ftpsites"></heading>  

<p>CERT is het Computer Emergency Response Team. Ze versturen vaak
waarschuwingen voor recente aanvallen en fixes. Zie <htmlurl
url="ftp://ftp.cert.org" name="ftp://ftp.cert.org"> voor meer informatie.
</p>  

<p>ZEDZ (voorheen Replay) (<htmlurl url="http://www.zedz.net"
name="http://www.zedz.net">) heeft archieven van vele beveiligingsprogramma's.
Omdat ze zich buiten de VS bevinden, hoeven ze zich niet te houden aan de
coderingsbeperkingen van de VS.</p> 

<p>Matt Blaze is de auteur van CFS en een goede beveiligingsadvocaat. Matt's
archief is beschikbaar op <url url="ftp://ftp.research.att.com/pub/mab"  
name="ftp://ftp.research.att.com/pub/mab"></p>  

<p><tt>tue.nl</tt> is een goede Nederlandse FTP site over beveiliging. 
<htmlurl url="ftp://ftp.win.tue.nl/pub/security/" name="ftp.win.tue.nl"></p>  
</sect1>   

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<SECT1><heading>Websites<label id="websites"></heading>  

<p><itemize><item>The Hacker FAQ is een FAQ over hackers: <htmlurl  
url="http://www.solon.com/~seebs/faqs/hacker.html" name="The Hacker  
FAQ"></item>
  
<item>Het COAST archief heeft een groot aantal beveiligingsprogramma's en
informatie voor Unix: <htmlurl url="http://www.cs.purdue.edu/coast/"  
name="COAST"></item>    

<item>SuSe Security Page: <htmlurl url="http://www.suse.de/security/"  
name="http://www.suse.de/security/"></item>   

<item>Rootshell.com is een goede site om te zien welke soorten misbruik er
tegenwoordig worden gepleegd door crackers: <htmlurl url="http://www.rootshell.com/"  
name="http://www.rootshell.com/"></item>    

<item>BUGTRAQ geeft advies over beveiligingsonderwerpen: <htmlurl  
url="http://www.netspace.org/lsv-archive/bugtraq.html" name="BUGTRAQ  
archives"></item>    

<item>CERT, het Computer Emergency Response Team, geeft advies over
algemene aanvallen op Unix platvormen:<htmlurl url="http://www.cert.org/"  
name="CERT home"></item>

<item>Dan Farmer is de auteur van SATAN en vele andere
beveiligingstools. Zijn eigen site bevat een handig overzicht met
beveiligingsinformatie, evenals beveiligingstools: <htmlurl
url="http://www.trouble.org"   name="http://www.trouble.org"></item>   

<item>De Linux security WWW is een goede site voor infomatie over de
beveiliging van Linux: <htmlurl url="http://www.aoy.com/Linux/Security/"
name="Linux Security WWW"></item>   

<item>Infilsec heeft een kwetsbaarheidsengine die je kan vertellen welke
kwetsbaarheden betrekking hebben op een bepaald platform: <htmlurl  
url="http://www.infilsec.com/vulnerabilities/"
name="http://www.infilsec.com/vulnerabilities/"></item>  

<item>CIAC verstuurt periodieke beveiligingsbulletins over algemeen
misbruik: <htmlurl url="http://ciac.llnl.gov/cgi-bin/index/bulletins"
name="http://ciac.llnl.gov/cgi-bin/index/bulletins"></item>  

<item>Een goed startpunt voor Linux Pluggable Authentication modules kan
worden gevonden op <htmlurl url="http://www.kernel.org/pub/linux/libs/pam/"  
name="http://www.kernel.org/pub/linux/libs/pam/">.</item>  

<item>Het Debian project heeft een webpagina voor hun beveiligingsfixes en
informatie. Het staat op <htmlurl url="http://www.debian.com/security/"  
name="http://www.debian.com/security/">.</item>  

<item> WWW Security FAQ, geschreven door Lincoln Stein, is een goed naslagwerk
over web beveiliging. Je kunt het vinden op <htmlurl   
url="http://www.w3.org/Security/Faq/www-security-faq.html"  
name="http://www.w3.org/Security/Faq/www-security-faq.html"></item>  
</itemize></p>   
</sect1> 
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading>Mailing Lists</heading>  

<p>Bugtraq: Voor een abonnement op bugtraq stuur je een e-mail naar
listserv@netspace.org, waarbij in de inhoud van het bericht "subscribe bugtraq"
staat. (Zie de verwijzingen hierboven voor archieven).</p>   

<p>CIAC: Stuur een e-mail naar majordomo@tholia.llnl.gov. Zet in de INHOUD
(niet onderwerp) van het bericht "subscribe ciac-bulletin".</p>  

<p>Red Hat heeft een aantal mailing lists, waarvan de belangrijkste de
redhat-announce list is. Je kunt er lezen over beveiligings (en andere)
fixes zodra ze uitkomen. Stuur een e-mail naar
redhat-announce-list-request@redhat.com met als onderwerp "Subscribe". Zie
<htmlurl url="http://www.redhat.com/mailing-lists/redhat-announce-list/"  
name="http://www.redhat.com/mailing-lists/redhat-announce-list/"> voor
meer informatie en archieven.</p>   

<p>Het Debian project heeft een beveiligings mailing list die hun
beveiligingsfixes behandelt. Zie <htmlurl
url="http://www.debian.com/security/"  
name="http://www.debian.com/security/"> voor meer informatie.</p>
</sect1>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect1><heading>Boeken - Gedrukt materiaal</heading>  

<p> Er zijn een aantal goede boeken over beveiliging in omloop. Deze paragraaf
somt een klein aantal hiervan op. In aanvulling op de boeken die specifiek over
beveiliging gaan, wordt beveiliging behandeld in een aantal andere boeken
over systeembeheer.</p>

<p> Building Internet Firewalls door D. Brent Chapman &amp; Elizabeth D.
Zwicky<newline>
1e druk september 1995<newline>
ISBN: 1-56592-124-0</p>

<p> Practical UNIX &amp; Internet Security, 2e druk door Simson
Garfinkel &amp; Gene Spafford<newline>
2e druk april 1996<newline>
ISBN: 1-56592-148-8</p>

<p>Computer Security Basics By Deborah Russell &amp; G.T. Gangemi, Sr.<newline>
1e druk juli 1991<newline>
ISBN: 0-937175-71-4</p>

<p>Linux Network Administrator's Guide door Olaf Kirch<newline>
1e druk januari 1995<newline>
ISBN: 1-56592-087-2</p>  

<p>PGP: Pretty Good Privacy door Simson Garfinkel<newline>
1e druk december 1994<newline>
ISBN: 1-56592-098-8</p>
  
<p>Computer Crime A Crimefighter's Handbook door David Icove, Karl Seger
&amp; William VonStorch (Consulting Editor Eugene H. Spafford)<newline>
1e druk augustus 1995<newline>
ISBN: 1-56592-086-4</p>
  
<p>Linux Security door John S. Flowers<newline>
New Riders<newline>
ISBN: 0735700354<newline>
maart 1999</p>
  
<p>Maximum Linux Security : A Hacker's Guide to Protecting Your Linux  
Server and Network<newline>
Anoniem<newline>
Paperback - 829 pages<newline>   
Sams<newline>   
ISBN: 0672313413<newline>  
juli 1999</p>
  
<p>Intrusion Detection door Terry Escamilla<newline>
Paperback - 416 pagina's (September 1998)<newline>
John Wiley and Sons<newline>   
ISBN: 0471290009</p>
     
<p>Fighting Computer Crime<newline>
Donn Parker<newline>   
Paperback - 526 pagina's (September 1998)<newline>  
John Wiley and Sons<newline>   
ISBN: 0471163783</p>
</sect1>
</sect>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect><heading>Verklarende woordenlijst</heading>  
  
<p><itemize>  
<item><bf> authenticatie:</bf> 
Het te weten komen of de ontvangen gegevens hetzelfde zijn als de verzonden
gegevens en of de beweerde afzender inderdaad de werkelijke afzender
is.<tscreen><verb></verb></tscreen></item>     

<item><bf> bastion host:</bf>
Een computersysteem dat zwaar beveiligd moet zijn, omdat het kwetsbaar is voor
aanvallen, meestal omdat het is blootgesteld aan het Internet en een
belangrijk contactpunt is voor gebruikers van internationale netwerken. Het
dankt zijn naam aan de geavanceerde verdedigingsprojecten op de buitenmuren
van middeleeuwse kastelen. Bastions overzien kritieke verdedigingsgebieden,
hebben meestal sterke muren, ruimte voor extra mankracht en het soms nuttige
vat met kokend hete olie om aanvallers te ontmoedigen.
<tscreen><verb></verb></tscreen></item>      

<item><bf> buffer overloop:</bf>
De algemene coderingsstijl is om nooit buffers die groot genoeg zijn toe te
wijzen en niet te controleren op overlopen. Als zulke buffers overlopen, kan
het uitvoerende programma (daemon of set-uid programma) worden verlokt tot het
doen van andere dingen. Gewoonlijk gebeurt dit door het overschrijven van het
retouradres van een functie om naar een andere locatie te verwijzen.
<tscreen><verb></verb></tscreen></item>

<item><bf>denial of service:</bf> Een aanval die de hulpbronnen op je computer
gebruikt voor dingen die het niet zou moeten doen en zodoende het normale
gebruik van je netwerkbronnen voor legitieme doeleinden verhindert.
<tscreen><verb></verb></tscreen></item>

<item><bf>dual-homed host:</bf> Een computersysteem voor algemene doeleinden
dat op z'n minst twee netwerk interfaces heeft.
<tscreen><verb></verb></tscreen></item>

<item><bf>firewall:</bf> Een component of set van componenten dat de toegang
beperkt tussen een beveiligd netwerk en het Internet of tussen andere
netwerken.<tscreen><verb></verb></tscreen>   </item>

<item><bf>host:</bf> Een computersysteem dat aangesloten is op een netwerk.
<tscreen><verb></verb></tscreen></item>

<item><bf>IP spoofing:</bf> IP Spoofing is een complexe technische aanval die
bestaat uit diverse onderdelen. Het is een beveiligingslek dat werkt door
computers in een vertrouwensrelatie te laten denken dat je iemand bent die je
in werkelijkheid niet bent. Er is een uitgebreid stuk geschreven over
deamon9, route en infinity in Volume Zeven, uitgave 48 van Phrack Magazine.
<tscreen><verb></verb></tscreen> </item>

<item><bf>non-repudiation:</bf> De mogelijkheid die een ontvanger heeft om te
kunnen bewijzen dat de afzender van bepaalde gegevens inderdaad de gegevens
verstuurd heeft, zelfs wanneer de afzender later ontkent dat hij het ooit
verstuurd heeft.<tscreen><verb></verb></tscreen></item>

<item><bf>pakket:</bf> Het basisonderdeel van communicatie op het
Internet.<tscreen><verb></verb></tscreen></item>
   
<item><bf>pakket filtering:</bf> De actie die een apparaat onderneemt om
selectief de gegevensstroom naar en vanaf een netwerk te beheren.
Pakketfilters staan pakketten toe of blokkeren ze, gewoonlijk terwijl ze ze
routen van het ene netwerk naar het andere (veelal vanaf het Internet naar een
intern netwerk en vice versa). Om pakketfiltering tot stand te brengen, stel
je regels op die bepalen welke soorten pakketten (degenen naar of vanaf een
bepaald IP adres of poort) worden toegestaan en welke soorten geblokkeerd
worden.<tscreen><verb></verb></tscreen></item>

<item><bf> perimeter netwerk:</bf> Een netwerk dat toegevoegd is tussen een
beschermd netwerk en een extern netwerk, bedoeld om te voorzien in een
aanvullende beveiligingslaag. Een perimeter netwerk wordt soms een DMZ
genoemd. <tscreen><verb></verb></tscreen></item>

<item><bf>proxy server:</bf> Een programma dat de externe servers beheert
ten behoeve van interne clients. Proxy clients communiceren met
proxy servers, wiens relais clientverzoeken aan echte servers goedkeurt waarna
het relais antwoord terug geeft aan clients.
<tscreen><verb></verb></tscreen></item>

<item><bf>superuser:</bf> Een informele naam voor <tt>root</tt>.</item>
</itemize></p>   
</sect>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect><heading>Veel gestelde vragen<label id="v-en-a"></heading>   
  
<p>  
<enum>  
<item> Is het veiliger om ondersteuning van stuurprogramma's direct in de  
kernel te compileren, in plaats van het een module te maken?   
<tscreen><verb></verb></tscreen> 
 
Antwoord: Sommige mensen denken dat het beter is om de mogelijkheid  
tot het laden van stuurprogramma's voor apparaten middels modules  
uit te schakelen, omdat een indringer een Trojan module of een module die  
invloed kan hebben op de beveiliging van het systeem kan laden.
<tscreen><verb></verb></tscreen>

Maar om modules te kunnen laden moet je root zijn. De module object  
bestanden zijn ook alleen beschrijfbaar door root. Dit betekent dat een  
indringer roottoegang nodig heeft om een module te plaatsen. Als de indringer  
roottoegang verkrijgt, zijn er meer serieuze zaken om je zorgen over te maken   
dan of hij al of niet een module kan laden.
<tscreen><verb></verb></tscreen>
  
Modules zijn bedoeld voor het dynamisch laden van ondersteuning voor een  
bepaald apparaat dat zelden gebruikt wordt. Op server machines of firewalls  
bijvoorbeeld, is het erg onwaarschijnlijk dat dit gebeurt. Om deze reden heeft  
het meer zin om ondersteuning voor machines die opereren als een server direct  
in de kernel te compileren.
<tscreen><verb></verb></tscreen></item>
  
<item> Waarom mislukt het inloggen als root vanaf een remote machine altijd? 
<tscreen><verb></verb></tscreen>
  
Antwoord: Zie <ref id="root-beveiliging" name="Root beveiliging">.   
Dit is bewust gedaan om te voorkomen dat gebruikers via <tt>telnet</tt> een  
verbinding als root tot stand proberen te brengen, hetgeen een ernstige  
beveiligingskwetsbaarheid is, omdat dan het root wachtwoord, in  
leesbare tekst, verzonden zou worden over het netwerk. Vergeet niet: mogelijke  
indringers hebben de tijd en kunnen programma's uitvoeren die automatisch  
naar je wachtwoord zoeken.
<tscreen><verb></verb></tscreen></item> 
  
<item> Hoe schakel ik "shadow passwords" op mijn Red Hat 4.2 of 5.x Linux  
box uit? 
<tscreen><verb></verb></tscreen>
  
Antwoord: Om "shadow passwords" uit te schakelen, voer je <tt>pwconv</tt>  
uit als root. Nu zou <tt>/etc/shadow</tt> moeten bestaan en worden  
gebruikt door applicaties. Als je Red Hat 4.2 of hoger gebruikt, zullen de PAM  
modules zich automatisch aanpassen aan de verandering van het gebruik van  
het normale <tt>/etc/passwd</tt> naar "shadow passwords" zonder enige  
andere wijziging.
<tscreen><verb></verb></tscreen>
  
Een stukje achtergrondinformatie: "shadow passwords" is een techniek om je  
wachtwoord in een bestand, anders dan het normale <tt>/etc/passwd</tt>  
bestand, op te slaan. Dit heeft verscheidene voordelen. Het eerste is  
dat het schaduw bestand, <tt>/etc/shadow</tt>, alleen leesbaar is voor root, in  
tegenstelling tot <tt>/etc/passwd</tt>, wat leesbaar moet blijven voor  
iedereen. Het andere voordeel is dat je als beheerder accounts kan vrijgeven  
af afsluiten, zonder dat iedereen de status van andere gebruikersaccounts  
weet.  
<tscreen><verb></verb></tscreen>

Het <tt>/etc/passwd</tt> bestand wordt dan gebruikt om gebruiker- en  
groepsnamen in op te slaan, die worden gebruikt door programma's als  
<tt>/bin/ls</tt> om het gebruikers ID naar de juiste gebruikersnaam om te  
zetten in een directoryweergave.
<tscreen><verb></verb></tscreen>

Het <tt>/etc/shadow</tt> bestand bevat dan alleen de gebruikersnaam en  
zijn/haar wachtwoord en misschien informatie over het account, zoals wanneer  
het account vervalt e.d. 
<tscreen><verb></verb></tscreen>
 
Om "shadow passwords" in te schakelen, voer je <tt>pwconv</tt> uit als  
root. Nu zou <tt>/etc/shadow</tt> moeten bestaan en worden gebruikt door  
applicaties. Omdat je Red Hat 4.2 of hoger gebruikt, zullen de PAM modules  
zich automatisch aanpassen aan de verandering van het gebruik van het normale  
<tt>/etc/passwd</tt> naar "shadow passwords" zonder enige andere wijziging.
<tscreen><verb></verb></tscreen>
 
Omdat je ge&iuml;nteresseerd bent in het beveiligen van je  
wachtwoorden, zul je wellicht ook ge&iuml;nteresseerd zijn in de  
totstandkoming van goede wachtwoorden op zich. Hiervoor kun je de  
<tt>pam_cracklib</tt> module gebruiken, die onderdeel uitmaakt van PAM. Het  
kijkt of je wachtwoord voortkomt in de "Crack libraries", om je te helpen met  
de beslissing of het te gemakkelijk te raden is door programma's die  
wachtwoorden kunnen kraken.<tscreen><verb></verb></tscreen></item>
  
<item> Hoe kan ik de Apache SSL extensies inschakelen?
<tscreen><verb></verb></tscreen>
 
Antwoord:   
<enum><item> Haal SSLeay 0.8.0 of hoger op vanaf <url  
url="ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL">.</item>  
<item> Bouw, test en installeer het! </item>  
<item> Haal de Apache 1.2.5 source op. </item>  
<item> Haal de Apache SSLeay extensies op vanaf <url  
url="ftp://ftp.ox.ac.uk/pub/crypto/SSL/apache_1.2.5+ssl_1.13.tar.gz"     
name="here">.</item>  
<item> Pak het uit in de apache-1.2.5 source directory en patch Apache  
zoals beschreven in README.</item>   
<item> Configureer en bouw het. 
<tscreen><verb></verb></tscreen></item></enum>
  
Je kunt ook <htmlurl url="http://www.zedz.net" name="ZEDZ net">  
proberen, dat veel kant en klare pakketten heeft en zich buiten de Verenigde  
Staten bevindt.<tscreen><verb></verb></tscreen>
</item>
<item> Hoe kan ik gebruikersaccounts bewerken en toch de beveiliging  
behouden? 
<tscreen><verb></verb></tscreen>

Antwoord: De Red Hat distributie, speciaal Red Hat 5.0, bevat een  
groot aantal tools om de eigenschappen van gebruikersaccounts te  
veranderen.
<tscreen><verb></verb></tscreen>
<itemize> 

<item> De <tt>pwconv</tt> en <tt>unpwconv</tt> programma's kunnen gebruikt  
worden om te wisselen tussen "shadow" en "non-shadowed" wachtwoorden.</item>  

<item> De <tt>pwck</tt> en <tt>grpck</tt> programma's kunnen gebruikt worden  
om te verifi&euml;ren of de <tt>passwd</tt> en <tt>group</tt> bestanden  
juist ingedeeld zijn. </item>   

<item> De <tt>useradd</tt>, <tt>usermod</tt> en <tt>userdel</tt> programma's  
kunnen gebruikt worden om gebruikersaccounts toe te voegen, te verwijderen en  
aan te passen. De <tt>groupadd</tt>, <tt>groupmod</tt> en <tt>groupdel</tt>  
programma's doen hetzelfde voor groepen.</item>  

<item> Wachtwoorden voor groepen kunnen met behulp van <tt>gpasswd</tt>  
aangemaakt worden.   
</item></itemize> 
 
Al deze programma's zijn "shadow-aware" -- dat houdt in dat als je
"shadow" inschakelt, ze <tt>/etc/shadow</tt> zullen gebruiken voor
wachtwoordinformatie, anders doen ze dat niet.      
Zie de respectieve man pagina's voor aanvullende informatie. 
</item>

<item> Hoe kan ik met behulp van Apache bepaalde HTML documenten met een
wachtwoord beveiligen?
<tscreen><verb></verb></tscreen>

Ik wed dat je niet wist van het bestaan van <htmlurl
url="http://www.apacheweek.com" name="http://www.apacheweek.org"> of wel?
<tscreen><verb></verb></tscreen>

Je kunt informatie over het authenticeren van gebruikers vinden op  
<htmlurl url="http://www.apacheweek.com/features/userauth"  
name="http://www.apacheweek.com/features/userauth"> evenals andere web
server beveiligingstips van <htmlurl
url="http://www.apache.org/docs/misc/security_tips.html"  
name="http://www.apache.org/docs/misc/security_tips.html"></item>  
</enum></p>   
</sect>     

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect><heading>Conclusie<label id="conclusie"></heading>  
  
<p> Door je in te schrijven op de mailing lists voor  
beveiligingswaarschuwingen en bij te blijven, kun je een hoop doen met het  
oog op beveiliging van je machine. Als je je logbestanden in de gaten houdt  
en iets als <tt>tripwire</tt> regelmatig uitvoert, kun je zelfs nog meer  
doen.</p>   
  
<p> Een verstandig niveau van computerbeveiliging is niet moeilijk te  
onderhouden op een machine voor thuisgebruik. Meer moeite is vereist bij  
zakelijke machines, maar Linux kan zeker een veilig platform zijn. Dankzij
het karakter van de ontwikkeling van Linux, komen beveiligingsoplossingen
vaak veel sneller uit dan die voor commerci&euml;le besturingssystemen, wat
Linux een ideaal platform maakt als beveiliging een vereiste is.</p>  
</sect>  
  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
<sect><heading>Dankbetuigingen</heading>  
  
<p> De informatie hier is verzameld uit vele bronnen. Dank aan de  
volgenden die zowel indirect als direct hebben bijgedragen:</p>   
  
<p>Rob Riggs <htmlurl url="mailto:rob@DevilsThumb.com"  
name="rob@DevilsThumb.com"></p>   
  
<p>S. Coffin <htmlurl url="mailto:scoffin@netcom.com"  
name="scoffin@netcom.com"></p> 
  
<p>Viktor Przebinda <htmlurl url="mailto:viktor@CRYSTAL.MATH.ou.edu"  
name="viktor@CRYSTAL.MATH.ou.edu"></p> 
  
<p>Roelof Osinga <htmlurl url="mailto:roelof@eboa.com"  
name="roelof@eboa.com"></p>
  
<p> Kyle Hasselbacher <htmlurl url="mailto:kyle@carefree.quux.soltec.net"  
name="kyle@carefree.quux.soltc.net"></p>  
  
<p> David S. Jackson <htmlurl url="mailto:dsj@dsj.net" name="dsj@dsj.net"></p>  
  
<p> Todd G. Ruskell <htmlurl url="mailto:ruskell@boulder.nist.gov"  
name="ruskell@boulder.nist.gov"> </p>  
  
<p> Rogier Wolff <htmlurl url="mailto:R.E.Wolff@BitWizard.nl"  
name="R.E.Wolff@BitWizard.nl"></p>  
  
<p> Antonomasia <htmlurl url="mailto:ant@notatla.demon.co.uk"  
name="ant@notatla.demon.co.uk"> </p>  
  
<p> Nic Bellamy <htmlurl url="mailto:sky@wibble.net"  
name="sky@wibble.net"> </p>  
  
<p> Eric Hanchrow <htmlurl url="mailto:offby1@blarg.net"  
name="offby1@blarg.net"> </p>  
  
<p> Robert J. Berger<htmlurl url="mailto:rberger@ibd.com"  
name="rberger@ibd.com"> </p>  
  
<p> Ulrich Alpers <htmlurl url="mailto:lurchi@cdrom.uni-stuttgart.de"  
name="lurchi@cdrom.uni-stuttgart.de"> </p>  
  
<p> David Noha <htmlurl url="mailto:dave@c-c-s.com" name="dave@c-c-s.com"> </p>  
  
<p> Pavel Epifanov <htmlurl url="mailto:epv@ibm.net" name="epv@ibm.net"></p>  
  
<p> Joe Germuska <htmlurl url="mailto:joe@germuska.com"   
name="joe@germuska.com"></p>  
  
<p> Franklin S. Werren <htmlurl url="mailto:fswerren@bagpipes.net"  
name="fswerren@bagpipes.net"> </p>  
  
<p> Paul Rusty Russell <htmlurl url="mailto:Paul.Russell@rustcorp.com.au"  
name="<Paul.Russell@rustcorp.com.au>"> </p>  
  
<p> Christine Gaunt <htmlurl url="mailto:cgaunt@umich.edu"  
name="<cgaunt@umich.edu>"> </p>  
  
<p> lin <htmlurl url="mailto:bhewitt@refmntutl01.afsc.noaa.gov"  
name="bhewitt@refmntutl01.afsc.noaa.gov"> </p>  
  
<p> A.Steinmetz <htmlurl url="mailto:astmail@yahoo.com"  
   name="astmail@yahoo.com"> </p>  
  
<p> Jun Morimoto <htmlurl url="mailto:morimoto@xantia.citroen.org"  
name="morimoto@xantia.citroen.org"> </p>  
  
<p> Xiaotian Sun <htmlurl url="mailto:sunx@newton.me.berkeley.edu"  
name="sunx@newton.me.berkeley.edu"> </p>  
  
<p> Eric Hanchrow <htmlurl url="mailto:offby1@blarg.net"  
name="offby1@blarg.net"> </p>   
  
<p> De volgende personen hebben deze HOWTO vertaald in verschillende andere  
talen!</p>  
  
<p> Speciale dank aan hen allemaal voor hun hulp bij het verspreiden
van het Linux woord .... </p>  
  
<p> Pools: Ziemek Borowski <htmlurl  
url="mailto:ziembor@FAQ-bot.ZiemBor.Waw.PL"  
name="ziembor@FAQ-bot.ZiemBor.Waw.PL"> </p>  
  
<p> Japans: FUJIWARA Teruyoshi <htmlurl url="mailto:fjwr@mtj.biglobe.ne.jp"  
name="fjwr@mtj.biglobe.ne.jp"> </p>  
  
<p> Indonesisch: Tedi Heriyanto <htmlurl  
url="mailto:22941219@students.ukdw.ac.id"  
name="22941219@students.ukdw.ac.id"> </p>   
  
<p> Koreaans: Bume Chang <htmlurl url="mailto:Boxcar0001@aol.com"  
name="Boxcar0001@aol.com"> </p>  
  
<p> Spaans: Juan Carlos Fernandez <htmlurl  
url="mailto:piwiman@visionnetware.com"  
name="piwiman@visionnetware.com"></p>  
  
<p> Nederlands: Nine Matthijssen <htmlurl  
url="mailto:smurfin@nl.linux.org"  
name="smurfin@nl.linux.org"> </p>  
</sect>  
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - -->  
</article>  
</linuxdoc>  
