Sophie

Sophie

distrib > Mandriva > 8.1 > i586 > by-pkgid > 1d2557daf95413ed84345d8c4bbc0f0e > files > 42

howto-text-nl-8.1-1mdk.noarch.rpm

  Linux Security HOWTO
  Kevin Fenzi, kevin@tummy.com & Dave Wreski, dave@linuxsecu­
  rity.com
  v1.1.1, 17 maart 2000

  Dit document is een algemeen overzicht van beveiligingskwesties waar
  een beheerder van Linux systemen mee geconfronteerd wordt. Het behan­
  delt een algemene beveiligingsfilosofie en een aantal specifieke voor­
  beelden 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 kri­
  tiek, toevoegingen en correcties worden dankbaar geaccepteerd. Stuur
  je reactie alsjeblieft naar beide auteurs, met "Security HOWTO" als
  onderwerp.
  ______________________________________________________________________

  Inhoudsopgave

















































  1. Inleiding

     1.1 Nieuwe versies van dit document
     1.2 Reacties
     1.3 Disclaimer
     1.4 Copyright informatie

  2. Overzicht

     2.1 Wat is het nut van beveiliging?
     2.2 Hoe veilig is veilig?
     2.3 Wat probeer je te beschermen?
     2.4 Een beveiligingsbeleid ontwikkelen
     2.5 Manieren om je site te beveiligen
        2.5.1 Beveiliging van de host
        2.5.2 Beveiliging van het lokale netwerk
        2.5.3 Beveiliging door onduidelijkheid
     2.6 Organisatie van dit document

  3. Fysieke beveiliging

     3.1 Computersloten
     3.2 Beveiliging van de BIOS
     3.3 Beveiliging van de Boot Loader
     3.4 xlock en vlock
     3.5 Fysieke beveiligingsgevaren opsporen

  4. Lokale beveiliging

     4.1 Nieuwe accounts aanmaken
     4.2 Root beveiliging

  5. Beveiliging van bestanden en bestandssystemen

     5.1 Umask instellingen
     5.2 Bestandspermissies
     5.3 Controle op integriteit
     5.4 Trojan Horses

  6. Wachtwoordbeveiliging en -versleuteling

     6.1 PGP en Public-Key versleuteling
     6.2 SSL, S-HTTP, HTTPS en S/MIME
     6.3 Linux IPSEC uitvoeringen
     6.4 (TT
     6.5 PAM - Pluggable Authentication Modules
     6.6 Cryptographic IP Encapsulation (CIPE)
     6.7 Kerberos
     6.8 Shadow Passwords
     6.9 "Crack" en "John the Ripper"
     6.10 CFS - Cryptographic File System en TCFS - Transparent Cryptographic File System
     6.11 X11, SVGA en beeldschermbeveiliging
        6.11.1 X11
        6.11.2 SVGA
        6.11.3 GGI (Generic Graphics Interface project)

  7. Beveiliging van de kernel

     7.1 Opties om 2.0 kernels te compileren
     7.2  Opties om 2.2 kernels te compileren
     7.3  Kernel Devices

  8.  Beveiliging van het netwerk

     8.1 Packet Sniffers
     8.2 Systeemdiensten en tcp-wrappers
     8.3 Verifieer je DNS informatie
     8.4 (TT
     8.5 SATAN, ISS en andere netwerk scanners
        8.5.1 Poortscans detecteren
     8.6 (TT
     8.7 Denial of Service aanvallen
     8.8 NFS (Network File System) beveiliging
     8.9 NIS (Network Information Service) (voorheen YP)
     8.10 Firewalls
     8.11 IP Chains - Linux Kernel 2.2.x Firewalling
     8.12 VPN's - Virtual Private Networks

  9. Beveiligingsvoorbereidingen (voordat je on-line gaat)

     9.1 Maak een volledige backup van je machine
     9.2 Het kiezen van een goed backup schema
     9.3 Maak een backup van je RPM of Debian File Database
     9.4 Houd je systeemlog gegevens bij
     9.5 Maak gebruik van alle nieuwe systeem updates

  10. Wat te doen tijdens en na een inbraak

     10.1 Een aanval op de beveiliging is aan de gang
     10.2 Een aanval heeft reeds plaatsgevonden
        10.2.1 Het gat dichten
        10.2.2 De schade opnemen
        10.2.3 Backups, backups, backups!
        10.2.4 De indringer traceren

  11. Bronnen

     11.1 FTP Sites
     11.2 Websites
     11.3 Mailing Lists
     11.4 Boeken - Gedrukt materiaal

  12. Verklarende woordenlijst

  13. Veel gestelde vragen

  14. Conclusie

  15. Dankbetuigingen



  ______________________________________________________________________

  1.  Inleiding

  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.

  In een aantal andere HOWTO documenten worden ook beveiligingskwesties
  behandeld en naar deze documenten wordt verwezen als dat nodig is.

  Dit document kan niet 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.



  1.1.  Nieuwe versies van dit document

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

  http://www.linuxdoc.org/

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

  http://metalab.unc.edu/mdw/linux.html

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

  http://scrye.com/~kevin/lsh/

  of

  http://www.linuxsecurity.com/Security-HOWTO

  of

  http://www.tummy.com/security-howto

  1.2.  Reacties

  Alle opmerkingen, foutmeldingen, aanvullende informatie en alle
  mogelijke vormen van kritiek kunnen worden gestuurd naar:

  kevin@tummy.com

  en

  dave@linuxsecurity.com

  Let op: Stuur je reactie alsjeblieft naar beide auteurs. Ook moet je
  voor de zekerheid "Linux", "security" of "HOWTO" in het onderwerp
  zetten om Kevin's spamfilter te ontwijken.

  1.3.  Disclaimer

  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.

  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.

  Voor zover we weten worden er alleen programma's beschreven die onder
  bepaalde voorwaarden mogen worden gebruikt of geëvalueerd voor
  persoonlijke doeleinden. De meeste programma's zijn beschikbaar,
  compleet met broncode, onder GNU
  <http://www.gnu.org/copyleft/gpl.html> voorwaarden.

  1.4.  Copyright informatie

  Dit document is auteursrechtelijk beschermd (c)1998-2000 Kevin Fenzi
  en Dave Wreski en wordt verspreid onder de volgende voorwaarden:




  ·  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ën.  Commerciële herverspreiding is toegestaan en wordt
     aangemoedigd; echter, de auteurs willen graag op de hoogte gesteld
     worden van zulke distributies.

  ·  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ördinator op het onderstaande
     adres.

  ·  Als je vragen hebt, neem dan alsjeblieft contact op met Tim Bynum,
     de Linux HOWTO coördinator, op

  tjbynum@metalab.unc.edu

  2.  Overzicht

  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ëren.

  2.1.  Wat is het nut van beveiliging?

  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 http://www.netaxs.com/~esr/faqs/hacker-
  howto.html.

  2.2.  Hoe veilig is veilig?

  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.

  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.

  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 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.

  2.3.  Wat probeer je te beschermen?

  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.



  ·  Een risico 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 één onveilig account erin resulteren dat je hele
     netwerk in gevaar komt. Als je een enkele gebruiker toestaat om in
     te loggen middels een .rhosts file of door gebruik te maken van een
     onveilige service als tftp, 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.







  ·  Een bedreiging 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.








  Er zijn verschillende typen indringers en het is handig om hun ver­
  schillende karakteristieken in gedachten te houden als je je systemen
  gaat beveiligen.








  ·   De Nieuwsgierige - Dit type indringer is voornamelijk
     geïnteresseerd in het uitvinden wat voor type systeem en gegevens
     je hebt.

  ·   De Kwaadwillige - 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.

  ·   De Geavanceerde - 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.

  ·   De Concurrentie - Dit type indringer is geï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.

  ·   De Lener - Dit type indringer is geïnteresseerd in het doeleinden
     te gebruiken. Het typeert hem om chat of irq servers te draaien,
     porno archiefsites of zelfs DNS servers.

  ·   Haasje-over - Dit type indringer is alleen geï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.










  ·  Kwetsbaarheid 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 ver­
  loren zijn gegaan opnieuw aan moet maken. Heb je je back-up strategie
  gecontroleerd en je gegevens recentelijk geverifieerd?


  2.4.  Een beveiligingsbeleid ontwikkelen

  Creë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.

  Een algemeen geaccepteerd beveiligingsbeleid begint met de zin:


        Dat wat niet toegestaan is, is verboden.



  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.

  rfc1244 is een document dat beschrijft hoe je je eigen netwerk
  beveiligingbeleid moet creëren.

  rfc1281 is een document dat een voorbeeld van een beveiligingsbeleid
  laat zien met een gedetaïlleerde beschrijving van elke stap.

  Tot slot zou je het COAST-beleid archief op
  ftp://coast.cs.purdue.edu/pub/doc/policy kunnen bekijken om na te gaan
  hoe een beveiligingsbeleid er in werkelijkheid uitziet.

  2.5.  Manieren om je site te beveiligen

  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.

  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ï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.

  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ïnteresseerd zou kunnen zijn, welke we later zullen
  bespreken.

  2.5.1.  Beveiliging van de host

  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.

  2.5.2.  Beveiliging van het lokale netwerk

  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.

  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.

  2.5.3.  Beveiliging door onduidelijkheid

  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ïnteresseerd zal zijn in wat je hebt. We
  zullen bespreken wat je beschermt in de volgende paragrafen.

  2.6.  Organisatie van dit document

  Dit document is verdeeld in een aantal paragrafen. Ze behandelen
  verscheidene algemene beveiligingskwesties. De eerste, ``Fysieke
  beveiliging'', behandelt hoe je je fysieke machine moet beschermen
  tegen geknoei. De tweede, ``Lokale beveiliging'', beschrijft hoe je je
  systeem moet beschermen tegen geknoei van lokale gebruikers. De derde,
  ``Beveiliging van bestanden en   bestandssystemen'', laat zien hoe je
  bestandssystemen en permissies op bestanden moet instellen. De
  volgende, ``Wachtwoordbeveiliging en -versleuteling'', bespreekt hoe
  je versleuteling kunt gebruiken om je  machine en netwerk beter te
  beveiligen.  ``Beveiliging van de kernel'' bespreekt welke
  kernelopties je moet instellen of je bewust van moet zijn voor een
  veiliger systeem. ``Beveiliging van het netwerk'' beschrijft hoe je je
  Linux systeem beter kunt beveiligen tegen netwerkaanvallen.
  ``Beveiligingsvoorbereidingen'' bespreekt hoe je je machine(s) moet
  voorbereiden voor je ze on-line brengt. De volgende, ``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 ``Bronnen'' worden enkele primaire bronnen opgesomd waar je meer
  over beveiliging kunt vinden. In de V en A paragraaf ``Veel gestelde
  vragen'' worden enkele veel gestelde vragen beantwoord en tot slot
  volgt een conclusie in ``Conclusie''.

  De twee belangrijkste punten die je je moet realiseren als je dit
  document leest, zijn:

  ·  Wees je bewust van je systeem. Controleer systeemlogs zoals
     /var/log/messages, houd een oogje op je systeem en
  ·  Houd je systeem up-to-date door je ervan te verzekeren dat je de
     meest recente software versies hebt geïnstalleerd en verbeteringen
     hebt aangebracht bij beveiligingswaarschuwingen. Dit gewoonweg doen
     zal helpen om je systeem merkbaar veiliger te maken.

  3.  Fysieke beveiliging

  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?

  Hoeveel fysieke beveiliging je nodig hebt op je systeem is erg
  afhankelijk van je situatie en/of budget.

  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.

  Voor de hand liggende fysieke beveiligingsmethoden als sloten op
  deuren, kabels, afgesloten kasten en videobewaking zijn allemaal goede
  ideeën, maar vallen buiten de strekking van dit document. :)

  3.1.  Computersloten

  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.

  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.

  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.

  3.2.  Beveiliging van de BIOS

  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.

  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.

  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.

   Let op: 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. ;(

  3.3.  Beveiliging van de Boot Loader

  In de verschillende Linux boot loaders kan ook een wachtwoord
  ingesteld worden. LILO heeft bijvoorbeeld password en restricted
  instellingen; password vereist een wachtwoord bij het opstarten,
  terwijl restricted alleen een wachtwoord bij het opstarten vereist als
  je opties specificeert (zoals single) bij de LILO prompt.

  Uit de lilo.conf man pagina:



       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).




  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.

  Als iemand beveiligingsgerelateerde informatie van een andere boot
  loader heeft, zouden we dat graag willen horen. (grub, silo, milo,
  linload, enz.)

  Let op: 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. ;(


  3.4.  xlock en vlock

  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
  xlock en vlock.

  xlock 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 xlock draaien
  vanaf elke xterm op je console en het zal het beeldscherm vergrendelen
  en om een wachtwoord vragen om te ontgrendelen.

  vlock 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
  één afsluit, kunnen anderen binnenkomen en de console gebruiken; ze
  kunnen alleen niet jouw virtuele console gebruiken totdat je hem
  ontgrendelt. vlock wordt geleverd bij Redhat Linux, maar de weg die
  jij moet bewandelen om zover te komen kan anders zijn.

  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.

  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.

  3.5.  Fysieke beveiligingsgevaren opsporen

  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 jij 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.

  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.

  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.

  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.


  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.

  Enkele dingen die je moet controleren in je logs:

  ·  korte of onvolledige logs

  ·  logs die vreemde tijdstippen bevatten

  ·  logs met verkeerde permissies of eigendomsrecht

  ·  registraties van het opnieuw opstarten van het systeem of diensten

  ·  ontbrekende logs

  ·  su entries of logins vanaf vreemde plaatsen


  We zullen systeemloggegevens ``later'' in deze HOWTO bespreken.

  4.  Lokale beveiliging

  Het volgende waar we naar gaan kijken is de beveiliging van je systeem
  tegen aanvallen van lokale gebruikers. Zeiden we zojuist lokale
  gebruikers? Ja!

  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.

  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.

  4.1.  Nieuwe accounts aanmaken

  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.

  Enkele goede vuistregels als je andere mensen rechtmatige toegang tot
  je Linux-machine toestaat:


  ·  Geef ze het minimale aantal privileges dat ze nodig hebben.

  ·  Weet wanneer/waar vandaan ze inloggen of waar vandaan ze zouden
     moeten inloggen.

  ·  Verwijder niet gebruikte accounts.

  ·  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.
  ·  Het aanmaken van groeps-gebruiker ID's zou absoluut verboden moeten
     zijn.  Gebruikersaccounts zorgen ook voor verantwoordelijkheid en
     dit is bij groepsaccounts niet mogelijk.

  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.

  4.2.  Root beveiliging

  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.

  Enkele trucks om te voorkomen dat je je computer overhoop haalt als
  root:


  ·  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  "rm foo*.bar" wilt doen, doe dan
     eerst "ls foo*.bar" om zeker te weten dat je de bestanden
     verwijdert die je wilde verwijderen. Het gebruik van echo in plaats
     van destructieve commando's werkt soms ook.

  ·  Voorzie je gebruikers van een standaard alias voor het rm commando
     om een bevestiging te vragen voordat ze bestanden verwijderen.

  ·  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 zeker
     weet wat er als root gedaan moet worden.

  ·  Het command path voor de root gebruiker is erg belangrijk. Het
     command path (dat wil zeggen de PATH 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 nooit een . (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.

  ·  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
     .rhosts bestand aan voor root.

  ·  Het /etc/securetty 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 su als dat nodig is (hopelijk via ``ssh'' of
     een ander versleuteld kanaal), zodat er geen reden is waarom je
     direct als root in zou moeten loggen.

  ·  Wees altijd langzaam en weloverwogen als je bezig bent als root. Je
     acties kunnen een heleboel dingen beïnvloeden. Denk na voordat je
     typt!
  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. sudo 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. sudo 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
  sudo zelfs goed op plaatsen waar een aantal mensen root toegang
  hebben, omdat het je helpt om aangebrachte wijzigingen bij te houden.

  Hoewel sudo 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 sudo. Dit omvat de meeste tekstverwerkers bijvoorbeeld. Ook een
  programma zo onschadelijk als /bin/cat kan worden gebruikt om
  bestanden te overschrijven, waarmee het mogelijk zou kunnen worden om
  root te misbruiken. Beschouw sudo als een middel voor het toekennen
  van verantwoordelijkheden en verwacht niet dat het de root gebruiker
  kan vervangen en tevens veilig is.

  5.  Beveiliging van bestanden en bestandssystemen

  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.


  ·  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 nosuid optie in /etc/fstab voor partities
     die beschrijfbaar zijn door anderen dan root. Je wilt misschien ook
     nodev en noexec toepassen op de home partities van gebruikers,
     evenals op /var, dus het uitvoeren van programma's is verboden, net
     als het creëren van character of block devices, wat trouwens toch
     nooit noodzakelijk zou moeten zijn.

  ·  Als je bestandssystemen exporteert middels NFS, let er dan op dat
     je /etc/exports 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.

  ·  Stel de bestandsaanmaak umask van je gebruikers zo beperkt mogelijk
     in. Zie ``umask instellingen''.

  ·  Als je gebruik maakt van een netwerk bestandssysteem zoals NFS om
     bestandssystemen te mounten, let er dan op dat je /etc/exports
     instelt met geschikte beperkingen. Kenmerkend is het gebruik van
     'nodev',

  ·  Stel limieten in voor het bestandssysteem in plaats van het
     toestaan van unlimited, wat standaard is. Je kunt de limieten per
     gebruiker beheren door gebruik te maken van de resource-limits PAM
     module en /etc/pam.d/limits.conf. De limieten voor de groep users
     kunnen er bijvoorbeeld zo uit zien:



       @users     hard  core    0
       @users     hard  nproc   50
       @users     hard  rss     5000

  Dit zegt: verbied het creëren van core bestanden, beperk het aantal
  processen tot 50 en beperk het geheugengebruik tot 5M per gebruiker.

  ·  De /var/log/wtmp en /var/run/utmp 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 644
     permissies hebben, zonder dat het invloed