From owner-p4-projects@FreeBSD.ORG Wed Sep 24 14:55:50 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 41B711065672; Wed, 24 Sep 2008 14:55:50 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D8210106568B for ; Wed, 24 Sep 2008 14:55:49 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id C59BA8FC2B for ; Wed, 24 Sep 2008 14:55:49 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id m8OEtn92017664 for ; Wed, 24 Sep 2008 14:55:49 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id m8OEtnwh017662 for perforce@freebsd.org; Wed, 24 Sep 2008 14:55:49 GMT (envelope-from rene@FreeBSD.org) Date: Wed, 24 Sep 2008 14:55:49 GMT Message-Id: <200809241455.m8OEtnwh017662@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Cc: Subject: PERFORCE change 150384 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Sep 2008 14:55:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=150384 Change 150384 by rene@rene_self on 2008/09/24 14:55:32 MFen security/chapter.sgml 1.284 -> 1.330 (plus local fixes) Checked build, spelling, whitespace (fixed a few hundred indenation errors) Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/security/chapter.sgml#3 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/security/chapter.sgml#3 (text+ko) ==== @@ -3,7 +3,9 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/security/chapter.sgml,v 1.14 2006/05/20 15:43:41 remko Exp $ $FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/security/chapter.sgml,v 1.80 2006/01/05 21:13:24 siebrand Exp $ - gebaseerd op: 1.284 + + %SOURCE% en_US.ISO8859-1/books/handbook/security/chapter.sgml + %SRCID% 1.330 --> @@ -36,7 +38,7 @@ systeembeveiligingsconcepten, een aantal goede basisregels en een paar gevorderde onderwerpen binnen &os;. Veel van de onderwerpen die worden behandeld kunnen ook worden toegepast op - systemen en internet in het algemeen. Het internet is niet + systemen en Internet in het algemeen. Het Internet is niet langer een vriendelijke omgeving waar iedereen een goede buur wil zijn. Het beveiligen van een systeem is onontbeerlijk als gegevens, intellectueel eigendom, tijd en wat @@ -52,65 +54,65 @@ Van basis systeembeveiligingsconcepten in relatie tot - &os;; + &os;. Meer over verschillende versleutelingsmechanismen die beschikbaar zijn in &os; zoals DES en - MD5; + MD5. - Hoe eenmalige wachtwoordauthenticatie opgezet kan - worden; + Hoe eenmalige wachtwoordautenticatie opgezet kan + worden. Hoe TCP Wrappers in te stellen voor - gebruik met inetd; + gebruik met inetd. Hoe KerberosIV op &os; - releases eerder dan 5.0 opgezet kan worden; + uitgaven eerder dan 5.0 opgezet kan worden. - Hoe Kerberos5 op &os; 5.0 - release en verder opgezet kan worden; + Hoe Kerberos5 op &os; opgezet + kan worden. Hoe IPsec wordt ingesteld en hoe een VPN op te zetten tussen &os; en - µsoft.windows; machines; + µsoft.windows; machines. Hoe OpenSSH, &os;'s SSH implementatie, in te stellen en te - gebruiken; + gebruiken. - Wat filesysteem ACLs zijn en hoe + Wat bestandssysteem-ACLs zijn en hoe die te gebruiken; Hoe het hulpprogramma Portaudit gebruikt kan worden om - softwarepakketten uit de Portscollectie te auditen; + softwarepakketten uit de Portscollectie te auditen. Hoe om te gaan met publicaties van &os; - beveiligingswaarschuwingen; + beveiligingswaarschuwingen. - Iets van Procesaccounting en hoe dat is in te schakelen + Iets van procesaccounting en hoe dat is in te schakelen in &os;. @@ -119,7 +121,7 @@ - Basisbegrip heeft van &os; en internetconcepten. + Basisbegrip heeft van &os; en Internetconcepten. @@ -134,7 +136,7 @@ Introductie Beveiliging is een taak die begint en eindigt bij de - systeembeheerder. Hoewel alle BSD &unix; multi-user systemen + systeembeheerder. Hoewel alle BSD &unix; meergebruikerssystemen enige inherente beveiliging kennen, is het bouwen en onderhouden van additionele beveiligingsmechanismen om de gebruikers eerlijk te houden waarschijnlijk een van de @@ -150,21 +152,6 @@ netwerken en internetwerken, wordt beveiliging nog belangrijker. - Beveiliging kan het beste ingesteld worden door een gelaagde - ui-aanpak. In een notendop zijn er het beste net - zoveel lagen van beveiliging als handig is en daarna dient het - systeem zorgvuldig gemonitord te worden op inbraken. Het is niet - wenselijk beveiliging te overontwerpen, want dat doet afbreuk aan - de detectiemogelijkheden en detectie is een van de belangrijkste - aspecten van beveiligingsmechanismen. Zo heeft het bijvoorbeeld - weinig zin om de schg vlaggen (zie - &man.chflags.1;) op ieder binair bestand op een systeem te - zetten, omdat het, hoewel dit misschien tijdelijk binaire - bestanden beschermt, een inbreker in een systeem ervan kan - weerhouden een eenvoudig te detecteren wijziging te maken - waardoor beveiligingsmaatregelen de inbreker misschien - helemaal niet ontdekken. - Systeembeveiliging heeft ook te maken met het omgaan met verschillende vormen van aanvallen, zoals een poging om een systeem te crashen of op een andere manier onstabiel te maken, @@ -175,7 +162,7 @@ Ontzeggen van dienst aanvallen (Denial of - service). + Service). @@ -226,14 +213,14 @@ ongunstige omstandigheden. Omgaan met brute kracht aanvallen is lastiger. Zo is een aanval met gefingeerde pakketten (spoofed-packet) vrijwel niet te stoppen, behalve - dan door het systeem van internet los te koppelen. Misschien + dan door het systeem van Internet los te koppelen. Misschien gaat de machine er niet door plat, maar het kan wel een volledige - internetverbinding verzadigen. + Internetverbinding verzadigen. beveiliging - account compromittering + account compromitteren Een gecompromitteerde gebruikersaccount komt nog veel vaker @@ -279,7 +266,7 @@ root wachtwoord kunnen kennen, een bug kunnen ontdekken in een dienst die onder root draait en daar via een netwerkverbinding op in kunnen breken of - een aanvaller zou een probleem kunnen met een suid-root programma + een aanvaller zou een probleem kennen met een suid-root programma dat de aanvaller in staat stelt root te worden als hij eenmaal toegang heeft tot een gebruikersaccount. Als een aanvaller een manier heeft gevonden om @@ -309,7 +296,7 @@ Beveiligen van root – servers - onder root en suid/sgid binaire + onder root en suid-/sgid-binaire bestanden. @@ -363,7 +350,7 @@ In de volgende onderdelen behandelen we de methodes uit de vorige paragraaf om een - &os; systeem te beveiligen. + &os;-systeem te beveiligen. Beveiligen van <username>root</username> en @@ -421,7 +408,7 @@ <filename>/etc/group</filename>. Alleen medewerkers die ook echt toegang tot <username>root</username> nodig hebben horen in de groep <groupname>wheel</groupname> geplaatst te worden. - Het is ook mogelijk, door een authenticatiemethode als Kerberos + Het is ook mogelijk, door een autenticatiemethode als Kerberos te gebruiken, om het bestand <filename>.k5login</filename> van Kerberos in de <username>root</username> account te gebruiken om een &man.ksu.1; naar <username>root</username> toe te staan @@ -436,70 +423,48 @@ <groupname>wheel</groupname>-mechanisme beter is dan niets, is het niet per se de meest veilige optie.</para> - <!-- XXX: - This will need updating depending on the outcome of PR - bin/71147. Personally I know what I'd like to see, which - puts this in definite need of a rewrite, but we'll have to - wait and see. ceri@ - --> + <para>Om een account volledig op slot te zetten, dient het + commando &man.pw.8; gebruikt te worden:</para> + + <screen>&prompt.root; <userinput>pw lock <replaceable>staff</replaceable></userinput></screen> - <para>Een indirecte manier om de medewerkersaccounts te - beveiligen en uiteindelijk ook de toegang tot - <username>root</username>, is het gebruik van alternatieve - aanmeldmethodes en de wachtwoorden van de medewerkersaccounts, - zoals het heet <quote>uit te sterren</quote>. Met &man.vipw.8; - kan iedere instantie van een gecodeerd wachtwoord vervangen - worden door een enkel <quote><literal>*</literal></quote> - karakter. Met dit commando worden - <filename>/etc/master.passwd</filename> en de - gebruikers/wachtwoord database bijgewerkt om het aanmelden met - wachtwoord uit te schakelen.</para> + <para>Dit voorkomt dat de gebruiker zich aanmeldt via enig + mechanisme, inclusief &man.ssh.1;.</para> - <para>Een regel voor een medewerkersaccount als:</para> + <para>Een andere manier om toegang tot accounts te blokkeren is om + het versleutelde wachtwoord door een enkel + <quote><literal>*</literal></quote>-karakter te vervangen. Dit + karakter zal nooit overeenkomen met het versleutelde wachtwoord + en dus gebruikerstoegang blokkeren. Het volgende + medewerkersaccount bijvoorbeeld:</para> <programlisting>foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh</programlisting> - <para>Zou veranderd moeten worden naar:</para> + <para>zou veranderd moeten worden in:</para> <programlisting>foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh</programlisting> - <para>Door deze wijziging kan niet langer normaal aangemeld - worden omdat het gecodeerde wachtwoord nooit gelijk is aan de - <quote><literal>*</literal></quote>. Nu dit is gebeurd, moeten - medewerkers een ander mechanisme gebruiken om zich te - authenticeren zoals &man.kerberos.1; of &man.ssh.1; met een - publiek/privaat sleutelpaar. Bij het gebruik van iets als - Kerberos moeten gewoonlijk de machines waarop de Kerberos - server draait en het desktop werkstation beveiligd worden. Bij - het gebruik van een publiek/privaat sleutelpaar met ssh, moet - in het algemeen de machine <emphasis>van</emphasis> waar wordt - aangemeld beveiligd worden (meestal een werkstation). Het is - mogelijk nog een beveiligingslaag toe te voegen door het - sleutelpaar te beschermen met een wachtwoord als het aan te - maken met &man.ssh-keygen.1;. Door accounts van medewerkers - <quote>uit te sterren</quote> is het ook gegarandeerd dat ze - alleen aan kunnen melden door gebruik te maken van de veilige - toegangsmethodes die de beheerder heeft ingesteld. Hierdoor - worden alle medewerkers gedwongen veilige, gecodeerde - verbindingen te gebruiken voor al hun sessies. Daarmee wordt - een belangrijk beveiligingsgat gesloten dat veel indringers - gebruiken: snuffelen aan het netwerk vanaf een niet-relevante - minder veilige machine.</para> + <para>Dit voorkomt dat de gebruiker <username>foobar</username> + zich aanmeldt met conventionele methoden. Deze methode om + toegang te beperken werkt niet op sites die + <application>Kerberos</application> gebruiken of in situaties + waarin de gebruiker met &man.ssh.1; sleutels heeft + geïnstalleerd.</para> - <para>Meer indirecte beveiligingsmechanismen hebben ook als - uitgangspunt dat vanaf een zwaarder beveiligde machine wordt - aangemeld op een minder beveiligd systeem. Als een - hoofdserver bijvoorbeeld allerlei servers draait, zou het - werkstation er geen moeten draaien. Om een werkstation - redelijk veilig te laten zijn, dienen er zo min mogelijk - servers op te draaien, bij voorkeur zelfs geen en er zou een - schermbeveiliging met wachtwoordbeveiliging op moeten draaien. - Maar als een aanvaller fysieke toegang heeft tot een - werkstation, dan kan hij elke beveiliging die erop is - aangebracht omzeilen. Dit probleem dient echt overwogen te - worden, net als het feit dat de meeste aanvallen van een - afstand plaatsvinden, via het netwerk, door mensen die geen - fysieke toegang hebben tot werkstations of servers.</para> + <para>Deze beveiligingsmechanismen hebben ook als uitgangspunt dat + vanaf een zwaarder beveiligde machine wordt aangemeld op een + minder beveiligd systeem. Als een hoofdserver bijvoorbeeld + allerlei servers draait, zou het werkstation er geen moeten + draaien. Om een werkstation redelijk veilig te laten zijn, + dienen er zo min mogelijk servers op te draaien, bij voorkeur + zelfs geen en er zou een schermbeveiliging met + wachtwoordbeveiliging op moeten draaien. Maar als een aanvaller + fysieke toegang heeft tot een werkstation, dan kan hij elke + beveiliging die erop is aangebracht omzeilen. Dit probleem + dient echt overwogen te worden, net als het feit dat de meeste + aanvallen van een afstand plaatsvinden, via het netwerk, door + mensen die geen fysieke toegang hebben tot werkstations of + servers.</para> <indexterm><primary>KerberosIV</primary></indexterm> @@ -522,7 +487,7 @@ <sect2> <title>Beveiligen van <username>root</username> – servers - onder <username>root</username> en suid/sgid binaire + onder <username>root</username> en suid-/sgid-binaire bestanden ntalk @@ -599,25 +564,25 @@ inbraak via die servers te detecteren. De andere grote mogelijkheid voor root - gaten in een systeem zijn de suid-root en sgid binaire + gaten in een systeem zijn de suid-root en sgid-binaire bestanden die geïnstalleerd zijn op een systeem. Veel van die bestanden, zoals rlogin, staan in /bin, /sbin, /usr/bin of /usr/sbin. Hoewel het niet 100% veilig - is, mag aangenomen worden dat de suid en sgid binaire bestanden + is, mag aangenomen worden dat de suid- en sgid-binaire bestanden van een standaardsysteem redelijk veilig zijn. Toch worden er nog wel eens root gaten gevonden in deze bestanden. Zo is er in 1998 een root gat gevonden in Xlib waardoor xterm (die normaliter suid is) kwetsbaar bleek. Een voorzichtige systeembeheerder kiest voor - better to be safe than sorry door de suid - bestanden die alleen medewerkers hoeven uit te voeren aan een - speciale groep toe te wijzen en de suid bestanden die niemand - gebruikt te lozen (chmod 000). Een server - zonder monitor heeft normaal gezien - xterm niet nodig. Sgid bestanden + better to be safe than sorry door de + suid-bestanden die alleen medewerkers hoeven uit te voeren aan + een speciale groep toe te wijzen en de suid-bestanden die + niemand gebruikt te lozen (chmod 000). Een + server zonder monitor heeft normaal gezien + xterm niet nodig. Sgid-bestanden kunnen bijna net zo gevaarlijk zijn. Als een inbreker een sgid-kmem stuk kan krijgen, dan kan hij wellicht /dev/kmem lezen en dus het gecodeerde @@ -631,7 +596,7 @@ bijna alle tty's van gebruikers schrijven. Als een gebruiker een terminalprogramma of een terminalemulator met een toetsenbordsimulatieoptie draait, dan kan de inbreker in - potentie een datastroom genereren die ervoor zorgt dat de + potentie een gegevensstroom genereren die ervoor zorgt dat de terminal van de gebruiker een commando echot, dat dan wordt uitgevoerd door die gebruiker. @@ -640,7 +605,7 @@ Beveiligen van gebruikersaccounts Gebruikersaccounts zijn gewoonlijk het meest lastig om te - beveiligen. Hoewel er allerlei Draconische maatregelen genomen + beveiligen. Hoewel er allerlei draconische maatregelen genomen kunnen worden met betrekking tot de medewerkers en hun wachtwoorden weggesterd kunnen worden, gaat dat waarschijnlijk niet lukken met de gewone gebruikersaccounts. @@ -652,14 +617,14 @@ Kerberos voor gebruikersaccounts is problematischer vanwege het extra beheer en de ondersteuning, maar nog steeds een prima oplossing in vergelijking met een - gecodeerd wachtwoordbestand. + versleuteld wachtwoordbestand. Beveiligen van het wachtwoordbestand De enige echte oplossing is zoveel mogelijk wachtwoorden - * maken en ssh + wegsterren en ssh of Kerberos gebruiken voor toegang tot die accounts. Hoewel een gecodeerd wachtwoordbestand (/etc/spwd.db) alleen gelezen kan worden @@ -680,7 +645,7 @@ Als een aanvaller toegang krijgt tot root dan kan hij ongeveer alles, maar er zijn een paar slimmigheidjes. Zo hebben bijvoorbeeld de meeste - moderne kernels een ingebouwde pakketsnuffeldriver + moderne kernels een ingebouwd pakketsnuffelstuurprogramma (packet sniffing). Bij &os; is dat het bpf apparaat. Een inbreker zal in het algemeen proberen een pakketsnuffelaar te draaien op een @@ -697,9 +662,9 @@ /dev/kmem. De inbreker kan namelijk nog schrijven naar ruwe schrijfapparaten. En er is ook nog een optie in de kernel die modulelader (module - loader) heet, &man.kldload.8;. Een ondernemende - inbreker kan een KLD module gebruiken om zijn eigen - bpf apparaat of een ander + loader) heet, &man.kldload.8;. Een ondernemende + inbreker kan een KLD-module gebruiken om zijn eigen + bpf-apparaat of een ander snuffelapparaat te installeren in een draaiende kernel. Om deze problemen te voorkomen, moet de kernel op een hoger veiligheidsniveau draaien, ten minste securelevel 1. Het @@ -717,11 +682,11 @@ draaien maar de schg vlag niet op alle systeembestanden en mappen te zetten die maar te vinden zijn. / en /usr zouden ook - als alleen-lezen gemount kunnen worden. Het is nog belangrijk - om op te merken dat als de beheerder te Draconisch omgaat - met dat wat hij wil beschermen, hij daardoor kan veroorzaken - dat die o-zo belangrijke detectie van een inbraak wordt - misgelopen. + als alleen-lezen aangekoppeld kunnen worden. Het is nog + belangrijk om op te merken dat als de beheerder te draconisch + omgaat met dat wat hij wil beschermen, hij daardoor kan + veroorzaken dat die o-zo belangrijke detectie van een inbraak + wordt misgelopen. @@ -738,83 +703,81 @@ detectie plaats kan vinden is gesloten. De laatste laag van beveiliging is waarschijnlijk de meest belangrijke: detectie. Alle overige beveiliging is vrijwel waardeloos (of nog erger: - geeft een vals gevoel van veiligheid) als een mogelijke inbraak + geeft een vals gevoel van beveiliging) als een mogelijke inbraak niet gedetecteerd kan worden. Een belangrijk doel van het meerlagenmodel is het vertragen van een aanvaller, nog meer dan - hem te stoppen, om de detectiekant van de vergelijking de kans - te geven hem op heterdaad te betrappen. + hem te stoppen, om hem op heterdaad te kunnen betrappen. De beste manier om te zoeken naar een inbraak is zoeken - naar gewijzigde, missende of onverwachte bestanden. De beste + naar gewijzigde, ontbrekende of onverwachte bestanden. De beste manier om te zoeken naar gewijzigde bestanden is vanaf een ander (vaak gecentraliseerd) systeem met beperkte toegang. Met zelfgeschreven scripts op dat extra beveiligde systeem met - beperkte toegang ben is een beheerder vrijwel onzichtbaar voor + beperkte toegang is een beheerder vrijwel onzichtbaar voor mogelijke aanvallers en dat is belangrijk. Om het nut te maximaliseren moeten in het algemeen dat systeem met beperkte toegang best veel rechten gegeven worden op de andere machines - in het netwerk, vaak via een alleen-lezen NFS export van de + in het netwerk, vaak via een alleen-lezen NFS-export van de andere machines naar het systeem met beperkte toegang of door ssh sleutelparen in te stellen om het systeem met beperkte toegang een ssh verbinding te laten maken met de andere machines. Buiten het netwerkverkeer, is NFS de minst zichtbare methode. Hierdoor kunnen de bestandssystemen - op alle client machines vrijwel ongezien gemonitord worden. - Als de server met beperkte toegang verbonden is met de client - machines via een switch, dan is de NFS methode vaak de beste - keus. Als de server met beperkte toegang met de andere + op alle cliëntmachines vrijwel ongezien gemonitord worden. + Als de server met beperkte toegang verbonden is met de + cliëntmachines via een switch, dan is de NFS-methode vaak + de beste keus. Als de server met beperkte toegang met de andere machines is verbonden via een hub of door meerdere routers, dan - is de NFS methode wellicht niet veilig genoeg (vanuit een + is de NFS-methode wellicht niet veilig genoeg (vanuit een netwerk standpunt) en kan beter ssh gebruikt worden, ondanks de audit-sporen die ssh achterlaat. Als de machine met beperkte toegang eenmaal minstens - leestoegang heeft tot een clientsysteem dat het moet gaan + leestoegang heeft tot een cliëntsysteem dat het moet gaan monitoren, dan moeten scripts gemaakt worden om dat monitoren - ook echt uit te voeren. Uitgaande van een NFS mount, kunnen + ook echt uit te voeren. Uitgaande van een NFS-koppeling, kunnen de scripts gebruik maken van eenvoudige systeem hulpprogramma's als &man.find.1; en &man.md5.1;. We adviseren minstens één keer per dag een md5 te maken van alle - bestanden op de clientmachine en van instellingenbestanden als - in /etc en + bestanden op de cliëntmachine en van instellingenbestanden + als in /etc en /usr/local/etc zelfs vaker. Als er verschillen worden aangetroffen ten opzichte van de basis md5 informatie op het systeem met beperkte toegang, dan hoort het script te gillen om een beheerder die het moet gaan uitzoeken. - Een goed beveiligingsscript controleert ook op onverwachte suid - bestanden en op nieuwe en verwijderde bestanden op + Een goed beveiligingsscript controleert ook op onverwachte + suid-bestanden en op nieuwe en verwijderde bestanden op systeempartities als / en /usr. Als ssh in plaats van NFS wordt gebruikt, dan is het schrijven van het script lastiger. Dan - moeten de scripts met scp naar de client + moeten de scripts met scp naar de cliënt verplaatst worden om ze uit te voeren, waardoor ze zichtbaar worden. Voor de veiligheid dienen ook de binaire bestanden die het script gebruikt, zoals &man.find.1;, gekopieerd te - worden. De ssh client op de client - zou al gecompromitteerd kunnen zijn. Het is misschien - noodzakelijk ssh te gebruiken over onveilige verbindingen, maar - dat maakt alles een stuk lastiger. + worden. De ssh-cliënt op de + cliënt zou al gecompromitteerd kunnen zijn. Het is + misschien noodzakelijk ssh te gebruiken over onveilige + verbindingen, maar dat maakt alles een stuk lastiger. Een goed beveiligingsscript voert ook controles uit op de instellingenbestanden van gebruikers en medewerkers: .rhosts, .shosts, - .ssh/authorized_keys, enzovoort… + .ssh/authorized_keys, enzovoort. Dat zijn bestanden die buiten het bereik van de - MD5 controle vallen. + MD5-controle vallen. - Als gebruikers veel schijfruimte hebben, dan kan het te - lang duren om alle bestanden op deze partitie te controleren. - In dat geval is het verstandig de mount vlaggen zo in te - stellen dat suid binaire bestanden en apparaten op die - partities niet zijn toegestaan. Zie daarvoor de - nodev en nosuid opties - (zie &man.mount.8;). Die partities moeten wel toch nog - minstens eens per week doorzocht worden, omdat het doel van - deze beveiligingslaag het ontdekken van een inbraak is, of die + Als gebruikers veel schijfruimte hebben, dan kan het te lang + duren om alle bestanden op deze partitie te controleren. In dat + geval is het verstandig de koppelvlaggen zo in te stellen dat + suid-binaire bestanden op die partities niet zijn toegestaan. + Zie daarvoor de optie nosuid (zie + &man.mount.8;). Die partities moeten wel toch nog minstens eens + per week doorzocht worden, omdat het doel van deze + beveiligingslaag het ontdekken van een inbraakpoging is, of die nu succesvol is of niet. Procesverantwoording (zie &man.accton.8;) kost relatief @@ -826,12 +789,12 @@ Tenslotte horen beveiligingsscripts de logboekbestanden te verwerken en de logboekbestanden zelf horen zo veilig mogelijk tot stand te komen. remote syslog kan erg - zinvol zijn. Een aanvaller probeert zijn sporen uit te wissen - en logboekbestanden zijn van groot belang voor een + zinvol zijn. Een aanvaller zal proberen zijn sporen uit te + wissen en logboekbestanden zijn van groot belang voor een systeembeheerder als het gaat om uitzoeken wanneer en hoe er is ingebroken. Een manier om logboekbestanden veilig te stellen is door het systeemconsole via een seriële poort aan te - sluiten op een veilige machine en zo continu informatie te + sluiten op een veilige machine en zo informatie te verzamelen. @@ -857,32 +820,32 @@ Ontzegging van Dienst (DoS) In deze paragraaf worden Ontzeggen van Dienst aanvallen - (Denial of Service of DoS) behandeld. Een DoS - aanval wordt meestal uitgevoerd als pakketaanval. Hoewel er + (Denial of Service of DoS) behandeld. Een + DoS-aanval wordt meestal uitgevoerd als pakketaanval. Hoewel er weinig gedaan kan worden tegen de huidige aanvallen met gefingeerde pakketten die een netwerk kunnen verzadigen, kan de schade geminimaliseerd worden door ervoor te zorgen dat - servers er niet door plat gaan. + servers er niet door plat gaan door: Limiteren van server forks. - - Limiteren van springplank (springboard) - aanvallen (ICMP response aanvallen, ping broadcast, - etc.). - + + Limiteren van springplank (springboard) + aanvallen (ICMP response aanvallen, ping broadcast, etc.). + - - Kernel Route Cache. + + De Kernel Route Cache overloaden. - Een veelvoorkomende DoS aanval tegen een server die forkt - is er een die probeert processen, file descriptors en geheugen - te gebruiken tot de machine het opgeeft. + Een veelvoorkomende DoS-aanval is om een server aan te + vallen door het zoveel kindprocessen aan te laten maken dat het + het hostsysteem uiteindelijk geen bestandsdescriptors, geheugen + enzovoort meer heeft en het dan opgeeft. inetd (zie &man.inetd.8;) kent een aantal instellingen om dit type aanval af te zwakken. Hoewel het mogelijk is ervoor te zorgen dat een machine niet plat @@ -900,14 +863,16 @@ Sendmail heeft de optie die veel beter blijkt te - werken dan het gebruik van de opties van sendmail waarmee de - werklast gelimitteerd kan worden. De parameter + werken dan het gebruik van de opties van + Sendmail waarmee de werklast + gelimiteerd kan worden. De parameter MaxDaemonChildren moet zodanig ingesteld - worden dat als sendmail start, hij + worden dat als sendmail start; deze hoog genoeg is om de te verwachten belasting aan te kunnen, maar niet zo hoog is dat de computer het aantal instanties van - sendmails niet aankan zonder plat te - gaan. Het is ook verstandig om sendmail in de wachtrij modus + Sendmails niet aankan zonder plat te + gaan. Het is ook verstandig om + Sendmail in de wachtrijmodus () te draaien en de daemon (sendmail -bd) los te koppelen van de verwerking van de wachtrij (sendmail -q15m). @@ -916,8 +881,8 @@ bijvoorbeeld op in te stellen, maar dan is een redelijke instelling van MaxDaemonChildren van belang om - die sendmail te beschermen tegen - trapsgewijze fouten (cascade failures). + die Sendmail te + beschermen tegen trapsgewijze fouten. Syslogd kan direct aangevallen worden en het is sterk aan te raden de @@ -939,13 +904,13 @@ aanval op root via het netwerk en die diensten daaraan voorkomen. Er dient altijd een exclusieve firewall te zijn, d.w.z. firewall alles - behalve poorten A, B, C, D en M-Z. + behalve poorten A, B, C, D en M-Z. Zo worden alle lage poorten gefirewalled behalve die voor specifieke diensten als named (als er een primary is voor een zone), ntalkd, sendmail en andere diensten die - vanaf internet toegankelijk moeten zijn. Als de firewall + vanaf Internet toegankelijk moeten zijn. Als de firewall andersom wordt ingesteld, als een inclusieve of tolerante firewall, dan is de kans groot dat er wordt vergeten een aantal diensten af te sluiten of dat er een nieuwe @@ -957,52 +922,51 @@ dynamische verbindingen in te stellen via de verscheidene net.inet.ip.portrange sysctls (sysctl -a | fgrep - portrange), waardoor ook de complexiteit van de + portrange), waardoor ook de complexiteit van de firewall instellingen kan vereenvoudigen. Zo kan bijvoorbeeld een normaal begin tot eindbereik ingesteld worden van 4000 tot 5000 en een hoog poortbereik van 49152 tot 65535. Daarna kan alles onder 4000 op de firewall geblokkeerd worden (met - uitzondering van bepaalde poorten die vanaf internet bereikbaar + uitzondering van bepaalde poorten die vanaf Internet bereikbaar moeten zijn natuurlijk). - Een andere veelvoorkomende DoS aanval is de springplank - aanval: een server zo aanvallen dat de respons van die server - de server zelf, het lokale netwerk of een andere machine - overbelast. De meest voorkomende aanval van dit type is de - ICMP ping broadcast aanval. De aanvaller - fingeert ping pakketten die naar het broadcast adres van het - LAN worden gezonden met als bron het IP adres - van de machine die hij eigenlijk aan wil vallen. Als de routers - aan de rand van het netwerk niet zijn ingesteld om een ping aan - een broadcast adres te blokkeren, dan kan het LAN genoeg - antwoorden produceren om de verbinding van het slachtoffer (het - gefingeerde bronadres) te verzadigen, zeker als de aanvaller - hetzelfde doet met tientallen andere netwerken. - Broadcastaanvallen met een volume van meer dan 120 megabit zijn - al voorgekomen. Een tweede springplank aanval is er een tegen - het ICMP foutmeldingssysteem. Door een pakket te maken waarop - een ICMP foutmelding komt, kan een aanvaller de inkomende - verbinding van een server verzadigen en de uitgaande verbinding - wordt verzadigd door de foutmeldingen. Dit type aanval kan een - server ook laten crashen, zeker als de server de ICMP - antwoorden niet zo snel kwijt kan als ze ontstaan. - &os; 4.X kernels kennen een compileeroptie - waarmee de effectiviteit van dit - type aanvallen afneemt. Latere kernels gebruiken de - sysctl variabele - net.inet.icmp.icmplim. De laatste - belangrijke klasse springplankaanvallen hangt samen met een - aantal interne diensten van inetd - zoals de UDP echo dienst. Een aanvaller fingeert eenvoudigweg - een UDP pakket met als bronadres de echopoort van Server A en - als bestemming de echopoort van Server B, waar Server A en B - allebei op een LAN staan. Die twee servers gaan dat pakket dan - heen en weer kaatsen. Een aanvaller kan beide servers - overbelasten door een aantal van deze pakketten te injecteren. - Soortgelijke problemen kunnen ontstaan met de - chargen poort. Een competente - systeembeheerder zal al deze interne - inetd test-diensten + Een andere veelvoorkomende DoS-aanval is de + springplankaanval: een server zo aanvallen dat de respons van + die server de server zelf, het lokale netwerk of een andere + machine overbelast. De meest voorkomende aanval van dit type is + de ICMP ping broadcast aanval. De + aanvaller fingeert ping-pakketten die naar het broadcast-adres + van het LAN worden gezonden met als bron het + IP-adres van de machine die hij eigenlijk aan + wil vallen. Als de routers aan de rand van het netwerk niet + zijn ingesteld om een ping-pakketten aan een broadcast-adres te + blokkeren, dan kan het LAN genoeg antwoorden produceren om de + verbinding van het slachtoffer (het gefingeerde bronadres) te + verzadigen, zeker als de aanvaller hetzelfde doet met tientallen + andere netwerken. Broadcastaanvallen met een volume van meer + dan 120 megabit zijn al voorgekomen. Een tweede + springplankaanval is er een tegen het ICMP-foutmeldingssysteem. + Door een pakket te maken waarop een ICMP-foutmelding komt, kan + een aanvaller de inkomende verbinding van een server verzadigen + en de uitgaande verbinding laten verzadigen met + ICMP-foutmeldingen. Dit type aanval kan een server ook laten + crashen door te zorgen dat het geheugen ervan vol zit, zeker als + de server de ICMP-antwoorden niet zo snel kwijt kan als dat het + ze genereert. Gebruik de + sysctl-variabele + net.inet.icmp.icmplim om deze aanvallen te + beperken. De laatste belangrijke klasse springplankaanvallen + hangt samen met een aantal interne diensten van + inetd zoals de UDP-echodienst. Een + aanvaller fingeert eenvoudigweg een UDP-pakket met als + bronadres de echopoort van Server A en als bestemming de + echopoort van Server B, waar Server A en B allebei op een LAN + staan. Die twee servers gaan dat pakket dan heen en weer + kaatsen. Een aanvaller kan beide servers overbelasten door een + aantal van deze pakketten te injecteren. Soortgelijke problemen + kunnen ontstaan met de poort chargen. + Een competente systeembeheerder zal al deze interne + inetd testdiensten uitschakelen. Gefingeerde pakketten kunnen ook gebruikt worden om de @@ -1010,11 +974,11 @@ net.inet.ip.rtexpire, rtminexpire en rtmaxcache sysctl parameters. Een aanval met - gefingeerde pakketten met een willekeurig bron IP zorgt ervoor - dat de kernel een tijdelijke cached route maakt in de + gefingeerde pakketten met een willekeurig bron-IP zorgt ervoor + dat de kernel een tijdelijke gecachede route maakt in de routetabel, die uitgelezen kan worden met netstat -rna - | fgrep W3. Deze routes hebben een levensduur van - ongeveer 1600 seconden. Als de kernel merkt dat de cached + | fgrep W3. Deze routes hebben een levensduur van + ongeveer 1600 seconden. Als de kernel merkt dat de gecachede routetabel te groot is geworden, dan wordt rtexpire dynamisch verkleind, maar deze waarde wordt nooit lager dan rtminexpire. @@ -1032,7 +996,7 @@ - Als servers verbonden zijn met het internet via een E3 + Als servers verbonden zijn met het Internet via een E3 of sneller, dan is het verstandig om handmatig rtexpire en rtminexpire aan te passen via &man.sysctl.8;. Als de een van de parameters @@ -1051,16 +1015,16 @@ KerberosIV Er zijn een aantal aandachtspunten die in acht genomen - moeten worden als Kerberos of ssh gebruikt worden. Kerberos V - is een prima authenticatieprotocol, maar er zitten bugs in de - kerberos versies van telnet en + moeten worden als Kerberos of ssh gebruikt worden. Kerberos 5 + is een prima autenticatieprotocol, maar er zitten bugs in de + Kerberos-versies van telnet en rlogin waardoor ze niet geschikt - zijn voor binair verkeer. Kerberos codeert standaard sessie + zijn voor binair verkeer. Kerberos codeert standaard de sessie niet, tenzij de optie wordt gebruikt. ssh codeert standaard wel alles. - ssh werkt prima, maar het stuurt coderingssleutels + Ssh werkt prima, maar het stuurt coderingssleutels standaard door. Dit betekent dat als gegeven een veilig werkstation met sleutels die toegang geven tot de rest van het systeem en ssh wordt gebruikt om verbinding te maken met een @@ -1074,14 +1038,14 @@ Het advies is ssh in combinatie met Kerberos te gebruiken voor het aanmelden door medewerkers wanneer dat ook maar - mogelijk is. ssh kan gecompileerd - worden met Kerberos ondersteuning. Dit vermindert de kans op - blootstelling van ssh sleutels en beschermt tegelijkertijd - de wachtwoorden met Kerberos. ssh sleutels zouden alleen + mogelijk is. Ssh kan gecompileerd + worden met Kerberos-ondersteuning. Dit vermindert de kans op + blootstelling van ssh-sleutels en beschermt tegelijkertijd + de wachtwoorden met Kerberos. Ssh-sleutels zouden alleen gebruikt moeten worden voor geautomatiseerde taken vanaf veilige machines (iets waar Kerberos ongeschikt voor is). Het advies is om het doorsturen van sleutels uit te schakelen in de - ssh instellingen of om de from=IP/DOMAIN + ssh-instellingen of om de from=IP/DOMAIN optie te gebruiken die ssh in staat stelt het bestand authorized_keys te gebruiken om de sleutel alleen bruikbaar te maken voor entiteiten die zich @@ -1098,17 +1062,10 @@ Delen geschreven en herschreven door - - - Siebrand - Mazeland - Vertaald door - - - DES, MD5 en crypt + DES, Blowfish, MD5, en crypt beveiliging @@ -1118,6 +1075,8 @@ crypt + Blowfish + DES MD5 @@ -1132,7 +1091,7 @@ woorden, wat net gesteld werd is helemaal niet waar: het besturingssysteem kent het echte wachtwoord niet. De enige manier om een wachtwoord in platte - tekst te verkrijgen, is door er met brute kracht naar + tekst te verkrijgen, is door er met brute kracht naar te zoeken in alle mogelijke wachtwoorden. Helaas was DES, de Data Encryption Standard, de enige @@ -1154,38 +1113,34 @@ houden. - Het crypt mechanisme herkennen + Het crypt-mechanisme herkennen - Voor &os; 4.4 was libcrypt.a een - symbolic link die wees naar de bibliotheek die gebruikt werd voor - codering. In &os; 4.4 veranderde libcrypt.a - zodat er een instelbare wachtwoordhash bibliotheek kwam. Op dit - moment ondersteunt de bibliotheek DES, MD5 en Blowfish - hashfuncties. Standaard gebruikt &os; MD5 om wachtwoorden te - coderen. + Op dit moment ondersteunt de bibliotheek DES, MD5 en + Blowfish hashfuncties. Standaard gebruikt &os; MD5 om + wachtwoorden te coderen. - Het is vrij makkelijk om uit te vinden welke - coderingsmethode &os; op een bepaald moment gebruikt. De - gecodeerde wachtwoorden in - /etc/master.passwd bekijken is een manier. - Wachtwoorden die gecodeerd zijn met MD5 zijn langer dan wanneer - ze gecodeerd zijn met DES hash. Daarnaast beginnen ze met de - karakters $1$. Wachtwoorden - die beginnen met $2a$ zijn - gecodeerd met de Blowfish hashfunctie. DES password strings - hebben geen bijzondere kenmerken, maar ze zijn korter dan MD5 - wachtwoorden en gecodeerd in een 64-karakter alfabet waar geen - $ karakter in zit. Een relatief korte - string die niet begint met een dollar teken is dus - waarschijnlijk een DES wachtwoord. + Het is vrij makkelijk om uit te vinden welke + coderingsmethode &os; op een bepaald moment gebruikt. De + gecodeerde wachtwoorden in + /etc/master.passwd bekijken is een manier. + Wachtwoorden die gecodeerd zijn met MD5 zijn langer dan wanneer + ze gecodeerd zijn met DES-hash. Daarnaast beginnen ze met de + karakters $1$. Wachtwoorden + die beginnen met $2a$ zijn + gecodeerd met de Blowfish hashfunctie. DES-wachtwoordstrings + hebben geen bijzondere kenmerken, maar ze zijn korter dan MD5 + wachtwoorden en gecodeerd in een 64-karakter alfabet waar geen + $ karakter in zit. Een relatief korte + string die niet begint met een dollar teken is dus + waarschijnlijk een DES-wachtwoord. - Het wachtwoord formaat voor nieuwe wachtwoorden wordt - ingesteld met de passwd_format - aanmeldinstelling in /etc/login.conf waar - des, md5 of - blf mag staan. Zie de &man.login.conf.5; - handleiding voor meer informatie over - aanmeldinstellingen. + Het wachtwoordformaat voor nieuwe wachtwoorden wordt + ingesteld met de passwd_format + aanmeldinstelling in /etc/login.conf waar + des, md5 of + blf mag staan. Zie de &man.login.conf.5; + handleiding voor meer informatie over + aanmeldinstellingen. @@ -1200,129 +1155,95 @@ eenmalige wachtwoorden - S/Key is een eenmalige wachtwoord methode die gebaseerd is op - de eenweg hashfunctie. &os; gebruikt een MD4 hash om aansluiting - te houden, maar andere systemen gebruiken ook wel MD5 en DES-MAC. - S/Key is al een onderdeel van het &os; basissysteem vanaf versie - 1.1.5 en wordt ook in een groeiend aantal andere - besturingssystemen gebruikt. S/Key is een geregistreerd - handelsmerk van Bell Communications Research, Inc. + Standaard biedt &os; ondersteuning voor OPIE (Eenmalige + Wachtwoorden in Alles - One-time Passwords In + Everything), wat standaard een MD5-hash gebruikt. - Vanaf versie 5.0 van &os; is S/Key vervangen door OPIE - (Eenmalige Wachtwoorden in Alles - One-time Passwords In - Everything). OPIE gebruikt standaard een MD5 hash. - Hier worden drie verschillende soorten wachtwoorden besproken. De eerste is het normale &unix; of Kerberos wachtwoord. Dit heet het &unix; wachtwoord. Het tweede type is een eenmalig wachtwoord dat wordt gemaakt met het - S/Key programma key of het OPIE - programma &man.opiekey.1; en dat wordt geaccepteerd door - keyinit of &man.opiepasswd.1; en de - aanmeldprocedure. Dit heet het eenmalige - wachtwoord. Het laatste type wachtwoord is het - wachtwoord dat wordt opgegeven aan de key/ - opiekey programma's (en soms aan de - keyinit / opiepasswd - programma's) die gebruikt worden om eenmalige wachtwoorden te - maken. Dit type heet geheim wachtwoord of gewoon - een wachtwoord zonder toevoeging. + OPIE-programma &man.opiekey.1; en dat wordt geaccepteerd door + &man.opiepasswd.1; en de aanmeldprocedure. Dit heet het + eenmalige wachtwoord. Het laatste type wachtwoord + is het wachtwoord dat wordt opgegeven aan het programma + opiekey (en soms aan het programma + opiepasswd) dat gebruikt wordt om eenmalige + wachtwoorden te maken. Dit type heet geheim + wachtwoord of gewoon een wachtwoord zonder + toevoeging. Het geheime wachtwoord heeft niets te maken met het &unix; - wachtwoord; ze kunnen hetzelfde zijn, dat wordt afgeraden. S/Key - en OPIE geheime wachtwoorden kennen niet de beperking van 8 - karakters als de oude &unix; wachtwoorden. + wachtwoord; ze kunnen hetzelfde zijn, dat wordt afgeraden. + OPIE geheime wachtwoorden kennen niet de beperking van 8 + karakters zoals de oude &unix; wachtwoorden. Bij &os; mag het wachtwoord voor aanmelden tot 128 karakters lang zijn. - Het mag onbeperkt lang zijn. Wachtwoorden van een zes of zeven + Ze mogen onbeperkt lang zijn. Wachtwoorden van een zes of zeven woorden lange zin zijn niet ongewoon. Voor het overgrote deel - werkt het S/Key of OPIE systeem volledig onafhankelijk van het - &unix; wachtwoordsysteem. + werkt het OPIE-systeem volledig onafhankelijk van het &unix; + wachtwoordsysteem. - Buiten het wachtwoord zijn er nog twee stukjes data die van - belang zijn voor S/Key en OPIE. Het eerste wordt - zaad (seed) of - sleutel (key) genoemd en bestaat - uit twee letters en vijf cijfers. Het tweede stukje data heet de - iteratieteller (iteration count), - een nummer tussen 1 en 100. S/Key maakt een eenmalig wachtwoord - door het zaad en het geheime wachtwoord aaneen te schakelen en - daarop het door de iteratieteller aangegeven keren MD4/MD5 hash - toe te passen. Daarna wordt het resultaat omgezet in zes korte - Engelse woorden. Die zes woorden zijn een eenmalige wachtwoord. - Het authenticatiesysteem (hoofdzakelijk PAM) houdt bij welk >>> TRUNCATED FOR MAIL (1000 lines) <<<