diff --git a/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml index df14bb431c..9340e13e3f 100644 --- a/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml @@ -1,4688 +1,4688 @@ René Ladan Vertaald door Opslag Overzicht Dit hoofdstuk behandelt het gebruik van schijven in &os;. Dit omvat geheugenschijven, schijven die met het netwerk verbonden zijn, SCSI/IDE-opslagapparaten en apparaten die gebruik maken van de USB-interface. Na het lezen van dit hoofdstuk weet de lezer: Welke terminologie &os; gebruikt om de gegevensindeling op een fysieke schijf te beschrijven (partities en slices); Hoe aanvullende harde schijven aan een systeem toe te voegen; Hoe &os; in te stellen om het gebruik te laten maken van USB-opslagapparaten; Hoe virtuële bestandssystemen, zoals geheugenschijven, aan te maken; Hoe quota te gebruiken om het schijfgebruik te beperken; Hoe schijven te versleutelen om ze tegen inbrekers te beschermen; Hoe vanuit &os; CD's en DVD's aan te maken en te branden; Wat de verschillende mogelijkheden zijn voor opslagmedia voor back-ups; Hoe back-upprogramma's te gebruiken die beschikbaar zijn in &os;; Hoe een back-up naar diskettes te maken; Wat snapshots zijn en hoe ze efficiënt te gebruiken. Aangeraden voorkennis: Hoe een nieuwe &os;-kernel in te stellen en te installeren (). Apparaatnamen De volgende lijst noemt de fysieke opslagapparaten die in &os; ondersteund worden, samen met de bijhorende namen. Naamconventies voor fysieke Schijven Type medium Apparaatnaam medium IDE harde schijven ad IDE CD-ROM-stations acd SCSI harde schijven en USB-apparaten voor massa-opslag da SCSI CD-ROM-schijven cd Overige niet-standaard-CD-ROM-stations mcd voor Mitsumi CD-ROM, scd voor Sony CD-ROM, matcd voor Matsushita/Panasonic CD-ROM Het stuurprogramma voor &man.matcd.4; is sinds 2002 uit de &os; 4.X-tak verwijderd en bestaat niet in &os; versies 5.0 en latere versies. Diskettestations fd SCSI bandstations sa IDE bandstations ast Flashdrives fla voor &diskonchip; flashapparaten RAID-schijven aacd voor &adaptec; AdvancedRAID, mlxd en mlyd voor &mylex;, amrd voor AMI &megaraid;, idad voor Compaq Smart RAID, twed voor &tm.3ware; RAID.
David O'Brien Origineel bijgedragen door Schijven toevoegen schijven toevoegen Stel dat het gewenst is om een nieuwe SCSI-schijf aan een machine toe te voegen die slechts een enkele drive heeft. Ten eerste dient de computer uitgeschakeld te worden en dient de schijf volgens de instructies van de computer, controller en schijffabrikant geïnstalleerd te worden. Wegens de grote variéteiten om dit soort procedures uit te voeren, vallen de details buiten het bereik van dit document. Er dient als gebruiker root ingelogd te worden. Nadat de schijf is toegevoegd, dient /var/run/dmesg.boot bekeken te worden om er zeker van te zijn dat de nieuwe schijf is gevonden. Volgens het voorbeeld heet de nieuw toegevoegde schijf da1 en die wordt gemount op /1 (als er een IDE-schijf wordt toegevoegd, is de apparaatnaam wd1 op systemen voorafgaand aan 4.0, en ad1 in 4.X- en 5.X-systemen). partities slices fdisk &os; draait op IBM-PC-compatibele computers. Daarom moet het rekening houden met de PC-BIOS-partities. Deze wijken af van de traditionele BSD-partities. Een PC-schijf bevat tot vier ingangen voor BIOS-partities. Indien de schijf geheel aan &os; wordt gewijd, kan de toegewijde-modus gebruikt worden. In het andere geval moet &os; binnen één van de vier PC-BIOS-partities draaien. De PC-BIOS-partities worden door &os; slices genoemd om ze niet met de traditionele BSD-partities te verwarren. Slices kunnen ook op een schijf worden gebruikt die toegewijd is aan &os;, maar in een computer zit die ook andere besturingssystemen heeft geïnstalleerd. Dit is een goede manier om verwarring met het programma fdisk van andere, niet-&os; besturingssystemen te voorkomen. Als er met slices gewerkt wordt, wordt de schijf toegevoegd als /dev/da1s1e. Dit moet worden gelezen als: SCSI-schijf, eenheid 1 (tweede SCSI-schijf), slice 1 (PC-BIOS-partitie 1) en BSD-partitie e. Als de schijf toegewijd is, wordt deze simpelweg als /dev/da1e toegevoegd. Omdat 32-bit-integers worden gebruikt om het aantal sectoren op te slaan, is &man.bsdlabel.8; (&man.disklabel.8; op &os; 4.X) beperkt tot 2^32-1 sectoren per schijf, wat meestal neerkomt op 2 TB. Het programma &man.fdisk.8; staat geen hogere startsector toe dan 2^32-1 en geen grotere lengte dan 2^32-1, meestal worden hiermee partities tot 2 TB begrensd en schijven tot 4 TB. Het formaat van &man.sunlabel.8; is beperkt tot 2^32-1 sectoren per partitie en 8 partities per schijf, in totaal dus 16 TB. Voor grotere schijven kan &man.gpt.8; worden gebruikt. &man.sysinstall.8; gebruiken sysinstall schijven toevoegen su Navigeren door <application>sysinstall</application> sysinstall (/stand/sysinstall in versies van &os; ouder dan 5.2) kan gebruikt worden om een nieuwe schijf te partitioneren en te labelen met eenvoudig te gebruiken menu's. Hiervoor dient òfwel als gebruiker root ingelogd te zijn, òfwel gebruik te worden gemaakt van su. Draai sysinstall en ga naar het menu Configure. Scroll binnen het &os; Configuration Menu naar beneden en kies de optie Fdisk. <application>fdisk</application> partitie-bewerker Eenmaal binnen fdisk kan a ingetypt worden om de gehele schijf voor &os; te gebruiken. Wanneer gevraagd wordt of het systeem compatibel dient te blijven met mogelijk toekomstige besturingssystemen, dient met YES geantwoord te worden. Met W kunnen de veranderingen naar de schijf worden geschreven. Nu dient de FDISK-bewerker verlaten te worden door het intypen van q. Vervolgens wordt er een vraag gesteld over het Master Boot Record. Omdat er een schijf aan een reeds draaiend systeem wordt toegevoegd, dient hier None gekozen te worden. Schijflabelbewerker BSD-partities Vervolgens dient sysinstall verlaten en opnieuw gestart te worden. Volg bovenstaande aanwijzingen, maar kies deze keer voor de optie Label. Dit geeft toegang tot de Disk Label Editor. Hier worden de traditionele BSD-partities aangemaakt. Een schijf kan tot acht partities bevatten, gelabeld a-h. Enkele partitielabels hebben een speciale functie. De partitie a wordt gebruikt voor de rootpartitie (/). Alleen de systeemschijf (bijvoorbeeld de schijf van waaruit opgestart wordt) moet een partitie a hebben. De partitie b wordt voor swappartities gebruikt, en het is mogelijk om vele schijven met swappartities te hebben. De partitie c adresseert de gehele schijf in toegewijde modus, of de gehele &os;-slice in slice-modus. De andere partities zijn voor algemeen gebruik. sysinstall's Labelbewerker heeft een voorkeur voor de partitie e voor niet-root-niet-swap-partities. Binnen de Labelbewerker dient een enkel bestandssysteem te worden aangemaakt door C in te typen. Kies FS wanneer gevraagd wordt of dit een FS (file system) of swap wordt, en geef een mountpunt in (bijvoorbeeld /mnt). Wanneer een schijf in post-installatie-modus wordt toegevoegd, maakt sysinstall geen ingangen aan in /etc/fstab, dus dan is het opgegeven mountpunt niet van belang. Nu kan het nieuwe label naar de schijf worden geschreven en er een bestandssysteem op aangemaakt worden. Dit kan gedaan worden door W in te typen. Fouten van sysinstall dat de nieuwe partitie niet gemount kon worden kunnen genegeerd worden. De Labelbewerker en sysinstall kunnen nu volledig verlaten worden. Afronden De laatste stap bestaat uit het bewerken van /etc/fstab om hier een regel voor de nieuwe schijf aan toe te voegen. Het gebruik van opdrachtregelgereedschappen Het gebruik van slices Deze installatie zorgt ervoor dat de schijf correct samenwerkt met andere besturingssystemen die eventueel op de computer zijn geïnstalleerd en dat de fdisk-gereedschappen van andere besturingssystemen niet verward raken. Het wordt aangeraden om deze methode te gebruiken voor de installatie van nieuwe schijven. Gebruik de toegewijde modus alleen als hier een goede reden voor bestaat! &prompt.root; dd if=/dev/zero of/dev/da1 bs=1k count=1 &prompt.root; fdisk -BI da1 # Initialiseer de nieuwe schijf. &prompt.root; disklabel -B -w -r da1s1 auto # Label de schijf. &prompt.root; disklabel -e da1s1 # Bewerk de zojuist aangemaakte schijflabel en voeg partities toe. &prompt.root; mkdir -p /1 &prompt.root; newfs /dev/da1s1e # Herhaal dit voor alle aangemaakte partities. &prompt.root; mount /dev/da1s1e /1 # Mount de partitie(s). &prompt.root; vi /etc/fstab # Voeg de juiste regel(s) aan /etc/fstab toe. Vervang voor een IDE-schijf da door ad. Op systemen voor 4.X dient wd gebruikt te worden. Toegewijd OS/2 Indien de nieuwe schijf niet met een ander besturingssysteem gedeeld wordt, kan de toegewijde modus gebruikt worden. Denk eraan dat deze modus besturingssystemen van Microsoft kan verwarren. Ze richten echter geen schade aan. IBM's &os2; fatsoeneert echter partities die het niet begrijpt. &prompt.root; dd if=/dev/zero of=/dev/da1 bs=1k count=1 &prompt.root; disklabel -Brw da1 auto &prompt.root; disklabel -e da1 # Maak de `e'-partitie aan. &prompt.root; newfs -d0 /dev/da1e &prompt.root; mkdir -p /1 &prompt.root; vi /etc/fstab # Voeg een regel voor /dev/da1e toe. &prompt.root; mount /1 Een alternatieve methode is: &prompt.root; dd if=/dev/zero of=/dev/da1 count=2 &prompt.root; disklabel /dev/da1 | disklabel -BrR da1 /dev/stdin &prompt.root; newfs /dev/da1e &prompt.root; mkdir -p /1 # Voeg een regel voor /dev/da1e toe. &prompt.root; mount /1 Sinds &os; 5.1-RELEASE is het oude programma &man.disklabel.8; vervangen door &man.bsdlabel.8;. In &man.bsdlabel.8; zijn een aantal overbodige opties en parameters verwijderd. In de bovenstaande voorbeelden dient de optie met &man.bsdlabel.8; weggelaten te worden. Meer informatie staat in de hulppagina van &man.bsdlabel.8;. RAID Software RAID Christopher Shumway Origineel werk van Jim Brown Herzien door RAID softwarematig RAID CCD Concatenated Disk Driver (CCD) instellingen Bij het kiezen van een medium voor massa-opslag zijn de belangrijkste afwegingen snelheid, betrouwbaarheid en kosten. Het komt zelden voor dat alle drie in balans zijn. Normaalgesproken is een snel, betrouwbaar apparaat voor massa-opslag duur en kosten sparen gaat ten koste van òfwel snelheid òfwel betrouwbaarheid. Bij het ontwerpen van het onderstaande systeem werd primair op de kosten gelet, gevolgd door snelheid en als laatste betrouwbaarheid. De overdrachtsnelheid van gegevens wordt voor dit systeem uiteindelijk beperkt door het netwerk. En hoewel betrouwbaarheid erg belangrijk is, wordt onderstaande CCD-schijf gebruikt voor het serven van on-line gegevens die reeds volledig op CD-R's zijn geback-upt en eenvoudig vervangen kunnen worden. De eerste stap in het kiezen van een massa-opslagoplossing is het bepalen van de eigen benodigdheden. Indien snelheid belangrijker is dan betrouwbaarheid of kosten, wijkt de oplossing af van het systeem dat in deze sectie wordt beschreven. Hardware installeren Als aanvulling op de IDE systeemschijf zijn drie Western Digital IDE-schijven van 30 GB, 5400 RPM vanuit de kern van de onderstaande CCD-schijf aanwezig, die ongeveer 90 GB aan on-line opslag bieden. Ideaal gezien heeft iedere IDE-schijf een eigen IDE-controller en kabel, maar om de kosten te minimaliseren zijn geen aanvullende IDE-kabels gebruikt. In plaats hiervan zijn de schijven zodanig met jumpers ingesteld dat elke IDE-controller één master en één slave heeft. Tijdens het opnieuw opstarten werd het systeem-BIOS zodanig ingesteld dat het automatisch de aangekoppelde schijven detecteerde. Het was belangrijker dat &os; ze tijdens het opnieuw opstarten herkende: ad0: 19574MB <WDC WD205BA> [39770/16/63] at ata0-master UDMA33 ad1: 29333MB <WDC WD307AA> [59598/16/63] at ata0-slave UDMA33 ad2: 29333MB <WDC WD307AA> [59598/16/63] at ata1-master UDMA33 ad3: 29333MB <WDC WD307AA> [59598/16/63] at ata1-slave UDMA33 Indien &os; niet alle schijven detecteert, moet gecontroleerd worden of de jumpers juist zijn ingesteld. De meeste IDE-schijven hebben ook een jumper voor Cable Select. Dit is niet de jumper voor de master/slave-instelling. Voor hulp met het identificeren van de juiste jumper dient de documentatie van de schijf geraadpleegd te worden. Vervolgens dient besloten te worden hoe ze deel gaan uitmaken van het bestandssysteem. Hiervoor dienen &man.vinum.8; () en &man.ccd.4; bestudeerd te worden. Voor deze instellingen werd voor &man.ccd.4; gekozen. CCD installeren Het stuurprogramma &man.ccd.4; biedt de mogelijkheid om meerdere identieke schijven aaneen te rijgen tot één logisch bestandssysteem. Om gebruik te kunnen maken van &man.ccd.4; is een kernel met ingebouwde ondersteuning voor &man.ccd.4; nodig. De volgende regel dient toegevoegd te worden aan het kernelinstellingenbestand en de kernel dient opnieuw gebouwd en geïnstalleerd te worden: pseudo-device ccd 4 Op 5.X-systemen dient de volgende regel gebruikt te worden: device ccd In &os; 5.X is het niet nodig om het aantal &man.ccd.4;-apparaten op te geven aangezien het &man.ccd.4;-apparaat nu zelfklonend is. Nieuwe instanties van het apparaat worden automatisch op verzoek aangemaakt. De ondersteuning voor &man.ccd.4; kan ook als kernelmodule geladen worden in &os; 3.0 en hoger. Om &man.ccd.4; te installeren dient eerst &man.disklabel.8; gebruikt te worden om de schijven te labelen: disklabel -r -w -ad1 auto disklabel -r -w ad2 auto disklabel -r -w ad3 auto Bovenstaande maakt een schijflabel aan voor ad1c, ad2c en ad3c die de gehele schijf beslaat. Sinds &os; 5.1-RELEASE is het oude programma &man.disklabel.8; vervangen door &man.bsdlabel.8;. In &man.bsdlabel.8; zijn een aantal overbodige opties en parameters verwijderd. In de bovenstaande voorbeelden dient de optie met &man.bsdlabel.8; weggelaten te worden. Meer informatie staat in de hulppagina van &man.bsdlabel.8;. Vervolgens dient het labeltype van de schijf veranderd te worden. Voor het bewerken van de schijven kan &man.disklabel.8; gebruikt worden: disklabel -e ad1 disklabel -e ad2 disklabel -e ad3 Dit zorgt ervoor dat het huidige schijflabel van elke schijf met de tekstverwerker wordt geopend die door de omgevingsvariabele EDITOR wordt gespecificeerd, vaak &man.vi.1;. Een ongewijzigd schijflabel ziet er ongeveer als volgt uit: 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) Er dient een nieuwe partitie e toegevoegd te worden die door &man.ccd.4; gebruikt kan worden. Deze kan gewoonlijk van partitie c overgenomen worden, maar het moet 4.2BSD zijn. Het schijflabel ziet er nu ongeveer als volgt uit: 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597) e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597) Bestandssysteem aanmaken Het kan zijn dat de apparaatnode voor ccd0c nog niet bestaat. Om deze aan te maken dienen de volgende commando's uitgevoerd te worden: cd /dev sh MAKEDEV ccd0 In &os; 5.0 beheert &man.devfs.5; automatisch apparaatnodes in /dev, dus is het niet nodig om MAKEDEV te gebruiken. Nu alle schijven gelabeld zijn, moet de &man.ccd.4; gebouwd worden. Om dit te doen, dient &man.ccdconfig.8; gebruikt te worden met opties die ongeveer gelijk zijn aan de volgende: ccdconfig ccd0 32 0 /dev/ad1e /dev/ad2e /dev/ad3e Hieronder staat het gebruik en de betekenis van elke optie: Het eerste argument is het in te stellen apparaat, in dit geval /dev/ccd0c. Het gedeelte /dev/ is optioneel. De interleave voor het bestandssysteem. De interleave definiëert de grootte van een stripe in schijfblokken, elk schijfblok is normaalgesproken 512 bytes groot. Een interleave van 32 is dus 16.384 bytes groot. Vlaggen voor &man.ccdconfig.8;. Indien het gewenst is om schijfspiegeling aan te zetten, kan er hier een vlag voor gespecificeerd worden. Deze opstelling biedt geen spiegeling voor &man.ccd.4;, dus is die op 0 (nul) ingesteld. De laatste argumenten voor &man.ccdconfig.8; zijn de apparaten die in de rij geplaatst dienen te worden. Voor elk apparaat dient de complete padnaam gebruikt te worden. Nadat &man.ccdconfig.8; gedraaid is, is de &man.ccd.4; ingesteld. Er kan een bestandssysteem worden geïnstalleerd. Er kan in &man.newfs.8; worden gekeken voor opties, of het draaien van het onderstaande commando is ook toereikend: newfs /dev/ccd0c Alles automatisch maken In het algemeen is het wenselijk om de &man.ccd.4; telkens te mouten wanneer er opnieuw opgestart wordt. Dit dient eerst ingesteld te worden. Met het volgende commando worden de huidige instellingen naar /etc/ccd.conf geschreven: ccdconfig -g > /etc/ccd.conf Tijdens het opstarten draait het script /etc/rc ccdconfig -C indien /etc/ccd.conf bestaat. Dit stelt automatisch de &man.ccd.4; in, zodat die kan worden gemount. Indien er in enkele-gebruiker-modus wordt opgestart, dient het volgende commando te worden uitgevoerd om de rij in te stellen voordat de &man.ccd.4; gemount kan worden: ccdconfig -C Om de &man.ccd.4; automatisch te mounten, kan er een regel voor de &man.ccd.4; in /etc/fstab geplaatst worden, zodat die tijdens het opstarten gemount wordt: /dev/ccd0c /media ufs rw 2 2 Volumebeheerder Vinum RAID software RAID Vinum De volumebeheerder Vinum is een blokstuurprogramma dat virtuele schijven implementeert. Het isoleert schijfhardware van de blokapparaat-interface en projecteert gegevens op een manier die de flexibiliteit, prestatie en betrouwbaarheid verhoogt in vergelijking met de traditionele slice-blik op schijfopslag. &man.vinum.8; implementeert de modellen RAID-0, RAID-1 en RAID-5, zowel individueel als als combinatie. In staat meer informatie over &man.vinum.8;. Hardwarematige RAID RAID hardwarematig &os; ondersteunt ook een verscheidenheid aan hardwarematige RAID-stuurprogramma's. Deze apparaten besturen een RAID-deelsysteem zonder dat er &os;-specifieke software nodig is om de rij te beheren. Door gebruik te maken van een BIOS die op de kaart aanwezig is, beheert de kaart de meeste schijfbewerkingen zelf. Nu volgt een korte beschrijving van een opzet waarbij een Promise IDE-stuurprogramma is gebruikt. Wanneer deze kaart geïnstalleerd en het systeem opgestart is, beeldt het een prompt af waarbij om informatie wordt gevraagd. De instructies dienen opgevolgd te worden om bij het instelscherm van de kaart te komen. Van hieruit kunnen alle aangekoppelde schijven gecombineerd worden. Nadat dit gedaan is, zien de schijven er voor &os; als één enkele schijf uit. Andere RAID-niveaus kunnen overeenkomstig ingesteld worden. ATA RAID1-rijen opnieuw bouwen Met &os; is het mogelijk om een defecte schijf in een rij te vervangen terwijl de computer aanstaat (hot replace). Hiervoor dient de schijf vóór het opnieuw opstarten vervangen te zijn. Waarschijnlijk is zoiets als het volgende in /var/log/messages of in de uitvoer van &man.dmesg.8; te zien: ad6 on monster1 suffered a hard error. ad6: READ command timeout tag=0 serv=0 - resetting ad6: trying fallback to PIO mode ata3: resetting devices .. done ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\ status=59 error=40 ar0: WARNING - mirror lost Meer informatie kan met behulp van &man.atacontrol.8; gezocht worden: &prompt.root; atacontrol list ATA channel 0: Master: no device present Slave: acd0 <HL-DT-ST CD-ROM GCR-8520B/1.00> ATA/ATAPI rev 0 ATA channel 1: Master: no device present Slave: no device present ATA channel 2: Master: ad4 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present ATA channel 3: Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present &prompt.root; atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED Ontkoppel eerst het ata kanaal met de falende schijf zodat deze veilig kan worden verwijderd: &prompt.root; atacontrol detach ata3 Vervang de schijf. Koppel het ata kanaal opnieuw aan: &prompt.root; atacontrol attach ata3 Master: ad6 <MAXTOR 6L080J4/A93.0500> ATA/ATAPI rev 5 Slave: no device present Voeg de nieuwe schijf toe aan de rij als reserve: &prompt.root; atacontrol addspare ar0 ad6 De rij dient nu opnieuw opgebouwd te worden: &prompt.root; atacontrol rebuild ar0 Het is mogelijk de voortgang te volgen met het volgende commando: &prompt.root; dmesg | tail -10 [uitvoer verwijderd] ad6: removed from configuration ad6: deleted from ar0 disk1 ad6: inserted into ar0 disk1 as spare &prompt.root; atacontrol status ar0 ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed Nu moet er gewacht worden tot de bewerking voltooid is. Marc Fonvieille Bijgedragen door USB-opslagapparaten USB schijven Veel externe opslagoplossingen gebruiken tegenwoordig de Universele Seriële Bus (USB): harde schijven, USB-duimdrives, CD-R-branders, etc. &os; biedt voor al dit soort apparaten ondersteuning. Instellen Het stuurprogramma &man.umass.4; biedt de ondersteuning voor USB-opslagapparaten. Indien de kernel GENERIC wordt gebruikt, hoeft er niets aan de instellingen gewijzigd te worden. Als er een eigen kernel wordt gebruikt, dienen de volgende regels in het kernelinstellingenbestand aanwezig zijn: device scbus device da device pass device uhci device ohci device usb device umass Het stuurprogramma &man.umass.4; gebruikt het subsysteem SCSI om toegang te krijgen tot de USB-opslagapparaten. Het USB-apparaat wordt door het systeem als een SCSI-apparaat gezien. Afhankelijk van de chipset op het moederbord is slechts òf device uhci òf device ohci nodig. Het kan echter geen kwaad om ze beiden in het kernelinstellingenbestand te hebben. Indien er regels zijn toegevoegd dient de kernel opnieuw gecompileerd en geïnstalleerd te worden. Indien het USB-apparaat een CD-R- of DVD-brander is, dient het SCSI CD-ROM-stuurprogramma &man.cd.4; met de volgende regel aan de kernel toegevoegd te worden: device cd Aangezien de brander als een SCSI-schijf gezien wordt, dient het stuurprogramma &man.atapicam.4; niet in de kernelinstellingen gebruikt te worden. Ondersteuning voor controllers voor USB 2.0 is aanwezig in &os; 5.X en in de 4.X-tak sinds &os; 4.10-RELEASE. Het volgende dient toegevoegd te worden aan het kernelinstellingenbestand voor ondersteuning voor USB 2.0: device ehci De stuurprogramma's &man.uhci.4; en &man.ohci.4; zijn nog steeds nodig voor USB 1.X-ondersteuning. Op &os; 4.X dient de USB-daemon (&man.usbd.8;) te draaien om sommige USB-apparaten te kunnen zien. Om die aan te zetten dient usbd_enable="YES" aan het bestand /etc/rc.conf toegevoegd te worden en de machine opnieuw gestart te worden. Instellingen testen De instellingen zijn klaar om getest te worden: het USB-apparaat dient aangesloten te worden en in de buffer voor systeemmeldingen (&man.dmesg.8;) dient het stuurprogramma ongeveer als volgt te verschijnen: umass0: USB Solid state disk, rev 1.10/1.00, addr 2 GEOM: create disk da0 dp=0xc2d74850 da0 at umass-sim0 bus 0 target 0 lun 0 da0: <Generic Traveling Disk 1.11> Removable Direct Access SCSI-2 device da0: 1.000MB/s transfers da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C) Uiteraard kunnen het merk, de apparaatnode (da0) en andere details verschillen naar gelang de instelling. Aangezien het USB-apparaat als een SCSI-apparaat gezien wordt, kan het commando camcontrol gebruikt worden om de USB-opslagapparaten weer te geven die aan het systeem gekoppeld zijn: &prompt.root; camcontrol devlist <Generic Traveling Disk 1.11> at scbus0 target 0 lun 0 (da0,pass0) Indien er een bestandssysteem op de schijf aanwezig is, kan dat gemount worden. biedt indien nodig hulp bij het formatteren en aanmaken van partities op de USB-drive. Indien het apparaat losgekoppeld wordt (nadat de schijf gedismount is), dient in de buffer voor systeemmeldingen iets als het volgende te zien te zijn: umass0: at uhub0 port 1 (addr2) disconnected (da0:umass-sim0:0:0:0): lost device (da0:umass-sim0:0:0:0): removing device entry GEOM: destroy disk da0 dp=0xc2d74850 umass0: detached Referenties Naast de onderdelen Schijven toevoegen en Bestandssystemen mounten en unmounten, kunnen de volgende hulppagina's ook nuttig zijn: &man.umass.4;, &man.camcontrol.8; en &man.usbdevs.8;. Mike Meyer Bijgedragen door Optische media (CD's) aanmaken en gebruiken CD-ROM's aanmaken Inleiding CD's hebben een aantal eigenschappen waardoor ze verschillen van conventionele schijven. Initieel zijn ze door de gebruiker niet beschrijfbaar. Ze zijn zó ontworpen dat ze continu, zonder vertragingen van het verplaatsen van de kop tussen tracks, gelezen kunnen worden. Ze zijn ook veel gemakkelijker tussen twee systemen te verplaatsen dan gelijksoortige media in hun tijd waren. CD's hebben tracks, maar die verwijzen naar secties van gegevens die continu gelezen dienen te worden en niet naar fysieke eigenschappen van de schijf. Om een CD op &os; te produceren, dienen de gegevensbestanden waaruit de tracks op de CD gaan bestaan te worden voorbereid, waarna de tracks op de CD worden geschreven. ISO 9660 bestandssystemen ISO 9660 Het bestandssysteem ISO 9660 is ontworpen om met deze verschillen om te gaan. Helaas codeert het bestandssysteemgrenzen die destijds gebruikelijk waren. Gelukkig biedt het een uitbreidingsmechanisme dat correct geschreven CD's toestaat om deze grenzen te overschrijden en nog steeds te werken met systemen die deze uitbreidingen niet ondersteunen. sysutils/cdrtools De port sysutils/cdrtools bevat &man.mkisofs.8;, een programma dat gebruikt kan worden om een gegevensbestand aan te maken dat een ISO 9660-bestandssysteem bevat. Het bevat opties die verschillende uitbreidingen ondersteunen en wordt hieronder beschreven. CD-brander ATAPI Het gereedschap om de CD te branden hangt af van het feit of de CD-brander ATAPI of iets anders is. ATAPI CD-branders gebruiken het programma burncd dat deel uitmaakt van het basissysteem. SCSI en USB CD-branders dienen cdrecord van de port sysutils/cdrtools te gebruiken. burncd ondersteunt een beperkt aantal stations. Om erachter te komen of een station ondersteund is, dient de lijst CD-R/RW ondersteunde stations te worden geraadpleegd. CD-brander ATAPI/CAM-stuurprogramma Indien &os; 5.X of &os; 4.8-RELEASE of hoger gedraaid wordt, is het mogelijk om cdrecord en andere gereedschappen voor SCSI-drives op ATAPI-hardware te gebruiken door middel van de module ATAPI/CAM. Indien CD-brandsoftware met een grafische gebruikersinterface gewenst is, is X-CD-Roast of K3b een mogelijkheid. Deze gereedschappen zijn beschikbaar als package of vanuit de ports sysutils/xcdroast en sysutils/k3b. X-CD-Roast en K3b hebben de module ATAPI/CAM met ATAPI-hardware nodig. mkisofs Het programma &man.mkisofs.8;, dat deel uitmaakt van de port sysutils/cdrtools, maakt een ISO 9660-bestandssysteem aan dat een beeld is van een boomstructuur in de &unix; bestandssysteem-namespace. De eenvoudigste gebruiksvorm is: &prompt.root; mkisofs -o beeldbestand.iso /pad/naar/boomstructuur bestandssystemen ISO 9660 Dit commando maakt een beeldbestand.iso aan dat een ISO 9660-bestandssysteem bevat dat een kopie is van de boomstructuur in /pad/naar/boomstructuur. Tijdens het proces beeldt het bestandsnamen af op namen die aan de beperkingen van het standaard ISO 9660-bestandssysteem voldoen en sluit het bestanden uit die namen hebben die niet karakteristiek zijn voor ISO-bestandssystemen. bestandssystemen HFS bestandssystemen Joliet Er is een aantal opties beschikbaar om over deze beperkingen heen te komen. In het bijzonder zet de Rock Ridge-uitbreidingen aan die gangbaar zijn voor &unix; systemen, zet de Rock Ridge-uitbreidingen aan die gebruikt worden op Microsoft-systemen en kan gebruikt worden om HFS-bestandssystemen aan te maken die door &macos; gebruikt worden. Voor CD's die alleen op &os;-systemen gebruikt gaan worden, kan gebruikt worden om alle restricties op bestandsnamen uit te zetten. Indien het met gebruikt wordt, maakt het een bestandssysteembeeld aan dat identiek is aan de &os;-boomstructuur van waaruit begonnen is, alhoewel het mogelijk is dat het zich op aantal manieren niet aan de ISO 9660-standaard houdt. CD-ROM's opstartbaar maken De laatste optie voor algemeen gebruik is . Deze wordt gebruikt om de plaats van het opstartbeeld aan te geven om een El Torito opstartbare CD te maken. Deze optie heeft een argument nodig, namelijk het pad naar een opstartbeeld dat het begin van de boomstructuur die naar de CD geschreven wordt voorstelt. Gewoonlijk maakt &man.mkisofs.8; een ISO-beeld aan in de zogenaamde diskette-emulatie-modus en verwacht het dus dat het beeldbestand exact 1200, 1440 of 2880 KB groot is. Sommige bootloaders, zoals degene die door de distributieschijven van &os; wordt gebruikt, gebruiken de emulatiemodus niet. In dat geval dient de optie gebruikt te worden. Dus indien /tmp/myboot een opstartbaar &os;-systeem met het beeldbestand in /tmp/myboot/boot/cdboot bevat, kan het beeld van een ISO 9660-bestandssysteem als volgt in /tmp/bootable.iso aangemaakt worden: &prompt.root; mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot Als dit gedaan is en vn ( &os; 4.X) of md (&os; 5.X) in de kernel is ingesteld, kan het bestandssysteem gemount worden voor &os; 4.X met: &prompt.root; vnconfig -e vn0c /tmp/bootable.iso &prompt.root; mount -t cd9660 /dev/vn0c /mnt Voor &os; 5.X met: &prompt.root; mdconfig -a -t vnode -f /tmp/bootable.iso -u 0 &prompt.root; mount -t cd9660 /dev/md0 /mnt Nu kan gecontroleerd worden of /mnt en /tmp/myboot identiek zijn. Er zijn vele andere opties die met &man.mkisofs.8; gebruikt kunnen worden om het gedrag af te stemmen. In het bijzonder wijzigingen aan een ISO 9660-structuur en het aanmaken van Joliet- en HFS-schijven. Details staan in &man.mkisofs.8;. burncd CD-ROM's branden Indien er een ATAPI CD-brander aanwezig is, kan het commando burncd gebruikt worden om een ISO-beeld naar een CD te branden. burncd maakt deel uit van het basissysteem en is geïnstalleerd als /usr/sbin/burncd. Het gebruik is erg eenvoudig, aangezien het weinig opties heeft. &prompt.root; burncd -f cd-apparaat gegevens beeldbestand.iso fixate Het bovenstaande commando brandt een kopie van beeldbestand.iso naar cd-apparaat. Het standaardapparaat is /dev/acd0 (of /dev/acd0c op &os; 4.X). Opties om de schrijfsnelheid in te stellen, de CD na het branden uit te werpen en geluidsgegevens te schrijven staan in &man.burncd.8;. cdrecord Indien er geen ATAPI CD-brander aanwezig is, dient cdrecord gebruikt te worden om CD's te branden. cdrecord maakt geen deel uit van het basissysteem. Het dient òfwel vanuit de port in sysutils/cdrtools òfwel als package geïnstalleerd te worden. Veranderingen in het basissysteem kunnen ervoor zorgen dat binaire versies van dit programma falen, wat mogelijk tot een coaster leidt. Daarom dient òfwel de port bijgewerkt te worden als het systeem wordt bijgewerkt, òwel, als -STABLE gevolgd wordt, dient de port bijgewerkt te worden wanneer er een nieuwe versie beschikbaar komt. Hoewel cdrecord vele opties heeft, is het gebruik voor gewone situaties nog eenvoudiger dan dat van burncd. Een ISO 9660-beeld kan gebrand worden met: &prompt.root; cdrecord dev=device beeldbestand.iso Het lastige gedeelte in het gebruik van cdrecord is het vinden van de juiste . Om de juiste instelling te vinden, kan de vlag van cdrecord gebruikt worden, wat resultaten zoals de onderstaande kan geven: CD-ROM's branden &prompt.root; cdrecord -scanbus Cdrecord 1.9 (i386-unknown-freebsd4.2) Copyright (C) 1995-2000 Jörg Schilling Using libscg version 'schily-0.1' scsibus0: 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk 0,2,0 2) * 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * scsibus1: 1,0,0 100) * 1,1,0 101) * 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner 1,7,0 107) * Dit geeft de gepaste -waarden voor de apparaten in de lijst. De CD-brander dient gezocht te worden, waarna de drie getallen gescheiden door komma's gebruikt kunnen worden als de waarde voor . In dit geval is het CD-RW-apparaat 1,5,0, dus is de juiste invoer . Er zijn eenvoudigere manieren om deze waarde te specificeren. In &man.cdrecord.1; staan meer details. Hier staat ook informatie over geluidstracks, de snelheid instellen en meer. Audio-CD's dupliceren Een audio-CD kan gedupliceerd worden door de geluidsgegevens van de CD naar een serie bestanden te schrijven en deze bestanden daarna naar een lege CD te schrijven. Het proces verschilt licht tussen ATAPI- en SCSI-drives. SCSI-drives Onttrek cdda2wav de audio: &prompt.user; cdda2wav -v255 -D2,0 -B -Owav Schrijf met cdrecord de .wav-bestanden: &prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wav Controleer of 2,0 juist is opgegeven, zoals beschreven in . ATAPI-drives Het ATAPI CD-stuurprogramma maakt elke track beschikbaar als /dev/acddtnn, waarin d het stationsnummer is en nn het tracknummer is in twee decimale cijfers, dat indien nodig vooraf wordt gegaan door een nul. Dus is de eerste track op de eerste schijf /dev/acd0t01, de tweede /dev/acd0t02, de derde /dev/acd0t03, enzovoort. Controleer of de juiste bestanden in /dev bestaan. &prompt.root; cd /dev &prompt.root; sh MAKEDEV acd0t99 In &os; 5.0 maakt &man.devfs.5; automatisch ingangen in /dev aan en beheert deze, dus is het niet nodig om MAKEDEV te gebruiken. De track kan met &man.dd.1; onttrokken worden. Bij het onttrekken van de bestanden dient een specifieke blokgrootte gebruikt te worden. &prompt.root; dd if=/dev/acd0t01 of=track1.cdr bs=2352 &prompt.root;dd if=/dev/acd0t02 of=track2.cdr bs=2352 ... Brand de onttrokken bestanden met burncd. Er dient opgegeven te worden dat het geluidsbestanden zijn en dat burncd de schijf moet fixeren wanneer na afronding van het proces. &prompt.root; burncd -f /dev/acd0 audio track1.cdr track2.cdr ... fixate Gegevens-CD's dupliceren Een gegevens-CD kan gekopieerd worden naar een beeldbestand dat functioneel gelijk is aan het beeldbestand dat met &man.mkisofs.8; gemaakt is en het kan gebruikt worden om elke gegevens-CD te dupliceren. Het hier gegeven voorbeeld neemt aan dat het CD-ROM-apparaat acd0 is. Voor &os; 4.X wordt een c toegevoegd aan het einde van de apparaatnaam om de volledige partitie, of in het geval van CD-ROM's, de volledige schijf aan te duiden. &prompt.root; dd if=/dev/acd0 of=bestand.iso bs=2048 Nu het beeld beschikbaar is, kan het naar CD geschreven worden zoals hierboven beschreven. Gegevens-CD's gebruiken Nu er een standaard gegevens-CD-ROM is aangemaakt moet deze waarschijnlijk gemount worden om de gegevens die er op staan te lezen. Normaalgesproken neemt &man.mount.8; aan dat een bestandssysteem van het soort ufs is. Als zoiets als onderstaande geprobeerd wordt komt er een klacht over Incorrect super block en geen mount: &prompt.root; mount /dev/cd0 /mnt De CD-ROM bevat geen UFS-bestandssysteem, dus pogingen om zo te mounten mislukken. Er dient aan &man.mount.8; verteld te worden dat het bestandssysteem van het soort ISO9660 is en dan werkt alles. Dit kan door de optie van &man.mount.8; op te geven. Het CD-ROM-apparaat /dev/cd0 onder /mnt mounten kan zo: &prompt.root; mount -t cd9660 /dev/cd0 /mnt De apparaatnaam (in dit voorbeeld /dev/cd0) kan afwijken, afhankelijk van de interface die de CD-ROM gebruikt. Verder voert de optie gewoon &man.mount.cd9660.8; uit. Bovenstaand voorbeeld kan verkort worden tot: &prompt.root; mount_cd9660 /dev/cd0 /mnt Het is in het algemeen mogelijk om gegevens-CD-ROMs van elke fabrikant op deze manier te gebruiken. Schijven met bepaalde uitbreidingen op ISO 9660 kunnen zich echter vreemd gedragen. Joliet-schijven bijvoorbeeld, slaan alle bestandsnamen op in twee-byte Unicode-karakters. De &os;-kernel spreekt (nog!) geen Unicode, dus verschijnen niet-Engelse karakters als vraagtekens. Als &os; 4.3 of later gedraaid wordt, bevat het CD9660-stuurprogramma haken om tijdens het draaien een geschikte Unicode-omzettabel te laden. Modules voor enkele veelgebruikte coderingen zijn beschikbaar via de port sysutils/cd9660_unicode.) Zo nu en dan kan Device not configured verschijnen als geprobeerd wordt om een CD-ROM te mounten. Dit betekent meestal dat het CD-ROM-station denkt dat er geen schijf in de lade ligt of dat het station niet zichtbaar is op de bus. Omdat het enkele seconden kan duren voordat een CD-ROM-station doorheeft dat er een CD-ROM in ligt, is geduld geboden. Soms wordt een SCSI CD-ROM gemist omdat het station niet genoeg tijd had om antwoord te geven op de busreset. Indien er een SCSI CD-ROM aanwezig is, dient de volgende optie aan de kernelinstellingen toegevoegd te worden en de kernel opnieuw gebouwd te worden. options SCSI_DELAY=15000 Dit zorgt ervoor dat de SCSI-bus 15 seconden pauzeert tijdens het opstarten opdat het CD-ROM-station elke gelegenheid krijgt om de busreset te beantwoorden. Rauwe gegevens-CD's branden Een bestand kan direct naar CD geschreven worden zonder een ISO 9660-bestandssysteem aan te maken. Sommige mensen doen dit voor back-updoeleinden. Dit gaat sneller dan een standaard-CD branden: &prompt.root; burncd -f /dev/acd1 -s 12 gegevens archief.tar.gz fixate Om de gegevens terug te halen die op zo'n CD gebrand zijn, is het noodzakelijk om gegevens van de rauwe apparaatnode te lezen: &prompt.root; tar xzvf /dev/acd1 Het is niet mogelijk om deze schijf te mounten zoals dat voor een normale CD-ROM gedaan wordt. Zo'n CD-ROM kan onder geen enkel besturingssysteem, behalve &os;, gelezen worden. Om de CD te kunnen mounten of gegevens te delen met een ander besturingssysteem, dient &man.mkisofs.8; gebruikt te worden, zoals boven beschreven is. Marc Fonvieille Bijgedragen door CD-brander ATAPI/CAM-stuurprogramma Het ATAPI/CAM-stuurprogramma gebruiken Dit stuurprogramma stelt ATAPI-apparaten (CD-ROM, CD-RW, DVD-stations, enzovoort) in staat om vanuit het SCSI-subsysteem benaderd te worden en maakt daarmee het gebruik van applicaties zoals sysutils/cdrdao of &man.cdrecord.1; mogelijk. Om dit stuurprogramma te gebruiken, is het noodzakelijk om de volgende regel aan het kernelinstellingenbestand toe te voegen: device atapicam Ook zijn de volgende regels in het kernelinstellingenbestand nodig, die meestal wel aanwezig zijn: device ata device scbus device cd device pass Hierna dient de nieuwe kernel opnieuw gebouwd en geïnstalleerd te worden en dient de machine opnieuw gestart te worden. Tijdens het opstartproces dient de brander als volgt te verschijnen: acd0: CD-RW <MATSHITA CD-RW/DVD-ROM UJDA740> at ata1-master PIO4 cd0 at ata1 bus 0 target 0 lun 0 cd0: <MATSHITA CD-RW/DVD UJDA740 1.00> Removable CD-ROM SCSI-0 device cd0: 16.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed Het station is nu toegankelijk via de apparaatnaam /dev/cd0. Om bijvoorbeeld een CD-ROM op /mnt te mounten: &prompt.root; mount -t cd9660 /dev/cd0 /mnt Als root kan het volgende commando gegeven worden om het SCSI-adres van de brander te verkrijgen: &prompt.root; camcontrol devlist <MATSHITA CD-RW/DVD UJDA740 1.00> at scbus1 target 0 lun 0 (pass0,cd0) Dus 1,0,0 is het SCSI-adres dat met &man.cdrecord.1; en andere SCSI-toepassingen gebruikt dient te worden. Meer informatie over het ATAPI/CAM en het SCSI-systeem staat in de hulppagina's van &man.atapicam.4; en &man.cam.4;. Marc Fonvieille Bijgedragen door Andy Polyakov Met toevoegingen van Optische media (DVD's) aanmaken en gebruiken DVD branden Inleiding Vergeleken met de CD behoort de DVD de tot de volgende generatie van optische media-opslagtechnologie. De DVD kan meer gegevens bevatten dan enige CD en is tegenwoordig de standaard voor videopublicatie. Er kunnen vijf fysieke opneembare formaten gedefinieerd worden die opneembare DVD heten: DVD-R: dit was het eerst beschikbare opneembare DVD-formaat. De DVD-R-standaard is gedefinieerd door het DVD Forum. Dit formaat is voor eenmalig schrijven. DVD-RW: dit is de herschrijfbare versie van de DVD-R-standaard. Een DVD-RW kan tot ongeveer 1.000 maal herschreven worden. DVD-RAM: dit is ook een herschrijfbaar formaat dat door het DVD Forum ondersteund wordt. Een DVD-RAM kan gezien worden als een verwisselbare harde schijf. Dit medium is echter niet uitwisselbaar met de meeste DVD-ROM-stations en DVD-Video-spelers. Slechts enkele DVD-schrijvers ondersteunen het DVD-RAM-formaat. DVD+RW: dit is het herschrijfbare formaat dat is gedefinieerd door de DVD+RW Alliance. Een DVD+RW kan tot ongeveer 1.000 maal herschreven worden. DVD+R: dit formaat is de eenmalig beschrijfbare versie van het DVD+RW-formaat. Een enkellaags opneembare DVD kan maximaal 4.700.000.000 bytes bevatten, wat eigenlijk 4,38 GB of 4.485 MB is (1 kB is 1024 bytes). Er dient onderscheid gemaakt te worden tussen het fysieke medium en de toepassing. Een DVD-Video bijvoorbeeld is een specifiek bestandsschema dat op elk fysiek opneembaar DVD-medium geschreven kan worden: DVD-R, DVD+R, DVD-RW, enzovoort. Voordat het mediumtype gekozen wordt, dient het zeker te zijn dat zowel de brander als de DVD-Video-speler (een onafhankelijke speler of een DVD-ROM-station in een computer) overweg kunnen met het overwogen medium. Instellingen Het programma &man.growisofs.1; wordt gebruikt om DVD's op te nemen. Dit commando is deel van de dvd+rw-tools gereedschappen (sysutils/dvd+rw-tools). dvd+rw-tools ondersteunt alle types DVD-media. Deze gereedschappen gebruiken het SCSI-subsysteem om toegang tot de apparaten te krijgen, daarvoor moet ondersteuning voor ATAPI/CAM aan de kernel toegevoegd worden. Indien de brander de USB-interface gebruikt, is deze toevoeging nutteloos en dient gelezen te worden voor meer details over het instellen van USB-apparaten. De DMA-toegang voor ATAPI-apparaten dient ook aangezet te worden door de volgende regel aan het bestand /boot/loader.conf toe te voegen: hw.ata.atapi_dma="1" Voordat de dvd+rw-tools gebruikt kunnen worden, dienen de dvd+rw-tools' hardware compatibility notes geraadpleegd te worden voor enige informatie die betrekking heeft op de DVD-brander. Indien een grafische gebruikersinterface gewenst is, is K3b (sysutils/k3b), die een gebruikersvriendelijke interface biedt voor &man.growisofs.1; en vele andere brandprogramma's, het bekijken waard. Gegevens-DVD's branden Het commando &man.growisofs.1; is een frontend voor mkisofs. Het roept &man.mkisofs.8; aan om het bestandssysteemoverzicht aan te maken en het schrijft naar de DVD. Hierdoor is het niet nodig om een beeld van de gegevens aan te maken voordat met branden begonnen wordt. Om de gegevens uit de map /pad/naar/gegevens op een DVD+R of een DVD-R te branden: &prompt.root; growisofs -dvd-compat -Z /dev/cd0 -J -R /pad/naar/gegevens De opties worden doorgegeven aan &man.mkisofs.8; voor het aanmaken van het bestandssysteem (in dit geval een ISO 9660-bestandssysteem met Joliet en Rock Ridge uitbreidingen). Meer details staan in de hulppagina &man.mkisofs.8;. De optie wordt gebruikt voor het opnemen van de eerste sessie, ook bij meerdere sessies. Het DVD-apparaat, /dev/cd0, dient aan de hand van de instellingen aangepast te worden. De parameter sluit de schijf zodat er niets aan de opname toegevoegd kan worden. Dit zou als tegenprestatie betere uitwisselbaarheid met DVD-ROM-stations moeten geven. Het is ook mogelijk om een vooraf gemastered beeld te branden, om bijvoorbeeld het beeld beeldbestand.iso te branden: &prompt.root; growisofs -dvd-compat -Z /dev/cd0=beeldbestand.iso De schrijfsnelheid moet automatisch gedetecteerd en ingesteld worden, afhankelijk van het medium en het gebruikte station. Om de schrijfsnelheid te forceren, dient de parameter gebruikt te worden. Meer informatie staat in de hulppagina &man.growisofs.1;. DVD DVD-Video DVD-Video branden Een DVD-Video is een specifiek bestandsschema dat gebaseerd is op de ISO 9660 en de micro-UDF (M-UDF) specificaties. DVD-Video heeft ook een specifieke hiërarchie voor de gegevensstructuur, de reden waarom een speciaal programma zoals multimedia/dvdauthor nodig is om de DVD te schrijven. Indien er reeds een beeld van het bestandssysteem van de DVD-Video beschikbaar is, kan het zoals elk ander beeld gebrand worden. In de vorige sectie staat een voorbeeld. Als het resultaat voor de inhoud voor de DVD bijvoorbeeld in de map /pad/naar/video staat, kan de DVD-Video als volgt gebrand worden: &prompt.root; growisofs -Z /dev/cd0 -dvd-video /pad/naar/video De optie wordt doorgegeven aan &man.mkisofs.8; en geeft het opdracht om een bestandssysteemschema voor een DVD-Video aan te maken. Verder impliceert de optie de optie van &man.growisofs.1;. DVD DVD+RW DVD+RW gebruiken In tegenstelling tot een CD-RW dient een nieuwe DVD+RW voor het eerste gebruik geformatteerd te worden. Het programma &man.growisofs.1; regelt dit automatisch als nodig. Dit is de aanbevolen manier. Het is ook mogelijk om dvd+rw-format te gebruiken om een DVD+RW te formatteren: &prompt.root; dvd+rw-format /dev/cd0 Deze operatie hoeft slechts één maal uitgevoerd te worden. Onthoud dat alleen nieuwe DVD+RW-media geformatteerd dienen te worden. Daarna is het mogelijk om de DVD+RW op dezelfde manier te branden zoals in bovenstaande secties staat vermeldt. Om nieuwe gegevens op een DVD+RW te branden (een geheel nieuw bestandssysteem branden, niet wat gegevens toevoegen), is het niet nodig om deze te wissen. Het is voldoende om de vorige opname te overschrijven (tijdens het aanmaken van een initiële sessie), zoals hieronder: &prompt.root; growisofs -Z /dev/cd0 -J -R /pad/naar/nieuwe gegevens Het DVD+RW-formaat biedt de mogelijkheid om eenvoudig nieuwe gegevens aan een vorige opname toe te voegen. De operatie bestaat uit het samenvoegen van een nieuwe sessie en de bestaande. Het is geen multisessie-schrijven. &man.growisofs.1; laat het ISO 9660-bestandssysteem dat aanwezig is op het medium groeien. Om gegevens aan de vorige DVD+RW toe te voegen: &prompt.root; growisofs -M /dev/cd0 -J -R /pad/naar/volgende gegevens Dezelfde opties van &man.mkisofs.8; die gebruikt werden om de initiële sessie te branden, dienen gebruikt te worden tijdens schrijfsessies. De optie kan gebruikt worden als betere uitwisselbaarheid met DVD-ROM-stations gewenst is. In het geval van een DVD+RW verhindert dit het toevoegen van gegevens niet. Om het medium te wissen: &prompt.root; growisofs -Z /dev/cd0=/dev/zero DVD DVD-RW DVD-RW gebruiken Een DVD-RW accepteert twee schijfformaten: de incrementele sequentiële en beperkt overschrijven. Standaard zijn DVD-RW-schijven in het sequentiële formaat. Een nieuwe DVD-RW kan direct beschreven worden zonder deze te formatteren. Een gebruikte DVD-RW in sequentieel formaat dient echter gewist te worden voordat het mogelijk is om een nieuwe initiële sessie te schrijven. Om een DVD-RW in sequentiële toestand te wissen, dient het volgende gedaan te worden: &prompt.root; dvd+rw-format -blank=full /dev/cd0 Volledig wissen () neemt ongeveer één uur in beslag op een 1x-medium. Het is mogelijk om snel te wissen door gebruik te maken van de optie als de DVD-RW in Disk-At-Once-modus (DAO) wordt opgenomen. Om de DVD-RW in DAO-modus te branden: &prompt.root; growisofs -use-the-force-luke=dao -Z /dev/cd0=beeldbestand.iso De optie is niet nodig aangezien &man.growisofs.1; probeert om minimale (snel gewiste) media te detecteren en gebruik te maken van DAO-schrijven. Eigenlijk moet beperkt overschrijven gebruikt worden met elke DVD-RW. Dit formaat is flexibeler dan het standaard incrementeel sequentiële. Om gegevens op een sequentiële DVD-RW te schrijven, worden dezelfde instructies gebruikt als voor de andere DVD-formaten: &prompt.root; growisofs -Z /dev/cd0 -J -R /pad/naar/gegevens Om wat gegevens aan de vorige opname toe te voegen, dient de optie van &man.growisofs.1; gebruikt te worden. Als echter gegevens aan een DVD-RW in incrementeel sequentiële modus worden toegevoegd, wordt een nieuwe sessie op de schijf aangemaakt wat resulteert in een multisessie schijf. Een DVD-RW in het beperkt overschrijven formaat hoeft niet gewist te worden vóór een nieuwe initiële sessie. Het is voldoende om de schijf te overschrijven met de optie , wat analoog is aan het geval van de DVD+RW. Het is ook mogelijk om een bestaand ISO 9660-bestandssysteem te laten groeien op soortgelijke wijze als voor een DVD+RW met de optie . Het resultaat is een enkelsessie DVD. Om een DVD-RW in het beperkt overschrijven-formaat te zetten: &prompt.root; dvd+rw-format /dev/cd0 Om terug te gaan naar het sequentiële formaat: &prompt.root; dvd+rw-format -blank=full /dev/cd0 Multisessie Multisessie DVD's worden door zeer weinig DVD-ROM-stations geaccepteerd en meestal lezen ze hopelijk tenminste de eerste sessie. DVD+R, DVD-R en DVD-RW kunnen in het sequentiële formaat meerdere sessies accepteren. Het idee van meerdere sessies bestaat niet voor de formaten DVD+RW en DVD-RW in beperkt overschrijven. Om een nieuwe sessie achter een initiële (niet-gesloten) sessie op een DVD+R, DVD-R of DVD-RW in sequentieel formaat toe te voegen: &prompt.root; growisofs -M /dev/cd0 -J -R /pad/naar/volgende gegevens Het gebruik van dit commando met een DVD+RW of een DVD-RW in beperkt overschrijven-formaat voegt gegevens toe door de nieuwe sessie samen te voegen met de bestaande. Dit leidt tot een enkelsessie schijf. Deze manier kan gebruikt worden om gegevens achter een initiële sessie aan deze media toe te voegen. Op deze media wordt wat ruimte gebruikt tussen elke sessie om het einde en begin van de sessies aan te geven. Daarom dienen sessies met grote hoeveelheden gegevens toegevoegd te worden om de mediaruimte te optimaliseren. Het aantal sessies is beperkt tot 154 voor een DVD+R, ongeveer 2000 voor een DVD-R en 127 voor een dubbellaags DVD+R. Meer informatie Om meer informatie over een DVD te verkrijgen kan het commando dvd+rw-mediainfo /dev/cd0 met de schijf in het station gebruikt worden. Meer informatie over dvd+rw-tools staat in de hulppagina &man.growisofs.1;, op de dvd+rw-tools website en in de archieven van de cdwrite mailing list. De uitvoer van dvd+rw-mediainfo met betrekking tot de resulterende opname of het medium met problemen is verplicht voor elk probleemrapport. Zonder deze uitvoer volgt geen hulp. Julio Merino Origineel werk door Martin Karlsson Herschreven door Diskettes aanmaken en gebruiken Soms is het opslaan van gegevens op een diskette nuttig, bijvoorbeeld als er geen andere verwijderbare opslagmedia beschikbaar zijn of als kleine hoeveelheden gegevens naar een andere computer moeten worden overgedragen. In deze sectie wordt beschreven hoe diskettes in &os; gebruikt dienen te worden. Hier worden hoofdzakelijk het formatteren en gebruik van 3,5 inch DOS-diskettes behandeld, maar de concepten zijn vergelijkbaar voor andere disketteformaten. Diskettes formatteren Het apparaat Diskettes worden benaderd door ingangen in /dev, net zoals andere apparaten. Om de rauwe diskette in 4.X en eerdere versies te benaderen, dient /dev/fdN, waar N voor het stationsnummer staat, gewoonlijk 0, of /dev/fdNX, waar X voor een letter staat, gebruikt te worden. In 5.0 en nieuwere versies dient simpelweg /dev/fdN gebruikt te worden. Schijfgrootte in 4.X en eerdere versies Er zijn ook apparaten /dev/fdN.grootte waar grootte een diskettegrootte in kB is. Deze ingangen worden tijdens het formatteren op laag niveau gebruikt om de schijfgrootte te bepalen. In de volgende voorbeelden wordt 1440 kB als grootte gebruikt. Soms is het nodig om de ingangen in /dev (opnieuw) aan te maken: &prompt.root; cd /dev && ./MAKEDEV "fd*" Schijfgrootte in 5.0 en latere versies In 5.0 beheert &man.devfs.5; automatisch de apparaatnodes in /dev, dus is het niet nodig om MAKEDEV te gebruiken. De gewenste schijfgrootte wordt met de vlag doorgegeven aan &man.fdformat.1;. De ondersteunde groottes staan vermeld in &man.fdcontrol.8;, maar 1440kB werkt het beste. Formatteren Een diskette dient op laag niveau geformatteerd te worden voordat deze kan worden gebruikt. Dit wordt meestal door de fabrikant gedaan, maar formatteren is een goede manier om de integriteit van het medium te controleren. Hoewel het mogelijk is om grotere (of kleinere) schijfgroottes te forceren, zijn de meeste diskettes ontworpen voor 1440kB. Een diskette kan op laag niveau geformatteerd worden met &man.fdformat.1;. Dit gereedschap verwacht de apparaatnaam als parameter. Op basis van eventuele foutmeldingen kan bepaald worden of een schijf goed of slecht is. Formatteren in 4.X en eerdere versies Voor het formatteren van een diskette dienen de apparaten /dev/fdN.grootte gebruikt te worden. Nadat een 3,5 inch diskette in het station is gestoken: &prompt.root; /usr/sbin/fdformat /dev/fd0.1440 Formatteren in 5.0 en latere versies Voor het formatteren van de diskette dienen de apparaten /dev/fdN gebruikt te worden. Nadat een 3,5 inch diskette in het station is gestoken: &prompt.root; /usr/sbin/fdformat -f 1440 /dev/fd0 Schijflabels Nadat de diskette op laag niveau is geformatteerd, dient er schijflabel aan gekoppeld te worden. Dit schijflabel wordt later vernietigd, maar het systeem heeft het nodig om later de grootte en de geometrie van de schijf te bepalen. Het nieuwe schijflabel neemt de gehele schijf over en bevat alle benodigde informatie over de geometrie van de diskette. De geometriewaarden van het schijflabel staan vermeld in /etc/disktab. Nu kan &man.disklabel.8; als volgt gedraaid worden: &prompt.root; /sbin/disklabel -B -r -w /dev/fd0 fd1440 Sinds &os; 5.1-RELEASE is het oude programma &man.disklabel.8; vervangen door &man.bsdlabel.8;. In &man.bsdlabel.8; zijn een aantal overbodige opties en parameters verwijderd. In de bovenstaande voorbeelden dient de optie met &man.bsdlabel.8; weggelaten te worden. Meer informatie staat in de hulppagina van &man.bsdlabel.8;. Bestandssystemen Nu is de diskette klaar om op hoog niveau geformatteerd te worden. Hiermee wordt een nieuw bestandssysteem opgezet, wat &os; in staat stelt om naar de schijf te lezen en te schrijven. Nadat het nieuwe bestandssysteem is aangemaakt, wordt het schijflabel vernietigd, dus om de schijf te herformatteren is het noodzakelijk om het schijflabel opnieuw aan te maken. Het bestandssysteem voor diskettes kan zowel UFS als FAT zijn. FAT is over het algemeen een betere keuze voor diskettes. Om een nieuw bestandssysteem op de diskettes te zetten: &prompt.root; /sbin/newfs_msdos /dev/fd0 De schijf is nu klaar voor gebruik. Diskettes gebruiken Om de diskette te gebruiken kan &man.mount.msdos.8; (in 4.X en eerdere versies) of &man.mount.msdosfs.8; (in 5.0 en nieuwere versies) gebruikt worden om het medium te mounten. Ook kan emulators/mtools uit de Portscollectie worden gebruikt. Gegevensbanden aanmaken en gebruiken bandmedia De belangrijkste bandmedia zijn de 4mm, 8mm, QIC, mini-cartridge en DLT. 4mm (DDS: Digital Data Storage) bandmedia DDS (4mm) banden bandmedia QIC banden 4mm-banden vervangen steeds vaker QIC-banden als back-upmedium voor werkstations. Deze trend werd versneld toen Connor Archive, een toonaangevende fabrikant van QIC-stations, overnam en daarna de productie van QIC-stations stopte. 4mm-stations zijn klein en stil maar genieten niet de betrouwbaarheidsreputatie van 8mm-stations. De cartridges zijn minder duur en kleiner (3 x 2 x 0,5 inch, 76 x 51 x 12 mm) dan 8mm-cartridges. Net zoals bij 8mm hebben de koppen bij 4mm een vergelijkbaar kort leven, omdat beiden gebruik maken van een helische scan. De gegevensdoorvoer op deze stations begint bij ongeveer 150 kB/s, met pieken van 500 kB/s. De opslagcapaciteit begint bij 1,3 GB en eindigt bij 2,0 GB. Hardwarecompressie, die voor de meeste stations beschikbaar is, zorgt voor ongeveer een verdubbeling van de capaciteit. Bibliotheekeenheden van multi-station bandbiliotheken kunnen 6 stations in een enkel kabinet bevatten met automatische wisseling van de banden. De capaciteit van een bibliotheek loopt op tot 240 GB. Door de DDS-3-standaard worden bandcapaciteiten van 12 GB (of 24 GB met compressie) ondersteund. Net als 8mm-drives gebruiken 4mm-drives helische scan. Alle voor- en nadelen van helische scan gelden voor zowel 4mm- als 8mm-stations. Banden dienen na 2.000 maal of 100 volledige back-ups afgedankt te worden. 8mm (Exabyte) bandmedia Exabyte (8mm) banden 8mm-banden zijn de meest gebruikte SCSI-banden. Ze vormen de beste keuze met betrekking tot het uitwisselen van banden. Bijna elk bedrijf heeft een Exabyte 2 GB 8mm-bandstation. 8mm-stations zijn betrouwbaar, gemakkelijk en stil. Cartridges zijn niet duur en klein (4,8 x 3,3 x 0,6 inch; 122 x 84 x 15 mm). Een nadeel van 8mm-banden is de relatief korte levensduur van de kop en band vanwege de hoge mate van relatieve beweging tussen de band en de koppen. De gegevensdoorvoer varieert van ~250 kB/s tot ~500 kB/s. De gegevensomvang begint bij 300 MB en kan oplopen tot 7 GB. Hardwarecompressie, waarmee de meeste stations van deze soort zijn uitgerust, zorgt voor ongeveer een verdubbeling van de capaciteit. Deze stations zijn los of als multi-station bandbiliotheken met 6 stations en 120 banden in een enkele kast beschikbaar. In het laatste geval worden banden automatisch per stuk verwisseld. De capaciteit van een bibliotheek kan oplopen tot meer dan 840 GB. Het model Mammoth van Exabyte ondersteunt een een capaciteit van 12 GB (24 GB met compressie) per band en kost ongeveer twee maal zoveel als een gewoon bandstation. Gegevens worden door middel van helische scan op de band gezet en de koppen zijn onder een hoek (ongeveer 6 graden) op het medium gepositioneerd. De band wordt 270 graden om de spoel gewikkeld die de koppen vasthoudt. Dit resulteert in een hoge gegevensdichtheid en dicht bij elkaar staande sporen die een hoek van de ene naar de andere kant van de band maken. QIC bandmedia QIC-150 De banden en stations voor de QIC-150 zijn misschien de meest voorkomende bandstations en bandmedia. QIC-bandstations zijn de minst dure serieuze back-upstations. Het nadeel is de prijs van de media. QIC-banden zijn duur in vergelijking met 8mm- of 4mm-banden. De prijs per GB opslagruimte kan tot 5 maal zo hoog zijn. Indien een half dozijn banden toereikend is, zijn QIC-banden waarschijnlijk de juiste keuze. QIC is het meest voorkomende bandstation. Elk bedrijf heeft QIC-stations met een bepaalde capaciteit. QIC heeft namelijk een groot aantal capaciteiten per type band, die fysiek vergelijkbaar (soms identiek) zijn. QIC-banden zijn niet stil. Deze stations maken een hoorbaar geluid tijdens het zoeken voordat ze beginnen met het opnemen van gegevens en zijn duidelijk hoorbaar tijdens het lezen, schrijven en zoeken. QIC-banden zijn 6 x 4 x 0,7 inch of 152 x 102 x 17 mm groot. De gegevensdoorvoer varieert van ~150 kB/s tot ~500 kB/s. Hardwarecompressie is mogelijk met veel van de nieuwere bandstations. QIC-stations worden steeds minder vaak geïnstalleerd. Ze worden vervangen door DAT-stations. Gegevens worden in sporen op de band gezet. De sporen lopen parallel aan de lange as van het bandmedium van het ene naar het andere einde. Het aantal sporen, en daarmee de breedte van een spoor, varieert met de capaciteit van de band. De meeste, zo niet alle, nieuwe stations bieden achterwaartse leescompatibiliteit (en vaak ook achterwaartse schrijfcompabiliteit). QIC heeft een goede reputatie op het gebied van gegevensveiligheid (de mechanismen zijn eenvoudiger en robuuster dan die van helische scan-stations). Banden dienen na 5.000 back-ups afgedankt te worden. DLT bandmedia DLT DLT-banden hebben de snelste gegevensdoorvoer van alle hiergenoemde bandstations. De band van 1/2 inch (12,5 mm) zit in een cartridge (4 x 4 x 1 inch; 100 x 100 x 25 mm) op één enkele haspel. De cartridge heeft een opklapbare opening aan één gehele kant van de cartridge. Het mechanisme van het station opent deze opening om de bandleider eruit te halen. De bandleider heeft een ovaal gat dat door het station gebruikt wordt om de band vast te zetten. De haspel die de band aanpakt is in het bandstation gesitueerd. Bij alle andere bandcartridges die hier genoemd zijn (9-sporige banden zijn de enige uitzondering) zitten zowel de haspel die de band levert als de haspel die de band aanpakt in de bandcartridge zelf. De gegevensdoorvoer bedraagt ongeveer 1.5 MB/s, drie maal de doorvoer van 4mm-, 8mm-, en QIC-bandstations. De gegevenscapaciteit varieert van 10 GB tot 20 GB per stations. Stations zijn als meerdere-bandwisselaars en als bibliotheken van meerdere banden en meerdere stations beschikbaar, die 5 tot 900 banden bevatten verspreid over 1 tot 20 stations, waardoor een opslagcapaciteit van 50 GB tot 9 TB geleverd wordt. Met compressie levert het formaat DLT Type IV tot 70 GB aan capaciteit. Gegevens worden in sporen die parallel aan de looprichting lopen op de band gezet (net als met QIC-banden). Er worden twee sporen per keer geschreven. De levensduur van de lees- en schrijfkoppen is relatief lang. Als de band eenmaal stilstaat, is er geen relatieve beweging tussen de koppen en de band. AIT bandmedia AIT AIT is een nieuw formaat van Sony dat (met compressie) tot 50 GB gegevens per band kan bevatten. De band bevat geheugenchips die een index van de inhoud van de band bevatten. Deze index kan snel door het bandstation gelezen worden voor het bepalen van de positie van bestanden op de band, in plaats van de enkele minuten die nodig zijn voor andere banden. Software als SAMS:Alexandria kan meer dan veertig AIT-bandbibliotheken beheren, waarbij het direct met de geheugenchip van de band communiceert om de inhoud op het scherm te tonen, om te bepalen welke bestanden naar welke band zijn geback-upped en om de correcte band te vinden, laden en de gegevens ervan terug te zetten. Dit soort bibliotheken kosten rond de $ 20.000, waardoor ze enigszins boven het budget van de hobbyist liggen. Eerste gebruik van een nieuwe band Als de eerste keer van een nieuwe, geheel lege band wordt gelezen of ernaar wordt geschreven, mislukt dit. Het bericht op de console zier er analoog aan het volgende uit: sa0(ncr1:4:0): NOT READY asc:4,1 sa0(ncr1:4:0): Logical unit is in process of becoming ready De band bevat geen Identifier Block (bloknummer 0). Alle QIC-bandstations sinds de adoptie van de standaard QIC-525 schrijven een Identifier Block naar de band. Er zijn twee oplossingen: mt fsf 1 zorgt ervoor dat het bandstation een Identifier Block naar de band schrijft. De knop aan de voorkant van het paneel dient gebruikt te worden om de band uit te werpen. De band dient opnieuw in het station gestoken te worden en met dump worden gegevens naar de band gedumpt. dump geeft DUMP: End of tape detected en de console laat het volgende zien:HARDWARE FAILURE info:280 asc:80,96. De band kan met mt rewind teruggespoeld te worden. Hierna zijn alle bandbewerkingen succesvol. Naar diskettes back-uppen Kunnen diskettes gebruikt worden om gegevens te back-uppen? back-updiskettes diskettes Diskettes zijn niet bepaald een geschikt medium om back-ups mee te maken, omdat: Het medium onbetrouwbaar is, in het bijzonder op de langere termijn; Het back-uppen en terugzetten erg traag is; Diskettes een zeer beperkte capaciteit hebben. De tijden dat een hele harde schijf naar een tiental diskettes kon worden geback-upped zijn allang verstreken. Maar als er geen andere manier beschikbaar is om de gegevens te back-uppen, is een back-up naar diskettes beter dan helemaal geen back-up. Gebruikte diskettes moet van goede kwaliteit zijn. Diskettes die al jaren op kantoor rondgeslingerd hebben, zijn een slechte keuze. In het ideale geval dienen nieuwe diskettes van een reputabele fabrikant gebruikt te worden. Hoe de gegevens naar diskettes back-uppen? Het beste kan naar diskettes worden geback-upped door gebruik te maken van &man.tar.1; met de optie (meerdere volumes), die back-ups over meerdere diskettes ondersteunt. Om alle bestanden in de huidige map en de submappen te back-uppen (als root): &prompt.root; tar Mcvf /dev/fd0 * Als de eerste diskette vol is, vraagt &man.tar.1; om het volgende volume. Omdat &man.tar.1; media-onafhankelijk is, refereert het aan volumes, in deze context diskettes. Prepare volume #2 for /dev/fd0 and hit return: Dit wordt herhaald (met oplopend volumenummer) totdat alle gespecificeerde bestanden zijn geback-upped. Kunnen back-ups gecomprimeerd worden? tar gzip compressie Helaas staat &man.tar.1; het gebruik van de optie niet toe voor archieven over meerdere volumes. Het is uiteraard mogelijk om alle bestanden met &man.gzip.1; te comprimeren, ze met &man.tar.1; op diskettes te zetten en ze daarna met &man.gunzip.1; weer te decomprimeren! Hoe worden de back-ups teruggezet? Om een volledige archief terug te zetten: &prompt.root; tar Mxvf /dev/fd0 Er zijn twee manieren om alleen specifieke bestanden terug te zetten. Ten eerste kan met de eerste diskette begonnen worden: &prompt.root; tar Mxvf /dev/fd0 bestandsnaam Het programma &man.tar.1; vraagt om de vervolgdiskettes totdat het benodigde bestand is gevonden. Als alternatief kan, als bekend is op welke diskette het bestand staat, de betreffende diskette worden ingestoken en bovenstaand commando gebruikt worden. Als het eerste bestand op de diskette een vervolg is van de vorige diskette, waarschuwt &man.tar.1; dat het bestand niet teruggezet kan worden, zelfs als hier niet om gevraagd is! Lowell Gilbert Oorspronkelijk werk van Back-up strategieën Het eerste wat nodig is voor het ontwepken van een back-upplan, is er voor te zorgen dat de volgende mogelijke problemen worden ondervangen: Schijffalen Per ongeluk verwijderde bestanden Willekeurige bestandscorruptie Complete machinevernietiging (door bijvoorbeeld brand), inclusief de vernietiging van lokaal beschikbare back-ups. Het is goed mogelijk dat een aantal systemen het best geholpen zijn door voor al deze problemen een andere techniek te gebruiken. Behalve voor volledig persoonlijke systemen met niet echt belangrijke gegevens, is het zelfs onwaarschijnlijk dat één techniek alle mogelijke problemen kan afvangen. Een aantal technieken in de gereedschapskist zijn: Archiveren van een heel systeem op een back-up die niet lokaal wordt bewaard. Dit biedt bescherming tegen alle hierboven beschreven problemen, maar het is langzaam en onhandig om er een restore van te maken. Het is mogelijk om lokaal een kopie aan te houden en/of online, maar dan zijn er nog steeds onhandigheden, in het bijzonder voor restores voor gebruikers met beperkte rechten. Snapshots van bestandssystemen. Dit werkt eigenlijk alleen in het geval bestanden per ongelijk verwijderd worden, maar het kan in dat geval erg handig zijn en het werkt snel en eenvoudig. Een kopie maken van hele bestandssystemen en/of schijven (bijvoorbeeld een periodieke rsync van een hele machine). Dit is in het algemeen het meest bruikbaar in netwerken met specifieke eisen. Voor algemene bescherming tegen het falen van een schijf, is het meestal minder geschikt dan RAID. Voor het herstellen van per ongeluk verwijderde bestanden is het vergelijkbaar aan UFS snapshots, maar dat hangt af van persoonlijke voorkeuren. RAID. Minimaliseert of voorkomt downtijd als een schijf faalt. Dit ten koste van het vaker hebben van schijven die falen (omdat er meer van zijn), maar wel met een veel lagere urgentie. Controleren van fingerprints van bestanden. Het hulpprogramma &man.mtree.8; kan hier bij helpen. Hoewel dit geen back-uptechniek is, zorgt het er wel voor dat kan worden opgemerkt wanneer back-ups geraadpleegd moeten worden. Dit is in het bijzonder belangrijk voor offline back-ups en de fingerprints horen periodiek gecontroleerd te worden. Het is makkelijk om met nog meer technieken op de proppen te komen, waaronder veel variaties op de bovengenoemde. Bijzondere eisen leiden vaak tot bijzondere oplossingen. Het back-uppen van een draaiende database vereist bijvoorbeeld een methode die toegespitst is op de gebruikte database software als tussenstap. Het is van groot belang om te onderkennen tegen welke gevaren er bescherming dient te zijn en hoe daarmee om te gaan. Back-upbeginselen De drie grote back-upprogramma's zijn &man.dump.8;, &man.tar.1; en &man.cpio.1;. Dump en Restore back-upsoftware dump / restore dump restore De traditionele back-upprogramma's voor &unix; zijn dump en restore. Deze zien het station als een verzameling van schijfblokken, onder de abstracties van bestanden, koppelingen en mappen die door de bestandssystemen worden aangemaakt. dump verzorgt een back-up van een compleet bestandssysteem op een apparaat. Het is niet in staat om slechts een gedeelte van een bestandssysteem of een mapstructuur die meer dan één bestandssysteem in beslag neemt te back-uppen. dump schrijft geen bestanden en mappen naar band, maar de rauwe gegevensblokken waaruit de bestanden en mappen bestaan. Indien dump op een hoofdmap wordt gebruikt, wordt er geen back-up gemaakt van /home , /usr of van de vele andere mappen, aangezien dit typisch mountpunten voor andere bestandssystemen of symbolische koppelingen binnen deze bestandssystemen zijn. dump bevat eigenaardigheden die uit de begintijd in Versie 6 van AT&T &unix; (circa 1975) zijn overgebleven. De standaardparameters zijn geschikt voor banden met 9 sporen (6.250 bpi), niet voor de media met hoge dichtheid die vandaag beschikbaar zijn (tot 62.182 ftpi). Deze standaardwaarden dienen op de opdrachtregel overschreven te worden om de capaciteit van de huidige bandstations te benutten. .rhosts Het is ook mogelijk om gegevens met rdump en rrestore over een netwerk naar een bandstation dat aan een andere computer gekoppeld is te back-uppen. Beide programma's maken gebruik van &man.rcmd.3; en &man.ruserok.3; om toegang tot het bandstation op afstand te krijgen. De gebruiker die de back-up uitvoert moet vermeld staat in het bestand .rhosts op de computer op afstand. De argumenten die aan rdump en rrestore gegeven worden dienen geschikt te zijn voor gebruik op de computer op afstand. Als rdump gebruikt wordt om een dump te maken van een &os; computer naar een Exabyte-bandstation dat met een Sun-computer genaamd komodo verbonden is: &prompt.root; /sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1 Let op: er kleven veiligheidsbezwaren aan het toestaan van authenticatie met .rhosts. De situatie dient goed geëvalueerd te worden. Het is ook mogelijk om dump en restore op een veiligere manier via ssh te gebruiken. Het gebruik van <command>dump</command> via <application>ssh</application> &prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \ doelgebruiker@doelmachine.voorbeeld.com dd of=/mijngrotebestanden/dump-usr-10.gz Ook kan de ingebouwde manier van dump gebruikt worden, door de omgevingsvariabele RSH in te stellen: Het gebruik van <command>dump</command> via <application>ssh</application> met ingestelde <envar>RSH</envar> &prompt.root; RSH=/usr/bin/ssh /sbin/dump -0uan -f doelgebruiker@doelmachine.voorbeeld.com:/dev/sa0 /usr <command>tar</command> back-upsoftware tar &man.tar.1; stamt ook uit de tijd van Versie 6 van AT&T &unix; (circa 1975). Het werkt samen met het bestandssysteem. tar schrijft bestanden en mappen naar band en ondersteunt niet het volledige scala aan opties dat beschikbaar is met &man.cpio.1;, maar tar heeft niet de ongebruikelijke opdrachtpijplijn nodig die cpio gebruikt. tar Op &os; 5.3 en later zijn zowel GNU tar als de standaard bsdtar beschikbaar. De GNU-versie kan aangeroepen worden met gtar. Het ondersteunt apparaten op afstand waarbij gebruik wordt gemaakt van dezelfde syntaxis als die van rdump. Om tar toe te passen op een Exabyte-bandstation die met een Sun genaamd komodo verbonden is: &prompt.root; /usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1 Hetzelfde kan bereikt worden met bsdtar door gebruik te maken van een pijplijn en rsh om gegevens naar een bandstation op afstand te zenden: &prompt.root; tar cf - . | rsh hostnaam dd of=bandapparaat obs=20b Indien de veiligheid van back-uppen over een netwerk een punt is, dient gebruik te worden gemaakt van het commando ssh en niet van rsh. <command>cpio</command> back-upsoftware cpio &man.cpio.1; is het originele &unix; bandprogramma voor magnetische media om bestanden uit te wisselen. cpio heeft opties (naast vele anderen) om byte-swapping uit te voeren, een aantal verschillende archiefformaten te schrijven en de gegevens over een pijplijn naar andere programma's te voeren. Deze laatste optie maakt cpio een uitstekende keuze voor installatiemedia. cpio weet niet hoe het door een mapstructuur moet lopen. Er dient een lijst met bestanden door stdin aangeleverd te worden. cpio cpio biedt geen ondersteuning voor back-ups over het netwerk. Er kan gebruik worden gemaakt van een pijplijn en rsh om de gegevens naar een banddrive op afstand te sturen. &prompt.root; for f in maplijst; do find $f >> back-up.lijst done &prompt.root; cpio -v -o --format=newc < back-up.lijst | ssh gebruiker@host "cat > back-upapparaat" Hier is maplijst een lijst van de mappen waarvan een back-up gemaakt dient te worden, gebruiker@host de gebruiker/hostnaam-combinatie die de back-ups uitvoert, en back-upapparaat het apparaat waar de back-ups naar toe geschreven te worden (bijvoorbeeld /dev/nsa0). <command>pax</command> back-upsoftware pax pax POSIX IEEE &man.pax.1; is het antwoord van IEEE en &posix; op tar en cpio. In de loop der jaren zijn de verscheidene versies van tar en cpio licht incompatibel geworden. Dus in plaats van dit uit te vechten en ze volledig te standaardiseren, heeft &posix; een nieuw archiveringsprogramma gemaakt. pax poogt om veel van de verscheidene formaten van cpio en tar te lezen en te schrijven, met daarbij nog nieuwe, eigen formaten. De commandoverzameling lijkt meer op die van cpio dan op die van tar. <application>Amanda</application> back-upsoftware Amanda Amanda Amanda (Advanced Maryland Network Disk Archiver) is een client/server-back-upsysteem, in plaats van een enkel programma. Een Amanda server back-upt elk aantal computers dat een Amanda client en een netwerkverbinding met de Amanda server heeft naar een enkel bandstation. Een veelvoorkomend probleem bij bedrijven met een groot aantal schijven is dat de tijd die nodig is om de gegevens direct naar band te back-uppen langer is dan de tijd die voor de taak gereserveerd is. Amanda lost dit probleem op. Amanda kan gebruik maken van een tussenschijf om verschillende bestandssystemen tegelijkertijd te back-uppen. Amanda maakt archiefverzamelingen aan, een groep banden die gedurende een tijd gebruikt wordt om volledige back-ups te maken van alle bestandssystemen die in het instellingenbestand van Amanda vermeld staan. De archiefverzameling bevat ook incrementele (of differentiële) back-ups van alle bestandssystemen. Voor het herstellen van een beschadigd bestandssysteem zijn de meest recente volledige back-up en de incrementele back-ups nodig. Het instellingenbestand biedt verfijnde controle over de back-ups en het netwerkverkeer door Amanda. Amanda kan elk bovenstaand back-upprogramma gebruiken om de gegevens naar de band te schijven. Amanda is òf als port òf als package beschikbaar. Nietsdoen Nietsdoen is geen computerprogramma, maar de de meest gebruikte back-upstrategie. Er zijn geen initiële kosten. Er is geen back-upschema om te volgen. Zeg gewoon nee. Als er iets met gegevens gebeurt, lach erom en leef ermee! Als tijd en gegevens weinig tot niets waard zijn, is Nietsdoen het meest geschikte back-upprogramma. Maar wees bedacht, &unix; is een nuttig stuk gereedschap en er is zo maar binnen zes maanden een verzameling bestanden die wèl van waarde is. Nietsdoen is de juiste back-upmethode voor /usr/obj en andere mapstructuren die zo opnieuw aangemaakt kunnen worden. Een voorbeeld zijn de bestanden waaruit de HTML- of &postscript; versie van dit Handboek bestaan. Deze documentformaten zijn vanuit SGML-invoerbestanden aangemaakt. Het back-uppen van de HTML- of &postscript; bestanden is niet nodig. Van de SGML-bestanden dient regelmatig een back-up gemaakt te worden. Welk back-upprogramma is het beste? LISA &man.dump.8;. Punt uit.. Elizabeth D. Zwicky heeft stresstesten op alle hierboven besproken back-upprogramma's uitgevoerd. De heldere keuze voor het behouden van alle gegevens en alle eigenaardigheden van &unix; bestandssystemen is dump. Elizabeth heeft bestandssystemen aangemaakt met een grote verscheidenheid aan ongewone omstandigheden (en enkele minder ongebruikelijke) en heeft elk programma getest door een back-up van die bestandssystemen uit te voeren en ze te herstellen. De eigenaardigheden omvatten bestanden met gaten, bestanden met gaten en een blok nullen, bestanden met vreemde tekens in hun namen, onleesbare en onschrijfbare bestanden, apparaten, bestanden waarvan de grootte verandert tijdens het back-uppen, bestanden die aangemaakt/verwijderd worden tijdens het back-uppen en meer. Ze presenteerde de resultaten op LISA V in oktober 1991. Zie torture-testing Backup and Archive Programs. Noodterugzetprocedure Vóór de ramp Er zijn slechts vier stappen om te volgen bij het voorbereiden op elke ramp die voor kan komen. disklabel Het schijflabel van elke schijf dient afgedrukt te worden (bijvoorbeeld met disklabel da0 | lpr), de bestandssysteemtabel (/etc/fstab) en alle opstartboodschappen, alles in tweevoud. fix-it diskettes De opstart- en fixit-diskettes (boot.flp en fixit.flp) moeten alle gewenste apparaten bevatten. De gemakkelijkste manier om dit te controleren is om de machine opnieuw op te starten met de opstartdiskette in het diskettestation en de opstartmeldingen te controleren. Als alle apparaten gemeld en functioneel zijn, kan stap drie uitgevoerd worden. In het andere geval dienen twee eigen opstartbare diskettes aangemaakt te worden die een kernel bevatten die alle gewenste schijven kan mounten en toegang heeft tot het bandstation. Deze diskettes dienen het volgende te bevatten: fdisk, newfs, mount en het gebruikte back-upprogramma. Deze programma's dienen statisch gelinkt te worden. Als dump gebruikt wordt, moet de diskette restore bevatten. Ten derde dienen regelmatig back-upbanden aangemaakt te worden. Alle veranderingen die na de laatste back-up zijn gemaakt kunnen onherroepelijk verloren zijn gegaan. De back-upbanden dienen beveiligd te worden tegen overschrijven. Ten vierde dienen de diskettes (òfwel boot.flp en fixit.flp, òfwel de twee eigen diskettes die in stap twee zijn aangemaakt) en de back-upbanden getest te worden. Van de handelingen dienen aantekeningen gemaakt te worden. De aantekeningen, de opstartbare diskette, de afdrukken en de back-upbanden moeten gezamenlijk bewaard te worden. Tijdens het herstellen kunnen de notities ervoor zorgen dat de back-upbanden vernietigd worden. Hoe? In plaats van tar xvf /dev/sa0 kan per ongeluk tar cvf /dev/sa0 worden ingetypt, waardoor de back-upband overschreven wordt. Als extra veiligheidsmaatregel dienen opstartbare diskettes en telkens twee back-upbanden gemaakt te worden. Eén van deze banden dient op een plaats op afstand bewaard te worden. Zo'n plaats is NIET de kelder van het zelfde kantoorgebouw. Een aantal bedrijven in het World Trade Center heeft deze les op de harde manier geleerd. Zo'n plaats dient fysiek gescheiden te zijn van de computers en de schijven door een significante afstand. Script voor het aanmaken van de opstartdiskette Na de ramp De hamvraag is: heeft de hardware het overleefd? Er zijn regelmatig back-ups gemaakt, dus zorgen over de software zijn niet nodig. Indien hardware beschadigd is, dienen kapotte onderdelen vervangen te worden voordat gepoogd wordt om een computer te gebruiken. Indien de hardware in orde is, dienen de diskettes gecontroleerd te worden. Als een eigen opstartdiskette gebruikt wordt, start in enkele-gebruiker-modus op (type op de opstartprompt boot: -s in). Sla dan de volgende paragraaf over. Lees verder als de diskettes boot.flp en fixit.flp gebruikt worden. Steek de diskette boot.flp als eerste in het diskettestation en start de computer op. Het originele installatiemenu wordt op het scherm getoond. Kies de optie Fixit--Repair mode with CDROM or floppy. Steek de diskette fixit.flp in als erom gevraagd wordt. restore en de andere benodigde programma's staan in /mnt2/rescue (/mnt/stand voor &os; ouder dan versie 5.2). Herstel elk bestandssysteem apart. mount rootpartitie disklabel newfs Probeer de rootpartitie van de eerste schijf te mounten (bijvoorbeeld mount /dev/da0a /mnt). Als het schijflabel beschadigd is, gebruik dan disklabel om de schijf opnieuw te partitioneren en te labelen zodat deze overeenkomt met het afgedrukte en bewaarde label. Gebruik voor het opnieuw aanmaken van de bestandssystemen newfs. Hermount de rootpartitie van de diskette voor lezen en schrijven (mount -u -o rw /mnt). Gebruik voor het herstellen van de gegevens van dit bestandssysteem het back-upprogramma en de back-upbanden (bijvoorbeeld restore vrf /dev/sa0). Dismount nu het bestandssysteem (bijvoorbeeld umount /mnt). Herhaal dit voor elk beschadigd bestandssysteem. Back-up de gegevens naar nieuwe banden als het systeem weer draait. De omstandigheden die verantwoordelijk waren voor de crash of het gegevensverlies kunnen weer voorkomen. Nu een extra uur investeren, kan later grote zorgen besparen. * Er zijn geen voorbereidingen voor de ramp getroffen, wat nu? ]]> Marc Fonvieille Geherstructureerd en verbeterd door Netwerk-, geheugen-, en bestandsgebaseerde bestandssystemen virtuele schijven schijven virtueel Naast de schijven die fysiek in de computer zitten, diskettes, CD's, harde schijven, enzovoort, worden er ook andere vormen van schijven door &os; begrepen: de virtuele schijven. NFS Coda schijven geheugen Dit omvat netwerkbestandssystemen zoals het Network File System en Coda, geheugengebaseerde bestandssystemen en bestandsgebaseerde bestandssystemen. Nagelang de gebruikte versie van &os;, zijn er andere gereedschappen voor het aanmaken en gebruiken van bestandsgebaseerde en geheugengebaseerde bestandssystemen. Gebruikers van &os; 4.X kunnen &man.MAKEDEV.8; gebruiken om de benodigde apparaten aan te maken. &os; 5.0 en nieuwer kennen &man.devfs.8; om de apparaatnodes transparant voor de gebruiker toe te wijzen. Bestandsgebaseerd bestandssysteem onder &os; 4.X schijven bestandsgebaseerd (4.X) Het commando &man.vnconfig.8; stelt vnode pseudo-schijf-apparaten in en zet ze aan. Een vnode is een representatie van een bestand en is de focus van bestandsactiviteit. Dit betekent dat &man.vnconfig.8; bestanden gebruikt om een bestandssysteem aan te maken en te bewerken. Een mogelijk gebruik is het mounten van een beeld van een diskette of een CD dat in een bestand bewaard wordt. Om &man.vnconfig.8; te gebruiken, is ondersteuning voor &man.vn.4; nodig in het kernelinstellingenbestand: pseudo-device vn Om een bestaand beeld van een bestandssysteem te mounten: <command>vnconfig</command> gebruiken om een bestaand beeld van een bestandssysteem te mounten onder &os; 4.X &prompt.root; vnconfig vn0 schijfbeeld &prompt.root; mount /dev/vn0c /mnt Om een nieuw beeld van een bestandssysteem aan te maken met &man.vnconfig.8;: Een nieuwe bestandsgebaseerde schijf aanmaken met <command>vnconfig</command> &prompt.root; dd if=/dev/zero of=nieuwbeeld bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; vnconfig -s labels -c vn0 nieuwbeeld &prompt.root; disklabel -r -w vn0 auto &prompt.root; newfs vn0c Warning: 2048 sector(s) in last cylinder unallocated /dev/vn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors 5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g) super-block backups (for fsck -b #) at: 32 &prompt.root; mount /dev/vn0c /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/vn0c 4927 1 4532 0% /mnt Bestandsgebaseerd bestandssysteem onder &os; 5.X schijven bestandsgebaseerd (5.X) Met &man.mdconfig.8; kunnen geheugenschijven, &man.md.4;, ingesteld worden en aangezet worden onder &os; 5.X. Om &man.mdconfig.8; te gebruiken, moet de module &man.md.4; geladen worden of ondersteuning aan het kernelinstellingenbestand toegevoegd worden: device md Het commando &man.mdconfig.8; ondersteunt drie types geheugen-gebaseerde virtuele schijven: geheugenschijven die met &man.malloc.9; toegewezen zijn, geheugenschijven die een bestand als basis gebruiken en geheugenschijven die swapruimte als basis gebruiken. Een mogelijk gebruik is het mounten van een beeld van een diskette of CD dat in een bestand bewaard wordt. Om een bestaand beeld van een bestandssysteem te mounten: <command>mdconfig</command> gebruiken om een bestaand beeld van een bestandssysteem te mounten onder &os; 5.X &prompt.root; mdconfig -a -t vnode -f schijfbeeld -u 0 &prompt.root; mount /dev/md0 /mnt Om een nieuw beeld van een bestandssysteem aan te maken met &man.mdconfig.8;: Nieuwe bestandsgebaseerde schijf aanmaken met <command>mdconfig</command> &prompt.root; dd if=/dev/zero of=nieuwbeeld bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; mdconfig -a -t vnode -f nieuwbeeld -u 0 &prompt.root; disklabel -r -w md0 auto &prompt.root; newfs md0c /dev/md0c: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. super-block backups (for fsck -b #) at: 32, 2624, 5216, 7808 &prompt.root; mount /dev/md0c /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0c 4846 2 4458 0% /mnt Indien het eenheidsnummer niet met de optie gespecificeerd wordt, gebruikt &man.mdconfig.8; de automatische toewijzing van &man.md.4; om een ongebruikt apparaat te selecteren. De naam van het toegewezen apparaat wordt op stdout weergegeven als md4. Meer details staan in de hulppagina van &man.mdconfig.8;. Sinds &os; 5.1-RELEASE is het oude programma &man.disklabel.8; vervangen door &man.bsdlabel.8;. In &man.bsdlabel.8; zijn een aantal overbodige opties en parameters verwijderd. In de bovenstaande voorbeelden dient de optie met &man.bsdlabel.8; weggelaten te worden. Meer informatie staat in de hulppagina van &man.bsdlabel.8;. Het commando &man.mdconfig.8; is erg nuttig, hoewel het veel opdrachten vergt om een bestandsgebaseerd bestandssysteem aan te maken. &os; 5.0 wordt met een gereedschap &man.mdmfs.8; geleverd. Dit programma stelt een &man.md.4;-schijf in door gebruik te maken van &man.mdconfig.8;, zet er een bestandssysteem op door gebruik te maken van &man.newfs.8; en mount het door gebruik te maken van &man.mount.8;. Om hetzelfde bestandssysteembeeld als hierboven aan te maken en te mounten: Instellen en mounten van een bestandsgebaseerde schijf met <command>mdmfs</command> &prompt.root; dd if=/dev/zero of=nieuwbeeld bs=1k count=5k 5120+0 records in 5120+0 records out &prompt.root; mdmfs -F nieuwbeeld -s 5m md0 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0 4846 2 4458 0% /mnt Als de optie zonder eenheidsnummer gebruikt wordt, gebruikt &man.mdmfs.8; de automatische toewijzing van &man.md.4; om automatisch een ongebruikt apparaat te selecteren. Meer details staan in de hulppagina van &man.mdmfs.8;. Geheugengebaseerde bestandssystemen onder &os; 4.X schijven geheugenbestandssysteem (4.X) Het stuurprogramma &man.md.4; is een eenvoudig, efficiënt middel om geheugenbestandssystemen aan te maken onder &os; 4.X. &man.malloc.9; wordt gebruikt om het geheugen toe te wijzen. Om het te gebruiken, dient met een bestandssysteem dat met &man.vnconfig.8; voorbereid is het volgende gedaan te worden: md geheugenschijf onder &os; 4.X &prompt.root; dd if=nieuwbeeld of=/dev/md0 5120+0 records in 5120+0 records out &prompt.root; mount /dev/md0c /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md0c 4927 1 4532 0% /mnt Meer details staan in de hulppagina van &man.md.4;. Geheugengebaseerd bestandssysteem onder &os; 5.X schijven geheugenbestandssysteem (5.X) Voor geheugengebaseerde en bestandsgebaseerde bestandssystemen worden dezelfde gereedschappen gebruikt: &man.mdconfig.8; of &man.mdmfs.8;. De opslagruimte voor geheugengebaseerde bestandssystemen wordt met &man.malloc.9; toegewezen. Nieuwe geheugengebaseerde schijf aanmaken met <command>mdconfig</command> &prompt.root; mdconfig -a -t malloc -s 5m -u 1 &prompt.root; newfs -U md1 /dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 1.27MB, 81 blks, 256 inodes. with soft updates super-block backups (for fsck -b #) at: 32, 2624, 5216, 7808 &prompt.root; mount /dev/md1 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md1 4846 2 4458 0% /mnt Nieuwe geheugengebaseerde schijf aanmaken met <command>mdmfs</command> &prompt.root; mdmfs -M -s 5m md2 /mnt &prompt.root; df /mnt Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/md2 4846 2 4458 0% /mnt In plaats van een bestandssysteem dat gebaseerd is op &man.malloc.9;, is het ook mogelijk om swap te gebruiken. Hiervoor dient in de opdrachtregel van &man.mdconfig.8; door vervangen te worden. &man.mdmfs.8; maakt standaard (zonder een swap-gebaseerde schijf aan. Meer details staan in de hulppagina's voor &man.mdconfig.8; en &man.mdmfs.8;. Geheugenschijf van het systeem afkoppelen schijven geheugenschijf afkoppelen Als een geheugen- of bestandsgebaseerd bestandssysteem niet gebruikt wordt, dienen alle bronnen aan het systeem vrijgegeven te worden. Dismount als eerste het bestandssysteem, gebruikt daarna &man.mdconfig.8; om de schijf van een systeem los te koppelen en de bronnen vrij te geven. Om bijvoorbeeld alle bronnen die door /dev/md4 gebruikt worden los te koppelen en vrij te geven: &prompt.root; mdconfig -d -u 4 Het is mogelijk om de informatie over ingestelde &man.md.4; apparaten weer te geven door gebruik te maken van mdconfig -l. Met &os; 4.X wordt &man.vnconfig.8; gebruikt om het apparaat los te koppelen. Om bijvoorbeeld alle bronnen die door /dev/vn4 gebruikt worden los te koppelen en vrij te geven: &prompt.root; vnconfig -u vn4 Tom Rhodes Bijgedragen door Snapshots van bestandssystemen bestandssystemen snapshots &os; 5.0 biedt een nieuwe mogelijkheid samen met Soft Updates: snapshots van bestandssystemen. Snapshots bieden de mogelijkheid om beelden van een gespecificeerd bestandssysteem te maken en ze als bestand te behandelen. Snapshotbestanden moeten aangemaakt worden in het bestandssysteem waarop de handeling wordt uitgevoerd en er mogen niet meer dan 20 snapshots per bestandssysteem worden aangemaakt. Actieve snapshots worden opgeslagen in het superblok zodat ze persistent zijn met dismount- en hermountbewerkingen en met het opnieuw opstarten van het systeem. Als een snapshot niet langer nodig is, kan het met het standaardcommando &man.rm.1; worden verwijderd. Snapshots kunnen in elke volgorde verwijderd worden, alhoewel misschien niet alle gebruikte ruimte teruggewonnen wordt omdat sommige vrijgegeven blokken mogelijk door een ander snapshot geclaimd worden. De onveranderlijke bestandsvlag wordt door &man.mksnap.ffs.8; ingesteld nadat het snapshotbestand initieel is aangemaakt. Het commando &man.unlink.1; maakt een uitzondering voor snapshotbestanden aangezien het toestaat dat ze verwijderd worden. Snapshotbestanden worden aangemaakt met &man.mount.8;. Om een snapshot van /var in het bestand /var/snapshot/snap te plaatsen: &prompt.root; mount -o -o snapshot /var/snapshot/snap /var Als alternatief kan &man.mksnap.ffs.8; gebruikt worden om een snapshot aan te maken: &prompt.root; mksnap_ffs /var /var/snapshot/snap Snapshotbestanden kunnen gezocht worden op een bestandssysteem (bijvoorbeeld /var) door gebruik te maken van het commando &man.find.1;: &prompt.root; find /var -flags snapshot Nadat een snapshot is aangemaakt, kan het voor een aantal dingen gebruikt worden: Sommige systeembeheerders gebruiken een snapshotbestand voor back-updoeleinden, omdat het snapshot naar CD's of band overgezet kan worden; Bestandsintegriteit. op het snapshot kan &man.fsck.8; gedraaid worden. Ervan uitgaande dat het bestandssysteem schoon was toen het werd gemount, zou dit altijd een schoon (en onveranderlijk) resultaat moeten opleveren. Dit is in principe wat het &man.fsck.8;-achtergrondsproces doet; Het commando &man.dump.8; draaien op het snapshot. Er wordt een dump teruggegeven die consistent is met het bestandssysteem en tijdsstempel van het snapshot. &man.dump.8; kan ook in één commando een snapshot maken, een dumpbeeld aanmaken en daarna het snapshot verwijderen door gebruik te maken van de vlag ; Het snapshot kan met &man.mount.8; als bevroren beeld van het bestandssysteem worden gemount. Om het snapshot /var/snapshot/snap te mounten: &prompt.root; mdconfig -a -t vnode -f /var/snapshot/snap -u 4 &prompt.root; mount -r /dev/md4 /mnt Het is nu mogelijk om door de structuur van het bevroren bestandssysteem /var te lopen dat gemount is op /mnt. Alles zal initieel in dezelfde toestand verkeren als op het moment dat het snapshot werd aangemaakt. De enige uitzondering hierop is dat eerdere snapshots als bestanden met lengte nul verschijnen. Als een snapshot niet meer nodig is, kan het als volgt gedismount worden: &prompt.root; umount /mnt &prompt.root; mdconfig -d -u 4 Meer informatie over en snapshots van bestandssystemen, inclusief technische documenten, staat op de website van Marshall Kirk McKusick op . Bestandssysteemquota accounten schijfruimte schijfquota Quota zijn een optionele mogelijkheid van het besturingssysteem om de hoeveelheid schijfruimte en/of het aantal bestanden dat gebruikers of leden van een groep per bestandssysteem mogen gebruiken te beperken. Dit wordt het meeste gebruikt op timesharing-systemen waar het wenselijk is om het aantal bronnen dat elke gebruiker of groep van gebruikers mag gebruiken te beperken. Dit voorkomt dat één gebruiker of groep van gebruikers alle beschikbare schijfruimte in beslag neemt. Schijfquota inschakelen Controleer alvorens te proberen om schijfquota te gebruiken of quota ingesteld zijn in de kernel. Dit gebeurt door het toevoegen van de volgende regel aan het kernelinstellingenbestand: options QUOTA De standaardkernel GENERIC heeft deze optie niet aanstaan, dus is het nodig om een eigen kernel in te stellen, te bouwen en te installeren om gebruik te kunnen maken van schijfquota. Meer informatie over het instellen van de kernel staat in . Vervolgens dienen schijfquota aangezet te worden in /etc/rc.conf: enable_quotas="YES" schijfquota controleren Voor fijnere controle over de opstartquota zijn extra instellingsvariabelen beschikbaar. Normaalgesproken wordt de integriteit van de quota van elk bestandssysteem tijdens het opstarten door &man.quotacheck.8; gecontroleerd. &man.quotacheck.8; verzekert dat de gegevens in de quotadatabase een juiste afspiegeling vormen van de gegevens op het bestandssysteem. Dit proces neemt erg veel tijd in beslag en beïnvloedt de tijd die een systeem nodig heeft om op te starten significant. Om deze stap over te slaan, bestaat een variabele in /etc/rc.conf: check_quotas="NO" Als laatste dient /etc/fstab bewerkt te worden om schijfquota per bestandssysteem aan te zetten. Hier kunnen gebruiker- of groepquota of beide worden aangezet voor alle bestandssystemen. Om quota per gebruiker op een bestandssysteem aan te zetten, dient de optie aan het optieveld toegevoegd te worden aan de regel in /etc/fstab voor het bestandssysteem waar quota worden aangezet. Bijvoorbeeld: /dev/da1s2g /home ufs rw,userquota 1 2 Analoog, om groepquota aan te zetten, dient de optie in plaats van gebruikt te worden. Om zowel gebruikers- als groepsquota aan te zetten, dient de regel als volgt veranderd te worden: /dev/da1s2g /home ufs rw,userquota,groupquota 1 2 Standaard worden de quotabestanden opgeslagen in de hoofdmap van het bestandssysteem onder de namen quota.user en quota.group voor respectievelijk gebruikers- en groepsquota. Meer informatie staat in &man.fstab.5;. Alhoewel de hulppagina &man.fstab.5; vermeld dat een alternatieve plaats voor de quotabestanden gespecificeerd kan worden, wordt dit niet aangeraden omdat de verschillende quotagereedschappen dit niet juist schijnen af te handelen. Hier aangekomen dient het systeem opnieuw opgestart te worden met de nieuwe kernel. /etc/rc voert automatisch de juiste commando's uit om de initiële quotabestanden aan te maken voor alle quota die in /etc/fstab zijn aangezet. Het is dus niet nodig om handmatig quotabestanden met lengte nul aan te maken. Tijdens normale bewerkingen moet het niet nodig zijn om de commando's &man.quotacheck.8;, &man.quotaon.8; of &man.quotaoff.8; handmatig te draaien. Lees wel de betreffende hulppagina's om bekend te raken met de werking ervan. Quotalimieten instellen schijfquota limieten Indien het systeem ingesteld voor gebruik van quota, controleer dan of ze echt aanstaan. Een eenvoudige manier om dit te doen is de volgende: &prompt.root; quota -v Er hoort een eenregelige samenvatting te verschijnen over het schijfgebruik en de huidige quotalimieten voor elk bestandssysteem waarop quota aanstaan. Nu kunnen quotalimieten toegewezen worden met &man.edquota.8;. Er zijn verschillende opties om grenzen te stellen aan de hoeveelheid schijfruimte die een gebruiker of groep mag toewijzen en het aantal bestanden dat ze mogen aanmaken. Toewijzingen kunnen begrensd worden met betrekking tot schijfruimte (blokquota) of het aantal bestanden (inode-quota) of een combinatie van beide. Elk van deze limieten is op zijn beurt weer opgesplitst in twee categoriën: harde en zachte limieten. harde limiet Een harde limiet mag niet overschreden worden. Indien een gebruiker de harde limiet bereikt, mag deze geen verdere toewijzingen maken op het betreffende bestandssysteem. Indien een gebruiker bijvoorbeeld een harde limiet heeft van 500 kB op een bestandssysteem en er 490 kB van gebruikt, kan deze nog slechts 10 kB toewijzen. Een poging om 11 kB toe te wijzen zal mislukken. zachte limiet Zachte limieten kunnen voor een beperkte tijd overschreden worden. Deze periode staat bekend als de gratieperiode, die standaard een week bedraagt. Als een gebruiker de zachte limiet langer dan de gratieperiode overschrijdt, verandert de zachte limiet in een harde limiet en zijn er geen verdere toewijzingen toegestaan. Als de gebruiker onder de zachte limiet komt, wordt de gratieperiode opnieuw ingesteld. Het volgende is een voorbeeld van een mogelijk gebruik van &man.edquota.8;. Als het commando &man.edquota.8; gestart wordt, wordt de tekstverwerker opgestart die door de omgevingsvariabele EDITOR gespecificeerd is, of de tekstverwerker vi als de variabele EDITOR niet is ingesteld. Nu kunnen de quotalimieten bewerkt worden. &prompt.root; edquota -u test Quotas for user test: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) inodes in use: 7, limits (soft = 50, hard = 60) /usr/var: kbytes in use: 0, limits (soft = 50, hard = 75) inodes in use: 0, limits (soft = 50, hard = 60) Normaalgesproken worden er twee regels weergegeven voor elk bestandssysteem waarvoor quota gelden: één regel voor de bloklimieten, en één voor de inode-limieten. Om de quotalimieten te veranderen dient de waarde ervan veranderd te worden. Om bijvoorbeeld de bloklimiet van een gebruiker te veranderen van een zachte limiet van 50 en een harde limiet van 75 in een zachte limiet van 500 en een harde limiet van 600, dient het volgende veranderd te worden: /usr: kbytes in use: 65, limits (soft = 50, hard = 75) In: /usr: kbytes in use: 65, limits (soft = 500, hard = 600) De nieuwe quotalimieten gelden zodra de tekstverwerker verlaten wordt. Soms is het gewenst om quotalimieten in te stellen op een aantal UID's. Dit kan gedaan worden door de optie van &man.edquota.8; te gebruiken. Wijs eerst de gewenste quotalimiet aan een gebruiker toe en draai daarna edquota -p protogebruiker beginuid-einduid. Indien bijvoorbeeld gebruiker test de gewenste quotalimieten heeft, kan het volgende commando gebruikt worden om deze quotalimieten te dupliceren voor UID's 10.000 tot en met 19.999: &prompt.root; edquota -p test 10000-19999 Meer informatie staat in de hulppagina voor &man.edquota.8;. Quotalimieten en schijfgebruik controleren schijfquota controleren Zowel &man.quota.1; als &man.repquota.8; kunnen gebruikt worden om de quotalimieten en het schijfgebruik te controleren. Het commando &man.quota.1; kan gebruikt worden om de quota van zowel individuele gebruikers als groepen en het schijfgebruik te controleren. Een gebruiker mag alleen de eigen quota en de quota van een groep waarvan deze lid is controleren. Alleen de beheerder mag alle gebruikers- en groepsquota bekijken. Het commando &man.repquota.8; kan gebruikt worden om een overzicht te krijgen van alle quota en gebruik van bestandssystemen waarvan quota aanstaan. Het volgende is een mogelijke uitvoer van het commando quota -v voor een gebruiker die quotalimieten heeft op twee bestandssystemen. Disk quotas for user test (uid 1002): Filesystem usage quota limit grace files quota limit grace /usr 65* 50 75 5days 7 50 60 /usr/var 0 50 75 0 50 60 gratieperiode Voor het bestandssysteem /usr in bovenstaand voorbeeld overschrijdt deze gebruiker de zachte limiet van 50 kB momenteel met 15 kB en heeft deze 5 dagen van de gratieperiode over. De asterisk, * geeft aan dat de gebruiker momenteel de quotalimiet overschrijdt. Normaalgesproken worden bestandssystemen waarvan de gebruiker geen schijfruimte gebruikt niet weergegeven in de uitvoer van &man.quota.1;, zelfs niet als er de gebruiker een quotalimiet heeft voor dat bestandssysteem. De optie geeft deze bestandssystemen weer, zoals het bestandssysteem /usr/var in bovenstaand voorbeeld. Quota over NFS NFS Quota worden afgedwongen door het quota-subsysteem op de NFS-server. De daemon &man.rpc.rquotad.8; stelt quota-informatie beschikbaar aan het commando &man.quota.1; op de NFS-cliënts, wat de gebruikers op deze machines in staat stelt hun quota-statistieken in te zien. rpc.rquotad dient als volgt in /etc/inetd.conf aangezet te worden: rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad Vervolgens dient inetd opnieuw gestart te worden: &prompt.root; kill -HUP `cat /var/run/inetd.pid` Lucky Green Bijgedragen door
shamrock@cypherpunks.to
Schijfpartities versleutelen schijven versleutelen &os; biedt uitstekende on-line bescherming tegen onbevoegde gegevenstoegang. Bestandsrechten en Mandatory Access Control (MAC) (zie ) helpen voorkomen dat onbevoegde derde partijen toegang tot de gegevens krijgen als het besturingssysteem actief is en de computer aanstaat. De door het besturingssysteem afgedwongen rechten zijn echter niet relevant als een aanvaller fysieke toegang tot een computer heeft en deze de harde schijf van de computer in een ander systeem kan plaatsen om de gevoelige gegevens te kopiëren en te analyseren. Afgezien van hoe een aanvaller in het bezit van een harde schijf of een uitgezette computer gekomen is, kan GEOM Based Disk Encryption (gbde) de gegevens op het bestandssysteem van de computer zelfs tegen hooggemotiveerde aanvallers met aanzienlijke middelen beschermen. In tegenstelling tot lastige versleutelmethoden die alleen losse bestanden versleutelen, versleutelt gbde gehele bestandssystemen op een transparante manier. De harde schijf komt nooit in aanraking met klare tekst. Los van hoe een aanvaller in het bezit van een harde schijf of een uitgezette computer gekomen is, kunnen de cryptografische subsystemen GEOM Based Disk Encryption (gbde) en geli in &os; gegevens op bestandssystemen van een computer beschermen tegen zelfs de meer gemotiveerde belagers die ook nog eens adequate middelen hebben. Anders dan met lastige versleutelingsmethoden die alleen individuele bestanden versleutelen, versleutelen gbde en geli transparant complete bestandssystemen. Er komt nooit platte tekst op een harde schijf. Schijven versleutelen met <application>gbde</application> Word <username>root</username> Het instellen van gbde vereist beheerdersrechten. &prompt.user; su - Password: Controleer de versie van het besturingssysteem Voor &man.gbde.4; is &os; 5.0 of hoger nodig. &prompt.root; uname -r 5.0-RELEASE Voeg ondersteuning voor &man.gbde.4; aan het kernelinstellingenbestand toe Voeg de volgende regel toe aan het kernelinstellingenbestand: options GEOM_BDE Herbouw de kernel opnieuw zoals beschreven in . Start op met de nieuwe kernel. Versleutelde harde schijf voorbereiden In het volgende voorbeeld wordt aangenomen dat er een nieuwe harde schijf aan het systeem wordt toegevoegd die een enkele versleutelde partitie zal bevatten. Deze partitie wordt gemount als /private. gbde kan ook gebruikt worden om /home en /var/mail te versleutelen, maar daarvoor zijn complexere instructies nodig die buiten het bereik van deze inleiding vallen. Voeg een nieuwe harde schijf toe Voeg de nieuwe harde schijf toe zoals beschreven in . In dit voorbeeld is een nieuwe harde schijfpartitie toegevoegd als /dev/ad4s1c. De apparaten /dev/ad0s1* stellen bestaande standaard &os; partities van het voorbeeldsysteem voor. &prompt.root; ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 /dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c /dev/ad0s1a /dev/ad0s1d /dev/ad4 Maak een map aan voor gbde lockbestanden &prompt.root; mkdir /etc/gbde Het lockbestand voor gbde bevat informatie die gbde nodig heeft om toegang te krijgen tot versleutelde partities. Zonder toegang tot de lockbestand is gbde niet in staat om de gegevens die op de versleutelde partitie staan te ontsleutelen zonder aanzienlijke handmatige tussenkomst die niet door de software ondersteund wordt. Elke versleutelde partitie gebruikt een ander lockbestand. Initialiseer de gbde-partitie Een gbde-partitie dient geïnitialiseerd te worden voordat deze kan worden gebruikt. Deze initialisatie dient slechts eenmalig uitgevoerd te worden: &prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c &man.gbde.8; opent een tekstverwerker om verschillende instellingen in een sjabloon te kunnen instellen. Stel de sector_size in op 2048 als UFS of UFS2 wordt gebruikt: $FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $ # # Sector size is the smallest unit of data which can be read or written. # Making it too small decreases performance and decreases available space. # Making it too large may prevent filesystems from working. 512 is the # minimum and always safe. For UFS, use the fragment size # sector_size = 2048 [...] &man.gbde.8; vraagt twee keer om de wachtwoordzin voor het beveiligen van de gegevens. De wachtwoordzin dient beide keren hetzelfde te zijn. De mogelijkheid van gbde om de gegevens te beveiligen is geheel afhankelijk de gekozen wachtwoordzin. Tips met betrekking tot het kiezen van veilige wachtwoordzinnen die gemakkelijk te onthouden zijn staan op de website Diceware Passphrase. Het commando gbde init maakt een lockbestand aan voor de gbde-partitie die in dit voorbeeld is opgeslagen als /etc/gbde/ad4s1c. gbde lockbestanden moeten samen met de inhoud van versleutelde partities geback-upped worden. Hoewel het verwijderen van een lockbestand op zich een gedreven aanvaller er niet van weerhoudt een gbde partitie te ontsleutelen, is de wettige eigenaar zonder het lockbestand niet in staat om de gegevens op de versleutelde partitie te benaderen zonder een aanzienlijke hoeveelheid werk die in het geheel niet ondersteund wordt door &man.gbde.8; of de ontwerper ervan. Koppel de versleutelde partitie aan de kernel &prompt.root gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c Er wordt om de wachtwoordzin gevraagd die gekozen is tijdens de initialisatie van de versleutelde partitie. Het nieuwe versleutelde apparaat verschijnt in /dev als /dev/apparaatnaam.bde: &prompt.root; ls /dev/ad* /dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1 /dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c /dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde Maak een bestandssysteem op het versleutelde apparaat Nu het versleutelde apparaat aan de kernel gekoppeld is, kan een bestandssysteem op het apparaat aangemaakt worden. Met &man.newfs.8; kan een bestandssysteem op het versleutelde apparaat aangemaakt wordne. Aangezien het veel sneller is om een nieuw UFS2 bestandssysteem te initialiseren dan om een oud UFS1 bestandssysteem te initialiseren, is het aan te raden om &man.newfs.8; met de optie te gebruiken. De optie is de standaard in &os; 5.1-RELEASE en nieuwer. &prompt.root; newfs -U -O2 /dev/ad4s1c.bde Voer &man.newfs.8; uit op een aangekoppelde gbde-partitie die geïndificeerd wordt door de uitbreiding *.bde op de apparaatnaam. Mount de versleutelde partitie Maak een mountpunt voor het versleutelde bestandssysteem aan: &prompt.root; mkdir /private Mount het versleutelde bestandssysteem: &prompt.root; mount /dev/ad4s1c.bde /private Controleer of het versleutelde bestandssysteem beschikbaar is Het versleutelde bestandssysteem is nu zichtbaar met &man.df.1; en gebruiksklaar: &prompt.user; df -H Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 1037M 72M 883M 8% / /devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1f 8.1G 55K 7.5G 0% /home /dev/ad0s1e 1037M 1.1M 953M 0% /tmp /dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr /dev/ad4s1c.bde 150G 4.1K 138G 0% /private Bestaande versleutelde bestandssystemen mounten Elke keer nadat het systeem is opgestart dient elk versleuteld bestandssysteem opnieuw aan de kernel gekoppeld te worden, op fouten gecontroleerd te worden, en aangekoppeld te worden voordat de bestandssystemen gebruikt kunnen worden. De benodigde commando's dienen als de gebruiker root uitgevoerd te worden. Koppel de gbde-partitie aan de kernel &prompt.root gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c Er wordt om de wachtwoordzin gevraagd die gekozen is tijdens de initialisatie van de versleutelde gbde-partitie. Controleer het bestandssysteem op fouten Aangezien het nog niet mogelijk is om versleutelde bestandssystemen op te nemen in /etc/fstab voor automatische controle, dienen de bestandssystemen voordat ze gemount worden handmatig op fouten gecontroleerd te worden door &man.fsck.8; uit te voeren: &prompt.root; fsck -p -t ffs /dev/ad4s1c.bde Mount het versleutelde bestandssysteem &prompt.root; mount /dev/ad4s1c.bde /private Het versleutelde bestandssysteem is nu klaar voor gebruik. Versleutelde partities automatisch mounten Het is mogelijk om een script aan te maken om automatisch een versleutelde partitie aan te koppelen, op fouten te controleren en te mounten, maar vanwege veiligheidsredenen dient het script niet het wachtwoord voor &man.gbde.8; te bevatten. In plaats hiervan wordt het aangeraden om zulke scripts handmatig uit te voeren en het wachtwoord via de console of &man.ssh.1; te geven. Vanaf &os; 5.2-RELEASE is er een nieuw rcNG-script beschikbaar. De argumenten kunnen via &man.rc.conf.5; doorgegeven worden. Bijvoorbeeld: gbde_autoattach_all="YES" gbde_devices="ad4s1c" Hierdoor is het noodzakelijk dat de wachtwoordzin voor gbde bij het starten wordt ingegeven. Na het invoeren van de juiste wachtwoordzin wordt de met gbde versleutelde partitie automatisch gemount. Dit kan erg handig zijn bij het gebruik van gbde op notebooks. Door gbde gebruikte cryptografische beschermingen &man.gbde.8; versleutelt de sectorlading door gebruik te maken van 128-bit AES in CBC-modus. Elke sector op de schijf wordt met een andere AES-sleutel versleuteld. Meer informatie over het cryptografische ontwerp van gbde, inclusief de methode die gebruikt wordt om de sectorsleutels van de door de gebruiker gegeven wachtwoordzin af te leiden, staan in &man.gbde.4;. Compatibiliteitspunten &man.sysinstall.8; is niet compatibel met apparaten die met gbde versleuteld zijn. Alle *.bde apparaten moeten van de kernel ontkoppeld worden voordat &man.sysinstall.8; gebruikt wordt om te voorkomen dat het crasht tijdens het initiële zoeken naar apparaten. Om het versleutelde apparaat dat in dit voorbeeld gebruikt wordt te ontkoppelen: &prompt.root; gbde detach /dev/ad4s1c gbde kan niet met vinum volumes gebruikt worden, omdat &man.vinum.4; geen gebruik maakt van het subsysteem &man.geom.4;. Daniel Gerzo Bijgedragen door Schijfversleuteling met <command>geli</command> Vanaf &os; 6.0 is er een nieuwe cryptografische GEOM-klasse beschikbaar: geli. Deze wordt op het moment ontwikkeld door &a.pjd;. Geli verschilt van gbde in de mogelijkheden en in het gebruik van een andere methode voor het versleutelen. De meest belangrijke mogelijkheden van &man.geli.8; zijn: Gebruikt het &man.crypto.9; framework; als cryptografische hardware aanwezig is, gebruikt geli die automatisch; Ondersteunt meedere cryptografische algoritmen. Op dit moment AES, Blowfish en 3DES; Staat toe dat de root-partitie wordt versleuteld. De wachtwoordzin die wordt gebruikt om de root-partitie te versleutelen wordt opgevraagd tijdens het starten van een systeem; Staat het gebruik van twee onafhankelijke sleutels toe, bijvoorbeeld een sleutel en een bedrijfssleutel); geli is snel; het werkt met sector-naar-sector versleuteling; Ondersteunt back-up en restore van Master Keys. Als een gebruiker sleutels moet vernietigen, is het mogelijk weer toegang te krijgen tot de gegevens door sleutels uit een back-up te halen; Ondersteunt het koppelen van een schijf met een willekeurige, eenmalige sleutel. Handig voor swap-partities en tijdelijke bestandssystemen. Meer mogelijkheden van geli staan - beschreven in de handboekpagina van &man.geli.8;. + beschreven in de handleiding van &man.geli.8;. De volgende stappen beschrijven hoe ondersteuning voor geli in de &os;-kernel ingeschakeld kan worden en hoe een nieuwe geli versleutelingsvoorziening gemaakt kan worden. Aan het einde wordt getoond hoe een versleutelde swap-partitie gemaakt kan worden die de mogelijkheden gebruikt die geli biedt. Het is mogelijk geli te gebruiken vanaf &os; 6.0-RELEASE of later. Het is noodzakelijk super-user rechten te hebben omdat de kernel wordt aangepast. Toevoegen van <command>geli</command>-ondersteuning aan het kernelinstellingenbestand Voeg de volgende regels toe aan het bestand met kernelinstellingen: options GEOM_ELI device crypto Herbouw de kernel zoals beschreven is in . De geli-module kan ook bij het opstarten geladen worden. Voeg de volgende regel toe aan /boot/loader.conf: geom_eli_load="YES" Nu hoort &man.geli.8; door de kernel ondersteund te worden. Een Master Key genereren Het volgende voorbeeld beschrijft hoe een sleutelbestand te maken, dat wordt gebruikt als onderdeel van de Master Key voor de versleutelde dienst die wordt gemount onder /private. Het sleutelbestand zorgt voor wat willekeurige gegevens die worden gebruikt om de Master Key te versleutelen. De Master Key wordt ook door een wachtwoordzin beschermd. De sectorgrootte van de dienst wordt 4 kB. Ook wordt beschreven hoe de geli-dienst te koppelen, er een bestandsysteem op te maken, dat te mounten, hoe ermee te werken en tenslotte hoe te ontkoppelen. Het wordt aangeraden een grotere sectorgrootte in te stellen (zoals 4 kB) voor betere prestaties. De Master Key wordt beschermd door een wachtwoordzin en de gegevensbron voor het sleutelbestand wordt /dev/random. De sectorgrootte van /dev/da2.eli, die als dienst wordt aangeduid, wordt 4 kB. &prompt.root; dd if=/dev/random of=/root/da2.key bs=64 count=1 &prompt.root; geli init -s 4096 -K /root/da2.key /dev/da2 Enter new passphrase: Reenter new passphrase: Het is niet verplicht om zowel een wachtwoordzijn als een sleutelbestand te gebruiken. De methodes kunnen onafhankelijk van elkaar gebruikt worden. Als een sleutelbestand wordt opgegeven als -, wordt de standaardinvoer gebruikt. In het onderstaande voorbeeld wordt aangegeven hoe meer dan een sleutelbestand kan worden gebruikt. &prompt.root; cat sleutelbestand1 sleutelbestand2 sleutelbestand3 | geli init -K - /dev/da2 De dienst koppelen met de gemaakte sleutel &prompt.root; geli attach -k /root/da2.key /dev/da2 Enter passphrase: Het nieuwe platte tekst-apparaat wordt /dev/da2.eli genoemd. &prompt.root; ls /dev/da2* /dev/da2 /dev/da2.eli Het nieuwe bestandssysteem maken &prompt.root; dd if=/dev/random of=/dev/da2.eli bs=1m &prompt.root; newfs /dev/da2.eli &prompt.root; mount /dev/da2.eli /private Het versleutelde bestandssysteem moet nu zichtbaar zijn voor &man.df.1; en beschikbaar zijn voor gebruik. &prompt.root; df -H Filesystem Size Used Avail Capacity Mounted on /dev/ad0s1a 248M 89M 139M 38% / /devfs 1.0K 1.0K 0B 100% /dev /dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr /dev/ad0s1d 989M 1.5M 909M 0% /tmp /dev/ad0s1e 3.9G 1.3G 2.3G 35% /var /dev/da2.eli 150G 4.1K 138G 0% /private De dienst unmounten en afkoppelen Als het werk met de versleutelde partitie is afgehandeld en de /private-partitie is niet langer nodig, dan is het verstandig te overwegen de met geli versleutelde partitie te unmounten en af te koppelen van de kernel. &prompt.root; umount /private &prompt.root; geli detach da2.eli Meer informatie over &man.geli.8; staat in de - handboekpagina. + handleiding. Swap-partitie versleutelen Het volgende voorbeeld toont hoe een met geli versleutelde swap-partition gemaakt kan worden. &prompt.root; dd if=/dev/random of=/dev/ad0s1b bs=1m &prompt.root; geli onetime -d -a 3des ad0s1b &prompt.root; swapon /dev/ad0s1b.eli Het <filename>geli</filename> rcNG-script gebruiken Bij geli hoort een rcNG-script dat gebruikt kan worden om het gebruik van geli te vereenvoudigen. Een voorbeeld van hoe geli met &man.rc.conf.5; ingesteld kan worden volgt: geli_devices="da2" geli_da2_flags="-p -k /root/da2.key" Hiermee wordt /dev/da2 ingesteld als geli-dienst met Master Key-bestand /root/da2.key en geli gebruikt geen wachtwoordzin als de dienst wordt gekoppeld (dit kan alleen gebruikt worden als -P is meegegeven tijdens de initialisatiefase van geli). Een systeem ontkoppelt de geli-dienst van de kernel voordat het afsluit. Meer informatie over het instellen van rcNG staat in het onderdeel over rcNG.
diff --git a/nl_NL.ISO8859-1/books/handbook/install/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/install/chapter.sgml index f5f883ab3a..8f8fb97620 100644 --- a/nl_NL.ISO8859-1/books/handbook/install/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/install/chapter.sgml @@ -1,6049 +1,6049 @@ Jim Mock Geherstructureerd, gereorganiseerd en delen herschreven door Randy Pratt De sysinstall handleiding, schermafdrukken en algemene bijdragen door Willem Jaap Zwart Vertaald door &os; installeren Overzicht installatie &os; heeft een tekstgebaseerd, gebruikersvriendelijk installatieprogramma genaamd sysinstall. Dit is het standaard installatieprogramma, maar leveranciers kunnen hun eigen installatieprogrammatuur leveren. Dit hoofdstuk beschrijft hoe sysinstall gebruikt moet worden om &os; te installeren. Na het lezen van dit hoofdstuk weet de lezer: Hoe &os; installatieschijven gemaakt kunnen worden; Hoe &os; harde schijven benoemt en onderverdeelt; Hoe sysinstall gestart kan worden; Welke vragen sysinstall stelt, wat ze betekenen en hoe er geantwoord kan worden. Veronderstelde voorkennis: De ondersteunde hardwarelijst doornemen van de versie van &os; die geïnstalleerd gaat worden op aanwezigheid van de beschikbare hardware. In zijn algemeenheid zijn deze installatie-instructies geschreven voor computers met een &i386; architectuur (PC compatible). Waar van toepassing worden instructies voor andere platformen (bijvoorbeeld Alpha) gegeven. Deze handleiding is zoveel mogelijk bijgewerkt, maar toch kunnen er verschillen optreden tussen de installatieprocedure en deze tekst. Er wordt aangeraden dit hoofdstuk te beschouwen als een algemene richtlijn en niet als een letterlijke handleiding voor installatie. Voorbereidende taken Beschrijf de computer Probeer een computer te inventariseren voordat &os; wordt geïnstalleerd. De &os; installatieroutines geven een overzicht van alle componenten (harde schijven, netwerkkaarten, cd-rom-spelers, enzovoort) met hun typenummer en fabrikant. &os; probeert ook de juiste instellingen te achterhalen, zoals IRQ en IO-poort gebruik. Vanwege de verscheidenheid aan PC-hardware verloopt dit niet altijd helemaal succesvol en daarom kan het nodig zijn om de gegevens die &os; achterhaalt te verbeteren. Mocht er al een ander besturingssysteem geïnstalleerd zijn, zoals &windows; of &linux;, dan is het aan te raden de mogelijkheden van dat besturingssysteem te gebruiken om te achterhalen hoe hardware is ingesteld. Als niet volledig bekend is welke instellingen een uitbreidingskaart heeft, dan kan het zijn dat ze op de kaart zelf zijn afgedrukt. Veelvoorkomende IRQ nummers zijn 3, 5 en 7 en IO-poort adressen zijn meestal geschreven als hexadecimale getallen, zoals 0x330. Er wordt aangeraden deze informatie af te drukken of op te schrijven voordat &os; wordt geïnstalleerd. Het kan handig zijn om een tabel te maken, zoals deze: Voorbeeld van beschrijving van componenten Component IRQ IO-poort(en) Opmerkingen Eerste harde schijf N/A N/A 40 GB, Seagate, eerste IDE master cd-rom N/A N/A Eerste IDE slave Tweede harde schijf N/A N/A 20 GB, IBM, tweede IDE master Eerste IDE controller 14 0x1f0 Netwerkkaart N/A N/A &intel; 10/100 Modem N/A N/A &tm.3com; 56K faxmodem, op COM1
Maak een back-up van gegevens Als de computer waarop &os; geïnstalleerd gaat worden waardevolle gegevens bevat, dan dient er een back-up te zijn en dient deze back-up getest te zijn voordat &os; wordt geïnstalleerd. De &os; installatieprocedure vraagt om bevestiging voordat er naar de schijven geschreven wordt, maar als dat eenmaal is begonnen kan het niet meer teruggedraaid worden. Bepaal waar &os; geïnstalleerd wordt Als de hele harde schijf voor &os; beschikbaar is, dan hoeft op dit punt verder niets gedaan te worden. Ga verder naar de volgende sectie. Als &os; echter naast een ander besturingssysteem op een computer komt, dan moet basaal bekend zijn hoe gegevens op schrijven worden opgeslagen en wat dat voor consequenties heeft. Indeling van schrijven voor &i386; Een PC schijf kan worden onderverdeeld in aparte stukken. Deze stukken heten partities. In het ontwerp van de PC is opgenomen dat een schijf slechts vier partities kan bevatten. Deze partities heten de primaire partities. Om deze beperking te omzeilen is een nieuwe soort partitie bedacht, de extended partitie. Een schijf kan slechts één extended partitie bevatten. Binnen een extended partitie kunnen speciale partities, genaamd logische partities, worden aangemaakt. Elke partitie heeft een partitie-ID, een getal dat aangeeft welk soort gegevens er op die partitie staan. &os;-partities hebben partitie-ID 165. In zijn algemeenheid benoemt elk besturingssysteem partities op zijn eigen manier. Bijvoorbeeld: &ms-dos; en zijn afgeleiden, zoals &windows;, geven elke primaire en logische partitie een (station) letter, beginnend met C:. &os; moet geïnstalleerd worden op een primaire partitie. &os; kan al zijn gegevens, inclusief alle bestanden die zelf zijn gemaakt, op deze partitie opslaan. Als er meerdere schijven zijn, dan kunnen er &os;-partities worden aangemaakt op alle of op sommige schijven. Als &os; wordt geïnstalleerd moet er een partitie beschikbaar zijn. Dit kan een lege partitie zijn die is aangemaakt of het mag een bestaande partitie zijn met gegevens die niet langer bewaard hoeven te blijven. Als alle partities op alle schijven gebruikt worden, dan moet er een leeg gemaakt worden voor &os; met de hulpprogramma's van het andere besturingssysteem dat wordt gebruikt (bijvoorbeeld fdisk onder &ms-dos; of &windows;). Als er een partitie over is, dan kan die gebruikt worden. Het kan zo zijn dat één of meer van de bestaande partities verkleind moet worden. Een minimale installatie van &os; heeft 100 MB schijfruimte nodig. Dat is wel een zeer minimale installatie, waarop bijna geen ruimte over is voor eigen bestanden. Een meer realistisch minimum is 250 MB zonder grafische gebruikersomgeving en 350 MB of meer als er ook een grafische gebruikersomgeving moet draaien. Als er ook nog gebruikt gemaakt wordt van een heleboel programma's van derde partijen dan is nog meer ruimte nodig. Met commerciële software zoals &partitionmagic; kunnen partities van grootte gewijzigd worden om ruimte te maken voor &os;. De map tools op de cd-rom bevat twee freeware programma's die dit ook kunnen, FIPS en PResizer. Handleidingen hiervoor staan in dezelfde map. FIPS, PResizer en &partitionmagic; kunnen FAT16 en FAT32-partities wijzigen als ze gebruikt worden in &ms-dos; tot &windows; ME. &partitionmagic; is het enige van de bovenstaande programma's dat NTFS-partities kan wijzigen. Verkeerd gebruik van deze programma's kan gegevens van een schijf verwijderen. Er dient een goede, werkende back-up te zijn voordat deze programma's gebruikt worden. Gebruik van een bestaande, ongewijzigde partitie Stel er is al een computer met een enkele 4 GB harde schijf waarop een versie van &windows; is geïnstalleerd en de schijf is verdeeld in twee schijfstations, C: en D:, van elk 2 GB. Er staat 1 GB aan gegevens op C: en 0.5 GB aan gegevens op D:. Dit betekent dat de harde schijf twee partities heeft, één voor elke letter. Alle gegevens op D: kunnen gekopieerd worden naar C:, waardoor de tweede partitie beschikbaar komt voor &os;. Een bestaande partitie verkleinen Stel er is een computer met een enkele 4 GB harde schijf waarop een versie van &windows; is geïnstalleerd. Bij het installeren van &windows; is een grote partitie gemaakt, station C: van 4 GB. Er is 1.5 GB in gebruik en voor &os; is 2 GB schijfruimte wenselijk. Voor een installatie van &os; is één van onderstaande opties de oplossing: Maak een back-up van de &windows; gegevens en installeer &windows; opnieuw, waarbij een partitie van 2 GB wordt aanmaakt bij het installeren. Gebruik één van de bovengenoemde programma's zoals &partitionmagic; om de &windows;-partitie te verkleinen. Schijfindelingen voor Alpha computers Alpha Op Alpha computers is een aparte harde schijf nodig voor &os;. Het is onmogelijk om een schijf te delen met een ander besturingssysteem. Afhankelijk van de Alpha computer kan de schijf een SCSI- of IDE-schijf zijn, als de computer er maar van kan opstarten. Conform de conventies van Digital / Compaq handleidingen is alle SRM invoer weergegeven in hoofdletters. SRM is ongevoelig voor hoofd- en kleine letters. Om de namen en types van de schijven in een machine te achterhalen kan het commando SHOW DEVICE in de SRM console prompt gebruikt worden: >>>SHOW DEVICE dka0.0.0.4.0 DKA0 TOSHIBA CD-ROM XM-57 3476 dkc0.0.0.1009.0 DKC0 RZ1BB-BS 0658 dkc100.1.0.1009.0 DKC100 SEAGATE ST34501W 0015 dva0.0.0.0.1 DVA0 ewa0.0.0.3.0 EWA0 00-00-F8-75-6D-01 pkc0.7.0.1009.0 PKC0 SCSI Bus ID 7 5.27 pqa0.0.0.4.0 PQA0 PCI EIDE pqb0.0.1.4.0 PQB0 PCI EIDE Dit is een voorbeeld van een Digital Personal Workstation 433au en geeft aan dat er drie schijven verbonden zijn met de computer. De eerste is een cd-rom station genaamd DKA0 en de andere twee zijn harde schijven die achtereenvolgens DKC0 en DKC100 heten. Schijven met namen in het formaat DKx zijn SCSI schijven. DKA100 is bijvoorbeeld een SCSI schijf met SCSI target ID 1 op de eerste SCSI bus (A), terwijl DKC300 een SCSI schijf is met SCSI ID 3 op de derde SCSI bus (C). Apparaatnaam PKx is de SCSI host bus adapter. Zoals te zien in de uitvoer van SHOW DEVICE worden SCSI cd-rom stations op dezelfde manier behandeld als SCSI harde schijven. IDE schijven hebben namen in het formaat DQx, terwijl PQx de naam is van de bijbehorende IDE controller. Netwerkgegevens verzamelen Als bij de installatie van &os; gebruik gemaakt wordtvan een netwerk (bijvoorbeeld bij een installatie vanaf een FTP site of een NFS server), dan moeten de netwerkinstellingen bekend zijn. Deze informatie wordt gevraagd tijdens het installeren, zodat &os; contact kan maken met het netwerk om de installatie te voltooien. Contact maken met een ethernet netwerk of kabel/DSL modem Als er contact gemaakt wordt met een ethernet netwerk of een internetverbinding met een ethernet netwerkkaart via de kabel of DSL, dan is de volgende informatie nodig: IP-adres IP-adres van de default gateway Hostname IP-adressen van de DNS server(s) Subnetmasker Als deze informatie niet bekend is, dan kan deze meestal nagevraagd worden bij de systeembeheerder of service provider. Het kan zijn dat zij aangeven dat één en ander automatisch wordt toegekend door middel van DHCP. Het is van belang hier een notitie van te maken. Contact maken met een modem Ook door middel van inbellen bij een internet service provider met een gewoon modem kan &os; geïnstalleerd worden via internet, het duurt alleen erg lang. Dan is nodig: Het inbelnummer van een ISP De COM: poort waaraan de modem zit Gebruikersnaam en wachtwoord bij de ISP Controleer op &os; Errata Hoewel het &os; project er naar streeft om elke versie van &os; zo stabiel mogelijk te laten zijn, kan het voorkomen dat er foutjes in het systeem sluipen. Heel af en toe beïnvloeden deze foutjes de installatieprocedure. Als ze ontdekt en opgelost zijn worden ze beschreven in de &os; Errata op de &os; website. Het is verstandig voor een installatie te controleren of er errata zijn om er zeker van te zijn dat er geen obstakels zijn. Informatie over alle uitgaven, inclusief de errata staan in de release information op de &os; website. De &os; installatiebestanden De &os; installatieprocedure kan &os; installeren vanaf één van de volgende plaatsen: Lokale media Cd-rom of DVD DOS-partitie op dezelfde computer SCSI of QIC tape Diskettestation Netwerk FTP site, indien noodzakelijk door een firewall of via een HTTP proxy NFS server Parallelle of seriële verbinding Als &os; gekocht is op CD of DVD dan is alles wat nodig is aanwezig om door te gaan naar . Als de installatiebestanden nog niet beschikbaar zijn wordt in uitgelegd hoe de installatie via bovenstande methoden voorbereid kan worden. Nadat de installatiebestanden beschikbaar zijn kunnen de voorbereidingen voor de installatie verdergaan in . Opstartmedia aanmaken De &os; installatieprocedure begint met het opstarten van een computer met het &os; installatieprogramma. Dit programma wordt niet uitgevoerd vanuit een ander besturingssysteem. Normaliter start een computer op met het besturingssysteem dat is geïnstalleerd op een harde schijf, maar hij kan ook ingesteld worden om op te starten van een bootable diskette. De meeste hedendaagse computers kunnen ook opstarten van een cd-rom in het cd-rom station. Als &os; op cd-rom of DVD beschikbaar is (gekocht of zelf gebrand) en een computer kan opstarten van een cd-rom of DVD (meestal een BIOS optie genaamd Boot Order of iets dergelijks), dan is het doorwerken van deze sectie niet nodig. De &os; cd-rom en DVD images zijn bootable en kunnen zonder verdere voorbereidingen gebruikt worden om &os; te installeren. Om opstartdiskettes te maken kunnen de volgende stappen gevolgd worden: Bemachtig de images voor opstartdiskettes De opstartschijven zijn beschikbaar op de installatiemedia in de map floppies/ en kunnen ook gedownload worden uit de map floppies, ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<arch>/<versie>-RELEASE/floppies/. Vervang <arch> en <versie> door de architectuur en het versienummer dat geïnstalleerd moet worden. De images voor bootdiskettes voor bijvoorbeeld &os; &rel.current;-RELEASE voor &i386; zijn beschikbaar op . De diskette-images hebben de extensie .flp. De map floppies/ bevat een aantal images en het hangt af van de gewenste &os; versie, en in sommige gevallen ook van de hardware, welke images nodig zijn. Voor het installeren van &os; 4.X zijn meestal maar twee bestanden nodig, kern.flp en mfsroot.flp. Voor het installeren van &os; 5.X zijn in de meeste gevallen drie floppies nodig, boot.flp, kern1.flp en kern2.flp. In dezelfde map staat README.TXT voor de laatste informatie over de diskette-images. Voor 5.X systemen ouder dan &os; 5.3 kunnen extra apparaatstuurprogramma's nodig zijn. Die stuurprogramma's staan op het image drivers.flp. Het FTP-programma moet ingesteld staan in binary mode om de disk-images te downloaden. Sommige webbrowsers blijken de text (of ASCII) modus te gebruiken en dan kan er niet van de diskettes opgestart worden. Maak de diskettes aan Per gedownload image wordt een diskette aangemaakt. Vanzelfsprekend moeten deze diskettes vrij zijn van fouten. Het gemakkelijkst is dit te testen door de diskettes te formatteren. Vanaf de fabriek geformatteerde floppies kunnen niet vertrouwd worden. Het programma format in &windows; meldt niet of er bad blocks zijn, het markeert ze gewoon als bad en negeert ze. Het wordt geadviseerd schone, nieuwe floppies te gebruiken als op deze manier wordt geïnstalleerd. Als bij het installeren van &os; het installatieprogramma vastloopt, blijft hangen of zich op een andere manier vreemd gedraagt, dan ligt dat meestal aan de floppies. Probeer dan de diskette-images op nieuwe schijven te schrijven en probeer het opnieuw. Schrijf de imagebestanden op diskettes De .flp-bestanden zijn geen gewone bestanden die naar een diskette te kopiëren zijn. Het zijn images van de complete inhoud van een diskette. Dit betekent dat ze niet eenvoudigweg gekopieerd kunnen worden van de ene schijf naar de andere. In plaats daarvan moet speciale software gebruikt worden om de images rechtstreeks op de diskettes te schrijven. DOS Als de diskettes aanmaakt worden op een computer met &ms-dos;/&windows;, dan levert het &os; project de software fdimage. Als de floppies van de cd-rom worden gebruikt en het cd-rom station is E:, dan kan dit als volgt: E:\> tools\fdimage floppies\kern.flp A: Herhaal dit commando voor elk .flp-bestand, waarbij steeds een nieuwe diskette wordt gebruikt. Merk elke diskette met de naam van het bestand dat erop wordt gekopieerd. Pas de opdrachtregel steeds aan, afhankelijk van waar de .flp-bestanden staan. Als er geen cd-rom beschikbaar is dan kan fdimage gedownload worden vanuit de map tools op de &os; FTP site. Als de diskettes worden aanmaakt op een &unix; systeem (zoals een ander &os; systeem) dan kan &man.dd.1; gebruikt worden om de imagebestanden naar diskette te kopiëren. Onder &os;: &prompt.root; dd if=kern.flp of=/dev/fd0 Onder &os; verwijst /dev/fd0 naar het eerste diskettestation (de A:-schijf). /dev/fd1 zou de B:-schijf zijn enzovoorts. Andere &unix;-varianten kunnen andere namen hebben voor de diskettestations. Meer informatie staat in de documentatie van ieder systeem . Het installeren van &os; kan nu beginnen.
Beginnen met de installatie De installatie maakt geen wijzigingen op schijven totdat het volgende bericht verschijnt: Last Chance: Are you SURE you want continue the installation? If you're running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents! De installatie kan worden beëindigd op elk moment voor deze laatste waarschuwing zonder dat de inhoud van harde schijven wordt gewijzigd. Als de angst bestaat dat er iets verkeerd is ingesteld, dan kan op dat moment gewoon de computer uitgezet worden zonder dat er schade optreedt. Opstarten Opstarten van &i386; Begin met een computer die uit staat. Zet de computer aan. Als hij aangaat laat hij een optie zien om het systeeminstelmenu, of BIOS, te bereiken, gewoonlijk via F2, F10, Del, of AltS. Gebruik de toets die op het scherm wordt aangegeven. In sommige gevallen laat de computer een plaatje zien terwijl hij opstart. Gewoonlijk verdwijnt dit plaatje door het intypen van Esc zodat eventuele verborgen berichten zichtbaar worden. Zoek de instelling die bepaalt vanaf welk medium de computer opstart. Dit wordt meestal aangeduid met Boot Order en laat een lijst met media zien, zoals Floppy, CD-ROM, eerste harde schijf, enzovoorts. Als het nodig was om diskettes aan te maken, stel dan floppy disk in. Als wordt opstart van een cd-rom stel dat dan in. Raadpleeg in geval van twijfel de documentatie van de computer en/of het moederbord. Maak de instellingen, bewaar de veranderingen en sluit het instelprogramma af. De computer moet dan opnieuw starten. Als het nodig was opstartdiskettes te maken, zoals beschreven in , dan is er één opstartschijf, waarschijnlijk die met kern.flp erop. Stop die diskette in het diskettestation. Bij opstarten vanaf CD moet na het aanzetten van de computer zo snel mogelijk de cd-rom ingestoken worden. Als de computer opstart zoals altijd en met het huidige besturingssysteem begint, dan kan dat om de volgende redenen zijn: De opstartschijven waren niet vroeg genoeg in de computer gedaan om ervan op te starten. Laat ze er dan inzitten en probeer de computer te herstarten. De gemaakte wijzigingen in de BIOS zijn niet goed doorgekomen. Doe dat dan nog een keer totdat de juiste instelling gevonden is. De BIOS ondersteunt het opstarten van het gekozen medium niet. &os; start nu op. Bij opstarten vanaf cd-rom is iets als het volgende op het scherm te zien (versie-informatie weggelaten): Verifying DMI Pool Data ........ Boot from ATAPI CD-ROM : 1. FD 2.88MB System Type-(00) Uncompressing ... done BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive B: is disk1 BIOS drive C: is disk2 BIOS drive D: is disk3 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 0.8 /kernel text=0x277391 data=0x3268c+0x332a8 | | Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _ Bij opstarten vanaf diskette is iets als het volgende op het scherm te zien (versie-informatie weggelaten): Verifying DMI Pool Data BTX loader 1.00 BTX version is 1.01 Console: internal video/keyboard BIOS drive A: is disk0 BIOS drive C: is disk1 BIOS 639kB/261120kB available memory FreeBSD/i386 bootstrap loader, Revision 0.8 /kernel text=0x277391 data=0x3268c+0x332a8 | Please insert MFS root floppy and press enter: Volg de instructies op en haal de diskette met kern.flp eruit, stop de diskette met mfsroot.flp in het station en druk op Enter. &os; 5.3 en latere versies kennen andere diskettesets, zoals beschreven in het vorige onderdeel. Start op vanaf de eerste diskette en geef volgende diskettes in als daarom wordt gevraagd. Of nu wordt opstart van diskette of cd-rom, de opstartprocedure komt op een gegeven moment op het volgende punt: Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _ Wacht 10 seconden of druk op Enter. Voor &os; 4.X start dit het menu voor kernelinstellingen. Opstarten voor Alpha Alpha Begin met een computer die uit staat. Zet de computer aan en wacht op de boot monitor prompt. Als het nodig was opstartdiskettes te maken, zoals beschreven in , dan is er één opstartschijf, waarschijnlijk die met kern.flp erop. Stop die diskette in het diskettestation en geef het volgende commando om op te starten vanaf die schijf (vervang de naam van het diskettestation waar nodig): >>>BOOT DVA0 -FLAGS '' -FILE '' Bij opstarten vanaf cd-rom: stop dan de cd-rom in het cd-rom station en geef het volgende commando om de installatie te starten (vervang daarbij de naam van het cd-rom station als nodig): >>>BOOT DKA0 -FLAGS '' -FILE '' &os; start nu op. Bij opstarten vanaf diskette is op een gegeven moment het volgende op het scherm te zien: Please insert MFS root floppy and press enter: Volg de instructies op en haal de kern.flp diskette eruit, stop de mfsroot.flp diskette erin en druk op Enter. Of nu wordt opstart van diskette of cd-rom, de opstartprocedure komt op een gegeven moment op het volgende punt: Hit [Enter] to boot immediately, or any other key for command prompt. Booting [kernel] in 9 seconds... _ Wacht 10 seconden of druk op Enter. Nu start het menu voor kernelinstellingen. Kernelinstellingen Vanaf &os; versie 5.0 wordt userconfig afgeraden ten gunste van de nieuwe &man.device.hints.5; methode. Zie voor meer informatie over &man.device.hints.5;. De kernel is het hart van het besturingssysteem en verantwoordelijk voor heel veel zaken, waaronder de toegang tot alle componenten in een systeem, zoals harde schijven, netwerkkaarten, geluidskaarten, enzovoorts. Elk apparaat dat door &os; wordt ondersteund heeft een bijbehorend stuurprogramma (ook wel driver genaamd). Elk stuurprogramma heeft een twee of drieletterige naam, zoals sa voor het SCSI sequential access stuurprogramma of sio voor het Seriële I/O stuurprogramma (dat de COM poorten beheert). Als de kernel start controleert elk stuurprogramma of de hardware die wordt ondersteunt in de computer aanwezig is. Als die aanwezig is stelt het stuurprogramma die hardware in en maakt die beschikbaar voor de rest van de kernel. Deze controle wordt gewoonlijk device probing genoemd. Helaas is het niet altijd mogelijk om dit op een veilige manier te doen. Sommige stuurprogramma's voor hardware kunnen niet naast elkaar bestaan en het zoeken naar de ene hardware component laat de andere soms in een verkeerde toestand achter. Dit is een beperking van het PC-ontwerp. Veel oude componenten zijn zogenaamde ISA-apparaten, in tegenstelling tot PCI-apparaten. De ISA-specificatie schrijft voor dat elke component informatie heeft geprogrammeerd heeft in de component zelf, zoals bijvoorbeeld het Interrupt Request Line nummer (IRQ) en het IO-poortadres dat het stuurprogramma gebruikt. Dit wordt normaliter ingesteld met fysiek aanwezige jumpers op de kaart of met een DOS gebaseerd programma. Dit was vaak de bron van allerlei problemen, omdat het niet mogelijk is dat twee componenten hetzelfde IRQ of poortadres delen. Nieuwere componenten volgen de PCI-specificatie, waarbij dit niet nodig is, omdat de componenten geacht worden samen te werken met het BIOS en hen aangegeven wordt welk IRQ en poortadres zij moeten gebruiken. Als er ISA-componenten in een computer zitten moet het &os; stuurprogramma voor dat apparaat ingesteld worden voor het IRQ en poortadres dat op de kaart is ingesteld. Dat is waarom het handig is een inventarisatie van een computer te maken (zie ). Helaas, sommige standaard IRQ's en geheugenpoorten die in gebruik zijn door stuurprogramma's conflicteren. Dat komt doordat sommige ISA-kaarten geleverd worden met IRQ's en geheugenpoorten die conflicteren. De standaardwaarden in de &os; stuurprogramma's zijn bewust zo ingesteld dat zij de standaardwaarden van de leverancier volgen, waardoor, vers geïnstalleerd, zoveel mogelijk kaarten werken. Dit is bijna nooit een probleem bij het dagelijks gebruik van &os;. Een computer bevat normaliter geen twee kaarten die conflicteren, want één van de twee werkt dan niet (onafhankelijk van het besturingssysteem dat wordt gebruikt). Het is wel een probleem bij het voor de eerste keer installeren van &os;, omdat de kernel die gebruikt wordt bij de installatie zoveel mogelijk stuurprogramma's bevat, zodat zoveel mogelijk verschillende hardware ondersteund wordt. Dit heeft tot gevolg dat sommige stuurprogramma's conflicterende instellingen kunnen hebben. De apparaten worden onderzocht in een voorgeschreven volgorde en als er een kaart in een systeem zit die achteraan in het onderzoeksproces zit en conflicteert met een eerdere kaart, dan kan het zijn dat die kaart niet functioneert of niet juist herkend wordt bij de installatie van &os;. Daarom kan bij het installeren van &os; eerst bekeken worden welke stuurprogramma's er in de kernel ingesteld zijn en kunnen er enkele uitgeschakeld worden voor componenten die niet in het te installeren systeem zitten. Daarnaast kunnen de instellingen van een stuurprogramma bevestigd of gewijzigd worden als er een component in zit waarvan de standaardwaarden verkeerd staan. Dit klinkt waarschijnlijk ingewikkelder dan het in werkelijkheid is. toont het menu kernelinstellingen. We raden aan de optie Start kernel configuration in full-screen visual mode te kiezen. Dat is de meest eenvoudige interface voor nieuwe gebruikers.
Menu kernelinstellingen &txt.install.userconfig;
Het scherm voor het menu kernelinstellingen () is verdeeld in vier onderdelen: Een uitklapbare lijst met alle stuurprogramma's die als actief zijn gemarkeerd, onderverdeeld in groepen zoals Storage (opslag), en Network (netwerk). Bij elk stuurprogramma staat een beschrijving, de twee- of drieletterige naam van het stuurprogramma en de IRQ en geheugenpoort in gebruik door het stuurprogramma. Daarnaast wordt met CONF naast het stuurprogramma aangegeven of dit conflicteert met een ander stuurprogramma. Dit onderdeel laat tevens zien hoeveel conflicterende stuurprogramma's als actief gemarkeerd zijn. Stuurprogramma's die gemarkeerd zijn als inactief. Ze blijven in de kernel, maar er wordt niet gezocht naar hun apparaat als de kernel start. Deze stuurprogramma's zijn op dezelfde manier onderverdeeld als de actieve stuurprogramma's. Meer details over het geselecteerde stuurprogramma, inclusief de IRQ en geheugenpoort. Informatie over de geldige toetsaanslagen.
Het menu kernelapparaatinstellingen &txt.install.userconfig2;
De rapportage van conflicten is geen reden tot zorg, dat is te verwachten. Alle stuurprogramma's zijn ingeschakeld en zoals reeds uitgelegd conflicteren sommige stuurprogramma's met elkaar. Nu moet de lijst met stuurprogramma's doorgewerkt worden en kunnen de conflicten worden oplost. Stuurprogrammaconflicten oplossen Toets X. Hierdoor klapt de lijst met stuurprogramma's volledig uit, zodat ze allemaal te zien zijn. Met de pijltjestoetsen kan door de lijst met actieve stuurprogramma's genavigeerd worden. toont het resultaat van de toets X.
Uitgeklapte lijst stuurprogramma's
Schakel alle stuurprogramma's voor apparaten die niet in een systeem zitten uit. Selecteer een stuurprogramma met de pijltjestoetsen en druk op Del om een stuurprogramma uit te zetten. Het stuurprogramma wordt verplaatst naar de lijst Inactive Drivers. Als per ongeluk een stuurprogramma is uitzet dat toch nodig is, druk op Tab om naar de lijst met Inactive Drivers te gaan, selecteer het stuurprogramma en druk op Enter om het weer terug te zetten in de actieve lijst. Zet sc0 niet uit. Dit stuurprogramma bestuurt het scherm en dat is nodig, behalve als over een seriële kabel wordt geïnstalleerd. Zet atkbd0 alleen uit als een USB toetsenbord wordt gebruikt. Met een normaal toetsenbord moet atkbd0 actief blijven. Als er geen conflicten zijn kan deze stap overgeslagen worden. Anders moeten de overgebleven conflicten worden uitgezocht. Als ze niet de melding allowed conflict in het berichtendeel hebben, dan moet het IRQ of adres voor het apparaat wijzigen of moet het IRQ of adres op de kaart gewijzigd worden. Selecteer het stuurprogramma en druk op Enter om de IRQ en poortinstellingen van het stuurprogramma te wijzigen. De cursor gaat naar het derde deel van het scherm en daar kunnen de waarden gewijzigd worden. Hier kunnen de waarden voor IRQ en poortadres ingevuld worden die bij de hardware-inventarisatie zijn aangetroffen. Druk op Q om het wijzigen van de apparaatinstellingen te beëindigen en terug te gaan naar de lijst met actieve stuurprogramma's. Als niet helder is wat de instellingen moeten zijn, dan kan de instelling -1 geprobeerd worden. Sommige &os; stuurprogramma's kunnen veilig de hardware onderzoeken om te ontdekken wat de juiste instellingen zijn en de waarde -1 zorgt ervoor daarvoor. De manier om het adres op de hardware te wijzigen verschilt van kaart tot kaart. Voor sommige onderdelen moet de kaart uit de computer gehaald worden en dan kunnen de jumperinstellingen of DIP-switches veranderd worden. Andere kaarten hebben een DOS-diskette dat programma's bevat om de instellingen van de kaart te wijzigen. Lees in elk geval de documentatie die bij de kaart zit. Na het wijzigen van de instellingen dient zeer waarschijnlijk de computer opnieuw gestart te moeten worden en daarmee dus ook de &os; installatieprocedure. Als alle conflicten zijn opgelost dan ziet het scherm er ongeveer uit als in .
Stuurprogrammainstellingen zonder conflicten
Het is te zien dat de lijst met actieve stuurprogramma's nu veel korter is, omdat er alleen maar stuurprogramma's in staan voor apparaten die echt in de computer zitten. Bewaar de wijzigingen en ga verder met de volgende stap van de installatie. Druk op Q om het scherm met apparaatinstellingen te verlaten. Dit bericht verschijnt: Save these parameters before exiting? ([Y]es/[N]o/[C]ancel) Antwoord Y om de parameters te bewaren in het geheugen (ze worden naar schijf geschreven als de installatie is afgerond) en het onderzoeken van de hardware begint. Na het tonen van de resultaten daarvan in zwart/wit start sysinstall en wordt het hoofdmenu getoond ().
Hoofdmenu Sysinstall
Resultaten van het hardware-onderzoek bekijken De laatste paar honderd regels die op het scherm verschenen zijn bewaard en kunnen bekeken worden. Druk op Scroll Lock om ze te bekijken. Hiermee wordt de scrollmodus ingeschakeld. Gebruik de pijltjestoetsen en PageUp en PageDown om de resultaten te bekijken. Druk weer op Scroll Lock om de scrollmodus uit te schakelen. Dit kan nu gedaan worden om de tekst te bekijken die over het scherm rolde terwijl de kernel de hardware onderzocht. Er is tekst te zoals in , maar de exacte tekst is anders, afhankelijk van de componenten in een computer.
Voorbeeld resultaten hardware-onderzoek avail memory = 253050880 (247120K bytes) Preloaded elf kernel "kernel" at 0xc0817000. Preloaded mfs_root "/mfsroot" at 0xc0817084. md0: Preloaded image </mfsroot> 4423680 bytes at 0xc03ddcd4 md1: Malloc disk Using $PIR table, 4 entries at 0xc00fde60 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1:<VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 isa0: <iSA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0 <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci 0 usb0: <VIA 83572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1 uhub0: 2 ports with 2 removable, self powered pci0: <unknown card> (vendor=0x1106, dev=0x3040) at 7.3 dc0: <ADMtek AN985 10/100BaseTX> port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir q 11 at device 8.0 on pci0 dc0: Ethernet address: 00:04:5a:74:6b:b5 miibus0: <MII bus> on dc0 ukphy0: <Generic IEEE 802.3u media interface> on miibus0 ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xec00-0xec1f irq 9 at device 10. 0 on pci0 ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit) isa0: too many dependant configs (8) isa0: unexpected small tag 14 orm0: <Option ROM> at iomem 0xc0000-0xc7fff on isa0 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/@ mouse, device ID 0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x100 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold plip0: <PLIP network interface> on ppbus0 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master UDMA33 acd0: CD-RW <LITE-ON LTR-1210B> at ata1-slave PIO4 Mounting root from ufs:/dev/md0c /stand/sysinstall running as init on vty0
Controleer de resultaten van het hardware-onderzoek nauwgezet om er zeker van te zijn dat &os; alle componenten gevonden heeft die verwacht worden. Als een component niet is gevonden, dan komt die niet voor. Als het nodig was de instellingen van het stuurprogramma voor een component te wijzigen, controleer dan of de juiste waarden zijn ingevuld. Als er wijzigingen gemaakt moeten worden dan is de meest eenvoudige wijze het programma sysinstall te beëindigen en opnieuw te beginnen. Dit is tevens een goede manier om vertrouwd te raken met het installatieproces.
Sysinstall verlaten
Gebruik de pijltjestoetsen om in het hoofdmenu Exit Install te selecteren. Het volgende bericht verschijnt: User Confirmation Requested Are you sure you wish to exit? The system will reboot (be sure to remove any floppies from the drives). [ Yes ] No Het installatieprogramma start opnieuw als de cd-rom nog in het station zit en &gui.yes; gekozen wordt. Bij opstarten van diskettes is het nodig om de diskette met mfsroot.flp uit het station te halen en te vervangen door de diskette met kern.flp voor opnieuw wordt gestart.
Inleiding Sysinstall Het hulpprogramma sysinstall is het installatieprogramma voor &os;. Het is tekstgebaseerd en is onderverdeeld in een aantal menu's en schermen die gebruikt kunnen worden om de installatieprocedure in te stellen en te beheren. Het menu van sysinstall wordt bestuurd met de pijltjestoetsen, Enter, Space en andere toetsen. Een gedetailleerde beschrijving van de gebruikte toetsen en wat ze doen is opgenomen in de gebruikersinformatie voor sysinstall. Selecteer de optie Usage om deze informatie te lezen. Selecteer de knop [Select], zoals in , en druk op Enter. De instructies om het menusysteem te gebruiken worden getoond. Na het lezen kan met Enter het hoofdmenu weer getoond worden.
Usage selecteren in het sysinstall hoofdmenu
Menu Documentation selecteren Kies met de pijltjestoetsen in het hoofdmenu Doc en druk op Enter.
Menu Documentation selecteren
Dit toont het menu Documentation.
Sysinstall menu Documentation
Het is belangrijk om de documentatie te lezen. Selecteer een document met de pijltjestoetsen en druk op Enter om het te bekijken. Na het lezen wordt met Enter teruggekeerd naar het menu Documentation. Selecteer Exit met de pijltjestoetsen en druk op Enter om het menu Documentation te verlaten.
Menu Keymap selecteren Kies met de pijltjestoetsen Keymap in het menu en druk op Enter om de toetsenbordinstellingen te wijzigen. Dit is alleen nodig als geen standaard of VS-toetsenbord wordt gebruikt.
Sysinstall hoofdmenu
Een andere toetsenbordindeling is te kiezen door het menuitem te selecteren met omhoog/omlaag en dan op Space te drukken. Nog een keer Space deselecteert het item. Nadat de keuze is gemaakt kan met de pijltjestoetsen &gui.ok; gekozen worden en op Enter gedrukt worden. In de schermafbeelding wordt maar een deel van de lijst getoond. Selecteer &gui.cancel; door op Tab te drukken. Dan wordt de standaard toetsenbordindeling gebruikt en het programma gaat terug naar het hoofdmenu voor de installatie.
Sysinstall menu Keymap
Installatiescherm Options Kies Options en druk op Enter.
Sysinstall hoofdmenu
Sysinstall opties
De standaardwaarden zijn in orde voor de meeste gebruikers en hoeven meestal niet gewijzigd te worden. De release name hangt af van de versie die geïnstalleerd wordt. Er staat een beschrijving van het geselecteerde item aan de onderkant van het scherm, geaccentueerd in blauw. Eén van de opties is Use Defaults waarmee opnieuw de beginwaarden worden ingesteld. Druk op F1 om de helptekst van de diverse opties te bekijken. Druk op Q om terug te gaan naar het hoofdmenu van de installatie.
Een standaardinstallatie starten De Standard installatie wordt aangeraden voor nieuwe gebruikers van &unix; of &os;. Gebruik de pijltjestoetsen om Standard te selecteren en druk op Enter om de installatie te starten.
Een standaardinstallatie starten
Schijfruimte toewijzen Als eerste moet schijfruimte aan &os; worden toegewezen en die ruimte dient gemerkt te worden zodat sysinstall deze kan voorbereiden.Om dit te kunnen doen is kennis nodig over hoe &os; informatie op schijven verwacht aan te treffen. BIOS schijfnummering Voordat &os; op een systeem geïnstalleerd en ingesteld kan worden is er een belangrijk onderwerp waarover kennis nodig is, met name als er meerdere harde schijven zijn. &ms-dos; µsoft.windows; Op een PC met een BIOS-afhankelijk besturingssysteem zoals &ms-dos; en µsoft.windows;, kan het BIOS de normale schijfvolgorde abstraheren en volgt het besturingssysteem die wijzigingen. Dit stelt de gebruiker in staat op te starten van een andere schijf dan de zogenaamde primary master. Dit is erg handig voor gebruikers die er achter zijn gekomen dat de gemakkelijkste en goedkoopste manier om een systeemback-up te maken het plaatsen van een identieke tweede harde schijf is en het daarop regelmatig kopieëren van de inhoud van de eerste schijf met Ghost of XCOPY. Als de eerste schijf weigert of aangevallen is door een virus of vervuild is door een fout in het besturingssysteem, dan kan eenvoudig overgeschakeld worden door in het BIOS de twee schijven logisch te wisselen. Dat is als het verwisselen van de kabels, maar dan zonder de systeemkast open te maken. SCSI BIOS Duurdere systemen met SCSI controllers hebben vaak BIOS-uitbreidingen die het mogelijk maken SCSI-schijven op soortgelijke wijze in te delen voor maximaal zeven schijven. Een gebruiker die gewend is hiervan gebruik te maken kan verrast worden als de resultaten met &os; niet overeenkomen met de verwachtingen. &os; maakt geen gebruik van het BIOS en heeft dus geen kennis van logical BIOS drive mapping. Dit kan leiden tot verbazingwekkende situaties, met name als de schijven fysiek gelijk zijn in geometrie en ook de data clonen van elkaar zijn. Bij het gebruik van &os; moet altijd de natuurlijke schijfnummering hersteld worden voordat een installatie wordt gestart en die moet ook zo blijven. Als de schijven gewisseld moeten worden, dan moet dat op de moeilijke manier: maak de systeemkast open en verplaats jumpers en kabels. Uit de verbazingwekkende avonturen van Willem en Fred Willem sloopt een oude Wintel machine om er nog een &os; machine voor Fred van te maken. Willem installeert een enkele SCSI-schijf met SCSI ID 0 en installeert er &os; op. Fred begint met systeem te werken, maar na een paar dagen komt hij er achter dat de oude SCSI-schijf veel fouten geeft en hij geeft het door aan Willem. Na weer een paar dagen besluit Willem dat het tijd is om er iets aan te doen, dus hij pakt een identieke SCSI-schijf uit het archief met schijven in een achterkamertje. Een oppervlaktecontrole toont aan dat deze schijf goed functioneert, dus Willem installeert deze schijf als SCSI ID 4 en maakt een image kopie van schijf 0 naar schijf 4. Nu de nieuwe schijf is geïnstalleerd en het prima doet, besluit Willem dat het een goed idee is om hem in bedrijf te nemen, dus gebruikt hij de mogelijkheid van het BIOS om de schijven te hernummeren, om er voor te zorgen dat het systeem opstart van schijf 4. &os; start op en werkt goed. Fred werkt nog een paar dagen door en vlot besluiten Willem en Fred dat het tijd is voor een nieuw avontuur: tijd op om te waarderen naar een nieuwere versie van &os;. Willem haalt SCSI unit 0 eruit, want die was een beetje instabiel en vervangt hem door een andere schijf uit het archief. Willem installeert vervolgens de nieuwe versie van &os; op de nieuwe SCSI ID 0 met Fred's magische internet FTP diskettes. De installatie gaat goed. Fred gebruikt de nieuwe versie van &os; een paar dagen en bevestigt dat die goed genoeg is om gebruikt te worden op de programmeerafdeling. Het is tijd om al zijn werk vanaf de oude versie te kopiëren. Dus Fred mount SCSI ID 4 (de laatste kopie van de oudere &os; versie). Fred baalt behoorlijk als hij ontdekt dat niets van zijn kostbare werk aanwezig is op SCSI ID 4. Waar is de data gebleven? Toen Willem een zuivere kopie van de originele SCSI ID 0 maakte op SCSI ID 4, werd SCSI ID 4 de nieuwe kloon. Toen Willem het SCSI BIOS zo instelde dat hij kon opstarten van SCSI ID  4 hield hij zichzelf gewoonweg voor de gek. &os; draaide nog steeds op SCSI ID 0. Dit soort wijzigingen in het BIOS zorgen ervoor dat sommige of alle opstart- en laadprogramma's van de geselecteerde BIOS schijf komen, maar als de &os; kernelstuurprogramma's het overnemen, wordt de BIOS nummering genegeerd en valt &os; terug op de normale schijfnummering. In dit voorbeeld werkte het systeem nog steeds op de originele SCSI ID 0 en Fred's gegevens stonden daarop en niet op SCSI ID 4. Het feit dat het systeem leek te draaien vanaf SCSI ID 4 was eenvoudig een luchtkasteel als gevolg van menselijke verwachtingspatronen. Verheugd kunnen we mededelen dat er geen enkele byte weggegooid is bij de ontdekking van dit verschijnsel. De oude SCSI-schijf ID 0 werd teruggehaald van de stapel en al Fred's werk is aan hem teruggegeven (en Willem weet nu dat hij al tot 0 kan tellen). Hoewel in dit voorbeeld SCSI-schijven zijn gebruikt, geldt hetzelfde voor IDE-schijven. Slices maken met <application>FDisk</application> Wijzigingen die op dit punt gemaakt worden, worden niet weggeschreven naar de schijf. Als er een fout gemaakt is kan opnieuw begonnen worden door via de menu's sysinstall te verlaten en het nog een keer te proberen of door U te toetsen kan de optie Undo gebruikt worden. Als alles te verwarrend is kan zelfs de computer uitgezet worden. Na de keuze een standaardinstallatie te beginnen toont sysinstall het volgende bericht: Message In the next menu, you will need to set up a DOS-style ("fdisk") partitioning scheme for your hard disk. If you simply wish to devote all disk space to FreeBSD (overwriting anything else that might be on the disk(s) selected) then use the (A)ll command to select the default partitioning scheme followed by a (Q)uit. If you wish to allocate only free space to FreeBSD, move to a partition marked "unused" and use the (C)reate command. [ OK ] [ Press enter or space ] Toets Enter. Er wordt dan een lijst getoond met alle harde schijven die de kernel gevonden heeft bij het onderzoeken van de hardware. toont een voorbeeld van een systeem met twee IDE-schijven. Ze heten ad0 en ad2.
Schijf kiezen voor FDisk
Waarom staat ad1 niet in de lijst? Stel er zitten twee IDE-schijven in een systeem, de eerste als master op de eerste IDE controller en de andere als master op de tweede IDE controller. Als &os; deze zou nummeren zoals ze worden aangetroffen, als ad0 en ad1, dan zou het allemaal werken. Maar als dan een derde schijf wordt toevoegd, als slave op de eerste IDE controller, dan wordt die ad1 en de vorige ad1 wordt dan ad2. Omdat apparaatnamen (zoals ad1s1a) in gebruik zijn om bestandssystemen te vinden, lijken bestandssystemen niet meer in orde zijn en moeten de &os; instellingen gewijzigd worden. Om dit te omzeilen kan de kernel zo ingesteld worden dat de IDE schijven namen krijgen gebaseerd op hun lokatie en niet in de volgorde waarin ze gevonden worden. Met dat schema wordt de masterschijf op de tweede IDE controller altijd ad2, ook als er geen ad0 of ad1 apparaten zijn. Dit is de standaardinstelling van de &os; kernel, vandaar dat dit scherm ad0 en ad2 laat zien. De machine waarop deze schermafdruk gemaakt is had IDE schijven op beide masterkanalen van de IDE controllers en geen schijven op de slavekanalen. Nu kan de schijf waarop de &os; installatie moet komen worden geselecteerd. Druk daarna op &gui.ok;. FDisk start op met een scherm vergelijkbaar met . Het scherm van FDisk bestaat uit drie delen. Het eerste deel, de eerste twee regels van het scherm, toont de details zien van de selecteerde schijf, inclusief de &os; naam, de schijfgeometrie en de totale grootte van de schijf. Het tweede deel laat de slices zien die momenteel op de schijf aanwezig zijn, waar ze beginnen en eindigen, hoe groot ze zijn en de namen die &os; ze geeft, hun omschrijving en sub-type. In dit voorbeeld zijn twee kleine ongebruikte delen te zien, die een afspiegeling zijn van de schijfindeling op het systeem. Het laat ook een grote FAT-slice zien, die bijna zeker zichtbaar is als C: in &ms-dos; of &windows;, en een extended deel, dat de andere schijfletters kan bevatten voor &ms-dos; of &windows;. Het derde deel toont de commando's zien die beschikbaar zijn in FDisk.
Typische FDisk partities voor wijzigen
De volgende stap hangt af van hoe de schijf moet worden opgedeeld. Als de hele schijf voor &os; wordt gebruikt (waardoor alle andere data op die schijf verwijderd wordt als later in de procedure met sysinstall wordt bevestigd dat de installatie verder kan gaan) toets dan A, de optie Use Entire Disk. De bestaande delen worden verwijderd en daarvoor in de plaats komt een klein gebied, dat als unused wordt aangegeven (alweer een afspiegeling van de PC schijf-opmaak) en dan een groot deel voor &os;. Hierna dient het nieuwe &os;-deel met de pijltjestoetsen geselecteerd te worden en daarna kan S ingetoetst worden om het deel bootable te maken. Het scherm ziet er dan ongeveer uit als in . Let op de A in de kolom Flags. Deze geeft aan dat dit deel actief is en er van opgestart wordt. Als er ruimte voor &os; gemaakt wordt door een bestaande slice te verwijderen, dan moet dat deel geselecteerd worden met de pijltjestoetsen en kan vervolgens op D gedrukt worden. Daarna kan C getoetst worden en wordt er gevraagd hoe groot het deel moet zijn. Geef het gewenste getal in en druk op Enter. De standaardwaarde in dit invoervak is het grootst mogelijke deel dat gemaakt kan worden. Dat kan de grootst mogelijke aaneengesloten ruimte op de harde schijf zijn of de hele schijf. Als er al ruimte gemaakt is voor &os; (bijvoorbeeld met een programma als &partitionmagic;), dan kan de optie C gebruikt worden om een nieuw deel te maken. Opnieuw komt de vraag naar de grootte van het gebied dat aangemaakt moet worden.
FDisk partitie voor een hele schijf
Toets na afronding Q. De wijzigingen worden bewaard in sysinstall, maar worden nog niet op de schijf weggeschreven.
Bootmanager installeren Hierna is het mogelijk een bootmanager te installeren. Het installeren van de &os; bootmanager is verstandig als: Er meer dan één schijf in een systeem zit en &os; op een andere dan de eerste schijf wordt geïnstalleerd; &os; geïnstalleerd wordt naast een ander besturingssysteem op dezelfde schijf en er bij het opstarten van de computer gekozen moet worden of &os; of het andere besturingssysteem wordt gestart. Als &os; het enige besturingssysteem op een computer wordt en het is geïnstalleerd op de eerste harde schijf, dan volstaat de Standard bootmanager. Kies None als een bootmanager van een derde partij wordt gebruikt die in staat is om &os; te starten. Maak de keuze en druk op Enter.
Sysinstall menu Boot Manager
Het helpscherm, bereikbaar via F1, beschrijft de problemen die mogelijk zijn als de harde schijf voor meerdere besturingssystemen gebruikt gaat worden.
Slices maken op een andere schijf Als er meer dan één schijf is komt het programma terug in het scherm Select Drives na het installeren van de bootmanager. Als &os; wordt geïnstalleerd op meerdere schijven, selecteer dan een andere schijf en herhaal het indelen van de schijf met FDisk. Als &os; wordt geïnstalleerd op een andere dan de eerste schijf, dan moet de &os; bootmanager geïnstalleerd worden op beide schijven.
Schijf selecteren verlaten
Met Tab wordt gewisseld tussen de laatst geselecteerde schijf, &gui.ok; en &gui.cancel;. Druk één keer op Tab om &gui.ok; actief te maken en druk dan op Enter om door te gaan met de installatie.
Partities maken met <application>Disklabel</application> Nu moeten er slices in elke zojuist aangemaakte partitie aangemaakt worden. Onthoud dat elke partitie een letter heeft van a tot en met h en dat partities b, c en d een betekenis hebben die gehonoreerd moet worden. Bepaalde programma's hebben voordeel van specifieke partitieschema's, met name als partities worden aanmaakt over meerdere schijven. Maar voor nu, als eerste &os; installatie, is het niet zo van belang hoe de schijf wordt gepartitioneerd. Het is belangrijker dat &os; wordt geïnstalleert en geleerd wordt hoe ermee te werken. &os; kan altijd opnieuw geïnstalleerd worden om een partitieschema te wijzigen als er meer bekendheid is met het besturingssysteem. Het onderstaande schema heeft vier partities. Eén als swapgebied en drie voor bestandssystemen. Partitieopmaak voor de eerste schijf Partitie Bestandssysteem Grootte Omschrijving a / 100 MB Dit is het root-bestandssysteem. Elk ander bestandssyteem wordt ergens in dit systeem gemount. 100 MB is een redelijke grootte voor dit bestandssysteem. Er wordt niet al te veel data in opgeslagen, want een normale &os; installatie slaat hier ongeveer 40 MB aan gegevens op. De rest van de ruimte is voor tijdelijke gegevens en laat extra ruimte over voor het geval nieuwere versies van &os; meer ruimte nodig hebben in /. b N/A 2-3 x RAM De swapruimte van een systeem wordt op deze partitie opgeslagen. De keuze van de juiste hoeveelheid swapruimte is een beetje een kunst. Een goede vuistregel is dat swapruimte twee of drie keer de hoeveelheid intern geheugen (RAM) moet zijn. Er moet minstens 64 MB aan swap zijn, dus als er minder dan 32 MB RAM in een computer zit, zet dan de swapruimte op 64 MB. Als er meer dan één schijf in een computer zit, dan kan er op iedere schijf swapruimte gemaakt worden. &os; gebruikt dan elke schijf als swap, wat effectief de snelheid van het swappen verhoogt. Bereken in dat geval de totale hoeveelheid swap die nodig is (bijv. 128 MB) en deel dat door het aantal schijven dat aanwezig is (bijvoorbeeld twee schijven) om de hoeveelheid swap per schijf te bepalen, in dit voorbeeld 64 MB swapruimte per schijf. e /var 50 MB De map /var bevat bestanden die constant veranderen: logboekbestanden en andere administratieve bestanden. Veel van deze bestanden worden intensief gelezen of beschreven gedurende het dagelijks draaien van &os;. Door deze bestanden op een apart bestandssysteem te zetten heeft &os; de mogelijkheid de toegang tot deze bestanden te optimaliseren, zonder invloed te hebben op bestanden in andere map die niet zo'n toegangspatroon hebben. f /usr Overige schijfruimte Alle andere bestanden worden gewoonlijk opgeslagen in /usr en submappen.
Als &os; wordt geïnstalleerd op meer dan één schijf dan moeten ook partities aangemaakt worden op de andere slices die zijn ingesteld. De meest eenvoudige manier om dat te doen is het aanmaken van twee partities op elke schijf: een als swap en een voor een bestandssysteem. Partitieopmaak voor volgende schijven Partitie Bestandssysteem Grootte Omschrijving b N/A Zie omschrijving Zoals beschreven kan swapruimte over alle schijven verdeeld worden. Ook al is de a partitie vrij, de conventie schrijft voor dat de swapruimte op partitie b staat. e /diskn Overige schijfruimte De overige schijfruimte wordt gebruikt voor één grote partitie. Dit kan gemakkelijk op de a-partitie, in plaats van de e-partitie. De conventie schrijft echter voor dat partitie a op een slice is gereserveerd voor het bestandssysteem dat de root (/) van het bestandssysteem is. Deze conventie hoeft niet gevolgd te worden, maar sysinstall doet dat wel, dus als de conventie wordt nageleefd wordt de installatie iets schoner. Er kan gekozen worden om dit bestandssysteem waar dan ook te mounten. Dit voorbeeld suggereert dat het wordt gemount als /diskn, waarbij n een getal is dat verandert voor elke schijf. Er kan natuurlijk ook een ander schema worden aanhouden als dat de voorkeur heeft.
Na het kiezen van de partitieopmaak kunnen ze worden aangemaakt met sysinstall. Dan verschijnt het volgende bericht: Message Now, you need to create BSD partitions inside of the fdisk partition(s) just created. If you have a reasonable amount of disk space (200MB or more) and don't have any special requirements, simply use the (A)uto command to allocate space automatically. If you have more specific needs or just don't care for the layout chosen by (A)uto, press F1 for more information on manual layout. [ OK ] [ Press enter or space ] Druk op Enter om de &os; partitie-editor, Disklabel te starten. toont het scherm als Disklabel opstart. Het scherm bestaat uit drie delen. De eerste paar regels tonen de naam van de actieve schijf en het gebied dat de partities bevat die worden aangemaakt (op dit punt noemt Disklabel dit de Partitienaam in plaats van de slicenaam). Dit scherm toont ook de hoeveelheid vrije ruimte in de slice. Dat is de gereserveerde ruimte in de slice die nog niet aan een partitie is toegewezen. Het middelste deel toont de partities die aangemaakt zijn, de naam van het bestandssysteem dat elke partitie bevat, de grootte en enkele opties betreffende het aanmaken van het bestandssysteem. Het onderderste deel van het scherm toont de toetsaanslagen die geldig zijn in Disklabel.
Sysinstall Disklabel Editor
Disklabel kan automatisch de partities aanmaken en ze de standaardgrootte geven. Dit kan door op A te drukken. Dan verschijnt een scherm zoals in . Afhankelijk van de grootte van de schrijf die wordt gebruikt zijn de standaardwaarden wel of niet van toepassing. Dit maakt niets uit, omdat de standaardaarden niet geaccepteerd hoeven te worden. Vanaf &os; 4.5 geeft de standaard partitionering de map /tmp zijn eigen partitie en is die geen onderdeel meer van de partitie /. Dit voorkomt het vollopen van de partitie / met tijdelijke bestanden.
Sysinstall Disklabel Editor met standaardwaarden
Als er gekozen is om niet de standaard partities te gebruiken en ze te vervangen door een eigen indeling, gebruik dan de pijltjestoetsen om de eerste partitie te selecteren en druk dan op D om deze te verwijderen. Herhaal dit om alle aanbevolen partities te verwijderen. Selecteer het juiste schijfdeel aan de bovenkant van het scherm om de eerste partitie aan te maken (a, gemount als / – root) en druk op C. Een dialoogscherm verschijnt met de vraag hoe groot de nieuwe partitie moet zijn (zoals te zien in ). De grootte kan opgeven worden in schijfblokken of als een getal gevolgd door M voor megabytes, G voor gigabytes of C voor cylinders. Vanaf &os; 5.X kunnen gebruikers UFS2 kiezen (de standaard op &os; 5.1 en hoger) met de optie Custom Newfs (Z), labels maken met de optie Auto Defaults en ze wijzigen met de optie Custom Newfs of toevoegen bij de standaard aanmaakmethode. Vergeet niet de optie toe te voegen voor SoftUpdates als de optie Custom Newfs wordt gebruikt!
Vrije ruimte voor de rootpartitie
De standaardgrootte maakt een partitie aan zo groot als de rest van het schijfdeel. Als de partitiegroottes worden gebruikt als beschreven in het eerdere voorbeeld, verwijder dan het reeds ingevulde getal met Backspace en type 64M, zoals te zien in . Druk dan op &gui.ok;.
Grootte van de rootpartitie wijzigen
Als de grootte van een partitie gekozen is, wordt gevraagd of deze partitie een bestandssysteem of een wisselbestand (swap) bevat. Deze dialoog is te zien in . Deze eerste partitie bevat een bestandssysteem, dus controleer of FS geselecteerd is en druk op Enter.
Type van de rootpartitie kiezen
Omdat een bestandssysteem wordt aangemaakt moet disklabel verteld worden waar het bestandssysteem gemount moet worden. Het dialoogscherm is te zien in . Het mountpunt van het root-bestandssysteem is /, dus type / en druk dan op Enter.
Root mountpunt kiezen
Het scherm wordt dan bijgewerkt met de nieuw aangemaakte partitie. Deze stappen moeten herhaald worden voor de andere partities. Als een wisselbestandpartitie wordt aanmaakt, wordt niet gevraagd naar het mountpunt, want wisselbestanden worden nooit gemount. Als de laatste partitie is aanmaakt, /usr, kan de aangegeven grootte blijven staan, want dat is de rest van de schijf. Het uiteindelijke &os; Disklabel Editor scherm kan kan eruit zien als , maar de waarden kunnen afwijken. Druk op Q om af te sluiten.
Sysinstall Disklabel Editor
Wat installeren Distributieset selecteren De keuze van de distributieset om te installeren hangt af van het gebruiksdoel van een systeem en de beschikbare schijfruimte. De voorgedefiniëerde opties variëren van het installeren van kleinste mogelijke installatie tot alles. Nieuwelingen in &unix; en/of &os; kiezen bijna zeker één van voorgedefinieerde opties. Het aanpassen van de distributieset is typisch iets voor de meer ervaren gebruikers. Druk op F1 voor meer informatie over de distributiesets en wat ze bevatten. Na het bekijken van de informatie geeft het toetsen van Enter opnieuw het menu Select Distributions weer. Als een grafische gebruikersinterface gewenst is, kies dan een distributieset waar een X voor staat. Het instellen van de X-server en de selectie van een standaard bureaublad wordt na de installatie van &os; uitgevoerd. Meer informatie over het instellen van een X-server staat beschreven in . De standaardversie van X11 hangt van de versie van &os;. Voor versies ouder dan 5.3 wordt &xfree86; 4.X geïnstalleerd. Voor &os; 5.3 en later is &xorg; de standaard. Als het wenselijk is een aangepaste kernel te compileren, kies dan een optie die de broncode bevat. Meer informatie over de redenen om een aangepaste kernel te bouwen en hoe dat moet staat in . Vanzelfsprekend is het meest uitgebreide systeem het systeem dat alles omvat. Als er genoeg schijfruimte is, kies dan met de pijltjestoetsen All, zoals in en druk op Enter. Als schijfruimte een zorg is, overweeg dan een optie die meer toegespitst is op de gewenste situatie. De perfecte keuze maken is niet nodig, naderhand kunnen distributies worden toevoegd.
Distributies kiezen
Portscollectie installeren Na het kiezen van de gewenste distributie komt de vraag of de &os; Portscollectie geïnstalleerd moet worden. De Portscollectie is een gemakkelijke en handige manier om software te installeren. De Portscollectie bevat niet de broncode die nodig is om de software te compileren. In plaats daarvan is het een verzameling bestanden die het downloaden, compileren en installeren van software automatiseert. In wordt beschreven hoe de Portscollectie gebruikt kan worden. Het installatieprogramma controleert niet of er genoeg schijfruimte is. Deze optie dient alleen gekozen te worden als er voldoende schijfruimte is. In &os; &rel.current; neemt de Portscollectie ongeveer &ports.size; schijfruimte in. Het is verstandig om aan te nemen dat in recentere versies van &os; meer ruimte nodig is. User Confirmation Requested Would you like to install the FreeBSD ports collection? This will give you ready access to over &os.numports; ported software packages, at a cost of around &ports.size; of disk space when "clean" and possibly much more than that if a lot of the distribution tarballs are loaded (unless you have the extra CDs from a FreeBSD CD/DVD distribution available and can mount it on /cdrom, in which case this is far less of a problem). The ports collection is a very valuable resource and well worth having on your /usr partition, so it is advisable to say Yes to this option. For more information on the ports collection & the latest ports, visit: http://www.FreeBSD.org/ports [ Yes ] No Selecteer &gui.yes; met de pijltjestoetsen om de Portscollectie te installeren of &gui.no; om deze optie over te slaan. Druk op Enter om verder te gaan. Het menu Choose Distributions wordt opnieuw getoond.
Distributies kiezen
Als alle keuzes gemaakt zijn, selecteer dan Exit met de pijltjestoetsen, zorg ervoor dat &gui.ok; actief is en druk op Enter om verder te gaan.
Installatiemedia kiezen Als wordt geïnstalleerd vanaf een cd-rom of DVD kies dan met de pijltjestoetsen de optie Install from a &os; CD/DVD. Zorg ervoor dat &gui.ok; actief is en druk op Enter om verder te gaan. Kies voor andere installatiemethodes de desbetreffende optie en volg de aanwijzingen. Druk op F1 om de online help voor de installatiemedia te lezen. Druk op Enter om terug te gaan naar het menu mediaselectie.
Mediaselectie
FTP installatiemethoden installatie netwerk FTP Er zijn drie manieren van installeren via FTP: active FTP, passive FTP of via een HTTP proxy. Actieve FTP: Install from an FTP server Deze optie zorgt ervoor dat alle FTP acties gebruik maken van de Active modus. Dit werkt niet door firewalls, maar werkt wel met oudere FTP-servers die de passive modus niet ondersteunen. Als een verbinding blijft hangen met de passive modus probeer dan de active modus! Passieve FTP: Install from an FTP server through a firewall FTP passive modus Deze optie geeft sysinstall aan gebruik te maken van de Passive modus voor al het FTP-verkeer. Dit zorgt ervoor dat verbindingen door firewalls heen kunnen die inkomende verbindingen niet toelaten op willekeurige TCP-poorten. FTP via een HTTP proxy: Install from an FTP server through a http proxy FTP via een HTTP proxy Deze optie geeft sysinstall aan gebruik te maken van het HTTP protocol (zoals een webbrowser) om verbinding te maken met een proxy voor alle FTP verbindingen. De proxy vertaalt de verzoeken en stuurt ze naar de FTP server. Dit zorgt ervoor dat verbindingen door firewalls heen kunnen die helemaal geen FTP toestaan, maar wel een HTTP proxy hebben. In dit geval moet naast de FTP-server ook een HTTP proxy opgegeven worden. Bij het gebruik van een proxy FTP-server moet meestal de server waar uiteindelijk verbinding mee gemaakt moet worden onderdeel zijn van de gebruikersnaam, na het teken @. De proxy server imiteert dan de echte server. Zo kan bijvoorbeeld geïnstalleerd worden vanaf ftp.FreeBSD.org, gebruikmakend van proxy FTP-server foo.example.com, luisterend op poort 1024. In dit geval kan in het menu opties menu als FTP gebruikersnaam ftp@ftp.FreeBSD.org ingevuld worden en als wachtwoord een e-mailadres. Als installatiemedium kan FTP ingevuld worden (of passieve FTP als de gebruikte proxy het ondersteunt) en als URL ftp://foo.example.com:1234/pub/FreeBSD. Omdat /pub/FreeBSD van ftp.FreeBSD.org via de proxy van foo.example.com wordt benaderd kan vanaf die machine geïnstalleerd worden (die de bestanden ophaalt van ftp.FreeBSD.org als het installatieprogramma erom vraagt).
De installatie bevestigen Nu kan de installatie verder gaan. Dit is ook de laatste mogelijkheid om de installatie te beëindigen ter voorkoming van wijzigingen op de harde schijf. User Confirmation Requested Last Chance! Are you SURE you want to continue the installation? If you're running this on a disk with data you wish to save then WE STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding! We can take no responsibility for lost disk contents! [ Yes ] No Kies &gui.yes; en druk op Enter om verder te gaan. De duur van de installatie hangt af van de gekozen distributie, het installatiemedium en de snelheid van de computer. Er wordt een serie berichten getoond die de voortgang aangeeft. De installatie is klaar als het volgende bericht wordt getoond: Message Congratulations! You now have FreeBSD installed on your system. We will now move on to the final configuration questions. For any option you do not wish to configure, simply select No. If you wish to re-enter this utility after the system is up, you may do so by typing: /stand/sysinstall . [ OK ] [ Press enter to continue ] Druk op Enter om verder te gaan met instellingen na de installatie. Kiezen voor &gui.no; en bevestigen met Enter beëindigt de installatie en er worden geen wijzigingen aan het systeem gemaakt. Het volgende bericht verschijnt: Message Installation complete with some errors. You may wish to scroll through the debugging messages on VTY1 with the scroll-lock feature. You can also choose "No" at the next prompt and go back into the installation menus to retry whichever operations have failed. [ OK ] Het bovenstaande bericht verschijnt omdat er niets is geïnstalleerd. Kies Enter om terug te gaan naar het menu Main Installation en de installatie te verlaten. Instellingen na de installatie Na het installeren volgt de instelling van diverse opties. Een optie kan worden ingesteld door opnieuw naar de instellingenopties te gaan voordat de nieuwe &os;-installatie wordt gestart of door na de installatie sysinstall te gebruiken (/stand/sysinstall in &os; versies ouder dan 5.2) en te kiezen voor Configure. Netwerkapparaten instellen Als al eerder PPP is ingesteld voor een FTP-installatie verschijnt het volgende scherm niet en kan dit onderdeel worden geïnstalleerd zoals eerder beschreven. Gedetailleerde informatie over lokale netwerken (LAN's) en het instellen van &os; als een gateway of router staat in het hoofdstuk Netwerken voor Gevorderden. User Confirmation Requested Would you like to configure any Ethernet or SLIP/PPP network devices? [ Yes ] No Kies &gui.yes; en druk op Enter om een netwerkapparaat in te stellen. Kies anders &gui.no; om verder te gaan.
Ethernetapparaat kiezen
Kies de in te stellen interface met de pijltjestoetsen en druk op Enter. User Confirmation Requested Do you want to try IPv6 configuration of the interface? Yes [ No ] In dit gesloten lokale netwerk was het huidige type Internet protocol (IPv4) toereikend en dus werd &gui.no; geselecteerd met de pijltjestoetsen en kon met Enter verder gegaan worden. Als er verbinding is met een bestaand IPv6 netwerk met een RA server, kies dan &gui.yes; en druk op Enter. Zoeken naar RA servers duurt een paar seconden. User Confirmation Requested Do you want to try DHCP configuration of the interface? Yes [ No ] Kies &gui.no; met de pijltjestoetsen en druk op Enter als DHCP (Dynamic Host Configuration Protocol) niet nodig is. &gui.yes; kiezen start dhclient op en als het goed gaat stelt het netwerk zichzelf in. In staat meer informatie. Het volgende scherm met netwerkinstellingen toont de instellingen van een ethernetapparaat van een systeem dat als gateway voor een lokaal netwerk functioneert.
Netwerkinstellingen voor ed0
Met Tab kunnen de velden geselecteerd worden waarna de juiste informatie ingevuld kan worden: Host De fully-qualified hostname, in dit geval k6-2.example.com. Domain De naam van het domein waar toe de machine behoort, in dit geval example.com. IPv4 Gateway Het IP-adres van de host die pakketjes doorstuurt naar niet-lokale bestemmingen. Dit moet ingesteld worden als een machine een onderdeel is van netwerk. Laat dit veld leeg als de machine de gateway is naar het internet voor het netwerk. De IPv4 Gateway staat ook bekend onder de naam default gateway of default route. Name server Het IP-adres van de lokale DNS server. Er is op dit gesloten lokale netwerk geen DNS server, dus wordt het IP-adres van de DNS server van de provider gebruikt (208.163.10.2). IPv4 Address Het IP-adres dat gebruikt moet worden voor deze interface (192.168.0.1). Netmask Het adresblok dat gebruikt wordt door het lokale netwerk is een klasse C blok (192.168.0.0 - 192.168.255.255). Het standaard netmasker is voor een klasse C netwerk (255.255.255.0). Extra options to ifconfig Elke interface-specifieke optie voor ifconfig die toevoegd moet worden. In dit geval waren er geen. Gebruik Tab om &gui.ok; te selecteren als de instellingen gereed zijn en druk op Enter. User Confirmation Requested Would you like to Bring Up the ed0 interface right now? [ Yes ] No Het kiezen van &gui.yes; en het drukken op Enter maakt een machine onderdeel van een netwerk en daarna is hij klaar voor gebruik. Dit heeft echter nog weinig zin, omdat de machine nog opnieuw opgestart moet worden.
Als gateway instellen User Confirmation Requested Do you want this machine to function as a network gateway? [ Yes ] No Als de machine gateway voor een lokaal netwerk is en pakketjes doorstuurt naar andere machines kies dan &gui.yes; en druk op Enter. Als de machine alleen host op een netwerk is, kies dan &gui.no; en druk op Enter om verder te gaan. Internetdiensten instellen User Confirmation Requested Do you want to configure inetd and the network services that it provides? Yes [ No ] Door het selecteren van &gui.no; worden diverse diensten als telnetd niet aangezet. Dat betekent dat gebruikers op afstand niet met telnet bij de machine kunnen. Lokale gebruikers kunnen wel met telnet naar andere machines. Deze diensten kunnen na de installatie worden aangezet door /etc/inetd.conf te wijzigen met een editor naar keuze. In staat meer informatie. Selecteer &gui.yes; om deze diensten in te stellen tijdens de installatie. Er wordt een extra bevestiging getoond: User Confirmation Requested The Internet Super Server (inetd) allows a number of simple Internet services to be enabled, including finger, ftp and telnetd. Enabling these services may increase risk of security problems by increasing the exposure of your system. With this in mind, do you wish to enable inetd? [ Yes ] No Selecteer &gui.yes; om verder te gaan. User Confirmation Requested inetd(8) relies on its configuration file, /etc/inetd.conf, to determine which of its Internet services will be available. The default FreeBSD inetd.conf(5) leaves all services disabled by default, so they must be specifically enabled in the configuration file before they will function, even once inetd(8) is enabled. Note that services for IPv6 must be separately enabled from IPv4 services. Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to use the current settings. [ Yes ] No Het selecteren van &gui.yes; geeft de mogelijkheid diensten toe te voegen door het teken # aan het begin van een regel te verwijderen.
<filename>inetd.conf</filename> bewerken
Druk na het toevoegen van de gewenste diensten, op Esc om het menu te krijgen waarin de wijzigingen opgeslagen kunnen worden en de editor verlaten kan worden.
Anonieme FTP FTP anoniem User Confirmation Requested Do you want to have anonymous FTP access to this machine? Yes [ No ] Anonieme FTP weigeren Het selecteren van de standaardwaarde &gui.no; en het drukken op Enter stelt gebruikers met toegang en een wachtwoord nog steeds in staat om de machine via FTP te benaderen. Anonieme FTP toestaan Als anonieme FTP wordt toegestaan kan iederen de machine met FTP benaderen. De gevolgen voor de veiligheid van de machine moeten overwogen worden voordat deze optie wordt ingeschakeld. Meer informatie over beveiliging staat in . Selecteer met de pijltjestoetsen &gui.yes; om anonieme FTP toe te staan en druk op Enter. Het volgende scherm (of iets soortgelijks) verschijnt:
Standaard anonieme FTP instellingen
Druk op F1 voor hulp: This screen allows you to configure the anonymous FTP user. The following configuration values are editable: UID: The user ID you wish to assign to the anonymous FTP user. All files uploaded will be owned by this ID. Group: Which group you wish the anonymous FTP user to be in. Comment: String describing this user in /etc/passwd FTP Root Directory: Where files available for anonymous FTP will be kept. Upload subdirectory: Where files uploaded by anonymous FTP users will go. De startmap voor ftp wordt standaard ingesteld op /var. Als daar niet genoeg ruimte is voor de geschatte ftp-wensen dan kan /usr gebruikt worden door de waarde FTP Root Directory op /usr/ftp in te stellen. Druk op Enter om verder te gaan als de instellingen gemaakt zijn. User Confirmation Requested Create a welcome message file for anonymous FTP users? [ Yes ] No Na het kiezen van &gui.yes; en op Enter drukken opent zich een editor waarin het welkomstbericht bewerkt kan worden.
FTP welkomstbericht bewerken
De bovenstaande editor is ee. Volg de instructies om het bericht te wijzigen of wijzig het bericht later door gebruik te maken van een editor naar keuze. Let op de bestaandsnaam en lokatie onderaan het scherm van de editor. Druk op Esc en een pop-up menu verschijnt met als standaardoptie a) leave editor. Druk op Enter om de editor te verlaten en verder te gaan. Druk nog een keer op Enter om de eventuele wijzigingen te bewaren.
Network File System instellen Network File System (NFS) maakt het mogelijk bestanden te delen over een netwerk. Een machine kan worden ingesteld als server, client of beide. In staat meer informatie. NFS Server User Confirmation Requested Do you want to configure this machine as an NFS server? Yes [ No ] Kies &gui.no; als er geen noodzaak is voor een Network File System server en druk op Enter. Na het kiezen van &gui.yes; wordt een bericht getoond dat aangeeft dat er een betand exports moet worden gemaakt. Message Operating as an NFS server means that you must first configure an /etc/exports file to indicate which hosts are allowed certain kinds of access to your local filesystems. Press [Enter] now to invoke an editor on /etc/exports [ OK ] Druk op Enter om verder te gaan. Een editor start om exports te maken en te bewerken.
<filename>exports</filename> bewerken
Volg de instructies om een te exporteren bestandssysteem toe te voegen of doe het later met een editor naar keuze. Let op de bestandsnaam en lokatie onderaan het scherm van de editor. Druk op Esc en een pop-up menu verschijnt met als standaardoptie a) leave editor. Druk op Enter om de editor te verlaten en verder te gaan.
NFS Client De NFS client maakt het mogelijk om NFS servers te benaderen. User Confirmation Requested Do you want to configure this machine as an NFS client? Yes [ No ] Kies met de pijltjestoetsen de optie &gui.yes; of &gui.no; en druk op Enter.
Beveiligingsprofiel Een security profile (beveiligingsprofiel) is een verzameling instellingen waarmee geprobeerd wordt de gewenste verhouding tussen veiligheid en gebruikersgemak in te stellen door bepaalde programma's en instellingen aan of uit te zetten. Hoe hoger het beveiligingsprofiel, hoe minder programma's standaard worden aangezet. Dat is één van de basisregels van beveiliging: gebruik niets anders dan wat echt nodig is. Het beveiligingsprofiel is slechts een standaardinstelling. Alle programma's kunnen aan- of uitgezet worden door na de installatie van &os; wijzigingen aan te brengen in /etc/rc.conf. Meer informatie staat in de - handboekpagina van &man.rc.conf.5;. + handleiding van &man.rc.conf.5;. De volgende tabel beschrijft wat elk beveiligingsprofiel doet. De kolommen zijn de verschillende beveiligingsprofielen waaruit gekozen kan worden en de rijen zijn de programma's of opties die in dat profiel in- of uitgeschakeld zijn. Mogelijke beveiligingsprofielen Extreme Moderate &man.sendmail.8; Nee Ja &man.sshd.8; Nee Ja &man.portmap.8; Nee Wellicht De portmapper wordt aangezet als de machine eerder in de installatie is ingesteld als NFS client of server. NFS server Nee Ja &man.securelevel.8; Ja Het kiezen van een beveiligingsprofiel dat securelevel op Extreme of High zet, heeft mogelijk grote gevolgen. Lees de hulppagina &man.init.8; en let vooral op de betekenis van de security levels of anders zijn in een later stadium moeilijkheden gegarandeerd! Nee
User Confirmation Requested Do you want to select a default security profile for this host (select No for "medium" security)? [ Yes ] No Het kiezen van &gui.no; en het drukken op Enter stelt het beveiligingsprofiel in op medium. Het kiezen van &gui.yes; en het drukken op Enter geeft de mogelijkheid om een ander beveiligingsprofiel te kiezen.
Beveiligingsprofielopties
Druk op F1 voor hulp. Druk op Enter om terug te gaan naar het menu. Gebruik de pijltjestoetsen om Medium te kiezen, behalve als bekend is dat een ander niveau nodig is. Druk op Enter terwijl &gui.ok; oplicht. Afhankelijk van het gekozen beveiligingsprofiel wordt een toepasselijk bevestigingsbericht getoond: Message Moderate security settings have been selected. Sendmail and SSHd have been enabled, securelevels are disabled, and NFS server setting have been left intact. PLEASE NOTE that this still does not save you from having to properly secure your system in other ways or exercise due diligence in your administration, this simply picks a standard set of out-of-box defaults to start with. To change any of these settings later, edit /etc/rc.conf [OK] Message Extreme security settings have been selected. Sendmail, SSHd, and NFS services have been disabled, and securelevels have been enabled. PLEASE NOTE that this still does not save you from having to properly secure your system in other ways or exercise due diligence in your administration, this simply picks a more secure set of out-of-box defaults to start with. To change any of these settings later, edit /etc/rc.conf [OK] Druk op Enter om verder te gaan met de instellingen na de installatie. Het beveiligingsprofiel is geen Haarlemmerolie! Ook als de instelling extreme wordt gebruikt, moeten nog altijd beveiligingsproblemen bijgewerkt worden door de mailinglijsten te volgen (), goede wachtwoorden en wachtzinnen gebruikt worden en goede beveiligingsgewoontes gevolgd worden. Het beveiligingsprofiel stelt uitsluitend de gewenste verhouding tussen beveiliging en gebruikersvriendelijkheid op een standaard manier in.
Systeemconsole instellen Er is een aantal opties beschikbaar om de systeemconsole in aan te passen. User Confirmation Requested Would you like to customize your system console settings? [ Yes ] No Om de opties te bekijken en in te stellen, kies &gui.yes; en druk op Enter.
Systeemconsole instellingen
Een gebruikelijke optie is de schermbeveiliging. Gebruik de pijltjestoetsen om Saver te selecteren en druk op Enter.
Schermbeveiligingsopties
Kies met de pijltjestoetsen de gewenste schermbeveiliging en druk op Enter. Het instellingenmenu System Console verschijnt weer. De standaard activeringstijd is 300 seconden. Kies voor het wijzigen van de activeringstijd weer Saver. Kies in het optiemenu Screen Saver met de pijltjestoetsen Timeout en druk op Enter. Een pop-up verschijnt:
Schermbeveiliging activeringstijd
Wijzig de waarde, selecteer &gui.ok; en druk op Enter om terug te gaan naar het instellingenmenu System Console.
Systeemconsole instellingen verlaten
Met het selecteren van Exit en drukken op Enter kan verdergegaan worden met de andere instellingen.
Tijdzone instellen Het instellen van de tijdzone van een machine maakt het mogelijk om automatisch correcties door te voeren voor regionale tijdswijzigingen en het juist uitvoeren van andere tijdzone-afhankelijke functies. Het voorbeeld toont een machine die staat in de oostelijke tijdzone van de Verenigde Staten. De keuze voor een specifiek systeem hangt af van de geografische locatie. User Confirmation Requested Would you like to set this machine's time zone now? [ Yes ] No Selecteer &gui.yes; en druk op Enter om de tijdzone in te stellen. User Confirmation Requested Is this machine's CMOS clock set to UTC? If it is set to local time or you don't know, please choose NO here! Yes [ No ] Kies &gui.yes; of &gui.no; afhankelijk van de instellingen van de klok van de machine en druk op Enter.
Regio instellen
Kies met de pijltjestoetsen de juiste regio en druk op Enter.
Land kiezen
Kies met de pijltjestoetsen het juiste land en druk op Enter.
Tijdzone kiezen
Kies met de pijltjestoetsen de juiste tijdzone en druk op Enter. Confirmation Does the abbreviation 'EDT' look reasonable? [ Yes ] No Bevestig dat de afkorting van de tijdzone juist is. Als die er goed uit ziet, druk dan op Enter om verder te gaan met de overige instellingen.
Linux compatibiliteit User Confirmation Requested Would you like to enable Linux binary compatibility? [ Yes ] No Selecteer &gui.yes; en druk op Enter als de mogelijkheid om Linux software te draaien op &os; geactiveerd moet worden. Deze optie installeert de voor Linux compatibiliteit benodigde pakketten. Als via FTP wordt geïnstalleerd, dan moet de machine verbonden zijn met internet. Soms heeft een ftp-site niet alle distributies, zoals de Linux compatabiliteit, beschikbaar. Zonodig kan deze ook later geïnstalleerd worden. Muisinstellingen Deze optie geeft de mogelijkheid om tekst te kopiëren en te plakken in de console en programma's met een 3-knops muis. Als een 2-knops muis wordt gebruikt, ga dan naar de hulppagina &man.moused.8; na de installatie voor de details over het emuleren van een 3-knops muis. Dit voorbeeld toont een niet-USB muisinstelling (zoals een PS/2 of seriële poort muis): User Confirmation Requested Does this system have a non-USB mouse attached to it? [ Yes ] No Selecteer &gui.yes; voor een niet-USB muis of &gui.no; voor een USB muis en druk op Enter.
Muisprotocoltype selecteren
Gebruik de pijltjestoetsen om Type te selecteren en druk op Enter.
Muisprotocol kiezen
De muis in dit voorbeeld is een PS/2-muis, dus de standaardoptie Auto was van toepassing. Selecteer met de pijltjestoetsen een andere optie om het protocol te wijzigen. Zorg ervoor dat &gui.ok; geselecteerd is en druk op Enter om dit menu te verlaten.
Muispoort instellen
Gebruik de pijltjestoetsen om Port te selecteren en druk op Enter.
Muispoort instellen
Dit systeem heeft een PS/2 muis, dus de standaardoptie PS/2 was van toepassing. Gebruik de pijltjestoetsen en druk op Enter om de poort te wijzigen.
Muisdaemon inschakelen
Gebruik tenslotte de pijltjestoetsen om Enable te selecteren en druk op Enter om de muisdaemon aan te zetten en te testen.
Het testen van de muisdaemon
Beweeg de muis over het scherm en controleer of de cursor op de juiste manier reageert. Als dat in orde is, selecteer dan &gui.yes; en druk op Enter. Als het niet goed gaat, dan is de muis niet goed ingesteld. Kies dan &gui.no; en probeer het met andere instellingen. Kies met de pijltjestoetsen Exit en druk op Enter om terug te gaan naar het instellingenmenu.
Tom Rhodes Geschreven door Extra netwerkdiensten instellen Het instellen van netwerkdiensten kan afschrikwekkend zijn voor nieuwe gebruikers zonder (voldoende) voorkennis op dit gebied. Netwerken, inclusief internet, is van levensbelang voor alle moderne besturingssystemen, inclusief &os;. Als gevolg daarvan is het handig enig begrip te hebben van de uitgebreide netwerkmogelijkheden van &os;. Door dit tijdens de installatie te doen hebben gebruikers in elk geval enige kennis van de diverse netwerkdiensten die hen ter beschikking staan. Netwerkdiensten zijn programma's die invoer accepteren vanaf het netwerk. Al het mogelijke is gedaan om er voor te zorgen dat deze programma's niets schadelijks doen. Helaas zijn programmeurs niet perfect en in de loop van de tijd zijn er fouten gevonden in netwerkdiensten die door aanvallers zijn uitgebuit om slechte dingen te doen. Het is belangrijk alleen netwerkdiensten aan te zetten die nodig zijn. Bij twijfel kan een netwerkdienst het beste niet ingeschakeld worden totdat duidelijk is dat de dienst wél nodig is. Diensten kunnen later alsnog ingeschakeld worden door sysinstall nog een keer te draaien of door middel van de mogelijkheden van het bestand /etc/rc.conf. Het kiezen van de optie Networking toont het volgende menu:
Netwerkinstellingen - bovenste opties
De eerste optie, Interfaces, is al behandeld in , dus die wordt overgeslagen. Kies AMD voor het toevoegen van ondersteuning voor het BSD hulpprogramma voor automatisch mounten. Dit wordt meestal gebruikt in combinatie met het NFS protocol (zie verderop) voor het automatisch mounten van externe bestandssystemen. Hier zijn geen speciale instellingen nodig. De volgende optie is AMD Flags. Als deze optie wordt selecteert komt er een pop-up menu waarin de specifieke AMD vlaggen kunnen worden ingesteld. Het menu bevat al een lijst standaardopties: -a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map De optie bepaalt de standaard mountlocatie die is hier ingesteld op /.amd_mnt. De optie bepaalt het standaardbestand voor log, maar als syslogd wordt gebruikt, dan worden alle acties naar de systeemlogdaemon gestuurd. De map /host wordt gebruikt om een geëxporteerd bestandssysteem van een externe host te mounten, terwijl de map /net wordt gebruikt om een geëxporteerd bestandssysteem van een IP-adres te mounten. Het bestand /etc/amd.map bepaalt de standaardopties voor AMD exports. FTP anoniem De optie Anon FTP staat anonieme FTP verbindingen toe. Kies deze optie om van een machine een anonieme FTP server te maken. Hierbij zijn de beveiligingsimplicaties van belang. Er wordt een volgend menu getoond om de beveiligingsrisico's en verdere instellingen te verklaren. Het instellingenmenu Gateway maakt van de machine een gateway, zoals eerder beschreven. Hier kan de optie Gateway ook gebruikt worden om de optie uit te zetten als die eerder in de installatie per ongeluk is aangezet. De optie Inetd kan gebruikt worden om de &man.inetd.8; daemon in te stellen of helemaal uit te schakelen, zoals boven beschreven. De optie Mail kan gebruikt worden om de standaard MTA (Mail Transfer Agent) van het systeem in te stellen. Hiervoor wordt het volgende menu gebruikt:
Standaard MTA kiezen
Hier kan gekozen worden welke MTA moet worden geïnstalleerd en gebruikt. Een MTA is niets meer dan een mailserver die mail aflevert bij gebruikers op het systeem of op internet. Het kiezen van Sendmail installeert de populaire server sendmail, die de standaard is voor &os;. De optie Sendmail local maakt van sendmail de standaard MTA, maar zet de mogelijkheid om mail te ontvangen vanaf het internet uit. De andere opties, Postfix en Exim werken net zo als Sendmail. Allebei leveren ze mail af. Sommige gebruikers geven de voorkeur aan deze alternatieven boven de sendmail MTA. Na het kiezen van een MTA of de keuze geen MTA te installeren, verschijnt het menu netwerkinstellingen met als volgende optie NFS client. De optie NFS client stelt het systeem in om te communiceren met een server via NFS. Een NFS server stelt bestandssystemen beschikbaar aan andere machines via het NFS protocol. Als de te installeren machine een op zichzelf staande machine is, dan kan deze optie uitgeschakeld blijven. Het kan zijn dat het systeem later meer instellingen nodig heeft. In staat meer informatie over client- en serverinstellingen. De volgende optie is NFS server, die het mogelijk maakt een systeem in te stellen als NFS server. Deze optie voegt de nodige informatie toe om de dienst RPC, remote procedure call, op te starten. RPC wordt gebruikt om de verbindingen tussen hosts en programma's te coördineren. Daarna volgt de optie Ntpdate die de tijdsynchronisatie afhandelt. Als deze wordt geselecteerd verschijnt het volgende menu:
Ntpdate instellingen
Kies uit dit menu de server die het dichtst bij het te installeren systeem staat. Door het kiezen van een server in de buurt is de synchronisatie preciezer omdat een verder gelegen server meer vertraging in de verbinding kan hebben. De volgende optie is de PCNFSD selectie. Deze optie installeert het pakket net/pcnfsd uit de Portscollectie. Dat is een handig hulpprogramma dat het mogelijk maakt om aan te melden bij NFS met systemen die zelf geen aanmeldsysteem hebben, zoals het besturingssysteem &ms-dos; van µsoft;. Door naar benenden te scrollen in het hoofdmenu worden de onderstaande opties zichtbaar:
Netwerkinstellingen - onderste opties
De hulpprogramma's &man.rpcbind.8;, &man.rpc.statd.8; en &man.rpc.lockd.8; worden allemaal gebruikt voor Remote Procedure Calls (RPC). Het hulpprogramma rpcbind beheert de communicatie tussen NFS servers en clients en is noodzakelijk om NFS servers correct te laten werken. De daemon rpc.statd communiceert met de daemon rpc.statd op andere machines om statusinformatie te leveren. De gerapporteerde status wordt gewoonlijk bijgehouden in het bestand /var/db/statd.status. De volgende optie in de lijst is rpc.lockd die, mits geselecteerd, bestandslockdiensten mogelijk maakt. Dit wordt meestal gebruikt door rpc.statd om bij te houden welke hosts vragen om bestanden te locken en hoe vaak ze dat doen. Hoewel deze laatste twee opties fantastisch zijn om fouten om te sporen, zijn ze niet noodzakelijk voor NFS servers en clients om correct te werken. De dan volgende optie in de lijst is Routed, een routeringsdaemon. Het hulpprogramma &man.routed.8; beheert netwerkrouteringstabellen, ontdekt multicast routers en stelt op verzoek kopieën van de routeringstabellen ter beschikking aan fysiek verbonden apparaten. Dit wordt vooral gebruikt door machines die dienst doen als gateway voor het lokale netwerk. Na het selecteren van deze optie verschijnt een menu waarin naar de standaardlocatie van het hulpprogramma wordt gevraagd. De standaardlocatie is al gedefiniëerd en kan met Enter worden geactiveerd. Dan komt er een ander menu dat vraagt om de opties die doorgegeven moeten worden aan routed op te geven. De standaard is en die staat al op het scherm. Dan volgt de optie Rwhod die, als geselecteerd, de daemon &man.rwhod.8; inschakelt bij het opstarten. Het hulpprogramma rwhod zendt periodiek systeemberichten uit over het netwerk of verzamelt die in de modus consumer. Meer informatie staat in de hulppagina's &man.ruptime.1; en &man.rwho.1;. De één na laatste optie in de lijst is de daemon &man.sshd.8;. Dat is de secure shell server van OpenSSH en deze wordt sterk aangeraden boven de standaardservers telnet en FTP. De server sshd wordt gebruikt om een veilige verbinding op te zetten van de ene computer naar de andere door een versleutelde verbinding te gebruiken. Tenslotte is er de optie TCP Extensions. Dit schakelt TCP uitbreidingen in zoals gedefiniëerd in RFC 1323 en RFC 1644. Hoewel dit op veel machines de verbindingen kan versnellen, kan het ook de oorzaak zijn van het wegvallen van sommige verbindingen. Het wordt niet aangeraden voor servers, maar voor alleenstaande machines kan het voordelig zijn. Nu de netwerkmogelijkheden zijn ingesteld kan het menu via Exit verlaten worden en doorgegaan worden met het instellen in de volgende sectie.
X-server instellen Vanaf &os; 5.3-RELEASE, is het instellen van X-server uit sysinstall verwijderd. Het installeren en instellen van X-server dient na de installatie van &os; plaats te vinden. Meer informatie over de installatie en het instellen van een X-server is te vinden in . Dit onderdeel kan overgeslagen worden als &os; versie 5.3-RELEASE of hoger wordt geïnstalleerd. Om een grafische gebruikersinterface zoals KDE, GNOME of andere te gebruiken moet de X-server ingesteld worden. Om &xfree86; te kunnen gebruiken als een andere gebruiker dan root moet x11/wrapper geïnstalleerd zijn. Dit wordt vanaf &os; 4.7 standaard gedaan. Voor oudere versies kan dit toegevoegd worden via het pakketselectiemenu. Of de videokaart uit een systeem wordt ondersteund kan worden gecontroleerd op de &xfree86; website. User Confirmation Requested Would you like to configure your X-server at this time? [ Yes ] No Het is noodzakelijk om de specificaties van monitor en videokaart te kennen. Er kan schade aan apparatuur ontstaan als er verkeerde instellingen worden gemaakt. Als deze gegevens niet beschikbaar zijn, kies dan &gui.no; en dan kunnen de instellingen na het verzamelen van de informatie gemaakt worden met sysinstall (/stand/sysinstall in &os; versies ouder dan 5.2) door te kiezen voor Configure en vervolgens XFree86. Verkeerde instellingen van de X-server op deze plaats kunnen de machine achterlaten in een bevroren status. Het wordt vaak geadviseerd de instellingen van de X-server te maken nadat de installatie is voltooid. Als de gegevens van monitor en videokaart voorhanden zijn, kies dan &gui.yes; en druk op Enter om verder te gaan met het instellen van de X-server.
Menu Instelmethode kiezen
Er zijn diverse manieren om de X-server in te stellen. Kies een methode met de pijltjestoetsen en druk op Enter. Lees alle instructies nauwgezet! De methoden xf86cfg en xf86cfg -textmode kunnen het scherm zwart maken en hebben enkele seconden nodig om op te starten. Het vervolg laat het gebruik van het hulpprogramma xf86config zien. De te maken instellingen hangen af van de hardware in een systeem en wijken waarschijnlijk af van de keuzes hier: Message You have configured and been running the mouse daemon. Choose "/dev/sysmouse" as the mouse port and "SysMouse" or "MouseSystems" as the mouse protocol in the X configuration utility. [ OK ] [ Press enter to continue ] Dit geeft aan dat de muisdaemon al eerder is ingesteld en ontdekt. Druk op Enter om verder te gaan. Aan het begin toont xf86config een korte inleiding: This program will create a basic XF86Config file, based on menu selections you make. The XF86Config file usually resides in /usr/X11R6/etc/X11 or /etc/X11. A sample XF86Config file is supplied with XFree86; it is configured for a standard VGA card and monitor with 640x480 resolution. This program will ask for a pathname when it is ready to write the file. You can either take the sample XF86Config as a base and edit it for your configuration, or let this program produce a base XF86Config file for your configuration and fine-tune it. Before continuing with this program, make sure you know what video card you have, and preferably also the chipset it uses and the amount of video memory on your video card. SuperProbe may be able to help with this. Press enter to continue, or ctrl-c to abort. Druk op Enter om de muisinstellingen te maken. Volg de instructies op het scherm en kies Mouse Systems als protocol voor de muis en /dev/sysmouse als muispoort, ook als een PS/2 muis gebruikt wordt zoals getoond ter illustratie. First specify a mouse protocol type. Choose one from the following list: 1. Microsoft compatible (2-button protocol) 2. Mouse Systems (3-button protocol) & FreeBSD moused protocol 3. Bus Mouse 4. PS/2 Mouse 5. Logitech Mouse (serial, old type, Logitech protocol) 6. Logitech MouseMan (Microsoft compatible) 7. MM Series 8. MM HitTablet 9. Microsoft IntelliMouse If you have a two-button mouse, it is most likely of type 1, and if you have a three-button mouse, it can probably support both protocol 1 and 2. There are two main varieties of the latter type: mice with a switch to select the protocol, and mice that default to 1 and require a button to be held at boot-time to select protocol 2. Some mice can be convinced to do 2 by sending a special sequence to the serial port (see the ClearDTR/ClearRTS options). Enter a protocol number: 2 You have selected a Mouse Systems protocol mouse. If your mouse is normally in Microsoft-compatible mode, enabling the ClearDTR and ClearRTS options may cause it to switch to Mouse Systems mode when the server starts. Please answer the following question with either 'y' or 'n'. Do you want to enable ClearDTR and ClearRTS? n You have selected a three-button mouse protocol. It is recommended that you do not enable Emulate3Buttons, unless the third button doesn't work. Please answer the following question with either 'y' or 'n'. Do you want to enable Emulate3Buttons? y Now give the full device name that the mouse is connected to, for example /dev/tty00. Just pressing enter will use the default, /dev/mouse. On FreeBSD, the default is /dev/sysmouse. Mouse device: /dev/sysmouse Het toetsenbord is het volgende onderdeel dat moet worden ingesteld. Een algemeen 101-toetsen model is getoond ter illustratie. Als variant mag een willekeurige naam gebruikt worden of druk gewoon op Enter om de standaardwaarden te bevestigen. Please select one of the following keyboard types that is the better description of your keyboard. If nothing really matches, choose 1 (Generic 101-key PC) 1 Generic 101-key PC 2 Generic 102-key (Intl) PC 3 Generic 104-key PC 4 Generic 105-key (Intl) PC 5 Dell 101-key PC 6 Everex STEPnote 7 Keytronic FlexPro 8 Microsoft Natural 9 Northgate OmniKey 101 10 Winbook Model XP5 11 Japanese 106-key 12 PC-98xx Series 13 Brazilian ABNT2 14 HP Internet 15 Logitech iTouch 16 Logitech Cordless Desktop Pro 17 Logitech Internet Keyboard 18 Logitech Internet Navigator Keyboard 19 Compaq Internet 20 Microsoft Natural Pro 21 Genius Comfy KB-16M 22 IBM Rapid Access 23 IBM Rapid Access II 24 Chicony Internet Keyboard 25 Dell Internet Keyboard Enter a number to choose the keyboard. 1 Please select the layout corresponding to your keyboard 1 U.S. English 2 U.S. English w/ ISO9995-3 3 U.S. English w/ deadkeys 4 Albanian 5 Arabic 6 Armenian 7 Azerbaidjani 8 Belarusian 9 Belgian 10 Bengali 11 Brazilian 12 Bulgarian 13 Burmese 14 Canadian 15 Croatian 16 Czech 17 Czech (qwerty) 18 Danish Enter a number to choose the country. Press enter for the next page 1 Please enter a variant name for 'us' layout. Or just press enter for default variant us Please answer the following question with either 'y' or 'n'. Do you want to select additional XKB options (group switcher, group indicator, etc.)? n Vervolgens wordt de monitor ingesteld. Geef geen waarden op die verder gaan dan de mogelijkheden van de monitor. Er kan schade onstaan. Maak bij twijfel deze instellingen pas als voldoende informatie is verzameld. Now we want to set the specifications of the monitor. The two critical parameters are the vertical refresh rate, which is the rate at which the whole screen is refreshed, and most importantly the horizontal sync rate, which is the rate at which scanlines are displayed. The valid range for horizontal sync and vertical sync should be documented in the manual of your monitor. If in doubt, check the monitor database /usr/X11R6/lib/X11/doc/Monitors to see if your monitor is there. Press enter to continue, or ctrl-c to abort. You must indicate the horizontal sync range of your monitor. You can either select one of the predefined ranges below that correspond to industry- standard monitor types, or give a specific range. It is VERY IMPORTANT that you do not specify a monitor type with a horizontal sync range that is beyond the capabilities of your monitor. If in doubt, choose a conservative setting. hsync in kHz; monitor type with characteristic modes 1 31.5; Standard VGA, 640x480 @ 60 Hz 2 31.5 - 35.1; Super VGA, 800x600 @ 56 Hz 3 31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz interlaced (no 800x600) 4 31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz interlaced, 800x600 @ 56 Hz 5 31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz 6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz 7 31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz 8 31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz 9 31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz 10 31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz 11 Enter your own horizontal sync range Enter your choice (1-11): 6 You must indicate the vertical sync range of your monitor. You can either select one of the predefined ranges below that correspond to industry- standard monitor types, or give a specific range. For interlaced modes, the number that counts is the high one (e.g. 87 Hz rather than 43 Hz). 1 50-70 2 50-90 3 50-100 4 40-150 5 Enter your own vertical sync range Enter your choice: 2 You must now enter a few identification/description strings, namely an identifier, a vendor name, and a model name. Just pressing enter will fill in default names. The strings are free-form, spaces are allowed. Enter an identifier for your monitor definition: Hitachi Nu volgt de keuze van een videokaartstuurprogramma uit een lijst. Als de kaart uit een systeem in de lijst staat, blijf dan op Enter drukken en de lijst herhaalt zich. Hier wordt slechts een klein deel van de lijst getoond: Now we must configure video card specific settings. At this point you can choose to make a selection out of a database of video card definitions. Because there can be variation in Ramdacs and clock generators even between cards of the same model, it is not sensible to blindly copy the settings (e.g. a Device section). For this reason, after you make a selection, you will still be asked about the components of the card, with the settings from the chosen database entry presented as a strong hint. The database entries include information about the chipset, what driver to run, the Ramdac and ClockChip, and comments that will be included in the Device section. However, a lot of definitions only hint about what driver to run (based on the chipset the card uses) and are untested. If you can't find your card in the database, there's nothing to worry about. You should only choose a database entry that is exactly the same model as your card; choosing one that looks similar is just a bad idea (e.g. a GemStone Snail 64 may be as different from a GemStone Snail 64+ in terms of hardware as can be). Do you want to look at the card database? y 288 Matrox Millennium G200 8MB mgag200 289 Matrox Millennium G200 SD 16MB mgag200 290 Matrox Millennium G200 SD 4MB mgag200 291 Matrox Millennium G200 SD 8MB mgag200 292 Matrox Millennium G400 mgag400 293 Matrox Millennium II 16MB mga2164w 294 Matrox Millennium II 4MB mga2164w 295 Matrox Millennium II 8MB mga2164w 296 Matrox Mystique mga1064sg 297 Matrox Mystique G200 16MB mgag200 298 Matrox Mystique G200 4MB mgag200 299 Matrox Mystique G200 8MB mgag200 300 Matrox Productiva G100 4MB mgag100 301 Matrox Productiva G100 8MB mgag100 302 MediaGX mediagx 303 MediaVision Proaxcel 128 ET6000 304 Mirage Z-128 ET6000 305 Miro CRYSTAL VRX Verite 1000 Enter a number to choose the corresponding card definition. Press enter for the next page, q to continue configuration. 288 Your selected card definition: Identifier: Matrox Millennium G200 8MB Chipset: mgag200 Driver: mga Do NOT probe clocks or use any Clocks line. Press enter to continue, or ctrl-c to abort. Now you must give information about your video card. This will be used for the "Device" section of your video card in XF86Config. You must indicate how much video memory you have. It is probably a good idea to use the same approximate amount as that detected by the server you intend to use. If you encounter problems that are due to the used server not supporting the amount memory you have (e.g. ATI Mach64 is limited to 1024K with the SVGA server), specify the maximum amount supported by the server. How much video memory do you have on your video card: 1 256K 2 512K 3 1024K 4 2048K 5 4096K 6 Other Enter your choice: 6 Amount of video memory in Kbytes: 8192 You must now enter a few identification/description strings, namely an identifier, a vendor name, and a model name. Just pressing enter will fill in default names (possibly from a card definition). Your card definition is Matrox Millennium G200 8MB. The strings are free-form, spaces are allowed. Enter an identifier for your video card definition: Vervolgens moeten de videomodi voor de gewenste schermresoluties ingesteld worden. Normaliter zijn 640x480, 800x600 en 1024x768 goede keuzes, maar dat hangt af van de mogelijkheden van de videokaart, de afmetingen van de monitor en comfort voor de ogen. Kies bij het instellen van de kleurdiepte de hoogste waarde die een kaart aankan. For each depth, a list of modes (resolutions) is defined. The default resolution that the server will start-up with will be the first listed mode that can be supported by the monitor and card. Currently it is set to: "640x480" "800x600" "1024x768" "1280x1024" for 8-bit "640x480" "800x600" "1024x768" "1280x1024" for 16-bit "640x480" "800x600" "1024x768" "1280x1024" for 24-bit Modes that cannot be supported due to monitor or clock constraints will be automatically skipped by the server. 1 Change the modes for 8-bit (256 colors) 2 Change the modes for 16-bit (32K/64K colors) 3 Change the modes for 24-bit (24-bit color) 4 The modes are OK, continue. Enter your choice: 2 Select modes from the following list: 1 "640x400" 2 "640x480" 3 "800x600" 4 "1024x768" 5 "1280x1024" 6 "320x200" 7 "320x240" 8 "400x300" 9 "1152x864" a "1600x1200" b "1800x1400" c "512x384" Please type the digits corresponding to the modes that you want to select. For example, 432 selects "1024x768" "800x600" "640x480", with a default mode of 1024x768. Which modes? 432 You can have a virtual screen (desktop), which is screen area that is larger than the physical screen and which is panned by moving the mouse to the edge of the screen. If you don't want virtual desktop at a certain resolution, you cannot have modes listed that are larger. Each color depth can have a differently-sized virtual screen Please answer the following question with either 'y' or 'n'. Do you want a virtual screen that is larger than the physical screen? n For each depth, a list of modes (resolutions) is defined. The default resolution that the server will start-up with will be the first listed mode that can be supported by the monitor and card. Currently it is set to: "640x480" "800x600" "1024x768" "1280x1024" for 8-bit "1024x768" "800x600" "640x480" for 16-bit "640x480" "800x600" "1024x768" "1280x1024" for 24-bit Modes that cannot be supported due to monitor or clock constraints will be automatically skipped by the server. 1 Change the modes for 8-bit (256 colors) 2 Change the modes for 16-bit (32K/64K colors) 3 Change the modes for 24-bit (24-bit color) 4 The modes are OK, continue. Enter your choice: 4 Please specify which color depth you want to use by default: 1 1 bit (monochrome) 2 4 bits (16 colors) 3 8 bits (256 colors) 4 16 bits (65536 colors) 5 24 bits (16 million colors) Enter a number to choose the default depth. 4 Tenslotte moeten de instellingen bewaard worden. Geef /etc/X11/XF86Config op als plaats om de instellingen te bewaren. I am going to write the XF86Config file now. Make sure you don't accidently overwrite a previously configured one. Shall I write it to /etc/X11/XF86Config? y Als de instellingen niet juist zijn, kan het nogmaals geprobeerd worden door &gui.yes; te kiezen als het volgende bericht verschijnt: User Confirmation Requested The XFree86 configuration process seems to have failed. Would you like to try again? [ Yes ] No Selecteer bij moeilijkheden om &xfree86; in te stellen &gui.no;, druk op Enter en ga verder met het installatieproces. Na de installatie kunnen als root de hulpprogramma's xf86cfg -textmode en xf86config gebruikt worden om commandoregelgestuurd instellingen te maken. Er is nog een methode om &xfree86; in te stellen. Deze staat beschreven in . Als de keuze is op dit moment &xfree86; niet in te stellen, dan is de volgende optie in het menu de pakketselectie. De standaardinstelling om de X-server te beëindigen is de toetscombinatie CtrlAltBackspace. Deze kan ook gebruikt worden om schade aan de apparatuur te voorkomen als er iets mis is met de server. De standaardinstelling om van videomodus te wisselen terwijl de X-server draait is CtrlAlt+ en CtrlAlt-. Als &xfree86; draait kan het scherm worden aangepast in hoogte, breedte en plaats op de monitor met xvidtune. Er wordt in waarschuwingen gemeld dat foutieve instellingen hardware kunnen beschadigen. Neem deze in acht. In geval van twijfel: niet doen! Gebruik in plaats daarvan de instellingen van de monitor zelf om de weergave van X aan te passen. De weergave kan veranderen als wordt teruggeschakeld naar tekstmodus, maar dat is nog altijd beter dan de hardware beschadigen. - Lees de handboekpagina voor &man.xvidtune.1; alvorens + Lees de handleiding voor &man.xvidtune.1; alvorens wijzigingen te maken. Na het succesvol instellen van &xfree86; wordt de standaard bureaubladomgeving gekozen.
Standaard X bureaubladomgeving kiezen Vanaf &os; 5.3-RELEASE is het instellen van X-server uit sysinstall verwijderd. Het installeren en instellen van X-server dient na de installatie van &os; plaats te vinden. Meer informatie over de installatie en het instellen van een X-server is te vinden in . Dit onderdeel kan overgeslagen worden als &os; versie 5.3-RELEASE of hoger wordt geïnstalleerd. Er is een verscheidenheid aan window managers beschikbaar. Ze variëren van erg eenvoudige omgevingen tot volledige bureaubladomgevingen met een grote hoeveelheid software. Sommige hebben weinig schijfruimte en geheugen nodig, terwijl andere met meer mogelijkheden veel meer nodig hebben. De beste manier om uit te zoeken welke het beste is, is het uitproberen van een paar verschillende window managers. Ze zijn beschikbaar in de Portscollectie of als pakketten en kunnen na de installatie worden toegevoegd. Er kan één van de populaire bureaubladomgevingen geïnstalleerd als standaard bureaublad. Hierdoor kan direct na de installatie begonnen worden met productief zijn.
Standaard bureaublad kiezen
Kies een bureaublad met de pijltjestoetsen en druk op Enter. De installatie van het geselecteerde bureaublad start.
Pakketten installeren Pakketten zijn voorgebouwde binaire bestanden en zijn een gemakkelijke manier om software te installeren. De installatie van één pakket wordt als voorbeeld getoond. Er kunnen nog meer pakketten geïnstalleerd worden als dat wenselijk is. Na de installatie kan sysinstall (/stand/sysinstall in &os; versies ouder dan 5.2) gebruikt worden om extra pakketten te installeren. User Confirmation Requested The FreeBSD package collection is a collection of hundreds of ready-to-run applications, from text editors to games to WEB servers and more. Would you like to browse the collection now? [ Yes ] No Na het kiezen van &gui.yes; en drukken op Enter verschijnt het menu pakketkeuze:
Pakketcategorie kiezen
Alle pakketten die aanwezig zijn op het huidige installatiemedium zijn beschikbaar voor installatie op dat moment. Alle beschikbare pakketten worden getoond na het selecteren van All, maar er kan ook een bepaalde categorie geselecteerd worden. De categorie kan gekozen worden met de pijltjestoetsen en door te bevestigen met Enter. Dan wordt een menu getoond met alle beschikbare pakketten binnen de gemaakte selectie:
Pakketten selecteren
De shell bash is geselecteerd. Er kunnen zoveel pakketten als wenselijk gekozen worden door ze te selecteren en op de spatiebalk te drukken. Een korte beschrijving van elk pakket verschijnt in de linker benedenhoek van het scherm. Door te drukken op Tab wordt gewisseld tussen het laatst geselecteerde pakket, &gui.ok; en &gui.cancel;. Druk na het selecteren van pakketten voor installatie één keer op Tab om naar &gui.ok; te gaan en druk op Enter om terug te gaan naar het menu pakketkeuze. De linker- en rechterpijltjestoets wisselen eveneens tussen &gui.ok; en &gui.cancel;. Die manier kan ook gebruikt worden om &gui.ok; te kiezen en op Enter te drukken om terug te gaan naar het menu pakketkeuze.
Pakketten installeren
Gebruik Tab en de pijltjestoetsen om [ Install ] te selecteren en druk op Enter. Daarna moet de pakketinstallatie bevestigd worden:
Pakketinstallatie bevestigen
Het selecteren van &gui.ok; en drukken op Enter start de installatie. Er worden installatieberichten getoond tot alle installaties zijn afgerond. Maak een notitie van eventuele foutmeldingen. Na het installeren van pakketten gaat het maken van de laatste instellingen verder. Als er geen pakketten geselecteerd zijn kan om terug te gaan naar het menu toch Install gekozen worden.
Gebruikers en groepen toevoegen Er moet minstens één gebruiker toevoegd worden tijdens de installatie, zodat het systeem gebruikt kan worden zonder als root aan te hoeven melden. De rootpartitie is in het algemeen klein en het draaien van programma's als root kan de schijfruimte snel vullen. Een groter gevaar wordt hieronder aangegeven: User Confirmation Requested Would you like to add any initial user accounts to the system? Adding at least one account for yourself at this stage is suggested since working as the "root" user is dangerous (it is easy to do things which adversely affect the entire system). [ Yes ] No Kies &gui.yes; en druk op Enter om verder te gaan met het toevoegen van een gebruiker.
Gebruiker kiezen
Selecteer User met de pijltjestoetsen en druk op Enter.
Gebruikersinformatie toevoegen
De volgende beschrijvingen verschijnen in het onderste deel van het scherm als opties zijn geselecteerd met Tab en kunnen behulpzaam zijn bij het invullen van de benodigde informatie: Login ID De aanmeldnaam van de nieuwe gebruiker (verplicht). UID Het numerieke ID van de gebruiker (laat leeg voor automatische toewijzing). Group De naam van de aanmeldgroep van de gebruiker (laat leeg voor automatische keuze). Password Het wachtwoord voor de gebruiker (vul dit zorgvuldig in!). Full name De volledige naam van de gebruiker (commentaar). Member groups De groepen waar de gebruiker in zit (waar hij toegangsrechten voor krijgt). Home directory De locatie van de thuismap van de gebruiker (laat leeg voor de standaardwaarde). Login shell De aanmeldshell voor de gebruiker (laat leeg voor de standaardwaarde, zoals /bin/sh). De aanmeldshell is hier veranderd van /bin/sh in /usr/local/bin/bash om de shell bash te gebruiken die eerder is geïnstalleerd als pakket. Probeer geen shell op te geven die niet bestaat, want dan kan niet aangemeld worden. De meest gebruikte shell in de BSD-wereld is de C shell, die aangegeven kan worden als /bin/tcsh. De gebruiker is ook toegevoegd aan de groep wheel om het mogelijk te maken superuser te worden met root-rechten. Druk op &gui.ok; als de instellingen zijn gemaakt om naar het menu User and Group Management terug te gaan:
Gebruikers en groepbeheer
Op dit moment kunnen ook groepen worden toegevoegd als de specifieke behoeften bekend zijn. Dit kan ook door sysinstall (/stand/sysinstall in &os; versies ouder dan 5.2) na de installatie te gebruiken. Kies na het toevoegen van gebruikers Exit met de pijltjestoetsen en druk op Enter om verder te gaan met de installatie.
<username>root</username> wachtwoord instellen Message Now you must set the system manager's password. This is the password you'll use to log in as "root". [ OK ] [ Press enter to continue ] Druk op Enter om het root wachtwoord in te stellen. Het wachtwoord moet twee keer gelijk ingegeven worden. Het is vast overbodig om op te merken dat het belangrijk is zorg te dragen voor een manier om het wachtwoord terug te vinden in het geval het wordt vergeten. Tijdens de ingave van het wachtwoord wordt dit niet weergegeven en er worden ook geen sterretjes getoond. Changing local password for root. New password : Retype new password : De installatie gaat verder als het wachtwoord succesvol is ingevoerd. Install verlaten Als het nodig is om extra netwerkapparaten toe te voegen of andere instellingen te maken, dan kan dat nu of later met sysinstall (/stand/sysinstall in &os; versies ouder dan 5.2). User Confirmation Requested Visit the general configuration menu for a chance to set any last options? Yes [ No ] Selecteer &gui.no; met de pijltjestoetsen en druk op Enter om terug te gaan naar het menu Main Installation.
Install afsluiten
Selecteer [X Exit Install] met de pijltjestoetsen en druk op Enter. Er wordt om bevestiging gevraagd: User Confirmation Requested Are you sure you wish to exit? The system will reboot (be sure to remove any floppies from the drives). [ Yes ] No Selecteer &gui.yes; en verwijder de diskette als er van een diskette is opgestart. Het cd-rom station is op slot tot de machine begint met herstarten. Het cd-rom station wordt dan vrijgegeven en de CD kan dan (snel) verwijderd worden. Het systeem start op, dus let op eventuele foutberichten die getoond worden.
&os; opstarten &os; opstarten op &i386; Als alles goed is gegaan komen er berichten over het scherm rollen en komt dit uit bij de aanmeldprompt. De inhoud van de berichten kan bekeken worden door te drukken op Scroll-Lock en dan met PgUp en PgDn door de tekst heen te lopen. Druk weer op Scroll-Lock om terug te gaan naar de prompt. Het kan zijn dat het totale bericht niet getoond kan worden (beperking van de buffer). Dan kunnen de berichten later bekeken worden op de commandoregel door na het aanmelden dmesg in te geven op de prompt. Meld aan met de gebruikersnaam en het wachtwoord die zijn aangemaakt tijdens de installatie (in dit voorbeeld rpratt). Vermijd het aanmelden als root, behalve als het noodzakelijk is. Gebruikelijke opstartberichten (versieinformatie verwijderd): Copyright (c) 1992-2002 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. Timecounter "i8254" frequency 1193182 Hz CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU) Origin = "AuthenticAMD" Id = 0x580 Stepping = 0 Features=0x8001bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX> AMD Features=0x80000800<SYSCALL,3DNow!> real memory = 268435456 (262144K bytes) config> di sn0 config> di lnc0 config> di le0 config> di ie0 config> di fe0 config> di cs0 config> di bt0 config> di aic0 config> di aha0 config> di adv0 config> q avail memory = 256311296 (250304K bytes) Preloaded elf kernel "kernel" at 0xc0491000. Preloaded userconfig_script "/boot/kernel.conf" at 0xc049109c. md0: Malloc disk Using $PIR table, 4 entries at 0xc00fde60 npx0: <math processor> on motherboard npx0: INT 16 interface pcib0: <Host to PCI bridge> on motherboard pci0: <PCI bus> on pcib0 pcib1: <VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge> at device 1.0 on pci0 pci1: <PCI bus> on pcib1 pci1: <Matrox MGA G200 AGP graphics accelerator> at 0.0 irq 11 isab0: <VIA 82C586 PCI-ISA bridge> at device 7.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <VIA 82C586 ATA33 controller> port 0xe000-0xe00f at device 7.1 on pci0 ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 uhci0: <VIA 83C572 USB controller> port 0xe400-0xe41f irq 10 at device 7.2 on pci0 usb0: <VIA 83C572 USB controller> on uhci0 usb0: USB revision 1.0 uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1 uhub0: 2 ports with 2 removable, self powered chip1: <VIA 82C586B ACPI interface> at device 7.3 on pci0 ed0: <NE2000 PCI Ethernet (RealTek 8029)> port 0xe800-0xe81f irq 9 at device 10.0 on pci0 ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit) isa0: too many dependant configs (8) isa0: unexpected small tag 14 fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0 fdc0: FIFO enabled, 8 bytes threshold fd0: <1440-KB 3.5" drive> on fdc0 drive 0 atkbdc0: <keyboard controller (i8042)> at port 0x60-0x64 on isa0 atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0 kbd0 at atkbd0 psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: model Generic PS/2 mouse, device ID 0 vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 sc0: <System console> at flags 0x1 on isa0 sc0: VGA <16 virtual consoles, flags=0x300> sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f8-0x2ff irq 3 on isa0 sio1: type 16550A ppc0: <Parallel port> at port 0x378-0x37f irq 7 on isa0 ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode ppc0: FIFO with 16/16/15 bytes threshold ppbus0: IEEE1284 device found /NIBBLE Probing for PnP devices on ppbus0: plip0: <PLIP network interface> on ppbus0 lpt0: <Printer> on ppbus0 lpt0: Interrupt-driven port ppi0: <Parallel I/O> on ppbus0 ad0: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata0-master using UDMA33 ad2: 8063MB <IBM-DHEA-38451> [16383/16/63] at ata1-master using UDMA33 acd0: CDROM <DELTA OTC-H101/ST3 F/W by OIPD> at ata0-slave using PIO4 Mounting root from ufs:/dev/ad0s1a swapon: adding /dev/ad0s1b as swap device Automatic boot in progress... /dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation) /dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation) /dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS /dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation) /dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS /dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation) Doing initial network setup: hostname. ed0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255 inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1 ether 52:54:05:de:73:1b lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 Additional routing options: IP gateway=YES TCP keepalive=YES routing daemons:. additional daemons: syslogd. Doing additional network setup:. Starting final network daemons: creating ssh RSA host key Generating public/private rsa1 key pair. Your identification has been saved in /etc/ssh/ssh_host_key. Your public key has been saved in /etc/ssh/ssh_host_key.pub. The key fingerprint is: cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com creating ssh DSA host key Generating public/private dsa key pair. Your identification has been saved in /etc/ssh/ssh_host_dsa_key. Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub. The key fingerprint is: f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com. setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout starting standard daemons: inetd cron sshd usbd sendmail. Initial rc.i386 initialization:. rc.i386 configuring syscons: blank_time screensaver moused. Additional ABI support: linux. Local package initialization:. Additional TCP options:. FreeBSD/i386 (k6-2.example.com) (ttyv0) login: rpratt Password: Het aanmaken van de RSA en DSA sleutels kan een tijdje duren op langzamere machines. Dit gebeurt alleen bij de eerste keer aanmelden na een nieuwe installatie. De volgende keren gaan sneller. Als de X-server ingesteld is en er een standaard desktop is gekozen, dan kan die worden gestart door startx in te geven op de commandoregel. &os; opstarten op Alpha Alpha Nadat de installatieprocedure voltooid is, kan &os; starten door iets als onderstaand in te voeren op de SRM prompt: >>>BOOT DKC0 Dit geeft de firmware de opdracht op te starten vanaf de aangegeven schijf. Gebruik om &os; in de toekomst automatisch op te laten starten deze commando's: >>> SET BOOT_OSFLAGS A >>> SET BOOT_FILE '' >>> SET BOOTDEF_DEV DKC0 >>> SET AUTO_ACTION BOOT De opstartberichten zijn vergelijkbaar (maar niet hetzelfde) als tijdens het opstarten van &os; op &i386;. &os; uitschakelen Het is belangrijk om het besturingssysteem op de juiste manier uit te schakelen. Schakel niet gewoon de stroom uit. Neem eerst de rol van superuser aan door su in te geven op de commandoregel en het root wachtwoord in te geven. Dit kan alleen als gebruiker die lid is van de groep wheel. Anders moet eerst worden aangemeld als root. Gebruik shutdown -h now om het systeem uit te schakelen. The operating system has halted. Please press any key to reboot. Het is veilig om de stroom uit te schakelen als na het commando shutdown het bericht Please press any key to reboot getoond wordt. Als een toets wordt ingedrukt in plaats van het uitschakelen van de stroom, dan start het systeem opnieuw. De combinatie CtrlAltDel kan ook gebruikt worden om het systeem te herstarten, maar dit wordt niet aangeraden tijdens normaal gebruik.
Ondersteunde hardware hardware &os; draait momenteel op een grote hoeveelheid ISA, VLB, EISA en PCI bus-gebaseerde PC's met Intel, AMD, Cyrix of NexGen x86 processoren en ook op een aantal machines gebaseerd op de Compaq Alpha processor. Ondersteuning voor algemene IDE of ESDI schijfopstellingen, diverse SCSI controllers, PCMCIA kaarten, USB apparaten en netwerk- en serieële-kaarten is ook aanwezig. &os; ondersteunt ook de microchannel (MCA) bus van IBM. Een lijst van ondersteunde hardware wordt meegeleverd met elke &os; versie in de &os; Hardware Notes. Dit document kan normaliter gevonden worden in een bestand genaamd HARDWARE.TXT, in de hoofdmap van een cd-rom of FTP distributie of in het documentatiemenu van sysinstall. Dit document geeft voor een bepaalde architectuur een opsomming van de hardware waarvan bekend is dat ze ondersteund wordt door elke versie van &os;. Kopieën van de ondersteunde hardwarelijst voor de diverse versies en architecturen kunnen ook gevonden worden op de pagina Release Information van de &os; website. Problemen oplossen installatie problemen oplossen Dit onderdeel behandelt het oplossen van installatieproblemen, zoals veel voorkomende problemen die gebruikers hebben gerapporteerd. Er is ook een aantal vragen en antwoorden voor mensen die een systeem willen hebben met zowel &os; als &ms-dos; (dual-boot). Wat als er iets misgaat? Door de beperkingen van de PC-architectuur is het onmogelijk om 100% betrouwbaar een hardware-onderzoek te doen, maar er zijn een paar dingen die wel gedaan kunnen worden. Controleer het Hardware Notes document voor de versie van &os; om er zeker van te zijn dat de hardware ondersteund wordt. Als de hardware wordt ondersteund, maar het systeem loopt nog steeds vast of heeft andere problemen, herstart dan de computer en als de visuele kernelinstellingoptie wordt getoond, kies die dan. Dit maakt het mogelijk om door de hardware te gaan en informatie over die hardware aan het systeem te geven. De kernel op de opstartschijven gaat er vanuit dat de hardware ingesteld is op de fabrieksinstellingen wat betreft IRQ's, IO adressen en DMA kanalen. Als de hardware anders is ingesteld, dan moet waarschijnlijk de instellingeneditor gebruikt worden om &os; te vertellen waar de apparaten te vinden zijn. Het is ook mogelijk dat een onderzoek naar een apparaat dat niet aanwezig is een probleem veroorzaakt bij een later onderzoek naar een ander apparaat dat er wel is. In dat geval moet het conflicterende stuurprogramma uitgeschakeld worden. Sommige installatieproblemen kunnen voorkomen of verminderd worden door de firmware op de diverse hardwarecomponenten bij te werken, zeker als het om het moederbord gaat. De firmware voor een moederbord wordt ook aangeduid als het BIOS en de meeste moederbord- en computerfabrikanten hebben een website waar upgrades en upgrade-informatie beschikbaar is. De meeste fabrikanten raden sterk af om het BIOS te upgraden, tenzij er een goede reden voor is, zoals bijvoorbeeld een kritische update. Het upgradeproces kan misgaan, wat beschadiging van de BIOS chip kan veroorzaken. Schakel geen stuurprogramma's uit die nodig zijn tijdens de installatie, zoals het scherm (sc0). Als de installatie vastloopt of op mysterieuze wijze misgaat na het verlaten van de instellingeneditor, dan is waarschijnlijk iets verwijderd of veranderd dat beter niet verwijderd of veranderd had kunnen worden. Herstart en probeer het opnieuw. De instellingenmodus geeft gelegenheid om: Een lijst te maken van de stuurprogramma's die geïnstalleerd zijn in de kernel; Stuurprogramma's van hardware die niet aanwezig is in een systeem uit te schakelen; IRQ's, DRQ's en IO-poort adressen die door een stuurprogramma worden gebruikt te veranderen. Na het aanpassen van de kernel aan de hardware-instellingen, kan Q ingegeven worden om op te starten met de nieuwe instellingen. Als de installatie klaar is, worden de in de instellingenmodus gemaakte wijzigingen opgeslagen, zodat ze niet bij iedere start opnieuw ingesteld hoeven worden. Het is desalniettemin waarschijnlijk dat op een gegeven moment een aangepaste kernel wenselijk is. Omgang met bestaande &ms-dos;-partities DOS Veel gebruikers willen &os; installeren op een PC waarop reeds µsoft; gebaseerde besturingssystemen zijn geïnstalleerd. Voor die gevallen heeft &os; een hulpprogramma genaamd FIPS. Dit hulpprogramma staat in de map tools op de installatie cd-rom of kan gedownload worden van één van de vele &os; mirrors. Met het hulpprogramma FIPS kan een bestaande &ms-dos;-partitie gedeeld worden in twee stukken, waarbij de oorspronkelijke partitie in stand blijft, zodat op het het tweede, vrije deel geïnstalleerd kan worden. Eerst moet de &ms-dos;-partitie gedefragmenteerd worden met het &windows; hulpprogramma Disk Defragmenter (open de verkenner, klik met de rechter muisknop op de harde schijf en selecteer het defragmenteren van de harde schijf) of gebruik Norton Disk Tools. Daarna kan FIPS gedraaid worden. Dit vraagt de benodigde informatie en de instructies op het scherm kunnen verder opgevolgd worden. Daarna kan het systeem opnieuw gestart worden om &os; te installeren op het nieuwe vrije deel. In het menu Distributions kan een schatting gemaakt worden voor de benodigde vrije ruimte voor de het type installatie dat gewenst is. Er is ook een handig product van PowerQuest (http://www.powerquest.com), &partitionmagic;. Deze applicatie heeft veel meer functionaliteit dan FIPS en wordt sterk aangeraden als het plan is om vaak besturingssystemen toe te voegen en te verwijderen. Het kost geld, dus als het de bedoeling is om &os; te installeren en geïnstalleerd te houden, dan is FIPS waarschijnlijk goed genoeg. &ms-dos; en &windows; bestandssystemen gebruiken &os; ondersteunt geen bestandssystemen die gecomprimeerd zijn met het programma Double Space™. Daarom moet het bestandssysteem eerst gedecomprimeerd worden voordat &os; de data kan benaderen. Dit kan met de Compression Agent, te vinden in het menu Start> Programma's > Bureau-accessoires > Systeemwerkset. &os; kan &ms-dos; gebaseerde bestandssystemen ondersteunen. Daarvoor dient &man.mount.msdos.8; gebruikt te worden (in &os; 5.X &man.mount.msdosfs.8;) met de noodzakeijke parameters. Het normale gebruik van dit hulpprogramma is: &prompt.root; mount_msdos /dev/ad0s1 /mnt In dit voorbeeld staat het &ms-dos; bestandssysteem op de eerste partitie van de primaire harde schijf. Iedere situatie kan anders zijn, dus controleer de uitvoer van de commando's dmesg en mount. Dat zou voldoende informatie moeten leveren om een idee te vormen over het partitieschema. Extended &ms-dos; bestandssystemen worden meestal opgeslagen na de &os;-partities. Met andere woorden: het slicenummer kan hoger zijn dan die voor &os; wordt gebruikt. Bijvoorbeeld: de eerste &ms-dos;-partitie kan zijn /dev/ad0s1, de &os;-partitie kan zijn /dev/ad0s2 en de extended &ms-dos;-partitie kan staan op /dev/ad0s3. Voor sommigen kan dit in het begin verwarrend zijn. NTFS-partities kunnen op soortgelijke manier aangekoppeld worden met het commando &man.mount.ntfs.8;. Vragen en antwoorden voor Alpha gebruikers Alpha In dit onderdeel wordt antwoord gegeven op gebruikelijke vragen bij het installeren van &os; op Alpha systemen. Is opstarten van de ARC of Alpha BIOS Console mogelijk? ARC Alpha BIOS SRM Nee. &os; kan, net als Compaq Tru64 en VMS, alleen opstarten vanaf de SRM console. Help, er is geen ruimte! Moet eerst alles weggegooid worden? Ja, helaas wel. Kunnen Compaq Tru64 of VMS bestandssystemen aangekoppeld worden? Nee, niet op dit moment. Valentino Vaschetto Geschreven door Installeren voor gevorderden In dit onderdeel wordt het installeren van &os; in bijzondere situaties beschreven. &os; installeren op een systeem zonder monitor of toetsenbord installatie zonder monitor en toetsenbord (seriële console) seriële console Dit type installatie heet ook wel een headless install, omdat de met &os; te installeren machine of geen monitor heeft aangesloten of zelfs geen VGA-uitvoer heeft. Hoe is dat mogelijk, kan de vraag zijn. Dat kan met een seriële console. Een seriële console is gewoonweg een andere machine die optreedt als monitor en toetsenbord voor een systeem. Om dit te doen moeten eerst opstartdiskettes gemaakt worden, zoals beschreven in . Volg de volgende stappen om deze diskettes aan te passen om op te starten met een seriële console: Opstartdiskettes geschikt maken voor een seriële console mount Als wordt opgestart van de zojuist gemaakt diskettes, start &os; op in de normale installatiemodus. &os; moet echter opstarten naar een seriële console voor de installatie. Om dit te regelen moet de diskette met kern.flp gekoppeld worden aan het &os; systeem met het commando &man.mount.8;. &prompt.root; mount /dev/fd0 /mnt Nu de diskette is aangekoppeld kan de map /mnt worden geopend: &prompt.root; cd /mnt Hier moet de diskette worden ingesteld om naar een seriële console op te starten. Maak een bestand genaamd boot.config met daarin /boot/loader -h. Dit geeft een instelling aan de bootloader door om naar een seriële console te starten. &prompt.root; echo "/boot/loader -h" > boot.config Nu de diskette goed is ingesteld moet deze weer afgekoppeld worden met &man.umount.8;: &prompt.root; cd / &prompt.root; umount /mnt Nu kan de diskette uit het diskettestation gehaald worden. Null-modem kabel aansluiten null-modem kabel Nu moeten de twee machines verbonden worden met een null-modem kabel. De kabel kan gewoon aangesloten worden tussen de seriële poorten van de machines. Een gewone seriële kabel werkt niet, er is een null-modem kabel nodig omdat daarin sommige draden kruiselings zijn verbonden. Opstarten voor het installeren Nu is het tijd om te beginnen met installeren. Steek de diskette kern.flp in het station van de machine die headless wordt geïnstalleerd en zet hem aan. Verbinden met de headless machine cu Nu moet verbinding gemaakt worden met die machine met &man.cu.1;: &prompt.root; cu -l /dev/cuaa0 Dat is alles! De headless machine kan bediend worden via de cu sessie. Het installatieprogramma vraagt de diskette mfsroot.flp in te geven en vraagt dan wat voor terminal er gebruikt moeten worden. Selecteer de &os; color console en ga verder met de installatie! Aangepaste installatiemedia maken Om herhaling te voorkomen: &os;-schijf betekent in deze context een &os; cd-rom of DVD die gekocht is of zelf is gemaakt. Er kunnen zich situaties voordoen waarin aangepaste &os; installatiemedia en/of bronnen gemaakt moeten worden. Dat kunnen fysieke media zijn zoals een tape of een bron die sysinstall kan gebruiken om bestanden op te halen, zoals een lokale FTP site of een &ms-dos;-partitie. Bijvoorbeeld: Er zijn veel machines aangesloten op een lokaal netwerk en er is maar één &os;-schijf. Er moet een lokale FTP site gemaakt worden met de inhoud van de &os; schijf en vervolgens gebruiken andere machines die in plaats van steeds naar het Internet te moeten. Er is een &os;-schijf, &os; herkent de CD/DVD-speler niet, maar &ms-dos;/&windows; wel. De &os; installatiebestanden moeten gekopieerd worden naar een DOS-partitie op dezelfde computer en dan moet &os; geïnstalleerd worden met die bestanden. De computer die geïnstalleerd moet worden heeft geen CD/DVD-speler of netwerkkaart, maar kan wel verbonden worden via een Laplink-achtige seriële of parallelle kabel met een computer die wel een CD/DVD-speler heeft. Er moet een tape gemaakt worden die gebruikt kan worden om &os; te installeren. Installatie cd-rom maken Als onderdeel van elke versie stelt het &os; project twee cd-rom images beschikbaar (ISO images). Deze images kunnen op een CD-R gebrand worden en dan gebruikt worden om &os; te installeren. Als een CD-schrijver aanwezig is en bandbreedte is goedkoop, dan is dit de makkelijkste manier om &os; te installeren. De juiste ISO images downloaden De ISO images voor iedere versie kunnen worden gedownload van ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES-arch/versie of de dichtstbijzijnde mirror. Vervang arch en versie door de gewenste waarden. De bovenstaande map bevat meestal de volgende images: &os; 4.<replaceable>X</replaceable> ISO imagenamen en verklaring Bestandsnaam Bevat versie-RELEASE-arch-miniinst.iso Alles wat nodig is om &os; te installeren. versie-RELEASE-arch-disc1.iso Alles wat nodig is om &os; te installeren en zoveel additionele pakketten van derde partijen als op de schijf passen. versie-RELEASE-arch-disc2.iso Een live bestandssyteem dat gebruikt wordt in samenwerking met de optie Repair in sysinstall. Een kopie van de &os; CVS boom. Zoveel additionele pakketten van derde partijen als op de schijf passen.
FreeBSD 5.<replaceable>X</replaceable> ISO imagenamen en verklaring Bestandsnaam Bevat versie-RELEASE-arch-bootonly.iso Alles wat nodig is om in een &os; kernel te starten en in het installatieprogramma te komen. De installatiebestanden dienen van FTP of een andere ondersteunde bron te komen. versie-RELEASE-arch-miniinst.iso Alles wat nodig is om &os; te installeren. versie-RELEASE-arch-disc1.iso Alles wat nodig is om &os; te installeren en een live bestandssyteem dat gebruikt wordt in samenwerking met de optie Repair in sysinstall. versie-RELEASE-arch-disc2.iso &os; documentatie en zoveel programma's van derde partijen als op de schijf passen.
Of het mini ISO image of het disc one image moet gedownload worden. Download niet beiden, want disc one bevat alles wat ook op het miniinst ISO image staat. Het miniinst ISO image is alleen beschikbaar voor releases voor 5.4-RELEASE. Gebruik de miniinst ISO als toegang tot internet goedkoop is. Hiermee kan &os; geïnstalleerd worden, waarna pakketten van derde partijen gedownload en geïnstalleerd kunnen worden via het ports/packages systeem (zie ). Gebruik het disc one image ook om een &os; 4.X te installeren en een redelijke hoeveelheid pakketten op de installatieschijf gewenst is. De additionele disc images zijn nuttig, maar niet noodzakelijk, zeker niet als er breedband toegang tot internet is.
CD's branden Daarna moeten de CD images op een schijf gebrand worden. Als dat wordt gedaan op een ander &os; systeem, dan staat in meer informatie (meer in het bijzonder in en ). Als de CD's op een ander platform worden gebrand, gebruik dan de op dat platform beschikbare hulpprogramma's om een CD-brander aan te sturen. De images zijn samengesteld in het standaard ISO-formaat dat ondersteund wordt door de meeste CD-brandprogramma's.
Als er interesse is in het bouwen van een aangepaste versie van &os; dan staat hierover informatie in het Release Engineering artikel.
Een lokale FTP site maken met een &os;-schijf installatie netwerk FTP &os;-schijven zijn op dezelfde manier ingedeeld als de FTP site. Dat maakt het erg gemakkelijk om een lokale FTP site te maken die gebruikt kan worden door andere machines op een netwerk bij het installeren van &os;. Op de &os; computer die de FTP site bevat moet de cd-rom in het cd-rom station zitten en aangekoppeld zijn op /cdrom. &prompt.root; mount /cdrom Maak een gebruikersaccount voor anonieme FTP toegang in /etc/passwd het bestand te bewerken met &man.vipw.8; en de volgende regel toe te voegen: ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent Zorg ervoor dat de dienst FTP aan staat in /etc/inetd.conf. Iedereen met een netwerkverbinding naar de machine kan nu als mediumtype FTP kiezen en ftp://de-machine ingeven na het kiezen van Other in het menu FTP sites tijdens de installatie. Als de bootmedia (meestal diskettes) voor een FTP client niet precies dezelfde versie hebben als die van de lokale FTP site, dan kan sysinstall de installatie niet volledig afronden. Als de versies niet gelijk zijn, dan kan in het menu Options de distributienaam gewijzigd worden in any. Deze aanpak is in orde voor een machine die aan een lokaal netwerk hangt en beschermd wordt door een firewall. Het aanbieden van FTP-diensten aan andere machines over internet (en niet alleen het lokale netwerk) stelt een computer bloot aan de aandacht van krakers en andere ongewenste personen. We raden sterk aan om voldoende voorzorgsmaatregelen te nemen als hiervoor wordt gekozen. Installatiediskettes maken installatie diskettes Als wordt geïnstalleerd met diskettes (we adviseren om dit niet te doen), hetzij vanwege niet ondersteunde hardware of eenvoudigweg omdat de persoon die installeert er op staat dingen op de moeilijkste manier te doen, dan moeten eerst diskettes gemaakt worden voor de installatie. Er zijn minstens zoveel 1.44 MB of 1.2 MB diskettes nodig als nodig zijn om alle bestanden die in de map bin (binaire distributie) staan op te slaan. Als de diskettes worden gemaakt vanuit DOS, dan moeten ze geformatteerd worden met het &ms-dos; commando FORMAT. Als &windows; wordt gebruikt, formatteer de schijven dan via de verkenner (rechtermuis-klik op A: en kies dan Format). Vertrouw voorgeformatteerde schijven niet. Formatteer ze voor de zekerheid opnieuw. Veel door gebruikers gerapporteerde problemen kwamen voort uit het gebruik van verkeerd geformatteerde media, vandaar dat dit punt hier wordt benadrukt. Als de diskettes worden gemaakt op een andere &os; machine is formatteren nog steeds geen slecht idee, hoewel niet op elke diskette een DOS bestandssysteem nodig is. Met de commando's disklabel en newfs kan er een UFS bestandssysteem op gezet worden, zoals met de volgende commando's wordt getoond (voor een 3.5" 1.44 MB diskette): &prompt.root; fdformat -f 1440 fd0.1440 &prompt.root; disklabel -w -r fd0.1440 floppy3 &prompt.root; newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0 Gebruik fd0.1200 en floppy5 voor 5.25" 1.2 MB diskettes. Daarna kunnen ze aangekoppeld en beschreven worden als elk ander bestandssysteem. Nadat de diskettes zijn geformatteerd moeten de bestanden op de diskettes gezet worden. De distributiebestanden zijn opgedeeld in porties zodat vijf stuks gemakkelijk op een ouderwetse 1.44 MB diskette passen. Ga door met alle diskettes en zet zoveel bestanden als mogelijk op elke diskette tot alle distributies op die manier gekopiëerd zijn. Elke distributie moet in een submap op de diskette komen, bijvoorbeeld: a:\bin\bin.aa, a:\bin\bin.ab, enzovoorts. Als tijdens de installatie het scherm Media verschijnt kan Floppy gekozen worden en het installatiesysteem vraagt daarna om de overige diskettes. Installeren vanaf een &ms-dos;-partitie installatie van &ms-dos; Om een installatie voor te bereiden vanaf een &ms-dos;-partitie kunnen alle bestanden vanaf de distributie in een map genaamd freebsd in de hoofdmap van de partitie gezet worden, bijvoorbeeld c:\freebsd. De mappenstructuur van de cd-rom of FTP site moet gedeeltelijk worden gereproduceerd in deze map, dus we raden aan het DOS commando xcopy te gebruiken als de bron een cd-rom is. Om bijvoorbeeld een minimale installatie van &os; voor te bereiden: C:\> md c:\freebsd C:\> xcopy e:\bin c:\freebsd\bin\ /s C:\> xcopy e:\manpages c:\freebsd\manpages\ /s Hierbij wordt aangenomen dat C: de schijf is met voldoende vrije ruimte en dat E: het cd-rom station is. Als er geen cd-rom station is, dan kan de distributie gedownload worden van ftp.FreeBSD.org. Elke distributie heeft zijn eigen map. De base distributie staat bijvoorbeeld in de map &rel.current;/base/. In &os; 4.X en oudere versies heet de base distributie bin. Pas de voorbeeldcommando's en URL's hierboven daarop aan als een oudere versie wordt gebruikt. Kopiëer de vanaf een &ms-dos;-partitie te installeren distributies (en waar schijfruimte voor is) en plaats ze elk onder c:\freebsd. De distributie BIN is de enige noodzakelijke voor een minimale installatie. Installeren van tape installatie van QIC/SCSI Tape Het installeren vanaf een tape is waarschijnlijk de gemakktelijkste manier, sneller dan een online FTP installatie of een cd-rom installatie. Het installatie-programma verwacht dat de bestanden eenvoudigweg getarred zijn op een tape. Na het ophalen van alle benodigde distributiebestanden moeten ze op een tape getarred worden: &prompt.root; cd /freebsd/distdir &prompt.root; tar cvf /dev/rwt0 dist1 ... dist2 Bij het uitvoeren van de installatie moet ervoor gezorgd worden dat er voldoende ruimte is in een tijdelijke map (die gekozen kan worden) om de volledige inhoud van de gemaakte tape te bevatten. Door de sequentiële toegangsmethode van een tape heeft deze manier van installeren nogal wat tijdelijke schijfruimte nodig. Bij het begin van de installatie moet de tape al in de drive zitten voor het opstarten van de opstartdiskette. Het installatieprogramma kan hem anders niet vinden. Installeren over een netwerk installatie netwerk serieel (SLIP of PPP) installatie netwerk parallel (PLIP) installatie netwerk Ethernet Er zijn drie soorten netwerkinstallaties beschikbaar: Seriële poort (SLIP of PPP), Parallelle poort (PLIP of laplink kabel) of Ethernet (een standaard ethernetkaart, inclusief sommige PCMCIA-kaarten). De ondersteuning van SLIP is nogal primitief en hoofdzakelijk beperkt tot hard-wired links, zoals een seriële kabel tussen een laptop en een andere computer. De link moet hard-wired zijn, omdat de SLIP installatie geen inbelfaciliteiten biedt. Zo'n faciliteit wordt wel geboden met het PPP-hulpprogramma, dat dan ook gebruikt moet in worden in plaats van SLIP als maar enigzins mogelijk. Als een modem wordt gebruikt is PPP hoogstwaarschijnlijk de enige mogelijkheid. Er dient informatie over de provider beschikbaar te zijn omdat die redelijk vroeg in het installatieproces nodig is. Als PAP of CHAP wordt gebruikt om een verbinding te maken met een ISP (met andere woorden als een verbinding gemaakt kan worden met een ISP onder &windows; zonder een script te gebruiken), dan is alles wat gedaan moet worden het ingeven van het dial commando op de ppp prompt. Anders moet bekend zijn hoe de ISP gebeld moet worden met AT commando's die specifiek zijn voor een modem, aangezien de PPP-dialer slechts een erg eenvoudige terminal emulator bevat. In het ppp-gebruikers handboek en de FAQ staat meer informatie. Bij problemen kan de log naar het scherm worden gestuurd met het commando set log local .... Als een hard-wired verbinding naar een andere &os; (2.0-R of later) machine beschikbaar is kan ook overwogen worden te installeren via een laplink parallelle poort kabel. De snelheid van een parallelle poort is veel hoger dan wat normaal mogelijk is over een seriële kabel (tot 50 kbytes/sec), resulterend een veel snellere installatie. Tenslotte, voor de snelst mogelijke netwerk-nstallatie is een Ethernet adapter altijd een goede keuze! &os; ondersteunt de meeste ethernetkaarten. Een overzicht van de ondersteunde kaarten (en de benodigde instellingen) is beschikbaar in de Hardware Notes voor elke versie van &os;. Als gebruik gemaakt wordt van een ondersteunde PCMCIA kaart, stop deze dan in het slot vóór de laptop wordt aangezet. &os; ondersteunt momenteel helaas geen hot insertion van PCMCIA-kaarten tijdens de installatie. Een toe te wijzen IP-adres op het netwerk, het netmask van de adresklasse en de naam voor de te installeren machine moeten ook bekend zijn. Als wordt geïnstalleerd over een PPP-verbinding en er is geen vast IP-adres, wanhoop dan niet. Het IP-adres kan dynamisch toegekend worden door een ISP. Een systeembeheerder kan aangeven welke waarden gebruikt moeten worden voor netwerkinstellingen. Als andere hosts benaderd moeten worden op naam en niet op IP-adres, dan moet ook een nameserver en mogelijk het adres van een gateway opgegeven worden (als PPP wordt gebruikt is dat het IP-adres van de provider). Bij installatie met FTP via een HTTP-proxy moet ook het adres van de proxy bekend zijn. Als het antwoord op één of meerdere vragen niet bekend is, dan moet echt gesproken worden met de systeembeheerder of ISP vóóor dit soort installaties worden uitgevoerd. Installeren via NFS installatie netwerk NFS De installatie via NFS is redelijk rechttoe-rechtaan. Kopiëer gewoon de &os; distributiebestanden die nodig zijn naar een NFS server en geef die server dan aan in de NFS-media selectie. Als de server alleen zogenaamde privileged ports toestaat (zoals in z'n algemeenheid de standaard voor Sun workstations), dan moet ook de optie NFS Secure aangezet worden in het menu Options voor de installatie verder kan gaan. Bij het gebruik van een ethernetkaart van lage kwaliteit die last heeft van erg lage overdrachtssnelheden kan ook de vlag NFS Slow aangezet worden. Om de installatie van NFS te laten werken, moet de server het aankoppelen van submappen ondersteunen. Als bijvoorbeeld een &os; &rel.current; distributie op ziggy:/usr/archive/stuff/FreeBSD staat, dan moet ziggy toestaan dat /usr/archive/stuff/FreeBSD rechtstreeks wordt aangekoppeld en niet alleen /usr of /usr/archive/stuff. Dit wordt vanuit het &os;-bestand /etc/exports geregeld door de opties . Andere NFS servers kunnen andere gewoontes hebben. Bij een foutbericht permission denied van de server is het waarschijnlijk dat deze niet goed is ingesteld.
diff --git a/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml index 88d4768c25..f67b68a5f0 100644 --- a/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml @@ -1,1843 +1,1843 @@ Jim Mock Bijgewerkt en opnieuw gestructureerd door Jake Hamby Oorspronkelijk bijgedragen door René Ladan Vertaald door De &os;-kernel instellen Samenvatting kernel een aangepaste kernel bouwen De kernel is de kern van het &os;-besturingssysteem en is verantwoordelijk voor het geheugenbeheer, het opleggen van beveiligingsregels, het aansturen van het netwerk, de toegang tot schijven en nog veel meer. Hoewel steeds meer in &os; dynamisch instelbaar wordt, is het af en toe nodig om de kernel opnieuw in te stellen en te compileren. Na het lezen van dit hoofdstuk weet de lezer: Waarom het nodig is om een aangepaste kernel te bouwen; Hoe een nieuw kernelinstellingenbestand te schrijven of een bestaand kernelinstellingenbestand aan te passen; Hoe het kernelinstellingenbestand te gebruiken om een nieuwe kernel aan te maken en te bouwen; Hoe een nieuwe kernel te installeren; Hoe de ingangen in /dev die nodig kunnen zijn aan te maken; Hoe problemen op te lossen als er iets verkeerd gaat. Alle opdrachten die in dit hoofdstuk als voorbeeld zijn gegeven moeten als root uitgevoerd worden om te slagen. Redenen om een aangepaste kernel te bouwen Traditioneel heeft &os; zoals dat heet een monolitische kernel gehad. Dit betekent dat de kernel één groot programma was, een vaste lijst van apparaten ondersteunde en als het gewenst was om het gedrag van de kernel te veranderen, moest er een nieuwe kernel gecompileerd worden en moest daarna de computer opnieuw gestart worden met de nieuwe kernel. Vandaag de dag beweegt &os; zich snel naar een model waar veel van de functionaliteit van de kernel in modules zit die dynamisch in en uit de kernel kunnen worden geladen, naargelang dat noodzakelijk is. Dit stelt de kernel in staat om zich aan nieuwe hardware aan te passen die plotseling beschikbaar komt (zoals PCMCIA-kaarten in een laptop) of om nieuwe functionaliteit in zich op te nemen die niet noodzakelijk was toen de kernel oorspronkelijk werd gecompileerd. Dit staat bekend als een modulaire kernel. Desondanks is het nog steeds nodig om enkele dingen van de kernel statisch in te stellen. In sommige gevallen komt dit doordat de functionaliteit zo diep geworteld zit in de kernel dat het niet dynamisch laadbaar gemaakt kan worden. In andere gevallen kan het simpelweg komen doordat nog niemand de tijd heeft genomen om een dynamisch laadbare kernelmodule voor die functionaliteit te schrijven. Het bouwen van een aangepaste kernel is een van de meest belangrijke beproevingen die bijna elke BSD-gebruiker moet doorstaan. Hoewel dit proces veel tijd in beslag neemt, levert het veel voordelen op voor een &os; systeem. In tegenstelling tot de GENERIC-kernel, die vele typen hardware moet ondersteunen, ondersteunt een aangepaste kernel alleen de hardware van de computer waar hij voor gemaakt is. Dit biedt een aantal voordelen, zoals: Een snellere opstarttijd. Aangezien de kernel alleen de hardware zoekt die zich in het systeem bevindt, kan de tijd die het systeem nodig heeft om op te starten aanzienlijk korter worden; Minder geheugengebruik. Een aangepaste kernel gebruikt vaak minder geheugen dan de GENERIC-kernel, wat van belang is aangezien de kernel zich altijd in het echte geheugen moet bevinden. Om deze reden is een aangepaste kernel geknipt voor een systeem met een kleine hoeveelheid RAM; Aanvullende hardware-ondersteuning. Een aangepaste kernel kan ingebouwde ondersteuning bieden voor apparaten die zich niet in de GENERIC-kernel bevinden, zoals geluidskaarten. Bouwen en installeren van een aangepaste kernel kernel bouwen / installeren Eerst wordt er een overzicht gegeven van de mappen waarin de kernel gebouwd wordt. Alle genoemde mappen staan onder de map /usr/src/sys, die ook toegankelijk is via de padnaam /sys. Er zijn hier een aantal mappen aanwezig die de verschillende delen van de kernel representeren, maar de meest belangrijke hiervan zijn arch/conf, waarin de kernelinstellingen bewerkt worden en compile, waarin de aangepaste kernel gebouwd wordt. arch representeert hier één van i386, alpha, amd64, ia64, powerpc, sparc64 of pc98 (een alternatieve ontwikkelingstak van PC-hardware die populair is in Japan). Alles binnen de map van een bepaalde architectuur is er alleen voor die architectuur. De rest van de code is machine-onafhankelijk en hetzelfde op alle platformen waarnaar &os; eventueel geport kan worden. De indeling van de mapstructuur is logisch: alle ondersteunde apparaten, bestandssystemen en opties staan in een eigen submap. Versies van &os; beneden 5.X ondersteunen alleen de i386-, alpha- en pc98-architecturen. Dit hoofdstuk veronderstelt dat de i386-architectuur in de voorbeelden gebruikt wordt. Als dit voor de lezer anders is, moeten de juiste aanpassingen aan de padnamen worden gemaakt voor de architectuur van zijn systeem. Als de map /usr/src/sys niet aanwezig is op een systeem, dan is de kernelbroncode niet geïnstalleerd. De eenvoudigste manier om dit te doen is door sysinstall ( /stand/sysinstall voor versies van &os; ouder dan 5.2) te draaien als root en Configure, Distributions, src, sys te kiezen. Als sysinstall ongewenst is en er toegang is tot een officiële &os; cd-rom, is de broncode ook vanaf de opdrachtregel te installeren: &prompt.root; mount /cdrom &prompt.root; mkdir -p /usr/src/sys &prompt.root; ln -s /usr/src/sys /sys &prompt.root; cat /cdrom/src/sys.[a-d]* | tar -xzvf - Daarna kan vanuit de map arch/conf het instellingenbestand GENERIC naar de naam voor de aangepaste kernel gekopieerd worden: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; cp GENERIC MIJNKERNEL Traditioneel bestaat deze naam geheel uit hoofdletters en als er meerdere &os;-machines worden beheerd met verschillende hardware is het een goed idee om het te vernoemen naar de hostnaam van de machine. Omwille van dit voorbeeld wordt het MIJNKERNEL genoemd. Het kernelinstellingenbestand direct onder /usr/src opslaan kan een slecht idee zijn. In geval van problemen kan het verleidelijk zijn om /usr/src te verwijderen en opnieuw te beginnen. Nadat dit gedaan is kost het vaak maar enkele seconden om te realiseren dat het instellingenbestand voor de aangepaste kernel verwijderd is. Ook moet GENERIC niet gewijzigd worden, omdat het tijdens de volgende keer dat de broncodestructuur bijgewerkt wordt, overschreven kan worden waarbij de wijzigingen in de kernelinstellingen verloren gaan. Het kan gewenst zijn om het kernelinstellingenbestand ergens anders op te slaan en een symbolische link naar het bestand in de map i386 aan te maken: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; mkdir /root/kernels &prompt.root; cp GENERIC /root/kernels/MIJNKERNEL &prompt.root; ln -s /root/kernels/MIJNKERNEL Nu moet MIJNKERNEL met de favoriete tekstverwerker bewerkt worden. Voor beginners is waarschijnlijk alleen de tekstverwerker vi beschikbaar, die te ingewikkeld is om hier te beschrijven, maar goed is beschreven in vele boeken in de bibliografie. &os; biedt ook de eenvoudigere tekstverwerker ee, die voor een beginner de keuze bij uitstek is. De commentaarregels in het begin kunnen gewijzigd worden om de persoonlijke instellingen of de veranderingen die gemaakt zijn ten opzichte van GENERIC weer te geven. &sunos; Voor degenen die een kernel op &sunos; of een andere BSD hebben gebouwd zal veel van dit bestand bekend voorkomen. Echter, voor degenen die van een ander besturingssysteem zoals DOS komen, kan het instellingenbestand GENERIC overdonderend overkomen, dus moeten de beschrijvingen in de sectie Het Instellingenbestand zorgvuldig opgevolgd worden. Als de broncodestructuur gesynchroniseerd is met de nieuwste broncode van het &os;-project, moet altijd /usr/src/UPDATING gelezen worden voordat enige updatestappen worden genomen. Dit bestand beschrijft alle belangrijke zaken en gebieden binnen de broncodestructuur die speciale aandacht nodig hebben. /usr/src/UPDATING komt altijd overeen met de lokale versie van de &os;-broncode en is daarom meer bijgewerkt met nieuwe informatie dan dit handboek. Nu moet de broncode voor de kernel gecompileerd worden. Hiervoor zijn twee procedures beschikbaar en degene die gebruikt wordt hangt af van de reden waarom de kernel opnieuw gebouwd wordt en de gebruikte versie van &os;. Als alleen de kernelbroncode is geïnstalleerd, moet procedure 1 gevolgd worden. Als een versie van &os; lager dan 4.0 wordt gedraaid, en er niet wordt geupdate naar &os; 4.0 of hoger door middel van de make buildworld–procedure, moet procedure 1 gebruikt worden. Als er een nieuwe kernel gebouwd wordt zonder dat de broncode geupdate wordt (misschien om een nieuwe optie, zoals IPFIREWALL, toe te voegen), kunnen beide procedures gebruikt worden. Als de kernel opnieuw wordt gebouwd als onderdeel van een make buildworld-proces, moet procedure 2 gebruikt worden. cvsup CTM CVS anoniem Als de broncodestructuur niet op enige wijze bijgewerkt is sinds de laatste keer dat er met succes een buildworld-installworld cyclus werd uitgevoerd, CVSup noch CTM werden gedraaid en anoncvs werd niet gebruikt, dan is het veilig om config, make depend, make, make install te gebruiken. Procedure 1: een kernel op <quote>traditionele wijze</quote> bouwen Draai &man.config.8; om de kernelbroncode aan te maken: &prompt.root; /usr/sbin/config MIJNKERNEL Ga naar de bouwmap. &man.config.8; geeft de naam van deze map nadat het gedraaid is zoals boven is aangegeven: &prompt.root; cd ../compile/MIJNKERNEL Voor &os; versies lager dan 5.0 moet het volgende gebruikt worden: &prompt.root; cd ../../compile/MIJNKERNEL Compileer de kernel: &prompt.root; make depend &prompt.root; make Installeer de nieuwe kernel: &prompt.root; make install Procedure 2: een kernel op de <quote>nieuwe wijze</quote> bouwen Ga naar de map /usr/src: &prompt.root; cd /usr/src Compileer de kernel: &prompt.root; make buildkernel KERNCONF=MIJNKERNEL Installeer de nieuwe kernel: &prompt.user; make installkernel KERNCONF=MIJNKERNEL Voor deze methode voor het bouwen van een kernel is de volledige broncode nodig. Als alleen de kernelbroncode is geïnstalleerd, gebruik dan de traditionele methode zoals hiervoor beschreven. Bij het bouwen van een aangepaste kernel worden standaard alle kernelmodules ook herbouwd. Om de kernel sneller bij te werken en alleen de aangepaste modules te bouwen kan /etc/make.conf aangepast worden voordat de kernel wordt gebouwd: MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs Met deze variabele wordt een lijst van te bouwen modules ingesteld die gebouwd moeten worden in plaats van allemaal. Andere variabelen die mogelijk ook nuttig zijn in het proces van het bouwen van een kernel staan beschreven in de - handboekpagina voor &man.make.conf.5;. + handleiding voor &man.make.conf.5;. /boot/kernel.old De nieuwe kernel wordt naar de map /boot/kernel gekopieerd als /boot/kernel/kernel en de oude kernel wordt verplaatst naar /boot/kernel.old/kernel. Nu moet het systeem afgesloten worden en opnieuw worden opgestart om gebruik te maken van de nieuwe kernel. Er zijn wat instructies voor problemen oplossen aan het einde van dit hoofdstuk, die erg nuttig kunnen zijn als er iets misgaat. Vergeet niet om het gedeelte te lezen waarin staat uitgelegd hoe te herstellen als de nieuwe kernel niet opstart. In &os; 4.X en eerder worden kernels in /kernel en modules in /modules geïnstalleerd en worden oude kernels gebackupt in /kernel.old. Andere bestanden die te maken hebben met het opstartproces, zoals de boot &man.loader.8; en instellingen worden opgeslagen in /boot. Modules van derde partijen of eigen modules kunnen in /modules opgeslagen worden, alhoewel gebruikers erop bedacht moeten zijn dat het erg belangrijk is dat de modules synchroon worden gehouden met de gecompileerde kernel. Modules die niet bedoeld zijn om met de gecompileerde kernel te draaien kunnen voor instabiliteit of onjuistheden zorgen. Als er nieuwe apparaten (zoals geluidskaarten) zijn toegevoegd en &os; 4.X of eerder wordt gedraaid, kan het zijn dat er enkele apparaatnodes aan de map /dev moeten worden toegevoegd, voordat ze gebruikt kunnen worden. Er staat meer informatie in het Apparaatnodes maken later in dit hoofdstuk. Joel Dahl Bijgewerkt voor &os; 5.X door Het instellingenbestand kernel NOTES kernel LINT NOTES LINT kernel instellingenbestand Het algemene formaat van een instellingenbestand is vrij eenvoudig. Elke regel bevat een sleutelwoord en één of meer argumenten. Omwille van de eenvoud bevatten de meeste regels maar één argument. Alles wat na een # komt, wordt als commentaar beschouwd en genegeerd. De volgende gedeelten beschrijven elk sleutelwoord, in het algemeen in dezelfde volgorde als GENERIC, alhoewel sommige samenhangende sleutelwoorden gegroepeerd zijn in een enkel gedeelte (zoals Netwerken) zelfs al staan ze verspreid in het bestand GENERIC. Een uitputtende lijst van architectuurafhankelijke opties en apparaten staat in het bestand NOTES, dat in dezelfde map staat als GENERIC. Architectuuronafhankelijke opties staan in /usr/src/sys/conf/NOTES. NOTES bestaat niet in &os; 4.X. In plaats daarvan bevat het bestand LINT een uitgebreide uitleg over opties en apparaten in GENERIC. LINT had twee doelen in 4.X: een naslagwerk leveren om kernelopties te kiezen voor het bouwen van een aangepaste kernel en een kernelinstelling leveren met zoveel mogelijk instelbare opties ingesteld op niet-standaardwaarden. De redenering hierachter was dat zo'n instelling veel hielp (en nog steeds helpt) met het testen van nieuwe code en veranderingen aan bestaande code die conflicten met andere delen van de kernel kunnen veroorzaken. Er zijn in 5.X echter een hoop veranderingen gemaakt aan het raamwerk van kernelinstellingen. Een voorbeeld hiervan is dat de instelopties van de stuurprogramma's zijn verplaatst naar een bestand hints zodat ze tijdens het opstarten dynamisch veranderd en geladen kunnen worden, en LINT kon deze aanwijzingen niet meer bevatten. Om deze en andere redenen is LINT hernoemd tot NOTES en heeft het hoofdzakelijk z'n eerste bestaansreden gehouden: de beschikbare opties documenteren voor gebruikersgemak. In &os; 5.X en latere versies is het nog steeds mogelijk om een bouwbaar bestand LINT aan te maken door middel van: &prompt.root; cd /usr/src/sys/i386/conf && make LINT kernel instellingenbestand Het volgende is een voorbeeld van het kernelinstellingenbestand GENERIC met aanvullend commentaar omwille van de helderheid. Dit voorbeeld is redelijk gelijk aan de versie in /usr/src/sys/i386/conf/GENERIC. kernelopties machine machine i386 Dit is de architectuur van de machine. Het moet één van alpha, amd64, i386, ia64, pc98, powerpc of sparc64 zijn. kernelopties cpu cpu I486_CPU cpu I586_CPU cpu I686_CPU Bovenstaande optie geeft het type CPU aan dat in een systeem zit. De CPU-regel kan meerdere keren voorkomen (als bijvoorbeeld onbekend is of I586_CPU of I686_CPU gebruikt moet worden), maar voor een aangepaste kernel is het beter om alleen de aanwezige CPU aan te geven. Als er twijfel bestaat over het type CPU, kan het bestand /var/run/dmesg.boot worden bekeken voor de opstartberichten. kernelopties cputype De broncode van &os; bevat nog steeds ondersteuning voor I386_CPU, maar staat standaard uit in zowel -STABLE als -CURRENT. Dit betekent dat er nu de volgende mogelijkheden zijn om &os; op een CPU van de 386-klasse te installeren: Installeer een oudere versie van &os; en herbouw vanuit de broncode zoals beschreven staat in . Bouw userland en de kernel op een nieuwere machine en verricht de installatie op de 386 door gebruik te maken van de voorgecompileerde bestanden in /usr/obj (in staan details). Maak een aangepaste versie van &os; die ondersteuning voor I386_CPU bevat in de kernels van de installatie-cd-rom. De eerste van deze opties is waarschijnlijk de gemakkelijkste, maar deze heeft veel schijfruimte nodig wat een probleem kan zijn voor 386-klasse machines. kernelopties ident ident GENERIC Dit is de identificatie van de kernel. Dit moet veranderd worden in de naam van de kernel, dus MIJNKERNEL als de instructies van de voorgaande voorbeelden gevolgd zijn. De waarde in de string ident wordt afgebeeld wanneer de kernel opstart, dus is het handig om de nieuwe kernel een andere naam te geven als deze apart moet worden gehouden van de gebruikelijke kernel (als er bijvoorbeeld een experimentele kernel gebouwd wordt). #Om statisch te compileren in device wiring in plaats van /boot/device.hints. #hints "GENERIC.hints" # Standaardlocatie voor devices. In &os; 5.X en nieuwer wordt &man.device.hints.5; gebruikt om opties van de programma's die de apparaten aansturen in te stellen. De standaardplaats die &man.loader.8; controleert tijdens het opstarten is /boot/device.hints. Met de optie hints is het mogelijk om deze aanwijzingen statisch in de kernel te compileren, waardoor er geen noodzaak is om een bestand device.hints in /boot aan te maken. #makeoptions DEBUG=-g # Bouw kernel met gdb(1) debug symbolen. Om ruimte te sparen in de installatieplaats voegt het normale bouwproces van &os; geen debug-informatie toe tijdens het bouwen van de kernel en stript de meeste symbolen nadat de resulterende kernel is gelinkt. Voor het testen van kernels van de tak -CURRENT of van zelfgemaakte veranderingen in de &os;-kernel kan het gewenst zijn om deze regel uit te commentariëren. Dit zet het gebruik van de optie aan die debug-informatie aanzet als de broncode wordt doorgegeven aan &man.gcc.1;. Hetzelfde kan bereikt worden met de optie van &man.config.8; als de traditionele manier wordt gebruikt om een kernel te bouwen. Meer informatie staat in . options SCHED_4BSD # 4BSD taakplanner De traditionele taakplanner voor &os;. Afhankelijk van de systeembelasting kan de prestatie worden verhoogd door de nieuwe scheduler ULE voor &os; te gebruiken, die speciaal voor SMP ontworpen is, maar ook goed werkt op UP-systemen. Vervang desgewenst, om deze uit te proberen, SCHED_4BSD door SCHED_ULE in het instellingenbestand. options INET # internetwerken Netwerkondersteuning. Laat dit aanstaan, zelfs als een verbinding met een netwerk niet gepland is. De meeste programma's hebben tenminste een loopbacknetwerk nodig (dat wil zeggen het maken van netwerkverbindingen binnen de PC), dus dit is eigenlijk verplicht. options INET6 # IPv6 communicatieprotocollen Dit zet de IPv6-communicatieprotocollen aan. options FFS # Berkeley Fast Bestandssysteem Dit is het basisbestandssysteem voor de harde schijf. Laat dit erin staan als er vanaf de harde schijf wordt opgestart. options SOFTUPDATES # Schakel FFS Softupdates ondersteuning in Deze optie zet softupdates in de kernel aan en helpt om de schijftoegang voor schrijven te verhogen. Zelfs als deze functionaliteit door de kernel geleverd wordt, moet die voor specifieke schijven worden aangezet. Bekijk de uitvoer van &man.mount.8; om te zien of softupdates aanstaat voor de systeemschijven. Als de optie soft-updates niet zichtbaar is, dient deze geactiveerd te worden met behulp van &man.tunefs.8; voor bestaande bestandssystemen of &man.newfs.8; voor nieuwe bestandssystemen. options UFS_ACL # Ondersteuning voor toeganscontrolelijsten Met deze optie, die alleen in &os; 5.X aanwezig is, wordt de ondersteuning voor toegangscontrolelijsten aangezet. Hiervoor zijn uitgebreide attributen en UFS2 nodig. Een en ander wordt in detail beschreven in . ACL's staan standaard aan en moeten niet uitgezet worden in de kernel als ze al eerder op een bestandssysteem zijn gebruikt, omdat dit de toegangscontrolelijsten verwijdert en hierdoor de manier waarop bestanden beschermd worden op onvoorspelbare wijze verandert. options UFS_DIRHASH # Verbeter prestaties in grote mappen Deze optie bevat functionaliteit om schijfoperaties op grote mappen te versnellen, ten koste van extra geheugen. Deze staat normaalgesproken, zoals voor een grote server of interactief werkstation, aan en wordt uitgezet als &os; op een kleiner systeem wordt gebruikt waar geheugen het belangrijkste en schijfsnelheid minder belangrijk is, zoals voor een firewall. options MD_ROOT # MD is een potentieel rootapparaat Deze optie zet ondersteuning aan voor een virtuële schijf die in het geheugen wordt geïmplementeerd en als rootapparaat wordt gebruikt. kernelopties NFS kernelopties NFS_ROOT options NFSCLIENT # Netwerk Bestandssysteem Client options NFSSERVER # Netwerk Bestandssysteem Server options NFS_ROOT # NFS bruikbaar als /, NFSCLIENT nodig Het netwerkbestandssysteem. Dit kan weggelaten worden tenzij er gepland is om partities te mounten van een &unix; bestandsserver over TCP/IP. kernelopties MSDOSFS options MSDOSFS # MSDOS Bestandssysteem Het &ms-dos; bestandssysteem. Dit kan veilig weggelaten worden, tenzij er gepland is om een DOS-geformatteerde partitie van de harde schijf tijdens het opstarten te mounten. Het wordt automatisch geladen als er voor de eerste keer een DOS-partitie wordt gemount, zoals boven beschreven. Bovendien geeft de uitstekende software emulators/mtools toegang tot DOS-floppies zonder dat ze gemount en gedismount moeten worden en heeft het MSDOSFS helemaal niet nodig. options CD9660 # ISO 9660 Bestandssysteem Het ISO 9960-bestandssysteem voor cd-roms. Commentarieer dit uit als er geen cd-rom drive aanwezig is of als er slechts af en toe data-cd-roms gemount worden (aangezien het dynamisch geladen wordt als er voor de eerste keer een data-cd-rom gemount wordt). Audio-CD's hebben dit bestandssysteem niet nodig. options PROCFS # Procesbestandssysteem Het procesbestandssysteem. Dit is een als-of bestandssysteem, gemount in /proc, dat programma's als &man.ps.1; in staat stelt om meer informatie over de draaiende processen te geven. In &os; 5.X en hoger is het onder de meeste omstandigheden niet nodig om PROCFS te gebruiken, omdat de meeste debug- en monitorgereedschappen zijn aangepast om zonder PROCFS te draaien. In tegenstelling tot &os; 4.X mounten nieuwe installaties op &os; 5.X standaard het procesbestandssysteem niet. Bovendien moeten 6.X-CURRENT kernels die gebruik maken van PROCFS, nu ook ondersteuning bevatten voor PSEUDOFS: options PSEUDOFS # Pseudo-bestandssysteem framework PSEUDOFS is niet beschikbaar in &os; 4.X. options GEOM_GPT # GUID Partitietabellen. Met deze optie kan een groot aantal partities op een enkele schijf aanwezig zijn. options COMPAT_43 # Compatibel met BSD 4.3 [ERIN HOUDEN!] Compatibiliteit met 4.3BSD. Laat dit aanstaan. Sommige programma's gedragen zich vreemd als dit uitgecommentarieerd wordt. options COMPAT_FREEBSD4 # Compatibel met &os; 4 Deze optie is nodig op &os; 5.X &i386; en Alpha systemen om ondersteuning te bieden aan applicaties die gecompileerd zijn op oudere versies van &os; en gebruik maken van oudere systeemaanroep-interfaces. Het is aanbevolen dat deze optie gebruikt wordt op alle &i386; en Alpha systemen die mogelijk oudere applicaties draaien. Voor platformen die pas in 5.X ondersteuning verwierven, zoals ia64 en &sparc64;, is deze optie niet nodig. options SCSI_DELAY=15000 # Vertraging (in ms) voordat SCSI wordt afgezocht. Dit zorgt ervoor dat de kernel vijftien seconden wacht voordat die elk SCSI-apparaat in het systeem afzoekt. Als er alleen IDE harde schijven zijn, kan deze optie genegeerd worden, anders is het misschien wenselijk om deze waarde te verlagen tot vijf seconden, om het opstarten te versnellen. Uiteraard moet deze waarde weer verhoogd worden als &os; problemen heeft om de SCSI-apparaten te herkennen. options KTRACE # ktrace(1) ondersteuning Dit schakelt kernelondersteuning voor het volgen processen in, wat handig is tijdens debuggen. options SYSVSHM # SYSV-stijl gedeeld geheugen Deze optie biedt System V gedeeld geheugen. Meestal wordt dit wegens de XSHM-uitbreiding in X gebruikt, waar door vele grafische programma's automatisch gebruik van wordt gemaakt voor extra snelheid. Als X gebruik wordt, is het raadzaam om dit op te nemen. options SYSVMSG # SYSV-stijl berichtwachtrijen Dit biedt ondersteuning voor System V berichten. Ook deze optie voegt slechts een paar honderd bytes aan de kernel toe. options SYSVSEM # SYSV-stijl semaforen Dit biedt ondersteuning voor System V semaforen. Het wordt minder vaak gebruikt, maar voegt slechts een paar honderd bytes aan de kernel toe. De optie van het commando &man.ipcs.1; geeft een lijst van alle processen die een van deze System V faciliteiten gebruikt. options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensies Dit biedt real-time-uitbreidingen die in de 1993 &posix; zijn toegevoegd. Bepaalde applicaties in de Portscollectie gebruiken deze (zoals &staroffice;). options KBD_INSTALL_CDEV # installeer een CDEV-ingang in /dev Deze optie is gerelateerd aan het toetsenbord. Het installeert een CDEV-ingang in /dev. options AHC_REG_PRETTY_PRINT # Toon register bitveld in debuguitvoer. # Voegt ~128k toe aan driver. options AHD_REG_PRETTY_PRINT # Toon register bitveld in debuguitvoer. # Voegt ~215k toe aan driver. Dit helpt bij het debuggen door makkelijker te lezen registerdefinities af te beelden. options ADAPTIVE_GIANT # Giant mutex is adaptief. Giant is de naam van een wederzijds uitsluitingsmechanisme (een sleep mutex) dat een grote verzameling kernelbronnen beschermt. Vandaag de dag is dit een onaccaptabele prestatie-bottleneck die actief door sloten wordt vervangen die individuele bronnen beschermen. De optie ADAPTIVE_GIANT zorgt ervoor dat Giant in de verzamelingen van mutexen wordt opgenomen waar actief wordt opgespind. Dit betekent dat wanneer een thread de Giant-mutex wil nemen, maar die reeds door een thread op een andere CPU genomen is, de eerste thread blijft draaien en wacht tot er een slot vrijkomt. Normaalgesproken zou de thread weer gaan slapen en wachten op de volgende kans om te draaien. Laat dit er in geval van twijfel instaan. kernelopties SMP device apic # I/O APIC Het apic-apparaat zet de ondersteuning voor I/O-APIC voor het afleveren van interrupts aan. Het apic-apparaat kan zowel in UP- als in SMP-kernels gebruikt worden, maar is noodzakelijk voor SMP-kernels. Voeg options SMP toe om ondersteuning voor meerdere processoren op te nemen. device isa Alle computers die door &os; ondersteund worden hebben één van deze apparaten. Verwijder dit niet, zelfs niet als er geen ISA-sloten aanwezig zijn. &os; biedt momenteel slechts gedeeltelijke ondersteuning aan IBM PS/2 (Micro Channel Architecture)-systemen. Meer informatie over de ondersteuning voor MCA staat in /usr/src/sys/i386/conf/notes. device eisa Neem dit op voor een EISA-moederbord. Dit zet ondersteuning voor zelfdetectie en -instelling aan voor alle apparaten op de EISA-bus. device pci Neem dit op voor een PCI-moederbord. Dit zet ondersteuning voor zelfdetectie van PCI-kaarten en gatewaying van PCI-naar-ISA-bus aan. # Floppy drives device fdc Dit is de controller voor de floppydrive. # ATA- en ATAPI-apparaten device ata Dit stuurprogramma biedt ondersteuning aan alle ATA- en ATAPI-apparaten. Er is slechts één device ata-regel nodig om de kernel alle PCI ATA/ATAPI-apparaten te laten ontdekken op moderne machines. device atadisk # ATA schijven Dit is samen met device ata nodig voor ATA schijven. device ataraid # ATA RAID schijven Dit is samen met device ata nodig voor ATA RAID-schijven. device atapicd # ATAPI cd-rom drives Dit is samen met device ata nodig voor ATAPI cd-rom drives. device atapifd # ATAPI floppy drives Dit is samen met device ata nodig voor ATAPI floppydrives. device atapist # ATAPI tape drives Dit is samen met device ata nodig voor ATAPI tapedrives. options ATA_STATIC_ID # Statische apparaatnummering Dit zorgt ervoor dat de controller statisch nummert. Zonder deze optie worden nummers dynamisch toegewezen. # SCSI Controllers device ahb # EISA AHA1742 familie device ahc # AHA2940 en onboard AIC7xxx apparaten device ahd # AHA39320/29320 en onboard AIC79xx apparaten device amd # AMD 53C974 (Teckram DC-390(T)) device isp # Qlogic familie device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (nieuwere chipsets) device trm # Tekram DC395U/UW/F DC315U adapters device adv # Advansys SCSI adapters device adw # Advansys wide SCSI adapters device aha # Adaptec 154x SCSI adapters device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. device bt # Buslogic/Mylex MultiMaster SCSI adapters device ncv # NCR 53C500 device nsp # Workbit Ninja SCSI-3 device stg # TMC 18C30/18C50 SCSI controllers. Commentarieer de regels uit voor apparaten die niet in het systeem aanwezig zijn. Als het een systeem met alleen IDE apparaten betreft, kunnen ze allemaal weggelaten worden. # SCSI randapparaten device scbus # SCSI bus (nodig voor SCSI) device ch # SCSI media changers device da # Direct Access (schijven) device sa # Sequential Access (tape, enzovoort) device cd # CD device pass # Passthrough apparaat (directe SCSI-toegang) device ses # SCSI Omgevingsdiensten (en SAF-TE) SCSI-aanhangels. Ook hier geldt dat apparaten die niet aanwezig zijn uitgecommentarieerd kunnen worden, of als alleen IDE-hardware aanwezig aanwezig is, ze allemaal weggelaten kunnen worden. Het USB-stuurprogramma &man.umass.4; en enkele andere stuurprogramma's gebruiken het SCSI-subsysteem, alhoewel ze geen echte SCSI-apparaten zijn. Daarom mag SCSI-ondersteuning niet verwijderd worden als dit soort stuurprogramma's in de kernelinstellingen worden opgenomen. # RAID controllers met interfaces naar het SCSI subsysteem device amr # AMI MegaRAID device arcmsr # Areca SATA II RAID device asr # DPT SmartRAID V, VI en Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - Zie NOTES voor opties device hptmv # Highpoint RocketRAID 182x device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID device twa # 3ware 9000 series PATA/SATA RAID # RAID controllers device aac # Adaptec FSA RAID device aacp # SCSI passthrough voor aac (CAM nodig) device ida # Compaq Smart RAID device mlx # Mylex DAC960 famile device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID Ondersteunde RAID-controllers. Als een van deze niet aanwezig is, kan deze uitgecommentarieerd of verwijderd worden. # atkbdc0 bestuurt het toetsenbord en de PS/2 muis device atkbdc # AT toetsenbordcontroller De toetsenbordcontroller (atkbdc) biedt I/O-diensten aan voor het AT-toetsenbord en het PS/2-type van aanwijsapparaten. Deze controller is noodzakelijk voor het toetsenbordstuurprogramma (atkbd) en het PS/2-aanwijsapparaatstuurprogramma (psm). device atkbd # AT toetsenbord Het stuurprogramma atkbd biedt samen met de controller atkbdc toegang tot het AT84-toetsenbord of het uitgebreide AT-toetsenbord dat verbonden is met de controller voor het AT-toetsenbord. device psm # PS/2 muis Dit apparaat kan gebruikt worden als de muis in de PS/2-muispoort wordt geplugd. device vga # VGA videokaart stuurprogramma Het stuurprogramma voor de videokaart. # splash screen/screensaver device splash # Splash screen en screensaver ondersteuning Een splash-scherm tijdens het opstarten! Screensavers hebben deze optie ook nodig (voor &os; 4.X dient pseudo-device splash gebruikt te worden. # syscons is het standaard consolestuurprogramma, lijkt op een SCO console device sc sc is het standaard consolestuurprogramma en lijkt op een SCO-console. Aangezien de meeste programma's die met een volledig scherm werken de console via een terminaldatabase zoals termcap benaderen, moet het niet uitmaken of dit of vt, het VT220-compatibele consolestuurprogramma, gebruikt wordt. Wanneer er aangemeld wordt, dient de variabele TERM op scoansi gezet worden indien programma's die met een volledig scherm werken problemen hebben om met dit console te draaien. # Schakel dit in voor het pcvt (VT220 compatibele) consolestuurprogramma #device vt #options XSERVER # ondersteuning voor X server op een vt console #options FAT_CURSOR # begin met een blokcursor Dit is een VT220-compatibel consolestuurprogramma, achterwaarts compatibel met de VT100/102. Het werkt goed op enkele laptops die hardware-incompatibiliteiten hebben met sc. Ook dient de variabele TERM op vt100 of vt220 gezet te worden bij het aanmelden. Dit stuurprogramma kan ook nuttig zijn wanneer er verbinding wordt gemaakt met een groot aantal verschillende machines in een netwerk, waarbij de ingangen termcap of terminfo voor het apparaat sc vaak niet beschikbaar zijn. vt100 is op bijna elk platform beschikbaar. device agp Neem dit op als er een AGP-kaart in het systeem aanwezig is. Dit zet ondersteuning voor AGP aan, en ondersteuning voor AGP GART voor borden die deze mogelijkheden hebben. # Floating point ondersteuning - niet uitschakelen. device npx npx is de interface naar de wiskundige floating point-eenheid in &os;, die ofwel de hardware coprocessor is ofwel de softwarematige wiskundige emulator. Dit is niet optioneel. APM # Ondersteuning voor energiebeheer (zie NOTES voor meer opties) #device apm Ondersteuning voor geavanceerd energiebeheer (Advanced Power Management). Dit is nuttig voor laptops, alhoewel dit in &os; 5.X en hoger standaard uitgeschakeld is in GENERIC. # Schakel suspend/resume ondersteuning voor de i8254 in. device pmtimer Het stuurprogramma voor het timerapparaat voor energiebeheergebeurtenissen, zoals APM en ACPI. # PCCARD (PCMCIA) ondersteuning. # PCMCIA en cardbus bridge ondersteuning. device cbb # cardbus (yenta) bridge device pccard # PC Card (16-bit) bus device cardbus # CardBus (32-bit) bus Ondersteuning voor PCMCIA. Dit is wenselijk voor laptopgebruikers. # Serial (COM) poorten device sio # 8250, 16[45]50-gebaseerde seriële poorten Dit zijn de seriële poorten waarnaar in de wereld van &ms-dos;/&windows; verwezen wordt als COM-poorten. Als er een intern modem op COM4 en een seriële poort op COM2 aanwezig is, moet het IRQ van het modem in 2 worden veranderd (om duistere technische redenen geldt dat IRQ2 = IRQ9) om er vanuit &os; toegang toe te krijgen. Als er een multipoort seriële kaart aanwezig is, staat in &man.sio.4; meer informatie over de juiste waarden die aan /boot/device.hints toegevoegd moeten worden. Sommige videokaarten (vaak gebaseerd op S3 chips) gebruiken IO-adressen van de vorm 0x*2e8, en omdat vele goedkope serieële kaarten de 16-bits IO-adresruimte niet volledig decoderen, botsen ze met deze kaarten waardoor de COM4-poort praktisch onbruikbaar is. Elke serieële poort moet een uniek IRQ hebben (tenzij er gebruik wordt gemaakt van een van de multipoortkaarten waarbij gedeelde interrupts ondersteund worden), dus kunnen de standaard IRQ's voor COM3 en COM4 niet gebruikt worden. # Parallelle poort device ppc Dit is de interface voor de parallelle poort op de ISA-bus. device ppbus # Parallelle poortbus (verplicht) Biedt ondersteuning voor de parallelle poortbus. device lpt # Printer Ondersteuning voor parallelle poort-printers. Alle van de bovenstaande drie zijn noodzakelijk om ondersteuning voor parallelle printers aan te zetten. device plip # TCP/IP over parallel Dit is het stuurprogramma voor de parallelle netwerkinterface. device ppi # Parallelle poort interface apparaat De algemene I/O (geek-poort) + IEEE1284 I/O. #device vpo # scbus en da verplicht zipdrive Dit is voor een Iomega Zipdrive. Hiervoor is ondersteuning voor scbus en da nodig. De beste prestaties worden gehaald met poorten in EPP 1.9-modus. #device puc Dit dient uitgecommentarieerd te worden indien er een domme seriële of parallelle PCI-kaart aanwezig is die ondersteund wordt door het &man.puc.4; verbindingsstuurprogramma. # PCI Ethernet NIC's. device de # DEC/Intel DC21x4x (Tulip) device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device txp # 3Com 3cR990 (Typhoon) device vx # 3Com 3c590, 3c595 (Vortex) Verscheidene PCI-netwerkkaartstuurprogramma's. Degenen die niet in het systeem aanwezig zijn kunnen uitgecommentarieerd of verwijderd worden. # PCI Ethernet NIC's die de MII bus controller code gebruiken. # NB: 'device miibus' moet behouden blijven om deze NIC's te kunnen gebruiken! device miibus # MII bus ondersteuning Ondersteuning voor MII-bus is noodzakelijk voor sommige PCI 10/100 Ethernet-NICs, namelijk voor diegenen die MII-geldige transceivers gebruiken of interfaces voor transceiverbesturing implementeren die als een MII werken. Door device miibus aan de kernelinstellingen toe te voegen wordt de ondersteuning voor de generieke miibus-API en voor alle PHY-stuurprogramma's opgenomen, waaronder een generieke voor PHYs die niet specifiek door een individueel stuurprogramma worden behandeld. device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 en verschillende gelijkwerkenden device fxp # Intel EtherExpress PRO/100B (82557, 82558) device lge # Level 1 LXT1001 gigabit ethernet device nge # NatSemi DP83820 gigabit ethernet device pcn # AMD Am79C97x PCI 10/100 (voorrang boven 'lnc') device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (Starfire) device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 EPIC) device ge # VIA VT612x gigabit ethernet device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (Boomerang, Cyclone) Stuurprogramma's die gebruik maken van de MII bus-controllercode. # ISA Ethernet NIC's. Inclusief pccard NIC's. device cs # Crystal Semiconductor CS89x0 NIC # 'device ed' heeft 'device miibus' nodig device ed # NE[12]000, SMC Ultra, 3c503, DS8390 kaarten device ex # Intel EtherExpress Pro/10 en Pro/10+ device ep # Etherlink III-gebaseerde kaarten device fe # Fujitsu MB8696x-gebaseerde kaarten device ie # EtherExpress 8/16, 3C507, StarLAN 10, etc. device lnc # NE2100, NE32-VL Lance Ethernet kaarten device sn # SMC's 9000 serie Ethernet chips device xe # Xircom pccard Ethernet # ISA apparaten die de oude ISA shims gebruiken #device le ISA Ethernetstuurprogramma's. In /usr/src/sys/i386/conf/NOTES staan details over welke kaarten door welk stuurprogramma ondersteund worden. # Draadloze NIC kaarten device wlan # 802.11 ondersteuning device an # Aironet 4500/4800 802.11 draadloze NIC's. device awi # BayStack 660 en anderen device wi # WaveLAN/Intersil/Symbol 802.11 draadloze NIC's. #device wl # Oudere niet-802.11 Wavelan draadloze NIC. Ondersteuning voor verscheidene draadloze kaarten. # Pseudo devices device loop # Netwerk loopback Dit is het generieke loopbackapparaat voor TCP/IP. Als telnet of FTP op localhost (ook bekend als 127.0.0.1) gebruikt wordt, loopt dat via dit apparaat. Dit is verplicht. Op &os; 4.X moet de volgende regel gebruikt worden: # Gebruiken in &os; 4.X pseudo-device loop device mem # Geheugen- en kernelgeheugenapparaten De geheugenapparaten van het systeem. device io # I/O apparaat Deze optie stelt een proces in staat om I/O-privileges te verkrijgen. Dit is nuttig als er gebruikerprogramma's worden geschreven die direct met hardware werken. Dit is nodig om het X Window systeem te draaien. device random # Entropy apparaat Cryptografisch veilige willekeurige getallengenerator. device ether # Ethernet ondersteuning ether is allen noodzakelijk als er een Ethernetkaart aanwezig is. Het bevat code voor het generieke Ethernet protocol. Op &os; 4.X dient pseudo-device ether gebruikt te worden. device sl # Kernel SLIP sl dient voor SLIP-ondersteuning. Dit is bijna geheel overgenomen door PPP, wat eenvoudiger is op te zetten, beter geschikt is voor modem-naar-modem-verbindingen en krachtiger is. Met &os; 4.X dient pseudo-device sl gebruikt te worden. device ppp # Kernel PPP Dit dient voor PPP-ondersteuning van inbelverbindingen door de kernel. Er is ook een versie van PPP als gebruikersapplicatie geïmplementeerd die tun gebruikt en meer flexibiliteit en mogelijkheden biedt zoals demand-bellen. Met &os; 4.X dient pseudo-device ppp gebruikt te worden. device tun # Packet tunnel. Dit wordt gebruikt door de gebruikers-PPP-software. In PPP staat meer informatie. Met &os; 4.X dient pseudo-device tun gebruikt te worden. device pty # Pseudo-ttys (telnet, etc.) Dit is een pseudo-terminal of gesimuleerde aanmeldpoort. Die wordt gebruikt door binnenkomende sessies van telnet en rlogin, door xterm en voor sommige andere applicaties zoals Emacs. Met &os; 4.X dient pseudo-device ptynummer gebruikt te worden. Het nummer na pty geeft het aantal pty's aan dat aangemaakt dient te worden. Als er meer dan het standaard aantal van zestien gelijktijdige xterm schermen en/of remote aanmeldingen nodig zijn, dient dit nummer overeenkomstig verhoogd te worden, tot maximaal 256. device md # Geheugenschijven Pseudo-apparaten die een schijf in het geheugen implementeren. Met &os; 4.X dient pseudo-device md gebruikt te worden. device gif # IPv6 en IPv4 tunnelen Dit implementeert IPv6-over-IPv4-tunneling, IPv4-over-IPv6-tunneling, IPv4-over-IPv4-tunneling en IPv6-over-IPv6-tunneling. Met ingang van &os; 4.4 is het apparaat gif zelfklonend en dient de regel pseudo-device gif gebruikt te worden. Eerdere versies van &os; 4.X vereisen een getal, bijvoorbeeld pseudo-device gif 4. device faith # IPv6-naar-IPv4-relay (vertaling) Dit pseudo-apparaat onderschept pakketten die ernaar verzonden worden en leidt ze om naar het IPv4/IPv6-vertaaldaemon. Met &os; 4.X dient pseudo-device faith 1 gebruikt te worden. # Het `bpf' apparaat schakelt de Berkeley Pakketfilter in. # Wees bewust van de administratieve consequenties die dit heeft! # 'bpf' is nodig bij gebruik van DHCP. device bpf # Berkeley pakketfilter Dit is het Berkeley Pakketfilter. Dit pseudo-apparaat staat netwerkinterfaces toe om in luistermodus gezet te worden, zodat elk pakket op een uitzendnetwerk (bijvoorbeeld een Ethernet) onderschept wordt. Deze pakketten kunnen naar schijf onderschept en/of onderzocht worden met het programma &man.tcpdump.1;. Met &os; 4.X dient pseudo-device bpf gebruikt te worden. Het apparaat &man.bpf.4; wordt ook gebruikt door &man.dhclient.8; om het IP-adres van de standaardrouter (gateway) te verkrijgen, enzovoorts. Als DHCP gebruikt wordt, dient dit ingeschakeld te blijven. # USB support device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface #device ehci # EHCI PCI->USB interface (USB 2.0) device usb # USB Bus (verplicht) #device udbp # USB Double Bulk Pipe apparaten device ugen # Generic device uhid # Human Interface Devices device ukbd # Toetsenbord device ulpt # Printer device umass # Schijnven/Massaopslag - scbus en da nodig device ums # Muis device urio # Diamond Rio 500 MP3 speler device uscanner # Scanners # USB Ethernet, requires mii device aue # ADMtek USB Ethernet device axe # ASIX Electronics USB Ethernet device cdce # Generic USB over Ethernet device cue # CATC USB Ethernet device kue # Kawasaki LSI USB Ethernet device rue # RealTek RTL8150 USB Ethernet Ondersteuning voor verscheidene USB-apparaten. # FireWire ondersteuning device firewire # FireWire bus code device sbp # SCSI over FireWire (scbus en da nodig) device fwe # Ethernet over FireWire (niet-standaard!) Ondersteuning voor verscheidene Firewire-apparaten. Meer informatie en aanvullende apparaten die door &os; ondersteund worden staan in /usr/src/sys/i386/conf/NOTES. Instellingen bij veel geheugen (<acronym>PAE</acronym>) Physical Address Extensions (PAE) veel geheugen Sommige machines (PAE) hebben meer geheugen nodig dan limiet van 4 gigabyte op User+Kernel Virtual Adress (KVA) ruimte. Vanwege deze limiet voegde Intel ondersteuning toe voor toegang tot 36-bits fysieke adresruimte in de &pentium; Pro en nieuwere lijn van CPU's. De Physical Address Extension (PAE) mogelijkheden van de &intel; &pentium; Pro en nieuwere CPU's staan geheugenhoeveelheden toe tot 64 gigabyte. &os; biedt ondersteuning voor deze mogelijkheid via de kernelinsteloptie , die beschikbaar is in de 4.X-serie van &os; met ingang van 4.9-RELEASE en in de 5.X-serie van &os; met ingang van 5.1-RELEASE. Vanwege de beperkingen van de geheugenarchitectuur van Intel wordt er geen onderscheid gemaakt tussen geheugen boven of beneden 4 gigabytes. Geheugen dat boven de 4 gigabytes is toegewezen wordt gewoon bij het beschikbare gevoegd. Om ondersteuning voor PAE in de kernel aan te zetten, dient de volgende regel aan het kernelinstellingenbestand te worden toegevoegd: options PAE De ondersteuning voor PAE in &os; is alleen beschikbaar voor &intel; IA-32-processoren. Ook dient opgemerkt te worden dat ondersteuning voor PAE nog niet wijdverbreid getest is en als betakwaliteit beschouwd dient te worden vergeleken met andere stabiele kenmerken van &os;. Ondersteuning voor PAE in &os; heeft enige beperkingen: Een proces kan niet meer dan 4 gigabyte VM-ruimte krijgen; KLD-modules kunnen niet in een kernel worden geladen die PAE aan heeft staan, vanwege de verschillen in het bouwraamwerk van een module en de kernel; Apparaatstuurprogramma's die geen gebruik maken van de &man.bus.dma.9;-interface zullen gegevenscorruptie veroorzaken in een kernel die PAE aan heeft staan en hun gebruik wordt afgeraden. Om deze reden wordt er een kernelinstellingenbestand voor PAE geleverd met &os; 5.X, die alle stuurprogramma's uitsluit waarvan bekend is dat ze niet werken in een kernel die PAE aan heeft staan; Sommige systeeminstellingen bepalen het geheugenbronverbruik aan de hand van de hoeveelheid beschikbaar fysiek geheugen. Zulke instellingen kunnen onnodig veel toewijzen vanwege de grote hoeveelheid geheugen in een PAE systeem. Een voorbeeld hiervan is de sysctl , die het maximum aantal vnodes dat in de kernel aanwezig mag zijn beheert. Het is aan te raden om deze en andere van dit soort instellingen aan te passen aan een redelijke waarde; Het kan nodig zijn om de virtuele kerneladresruimte (KVA) te vergroten of om het aantal kernelbronnen dat veel gebruikt wordt (zie boven) te verminderen om zo uitputting van KVA te voorkomen. De kerneloptie kan gebruikt worden om de KVA-ruimte te vergroten. Om prestatie- en stabiliteitsredenen is het aan te raden om &man.tuning.7; te raadplegen. &man.pae.4; bevat bijgewerkte informatie over de ondersteuning voor PAE in &os;. Apparaatnodes maken apparaatnodes MAKEDEV Als &os; 5.0 of hoger gedraaid wordt, kan deze sectie veilig worden overgeslagen. Deze versies gebruiken &man.devfs.5; om transparant apparaatnodes voor de gebruiker toe te wijzen. Bijna elk apparaat in de kernel heeft een overeenkomstige node-ingang in de map /dev. Deze nodes zien eruit als reguliere bestanden, maar zijn eigenlijk speciale ingangen in de kernel die door programma's gebruikt worden om toegang tot het apparaat te verkrijgen. Het shellscript /dev/MAKEDEV, dat wordt uitgevoerd als het besturingssysteem voor het eerst wordt geïnstalleerd, maakt bijna alle ondersteunde apparaatnodes aan. Het maakt echter niet alle nodes aan, dus als ondersteuning voor een apparaat wordt toegevoegd, loont het om te controleren of de geschikte ingangen in de map aanwezig zijn en deze toe te voegen als ze ontbreken. Hier volgt een eenvoudig voorbeeld: Stel dat ondersteuning voor de IDE cd-rom aan de kernel wordt toegevoegd: device ad0 Dit betekent dat de map /dev moet worden onderzocht op ingangen die met acd0 beginnen, mogelijk gevolgd door een letter zoals c of voorafgegaan door de letter r, wat duidt op een raw apparaat. Die bestanden zijn daar niet, dus moet in de map /dev het volgende ingegeven worden: MAKEDEV &prompt.root; sh MAKEDEV acd0 Als dit script geëindigd is, zijn de ingangen acd0c en racd0c in de map /dev aanwezig, wat duidt op een juiste uitvoer. Voor geluidskaarten maakt het volgende commando de juiste ingangen aan: &prompt.root; sh MAKEDEV snd0 Als apparaatnodes voor apparaten als geluidskaarten worden aangemaakt en andere mensen toegang tot de machine hebben, kan het wenselijk zijn om de apparaten tegen toegang van buitenaf te beschermen door deze aan /etc/fbtab toe te voegen. In &man.fbtab.5; staat meer informatie. Deze eenvoudige procedure dient gevolgd te worden voor elk ander apparaat dat niet in GENERIC staat en geen ingangen heeft in /dev. Alle SCSI-controllers gebruiken dezelfde verzameling ingangen in /dev, dus is het niet nodig om deze aan te maken. Ook hebben netwerkkaarten en SLIP/PPP pseudo-apparaten geen ingang in /dev, dus is het niet nodig om hierover bezorgd te zijn. Problemen oplossen Er zijn vijf categoriën problemen die op kunnen treden tijdens het bouwen van een aangepaste kernel: config faalt Als het commando &man.config.8; faalt bij het verwerken van de kernelbeschrijving, is er waarschijnlijk ergens een eenvoudige fout gemaakt. Gelukkig geeft &man.config.8; het nummer van de regel weer waarmee het problemen had, dus kan snel de regel gevonden worden waarin de fout zit. In het onderstaande voorbeeld dient gecontroleerd te worden of het sleutelwoord juist is ingevoerd door het met de kernel GENERIC of een andere referentie te vergelijken: config: line 17: syntax error make faalt Als make faalt, duidt dit meestal op een fout in de kernelbeschrijving die niet erg genoeg is om door &man.config.8; opgemerkt te worden. De instellingen dienen nogmaals nagekeken te worden. Als het probleem nog steeds niet is op te lossen, stuur dan een mail naar de &a.questions; met de kernelinstellingen. Dat leidt meestal snel tot een diagnose. Het installeren van de nieuwe kernel mislukt Als het compileren van de kernel goed ging, maar het installeren mislukte (make install of make installkernel faalde), dient als eerste gecontroleerd te worden of het systeem op beveiligingsniveau (securelevel) 1 of hoger draait (zie &man.init.8;). De kernelinstallatie probeert namelijk om de vlag immutable van de oude kernel te verwijderen en de vlag immutable op de nieuwe kernel te zetten. Aangezien beveiligingsniveau 1 of hoger verhindert om de vlag immutable te verwijderen van enig bestand op het systeem, dient de kernelinstallatie op beveiligingsniveau 0 of lager uitgevoerd te worden. Bovenstaande geldt alleen voor &os; 4.X en eerdere versies. &os; 5.X en hogere versies zetten de vlag immutable niet op de kernel en een mislukte poging om de kernel de kernel te installeren duidt meestal op een fundamenteler probleem. De kernel start niet op Als de nieuwe kernel niet opstart of de apparaten niet herkent is kalmte geboden. &os; heeft een uitstekend mechanisme om van niet-compatibele kernels te herstellen. De gewenste kernel om mee op te starten kan vanuit de &os; boot loader gekozen worden. Als het systeem terugtelt vanaf 10, kan deze vanuit het opstartmenu gekozen worden. Sla een willekeurige toets, behalve de Enter toets, aan, voer unload in en daarna boot /boot/kernel.old/kernel of de bestandsnaam van enige andere kernel die correct opstart. Als de kernelinstellingen gewijzigd worden, is het altijd aan te raden om een kernel bij de hand te houden waarvan bekend is dat die juist werkt. Nadat er met een goede kernel is opgestart, kan het instellingenbestand gecontroleerd worden en geprobeerd worden om de kernel nogmaals te bouwen. Een behulpzame bron is het bestand /var/log/messages, dat onder andere alle kernelberichten van alle keren dat er succesvol is opgestart vastlegt. Ook geeft &man.dmesg.8; alle kernelberichten weer van de huidige opstartprocedure. Als er problemen zijn met het bouwen van een kernel, dient een GENERIC, of een andere kernel waarvan bekend is dat die werkt, bewaard te worden onder een andere naam die niet verwijderd wordt als de volgende kernel gebouwd wordt. Er kan niet op kernel.old vertrouwd worden omdat bij de installatie van een nieuwe kernel kernel.old overschreven wordt met de laatst geïnstaleerde kernel, die niet hoeft te werken. Ook dient de werkende kernel zo snel mogelijk naar de juiste plaats /boot/kernel verplaatst te worden, omdat anders commando's als &man.ps.1; eventueel onjuist werken. Hiervoor dient simpelweg de map met de goede kernel hernoemd te worden: &prompt.root; mv /boot/kernel /boot/kernel.slecht &prompt.root; mv /boot/kernel.goed /boot/kernel Voor versies van &os; eerder dan 5.X luidt het juiste commando om het kernelbestand dat make installeert te ontgrendelen (om een andere kernel definitief terug te zetten): &prompt.root; chflags noschg /kernel Als dit niet mogelijk is, wordt er waarschijnlijk op een beveiligingsniveau groter dan nul gedraaid. Wijzig kern_securelevel in /etc/rc.conf naar –1 en start het systeem opnieuw. Deze instelling kan op het vorige niveau worden teruggezet als de nieuwe kernel naar behoren werkt. Als het wenselijk is om de nieuwe kernel vast te zetten op zijn plaats, of enig ander bestand, zodat het niet verplaatst of verknoeid kan worden: &prompt.root; chflags schg /kernel De kernel werkt, maar &man.ps.1; werkt niet meer Als er een andere versie van de kernel is geïnstalleerd dan degene waarmee de systeemgereedschappen gebouwd zijn, bijvoorbeeld een kernel voor 5.X op een 4.X-systeem, werken vele systeemstatuscommando's als &man.ps.1; en &man.vmstat.8; niet langer. De wereld moet opnieuw gecompileerd en geïnstalleerd worden en met dezelfde broncodestructuur als de kernel zijn gebouwd. Dit is een van de redenen waarom het normaliter geen goed idee is om een afwijkende versie van de kernel ten opzichte van de rest van de wereld te gebruiken. diff --git a/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml index 20febe824d..afbfb96758 100644 --- a/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml @@ -1,1493 +1,1493 @@ Rene Ketelaars Vertaald door Siebrand Mazeland Applicaties installeren: packages en ports Overzicht ports packages &os; bevat een grote collectie aan systeemgereedschappen als onderdeel van het basissysteem. De mogelijkheden reiken echter niet heel ver en daarom is er snel een applicatie van een andere partij nodig. &os; bevat twee complementaire technologieën om andere applicaties te installeren: de &os; Portscollectie (voor het installeren vanuit broncode) en packages (voor het installeren vanuit voorgecompileerde binaire bestanden). Beide systemen kunnen gebruikt worden om de nieuwste versies van een gewenste applicatie te installeren van lokale media of rechtstreeks van het netwerk. Na het lezen van dit hoofdstuk weet de lezer: Hoe binaire softwarepackages van derden te installeren; Hoe software van derden vanuit de Portscollectie vanuit broncode te installeren; Hoe eerder geïnstalleerde packages of ports te verwijderen; Hoe standaardwaardes die door de ports worden gebruikt te wijzigen; Hoe het juiste softwarepackage te vinden; Hoe applicaties bij te werken. Overzicht van softwareinstallatie Als de lezer eerder gebruik heeft gemaakt van een &unix; systeem dan is het bekend dat de standaardprocedure voor het installeren van software van derden ongeveer als volgt is: Download de software als broncode of als binair bestand; Pak de software uit vanuit zijn originele distributietype (meestal een tar-bestand gecomprimeerd met &man.compress.1;, &man.gzip.1;, of &man.bzip2.1;); Zoek de documentatie (meestal een INSTALL of README bestand of enkele bestanden in een submap doc/) en lees zorgvuldig hoe de software geïnstalleerd moet worden; Als de software als broncode is gedistribueerd, moet de broncode gecompileerd worden. Dit kan wijzigingen in een Makefile vereisen of het draaien van een configure script en andere werkzaamheden; De software installeren en testen. En dat geldt alleen als alles goed gaat. Als er een softwarepackage geïnstalleerd wordt dat niet specifiek gemaakt is voor &os; moet mogelijkerwijs zelfs de code aangepast worden om alles goed te laten werken. Als de gebruiker het wenst, kan hij in &os; doorgaan met het installeren van software op de traditionele manier. &os; levert echter twee technologieën die veel moeite kunnen besparen: packages en ports. Op dit moment zijn zo meer dan &os.numports; applicaties beschikbaar. Voor iedere gewenste applicatie is het &os; package voor die applicatie één te downloaden bestand. Het package bevat voorgecompileerde kopiën met alle commando's voor de applicatie en alle instellingenbestanden of documentatie. Een gedownload packagebestand kan gemanipuleerd worden met &os; packagemanagement commando's zoals &man.pkg.add.1;, &man.pkg.delete.1;, &man.pkg.info.1;, enzovoort. Het installeren van een nieuwe applicatie kan met één commando. Een &os; port van een applicatie is een groep bestanden ontworpen om het proces van compileren van een applicatie vanuit broncode te automatiseren. Het is te vergelijken met de stappen die normaal gevolgd worden om een programma te compileren (downloaden, uitpakken, aanpassen, compileren en installeren). De bestanden die samen een port vormen bevatten alle noodzakelijke informatie om het systeem dit te laten doen. Met een aantal eenvoudige commando's wordt de broncode voor de applicatie automatisch gedownload, uitgepakt, aangepast, gecompileerd en geïnstalleerd. Het portssysteem kan zelfs gebruikt worden om packages te maken die later weer gemanipuleerd kunnen worden met pkg_add en andere packagemanagement commando's, waarover later meer uitleg wordt gegeven. Zowel packages als ports kennen afhankelijkheden (dependencies). Stel dat er een applicatie geïnstalleerd gaat worden die er vanuit gaat dat een specifieke bibliotheek wordt geïnstalleerd. Zowel de applicatie als de bibliotheek zijn beschikbaar als &os; ports en packages. Als het commando pkg_add of het portssysteem wordt gebruikt om de applicatie toe te voegen, dan zien beiden dat de bibliotheek niet geïnstalleerd is en wordt deze automatisch eerst geïnstalleerd. Gezien het feit dat beide technologieën vrijwel identiek zijn, kan de vraag rijzen waarom &os; de moeite neemt om beide te faciliteren. Packages en ports hebben ieder hun eigen kracht. Welke gebruikt wordt hangt af van voorkeuren en omstandigheden. Voordelen van packages Een gecomprimeerd package tar-bestand is meestal kleiner dan het gecomprimeerde tar-bestand met de broncode van de applicatie; Packages vereisen geen additionele compilatie. Voor grote applicaties als Mozilla, KDE of GNOME kan dit belangrijk zijn, vooral als een systeem wat trager is; Packages vereisen geen begrip van het proces van het compileren van software op &os;. Voordelen van ports Packages worden meestal gecompileerd met conservatieve opties, omdat ze moeten draaien op een maximaal aantal systemen. Bij het installeren vanuit de port kunnen de compilatieinstellingen aangepast worden om zo bijvoorbeeld code te maken die specifiek voor een Pentium IV of een Athlon processor is; Sommige applicaties hebben compilatieinstellingen gerelateerd aan wat ze wel of niet kunnen doen. Apache kan bijvoorbeeld ingesteld worden met een uitgebreide hoeveelheid verschillende ingebouwde instellingen. Door vanuit de port te werken hoeven niet alle standaardinstellingen geaccepteerd te worden en kunnen ze ingesteld worden; In sommige gevallen zijn er meerdere packages voor dezelfde applicatie om specifieke instellingen aan te geven. Ghostscript is bijvoorbeeld beschikbaar als een ghostscript package en ghostscript-nox11 package, afhankelijk van het al dan niet geïnstalleerd hebben van een X11 server. Deze ruwe vorm van tweaking is mogelijk met packages, maar dit wordt snel onmogelijk als een applicatie meer dan één of twee verschillende compilatieinstellingen heeft; De licentievoorwaarden van sommige softwaredistributies verbieden binaire distributie. Ze moeten dus gedistribueerd worden als broncode; Sommige mensen vertrouwen binaire distributies niet. Broncode kan tenminste (in theorie) zelf doorgelezen en gecontroleerd worden op potentiële problemen; Als er lokale modificaties zijn, is de broncode nodig om ze toe te passen; Sommige mensen hebben graag de broncode zodat ze die kunnen lezen als ze zich vervelen, erin kunnen hacken, code kunnen overnemen (indien de licentie dit toestaat natuurlijk), enzovoort. Om vernieuwingen van ports bij te houden kan een abonnement genomen worden op de &a.ports; en/of de &a.ports-bugs;. Voordat een applicatie wordt geïnstalleerd is het aan te raden op na kijken of er geen beveiligingsproblemen voor de gewenste applicatie bekend zijn. Het is ook mogelijk om security/portaudit te installeren, dat automatisch alle geïnstalleerde applicaties controleert op bekende fouten. Deze controle wordt ook uitgevoerd voordat een port wordt geïnstalleerd. Met het commando portaudit -F -a kunnen de packages die al geïnstalleerd zijn worden gecontroleerd. In de rest van dit hoofdstuk wordt uitgelegd hoe packages en ports gebruikt kunnen worden om software in &os; te installeren en te beheren. Applicaties zoeken Voordat een applicatie geïnstalleerd kan worden, moeten de doelen bekend zijn en hoe de applicatie heet. De lijst met voor &os; beschikbare applicaties groeit continu. Gelukkig zijn er een aantal manieren om te zoeken: Op de &os; website staat een recente doorzoekbare lijst met alle beschikbare applicaties: http://www.FreeBSD.org/ports/. De ports zijn onderverdeeld in categorieën. Er kan naar een applicatie gezocht worden op naam (als die bekend is) of alle applicaties in een categorie kunnen bekeken worden. FreshPorts Dan Langille onderhoudt FreshPorts op . FreshPorts volgt veranderingen in applicaties in de ports en biedt de mogelijkheid om of meer ports te volgen. Er wordt dan een e-mail gestuurd als de port is bijgewerkt. FreshMeat Als de naam van de gewenst applicatie niet bekend is, is het wellicht mogelijk deze te achterhalen via een website als FreshMeat () en kan daarna op de &os; site gecontroleerd worden of de applicatie al geschikt gemaakt is voor gebruik met &os;. Als de precieze naam van de port bekend is, maar niet bekend is in welke categorie deze staat, kan dit achterhaald worden met &man.whereis.1;. Door simpelweg whereis bestand in te geven, waar bestand het te instelleren programma is. Als het op het systeem staat, wordt dat als volgt aangegeven: &prompt.root; whereis lsof lsof: /usr/ports/sysutils/lsof Dit geeft aan dat lsof (een systeemhulpprogramma) in de map /usr/ports/sysutils/lsof staat. Een andere manier om een port op te sporen is door het ingebouwde zoekmechanisme van de Portscollectie te gebruiken. Hiervoor moet het huidige pad de map /usr/ports zijn. Vanuit die map kan make search name=programmanaam uitgevoerd worden, waar programmanaam de naam is van het programma dat wordt gezocht. Als bijvoorbeeld lsof wordt gezocht: &prompt.root; cd /usr/ports &prompt.root; make search name=lsof Port: lsof-4.56.4 Path: /usr/ports/sysutils/lsof Info: Lists information about open files (similar to fstat(1)) Maint: obrien@FreeBSD.org Index: sysutils B-deps: R-deps: Het belangrijkste onderdeel van de uitvoer is in dit geval de regel waarop Path: staat, omdat die aangeeft waar de port staat. De andere informatie is niet nodig voor de installatie van de port en wordt hier niet behandeld. Voor nog dieper zoeken kan ook make search key=string gebruikt worden waar string tekst is waarnaar gezocht moet worden. Hiermee wordt naar namen van ports, commentaar, beschrijvingen en afhankelijkheden gezocht en dit kan gebruikt worden om ports te vinden die te maken hebben met een bepaald onderwerp als onbekend is hoe het gezochte programma heet. In beide gevallen is de zoekstring niet hoofdlettergevoelig. Zoeken naar LSOF geeft hetzelfde resultaat als zoeken naar lsof. Chern Lee Bijgedragen door Het packagessysteem gebruiken Packages installeren packages installeren pkg_add Met &man.pkg.add.1; kan een &os; softwarepackage geïnstalleerd worden vanaf een lokaal bestand of vanaf een server op het netwerk. Handmatig packages downloaden en lokaal installeren &prompt.root; ftp -a ftp2.FreeBSD.org Connected to ftp2.FreeBSD.org. 220 ftp3.FreeBSD.org FTP server (Version 6.00LS) ready. 331 Guest login ok, send your email address as password. 230- 230- This machine is in Vienna, VA, USA, hosted by Verio. 230- Questions? E-mail freebsd@vienna.verio.net. 230- 230- 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd /pub/FreeBSD/ports/packages/sysutils/ 250 CWD command successful. ftp> get lsof-4.56.4.tgz local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz 200 PORT command successful. 150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes). 100% |**************************************************| 92375 00:00 ETA 226 Transfer complete. 92375 bytes received in 5.60 seconds (16.11 KB/s) ftp> exit &prompt.root; pkg_add lsof-4.56.4.tgz Als er lokaal geen bron is voor packages (zoals de &os; cd-rom set) dan is het waarschijnlijk makkelijker om de optie te gebruiken met &man.pkg.add.1;. Deze optie zorgt er voor dat het hulpprogramma automatisch het correcte formaat en de juiste versie bepaalt en die daarna binnenhaalt en installeert vanaf een FTP site. pkg_add &prompt.root; pkg_add -r lsof Het voorbeeld hierboven haalt het correcte package binnen en installeert het zonder dat de gebruiker iets hoeft te doen. Het is mogelijk een alternatieve &os; packagessite aan te geven in plaats van de hoofddistributiesite. Dan moet PACKAGESITE ingesteld worden om de standaardinstellingen aan te passen. &man.pkg.add.1; gebruikt &man.fetch.3; om de bestanden binnen te halen, dat gebruik maakt van diverse omgevingsvariabelen zoals FTP_PASSIVE_MODE, FTP_PROXY, en FTP_PASSWORD. Mogelijk moeten ook één of meer van deze variabelen gebruikt worden als een machine achter een firewall staat of als gebruik gemaakt moet worden van een FTP/HTTP proxy. In &man.fetch.3; staat de complete lijst. In het voorbeeld hierboven is gebruik gemaakt van lsof in plaats van lsof-4.56.4. Als het package wordt binnengehaald met behulp van de bovenstaande instellingen, dan moet het versienummer van het package niet gebruikt worden. &man.pkg.add.1; haalt automatisch de laatste versie van de applicatie binnen. &man.pkg.add.1; downloadt de meest recente versie van een applicatie als &os.current; of &os.stable;. Als een -RELEASE versie wordt gebruikt, wordt het package dat bij die release hoort gebruikt. Het is mogelijk dit gedrag te veranderen door de omgevingsvariabele PACKAGESITE te wijzigen. Als bijvoorbeeld &os; 5.4-RELEASE op een systeem draait, dan haalt &man.pkg.add.1; standaard de packages uit ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.4-release/Latest/. Om &man.pkg.add.1; de &os; 5-STABLE packages te laten downloaden kan PACKAGESITE ingesteld worden op ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5-stable/Latest/. Packagebestanden worden gedistribueerd in de formaten .tgz en .tbz. Ze zijn te vinden op of op de &os; cd-rom distributie. Iedere cd-rom in de &os; 4-cd-rom set (en de PowerPak, enzovoort) bevat packages in de map /packages. De opbouw van de packages is ongeveer gelijk aan die van /usr/ports. Iedere categorie heeft zijn eigen map en ieder package staat ook in de map All. De mappenstructuur van het packagesysteem is gelijk aan die van het portssysteem. Samen vormen ze het package/portssysteem. Packages beheren packages beheren &man.pkg.info.1; is een hulpprogramma dat de diverse geïnstalleerde packages toont en beschrijft. pkg_info &prompt.root; pkg_info cvsup-16.1 A general network file distribution system optimized for CV docbook-1.2 Meta-port for the different versions of the DocBook DTD ... &man.pkg.version.1; is een hulpprogramma dat een samenvatting van de versie van alle geïnstalleerde packages geeft. Het vergelijkt de versie van het package met de huidige versie in de Portscollectie. pkg_version &prompt.root; pkg_version cvsup = docbook = ... De symbolen in de tweede kolom geven aan hoe de geïnstalleerde versie staat ten opzichte van de versie die beschikbaar is in de lokale Portscollectie. Symbool Betekenis = De versie van het geïnstalleerde package komt overeen met die in de lokale Portscollectie. < De geïnstalleerde versie is ouder dan die beschikbaar is in de ports. > De geïnstalleerde versie is nieuwer dan die in de lokale Portscollectie. De lokale Portscollectie is waarschijnlijk verouderd. ? Het geïnstalleerde package kan niet gevonden worden in index van de Portscollectie. Dit kan bijvoorbeeld gebeuren als een geïnstalleerde port uit de Portscollectie wordt verwijderd of hernoemd. * Er zijn meerdere versies van het package. Packages verwijderen pkg_delete packages deleting Voor het verwijderen van een geïnstalleerd package wordt het hulpprogramma &man.pkg.delete.1; gebruikt. &prompt.root; pkg_delete xchat-1.7.1 Diversen Alle informatie over packages wordt opgeslagen in de map /var/db/pkg. De lijst met geïnstalleerde bestanden en beschrijvingen van ieder package staat in de bestanden in deze map. De Portscollectie gebruiken In de volgende paragrafen worden basisinstructies gegeven over het gebruik van de Portscollectie om programma's op een systeem te installeren of ervan te verwijderen. Een gedetailleerde beschrijving van de make-doelen en omgevingsvariabelen staat in &man.ports.7;. De Portscollectie Voordat ports geïnstalleerd kunnen worden moet eerst de Portscollectie op een systeem staan, die in essentie een set van Makefiles, patches en bestanden met beschrijvingen is in /usr/ports. Tijdens het installeren van een &os; systeem, vraagt sysinstall of de Portscollectie geïnstalleerd moet worden. Als daar NO is aangegeven, dan kan met behulp van de volgende instructies alsnog de Portscollectie op een systeem gezet worden: Met CVSup Dit is een snelle methode voor het verkrijgen en bijhouden van een kopie van Portscollectie met behulp van CVSup. Meer informatie over CVSup staat in CVSup gebruiken. Installeer het package net/cvsup-without-gui: &prompt.root; pkg_add -r cvsup-without-gui Meer details staan in CVSup Installatie (); Draai cvsup: &prompt.root; cvsup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfile Wijzig cvsup.FreeBSD.org in een CVSup server in de buurt. In CVSup Mirrors () staat een complete lijst van mirrorsites; Het kan wenselijk zijn een aangepaste ports-supfile te gebruiken, bijvoorbeeld om een CVSup server niet mee te hoeven geven op de commandoregel. Kopieer in dit geval, als root, /usr/share/examples/cvsup/ports-supfile naar een nieuwe locatie, zoals /root of een thuismap. Wijzig ports-supfile. Wijzig CHANGE_THIS.FreeBSD.org in een CVSup server in de buurt. In CVSup Mirrors () staat een volledige lijst met mirrorsites. Roep nu als volgt cvsup aan: &prompt.root; cvsup -L 2 /root/ports-supfile Als dit commando later wordt herhaald, dan worden alle recente veranderingen binnengehaald. De ports die al geïnstalleerd zijn worden niet opnieuw gebouwd! Met Portsnap &man.portsnap.8; is een alternatief systeem voor het distribueren van de Portscollectie dat voor het eerst beschikbaar was in &os; 6.0. Op oudere systemen is het te installeren uit de port sysutils/portsnap: &prompt.root; pkg_add -r portsnap In Portsnap gebruiken staat een gedetailleerde beschrijving van alle mogelijkheden van Portsnap. Maak een lege map /usr/ports als die nog niet bestaat. &prompt.root; mkdir /usr/ports Download een gecomprimeerd snapshot van de Portscollectie naar /var/db/portsnap. Na deze stap kan eventueel de verbinding met internet verbroken worden. &prompt.root; portsnap fetch Als Portsnap voor de eerste keer draait, pak het snapshot dan uit in /usr/ports: &prompt.root; portsnap extract Als /usr/ports al gevuld is en er alleen wordt bijgewerkt, voer dan het volgende commando uit in plaats van het bovenstaande: &prompt.root; portsnap update Met sysinstall Bij deze methode wordt sysinstall gebruikt om de Portscollectie van installatiemedia te installeren. Hier wordt wel de Portscollectie op het moment dat de release gemaakt is geïnstalleerd. Bij toegang tot internet is het advies altijd een andere methode te gebruiken. Draai als root sysinstall (/stand/sysinstall in &os; versies ouder dan 5.2) zoals hieronder aangegeven: &prompt.root; sysinstall Scroll naar beneden en selecteer Configure, druk op Enter. Scroll naar beneden en selecteer Distributions, druk op Enter. Scroll naar ports, druk op Space. Scroll naar boven naarExit, druk op Enter. Selecteer de gewenste installatiemedia, zoals CD-ROM, FTP, enzovoort. Scroll omhoog naar Exit en druk op Enter. Druk op X om sysinstall af te sluiten. Ports installeren ports installeren Het eerste wat uitleg behoeft als het over de Portscollectie gaat is de term skelet (skeleton). In een notendop is een portskelet een minimaal aantal bestanden dat &os; aangeeft hoe een programma gecompileerd en geïnstalleerd kan worden. Ieder portskelet bevat: Een Makefile. De Makefile bevat verschillende definities die aangeven hoe de applicatie gecompileerd moet worden en waar die op een systeem geïnstalleerd moet worden; Een bestand distinfo. Dit bestand bevat informatie over de bestanden die gedownload moeten worden om de port te bouwen en hun checksums, om met &man.md5.1; vast te stellen dat de bestanden niet corrupt zijn geraakt tijdens de download.; Een map files. Deze map bevat patches om het programma op een &os; systeem te laten compileren en installeren. Patches zijn in essentie kleine bestanden waarin kleine veranderingen aan andere, specifieke, bestanden staan aangegeven. Ze zijn opgesteld in platte tekst en er staan dingen in als Verwijder regel 10 of Wijzig regel 26 in .... Patches staan ook wel bekend als diffs omdat ze gemaakt worden met het programma &man.diff.1;. Deze map kan ook andere bestanden bevatten die gebruikt worden om de port te bouwen; Een bestand pkg-descr. Dit is een meer gedetailleerde beschijving van het programma, vaak in één regel; Een bestand pkg-plist. Dit is een lijst met alle bestanden die door de port geïnstalleerd worden. Het geeft het portssysteem ook aan welke bestanden bij het verwijderen van de port weer verwijderd kunnen worden. Sommige ports bevatten nog andere bestanden, zoals pkg-message. Het portssysteem gebruikt die bestanden voor het afhandelen van bijzondere situaties. Meer details over die bestanden en over ports in het algemeen zijn na te lezen in het &os; Handboek voor Porters. De port bevat instructies over hoe de broncode gebouwd moet worden, maar de broncode zelf is er geen onderdeel van. De broncode staat op een cd-rom of op internet. De broncode wordt verspreid op de wijze waarop de auteur dat wenst. Vaak is dat als een tar of gzip bestand, maar het kan ook ingepakt zijn met een ander programma of helemaal niet ingepakt zijn. De broncode van een programma, in welke vorm dan ook, heet een distfile. De twee methoden om een &os; port te installeren worden hieronder beschreven. Ports installeren dient als root te gebeuren. Voordat een port wordt geïnstalleerd is het aan te raden op na kijken of er geen beveiligingsproblemen voor de gewenste applicatie bekend zijn. Het is ook mogelijk om security/portaudit te installeren. Hiermee wordt die controle automatisch uitgevoerd voordat een port wordt geïnstalleerd. Met het commando portaudit -F kan de meest recente versie van de database met beveiligingsproblemen opgehaald worden. Door deze port wordt dagelijks een beveiligingsaudit gedaan en wordt ook dagelijks de database bijgewerkt. Meer informatie is te vinden in &man.portaudit.1; en &man.periodic.8;. Een criterium voor gebruik van de Portscollectie is een werkende internetverbinding. Als die niet aanwezig is, zet dan handmatig een kopie van de benodigde distfile(s) in /usr/ports/distfiles. Ga om te beginnen naar de juiste map voor een port: &prompt.root; cd /usr/ports/sysutils/lsof Eenmaal in de map lsof is het skelet van de port te zien. In de volgende stap wordt de broncode voor de port gecompileerd of gebouwd. Dit wordt gedaan door op het prompt make in te voeren. Dat levert iets als het volgende op: &prompt.root; make >> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. >> Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/. ===> Extracting for lsof-4.57 ... [uitvoer van uitpakken verwijderd] ... >> Checksum OK for lsof_4.57D.freebsd.tar.gz. ===> Patching for lsof-4.57 ===> Applying FreeBSD patches for lsof-4.57 ===> Configuring for lsof-4.57 ... [uitvoer van configure verwijderd] ... ===> Building for lsof-4.57 ... [uitvoer van compileren verwijderd] ... &prompt.root; Als het compileren is afgerond is het prompt weer zichtbaar. In de volgende stap wordt de port geïnstalleerd. Om dat te bewerkstelligen wordt het woord install aan make toegevoegd: &prompt.root; make install ===> Installing for lsof-4.57 ... [uitvoer installatie verwijderd] ... ===> Generating temporary packing list ===> Compressing manual pages for lsof-4.57 ===> Registering installation for lsof-4.57 ===> SECURITY NOTE: This port has installed the following binaries which execute with increased privileges. &prompt.root; Als het prompt weer beschikbaar is, is de applicatie klaar voor gebruik. Omdat lsof met verhoogde rechten wordt uitgevoerd, wordt er een waarschuwing getoond. Tijdens het bouwen en installeren van ports zijn de getoonde waarschuwingen van belang. Het is verstandig om de submap die als werkmap wordt gebruikt te verwijderen. Hierin staan alle tijdelijke bestanden die tijdens het compileren worden gebruikt. Die bestanden gebruiken niet alleen waardevolle schijfruimte, maar ze kunnen later ook problemen veroorzaken als de port wordt bijgewerkt. &prompt.root; make clean ===> Cleaning for lsof-4.57 &prompt.root; Het is mogelijk een stap minder te gebruiken door make install clean uit te voeren in plaats van make, make install en make clean als drie afzonderlijke stappen. Sommige shells houden een cache bij van de commando's die in de mappen uit de omgevingsvariabele PATH staan om het opzoeken van een uitvoerbaar bestand te versnellen. Als zo'n shell wordt gebruikt, moet er na de installatie van een port het commando rehash worden uitgevoerd voordat zojuist geïnstalleerde commando's kunnen worden gebruikt. Dit commando werkt voor shells zoals tcsh. Gebruik voor shells als sh hash -r. In de documentatie van een shell staat meer informatie. Sommige DVD-ROM-producten van andere partijen, zoals de &os; Toolkit van de FreeBSD Mall bevatten disfiles. Die kunnen met de Portscollectie gebruikt worden. Mount de DVD-ROM op /cdrom. Stel bij gebruik van een ander mountpunt de make variabele CD_MOUNTPTS in. De benodigde distfiles worden automatisch gebruikt als ze op de schijf aanwezig zijn. Licenties van sommige ports staan niet toe dat de code wordt opgenomen in een cd-rom. Dit kan komen doordat er een formulier ingevuld moet worden voor een download of doordat herdistributie niet is toegestaan of om een andere reden. Om een port te installeren die niet op de cd-rom staat moet de computer waarop de port geïnstalleerd wordt een internetverbinding hebben. Het portssysteem gebruikt &man.fetch.1; om bestanden te downloaden. Dat programma maakt gebruik van een aantal omgevingsvariabelen, waaronder FTP_PASSIVE_MODE, FTP_PROXY, en FTP_PASSWORD. Als een systeem achter een firewall staat, is het wellicht noodzakelijk om een of meer van deze omgevingsvriabelen in te stellen of om gebruik te maken van een FTP/HTTP proxy. In &man.fetch.3; staat een complete lijst. Als er geen continue internetverbinding is, kan gebruik gemaakt worden van make fetch. Door dit commando in de map /usr/ports uit te voeren worden alle benodigde bestanden gedownload. Dit commando werkt ook op een lager niveau als /usr/ports/net of /usr/ports/net/xmule. Als een port afhankelijk is van bibliotheken of andere ports dan worden de distfiles van die ports niet opgehaald. Om dat de bereiken dient fetch vervangen te worden door fetch-recursive. Het is mogelijk alle ports in een categorie te bouwen door make in een hogere map uit te voeren, naar analogie van het voorbeeld voor make fetch. Dit is wel gevaarlijk, omdat sommige ports niet tegelijk met andere geïnstalleerd kunnen zijn. In andere gevallen installeren twee ports hetzelfde bestand met een andere inhoud. In zeldzame gevallen willen of moeten gebruikers de tar-bestanden van een andere site dan de MASTER_SITES halen (de locatie waar de bestanden vandaan komen). Dat is mogelijk met de optie MASTER_SITES met een volgend commando: &prompt.root; cd /usr/ports/directory &prompt.root; make MASTER_SITE_OVERRIDE= \ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch In het voorgaande voorbeeld is de optie MASTER_SITES gewijzigd naar ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/. Sommige ports staan toe (of schrijven zelfs voor) dat er een aantal instellingen worden meegegeven die bepaalde onderdelen (niet gebruikt, beveiligingsinstellingen en andere aanpassingen) van de applicatie in- of uitschakelen. Voorbeelden van ports waarbij dat het geval is zijn www/mozilla, security/gpgme en mail/sylpheed-claws. Er wordt een bericht getoond als dit soort instellingen beschikbaar zijn. Standaardmappen voor ports wijzigen Soms is het handig (of verplicht) om een andere map voor distfiles of ports te gebruiken. Met de variabelen PORTSDIR en PREFIX kunnen de standaardmappen veranderd worden: &prompt.root; make PORTSDIR=/usr/home/example/ports install Het voorbeeld hierboven compileert de port in /usr/home/example/ports en installeert alles in /usr/local. &prompt.root; make PREFIX=/usr/home/example/local install Het voorbeeld hierboven compileert in /usr/ports en installeert in /usr/home/example/local. &prompt.root; make PORTSDIR=../ports PREFIX=../local install Het voorbeeld hierboven combineert de twee instellingen. Het gaat te ver om dit volledig in het handboek te beschrijven, maar hier krijgt de lezer een idee van de mogelijkheden. Het is ook mogelijk de bovenstaande variabelen als deel van de omgeving in te stellen. In de hulppagina's van de gebruikte shell staat hoe dat mogelijk is. Omgaan met <command>imake</command> Er zijn ports die imake gebruiken (een onderdeel van het X Window systeem) die niet goed werken met PREFIX en erop staan te installeren in /usr/X11R6. Er zijn ook een aantal Perl ports die PREFIX negeren en in de Perl hiërarchie installeren. Deze ports op de PREFIX locatie laten installeren is meestal erg moeilijk of onmogelijk. Geïnstalleerde ports verwijderen ports verwijderen In deze paragraaf wordt het verwijderen van ports behandeld. Dat kan nodig zijn als een port niet langer wordt gebruikt of als de verkeerde ports is geïnstalleerd. Dit wordt geïllustreerd door de port uit het vorige voorbeeld te verwijderen (lsof). Ports worden op precies dezelfde manier verwijderd als packages met het commando &man.pkg.delete.1; (zoals beschreven in het onderdeel Packages): &prompt.root; pkg_delete lsof-4.57 Ports bijwerken ports bijwerken Stel als eerste een lijst samen met ports waarvoor een nieuwere versie beschikbaar is in de Portscollectie met het commando &man.pkg.version.1;: &prompt.root; pkg_version -v Als de Portscollectie eenmaal is bijgewerkt vóór het bijwerken van ports, is het verstandig het bestand /usr/ports/UPDATING te raadplegen. In dat bestand staan aanwijzingen en wijzigingen voor gebruikers die van belang zijn bij het bijwerken van ports. Ports bijwerken met portupgrade portupgrade Het hulpprogramma portupgrade is ontworpen als instrument om eenvoudig ports bij te werken. Het is beschikbaar via de port sysutils/portupgrade. Installeer het net als iedere andere port met het commando make install clean: &prompt.root; cd /usr/ports/sysutils/portupgrade &prompt.root; make install clean Scan de lijst met geïnstalleerde ports met het commando pkgdb -F en corrigeer alle gerapporteerde inconsistenties. Het is verstandig dit regelmatig te doen, voor iedere keer bijwerken. Door het draaien van portupgrade -a zal portupgrade beginnen met het bijwerken van alle geïnstalleerde ports op een systeem waarvoor een nieuwere versie beschikbaar ius. Met de vlag is het mogelijk in te stellen dat voor iedere bij te werken port om bevestiging wordt gevraagd. &prompt.root; portupgrade -ai Gebruik om alleen een specifieke applicatie bij te werken en niet alle beschikbare ports portupgrade pkgname. Gebruik de vlag om portupgrade eerst alle ports bij te laten werken die voor een bij te werken toepassing benodigd zijn. &prompt.root; portupgrade -R firefox Gebruik de vlag om bij installatie van packages in plaats van ports gebruik te maken. Met deze optie zoekt portupgrade in de lokale mappen uit PKG_PATH of haalt de packages via het netwerk op als ze lokaal niet worden aangetroffen. Als een package niet lokaal en niet via het netwerk wordt gevonden, dan gebruikt portupgrade ports. Om het gebruik van ports te voorkomen kan gebruik gemaakt worden van de optie : &prompt.root; portupgrade -PR gnome2 Om alleen de distfiles op te halen (of packages als is opgegeven), zonder bouwen of installeren, is beschikbaar. Meer informatie staat in &man.portupgrade.1;. Ports bijwerken met portmanager portmanager Portmanager is een ander hulpprogramma voor het eenvoudig bijwerken van geïnstalleerde ports. Het is beschikbaar via de port sysutils/portmanager: &prompt.root; cd /usr/ports/sysutils/portmanager &prompt.root; make install clean Alle geïnstalleerde ports kunnen bijgewerkt worden met het volgende eenvoudige commando: &prompt.root; portmanager -u Met de vlag kan ingesteld worden dat voor iedere stap die Portmanager wil uitvoeren vooraf toestemming moet worden gegeven. Portmanager kan ook nieuwe ports op een systeem installeren. Anders dan met het bekende commando make install clean worden alle afhankelijkheden bijgewerkt voordat de geselecteerde port wordt gebouwd en geïnstalleerd: &prompt.root; portmanager x11/gnome2 Als er problemen zijn ten aanzien van de afhankelijkheden voor een geselecteerde port, dan kan Portmanager ze allemaal herbouwen in de juiste volgorde. Als dat is afgerond, wordt daarna ook de port die problemen opleverde opnieuw gebouwd: &prompt.root; portmanager graphics/gimp -f - Meer informatie staat in de handboekpagina voor + Meer informatie staat in de handleiding voor Portmanager. Ports en schijfruimte ports disk-space Werken met de Portscollectie kan in de loop der tijd veel schijfruimte gebruiken. Na het bouwen en installeren van software uit de ports, is het van belang altijd de tijdelijke mappen work op te ruimen met het commando make clean. De complete Portscollectie kan geschoond worden met het volgende commando: &prompt.root; portsclean -C In de loop der tijd komen ook veel oude bestanden met broncode in de map distfiles te staan. Die kunnen handmatig verwijderd worden of met het volgende commando dat alle distfiles waarnaar in de huidige ports geen verwijzingen meer staan verwijdert: &prompt.root; portsclean -D Het hulpprogramma portsclean is onderdeel van de suite portupgrade. Vergeet niet ports die niet langer gebruikt worden te verwijderen. Een handig hulpmiddel hiervoor kan de port sysutils/pkg_cutleaves zijn. Activiteiten na het installeren Na het installeren van een nieuwe applicatie is het meestal verstandig om de documentatie te lezen die bij een applicatie zit, bestanden met instellingen die vereist zijn aan te passen, ervoor te zorgen dat de applicatie start na het booten (als het een daemon is), enzovoort. De exacte stappen om een applicatie in te stellen zijn natuurlijk voor iedere applicatie anders. Maar als er net een nieuwe applicatie is geïnstalleerd en het is niet vanzelfsprekend hoe verder te gaan, dan kunnen de volgende tips helpen: Met &man.pkg.info.1; kan uitgevonden worden welke bestanden geïnstalleerd zijn en waar. Om bijvoorbeeld uit te vinden welke bestanden door FooPackage versie 1.0.0 zijn geïnstalleerd: &prompt.root; pkg_info -L foopackage-1.0.0 | less Bestanden in mapnamen met man/ zijn hulppagina's, etc/ bevat bestanden met instellingen en doc/ bevat uitgebreidere documentatie. Als niet helemaal duidelijk is welke versie van het programma is geïnstalleerd, kan een commando als volgt gebruikt worden: &prompt.root; pkg_info | grep -i foopackage Hiermee worden alle packages getoond waar foopackage in de packagenaam voorkomt. Als de hulppagina's zijn gevonden, kunnen die bekeken worden met &man.man.1;. Zo kan er ook in de bestanden met voorbeeldinstellingen gekeken worden en naar aanvullende documentatie, als die is bijgeleverd. Als er een website is voor de applicatie staat daar vaak ook aanvullende documentatie, veelgestelde vragen, enzovoort. Als het webadres niet bekend is, kan dat nog staan in de uitvoer van het volgende commando: &prompt.root; pkg_info foopackage-1.0.0 Als er een regel met WWW: in staat, is dat de URL naar de website voor de applicatie. Ports die na het booten moeten starten (zoals internet diensten) hebben meestal een voorbeeldscript in /usr/local/etc/rc.d. Dit script kan bekeken, aangepast en hernoemd worden waar nodig. Meer informatie staat in Diensten Starten. Omgaan met kapotte ports Als een port niet werkt, zijn er een aantal mogelijke manieren om verder te komen: Zoek uit of er een oplossing voor de port staat te wachten in de Problem Report database. Als dat zo is kan wellicht de voorgestelde reparatie gebruikt worden. Vraag de beheerder van de port om hulp. Voor het e-mailadres van de beheerder kan make maintainer ingegeven worden of het kan in de Makefile staan. Zet in de mail in ieder geval de naam en versie van de port (de regel met $&os;: in de Makefile) en de uitvoer tot en met de foutmelding. Sommige ports worden niet beheerd door een individu maar in plaats daarvan door een mailinglijst. Veel, maar niet alle, van deze adressen zien eruit als freebsd-listname@FreeBSD.org. Houd hier alstublieft rekening mee bij het formuleren van vragen. In het bijzonder worden ports die geregistreerd staan als onderhouden door freebsd-ports@FreeBSD.org helemaal niet onderhouden. Reparaties en ondersteuning, als die al beschikbaar is, komt vanuit de gemeenschap die is geabonneerd op die mailinglijst. Meer vrijwilligers zijn altijd nodig! Als er geen antwoord komt, stuur dan met &man.send-pr.1; een foutrapport in. Zie Writing &os; Problem Reports). Repareren! In het Handboek voor de Porter is gedetailleerde informatie te vinden over de infrastructuur van de Ports, zodat een kapotte port gemaakt kan worden of er zelfs een nieuwe port ingestuurd kan worden. Zoek een package van een FTP site in de buurt. De master packagecollectie staat op ftp.FreeBSD.org in de map packages, maar het is van belang dat er eerst in de buurt wordt gekeken! Dat het package werkt is waarschijnlijker dan wanneer uit de broncode wordt gecompileerd en het is nog sneller ook. Een package kan met &man.pkg.add.1; geïnstalleerd worden. diff --git a/nl_NL.ISO8859-1/books/handbook/security/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/security/chapter.sgml index 8278595150..479de03fcd 100644 --- a/nl_NL.ISO8859-1/books/handbook/security/chapter.sgml +++ b/nl_NL.ISO8859-1/books/handbook/security/chapter.sgml @@ -1,5632 +1,5632 @@ Matthew Dillon Veel uit dit hoofdstuk is overgenomen uit de - security(7) handboekpagina van + security(7) handleiding van Siebrand Mazeland Vertaald door Beveiliging beveiliging Overzicht Dit hoofdstuk biedt een basisinleiding in systeembeveiligingsconcepten, een aantal goede basisregels en een paar gevorderde onderwerpen binnen &os;. Veel van de onderwerpen die worden behandeld kunnen ook worden toegepast op systemen en internet in het algemeen. Het internet is niet langer een vriendelijke omgeving waar iedereen een goede buur wil zijn. Het beveiligen van een systeem is onontbeerlijk als gegevens, intellectueel eigendom, tijd en wat dan ook uit de handen van hackers c.s. gehouden moeten worden. &os; biedt veel hulpmiddelen en mechanismen om te zorgen voor de integriteit en veiligheid van een systeem en netwerk. Na het lezen van dit hoofdstuk weet de lezer: Van basis systeembeveiligingsconcepten in relatie tot &os;; Meer over verschillende versleutelingsmechanismen die beschikbaar zijn in &os; zoals DES en MD5; Hoe eenmalige wachtwoordauthenticatie opgezet kan worden; Hoe TCP Wrappers in te stellen voor gebruik met inetd; Hoe KerberosIV op &os; releases eerder dan 5.0 opgezet kan worden; Hoe Kerberos5 op &os; 5.0 release en verder opgezet kan worden; Hoe IPsec wordt ingesteld en hoe een VPN op te zetten tussen &os; en µsoft.windows; machines; Hoe OpenSSH, &os;'s SSH implementatie, in te stellen en te gebruiken; Wat filesysteem ACLs zijn en hoe die te gebruiken; Hoe het hulpprogramma Portaudit gebruikt kan worden om softwarepakketten uit de Portscollectie te auditen; Hoe om te gaan met publicaties van &os; beveiligingswaarschuwingen; Iets van Procesaccounting en hoe dat is in te schakelen in &os;. Er wordt aangenomen dat de lezer van dit hoofdstuk: Basisbegrip heeft van &os; en internetconcepten. In dit boek worden nog meer onderwerpen met betrekking tot beveiliging beschreven. Zo wordt bijvoorbeeld Verplichte Toegangscontrole (Mandatory Access Control) besproken in en Internet Firewalls in . Introductie Beveiliging is een taak die begint en eindigt bij de systeembeheerder. Hoewel alle BSD &unix; multi-user systemen enige inherente beveiliging kennen, is het bouwen en onderhouden van additionele beveiligingsmechanismen om de gebruikers eerlijk te houden waarschijnlijk een van de zwaarste taken voor de systeembeheerder. Machines zijn zo veilig als ze gemaakt worden en beveiligingsoverwegingen staan altijd op gespannen voet met de wens om gebruiksvriendelijkheid. &unix; systemen zijn in het algemeen in staat tot het tegelijkertijd uitvoeren van een enorm aantal processen en veel van die processen acteren als server - daarmee wordt bedoeld dat externe entiteiten er verbindingen mee kunnen maken en ertegen kunnen praten. Nu de minicomputers en mainframes van gisteren de desktops van vandaag zijn en computers onderdeel zijn van netwerken en internetwerken, wordt beveiliging nog belangrijker. Beveiliging kan het beste ingesteld worden door een gelaagde ui-aanpak. In een notendop zijn er het beste net zoveel lagen van beveiliging als handig is en daarna dient het systeem zorgvuldig gemonitord te worden op inbraken. Het is niet wenselijk beveiliging te overontwerpen, want dat doet afbreuk aan de detectiemogelijkheden en detectie is een van de belangrijkste aspecten van beveiligingsmechanismen. Zo heeft het bijvoorbeeld weinig zin om de schg vlaggen (zie &man.chflags.1;) op ieder binair bestand op een systeem te zetten, omdat het, hoewel dit misschien tijdelijk binaire bestanden beschermt, een inbreker in een systeem ervan kan weerhouden een eenvoudig te detecteren wijziging te maken waardoor beveiligingsmaatregelen de inbreker misschien helemaal niet ontdekken. Systeembeveiliging heeft ook te maken met het omgaan met verschillende vormen van aanvallen, zoals een poging om een systeem te crashen of op een andere manier onstabiel te maken, zonder te proberen de root account aan te vallen (break root). Aandachtspunten voor beveiliging kunnen opgesplitst worden in categorieën: Ontzeggen van dienst aanvallen (Denial of service). Gebruikersaccounts compromitteren. root compromitteren via toegankelijke servers. root compromitteren via gebruikersaccounts. Achterdeur creëren (Backdoor). DoS aanvallen Ontzegging van Dienst (DoS) beveiliging Ontzegging van Dienst DoS aanvallen (DoS) Ontzegging van Dienst (DoS) Een ontzegging van dienst (DoS) aanval is een techniek die de machine middelen ontneemt. In het algemeen zijn DoS aanvallen brute kracht mechanismen die proberen de machine te crashen of op een andere manier onbruikbaar te maken door de machine of de netwerkcode te overvragen. Sommige DoS aanvallen proberen misbruik te maken van bugs in de netwerkcode om een machine met een enkel pakket te crashen. Zoiets kan alleen gerepareerd worden door een aanpassing aan de kernel te maken. Aanvallen op servers kunnen vaak hersteld worden door op de juiste wijze opties in stellen om de belasting van servers te limiteren in ongunstige omstandigheden. Omgaan met brute kracht aanvallen is lastiger. Zo is een aanval met gefingeerde pakketten (spoofed-packet) vrijwel niet te stoppen, behalve dan door het systeem van internet los te koppelen. Misschien gaat de machine er niet door plat, maar het kan wel een volledige internetverbinding verzadigen. beveiliging account compromittering Een gecompromitteerde gebruikersaccount komt nog veel vaker voor dan een DoS aanval. Veel systeembeheerders draaien nog steeds standaard telnetd, rlogind, rshd en ftpd servers op hun machines. Deze servers communiceren standaard niet over beveiligde verbindingen. Het resultaat is dat als er een redelijk grote gebruikersgroep is, er altijd wel van een of meer van de gebruikers die van afstand op dat systeem aanmelden (wat toch de meest normale en makkelijke manier is om op een systeem aan te melden) het wachtwoord is afgeluisterd (sniffed). Een oplettende systeembeheerder analyseert zijn logboekbestanden om te zoeken naar verdachte bronadressen, zelfs als het om succesvolle aanmeldpogingen gaat. Uitgangspunt moet altijd zijn dat als een aanvaller toegang heeft tot een gebruikersaccount, de aanvaller de root account kan compromitteren. In werkelijkheid is het wel zo dat voor een systeem dat goed beveiligd is en goed wordt onderhouden, toegang tot een gebruikersaccount niet automatisch betekent dat de aanvaller ook root privileges kan krijgen. Het is van belang dit onderscheid te maken, omdat een aanvaller zonder toegang tot root in het algemeen zijn sporen niet kan wissen en op z'n best wat kan rommelen met bestanden van de gebruiker of de machine kan crashen. Gecompromitteerde gebruikersaccounts zijn vrij normaal omdat gebruikers normaliter niet de voorzorgsmaatregelen nemen die systeembeheerders nemen. beveiliging achterdeuren Systeembeheerders moeten onthouden dat er in potentie heel veel manieren zijn om toegang tot root te krijgen. Een aanvaller zou het root wachtwoord kunnen kennen, een bug kunnen ontdekken in een dienst die onder root draait en daar via een netwerkverbinding op in kunnen breken of een aanvaller zou een probleem kunnen met een suid-root programma dat de aanvaller in staat stelt root te worden als hij eenmaal toegang heeft tot een gebruikersaccount. Als een aanvaller een manier heeft gevonden om root te worden op een machine, dan hoeft hij misschien geen achterdeur (backdoor) te installeren. Veel bekende manieren die zijn gevonden om root te worden, en weer zijn afgesloten, vereisen veel werk van de aanvaller om zijn rommel achter zich op te ruimen, dus de meeste aanvallers installeren een achterdeur. Een achterdeur biedt de aanvaller een manier om makkelijk opnieuw root toegang tot het systeem te krijgen, maar dit geeft de slimme systeembeheerder ook een makkelijke manier om de inbraak te ontdekken. Het onmogelijk maken een achterdeur te installeren zou best wel eens nadelig kunnen zijn voor beveiliging, omdat hiermee nog niet het gat gedicht is waardoor er in eerste instantie is ingebroken. Beveiligingsmaatregelen moeten altijd geïmplementeerd worden in een meerlagenmodel en worden als volgt gecategoriseerd: Beveiligen van root en medewerkersaccounts. Beveiligen van root – servers onder root en suid/sgid binaire bestanden. Beveiligen van gebruikersaccounts. Beveiligen van het wachtwoordbestand. Beveiligen van de kern van de kernel, ruwe apparaten en bestandssystemen. Snel detecteren van ongeoorloofde wijzigingen aan het systeem. Paranoia. In het volgende onderdeel van dit hoofdstuk gaan we dieper in op de bovenstaande punten. &os; beveiligen beveiliging &os; beveiligen Commando vs. protocol In dit hele document gebruiken we vette tekst om te verwijzen naar een commando of applicatie en een monospaced lettertype om te verwijzen naar specifieke commando's. Protocollen staan vermeld in een normaal lettertype. Dit typografische onderscheid is zinvol omdat bijvoorbeeld ssh zowel een protocol als een commando is. In de volgende onderdelen behandelen we de methodes uit de vorige paragraaf om een &os; systeem te beveiligen. Beveiligen van <username>root</username> en medewerkersaccounts. su Om te beginnen: doe geen moeite om medewerkersaccounts te beveiligen als de root account niet beveiligd is. Op de meeste systemen heeft de root account een wachtwoord. Als eerste moet aangenomen worden dat dit wachtwoord altijd gecompromitteerd is. Dit betekent niet dat het wachtwoord verwijderd moet worden. Het wachtwoord is namelijk bijna altijd nodig voor toegang via het console van de machine. Het betekent wel dat het niet mogelijk gemaakt moet worden om het wachtwoord te gebruiken buiten het console om en mogelijk zelfs niet via het &man.su.1; commando. Pty's moeten bijvoorbeeld gemarkeerd staan als onveilig (insecure) in het bestand /etc/ttys zodat direct aanmelden met root via telnet of rlogin niet wordt toegestaan. Als andere aanmelddiensten zoals sshd gebruikt worden, dan hoort direct aanmelden via root uitgeschakeld staat. Dit kan door het bestand /etc/ssh/sshd_config te bewerken en ervoor te zorgen dat PermitRootLogin op NO staat. Dit moet gebeuren voor iedere methode van toegang – diensten zoals FTP worden vaak over het hoofd gezien. Het direct aanmelden van root hoort alleen te mogen via het systeemconsole. wheel Natuurlijk moet een systeembeheerder de mogelijkheid hebben om root te worden. Daarvoor kunnen een paar gaatjes geprikt worden. Maar dan moet ervoor gezorgd worden dat er voor deze gaatjes extra aanmelden met een wachtwoord nodig is. Eén manier om root toegankelijk te maken is door het toevoegen van de juiste medewerkersaccounts aan de wheel groep (in /etc/group). De medewerkers die lid zijn van de groep wheel mogen su–en naar root. Maak medewerkers nooit native lid van de groep wheel door ze in de groep wheel te plaatsen in /etc/group. Medewerkersaccounts horen lid te zijn van de groep staff en horen dan pas toegevoegd te worden aan de groep wheel in het bestand /etc/group. Alleen medewerkers die ook echt toegang tot root nodig hebben horen in de groep wheel geplaatst te worden. Het is ook mogelijk, door een authenticatiemethode als Kerberos te gebruiken, om het bestand .k5login van Kerberos in de root account te gebruiken om een &man.ksu.1; naar root toe te staan zonder ook maar iemand lid te maken van de groep wheel. Dit is misschien wel een betere oplossing, omdat het wheel-mechanisme het nog steeds mogelijk maakt voor een inbreker root te breken als de inbreker een wachtwoordbestand te pakken heeft gekregen en toegang kan krijgen tot één van de medewerkersaccounts. Hoewel het instellen van het wheel-mechanisme beter is dan niets, is het niet per se de meest veilige optie. Een indirecte manier om de medewerkersaccounts te beveiligen en uiteindelijk ook de toegang tot root, is het gebruik van alternatieve aanmeldmethodes en de wachtwoorden van de medewerkersaccounts, zoals het heet uit te sterren. Met &man.vipw.8; kan iedere instantie van een gecodeerd wachtwoord vervangen worden door een enkel * karakter. Met dit commando worden /etc/master.passwd en de gebruikers/wachtwoord database bijgewerkt om het aanmelden met wachtwoord uit te schakelen. Een regel voor een medewerkersaccount als: foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh Zou veranderd moeten worden naar: foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh Door deze wijziging kan niet langer normaal aangemeld worden omdat het gecodeerde wachtwoord nooit gelijk is aan de *. Nu dit is gebeurd, moeten medewerkers een ander mechanisme gebruiken om zich te authenticeren zoals &man.kerberos.1; of &man.ssh.1; met een publiek/privaat sleutelpaar. Bij het gebruik van iets als Kerberos moeten gewoonlijk de machines waarop de Kerberos server draait en het desktop werkstation beveiligd worden. Bij het gebruik van een publiek/privaat sleutelpaar met ssh, moet in het algemeen de machine van waar wordt aangemeld beveiligd worden (meestal een werkstation). Het is mogelijk nog een beveiligingslaag toe te voegen door het sleutelpaar te beschermen met een wachtwoord als het aan te maken met &man.ssh-keygen.1;. Door accounts van medewerkers uit te sterren is het ook gegarandeerd dat ze alleen aan kunnen melden door gebruik te maken van de veilige toegangsmethodes die de beheerder heeft ingesteld. Hierdoor worden alle medewerkers gedwongen veilige, gecodeerde verbindingen te gebruiken voor al hun sessies. Daarmee wordt een belangrijk beveiligingsgat gesloten dat veel indringers gebruiken: snuffelen aan het netwerk vanaf een niet-relevante minder veilige machine. Meer indirecte beveiligingsmechanismen hebben ook als uitgangspunt dat vanaf een zwaarder beveiligde machine wordt aangemeld op een minder beveiligd systeem. Als een hoofdserver bijvoorbeeld allerlei servers draait, zou het werkstation er geen moeten draaien. Om een werkstation redelijk veilig te laten zijn, dienen er zo min mogelijk servers op te draaien, bij voorkeur zelfs geen en er zou een schermbeveiliging met wachtwoordbeveiliging op moeten draaien. Maar als een aanvaller fysieke toegang heeft tot een werkstation, dan kan hij elke beveiliging die erop is aangebracht omzeilen. Dit probleem dient echt overwogen te worden, net als het feit dat de meeste aanvallen van een afstand plaatsvinden, via het netwerk, door mensen die geen fysieke toegang hebben tot werkstations of servers. KerberosIV Het gebruik van iets als Kerberos geeft de mogelijkheid om het wachtwoord van de account van een medewerker buiten gebruik te stellen of te wijzigen op één plaats, waarbij het meteen actief is op alle machines waarop die medewerker een account heeft. Als de account van een medewerker gecompromitteerd raakt, moet vooral de mogelijkheid om per direct het wachtwoord voor machines te kunnen aanpassen niet onderschat worden. Met afzonderlijke wachtwoorden kan het veranderen van wachtwoorden op N systemen een puinhoop worden. Met Kerberos kunnen ook wachtwoordrestricties opgelegd worden: het is niet alleen mogelijk om een Kerberos ticket na een bepaalde tijd te laten verlopen, maar het Kerberos systeem kan afdwingen dat de gebruiker na een bepaalde tijd een nieuw wachtwoord kiest (na bijvoorbeeld een maand). Beveiligen van <username>root</username> – servers onder <username>root</username> en suid/sgid binaire bestanden ntalk comsat finger zandbakken sshd telnetd rshd rlogind Een voorzichtige systeembeheerder draait alleen die servers die nodig zijn, niets meer, niets minder. Bedenk dat servers van derde partijen vaak de meeste neiging hebben tot het vertonen van bugs. Zo staat bijvoorbeeld het draaien van een oude versie van imapd of popper gelijk aan het weggeven van de root account aan de hele wereld. Draai nooit een server die niet zorgvuldig is onderzocht. Veel servers hoeven niet te draaien als root. Zo kunnen de ntalk, comsat en finger daemons bijvoorbeeld draaien in speciale gebruikerszandbakken (sandboxes). Een zandbak is niet perfect, tenzij er heel veel moeite gedaan wordt, maar de meerlagenbenadering blijft bestaan: als iemand via een server die in een zandbak draait weet in te breken, dan moeten ze eerst nog uit de zandbak komen. Hoe groter het aantal lagen is waar een inbreker doorheen moet, hoe kleiner de kans op succes is. root gaten zijn historisch gezien aanwezig geweest in vrijwel iedere server die ooit als root gedraaid heeft, inclusief de basisservers van een systeem. Op een machine waarop mensen alleen aanmelden via sshd en nooit via telnetd of rshd of rlogind dienen die servers uitgeschakeld te worden! &os; draait ntalkd, comsat en finger tegenwoordig standaard in een zandbak. Een ander programma dat misschien beter in een zandbak kan draaien is &man.named.8;. In /etc/defaults/rc.conf staat als commentaar welke parameters er nodig zijn om named in een zandbak te draaien. Afhankelijk van of het een nieuwe systeeminstallatie of het bijwerken van een bestaand systeem betreft, worden de speciale gebruikersaccounts die bij die zandbakken horen misschien niet geïnstalleerd. Een voorzichtige systeembeheerder onderzoekt en implementeert zandbakken voor servers waar dat ook maar mogelijk is. sendmail Er zijn een aantal diensten die vooral niet in een zandbak draaien: sendmail, popper, imapd, ftpd en andere. Voor sommige servers zijn alternatieven, maar dat kost misschien meer tijd dan er te besteden is (gemak dient de mens). Het kan voorkomen dat deze servers als root moeten draaien en dat er vertrouwd moet worden op andere mechanismen om een inbraak via die servers te detecteren. De andere grote mogelijkheid voor root gaten in een systeem zijn de suid-root en sgid binaire bestanden die geïnstalleerd zijn op een systeem. Veel van die bestanden, zoals rlogin, staan in /bin, /sbin, /usr/bin of /usr/sbin. Hoewel het niet 100% veilig is, mag aangenomen worden dat de suid en sgid binaire bestanden van een standaardsysteem redelijk veilig zijn. Toch worden er nog wel eens root gaten gevonden in deze bestanden. Zo is er in 1998 een root gat gevonden in Xlib waardoor xterm (die normaliter suid is) kwetsbaar bleek. Een voorzichtige systeembeheerder kiest voor better to be safe than sorry door de suid bestanden die alleen medewerkers hoeven uit te voeren aan een speciale groep toe te wijzen en de suid bestanden die niemand gebruikt te lozen (chmod 000). Een server zonder monitor heeft normaal gezien xterm niet nodig. Sgid bestanden kunnen bijna net zo gevaarlijk zijn. Als een inbreker een sgid-kmem stuk kan krijgen, dan kan hij wellicht /dev/kmem lezen en dus het gecodeerde wachtwoordbestand, waardoor mogelijk ieder account met een wachtwoord besmet is. Een inbreker toegang tot de groep kmem kan krijgen, zou bijvoorbeeld mee kunnen kijken met de toetsaanslagen die ingegeven worden via de pty's, inclusief die pty's die gebruikt worden door gebruikers die via beveiligde methodes aanmelden. Een inbreker die toegang krijgt tot de groep tty kan naar bijna alle tty's van gebruikers schrijven. Als een gebruiker een terminalprogramma of een terminalemulator met een toetsenbordsimulatieoptie draait, dan kan de inbreker in potentie een datastroom genereren die ervoor zorgt dat de terminal van de gebruiker een commando echot, dat dan wordt uitgevoerd door die gebruiker. Beveiligen van gebruikersaccounts Gebruikersaccounts zijn gewoonlijk het meest lastig om te beveiligen. Hoewel er allerlei Draconische maatregelen genomen kunnen worden met betrekking tot de medewerkers en hun wachtwoorden weggesterd kunnen worden, gaat dat waarschijnlijk niet lukken met de gewone gebruikersaccounts. Als er toch voldoende vrijheid is, dan prijst de beheerder zich gelukkig en is het misschien toch mogelijk de accounts voldoende te beveiligen. Als die vrijheid er niet is, dan moeten die accounts gewoon netter gemonitord worden. Het gebruik van ssh en Kerberos voor gebruikersaccounts is problematischer vanwege het extra beheer en de ondersteuning, maar nog steeds een prima oplossing in vergelijking met een gecodeerd wachtwoordbestand. Beveiligen van het wachtwoordbestand De enige echte oplossing is zoveel mogelijk wachtwoorden * maken en ssh of Kerberos gebruiken voor toegang tot die accounts. Hoewel een gecodeerd wachtwoordbestand (/etc/spwd.db) alleen gelezen kan worden door root, is het wel mogelijk dat een inbreker leestoegang krijgt tot dat bestand zonder dat de aanvaller root-schrijftoegang krijgt. Beveiligingsscripts moeten altijd controleren op en rapporteren over wijzigingen in het wachtwoordbestand (zie ook Bestandsintegriteit Controleren hieronder). Beveiligen van de kern van de kernel, ruwe apparaten en bestandssystemen 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 (packet sniffing). Bij &os; is dat het bpf apparaat. Een inbreker zal in het algemeen proberen een pakketsnuffelaar te draaien op een gecompromitteerde machine. De inbreker hoeft deze mogelijkheid niet te hebben en bij de meeste systemen is het niet verplicht het bpf apparaat mee te compileren. sysctl Maar zelfs als het bpf apparaat is uitgeschakeld, dan zijn er nog /dev/mem en /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 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 securelevel wordt ingesteld met sysctl op de kern.securelevel variabele. Als securelevel op 1 staat, is het niet langer mogelijk te schrijven naar ruwe apparaten en speciale chflags vlaggen als schg worden dan afgedwongen. Ook dient de vlag schg gezet te worden op kritische opstartbestanden, mappen en scriptbestanden. Alles dat wordt uitgevoerd voordat het securelevel wordt ingesteld. Dit is misschien wat overdreven en het wordt lastiger een systeem te vernieuwen als dat in een hoger securelevel draait. Er is een compromis mogelijk door het systeem in een hoger securelevel te draaien maar de schg vlag niet op alle systeembestanden en mappen te zetten die maar te vinden zijn. / en /usr zouden ook als alleen-lezen gemount kunnen worden. Het is nog belangrijk om op te merken dat als de beheerder te Draconisch omgaat met dat wat hij wil beschermen, hij daardoor kan veroorzaken dat die o-zo belangrijke detectie van een inbraak wordt misgelopen. Bestandsintegriteit controleren: binaire bestanden, instellingenbestanden, enzovoort Als puntje bij paaltje komt kan de kern van een systeem maar tot een bepaald punt beveiligd worden zonder dat het minder prettig werken wordt. Zo werk het zetten van de schg bit met chflags op de meeste bestanden in / en /usr waarschijnlijk averechts, omdat, hoewel de bestanden beschermd zijn, ook het venster waarin detectie plaats kan vinden is gesloten. De laatste laag van beveiliging is waarschijnlijk de meest belangrijke: detectie. Alle overige beveiliging is vrijwel waardeloos (of nog erger: geeft een vals gevoel van veiligheid) als een mogelijke inbraak niet gedetecteerd kan worden. Een belangrijk doel van het meerlagenmodel is het vertragen van een aanvaller, nog meer dan hem te stoppen, om de detectiekant van de vergelijking de kans te geven hem op heterdaad te betrappen. De beste manier om te zoeken naar een inbraak is zoeken naar gewijzigde, missende of onverwachte bestanden. De beste manier om te zoeken naar gewijzigde bestanden is vanaf een ander (vaak gecentraliseerd) systeem met beperkte toegang. Met zelfgeschreven scripts op dat extra beveiligde systeem met beperkte toegang ben is een beheerder vrijwel onzichtbaar voor mogelijke aanvallers en dat is belangrijk. Om het nut te maximaliseren moeten in het algemeen dat systeem met beperkte toegang best veel rechten gegeven worden op de andere machines in het netwerk, vaak via een alleen-lezen NFS export van de andere machines naar het systeem met beperkte toegang of door ssh sleutelparen in te stellen om het systeem met beperkte toegang een ssh verbinding te laten maken met de andere machines. Buiten het netwerkverkeer, is NFS de minst zichtbare methode. Hierdoor kunnen de bestandssystemen op alle client machines vrijwel ongezien gemonitord worden. Als de server met beperkte toegang verbonden is met de client machines via een switch, dan is de NFS methode vaak de beste keus. Als de server met beperkte toegang met de andere machines is verbonden via een hub of door meerdere routers, dan is de NFS methode wellicht niet veilig genoeg (vanuit een netwerk standpunt) en kan beter ssh gebruikt worden, ondanks de audit-sporen die ssh achterlaat. Als de machine met beperkte toegang eenmaal minstens leestoegang heeft tot een clientsysteem dat het moet gaan monitoren, dan moeten scripts gemaakt worden om dat monitoren ook echt uit te voeren. Uitgaande van een NFS mount, kunnen de scripts gebruik maken van eenvoudige systeem hulpprogramma's als &man.find.1; en &man.md5.1;. We adviseren minstens één keer per dag een md5 te maken van alle bestanden op de clientmachine en van instellingenbestanden als in /etc en /usr/local/etc zelfs vaker. Als er verschillen worden aangetroffen ten opzichte van de basis md5 informatie op het systeem met beperkte toegang, dan hoort het script te gillen om een beheerder die het moet gaan uitzoeken. Een goed beveiligingsscript controleert ook op onverwachte suid bestanden en op nieuwe en verwijderde bestanden op systeempartities als / en /usr. Als ssh in plaats van NFS wordt gebruikt, dan is het schrijven van het script lastiger. Dan moeten de scripts met scp naar de client verplaatst worden om ze uit te voeren, waardoor ze zichtbaar worden. Voor de veiligheid dienen ook de binaire bestanden die het script gebruikt, zoals &man.find.1;, gekopieerd te worden. De ssh client op de client zou al gecompromitteerd kunnen zijn. Het is misschien noodzakelijk ssh te gebruiken over onveilige verbindingen, maar dat maakt alles een stuk lastiger. Een goed beveiligingsscript voert ook controles uit op de instellingenbestanden van gebruikers en medewerkers: .rhosts, .shosts, .ssh/authorized_keys, enzovoort… Dat zijn bestanden die buiten het bereik van de MD5 controle vallen. Als gebruikers veel 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 nu succesvol is of niet. Procesverantwoording (zie &man.accton.8;) kost relatief gezien weinig en kan bijdragen aan een evaluatie mechanisme voor na inbraken. Het is erg handig om uit te zoeken hoe iemand precies heeft ingebroken op het systeem, mits het bestand nog onbeschadigd is na de inbraak. Tenslotte horen beveiligingsscripts de logboekbestanden te verwerken en de logboekbestanden zelf horen zo veilig mogelijk tot stand te komen. remote syslog kan erg zinvol zijn. Een aanvaller probeert zijn sporen uit te wissen en logboekbestanden zijn van groot belang voor een systeembeheerder als het gaat om uitzoeken wanneer en hoe er is ingebroken. Een manier om logboekbestanden veilig te stellen is door het systeemconsole via een seriële poort aan te sluiten op een veilige machine en zo continu informatie te verzamelen. Paranoia Een beetje paranoia is niet verkeerd. Eigenlijk kan de systeembeheerder zoveel beveiligingsopties inschakelen als hij wil, als deze maar geen impact hebben op het gebruiksgemak en de beveiligingsopties die wel impact hebben op het gebruiksgemak kunnen ingeschakeld worden als daar zorgvuldig mee wordt omgegaan. Nog belangrijker is misschien dat er een juiste combinatie wordt gevonden. Als de aanbevelingen uit dit document woord voor woord worden opgevolgd, dan worden daarmee de methodes aan een toekomstige aanvaller verraden, die ook toegang heeft tot dit document. Ontzeggen van Dienst aanvallen 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 weinig gedaan kan worden tegen de huidige aanvallen met gefingeerde pakketten die een netwerk kunnen verzadigen, kan de schade geminimaliseerd worden door ervoor te zorgen dat servers er niet door plat gaan. Limiteren van server forks. Limiteren van springplank (springboard) aanvallen (ICMP response aanvallen, ping broadcast, etc.). Kernel Route Cache. Een veelvoorkomende DoS aanval tegen een server die forkt is er een die probeert processen, file descriptors en geheugen te gebruiken tot de machine het opgeeft. inetd (zie &man.inetd.8;) kent een aantal instellingen om dit type aanval af te zwakken. Hoewel het mogelijk is ervoor te zorgen dat een machine niet plat gaat, is het in het algemeen niet mogelijk te voorkomen dat de dienstverlening door de aanval wordt verstoord. Meer is te lezen in de handleiding van inetd en het advies is in het bijzonder aandacht aan de , en opties te besteden. Aanvallen met gefingeerde IP adressen omzeilen de optie naar inetd, dus in het algemeen moet een combinatie van opties gebruikt worden. Sommige op zichzelf staande servers hebben parameters waarmee het aantal forks gelimiteerd kan worden. Sendmail heeft de optie die veel beter blijkt te werken dan het gebruik van de opties van sendmail waarmee de werklast gelimitteerd kan worden. De parameter MaxDaemonChildren moet zodanig ingesteld worden dat als sendmail start, hij hoog genoeg is om de te verwachten belasting aan te kunnen, maar niet zo hoog is dat de computer het aantal instanties van sendmails niet aankan zonder plat te gaan. Het is ook verstandig om sendmail in de wachtrij modus () te draaien en de daemon (sendmail -bd) los te koppelen van de verwerking van de wachtrij (sendmail -q15m). Als de verwerking van wachtrij real-time moet, kunnen de tussenpozen voor verwerking verkort worden door deze bijvoorbeeld op in te stellen, maar dan is een redelijke instelling van MaxDaemonChildren van belang om die sendmail te beschermen tegen trapsgewijze fouten (cascade failures). Syslogd kan direct aangevallen worden en het is sterk aan te raden de optie te gebruiken waar dat ook maar mogelijk is en anders de optie. Er dient voorzichtig omgesprongen te worden met diensten die terugverbinden zoals TCP Wrapper's reverse-identd die direct aangevallen kan worden. In het algemeen is het hierom onverstandig gebruik te maken van de reverse-ident optie van TCP Wrapper. Het is een goed idee om interne diensten af te schermen voor toegang van buitenaf door ze te firewallen op de routers aan de rand van een netwerk (border routers). Dit heeft als achtergrond dat verzadigingsaanvallen voorkomen van buiten het LAN voorkomen kunnen worden. Daarmee wordt geen aanval op root via het netwerk en die diensten daaraan voorkomen. Er dient altijd een exclusieve firewall te zijn, d.w.z. firewall alles behalve poorten A, B, C, D en M-Z. Zo worden alle lage poorten gefirewalled behalve die voor specifieke diensten als named (als er een primary is voor een zone), ntalkd, sendmail en andere diensten die vanaf internet toegankelijk moeten zijn. Als de firewall andersom wordt ingesteld, als een inclusieve of tolerante firewall, dan is de kans groot dat er wordt vergeten een aantal diensten af te sluiten of dat er een nieuwe interne dienst wordt toegevoegd en de firewall niet wordt bijgewerkt. Er kan nog steeds voor gekozen worden de hoge poorten open te zetten, zodat een tolerante situatie ontstaat, zonder de lage poorten open te stellen. &os; biedt ook de mogelijkheid een reeks poortnummers die gebruikt worden voor dynamische verbindingen in te stellen via de verscheidene net.inet.ip.portrange sysctls (sysctl -a | fgrep portrange), waardoor ook de complexiteit van de firewall instellingen kan vereenvoudigen. Zo kan bijvoorbeeld een normaal begin tot eindbereik ingesteld worden van 4000 tot 5000 en een hoog poortbereik van 49152 tot 65535. Daarna kan alles onder 4000 op de firewall geblokkeerd worden (met uitzondering van bepaalde poorten die vanaf internet bereikbaar moeten zijn natuurlijk). 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 uitschakelen. Gefingeerde pakketten kunnen ook gebruikt worden om de kernel route cache te overbelasten. Raadpleeg daarvoor de 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 routetabel, die uitgelezen kan worden met netstat -rna | fgrep W3. Deze routes hebben een levensduur van ongeveer 1600 seconden. Als de kernel merkt dat de cached routetabel te groot is geworden, dan wordt rtexpire dynamisch verkleind, maar deze waarde wordt nooit lager dan rtminexpire. Er zijn twee problemen: De kernel reageert niet snel genoeg als een laag belaste server wordt aangevallen. rtminexpire is niet laag genoeg om de kernel de aanval te laten overleven. Als servers verbonden zijn met het internet via een E3 of sneller, dan is het verstandig om handmatig rtexpire en rtminexpire aan te passen via &man.sysctl.8;. Als de een van de parameters op nul wordt gezet, dan crasht de machine. Het instellen van beide waarden op 2 seconden is voldoende om de routetabel tegen een aanval te beschermen. Aandachtspunten voor toegang met <application>Kerberos</application> en <application>SSH</application> ssh 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 rlogin waardoor ze niet geschikt zijn voor binair verkeer. Kerberos codeert standaard sessie niet, tenzij de optie wordt gebruikt. ssh codeert standaard wel alles. ssh werkt prima, maar het stuurt coderingssleutels standaard door. Dit betekent dat als gegeven een veilig werkstation met sleutels die toegang geven tot de rest van het systeem en ssh wordt gebruikt om verbinding te maken met een onveilige machine, die sleutels gebruikt kunnen worden. De sleutels zelf zijn niet bekend, maar ssh stelt een doorstuurpoort in zolang als een gebruikers aangemeld blijft. Als de aanvaller roottoegang heeft op de onveilige machine, dan kan hij die poort gebruiken om toegang te krijgen tot alle machines waar de sleutels van de gebruiker toegang toe geven. Het advies is ssh in combinatie met Kerberos te gebruiken voor het aanmelden door medewerkers wanneer dat ook maar mogelijk is. ssh kan gecompileerd worden met Kerberos ondersteuning. Dit vermindert de kans op blootstelling van ssh sleutels en beschermt tegelijkertijd de wachtwoorden met Kerberos. ssh sleutels zouden alleen gebruikt moeten worden voor geautomatiseerde taken vanaf veilige machines (iets waar Kerberos ongeschikt voor is). Het advies is om het doorsturen van sleutels uit te schakelen in de ssh instellingen of om de from=IP/DOMAIN optie te gebruiken die ssh in staat stelt het bestand authorized_keys te gebruiken om de sleutel alleen bruikbaar te maken voor entiteiten die zich aanmelden vanaf vooraf aangewezen machines. Bill Swingle Delen geschreven en herschreven door Siebrand Mazeland Vertaald door DES, MD5 en crypt beveiliging crypt crypt DES MD5 Iedere gebruiker op een &unix; systeem heeft een wachtwoord bij zijn account. Het lijkt voor de hand liggend dat deze wachtwoorden alleen bekend horen te zijn bij de gebruiker en het eigenlijke besturingssysteem. Om deze wachtwoorden geheim te houden, zijn ze gecodeerd in een eenweg hash (one-way hash), wat betekent dat ze eenvoudig gecodeerd kunnen worden maar niet gedecodeerd. Met andere woorden, wat net gesteld werd is helemaal niet waar: het besturingssysteem kent het echte wachtwoord niet. De enige manier om een wachtwoord in platte tekst te verkrijgen, is door er met brute kracht naar te zoeken in alle mogelijke wachtwoorden. Helaas was DES, de Data Encryption Standard, de enige manier om wachtwoorden veilig te coderen toen &unix; ontstond. Dit was geen probleem voor gebruikers in de VS, maar omdat de broncode van DES niet geëxporteerd mocht worden moest &os; een manier vinden om zowel te gehoorzamen aan de wetten van de VS als aansluiting te houden bij alle andere &unix; varianten die nog steeds DES gebruikten. De oplossing werd gevonden in het splitsen van de coderingsbibliotheken zodat gebruikers in de VS de DES bibliotheken konden installeren en gebruiken en internationale gebruikers een coderingsmethode konden gebruiken die geëxporteerd mocht worden. Zo is het gekomen dat &os; MD5 is gaan gebruiken als coderingsmethode. Van MD5 wordt aangenomen dat het veiliger is dan DES, dus de mogelijkheid om DES te installeren is vooral beschikbaar om aansluiting te kunnen houden. Het crypt mechanisme 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. Het is vrij makkelijk om uit te vinden welke coderingsmethode &os; op een bepaald moment gebruikt. De gecodeerde wachtwoorden in /etc/master.passwd bekijken is een manier. Wachtwoorden die gecodeerd zijn met MD5 zijn langer dan wanneer ze gecodeerd zijn met DES hash. Daarnaast beginnen ze met de karakters $1$. Wachtwoorden die beginnen met $2a$ zijn gecodeerd met de Blowfish hashfunctie. DES password strings hebben geen bijzondere kenmerken, maar ze zijn korter dan MD5 wachtwoorden en gecodeerd in een 64-karakter alfabet waar geen $ karakter in zit. Een relatief korte string die niet begint met een dollar teken is dus waarschijnlijk een DES wachtwoord. Het wachtwoord formaat voor nieuwe wachtwoorden wordt ingesteld met de passwd_format aanmeldinstelling in /etc/login.conf waar des, md5 of blf mag staan. Zie de &man.login.conf.5; - handboekpagina voor meer informatie over + handleiding voor meer informatie over aanmeldinstellingen. Eenmalige wachtwoorden eenmalige wachtwoorden beveiliging 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. Vanaf versie 5.0 van &os; is S/Key vervangen door OPIE (Eenmalige Wachtwoorden in Alles - One-time Passwords In Everything). OPIE gebruikt standaard een MD5 hash. Hier worden drie verschillende soorten wachtwoorden besproken. De eerste is het normale &unix; of Kerberos wachtwoord. Dit heet het &unix; wachtwoord. Het tweede type is een eenmalig wachtwoord dat wordt gemaakt met het S/Key programma key of het OPIE programma &man.opiekey.1; en dat wordt geaccepteerd door keyinit of &man.opiepasswd.1; en de aanmeldprocedure. Dit heet het eenmalige wachtwoord. Het laatste type wachtwoord is het wachtwoord dat wordt opgegeven aan de key/ opiekey programma's (en soms aan de keyinit / opiepasswd programma's) die gebruikt worden om eenmalige wachtwoorden te maken. Dit type heet geheim wachtwoord of gewoon een wachtwoord zonder toevoeging. Het geheime wachtwoord heeft niets te maken met het &unix; wachtwoord; ze kunnen hetzelfde zijn, dat wordt afgeraden. S/Key en OPIE geheime wachtwoorden kennen niet de beperking van 8 karakters als de oude &unix; wachtwoorden. Bij &os; mag het wachtwoord voor aanmelden tot 128 karakters lang zijn. Het mag onbeperkt lang zijn. Wachtwoorden van een zes of zeven woorden lange zin zijn niet ongewoon. Voor het overgrote deel werkt het S/Key of OPIE systeem volledig onafhankelijk van het &unix; wachtwoordsysteem. Buiten het wachtwoord zijn er nog twee stukjes data die van belang zijn voor S/Key en OPIE. Het eerste wordt zaad (seed) of sleutel (key) genoemd en bestaat uit twee letters en vijf cijfers. Het tweede stukje data heet de iteratieteller (iteration count), een nummer tussen 1 en 100. S/Key maakt een eenmalig wachtwoord door het zaad en het geheime wachtwoord aaneen te schakelen en daarop het door de iteratieteller aangegeven keren MD4/MD5 hash toe te passen. Daarna wordt het resultaat omgezet in zes korte Engelse woorden. Die zes woorden zijn een eenmalige wachtwoord. Het authenticatiesysteem (hoofdzakelijk PAM) houdt bij welk eenmalig wachtwoord het laatst is gebruikt en de gebruiker wordt geauthenticeerd als de hash van het door de gebruiker ingegeven wachtwoord gelijk is aan het vorige wachtwoord. Omdat er een eenweg hash wordt gebruikt, is het onmogelijk om toekomstige eenmalige wachtwoorden te maken als iemand toch een eenmalig wachtwoord heeft afgevangen. De iteratieteller wordt verlaagd na iedere succesvolle aanmelding om de gebruiker en het aanmeldprogramma synchroon te houden. Als de iteratieteller op 1 staat, moeten S/Key en OPIE opnieuw ingesteld worden. Er zijn drie programma's bij ieder systeem betrokken die hieronder worden besproken. De key en opiekey programma's hebben een iteratieteller, zaad en een geheim wachtwoord nodig en maken dan een eenmalig wachtwoord of een lijst van opeenvolgende eenmalige wachtwoorden. De programma's keyinit en opiepasswd worden gebruikt om respectievelijk S/Key en OPIE te initialiseren en om wachtwoorden, iteratietellers en zaad te wijzigen. Ze accepteren zowel wachtwoordzinnen als een iteratieteller, zaad en een eenmalig wachtwoord. De programma's keyinfo en opieinfo bekijken de relevante bestanden waarin de eigenschappen staan (/etc/skeykeys of /etc/opiekeys) en tonen de huidige iteratieteller en zaad van de gebruiker die het commando uitvoert. Nu worden vier verschillende acties besproken. Bij de eerste worden keyinit of opiepasswd gebruikt in een beveiligde verbinding om voor het eerst eenmalige wachtwoorden in te stellen of om een wachtwoord of zaad aan te passen. Bij de tweede worden keyinit of opiepasswd gebruikt in een niet-beveiligde verbinding samen met key of opiekey over een beveiligde verbinding om hetzelfde te bereiken. In een derde scenario wordt key/opiekey gebruikt om te melden over een onveilige verbinding. Het vierde scenario behandelt het gebruik van key of opiekey om een aantal sleutels aan te maken die opgeschreven of afgedrukt kunnen worden, zodat ze meegenomen kunnen worden naar een plaats van waar geen enkele veilige verbinding opgezet kan worden. Veilige verbinding initialiseren Om S/Key voor de eerste keer te initialiseren, een wachtwoord te wijzigen of zaad te veranderen over een beveiligde verbinding (bijvoorbeeld op het console van een machine of via ssh), moet het commando keyinit gebruikt worden zonder parameters terwijl een gebruiker als zichzelf is aangemeld: &prompt.user; keyinit Adding unfurl: Reminder - Only use this method if you are directly connected. If you are using telnet or rlogin exit with no password and use keyinit -s. Enter secret password: Again secret password: ID unfurl s/key is 99 to17757 DEFY CLUB PRO NASH LACE SOFT Bij OPIE wordt opiepasswd gebruikt: &prompt.user; opiepasswd -c [grimreaper] ~ $ opiepasswd -f -c Adding unfurl: Only use this method from the console; NEVER from remote. If you are using telnet, xterm, or a dial-in, type ^C now or exit with no password. Then run opiepasswd without the -c parameter. Using MD5 to compute responses. Enter new secret pass phrase: Again new secret pass phrase: ID unfurl OTP key is 499 to4268 MOS MALL GOAT ARM AVID COED Als Enter new secret pass phrase: of Enter secret password: op het scherm verschijnt, dient een wachtwoord of wachtwoordzin ingevoerd te worden. Dit is dus niet het aanmeldwachtwoord is, maar dat dit wordt gebruikt om eenmalige wachtwoorden te maken. De ID regel geeft de parameters van het verzoek weer: de aanmeldnaam, de iteratieteller en zaad. Bij het aanmelden kent het systeem deze parameters en worden deze weergegeven zodat ze niet onthouden hoeven te worden. Op de laatste regel staat het eenmalige wachtwoord dat overeenkomt met die parameters en het geheime wachtwoord. Als de gebruiker direct opnieuw zou aanmelden, zou hij dat eenmalige wachtwoord moeten gebruiken. Onveilige verbinding initialiseren Om te initialiseren of een wachtwoord te wijzigen over een onveilige verbinding, moet er al ergens een veilige verbinding bestaand de gebruiker key of opiekey kan uitvoeren. Dit kan een desktop programma zijn op een &macintosh; of een shell prompt op een machine die vertrouwd wordt. De gebruiker moet ook een iteratieteller verzinnen (100 is wellicht een prima getal) en moet een eigen zaad bedenken of er een laten fabriceren. Over de onveilige verbinding (naar de machine die de gebruiker wil initialiseren) wordt het commando keyinit -s gebruikt: &prompt.user; keyinit -s Updating unfurl: Old key: to17758 Reminder you need the 6 English words from the key command. Enter sequence count from 1 to 9999: 100 Enter new key [default to17759]: s/key 100 to 17759 s/key access password: s/key access password:CURE MIKE BANE HIM RACY GORE Bij OPIE is dat opiepasswd: &prompt.user; opiepasswd Updating unfurl: You need the response from an OTP generator. Old secret pass phrase: otp-md5 498 to4268 ext Response: GAME GAG WELT OUT DOWN CHAT New secret pass phrase: otp-md5 499 to4269 Response: LINE PAP MILK NELL BUOY TROY ID mark OTP key is 499 gr4269 LINE PAP MILK NELL BUOY TROY Om het standaard zaad te accepteren (dat het programma keyinit nogal verwarrend een key) noemt, is de invoer Return. Voor een toegangswachtwoord wordt ingevoerd, dient eerst gewisseld te worden naar de veilige verbinding of het S/Key desktop programma en dienen dezelfde parameters ingegeven te worden: &prompt.user; key 100 to17759 Reminder - Do not use this program while logged in via telnet or rlogin Enter secret password: <secret password> CURE MIKE BANE HIM RACY GORE Of bij OPIE: &prompt.user; opiekey 498 to4268 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT In de onveilige verbinding wordt nu het eenmalige wachtwoord in het relevante programma gekopieerd. Een enkel eenmalig wachtwoord maken Als S/Key of OPIE eenmaal is ingesteld staat er bij het aanmelden iets als het volgende: &prompt.user; telnet example.com Trying 10.0.0.1... Connected to example.com Escape character is '^]'. FreeBSD/i386 (example.com) (ttypa) login: <username> s/key 97 fw13894 Password: Of bij OPIE: &prompt.user; telnet example.com Trying 10.0.0.1... Connected to example.com Escape character is '^]'. FreeBSD/i386 (example.com) (ttypa) login: <username> otp-md5 498 gr4269 ext Password: NB: de S/Key en OPIE meldingen hebben een erg zinvolle optie (die hier niet te zien is): als er op Return wordt gedrukt bij de wachtwoordregel, wordt de echo aangezet, zodat de invoer zichtbaar is. Dit is erg handig als er met de hand een wachtwoord wordt ingegeven, zoals wanneer het wordt ingevoerd vanaf een afdruk. MS-DOS Windows MacOS Nu moet het eenmalige wachtwoord gemaakt worden om het aanmeldprompt mee te antwoorden. Dit moet gedaan worden op een vertrouwd systeem waarop key of opiekey beschikbaar is. Er zijn ook versies voor &ms-dos;, &windows; en &macos;. Voor beide commando's moet zowel de iteratieteller als het zaad ingeven worden op de commandoregel. Deze kan zo overgenomen worden vanaf het aanmeldprompt op de machine waarop de gebruiker wil aanmelden. Op het vertrouwde systeem: &prompt.user; key 97 fw13894 Reminder - Do not use this program while logged in via telnet or rlogin. Enter secret password: WELD LIP ACTS ENDS ME HAAG Bij OPIE: &prompt.user; opiekey 498 to4268 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: GAME GAG WELT OUT DOWN CHAT Nu het eenmalige wachtwoord er is, kan het aanmelden doorgang vinden: login: <username> s/key 97 fw13894 Password: <return to enable echo> s/key 97 fw13894 Password [echo on]: WELD LIP ACTS ENDS ME HAAG Last login: Tue Mar 21 11:56:41 from 10.0.0.2 ... Meerdere eenmalige wachtwoorden maken Soms moet is een gebruiker ergens waarvandaan er geen toegang is tot een vertrouwde machine of een beveiligde verbinding. In dat geval is het mogelijk om met de key en opiekey commando's een aantal eenmalige wachtwoorden te maken om uit te printen en deze mee te nemen: &prompt.user; key -n 5 30 zz99999 Reminder - Do not use this program while logged in via telnet or rlogin. Enter secret password: <secret password> 26: SODA RUDE LEA LIND BUDD SILT 27: JILT SPY DUTY GLOW COWL ROT 28: THEM OW COLA RUNT BONG SCOT 29: COT MASH BARR BRIM NAN FLAG 30: CAN KNEE CAST NAME FOLK BILK Of bij OPIE: &prompt.user; opiekey -n 5 30 zz99999 Using the MD5 algorithm to compute response. Reminder: Don't use opiekey from telnet or dial-in sessions. Enter secret pass phrase: <secret password> 26: JOAN BORE FOSS DES NAY QUIT 27: LATE BIAS SLAY FOLK MUCH TRIG 28: SALT TIN ANTI LOON NEAL USE 29: RIO ODIN GO BYE FURY TIC 30: GREW JIVE SAN GIRD BOIL PHI Met worden vijf opeenvolgende sleutels aangevraagd, geeft aan wat het laatste iteratiegetal moet zijn. Deze wachtwoorden worden weergegeven in omgekeerde volgorde voor gebruik. Als de gebruiker echt paranoïde bent kan hij ze opschrijven of hij kan er ook voor kiezen ze af te drukken met lpr. Op iedere regel staat dus de iteratieteller en het eenmalige wachtwoord, maar misschien is het toch handig om ze na gebruik af te strepen. Gebruik van &unix; wachtwoorden beperken S/Key kan beperkingen plaatsen op het gebruik van &unix; wachtwoorden gebaseerd op hostnaam, gebruikersnaam, terminalpoort of IP adres van een aanmeldsessie. Deze beperkingen staan in het instellingenbestand /etc/skey.access. - De handboekpagina voor &man.skey.access.5; bevat meer + De handleiding voor &man.skey.access.5; bevat meer informatie over de inhoud van het bestand en bevat ook details over een aantal aandachtspunten voor beveiliging voordat besloten wordt dit bestand te gebruiken in de beveiliging. Als het bestand /etc/skey.access niet bestaat (dat mag in &os; 4.X systemen), dan mogen alle gebruikers hun &unix; wachtwoord gebruiken. Maar als het bestand wel bestaat, dan moeten alle gebruikers S/Key gebruiken, tenzij iets anders expliciet wordt toegestaan door instellingen in het bestand skey.access. In alle gevallen worden &unix; wachtwoorden op het console wel toegestaan. Nu volgt een voorbeeld met instellingen in het bestand skey.access waarin de drie meest gebruikte instellingen terugkomen: permit internet 192.168.0.0 255.255.0.0 permit user fnord permit port ttyd0 In de eerste regel (permit internet) staat dat gebruikers met een bron IP adres (wat gefingeerd kan worden) dat past binnen de aangegeven waarde en masker altijd &unix; wachtwoorden mogen gebruiken. Dit mag niet gezien worden als beveiligingsmechanisme, maar eerder als een mogelijkheid om gebruikers aan wie het wordt toegestaan eraan te herinneren dat ze op een onveilig netwerk zitten en gebruik moeten maken van S/Key bij het aanmelden. De tweede regel (permit user) staat de gebruiker fnord toe om altijd &unix; wachtwoorden te gebruiken. In het algemeen dient dit alleen gebruikt te worden voor gebruikers die niet in staat zijn het programma key te gebruiken, zoals gebruikers met domme terminals of gebruikers die totaal niet op te voeden zijn. De derde regel (permit port) staat gebruikers die aanmelden vanaf een aangegeven terminalverbinding toe om &unix; wachtwoorden te gebruiken. Dit kan gebruikt worden voor inbellers. Met OPIE kan ook paal en perk gesteld worden aan het gebruik van &unix; wachtwoorden op basis van het IP adres van een aanmeldsessie, net als met S/Key. Dat kan met het bestand /etc/opieaccess dat standaard aanwezig is op &os; 5.0 en latere systemen. Bij &man.opieaccess.5; staat meer informatie over dit bestand en welke beveiligingsoverwegingen bestaan bij het gebruik. Hieronder een voorbeeld voor een opieaccess bestand: permit 192.168.0.0 255.255.0.0 In deze regel (permit internet) staat dat gebruikers met een bron IP adres (wat gefingeerd kan worden) dat past binnen de aangegeven waarde en masker altijd &unix; wachtwoorden mogen gebruiken. Als geen van de regels uit opieaccess van toepassing is, worden standaard pogingen zonder OPIE geweigerd. Tom Rhodes Geschreven door Siebrand Mazeland Vertaald door TCP Wrapper TCP wrappers Iedereen die bekend is met &man.inetd.8; heeft waarschijnlijk wel eens van TCP Wrappers gehoord. Maar slechts weinigen lijken volledig te begrijpen hoe ze in een netwerkomgeving toegepast kunnen worden. Het schijnt dat iedereen een firewall wil hebben om netwerkverbindingen af te handelen. Ondanks dat een firewall veel kan, zijn er toch dingen die hij niet kan, zoals tekst terugsturen naar ontstaansplaats van een verbinding. De TCP software kan dat en nog veel meer. In dit onderdeel worden de TCP Wrappers mogelijkheden besproken en, waar dat van toepassing is, worden ook voorbeelden voor implementatie gegeven. De TCP Wrappers software vergroot de mogelijkheden van inetd door de mogelijkheid al zijn serverdaemons te controleren. Met deze methode is het mogelijk om te loggen, berichten te zenden naar verbindingen, een daemon toe te staan alleen interne verbindingen te accepteren, etc. Hoewel een aantal van deze mogelijkheden ook ingesteld kunnen worden met een firewall, geeft deze manier niet alleen een extra laag beveiliging, maar gaat dit ook verder dan wat een firewall kan bieden. De toegevoegde waarde van TCP Wrappers is niet dat het een goede firewall vervangt. TCP Wrappers kunnen samen met een firewall en andere beveiligingsinstellingen gebruikt worden om een extra laag van beveiliging voor het systeem te bieden. Omdat dit een uitbreiding is op de instellingen van inetd, wordt aangenomen dat de lezer het onderdeel inetd configuration heeft gelezen. Hoewel programma's die onder &man.inetd.8; draaien niet echt daemons zijn, heten ze traditioneel wel zo. Deze term wordt hier dus ook gebruikt. Voor het eerst instellen De enige voorwaarde voor het gebruiken van TCP Wrappers in &os; is ervoor te zorgen dat de inetd gestart wordt vanuit rc.conf met de optie . Dit is de standaardinstelling. Er wordt vanuit gegaan dat /etc/hosts.allow juist is ingesteld, maar als dat niet zo is, dan zal &man.syslogd.8; dat melden. In tegenstelling tot bij andere implementaties van TCP Wrappers is het gebruik van hosts.deny niet langer mogelijk. Alle instellingen moeten in /etc/hosts.allow staan. In de meest eenvoudige instelling worden verbindingen naar daemons toegestaan of geweigerd afhankelijk van de opties in /etc/hosts.allow. De standaardinstelling in &os; is verbindingen toe te staan naar iedere daemon die met inetd is gestart. Na de basisinstelling wordt aangegeven hoe dit gewijzigd kan worden. De basisinstelling heeft meestal de vorm daemon : adres : actie. daemon is de daemonnaam die inetd heeft gestart. Het adres kan een geldige hostnaam, een IP adres of een IPv6 adres tussen blokhaken ([ ]) zijn. Het veld actie kan allow of deny zijn, afhankelijk van of toegang toegestaan of geweigerd moet worden. De instellingen werken zo dat ze worden doorlopen van onder naar boven om te kijken welke regel als eerste van toepassing is. Als een regel van toepassing is gevonden, dan stop het zoekproces. Er zijn nog andere mogelijkheden, maar die worden elders toegelicht. Een eenvoudige instelling kan al van met deze informatie worden gemaakt. Om bijvoorbeeld POP3 verbindingen toe te staan via de mail/qpopper daemon, zouden de volgende instellingen moeten worden toegevoegd aan hosts.allow: # This line is required for POP3 connections: qpopper : ALL : allow Nadat deze regel is toegevoegd moet inetd herstart worden. Dit gaat met het &man.kill.1; commando of met de restart parameter met /etc/rc.d/inetd. Gevorderde instellingen TCP Wrappers hebben ook gevorderde instellingen. Daarmee komt meer controle over de wijze waarop er met verbindingen wordt omgegaan. Soms is het een goed idee om commentaar te sturen naar bepaalde hosts of daemonverbindingen. In andere gevallen moet misschien iets in een logboekbestand geschreven worden of een e-mail naar de beheerder gestuurd worden. Dit kan allemaal met instellingen die wildcards, uitbreidingskarakters (expansion characters) en het uitvoeren van externe commando's heten. De volgende twee paragrafen beschrijven deze mogelijkheden. Externe commando's Stel dat zich de situatie voordoet waar een verbinding geweigerd moet worden, maar er een reden gestuurd moet worden naar het individu dat die verbinding probeerde op te zetten. Hoe gaat dat? Dat is mogelijk door gebruik te maken van de optie . Als er een poging tot verbinding wordt gedaan, wordt er met een shellcommando of script uitgevoerd. Er staat al een voorbeeld in hosts.allow: # De andere daemons zijn beschermd. ALL : ALL \ : severity auth.info \ : twist /bin/echo "You are not welcome to use %d from %h." Dit voorbeeld geeft aan dat het bericht You are not allowed to use daemon from hostname. wordt teruggestuurd voor iedere daemon die niet al is ingesteld in het toegangsbestand. Het is erg handig om een antwoord terug te sturen naar degene die een verbinding op heeft willen zetten meteen nadat een tot stand gekomen verbinding is verbroken. Let wel dat alle berichten die gezonden worden moeten staan tussen " karakters. Hier zijn geen uitzonderingen op. Het is mogelijk een ontzegging van dienst aanval uit te voeren op de server als een aanvaller, of een groep aanvallers, deze daemons kan overstromen met verzoeken om verbindingen te maken. Het is ook mogelijk hier de optie te gebruiken. Net als weigert impliciet de verbinding en kan het gebruikt worden om shellcommando's of scripts uit te voeren. Anders dan bij stuurt geen bericht aan degene die de verbinding wilde maken. Zie bijvoorbeeld de volgende instelling: # Geen verbindingen van example.com: ALL : .example.com \ : spawn (/bin/echo %a from %h attempted to access %d >> \ /var/log/connections.log) \ : deny Hiermee worden alle verbindingen van het domein *.example.com geweigerd. Tegelijkertijd worden ook hostnaam, IP adres en de daemon waarmee verbinding werd gemaakt naar /var/log/connections.log geschreven. Naast de vervangingskarakters die al zijn toegelicht, zoals %a, bestaan er nog een paar andere. In de - handboekpagina van &man.hosts.access.5; staat een volledige + handleiding van &man.hosts.access.5; staat een volledige lijst. Wildcard opties Tot nu toe is in ieder voorbeeld ALL gebruikt. Er bestaan nog andere opties waarmee de mogelijkheden nog verder gaan. Zo kan ALL gebruikt worden om van toepassing te zijn op iedere instantie van een daemon, domein of een IP adres. Een andere wildcard die gebruikt kan worden is PARANOID. Daarmee wordt iedere host die een IP adres geeft dat gefingeerd kan zijn aangeduid. In andere woorden: paranoid kan gebruikt worden om een actie aan te geven als er een IP adres gebruikt wordt dat verschilt van de hostnaam. Het volgende voorbeeld kan wat verheldering brengen: # Weiger mogelijke gespoofte verzoeken aan sendmail: sendmail : PARANOID : deny In het voorgaande voorbeeld worden alle verbindingsverzoeken aan sendmail met een IP adres dat verschilt van de hostnaam geweigerd. Het gebruik van PARANOID kan nogal wat schade aanrichten als de client of de server kapotte DNS instellingen heeft. Voorzichtigheid van de beheerder is geboden. - De handboekpagina van &man.hosts.access.5; geeft meer + De handleiding van &man.hosts.access.5; geeft meer uitleg over wildcards en de mogelijkheden die ze bieden. Voordat de bovenstaande instellingen werken, dient de eerste regels in hosts.allow als commentaar gemarkeerd te worden. Mark Murray Bijgedragen door Mark Dapoz Gebaseerd op een bijdrage van Siebrand Mazeland Vertaald door <application>KerberosIV</application> Kerberos is een netwerkdienst, protocol en systeem waarmee gebruikers zich kunnen aanmelden met behulp van een dienst op een veilige server. Diensten als op een andere server aanmelden, op afstand kopiëren, veilig tussen systemen kopiëren en andere taken met een hoog risico worden aanmerkelijk veiliger en beter controleerbaar. De onderstaande instructies kunnen gebruikt worden als handleiding voor het opzetten van Kerberos op &os;. Voor een volledige beschrijving wordt verwezen naar de relevante - handboekpagina's. + handleidingen. <application>KerberosIV</application> installeren MIT KerberosIV installeren Kerberos is een optioneel component van &os;. De meest eenvoudige manier om de software te installeren is het selecteren van de krb4 of krb5 distributie in sysinstall tijdens de initiële installatie van &os;. Hierdoor wordt de eBones (KerberosIV) of Heimdal (Kerberos5) implementatie van Kerberos geïnstalleerd. Deze implementaties zijn beschikbaar omdat ze ontwikkeld zijn buiten de VS/Canada en dus zijn ze beschikbaar voor systeemeigenaren buiten die landen in dit tijdperk waarin er beperkingen gelden ten aanzien van de export van coderingsprogramma's uit de VS. Het is ook mogelijk te kiezen voor de MIT implementatie van Kerberos via de Portscollectie: security/krb5. Maken van de initiële database Dit hoeft alleen op de Kerberos gedaan te worden. Er dienen geen oude Kerberos databases rond te slingeren. Controleer in de map /etc/kerberosIV of de volgende bestanden aanwezig zijn: &prompt.root; cd /etc/kerberosIV &prompt.root; ls README krb.conf krb.realms Als er nog meer bestanden zijn (zoals principal.* of master_key), dan kan met het programma kdb_destroy de oude Kerberos database vernietigd worden of de overige bestanden kunnen verwijderd worden als Kerberos niet draait. Nu moeten de bestanden krb.conf en krb.realms gewijzigd om de Kerberos wereld te definiëren. In dit geval heet de wereld EXAMPLE.COM en de server heet grunt.example.com. Wijzig of creëer het bestand krb.conf: &prompt.root; cat krb.conf EXAMPLE.COM EXAMPLE.COM grunt.example.com admin server CS.BERKELEY.EDU okeeffe.berkeley.edu ATHENA.MIT.EDU kerberos.mit.edu ATHENA.MIT.EDU kerberos-1.mit.edu ATHENA.MIT.EDU kerberos-2.mit.edu ATHENA.MIT.EDU kerberos-3.mit.edu LCS.MIT.EDU kerberos.lcs.mit.edu TELECOM.MIT.EDU bitsy.mit.edu ARC.NASA.GOV trident.arc.nasa.gov In dit geval hoeven de andere werelden er niet te zijn. Ze staan er als voorbeeld van hoe een machine attent gemaakt kan worden op het bestaan van meerdere werelden. In een eigen test kan ervoor gekozen worden ze weg te laten. De eerste regel benoemt de wereld waarin het systeem opereert. De andere regels bevatten werelden/hosts. Het eerste deel van een regel bevat de wereld en het tweede deel is een host in die wereld die fungeert als sleutel distributiecentrum. De woorden admin server achter een hostnaam betekenen dat een host - ook administratieve database server is. In de handboekpagina's + ook administratieve database server is. In de handleidingen van Kerberos wordt hierover meer uitleg gegeven. Nu moet grunt.example.com aan de wereld EXAMPLE.COM toegevoegd worden en er moet ook een instelling gemaakt worden voor alle hosts uit het .example.com domein in de wereld EXAMPLE.COM. Het bestand krb.realms dient dan als volgt gewijzigd te worden: &prompt.root; cat krb.realms grunt.example.com EXAMPLE.COM .example.com EXAMPLE.COM .berkeley.edu CS.BERKELEY.EDU .MIT.EDU ATHENA.MIT.EDU .mit.edu ATHENA.MIT.EDU Nogmaals: de andere werelden hoeven er niet te staan. Ze staan er als voorbeeld hoe een machine van het bestaan van andere werelden op de hoogte gebracht kan worden. Om het overzichtelijker te maken, kan mogen ze verwijderd worden. De eerste regel plaatst het specifieke systeem in de genoemde wereld. De rest van de regels geeft aan hoe standaardsystemen uit een bepaald subdomein in een wereld plaatst worden. Nu kan de database aangemaakt worden. Dit hoeft alleen op de Kerberos server gedaan te worden (of Sleutel Distributie Centrum) met het commando kdb_init: &prompt.root; kdb_init Realm name [default ATHENA.MIT.EDU ]: EXAMPLE.COM You will be prompted for the database Master Password. It is important that you NOT FORGET this password. Enter Kerberos master key: Nu moet de sleutel opgeslagen worden zodat diensten op de lokale machine er gebruik van kunnen maken met het commando kstash: &prompt.root; kstash Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Nu is de gecodeerde hoofdsleutel opgeslagen in /etc/kerberosIV/master_key. Help het aan de praat KerberosIV eerste keer starten Voor ieder systeem dat met Kerberos wordt beveiligd moeten twee principals worden aangemaakt. Die heten kpasswd en rcmd. Deze twee principals worden aangemaakt voor iedere systeem en de instantie is de naam van het systeem. Deze daemons, kpasswd en rcmd, staan andere systemen toe om Kerberos wachtwoorden te wijzigen en commando's als &man.rcp.1;, &man.rlogin.1; en &man.rsh.1; uit te voeren. Deze worden nu toegevoegd: &prompt.root; kdb_edit Opening database... Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value. Principal name: passwd Instance: grunt <Not found>, Create [y] ? y Principal: passwd, Instance: grunt, kdc_key_ver: 1 New Password: <---- enter RANDOM here Verifying password New Password: <---- enter RANDOM here Random password [y] ? y Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. Principal name: rcmd Instance: grunt <Not found>, Create [y] ? Principal: rcmd, Instance: grunt, kdc_key_ver: 1 New Password: <---- enter RANDOM here Verifying password New Password: <---- enter RANDOM here Random password [y] ? Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. Principal name: <---- null entry here will cause an exit Aanmaken van het serverbestand Nu moeten alle instanties die de diensten op iedere server definiëren geëxtraheerd worden. Dat kan met het commando ext_srvtab. Dit commando maakt een bestand aan dat veilig gekopieerd moet worden naar de map /etc/kerberosIV van iedere Kerberos client. Dit bestand moet aanwezig zijn op iedere server en op iedere client en is van doorslaggevend belang voor de werking van Kerberos. &prompt.root; ext_srvtab grunt Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Generating 'grunt-new-srvtab'.... Het bovenstaande commando maakt een tijdelijk bestand aan dat hernoemd moet worden naar srvtab zodat alle diensten erbij kunnen. Met &man.mv.1; kan het op de juiste plaats op het originele systeem gezet worden: &prompt.root; mv grunt-new-srvtab srvtab Als het bestand voor een clientsysteem is en het netwerk is niet veilig, dan kan het bestand client-new-srvtab dan naar een verwijderbaar medium gekopieerd worden en dan fysiek veilig getransporteerd worden. Op de client dient het bestand srvtab te heten in de map /etc/kerberosIV en in mode 600 te staan: &prompt.root; mv grumble-new-srvtab srvtab &prompt.root; chmod 600 srvtab De database vullen Nu moeten de gebruikers in de database. In dit voorbeeld wordt de gebruiker jane als eerste ingevoerd. Hiervoor is het commando kdb_edit: &prompt.root; kdb_edit Opening database... Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value. Principal name: jane Instance: <Not found>, Create [y] ? y Principal: jane, Instance: , kdc_key_ver: 1 New Password: <---- enter a secure password here Verifying password New Password: <---- re-enter the password here Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? Attributes [ 0 ] ? Edit O.K. Principal name: <---- null entry here will cause an exit Alles testen Eerst moeten de Kerberos daemons gestart worden. Als de juiste wijziging in /etc/rc.conf zijn gemaakt, dan gebeurt dit automatisch na een herstart. Dit hoeft alleen ingesteld te worden op de Kerberos server. Kerberos clients vinden automatisch wat ze zoeken in de map /etc/kerberosIV. &prompt.root; kerberos & Kerberos server starting Sleep forever on error Log file is /var/log/kerberos.log Current Kerberos master key version is 1. Master key entered. BEWARE! Current Kerberos master key version is 1 Local realm: EXAMPLE.COM &prompt.root; kadmind -n & KADM Server KADM0.0A initializing Please do not use 'kill -9' to kill this job, use a regular kill instead Current Kerberos master key version is 1. Master key entered. BEWARE! Nu kunnen kan er getest worden of met het commando kinit een ticket (kaartje) gekregen kan worden voor het ID jane dat net is aangemaakt: &prompt.user; kinit jane MIT Project Athena (grunt.example.com) Kerberos Initialization for "jane" Password: Met klist kan gecontroleerd worden of de tokens er echt zijn: &prompt.user; klist Ticket file: /tmp/tkt245 Principal: jane@EXAMPLE.COM Issued Expires Principal Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COM Nu wordt het wachtwoord gewijzigd met &man.passwd.1; om te controleren of de kpasswd daemon autorisatie krijgt van de Kerberos database: &prompt.user; passwd realm EXAMPLE.COM Old password for jane: New Password for jane: Verifying password New Password for jane: Password changed. <command>su</command> rechten toewijzen Kerberos biedt mogelijkheid iedere gebruiker die rootrechten nodig heeft zijn eigen afzonderlijke &man.su.1; wachtwoord te geven. Nu wordt een ID toegevoegd dat geautoriseerd is om &man.su.1; te gebruiken naar root. Dit wordt geregeld door een instantie van root te verbinden met een principal. Met kdb_edit kan jane.root gemaakt worden in de Kerberos database: &prompt.root; kdb_edit Opening database... Enter Kerberos master key: Current Kerberos master key version is 1. Master key entered. BEWARE! Previous or default values are in [brackets] , enter return to leave the same, or new value. Principal name: jane Instance: root <Not found>, Create [y] ? y Principal: jane, Instance: root, kdc_key_ver: 1 New Password: <---- enter a SECURE password here Verifying password New Password: <---- re-enter the password here Principal's new key version = 1 Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ? Max ticket lifetime (*5 minutes) [ 255 ] ? 12 <--- Keep this short! Attributes [ 0 ] ? Edit O.K. Principal name: <---- null entry here will cause an exit Een lijst van de tokens kan bevestigen als alles werkt zoals verwacht: &prompt.root; kinit jane.root MIT Project Athena (grunt.example.com) Kerberos Initialization for "jane.root" Password: Nu dient de gebruiker toegevoegd te worden aan het bestand .klogin van root: &prompt.root; cat /root/.klogin jane.root@EXAMPLE.COM Na een &man.su.1;: &prompt.user; su Password: kan de lijst met tokens bekeken worden: &prompt.root; klist Ticket file: /tmp/tkt_root_245 Principal: jane.root@EXAMPLE.COM Issued Expires Principal May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COM Andere commando's gebruiken In een eerder voorbeeld is een principal met de naam jane gemaakt met een instantie root. Dit was gebaseerd op een gebruiker met dezelfde naam als de principal en dit is de standaard binnen Kerberos: een <principal>.<instantie> in de vorm van <gebruikersnaam>. root staat die <gebruikersnaam> het gebruik van &man.su.1; naar root toe als de benodigde instellingen in het bestand .klogin in de home directory van root zijn gemaakt: &prompt.root; cat /root/.klogin jane.root@EXAMPLE.COM Zo werkt het ook als een gebruiker in zijn eigen home directory iets als volgt heeft opgenomen: &prompt.user; cat ~/.klogin jane@EXAMPLE.COM jack@EXAMPLE.COM Hierdoor mag iedereen die zich in de wereld EXAMPLE.COM heeft geauthenticeerd als jane of jack (via kinit, zie boven) bij jane's account of de bestanden op dit systeem (grunt) met &man.rlogin.1;, &man.rsh.1; of &man.rcp.1;. Nu meldt bijvoorbeeld jane zich aan op een ander systeem met Kerberos: &prompt.user; kinit MIT Project Athena (grunt.example.com) Password: &prompt.user; rlogin grunt Last login: Mon May 1 21:14:47 from grumble Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 Of jack meldt zich aan op jane's account op dezelfde machine (jane heeft het bestand .klogin ingesteld zoals hierboven en de beheerder van Kerberos heeft een principal jack aangemaakt zonder instantie): &prompt.user; kinit &prompt.user; rlogin grunt -l jane MIT Project Athena (grunt.example.com) Password: Last login: Mon May 1 21:16:55 from grumble Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995 Tillman Hodgson Bijgedragen door Mark Murray Gebaseerd op een bijdrage van Siebrand Mazeland Vertaald door <application>Kerberos5</application> Iedere &os; release hoger dan &os;-5.1 bevat alleen ondersteuning voor Kerberos5. Daarom is Kerberos5 de enige versie die erbij zit. De instellingen zijn op veel gebieden gelijk aan die van KerberosIV. De nu volgende informatie geldt alleen voor &os;-5.0 releases en verder. Gebruikers die het KerberosIV package willen gebruiken kunnen dat installeren uit de security/krb4 port. Kerberos is een netwerkdienst, protocol en systeem waarmee gebruikers zich kunnen aanmelden met behulp van een dienst op een veilige server. Diensten als op een andere server aanmelden, op afstand kopiëren, veilig tussen systemen kopiëren en andere taken met een hoog risico worden aanmerkelijk veiliger en beter controleerbaar. Kerberos kan omschrijven worden als identiteitbevestigend proxy systeem. Het kan ook omschreven worden als een vertrouwd authenticatiesysteem van een derde partij. Kerberos vervult maar één taak: het veilig authenticeren van gebruikers op het netwerk. Het vervult geen autorisatietaken (wat gebruikers mogen) en controleert ook niets (wat gebruikers hebben gedaan). Nadat een client en server Kerberos hebben gebruikt om hun identiteit vast te stellen kunnen ze ook al hun communicatie coderen om hun privacy en data-integriteit te garanderen. Daarom wordt het sterk aangeraden om Kerberos samen met andere beveiligingsmechanismen te gebruiken die autorisatie en controlemogelijkheden bieden. De aanwijzingen die nu volgen kunnen gebruikt worden als werkinstructie om Kerberos in te stellen zoals dat wordt meegeleverd met &os;. Een complete - beschrijving staat in de handboekpagina. + beschrijving staat in de handleiding. Voor demonstratie van de installatie van Kerberos wordt gebruik gemaakt van de volgende naamgeving: Het DNS domein (zone) is example.org. De Kerberos wereld is EXAMPLE.ORG. Het advies is voor installaties van Kerberos echte domeinnamen te gebruiken, zelfs als het alleen intern wordt gebruikt. Hiermee worden DNS problemen voorkomen is een goede samenwerking met andere Kerberos werelden verzekerd. Geschiedenis Kerberos5 geschiedenis Kerberos is ontworpen door MIT als oplossing voor netwerkbeveiligingsproblemen. Het Kerberos protocol gebruikt sterke codering zodat een client zijn identiteit kan bewijzen aan een server (en andersom) over een onveilige netwerkverbinding. Kerberos is zowel de naam van een netwerkautorisatieprotocol als een bijvoeglijk naamwoord om de programma's te beschrijven die gebruik maken van het programma (zoals Kerberos telnet). De huidige versie van het protocol is versie 5 en is beschreven in RFC 1510. Er zijn een aantal vrij beschikbare implementaties van dit protocol beschikbaar voor veel systemen. Het Massachusetts Institute of Technology (MIT), waar Kerberos ooit is ontwikkeld, ontwikkelt nog steeds door aan hun Kerberos pakket. Het wordt in de VS veel gebruikt als coderingspakket en daarom wordt het ook geraakt door de exportwetgeving van de VS. Kerberos van MIT is beschikbaar als port (security/krb5). Heimdal Kerberos is een andere implementatie van versie 5 die expliciet buiten de VS is ontwikkeld om de exportwetgeving de omzeilen (en wordt daarom vaak gebruikt in niet-commerciële &unix; varianten). De Heimdal Kerberos distributie is beschikbaar als port (security/heimdal) en er zit een minimale installatie in de basisinstallatie van &os;. Om het grootst mogelijke publiek te bereiken gaan deze instructies ervan uit dat de Heimdal distributie die bij &os; zit wordt gebruikt. Opzetten van een Heimdal <acronym>KDC</acronym> Kerberos5 sleutel distributie centrum instellingen Het Sleutel Distributie Centrum (KDC, voluit Key Distribution Center) is de gecentraliseerde authenticatiedienst die Kerberos levert. Het is de computer die Kerberos tickets uitgeeft. Het KDC wordt vertrouwd door alle andere computer in de Kerberos wereld en daarom dient er een strenger beveiligingsregime op van kracht te zijn. Hoewel het draaien van de Kerberos dienst erg weinig van een systeem vraagt, wordt het wel aangeraden om een machine in te richten exclusief voor het KDC om beveiligingsredenen. Het opzetten van een KDC begint met de controle of de instellingen in /etc/rc.conf juist zijn om te functioneren als KDC (misschien moeten paden veranderd worden voor een eigen systeem): kerberos5_server_enable="YES" kadmind5_server_enable="YES" kerberos_stash="YES" is alleen beschikbaar in &os; 4.X. Daarna wordt het Kerberos instellingenbestand /etc/krb5.conf aangemaakt: [libdefaults] default_realm = EXAMPLE.ORG [realms] EXAMPLE.ORG = { kdc = kerberos.example.org admin_server = kerberos.example.org } [domain_realm] .example.org = EXAMPLE.ORG /etc/krb5.conf gaat ervan uit dat de KDC de fully-qualified hostname kerberos.example.org heeft. Als de KDC een andere hostname heeft, moet er nog een CNAME (alias) toevoegd aan de zonefile. Voor grotere netwerken met een juist ingestelde BIND DNS server kan het bovenstaande voorbeeld ingekort worden tot: [libdefaults] default_realm = EXAMPLE.ORG Door de volgende regels toe te voegen aan de zonefile voor example.org: _kerberos._udp IN SRV 01 00 88 kerberos.example.org. _kerberos._tcp IN SRV 01 00 88 kerberos.example.org. _kpasswd._udp IN SRV 01 00 464 kerberos.example.org. _kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org. _kerberos IN TXT EXAMPLE.ORG Om clients de Kerberos diensten te kunnen laten vinden, moet er een volledig ingestelde /etc/krb5.conf zijn of een minimaal ingestelde /etc/krb5.conf en een correct ingestelde DNS server. Nu wordt de Kerberos database aangemaakt. Deze database bevat de sleutels voor alle principals en zijn versleuteld met een hoofdwachtwoord. Dit wachtwoord hoeft niet onthouden te worden omdat het wordt opgeslagen in (/var/heimdal/m-key). De hoofdsleutel wordt aangemaakt door kstash te starten en een wachtwoord in te voeren. Als de hoofdsleutel is gemaakt, kan de database ingeschakeld worden met kadmin met de optie -l (die staat voor local). Deze optie geeft kadmin de opdracht om de databasebestanden direct te wijzigingen in plaats van via de kadmind netwerkdienst. Hiermee wordt het kip-ei probleem opgelost waarbij een verbinding wordt gemaakt met de database voordat hij bestaat. Op het prompt van kadmin kan met init de database met de werelden aangemaakt worden. Tenslotte, nog steeds in kadmin, kan de eerste principal gemaakt worden met add. De standaardopties voor de principal worden nu aangehouden. Deze kunnen later altijd nog gewijzigd worden met modify. Met het commando ? kunnen alle beschikbare mogelijkheden getoond worden. Hieronder een sessie waarin een voorbeelddatabase wordt aangemaakt: &prompt.root; kstash Master key: xxxxxxxx Verifying password - Master key: xxxxxxxx &prompt.root; kadmin -l kadmin> init EXAMPLE.ORG Realm max ticket life [unlimited]: kadmin> add tillman Max ticket life [unlimited]: Max renewable life [unlimited]: Attributes []: Password: xxxxxxxx Verifying password - Password: xxxxxxxx Nu kan de KDC dienst gestart worden met /etc/rc.d/kerberos start en /etc/rc.d/kadmind start. Op dit moment draait er nog geen enkele daemon die gebruik maakt van Kerberos. Bevestiging dat KDC draait is te krijgen door een ticket te vragen en dat uit te lezen voor de principal (user) die zojuist is aangemaakt vanaf de commandoregel van het KDC zelf: &prompt.user; k5init tillman tillman@EXAMPLE.ORG's Password: &prompt.user; k5list Credentials cache: FILE:/tmp/krb5cc_500 Principal: tillman@EXAMPLE.ORG Issued Expires Principal Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG <application>Kerberos</application> inschakelen op een server met Heimdal diensten Kerberos5 diensten inschakelen Als eerste is een kopie van het instellingenbestand van Kerberos nodig, /etc/krb5.conf. Dit bestand kan eenvoudigweg op een veilige manier (met netwerkprogramma's als &man.scp.1;, of fysiek via een floppy) naar de clientcomputer gekopieerd worden vanaf de KDC. Hierna is het /etc/krb5.keytab nodig. Dit is het belangrijkste verschil tussen een server die een daemons met Kerberos aanbiedt en een werkstation: de server heeft het bestand keytab nodig. Dit bestand bevat de hostsleutel van de server waardoor het werkstation en de KDC elkaars identiteit kunnen bevestigen. Dit bestand dient veilig overgebracht te worden omdat de beveiliging van de server doorbroken kan worden als de sleutel openbaar wordt gemaakt. Dit betekent expliciet dat overdracht via een protocol dat platte tekst gebruikt, bv. FTP, een slecht idee is. Meestal wordt keytab naar de server gebracht met kadmin. Dat werkt handig omdat ook de host principal (het KDC onderdeel van krb5.keytab) aangemaakt moet worden met kadmin. Let wel op dat er al een ticket moet zijn en dat dit ticket de kadmin interface moet mogen gebruiken in kadmind.acl. Zie Beheer op Afstand in de Heimdal informatiepagina's (info heimdal) voor details over het ontwerpen van toegangscontrole. Als kadmin via het netwerk geen toegang mag hebben, dan kan ook op een veilige verbinding gemaakt worden met de KDC (via het lokale console, &man.ssh.1; of Kerberos &man.telnet.1;) zodat alles lokaal uitgevoerd kan worden met kadmin -l. Na het installeren van /etc/krb5.conf kan kadmin van de Kerberos server gebruikt worden. Met add --random-key kan de host principal toegevoegd worden en met ext kan de host principal van de server naar zijn eigen keytab getrokken worden. Bijvoorbeeld: &prompt.root; kadmin kadmin> add --random-key host/myserver.example.org Max ticket life [unlimited]: Max renewable life [unlimited]: Attributes []: kadmin> ext host/myserver.example.org kadmin> exit Let op: ext slaat de sleutel standaard op in /etc/krb5.keytab. Als kadmind niet beschikbaar is op de KDC (wellicht om beveiligingsredenen) en er via het netwerk dus geen toegang is tot kadmin, dan kan de host principal (host/myserver.EXAMPLE.ORG) ook direct aan de KDC toegevoegd worden en daarna in een tijdelijk bestand gezet worden. Het volgende kan gebruikt worden om te voorkomen dat /etc/krb5.keytab op de KDC) wordt overschreven: &prompt.root; kadmin kadmin> ext --keytab=/tmp/example.keytab host/myserver.example.org kadmin> exit Hierna kan de keytab veilig gekopieerd worden naar de server (met scp of een floppy). Geef een niet-standaard naam op voor de keytab om te voorkomen dat de keytab op de KDC wordt overschreven. Nu kan de server communiceren met de KDC (vanweg krb5.conf) en zijn identiteit bewijzen (vanwege krb5.keytab). Nu is de server klaar om er een aantal Kerberos diensten op te activeren. In dit voorbeeld wordt de dienst telnet geactiveerd door de volgende regel in /etc/inetd.conf te zetten en dan &man.inetd.8; te herstarten met /etc/rc.d/inetd restart: telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a user Het belangrijkste is dat de typering -a (van authenticatie) op user staat. Meer details zijn in &man.telnetd.8; te vinden. <application>Kerberos</application> activeren op een client met Heimdal Kerberos5 clientinstellingen Het opzetten van een clientcomputer is eigenlijk kinderlijk eenvoudig. Wat betreft de Kerberos instelling is alleen het Kerberos instellingenbestand (/etc/krb5.conf) nodig. Dat kan eenvoudigweg naar de clientcomputer gekopieerd worden vanaf de KDC. Test de client met kinit, klist en kdestroy vanaf de client om een ticket te krijgen, te bekijken en daarna te verwijderen voor de principal die hierboven is aangemaakt. Nu moeten ook Kerberos applicaties gebruikt kunnen worden om verbindingen te maken met servers waarop Kerberos is geactiveerd. Als dat niet lukt en het verkrijgen van een ticket is wel mogelijk, dan ligt dat hoogstwaarschijnlijk aan de server en niet aan de client of de KDC. Bij het testen van een applicatie als telnet kan het beste een pakketsnuffelaar (bv. &man.tcpdump.1;) gebruikt worden om te bevestigen dat een wachtwoord niet als tekst wordt verzonden. Gebruik telnet met de optie -x. Dan wordt de complete datastroom versleuteld (vergelijkbaar met ssh). De Kerberos sleutelapplicaties op de client (meestal kinit, klist, kdestroy en kpasswd) zitten in de basisinstallatie van &os;. Let wel dat ze in &os; versies van voor 5.0 hernoemd zijn naar k5init, k5list, k5destroy, k5passwd en k5stash (deze commando's worden gewoonlijk maar een keer gebruikt). Er worden standaard ook andere Kerberos applicaties op de client geïnstalleerd. Hier komt de minimalistische natuur van de Heimdal basisinstallatie boven drijven: telnet is de enige dienst waarvoor Kerberos geactiveerd is. De Heimdal port voegt een aantal missende clientapplicaties toe: versies met ondersteuning voor Kerberos van ftp, rsh, rcp, rlogin en een paar minder gebruikelijke programma's. De MIT port bevat ook een volledig gamma aan Kerberos clientapplicaties. Instellingenbestanden voor gebruikers: <filename>.k5login</filename> en <filename>.k5users</filename> .k5login .k5users Voor gebruikers binnen een wereld wijst hun Kerberos principal (bv. tillman@EXAMPLE.ORG) gewoonlijk naar een lokale gebruikeraccount (bijvoorbeeld een lokale account met de naam tillman). Voor clientapplicaties als telnet is gewoonlijk geen gebruikersnaam of principal nodig. Soms moet iemand zonder bijpassende Kerberos principal toch toegang hebben tot een lokale gebruikersaccount. tillman@EXAMPLE.ORG zou bijvoorbeeld toegang nodig kunnen hebben tot de lokale gebruikersaccount webdevelopers. Andere principals zouden die toegang wellicht ook nodig kunnen hebben. De bestanden .k5login en .k5users uit de gebruikersmap kunnen op eenzelfde manier gebruikt worden als .hosts en .rhosts. Zo wordt het voorgaande probleem opgelost. Als bijvoorbeeld een .k5login met de volgende inhoud: tillman@example.org jdoe@example.org in de thuismap van de lokale gebruiker webdevelopers gezet wordt dan zouden beide principals toegang hebben tot die account zonder dat ze een wachtwoord hoeven te delen. - We raden aan de handboekpagina's voor deze commando's - te lezen. Let op dat de ksu handboekpagina + We raden aan de handleidingen voor deze commando's + te lezen. Let op dat de ksu handleiding .k5users behandelt. <application>Kerberos</application> tips, trucs en problemen oplossen Kerberos5 problemen oplossen Als de Heimdal of MIT Kerberos port wordt gebruikt dan dient de PATH omgevingsvariabele de Kerberos versies van de clientapplicaties te tonen voor de systeemversies. Hebben alle computers in de wereld hun tijd gesynchroniseerd? Als dat niet zo is, dan slaagt de authenticatie wellicht niet. beschrijft hoe klokken met NTP gesynchroniseerd kunnen worden. MIT en Heimdal werken prima samen. Dit geldt niet voor kadmin omdat daarvoor geen protocolstandaard is. Als een hostnaam wordt gewijzigd, dan moet ook de host/ principal aangepast en de keytab. Dit geldt ook voor bijzondere instellingen in de keytab zoals de www/ principal voor www/mod_auth_kerb van Apache. Alle hosts in een wereld moeten oplosbaar (resolvable) zijn (zowel vooruit als achteruit) in de DNS (of tenminste in /etc/hosts). CNAMEs werken wel, maar de A en PTR records moeten juist en actief zijn. De foutmelding is niet erg duidelijk: Kerberos5 refuses authentication because Read req failed: Key table entry not found. Sommige besturingssystemen van clients voor een KDC zetten wellicht geen setuid root voor ksu. Dit betekent dat ksu niet werkt. Dat is vanuit beveiligingsoogpunt een prima idee, maar wel lastig. Dit is dus geen KDC fout. Als met MIT Kerberos een principal een ticket moet krijgen dat langer geldig is dan de standaard van tien uur, dan moet modify_principal in kadmin gebruikt worden om de maximale geldigheidsduur (maxlife) van zowel de principal waar het om gaat als de krbtgt principal aan te passen. Dan kan de principal kinit -l gebruiken om een ticket met een langere levensduur aan te vragen. Als een pakketsnuffelaar op de KDC draait bij om te helpen bij het oplossen van problemen en dan kinit vanaf een werkstation wordt gestart, dan wordt zichtbaar dat de TGT meteen wordt verstuurd als kinit start, zelfs nog voor het wachtwoord! De reden hiervoor is dat de Kerberos server vrijelijk een TGT (Ticket Granting Ticket) verstuurt op iedere niet geautoriseerd verzoek. Maar iedere TGT is versleuteld met een sleutel die is afgeleid van het wachtwoord van de gebruiker. Als een gebruiker zijn wachtwoord ingeeft, wordt dat dus niet naar de KDC gezonden, maar ontcijfert het de TGT die kinit al heeft ontvangen. Als de ontcijfering resulteert in een geldige ticket met een geldige tijdstempel, dan heeft de gebruiker geldige Kerberos rechten. Deze rechten bevatten ook een sessiesleutel voor het opzetten van beveiligde communicatie met de Kerberos server in de toekomst en de eigenlijke ticket-granting ticket, die is versleuteld met de sleutel van de Kerberos server zelf. Deze tweede laag van versleuteling is niet bekend voor de gebruiker, maar het stelt de Kerberos server in staat om de juistheid van iedere TGT te bevestigen. Als tickets worden gebruik die lang geldig zijn (bv. een week) en OpenSSH wordt gebruikt om een verbinding te maken met de machine waarop het ticket staat, zorg er dan voor dat de Kerberos optie op no staat in sshd_config want anders worden tickets verwijderd bij afmelden. Host principals kunnen ook een langere levensduur hebben. Als een gebruikers principal een levensduur van een week heeft, maar de host waar de verbinding mee gemaakt wordt heeft een levensduur van negen uur, dan heb staat er een verlopen host principal in de cache en dan werkt e.e.a. niet zoals verwacht. Een krb5.dict bestand om het gebruik van bepaalde slechte wachtwoorden te voorkomen - (dit wordt kort behandeld in de handboekpagina voor + (dit wordt kort behandeld in de handleiding voor kadmind) heeft alleen betrekking op principals waar een wachtwoordbeleid voor geldt. De opmaak van krb5.dict is eenvoudig: een rij tekens per regel. Een symbolic link maken naar /usr/share/dict/words is misschien handig. Verschillen met de <acronym>MIT</acronym> port Het belangrijkste verschil tussen de MIT en Heimdal installatie heeft betrekking op kadmin, dat een andere (maar gelijkwaardige) set commando's kent en een andere protocol gebruikt. Dit betekent nogal wat als een KDC MIT is, omdat dan de kadmin van Heimdal niet gebruikt kan worden om de KDC vanaf afstand te beheren (dat geldt trouwens ook vice versa). De clientapplicaties kunnen ook commandoregelopties gebruiken die een beetje verschillen, maar waarmee wel hetzelfde wordt bereikt. We raden aan de instructies op de MIT Kerberos website () te volgen. Wees voorzichtig met paden: de MIT port installeert standaard in /usr/local/ en dus kunnen de normale systeemapplicaties gestart worden in plaats van die van MIT als de PATH omgevingsvariabele de systeemmappen als eerste weergeeft. Als de MIT security/krb5 port die bij &os; zit wordt gebruikt, dan zorgt het lezen van /usr/local/share/doc/krb5/README.FreeBSD dat bij de port wordt geïnstalleerd voor een beter begrip over waarom het aanmelden via telnetd en klogind soms wat vreemd verloopt. Als belangrijkste wijzen we erop dat het bij het corrigeren van onjuiste rechten op het cachebestand noodzakelijk is dat het binaire bestand login.krb5 wordt gebruikt voor authenticatie zodat het op de juiste wijze eigenaarschap kan wijzigen voor de doorgegeven rechten. Beperkingen in <application>Kerberos</application> Kerberos5 beperkingen en tekortkomingen <application>Kerberos</application> is een alles of niets aanpak Iedere ingeschakelde dienst op het netwerk moet aangepast worden om met Kerberos te werken (of op een andere manier beschermd zijn tegen netwerkaanvallen), want anders kunnen gebruikersrechten worden gestolen en hergebruikt. Een voorbeeld hier van is het inschakelen van Kerberos voor alle shells op afstand (via rsh en telnet bijvoorbeeld), maar de POP3 mailserver die wachtwoorden als platte tekst verzend ongemoeid laten. <application>Kerberos</application> is bedoeld voor werkstations met een gebruiker In een multi-user omgeving is Kerberos minder veilig. Dit komt doordat de tickets worden opgeslagen in de map /tmp, waar gelezen kan worden door alle gebruikers. Als een gebruiker een computer deelt met andere gebruikers op hetzelfde moment (dus multi-user), dan is het mogelijk dat een ticket van een gebruiker wordt gestolen (gekopieerd) door een andere gebruiker. Dit kan voorkomen worden met de commandoregeloptie -c bestandsnaam of (bij voorkeur) de omgevingsvariabele KRB5CCNAME, maar dat wordt zelden gedaan. In principe kan het opslaan van een ticket in de thuismap van een gebruiker in combinatie met eenvoudige bestandsrechten dit probleem verhelpen. De KDC is een single point of failure Zoals het is ontworpen, moet de KDC zo goed mogelijk beveiligd zijn, omdat de hoofd wachtwoorddatabase erop staat. De KDC hoort geen enkele andere dienst aan te bieden en moet ook fysiek afgeschermd worden. Het gevaar is groot, omdat Kerberos alle wachtwoorden versleutelt met dezelfde sleutel (de master sleutel) die als een bestand op de KDC staat. Toch is een gecompromitteerde master sleutel niet zo'n groot probleem als wellicht wordt verondersteld. De mastersleutel wordt alleen gebruikt om de Kerberos database te versleutelen en als zaad voor de generator van willekeurige nummers. Zo lang als de toegang tot de KDC is beveiligd, kan een aanvaller niet echt iets doen met de mastersleutel. Als de KDC niet beschikbaar is (misschien door een ontzeggen van dienst aanval of netwerkproblemen) kunnen de netwerkdiensten niet gebruikt worden omdat er geen authenticatie uitgevoerd kan worden; een recept voor een ontzeggen van dienst aanval. Dit risico kan omzeild worden door meerdere KDC's (één master en één of meer slaves) en een zorgvuldige implementatie van secundaire of fall-back authenticatie. PAM is hier uitermate geschikt voor. Tekortkomingen van <application>Kerberos</application> Kerberos stelt gebruikers, hosts en diensten in staat om elkaar te authenticeren. Maar het heeft geen mechanisme om de KDC te authenticeren aan de gebruikers, hosts of diensten. Dit betekent dat bijvoorbeeld een vervalste kinit alle gebruikersnamen en wachtwoorden zou kunnen afluisteren. Iets als security/tripwire of andere controle-instrumenten voor de integriteit van bestandssystemen kunnen hier verlichting brengen. Bronnen en verdere informatie Kerberos5 externe bronnen De Kerberos FAQ (Engels) Een Authenticatiesysteem Ontwerpen: een Dialoog in Vier Scenes (Engels) RFC 1510, De Kerberos Netwerk Authenticatie Dienst (V5) (Engels) MIT Kerberos homepage Heimdal Kerberos homepage Tom Rhodes Geschreven door Siebrand Mazeland Vertaald door OpenSSL beveiliging OpenSSL OpenSSL Een toepassing die bij &os; zit die veel gebruikers over het hoofd zien is OpenSSL. OpenSSL biedt een versleutelde transportlaag bovenop de normale communicatielaag. Daardoor biedt het de mogelijkheid met veel netwerktoepassingen en diensten verweven te raken. Een aantal toepassingen van OpenSSL zijn versleutelde authenticatie van mailclients, webgebaseerde transacties als creditcardbetalingen en nog veel meer. Veel ports zoals www/apache13-ssl en mail/sylpheed-claws bieden tijdens het compileren ondersteuning om OpenSSL in te bouwen. In de meeste gevallen zal de Portscollectie proberen de port security/openssl te bouwen, tenzij de make variabele WITH_OPENSSL_BASE expliciet naar yes is gezet. De versie van OpenSSL die bij &os; zit ondersteunt Secure Sockets Layer v2/v3 (SSLv2/SSLv3), Transport Layer Security v1 (TLSv1) netwerk beveiligingsprotocollen en kan gebruikt worden als generieke versleutelingsbibliotheek. Hoewel OpenSSL ondersteuning biedt voor het IDEA algoritme, is dat standaard uitgeschakeld in verband met patenten in de VS. Om het te gebruiken dient de licentie gelezen te worden en, als de restricties aanvaardbaar zijn, dient de make variabele MAKE_IDEA ingesteld te worden in make.conf. Een van de meest gebruikte toepassingen van OpenSSL is het leveren van certificaten voor gebruik met softwaretoepassingen. Deze certificaten verzekeren dat de eigenschappen van een bedrijf of individu geldig zijn en niet vervalst. Als het certificaat in kwestie niet geldig verklaard is door een van de Certificate Authorities of CA's, dan komt er een waarschuwing. Een Certificate Authority is een bedrijf, zoals VeriSign, dat certificaten ondertekent zodat de eigenschappen van een bedrijf of individu geldig verklaard kunnen worden. Dit proces kost geld en het is zeker geen voorwaarde voor het gebruik van certificaten. Het stelt wel de meer paranoïde gebruikers gerust. Certificaten maken OpenSSL certificaten maken Voor het maken van certificaten is het volgende commando beschikbaar: &prompt.root; openssl req -new -nodes -out req.pem -keyout cert.pem Generating a 1024 bit RSA private key ................ ....................................... writing new private key to 'cert.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:PA Locality Name (eg, city) []:Pittsburgh Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company Organizational Unit Name (eg, section) []:Systems Administrator Common Name (eg, YOUR name) []:localhost.example.org Email Address []:trhodes@FreeBSD.org Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:SOME PASSWORD An optional company name []:Another Name Let op dat het antwoord direct na Common Name een domeinnaam weergeeft. De prompt wil dat er een servernaam wordt ingegeven voor het verificatieproces. Het plaatsen van iets anders dan een domeinnaam zorgt ervoor dat het certificaat waardeloos wordt. Er zijn ook andere opties als verloopdatum, andere versleutelingsalgoritmen, etc, beschikbaar. Een volledige - lijst is na te lezen in de handboekpagina van + lijst is na te lezen in de handleiding van &man.openssl.1;. Er horen nu twee bestanden te staan in de map waarin het voorgaande commando is uitgevoerd. Het certificaatverzoek, req.pem, kan naar een certificate authority gestuurd worden die de bijgevoegde gegevens kan valideren, het verzoek kan tekenen en het certificaat kan retourneren. Het tweede bestand heet cert.pem en is de geheime sleutel voor het certificaat. Deze dient zorgvuldig beschermd te worden. Als de geheime sleutel in de handen van anderen valt kan die gebruikt worden om de identiteit van de eigenaar (of server) aan te nemen. In gevallen waar ondertekening door een CA niet vereist is, kan een zelfondertekend certificaat gemaakt worden. Maak als eerste de RSA sleutel: &prompt.root; openssl dsaparam -rand -genkey -out myRSA.key 1024 Hierna kan de CA sleutel gemaakt worden: &prompt.root; openssl gendsa -des3 -out myca.key myRSA.key Deze sleutel kan gebruikt worden om een certificaat te maken: &prompt.root; openssl req -new -x509 -days 365 -key myca.key -out new.crt Er zouden nu twee bestanden bijgekomen moeten zijn in de map: een certificate authority ondertekeningsbestand myca.key en new.crt, het certificaat zelf. Deze moeten in een map geplaatst worden, bij voorkeur onder /etc waar alleen root kan lezen. De rechten 0700 zijn hier prima en die kunnen ingesteld worden met chmod. Certificaten gebruiken: een voorbeeld En wat kunnen deze bestanden? Een prima toepassing zou het versleutelen van verbindingen naar de Sendmail MTA kunnen zijn. Daardoor zouden gebruikers niet langer platte tekst hoeven te authenticeren om mail te sturen via de lokale MTA. Dit is niet de best denkbare toepassing omdat sommige MUA's de gebruiker een foutmelding geven als ze het certificaat niet lokaal geïnstalleerd hebben. De documentatie bij de software geeft meer informatie over het installeren van certificaten. De volgende regels moeten opgenomen worden in het lokale .mc bestand: dnl SSL Options define(`confCACERT_PATH',`/etc/certs')dnl define(`confCACERT',`/etc/certs/new.crt')dnl define(`confSERVER_CERT',`/etc/certs/new.crt')dnl define(`confSERVER_KEY',`/etc/certs/myca.key')dnl define(`confTLS_SRV_OPTIONS', `V')dnl /etc/certs/ is de map die gebruikt wordt voor het lokaal opslaan van certificaten en sleutels. De laatste voorwaarde het is opnieuw aanmaken van het lokale .cf bestand. Dit gaat door eenvoudigweg make< install te typen in de map /etc/mail. Laat dat volgen door een make restart waardoor de Sendmail daemon herstart zou moeten worden. Als alles goed is gegaan, dan staan er geen foutmeldingen /var/log/maillog en is Sendmail zichtbaar in de proceslijst. Maak als eenvoudige test een verbinding met de mailserver met &man.telnet.1;: &prompt.root; telnet example.com 25 Trying 192.0.34.166... Connected to example.com. Escape character is '^]'. 220 example.com ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT) ehlo example.com 250-example.com Hello example.com [192.0.34.166], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-STARTTLS 250-DELIVERBY 250 HELP quit 221 2.0.0 example.com closing connection Connection closed by foreign host. Als de regel STARTTLS verschijnt in de uitvoer dan werkt alles correct. Nik Clayton
nik@FreeBSD.org
Gerschreven door
Siebrand Mazeland Vertaald door
IPsec VPN via IPsec Een VPN opzetten met &os; gateways tussen twee netwerken die gescheiden zijn door internet. Hiten M. Pandya
hmp@FreeBSD.org
Geschreven door
Siebrand Mazeland Vertaald door
IPsec begrijpen Deze paragraaf is een gids in het proces van het opzetten, en gebruiken van IPsec en het veilig laten communiceren van machines in een omgeving die bestaat uit &os; en µsoft.windows; 2000/XP. Voordat IPsec opgezet kan worden dient de lezer bekend te zijn met de concepten die nodig zijn om een aangepaste kernel te bouwen (zie ). IPsec is een protocol dat bovenop de Internet Protocol (IP) laag ligt. Hiermee kunnen twee of meer host op een veilige manier communiceren (vandaar de naam). De &os; IPsec netwerk wachtrij (stack) is gebaseerd op de KAME implementatie, die zowel de IPv4 als de IPv6 protocolfamilies ondersteunt. &os; 5.X bevat een door hardware geaccelereerde IPsec wachtrij die Fast IPsec heet en uit OpenBSD komt. Die kan gebruik maken van cryptografische hardware (waar mogelijk) via het &man.crypto.4; subsysteem om de prestaties van IPsec te optimaliseren. Dit subsysteem is nieuw en ondersteunt niet alle opties die beschikbaar zijn in de KAME versie van IPsec. Voordat er gebruik gemaakt kan worden van door hardware versnelde IPsec, moet de volgende optie in het kernelinstellingenbestand worden gezet: kernelopties FAST_IPSEC options FAST_IPSEC # new IPsec (cannot define w/ IPSEC) Het is op dit moment niet mogelijk om het Fast IPsec subsysteem samen met de KAME-implementatie van IPsec te gebruiken. Zie &man.fast.ipsec.4; voor meer informatie. IPsec ESP IPsec AH IPsec bestaat uit twee subprotocollen: Encapsulated Security Payload (ESP) beschermt de IP pakketdata tegen inmenging door een derde partij door de inhoud te versleutelen met symmetrische versleutelingsalgoritmen (als Blowfish en 3DES). Authentication Header (AH) beschermt de IP pakketkop tegen inmenging door een derde partij en spoofing door een cryptografische checksum te berekenen en de IP pakketkopvelden te hashen met een veilige hashfunctie. Hierna wordt een extra kop ingevoegd die de hash bevat zodat de informatie in het pakket geauthenticeerd kan worden. ESP en AH kunnen samen of apart gebruikt worden, afhankelijk van de omgeving. VPN virtual private network VPN virtueel privaat netwerk VPN IPsec kan gebruikt worden om het verkeer tussen twee hosts direct te versleutelen (dat heet Transport Mode) of door virtuele tunnels te bouwen tussen twee subnetten die gebruikt kunnen worden voor veilige communicatie tussen twee bedrijfsnetwerken (dat heet Tunnel Mode). De laatste versie staat beter bekend als Virtual Private Network (VPN). In &man.ipsec.4; staat gedetailleerde informatie over het IPsec subsysteem in &os;. Voor ondersteuning voor IPsec in de kernel zijn de volgende opties nodig in het kernelinstellingenbestand: kernelopties IPSEC kernelopties IPSEC_ESP options IPSEC #IP security options IPSEC_ESP #IP security (crypto; define w/ IPSEC) kernelopties IPSEC_DEBUG Als er ook fouten in IPsec (debugging) verwijderd moeten kunnen worden, dan is de volgende optie ook nodig: options IPSEC_DEBUG #debug for IP security
Het probleem Er bestaat geen standaard voor wat een VPN is. VPN's kunnen opgezet worden met behulp van een aantal verschillende technologieën die allemaal hun eigen voor- en nadelen hebben. Dit onderdeel bevat een scenario en de strategieën die gebruikt kunnen worden voor het implementeren van een VPN in iedere situatie. Het scenario: twee netwerken die één moeten lijken en via internet verbonden zijn VPN maken Dit is het uitgangspunt: Er zijn tenminste twee locaties Beide locaties gebruiken IP Beide locaties hebben een internetverbinding via een gateway waarop &os; draait. De gateway op ieder netwerk heeft tenminste één publiek IP adres. De interne adressen van de twee netwerken mogen publieke of private IP adressen zijn, dat maakt niet uit. Er mag NAT draaien op de gateway als dat nodig is. De interne IP adressen van de twee netwerken mogen niet conflicteren. Hoewel dit in theorie mogelijk is een combinatie van VPN en NAT te gebruiken om dit te laten werken, wordt het vast een drama om dit in te stellen. Als de twee netwerken die met elkaar verbonden moeten worden intern dezelfde private IP adresreeksen gebruiken (beiden gebruiken bijvoorbeeld 192.168.1.x), dan moet een van de netwerken hernummerd worden. De netwerk topologie zou er zo uit kunnen zien: Netwerk #1 [ Interne Hosts ] Privaat Net, 192.168.1.2-254 [ Win9x/NT/2K ] [ UNIX ] | | .---[fxp1]---. Privaat IP, 192.168.1.1 | FreeBSD | `---[fxp0]---' Publiek IP, A.B.C.D | | -=-=- Internet -=-=- | | .---[fxp0]---. Publiek IP, W.X.Y.Z | FreeBSD | `---[fxp1]---' Privaat IP, 192.168.2.1 | | Netwerk #2 [ Internal Hosts ] [ Win9x/NT/2K ] Privaat Net, 192.168.2.2-254 [ UNIX ] Let op de twee publieke IP adressen. In de rest van dit onderdeel worden de letters gebruikt om ze aan te duiden. Overal waar die letters staan, kunnen ze vervangen worden door eigen publieke IP adressen. Zo hebben ook de twee gateway machines intern .1 IP adressen en de twee netwerken hebben andere IP adressen (respectievelijk 192.168.1.x en 192.168.2.x). Alle machines op de private netwerken zijn zo ingesteld dat ze de .1 machine als hun standaard gateway gebruiken. Het is de bedoeling dat, vanuit het netwerkstandpunt, ieder netwerk de machines in het andere netwerk kan zien alsof ze beiden aan dezelfde router zouden zitten; wel een router die een beetje langzaam is en af een toe een pakketje laat vallen. Dit betekent dat (bijvoorbeeld) op machine 192.168.1.20: ping 192.168.2.34 uitgevoerd kan worden en dat werkt, transparant. µsoft.windows; machines moeten het andere netwerk kunnen zien, gedeelde bestanden kunnen benaderen, enzovoort, op dezelfde manier als ze dat kunnen op het lokale netwerk. En dat alles moet veilig zijn. Dat betekent dat verkeer tussen de twee netwerken versleuteld moet zijn. Het opzetten van een VPN tussen twee netwerken is een proces dat uit meerdere stappen bestaat: Het maken van een virtuele netwerkverbinding tussen de twee netwerken over het internet. Testen met gereedschappen als &man.ping.8; om te bevestigen dat het werkt. Het instellen van beveiligingsbeleid om te verzekeren dat het verkeer tussen de twee netwerken transparant wordt versleuteld en ontsleuteld wanneer dat nodig is. Testen met gereedschappen als &man.tcpdump.1; om te bevestigen dat het werkt. Additionele software instellen op de &os; gateways om µsoft.windows; machines de andere kant van het VPN te laten zien. Stap 1: de <quote>virtuele</quote> netwerkverbinding maken en testen Stel dat een gebruiker is aangemeld op de gatewaymachine in netwerk #1 (met publiek IP adres A.B.C.D en privaat IP adres 192.168.1.1) en de voert ping 192.168.2.1 uit, naar het private adres van de machine met IP adres W.X.Y.Z. Wat moet er gebeuren om dat te laten werken? De gateway host moet weten hoe hij 192.168.2.1 kan bereiken. Met andere woorden: hij moet een route hebben naar 192.168.2.1. Private IP adressen als de reeks 192.168.x horen in het algemeen niet thuis op internet. Ieder pakket naar 192.168.2.1 moet dus ingepakt worden in een ander pakket. Dit pakket moet afkomstig lijken van A.B.C.D en moet naar W.X.Y.Z verstuurd worden. Dit proces heet inkapseling (encapsulation). Als dit pakket aankomt bij W.X.Y.Z dan moet het uitgekapseld (unencapsulated) worden en afgeleverd worden aan 192.168.2.1. Dit is alsof er een tunnel moet bestaan tussen de twee netwerken. De twee tunnelopeningen zijn de IP adressen A.B.C.D en W.X.Y.Z en de tunnel moet op de hoogte zijn van de private IP adressen die door de tunnel mogen. De tunnel wordt gebruikt om verkeer met private IP adressen over het internet te leiden. Deze tunnel wordt gemaakt door gebruik te maken van de generieke interface of gif apparaten op &os;. De gif interface moet op iedere gatewaymachine ingesteld zijn met vier IP adressen: twee voor de publieke IP adressen en twee voor de private IP adressen. Ondersteuning voor het gif apparaat moet in de &os; kernel van beide machine gecompileerd worden. Dit kan door de volgende optie toe te voegen aan de kernelinstellingenbestanden op beide machines, dan de kernel te compileren, te installeren en dan gewoon te herstarten: device gif Het instellen van de tunnel gaat in twee stappen. Eerst moet de tunnel verteld worden wat de IP adressen aan de buitenkant (publiek) zijn met &man.gifconfig.8;. Daarna moeten de private IP adressen ingesteld worden met &man.ifconfig.8;. In &os; 5.X is de functionaliteit van &man.gifconfig.8; opgenomen in &man.ifconfig.8;. Op de gatewaymachine op netwerk #1 moeten de volgende commando's uitgevoerd worden om te tunnel in te stellen. gifconfig gif0 A.B.C.D W.X.Y.Z ifconfig gif0 inet 192.168.1.1 192.168.2.1 netmask 0xffffffff Op de andere gatewaymachine moeten dezelfde commando's uitgevoerd worden met omgedraaide IP adressen. gifconfig gif0 W.X.Y.Z A.B.C.D ifconfig gif0 inet 192.168.2.1 192.168.1.1 netmask 0xffffffff Daarna toont: gifconfig gif0 de instellingen. Op netwerk #1 zou dat het volgende zijn: &prompt.root; gifconfig gif0 gif0: flags=8011<UP,POINTTOPOINT,MULTICAST> mtu 1280 inet 192.168.1.1 --> 192.168.2.1 netmask 0xffffffff physical address inet A.B.C.D --> W.X.Y.Z Er is nu een tunnel gemaakt tussen de fysieke adressen A.B.C.D en W.X.Y.Z en het verkeer dat door de tunnel mag is dat tussen 192.168.1.1 en 192.168.2.1. Hiermee is ook een regel gemaakt in de routetabel op beide machines die te bekijken zijn met netstat -rn. Deze uitvoer komt van de gatewayhost op netwerk #1. &prompt.root; netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Netif Expire ... 192.168.2.1 192.168.1.1 UH 0 0 gif0 ... De Flags waarde geeft aan dat dit een hostroute is, wat betekent dat iedere gateway weet hoe hij de andere gateway kan bereiken, maar dat ze niet weten hoe ze bij de rest van elkaars netwerk kunnen komen. Dat probleem wordt snel opgelost. Het is waarschijnlijk dat op beide machines een firewall draait. Die moet omzeild worden voor VPN verkeer. Het is mogelijk al het verkeer tussen de beide netwerken toestaan of firewallregels toe te voegen waarmee de beide netwerken die het VPN met elkaar verbindt tegen elkaar beschermd worden. Het testen wordt een stuk eenvoudiger als de firewall zo is ingesteld dat al het verkeer door het VPN wordt doorgelaten. Laten kunnen nog restricties toegevoegd worden. Met &man.ipfw.8; wordt met ipfw add 1 allow ip from any to any via gif0 al het verkeer tussen de twee eindstations van het VPN toegestaan zonder dat dit de andere regels van de firewall beïnvloedt. Dit commando moet natuurlijk wel op beide gatewayhosts uitgevoerd worden. Deze instelling is toereikend om elke gateway machine het recht te geven de ander te pingen. Op 192.168.1.1 kan nu: ping 192.168.2.1 gedraaid worden en moet een antwoord komen. Op de andere machine kan dezelfde test gedaan worden. Maar nu zijn de andere machines op het interne netwerk nog niet te bereiken. Dat komt door de routering: hoewel de gateway machines elkaar nu weten te vinden, weten ze nog niet hoe ze het netwerk achter elkaar kunnen bereiken. Om dat probleem op te lossen moet een statische route worden toevoegd op iedere gateway machine. Het commando daarvoor is: route add 192.168.2.0 192.168.2.1 netmask 0xffffff00 Dit betekent: om hosts op het netwerk 192.168.2.0 te bereiken moeten pakketten naar de host 192.168.2.1 sturen. Een zelfde dient op de andere gateway uitgevoerd te worden, maar dan met de 192.168.1.x adressen. IP verkeer van hosts op het ene netwerk kan nu hosts op het andere netwerk bereiken. Hiermee is tweederde van het VPN tussen twee netwerken aangelegd in de zin dat het virtueel is en er een netwerk is. Maar het is nog niet privaat. Dit wordt aangetoond met &man.ping.8; en &man.tcpdump.1;. Voer op de gateway host het volgende commando uit:/para> tcpdump dst host 192.168.2.1 Voer vanuit een andere sessie op de host het onderstaande commando uit: ping 192.168.2.1 De uitvoer is ongeveer als volgt: 16:10:24.018080 192.168.1.1 > 192.168.2.1: icmp: echo request 16:10:24.018109 192.168.1.1 > 192.168.2.1: icmp: echo reply 16:10:25.018814 192.168.1.1 > 192.168.2.1: icmp: echo request 16:10:25.018847 192.168.1.1 > 192.168.2.1: icmp: echo reply 16:10:26.028896 192.168.1.1 > 192.168.2.1: icmp: echo request 16:10:26.029112 192.168.1.1 > 192.168.2.1: icmp: echo reply Het is zichtbaar dat de ICMP berichten niet versleuteld heen en weer gaan. Als met &man.tcpdump.1; de parameter was gebruikt om meer bytes te tonen uit de pakketten, dan was meer informatie te zien geweest. Dit is natuurlijk onacceptabel. In de volgende paragraaf gaat het dan ook over het beveiligen van de verbinding tussen de twee netwerken zodat al het verkeer automatisch wordt versleuteld. Samenvatting: Stel voor beide kernels het pseudo-device gif in. Wijzig /etc/rc.conf op gateway host #1 en voeg de volgende regels toe (wijzig IP adressen naar wens). gifconfig_gif0="A.B.C.D W.X.Y.Z" ifconfig_gif0="inet 192.168.1.1 192.168.2.1 netmask 0xffffffff" static_routes="vpn" route_vpn="192.168.2.0 192.168.2.1 netmask 0xffffff00" Wijzig het firewallscript (/etc/rc.firewall of iets dergelijks) op beide hosts en voeg het volgende toe: ipfw add 1 allow ip from any to any via gif0 Maak gelijksoortige wijzigingen in /etc/rc.conf op gateway host #2 en draai de volgorde van de IP adressen om. Stap 2: de verbinding beveiligen Om de verbinding te beveiligen wordt IPsec gebruikt. IPsec biedt een mechanisme waarmee twee hosts samen een sleutel hebben en die sleutel dan gebruiken om gegevens te versleutelen tussen die twee hosts. Hiervoor moet op twee plaatsen een aanpassing gemaakt worden in de instellingen. Er moet een mechanisme zijn voor de twee hosts om het eens te worden over het versleutelingsmechanisme dat gebruikt gaat worden. Als de twee hosts het daar over eens zijn, dan hebben ze een zogenaamde beveiligingssamenwerking (security association). Er moet een mechanisme zijn waarmee wordt aangegeven welk verkeer versleuteld moet worden. Tenslotte moet niet al het uitgaande verkeer versleuteld worden, maar alleen het verkeer dat onderdeel is van het VPN. De regels die worden opgesteld om te bepalen welke verkeer versleuteld wordt heten beveiligingsbeleid (security policies). Beveiligingssamenwerking en beveiligingsbeleid worden beiden onderhouden door de kernel en kunnen aangepast worden met programma's in userland. Maar voor dit mogelijk is, moet de kernel geschikt gemaakt worden voor ondersteuning van IPsec en het Encapsulated Security Payload (ESP) protocol. Dit kan door de volgende regel op te nemen in het kernelinstellingenbestand: kernel options IPSEC options IPSEC options IPSEC_ESP Daarna dienen hercompilatie en installatie van de kernel plaats te vinden en moet de machine gereboot worden. Dit moet voor beide gateway hosts uitgevoerd worden. IKE Het is mogelijk twee wegen te bewandelen voor het opzetten van beveiligingssamenwerking. Als het met de hand wordt opgezet dan moeten een versleutelingsalgoritme, coderingssleutels, enzovoort gekozen worden. Er kan ook een daemons gebruikt worden die het Internet Key Exchange protocol (IKE) implementeert om dit uit te voeren. Het advies is voor het laatste te kiezen. Los van andere overwegingen is het makkelijker in te stellen. IPsec security policies setkey Voor het wijzigen en weergeven van het beveiligingsbeleid is er &man.setkey.8;. Ter vergelijking: setkey is voor het beveiligingsbeleid van de kernel wat &man.route.8; is voor de routetabellen van de kernel. setkey kan ook de huidige beveiligingssamenwerkingen weergeven en om de vergelijking door te zetten is het in die zin verwant aan netstat -r. Er zijn een aantal daemons beschikbaar voor het bijhouden van beveiligingssamenwerking in &os;. In dit artikel wordt beschreven hoe dat met racoon gaat. racoon is in de &os; Portscollectie beschikbaar vanuit security/ipsec-tools. racoon Racoon moet draaien op beide gateway hosts. Op iedere host moet het IP-adres van de andere kant van het VPN ingesteld worden en een geheime sleutel (die door de gebruiker zelf is gekozen en die hetzelfde moet zijn op beide gateways). De twee daemons zoeken dan contact met elkaar en stellen vast dat ze zijn wie ze beweren te zijn (door gebruik te maken van de geheime sleutel die is ingesteld). De daemons maken dan een nieuwe geheime sleutel aan en gebruiken die om het verkeer over het VPN te versleutelen. Ze wijzigen die sleutel periodiek zodat een aanvaller er niets aan heeft in het geval hij achter een van de sleutels zou komen. Dit is theoretisch trouwens vrijwel onuitvoerbaar. Tegen de tijd dat de sleutel gekraakt is, hebben de twee daemons al een nieuwe gekozen. De instellingen van racoon worden opgeslagen in ${PREFIX}/etc/racoon. Daar tref staat een instellingenbestand aan dat niet ingrijpend hoeft te wijzigen. De andere component van de instellingen van racoon die gewijzigd moet worden is de wederzijds bekende sleutel (pre-shared key). Standaard verwacht racoon dat die in ${PREFIX}/etc/racoon/psk.txt staat. Het is belangrijk op te merken dat de wederzijds bekende sleutel niet de sleutel is die gebruikt wordt om het verkeer van de VPN verbinding te versleutelen. Het is gewoon een token die de sleutelbeheerdaemons in staat stelt elkaar te vertrouwen. psk.txt bevat een regel voor iedere locatie waarmee verbinding bestaat. In dit voorbeeld zijn er twee locaties en dus bevat ieder psk.txt bestand één regel (omdat de ene kant van de VPN alleen iets te maken heeft met één andere kant). Op gateway host #1 ziet dat er als volgt uit: W.X.Y.Z secret Er staat dus het publieke IP adres van de andere kant, witruimte ;– spatie(s) of tab(s) – en een stuk tekst met de geheime sleutel. Natuurlijk dient secret niet als sleutel gebruikt te worden. Ook hier gelden de normale regels voor wachtwoorden. Op gateway host #2 ziet dat er dan zo uit: A.B.C.D secret Dus het publieke IP adres van de andere kant en dezelfde geheime sleutel. psk.txt moet in mode 0600 staan (alleen lees en schrijfrechten voor root) voordat racoon zal werken. Racoon moet draaien op beide gatewaymachines. Er moeten ook een aantal firewallregels toegevoegd worden om IKE verkeer toe te staan, dat over UDP naar de ISAKMP (Internet Security Association Key Management Protocol) poort loopt. Nogmaals: deze regels staan bij voorkeur zo vroeg mogelijk in de firewallregels. ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp Als racoon eenmaal draait, dan kan de ene gateway host vanaf de andere gepingd worden. De verbinding is dan nog steeds niet versleuteld, maar racoon stelt wel de beveiligingssamenwerking tussen de twee hosts op. Dat kan heel even duren en dat uit zich in een kleine vertraging voordat er een antwoord op de ping komt. Als de beveiligingssamenwerking tot stand is gekomen, dan kan deze getoond worden met &man.setkey.8;: setkey -D Het bovenstaande commando toont de beveiligingssamenwerkingsingsinformatie. Dat is de ene helft van het probleem. De andere helft is het instellen van het beveiligingsbeleid. Voor er een zinvol beveiligingsbeleid opgesteld kan worden volgt eerst een samenvatting van wat tot nu toe is bereikt. Het volgende geldt voor beide kanten van de verbinding. Ieder IP pakket dat wordt verzonden heeft een kop die gegevens over het pakket bevat. De kop bevat het IP adres van zowel de bron als de bestemming. Zoals bekend horen private IP adressen zoals de reeks 192.168.x.y niet thuis op internet. Ze moeten eerst ingepakt worden in een ander pakket. Voor dat pakket moeten het publieke bron en bestemmingsadres op de plaats van de private adressen gezet worden. Dus als een uitgaand pakket als volgt begon: .----------------------. | Src: 192.168.1.1 | | Dst: 192.168.2.1 | | <andere kopinfo> | +----------------------+ | <pakket data> | `----------------------' Dan wordt het ingepakt in een andere pakket dat er ongeveer als volgt uitziet: .--------------------------. | Src: A.B.C.D | | Dst: W.X.Y.Z | | <andere kop info> | +--------------------------+ | .----------------------. | | | Src: 192.168.1.1 | | | | Dst: 192.168.2.1 | | | | <andere kop info> | | | +----------------------+ | | | <pakket data> | | | `----------------------' | `--------------------------' Het gif apparaat zorgt voor het inpakken. Het pakket heeft nu een echt IP adres aan de buitenkant en het originele pakket zit ingepakt als data in het pakket dat het internet opgestuurd gaat worden. Nu moet het verkeer over het VPN natuurlijk versleuteld worden. Dat kan als volgt worden weergegeven: Als een pakket A.B.C.D verlaat met als bestemming W.X.Y.Z, versleutel het dan met de benodigde beveiligingssamenwerkingen. Als een pakket aankomt van W.X.Y.Z en het heeft A.B.C.D als bestemming, ontcijfer het dan met de benodigde beveiligingssamenwerkingen. Dat klopt bijna, maar niet helemaal. Als dit gebeurde, dan zou al het verkeer van en naar W.X.Y.Z, zelfs als dat geen deel uit zou maken van het VPN, versleuteld worden. Dat is niet wenselijk. Het correcte beleid ziet er zo uit: Als een pakket A.B.C.D verlaat en dat pakket bevat een ander pakket en als het W.X.Y.Z als bestemming heeft, versleutel het dan met de benodigde beveiligingssamenwerkingen. Als een pakket aankomt van W.X.Y.Z en het pakket bevat een ander pakket en het heeft A.B.C.D als bestemming, ontcijfer het dan met de benodigde beveiligingssamenwerkingen. Dat is een subtiele aanpassing, maar wel noodzakelijk. Beveiligingsbeleid wordt ook ingesteld met &man.setkey.8;. &man.setkey.8; biedt een instellingtaal voor het definiëren van beleid. Instructies kunnen via STDIN gegeven worden of met de optie uit een bestand komen dat de instellingen bevat. De instellingen op gateway host #1 (die het publieke IP adres A.B.C.D heeft) om al het uitgaande verkeer naar W.X.Y.Z te laten versleutelen is: spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; Deze commando's kunnen in een bestand (bv. /etc/ipsec.conf) gezet worden om uitgevoerd te worden: &prompt.root; setkey -f /etc/ipsec.conf vertelt &man.setkey.8; dat er een regel toegevoegd moet worden aan de database met het beveiligingsbeleid. De rest van de regel geeft aan op welke pakketten dit beleid van toepassing is. A.B.C.D/32 en W.X.Y.Z/32 zijn de IP adressen en netmaskers waarmee het netwerk of de hosts worden aangegeven waarop het beleid van toepassing is. In dit geval is het van toepassing op het verkeer tussen twee hosts. vertelt de kernel dat dit beleid alleen van toepassing is op pakketten waarin een ander pakket ingepakt zit. betekent dat dit beleid van toepassing is op uitgaande pakketten en betekent dat de pakketten beveiligd moeten worden. Het tweede deel geeft aan hoe een pakket versleuteld wordt. is het protocol dat gebruikt moet worden en geeft aan dat het pakket ingepakt moet worden in een IPsec pakket. Het herhaalde gebruik van A.B.C.D en W.X.Y.Z heeft te maken met het aangeven welke beveiligingssamenwerking gebruikt moet worden en als laatste is het door verplicht dat de pakketten versleuteld worden als deze regel van toepassing is. Deze regel is alleen van toepassing op uitgaande pakketten. Er moet ook nog een regel komen voor inkomende pakketten. spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require; Let wel dat hier dus staat in plaats van en dat de IP adressen zijn omgedraaid. Op de andere gateway host (met een publiek IP adres W.X.Y.Z) zijn soortgelijke regels nodig. spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require; spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; Tenslotte moeten de firewalls ESP en IPENCAP pakketten naar beide kanten toestaan. Deze regels moeten op beide hosts toegevoegd worden. ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D Omdat deze regels symmetrisch zijn, kunnen ze op beide gateway hosts gebruikt worden. Uitgaande pakketten zien er nu ongeveer zo uit: .------------------------------. --------------------------. | Src: A.B.C.D | | | Dst: W.X.Y.Z | | | <andere kop info> | | Versleuteld +------------------------------+ | pakket. | .--------------------------. | -------------. | inhoud | | Src: A.B.C.D | | | | is | | Dst: W.X.Y.Z | | | | volledig | | <andere kop info> | | | |- veilig | +--------------------------+ | | Ingepakt | voor | | .----------------------. | | -. | pakket | snoopen | | | Src: 192.168.1.1 | | | | Origineel|- met echt | door derden | | | Dst: 192.168.2.1 | | | | pakket, | IP adres | | | | <andere kop info> | | | |- privaat | | | | +----------------------+ | | | IP adres | | | | | <pakket data> | | | | | | | | `----------------------' | | -' | | | `--------------------------' | -------------' | `------------------------------' --------------------------' Als ze ontvangen worden door de andere kant van het VPN dan worden ze eerst ontcijferd (met de beveiligingssamenwerking die door racoon tot stand is gebracht). Daarna komen ze de gif interface binnen die de tweede laag uitpakt zodat het binnenste pakket overblijft, dan nu naar het interne netwerk kan reizen. De beveiliging kan gecontroleerd worden met dezelfde &man.ping.8; test die eerder is uitgevoerd, door eerst aan te melden op de A.B.C.D gateway machine en het onderstaande uit te voeren: tcpdump dst host 192.168.2.1 In nog een sessie op dezelfde host kan dan het volgende commando uitgevoerd worden: ping 192.168.2.1 Nu hoort de volgende uitvoer te zien te zijn: XXX tcpdump output &man.tcpdump.1; toont nu de ESP pakketten. Als deze pakketten verder bekeken worden met de optie dan is de uitvoer onbegrijpelijk vanwege de versleuteling. Gefeliciteerd. Nu is het VPN tussen de twee locaties opgezet. Samenvatting Stel beide kernels in met: options IPSEC options IPSEC_ESP Installeer security/ipsec-tools. Wijzig ${PREFIX}/etc/racoon/psk.txt op beide gateway hosts en voeg een regel toe voor het IP adres van de host aan de andere kant en een geheime sleutel die aan beide kanten bekend is. Dit bestand hoort mode 0600 te hebben. Voeg de volgende regels toe aan /etc/rc.conf voor iedere host: ipsec_enable="YES" ipsec_file="/etc/ipsec.conf" Maak /etc/ipsec.conf op iedere host die de benodigde spdadd regels bevat. Op gateway host #1 zou dat zijn: spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require; En op gateway host #2 is dat: spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require; spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require; Voeg firewallregels toe om IKE, ESP en IPENCAP verkeer toe te staan naar beide hosts: ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D De voorgaande twee stappen zouden voldoende moeten zijn voor het opzetten van het VPN. Machines op ieder netwerk kunnen elkaar nu bereiken op basis van IP adressen en al het verkeer over de verbinding wordt automatisch en veilig versleuteld.
Chern Lee Bijgedragen door Siebrand Mazeland Vertaald door OpenSSH OpenSSH beveiliging OpenSSH OpenSSH is een groep netwerkverbindingsprogramma's waarmee computers via het netwerk veilig benaderd kunnen worden. Het kan ingezet worden als een directe vervanger van rlogin, rsh, rcp en telnet. Daarnaast kunnen alle andere TCP/IP verbindingen veilig getunneld of geforward worden door SSH. OpenSSH versleutelt al het verkeer om afluisteren, het stelen van een verbinding en andere netwerkaanvallen effectief te voorkomen. OpenSSH wordt onderhouden door het OpenBSD project en is gebaseerd op SSH v1.2.12 met alle recente bugfixes en updates. Het is compatibel met beide protocollen SSH 1 en 2. OpenSSH zit in de basisinstallatie sinds &os; 4.0. Voordelen van gebruik van OpenSSH Als gewoonlijk &man.telnet.1; of &man.rlogin.1; wordt gebruikt, wordt de data in platte tekst en niet versleuteld verzonden. Netwerksnuffelaars die ergens tussen de client en de server meeluisteren, kunnen een gebruikersnaam en wachtwoord stelen en zien welke gegevens er worden overgezonden tijdens een sessie. OpenSSH biedt een verscheidenheid aan authenticatie en versleutelingsmethoden die het voorgaande voorkomen. <application>sshd</application> inschakelen OpenSSH inschakelen De sshd daemon wordt onder &os; 4.X standaard ingeschakeld en bij de installatie van &os; 5.X en later kan er tijdens de installatie gekozen worden. De daemom is ingeschakeld als de volgende regel voorkomt in rc.conf: sshd_enable="YES" Hierdoor wordt &man.sshd.8; geladen, het daemonprogramma voor OpenSSH, als het systeem de volgende keer opstart. De sshd daemon kan ook direct gestart worden door sshd in te geven op de commandoregel. SSH client OpenSSH client &man.ssh.1; werkt net zoals &man.rlogin.1;. &prompt.root; ssh user@example.com Host key not found from the list of known hosts. Are you sure you want to continue connecting (yes/no)? yes Host 'example.com' added to the list of known hosts. user@example.com's password: ******* Het aanmelden gaat nu net zoals het zou gaan als wanneer er een sessie gestart zou worden met rlogin of telnet. SSH maakt gebruik van een systeem met vingerafdrukken als sleutels voor het vaststellen met welke server verbinding wordt gemaakt op het moment dat de client verbinding zoekt. De gebruiker krijgt alleen de eerste keer dat verbinding wordt gezocht met de server een vraag waarop yes geantwoord dient te worden. Bij volgende pogingen om aan te melden wordt de vingerafdruksleutel vergeleken met de sleutel die is opgeslagen. De SSH client alarmeert de gebruiker als de opgeslagen vingerafdruk sleutel anders is dan de sleutel die de server meldt. De vingerafdrukken worden opgeslagen in ~/.ssh/known_hosts of in ~/.ssh/known_hosts2 voor SSH v2 vingerafdrukken. Recente OpenSSH servers staan standaard ingesteld om alleen SSH v2 connecties toe te staan. De client gebruikt versie 2 als dat mogelij is en valt anders terug op versie 1. De client kan ook gedwongen worden om een van de twee protocollen te gebruiken door de optie of voor respectievelijk versie 1 en versie 2 aan te geven. De mogelijkheid versie 1 te gebruiken blijft in de client bestaan om compatibiliteit met oudere versies te behouden. Veilig kopiëren OpenSSH veilig kopiëren scp Het commando &man.scp.1; (secure copy) werkt gelijk aan &man.rcp.1;. Het kopieert een bestand van of naar een andere machine, maar doet dat veilig. &prompt.root; scp user@example.com:/COPYRIGHT COPYRIGHT user@example.com's password: ******* COPYRIGHT 100% |*****************************| 4735 00:00 &prompt.root; Omdat de vingerafdruk al is opgeslagen voor deze host in het vorige voorbeeld, is die al geverifieerd als &man.scp.1; gebruik wordt. De argumenten die aan &man.scp.1; gegeven worden zijn vrijwel gelijk aan die voor &man.cp.1; met het bestand of de bestanden als het eerste argument en de bestemming als het tweede. Omdat het bestand over het netwerk gaat, door SSH, hebben een of meer van de bestandsargumenten de vorm . Instellen OpenSSH instellen Het instellingenbestand dat voor het hele systeem geldt voor zowel de OpenSSH daemon als client staat in de map /etc/ssh. ssh_config bevat de instellingen voor de client en sshd_config bevat ze voor de daemon. Daarnaast bieden het (standaard /usr/sbin/sshd) en rc.conf opties nog meer mogelijkheden voor instellingen. ssh-keygen In plaats van het gebruik van wachtwoorden kan &man.ssh-keygen.1; gebruikt worden om DSA en RSA sleutels te maken om een gebruiker te authenticeren: &prompt.user; ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/user/.ssh/id_dsa): Created directory '/home/user/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_dsa. Your public key has been saved in /home/user/.ssh/id_dsa.pub. The key fingerprint is: bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com &man.ssh-keygen.1; maakt een publiek en privaat sleutelpaar aan dat gebruikt kan worden voor authenticatie. De private sleutel staat opgeslagen in ~/.ssh/id_dsa of ~/.ssh/id_rsa en de publieke sleutel staat in ~/.ssh/id_dsa.pub of ~/.ssh/id_rsa.pub voor respectievelijk DSA en RSA sleuteltypen. De publieke sleutel moet in ~/.ssh/authorized_keys van de andere machine staan om dit te laten werken. RSA versie 1 publieke sleutels horen ook in ~/.ssh/authorized_keys te staan. Nu is het mogelijk een verbinding te maken met een andere machine die gebaseerd is op SSH sleutels in plaats van op wachtwoorden. Als er een wachtwoordzin is gebruikt bij &man.ssh-keygen.1; dan wordt de gebruiker iedere keer dat de private sleutel wordt gebruikt een wachtwoord gevraagd. &man.ssh-agent.1; kan het ongemak van steeds opnieuw een lange wachtwoordzin moeten ingeven verlichten en wordt beschreven in het onderdeel . Afhankelijk van de gebruikte versie van OpenSSH kunnen opties en bestanden - verschillen. Het is verstandig de handboekpagina + verschillen. Het is verstandig de handleiding &man.ssh-keygen.1; te raadplegen. ssh-agent en ssh-add De hulpprogramma's &man.ssh-agent.1; en &man.ssh-add.1; bieden de mogelijkheid om SSH in het geheugen te laden zodat niet iedere keer de wachtwoordzin ingegeven hoeft te worden. Het hulpprogramma &man.ssh-agent.1; handelt de authenticatie af voor de geheime sleutels die erin geladen zijn. &man.ssh-agent.1; wordt gebruikt om andere programma's te starten. Bij eenvoudig gebruik kan er een shell mee gestart worden of meer complex een schermbeheerprogramma. Voordat &man.ssh-agent.1; in een shell gebruikt kan worden dient het eerst gestart te worden met een shell als argument. Daarna kan de identiteit toegevoegd worden daar &man.ssh-add.1; aan te roepen en de wachtwoordzin voor de geheime sleutel op te geven. Als deze stappen zijn voltooid kan een gebruiker met &man.ssh.1; naar iedere host waar de corresponderende publieke sleutel is geïnstalleerd: &prompt.user; ssh-agent csh &prompt.user; ssh-add Enter passphrase for /home/user/.ssh/id_dsa: Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa) &prompt.user; Om &man.ssh-agent.1; te gebruiken in X11 dient er een verwijzing naar &man.ssh-agent.1; in ~/.xinitrc te staan. Dan zijn de diensten van &man.ssh-agent.1; beschikbaar voor alle programma's die in X11 gestart worden. Een ~/.xinitrc zou er als volgt uit kunnen zien: exec ssh-agent startxfce4 Hiermee wordt &man.ssh-agent.1; gestart die op zijn beurt XFCE start, iedere keer dat X11 start. Als dat is gebeurd en X11 is herstart zodat de wijzigingen actief zijn, dan kan eenvoudigweg &man.ssh-add.1; gestart worden om alle beschikbare SSH sleutels te laden. SSH tunnels OpenSSH tunnels OpenSSH kan een tunnel maken waarin een ander protocol ingepakt kan worden zodat er een versleutelde sessie ontstaat. Het volgende commando geeft &man.ssh.1; aan dat er een tunnel voor telnet gemaakt moet worden: &prompt.user; ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com &prompt.user; Aan het ssh commando worden de volgende opties meegegeven: Dit dwingt ssh om versie 2 van het protocol te gebruiken. Gebruik van deze optie wordt afgeraden als er verbinding wordt gemaakt met oudere SSH servers. Dit geeft aan dat er geen commando volgt, maar dat er een tunnel opgezet moet worden. Als deze optie niet aanwezig was, zou ssh een normale sessie starten. Dit dwingt ssh om in de achtergrond te draaien. Dit geeft aan dat de lokaal een tunnel wordt gemaakt in de vorm lokale_poort:netwerk_host:netwerk_poort. Wijst naar een gebruiker op de SSH server op het netwerk. Een SSH tunnel werkt doordat een luistersocket wordt gemaakt op localhost op de aangegeven poort. Die stuurt dan iedere ontvangen verbinding op de lokale host/poort via de SSH verbinding door naar de aangegeven host en poort op het netwerk. In het voorbeeld wordt poort 5023 op localhost doorgestuurd naar poort 23 op localhost van de machine op het netwerk. Omdat 23 telnet is, zou dit een veilige telnet verbinding opleveren door een SSH tunnel. Dit kan gebruikt worden om ieder willekeurig onveilig TCP protocol in te pakken als SMTP, POP3, FTP, etc. SSH gebruiken om een veilige tunnel te maken voor SMTP &prompt.user; ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com user@mailserver.example.com's password: ***** &prompt.user; telnet localhost 5025 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 mailserver.example.com ESMTP Dit kan samen met een &man.ssh-keygen.1; en extra gebruikersaccounts gebruikt worden om een min of meer naadloze en eenvoudige SSH tunnelomgeving te maken. In plaats van wachtwoorden kunnen sleutels gebruikt worden en de tunnels kunnen in de omgeving van een aparte gebruiker draaien. Praktische voorbeelden van een SSH tunnel Veilige toegang tot een POP3 server Op het werk staat een SSH server die verbindingen van buitenaf toestaat. Op hetzelfde netwerk op kantoor staat een mailserver waarop POP3 draait. Het netwerk of het netwerkpad tussen de locatie op internet en kantoor is wellicht niet helemaal te vertrouwen. Om deze reden dient de mailserver op een veilige manier benaderd te worden. De oplossing is een SSH verbinding opzetten naar de SSH server op kantoor en dan door de tunnel heen een verbinding opzetten met de mailserver. &prompt.user; ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com user@ssh-server.example.com's password: ****** Als de tunnel eenmaal draait, dan kan de mailclient naar localhost poort 2110 gewezen worden. Alle verbinding naar die poort worden veilig doorgestuurd door de tunnel naar mail.example.com. Een draconische firewall omzeilen Sommige netwerkbeheerders stellen draconische firewallregels op en filteren niet alleen inkomende verbindingen, maar ook uitgaande. Meestal mag dan alleen maar verbinding gemaakt worden met andere machines op poorten 22 en 80 voor SSH en websurfen. Soms wil een gebruiker dan toch toegang krijgen tot andere (wellicht niet netwerk-gerelateerd) diensten, zoals een Ogg Vorbis server om muziek te streamen. Als die Ogg Vorbis server streamt op een andere poort dan 22 of 80, dan kan deze niet bereikt worden. De oplossing ligt in het opzetten van een SSH verbinding naar een machine buiten de firewall en die tunnel te gebruiken om bij de Ogg Vorbis server te komen. &prompt.user; ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org user@unfirewalled-system.example.org's password: ******* De streamingclient kan nu gewezen worden naar localhost poort 8888 vanwaar er wordt doorverwezen naar music.example.com poort 8000 en zo wordt de firewall succesvol ontwerken. De gebruikersoptie <varname>AllowUsers</varname> Vaak is het verstandig om beperkingen aan te brengen op het gebied van welke gebruikers kunnen aanmelden en van waar. De optie AllowUsers biedt deze mogelijkheid. Om bijvoorbeeld alleen root toe te staan zich aan te melden van 192.168.1.32, kan iets als de volgende regel worden opgenomen in /etc/ssh/sshd_config file: AllowUsers root@192.168.1.32 Om de gebruiker admin het recht te geven zich van overal aan te melden hoeft alleen de gebruikersnaam vermeld te worden: AllowUsers admin Meerdere gebruikers met rechten of beperkingen horen op dezelfde regel te staan: AllowUsers root@192.168.1.32 admin Het is van belang dat iedere gebruiker die zich moet kunnen aanmelden wordt genoemd. De overige gebruikers worden buitengesloten. Nadat er wijzigingen zijn gemaakt aan /etc/ssh/sshd_config dienen de bestanden in &man.sshd.8; geladen te worden: &prompt.root; /etc/rc.d/sshd reload Meer informatie OpenSSH &man.ssh.1; &man.scp.1; &man.ssh-keygen.1; &man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5; &man.sshd.8; &man.sftp-server.8; &man.sshd.config.5; Tom Rhodes Bijgedragen door Siebrand Mazeland Vertaald door ACL Bestandssysteem toegangscontrolelijsten In combinatie met verbeteringen als snapshots, bieden &os; 5.0 en volgende versies de veiligheid van Bestandssysteem Toegangscontrolelijsten (Access Control Lists, ACLs). Met Toegangscontrolelijsten wordt het standaard &unix; rechtenmodel uitgebreid op een zeer verenigbare (&posix;.1e) manier. Deze methodes stellen een beheerder in staat om gebruik te maken en voordeel te halen uit een geraffineerder beveiligingsmodel. Om ondersteuning voor ACLs voor bestandssystemen in te schakelen dient het volgende in de kernel gecompileerd te worden: options UFS_ACL Als deze optie niet aanwezig is, dan wordt er een waarschuwing weergegeven als er wordt geprobeerd een bestandssysteem te mounten dat gebruik maakt van ACLs. Deze optie is al geactiveerd in de GENERIC kernel. ACLs zijn afhankelijk van uitgebreide attributen die zijn ingeschakeld op het bestandssysteem. Uitgebreide attributen worden standaard ondersteund in het volgende generatie &unix; bestandssysteem UFS2. Er is meer administratieve overhead nodig om uitgebreide attributen in te stellen op UFS1 dan op UFS2. De prestaties van uitgebreide attributen zijn op UFS2 ook veel beter. Daarom wordt UFS2 ook meestal aangeraden boven UFS1 bij het gebruik van toegangscontrolelijsten. ACLs worden ingeschakeld door de beheersvlag op het moment van mounten. Dit kan ook in /etc/fstab staan. De vlag op het moment van mounten kan ook automatisch gezet worden op een persistente wijze met &man.tunefs.8; door een superblok in de bestandssysteemkop te wijzigen. In het algemeen wordt de voorkeur gegeven aan de vlag in het superblok om een aantal redenen: De ACLs vlag op het moment van mounten kan niet gewijzigd worden bij opnieuw mounten (&man.mount.8; ), maar alleen door een volledige &man.umount.8; en een verse &man.mount.8;. Dit betekent dat ACLs niet ingeschakeld kunnen worden op root bestandssysteem na het booten. Het betekent ook dat de aard van een bestandssysteem niet veranderd kan worden als het eenmaal in gebruik is. Het inschakelen van de superblok vlag zorgt ervoor dat het bestandssysteem altijd wordt gemount met de ACLs ingeschakeld, zelfs als het niet in fstab staat of als de apparaten van plaats veranderen. Hiermee wordt voorkomen dat het bestandssysteem wordt gebruikt zonder dat ACLs ingeschakeld zijn, wat ervoor zou kunnen zorgen dat ACLs onjuist worden toegepast wat weer kan zorgen voor beveiligingsproblemen. Wellicht wordt het mogelijk om de ACLs via de vlag in te schakelen zonder een compleet verse &man.mount.8;, maar de ontwikkelaars vinden het wenselijk om het per ongeluk zonder ACLs mounten te ontmoedigen, omdat er bijzonder vervelende gevolgen kunnen zijn als ACLs worden ingeschakeld, daarna worden uitgezet en weer worden ingeschakeld zonder dat de uitgebreide attributen worden geschoond. In het algemeen geldt dat als ACLs eenmaal zijn ingeschakeld voor een bestandssysteem, ze niet meer uitgeschakeld moeten worden, omdat de resulterende bestandsbescherming wellicht niet compatibel is met dat wat gebruikers van het systeem nodig hebben en het opnieuw aanzetten van ACLs kan leiden tot het opnieuw koppelen van voorheen bestaande ACLs aan bestanden waarvoor de toegangsrechten sindsdien zijn aangepast, wat kan leiden tot onverwachte situaties. Bestandssystemen waarvoor ACLs zijn ingeschakeld worden weergegeven met een + (plus) teken als de toegangsrechten worden bekeken: drwx------ 2 robert robert 512 Dec 27 11:54 private drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1 drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2 drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3 drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html Hierboven is te zien dat mappen directory1, directory2 en directory3 allemaal gebruik maken van ACLs. De map public_html doet dat niet. Gebruik maken van <acronym>ACL</acronym>s De ACLs van het bestandssysteem kunnen bekeken worden met het hulpprogramma &man.getfacl.1;. Om de ACL op het bestand test te bekijken zou het volgende commando nodig zijn: &prompt.user; getfacl test #file:test #owner:1001 #group:1001 user::rw- group::r-- other::r-- Om de ACL op dit bestand te wijzigen wordt het hulpprogramma &man.setfacl.1; als volgt gebruikt: &prompt.user; setfacl -k test De vlag verwijdert alle bestaande ACLs van een bestand of bestandssysteem. De methode die de voorkeur geniet is gebruiken omdat die optie de basisvelden die nodig zijn voor het laten werken van de ACLs laat staan. &prompt.user; setfacl -m u:trhodes:rwx,group:web:r--,o::--- test Bij het commando hierboven, werd de optie gebruikt om de standaard ACL aan te passen. Omdat er geen voorgedefinieerde instellingen waren, die waren verwijderd door het commando daarvoor, werden nu de standaardinstellingen hersteld en de rechten die werden aangegeven toegevoegd. Let op dat bij het toevoegen van een gebruiker of een groep die niet bekend is op het systeem een foutmelding Invalid argument wordt geschreven naar stdout. Tom Rhodes Geschreven door Portaudit Monitoren van beveiligingsproblemen met andere software In de afgelopen jaren zijn er in de beveiligingswereld veel vorderingen gemaakt op het gebied van inzicht in kwetsbaarheden. Als er software naast het besturingssysteem wordt geïnstalleerd en ingesteld neemt op vrijwel ieder besturingssysteem het risico op inbraak toe. Inzicht in kwetsbaarheid is een vitale factor in beveiliging en hoewel &os; waarschuwingen publiceert voor het basissysteem, gaat het publiceren van waarschuwingen voor alle overige software de scope van het &os; Project te buiten. Er is een manier om inzicht te krijgen in de kwetsbaarheden voor additionele software en als beheerder gewaarschuwd te worden. Voor dit doel bestaat het &os; hulpprogramma Portaudit. De port security/portaudit zoekt naar bekende beveiligingsproblemen in een database die wordt bijgewerkt en onderhouden door het &os; Security Team en portontwikkelaars. Voordat Portaudit gebruikt kan worden dient het geïnstalleerd te worden uit de Portscollectie: &prompt.root; cd /usr/ports/security/portaudit && make install clean Tijdens het installatieproces worden de instellingenbestanden voor &man.periodic.8; bijgewerkt, waardoor Portaudit uitvoer in de dagelijkse security runs meekomt. Het is van belang dat de e-mails die aan de e-mailaccount van root worden gezonden en uit de dagelijkse beveiligingsronde komen ook echt worden gelezen. Er zijn geen verdere instellingen nodig. Na de installatie dient de beheerder de database bij te werken die lokaal staat in /var/db/portaudit: &prompt.root; portaudit -F De database wordt automatisch bijgewerkt tijdens de &man.periodic.8; run; dus het voorgaande commando is volledig optioneel. Het is alleen nodig om de volgende voorbeelden na te kunnen doen. De software de uit de Portscollection is geïnstalleerd kan door een beheerder geaudit worden met: &prompt.root; portaudit -a Hieronder staat een voorbeeld van de uitvoer: Affected package: cups-base-1.1.22.0_1 Type of problem: cups-base -- HPGL buffer overflow vulnerability. Reference: <http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html> 1 problem(s) in your installed packages found. You are advised to update or deinstall the affected package(s) immediately. Door met een webbrowser naar de aangegeven URL te gaan kan een beheerder meer informatie over de bewust kwetsbaarheid krijgen, waaronder de versies die het betreft, volgens de &os; Port versie en andere websites waarop beveiligingswaarschuwingen te lezen zijn. In het kort is Portaudit een krachtig hulpprogramma dat bijzonder handig is als het wordt gekoppeld aan het gebruik van de port Portupgrade. Tom Rhodes Bijgedragen door Siebrand Mazeland Vertaald door &os; Beveiligingswaarschuwingen &os; beveiligingswaarschuwingen Net als veel andere kwalitatief goede productiebesturingssystemen publiceert &os; Beveiligingswaarschuwingen. Deze waarschuwingen worden meestal pas naar de beveiligingslijst gemaild en gedocumenteerd in de Errata als de van toepassing zijnde releases gepatcht zijn. In deze paragraaf wordt toegelicht wat een waarschuwing is, hoe die te begrijpen en welke maatregelen er genomen moeten worden om een systeem bij te werken. Hoe ziet een waarschuwing eruit? De &os; beveiligingswaarschuwingen zien er ongeveer uit als die hieronder die van de &a.security-notifications.name; mailinglijst komt. ============================================================================= &os;-SA-XX:XX.UTIL Security Advisory The &os; Project Topic: denial of service due to some problem Category: core Module: sys Announced: 2003-09-23 Credits: Person@EMAIL-ADDRESS Affects: All releases of &os; &os; 4-STABLE prior to the correction date Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE) 2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6) 2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15) 2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8) 2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18) 2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21) 2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33) 2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43) 2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39) &os; only: NO For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit http://www.FreeBSD.org/security/. I. Background II. Problem Description III. Impact IV. Workaround V. Solution VI. Correction details VII. References Het veld Topic geeft aan wat precies het probleem is. Het is eigenlijk een inleiding op de beveiligingswaarschuwing en geeft aan welke programma kwetsbaar is. Het veld Category geeft aan welk onderdeel van het systeem kwetsbaar is. Dat kan een van de onderdelen core, contrib of ports zijn. De categorie core betekent dat de een kerncomponent van het &os; besturingssysteem kwetsbaar is. De categorie contrib betekent dat software die toegevoegd is aan het &os; Project kwetsbaar is, zoals sendmail. Tenslotte geeft de categorie ports aan dat een optionele component uit de Portscollectie kwetsbaar is. Het veld Module geeft aan waar de component zich bevindt, bijvoorbeeld sys. In dit voorbeeld wordt het duidelijk dat de module sys kwetsbaar is. Hier gaat het dus om een kwetsbaar component die gebruikt wordt in de kernel. Het veld Announced geeft aan wanneer de beveiligingswaarschuwing gepubliceerd of aangekondigd is. Dit betekent dat het beveiligingsteam heeft bevestigd dat het probleem bestaat en dat er een patch is gecommit in het depot met de broncode van &os;. In het veld Credits wordt iemand of een organisatie bedankt die de kwetsbaarheid heeft ontdekt en gerapporteerd. Het veld Affects geeft aan welke releases van &os; door deze kwetsbaarheid worden getroffen. Voor de kernel kan snel gekeken worden naar de uitvoer van ident voor de betreffende bestanden om te bepalen welke revisie ze hebben. Voor ports is het versienummer te zien in /var/db/pkg. Als het systeem niet gelijk op loopt met het &os; CVS depot en dagelijks herbouwd wordt, dan is de kans groot dat het systeem kwetsbaar is. Het veld Corrected geeft de datum, tijd en tijdzone aan en de release die is aangepast. Het veld &os; only geeft aan of deze kwetsbaarheid alleen betrekking heeft op &os; of dat hij ook betrekking heeft op andere besturingssystemen. Het veld Background geeft meer informatie over wat er precies aan de hand is. Meestal staat hier waarom het programma aanwezig is in &os;, waar het voor gebruikt wordt en hoe het programma is ontstaan. Het veld Problem Description geeft gedetailleerde toelichting op het beveiligingsprobleem. Hier kan informatie bij staat over programmacode die fouten bevat of zelfs hoe het programma gebruikt kan worden om een beveiligingsgat te openen. Het veld Impact beschrijft welke invloed het probleem kan hebben op het systeem. Dit kan bijvoorbeeld een ontzegging van dienst aanval zijn, gebruikers extra rechten geven of het verkrijgen van supergebruiker toegang voor de aanvaller zijn. Het veld Workaround geeft aan hoe het mogelijk is het probleem te omzeilen (workaround) in het geval systeembeheerders niet in staat zijn om het systeem bij te werken. Dit zou te maken kunnen hebben met de tijd, beschikbaarheid van het netwerk en een hele lijst met andere redenen. Hoe dan ook, beveiliging dient serieus genomen te worden en een systeem dat kwetsbaar is moet bijgewerkt worden of het gat in de beveiliging moet gedicht worden met de alternatieve oplossing. Het veld Solution geeft instructies over hoe een systeem aangepast kan worden. Dit is een werkinstructie die getest en gecontroleerd is om een systeem aan te passen en weer veilig werkend te krijgen. In het veld Correction Details staan de CVS takken of releasenamen, met de punten veranderd in een liggend streepje. Er staat ook welke revisienummer de aangetaste bestanden binnen een tak hebben. In het veld References wordt gewoonlijk verwezen naar andere bronnen. Dit kunnen URLs, boeken, mailinglijsten en nieuwsgroepen zijn. Tom Rhodes Geschreven door Procesaccounting Procesaccounting Procesaccounting is een beveiligingsmethode die een beheerder in staat stelt om in de gaten te houden welke systeembronnen worden gebruikt, hoe ze over gebruikers verdeeld zijn, systeemmonitoring biedt en op minimalistische wijze het gebruik van commando's door gebruikers volgt. Deze methode heeft voordelen en nadelen. Eén van de positieve punten is dat een inbraak gevolgd kan worden tot het moment waarop die zich voordeed. Nadelen zijn de grootte van de logboeken die door procesaccounting worden gegenereerd en de schijfruimte die dat kost. In dit onderdeel wordt een beheerder de basis van procesaccounting getoond. Procesaccounting inschakelen en gebruiken Voordat procesaccounting gebruikt kan worden dient het te worden ingeschakeld met de volgende commando's: &prompt.root; touch /var/account/acct &prompt.root; accton /var/account/acct &prompt.root; echo 'accounting_enable="YES"' >> /etc/rc.conf Eenmaal ingeschakeld begint accounting met het bijhouden van CPU statistieken, commands, enzovoort. Alle accounting logboeken worden in een niet leesbaar formaat bijgehouden en zijn uit te lezen met &man.sa.8;. Bij het uitvoeren zonder opties, toont sa informatie gerelateerd aan het aantal calls per gebruiker, de totale tijd in minuten die is verstreken, de totale CPU en gebruikerstijd in minuten, gemiddeld aantal I/O operaties, enzovoort. Informatie over uitgevoerde commando's kan bekeken worden met &man.lastcomm.1;. Zo kan met lastcomm bijvoorbeeld weergegeven worden welke commando's door gebruikers op een specifieke &man.ttys.5; zijn uitgevoerd: &prompt.root; lastcomm ls trhodes ttyp1 Het bovenstaande commando toont ieder bekend gebruikt van ls door de gebruiker trhodes op terminal ttyp1. Veel andere handige opties staan beschreven in &man.lastcomm.1;, &man.acct.5; en &man.sa.8;.