diff --git a/nl_NL.ISO8859-1/books/handbook/Makefile b/nl_NL.ISO8859-1/books/handbook/Makefile
index 86cf4321bd..b8106e2d9e 100644
--- a/nl_NL.ISO8859-1/books/handbook/Makefile
+++ b/nl_NL.ISO8859-1/books/handbook/Makefile
@@ -1,265 +1,268 @@
#
# $FreeBSD$
-# $FreeBSDnl: nl_NL.ISO8859-1/books/handbook/Makefile,v 1.16 2005/10/04 21:17:40 siebrand Exp $
-# Gebaseerd op: 1.95 (sortof)
+# $FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/Makefile,v 1.19 2006/01/03 21:17:07 siebrand Exp $
+# Gebaseerd op: 1.97
#
# Build the FreeBSD Dutch Handbook.
#
# ------------------------------------------------------------------------
#
# Handboekspecifieke variabelen
#
# WITH_PGPKEYS De gedrukte verie van het handboek geeft standaard
-# alleen PGP vingerafdrukken weer. Als het gewenst
+# alleen PGP vingerafdrukken weer. Als het gewenst
# is dat de complete sleutel wordt weergegeven dan
# dient deze variabele insteld te worden. De optie
# heeft geen invloed op de HTML formaten.
#
# Handboekspecifieke doelen
#
# pgpkeyring Dit doel leest de inhoud van pgpkeys/chapter.sgml
# en schrijft dan alle PGP sleutels naar stdout.
# De uitvoer kan omgeleid worden naar een bestand
# en verspreid worden als een publieke sleutelring
# van FreeBSD ontwikkelaars die eenvoudig in
# PGP/GPG ingelezen kan worden.
#
# ------------------------------------------------------------------------
-.PATH: ${.CURDIR}/../../share/sgml/glossary/
+.PATH: ${.CURDIR}/../../share/sgml/glossary
-MAINTAINER=remko@FreeBSD.org
+MAINTAINER= remko@FreeBSD.org
DOC?= book
FORMATS?= html-split
HAS_INDEX= true
-WITH_GLOSSARY?=
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
IMAGES_EN = advanced-networking/isdn-bus.eps
IMAGES_EN+= advanced-networking/isdn-twisted-pair.eps
IMAGES_EN+= advanced-networking/natd.eps
IMAGES_EN+= advanced-networking/net-routing.pic
IMAGES_EN+= advanced-networking/static-routes.pic
IMAGES_EN+= geom/striping.pic
IMAGES_EN+= install/adduser1.scr
IMAGES_EN+= install/adduser2.scr
IMAGES_EN+= install/adduser3.scr
IMAGES_EN+= install/boot-mgr.scr
IMAGES_EN+= install/console-saver1.scr
IMAGES_EN+= install/console-saver2.scr
IMAGES_EN+= install/console-saver3.scr
IMAGES_EN+= install/console-saver4.scr
IMAGES_EN+= install/desktop.scr
IMAGES_EN+= install/disklabel-auto.scr
IMAGES_EN+= install/disklabel-ed1.scr
IMAGES_EN+= install/disklabel-ed2.scr
IMAGES_EN+= install/disklabel-fs.scr
IMAGES_EN+= install/disklabel-root1.scr
IMAGES_EN+= install/disklabel-root2.scr
IMAGES_EN+= install/disklabel-root3.scr
IMAGES_EN+= install/disk-layout.eps
IMAGES_EN+= install/dist-set.scr
IMAGES_EN+= install/dist-set2.scr
IMAGES_EN+= install/docmenu1.scr
IMAGES_EN+= install/ed0-conf.scr
IMAGES_EN+= install/ed0-conf2.scr
IMAGES_EN+= install/edit-inetd-conf.scr
IMAGES_EN+= install/fdisk-drive1.scr
IMAGES_EN+= install/fdisk-drive2.scr
IMAGES_EN+= install/fdisk-edit1.scr
IMAGES_EN+= install/fdisk-edit2.scr
IMAGES_EN+= install/ftp-anon1.scr
IMAGES_EN+= install/ftp-anon2.scr
IMAGES_EN+= install/hdwrconf.scr
IMAGES_EN+= install/keymap.scr
IMAGES_EN+= install/main1.scr
IMAGES_EN+= install/mainexit.scr
IMAGES_EN+= install/main-std.scr
IMAGES_EN+= install/main-options.scr
IMAGES_EN+= install/main-doc.scr
IMAGES_EN+= install/main-keymap.scr
IMAGES_EN+= install/media.scr
IMAGES_EN+= install/mouse1.scr
IMAGES_EN+= install/mouse2.scr
IMAGES_EN+= install/mouse3.scr
IMAGES_EN+= install/mouse4.scr
IMAGES_EN+= install/mouse5.scr
IMAGES_EN+= install/mouse6.scr
IMAGES_EN+= install/mta-main.scr
IMAGES_EN+= install/net-config-menu1.scr
IMAGES_EN+= install/net-config-menu2.scr
IMAGES_EN+= install/nfs-server-edit.scr
IMAGES_EN+= install/ntp-config.scr
IMAGES_EN+= install/options.scr
IMAGES_EN+= install/pkg-cat.scr
IMAGES_EN+= install/pkg-confirm.scr
IMAGES_EN+= install/pkg-install.scr
IMAGES_EN+= install/pkg-sel.scr
IMAGES_EN+= install/probstart.scr
IMAGES_EN+= install/routed.scr
IMAGES_EN+= install/security.scr
IMAGES_EN+= install/sysinstall-exit.scr
IMAGES_EN+= install/timezone1.scr
IMAGES_EN+= install/timezone2.scr
IMAGES_EN+= install/timezone3.scr
IMAGES_EN+= install/userconfig.scr
IMAGES_EN+= install/userconfig2.scr
IMAGES_EN+= install/xf86setup.scr
IMAGES_EN+= mail/mutt1.scr
IMAGES_EN+= mail/mutt2.scr
IMAGES_EN+= mail/mutt3.scr
IMAGES_EN+= mail/pine1.scr
IMAGES_EN+= mail/pine2.scr
IMAGES_EN+= mail/pine3.scr
IMAGES_EN+= mail/pine4.scr
IMAGES_EN+= mail/pine5.scr
IMAGES_EN+= install/example-dir1.eps
IMAGES_EN+= install/example-dir2.eps
IMAGES_EN+= install/example-dir3.eps
IMAGES_EN+= install/example-dir4.eps
IMAGES_EN+= install/example-dir5.eps
IMAGES_EN+= security/ipsec-network.pic
IMAGES_EN+= security/ipsec-crypt-pkt.pic
IMAGES_EN+= security/ipsec-encap-pkt.pic
IMAGES_EN+= security/ipsec-out-pkt.pic
IMAGES_EN+= vinum/vinum-concat.pic
IMAGES_EN+= vinum/vinum-mirrored-vol.pic
IMAGES_EN+= vinum/vinum-raid10-vol.pic
IMAGES_EN+= vinum/vinum-raid5-org.pic
IMAGES_EN+= vinum/vinum-simple-vol.pic
IMAGES_EN+= vinum/vinum-striped-vol.pic
IMAGES_EN+= vinum/vinum-striped.pic
# Images from the cross-document image library
IMAGES_LIB= callouts/1.png
IMAGES_LIB+= callouts/2.png
IMAGES_LIB+= callouts/3.png
IMAGES_LIB+= callouts/4.png
IMAGES_LIB+= callouts/5.png
IMAGES_LIB+= callouts/6.png
IMAGES_LIB+= callouts/7.png
IMAGES_LIB+= callouts/8.png
IMAGES_LIB+= callouts/9.png
IMAGES_LIB+= callouts/10.png
-#
+#
# SRCS lists the individual SGML files that make up the document. Changes
# to any of these files will force a rebuild
#
# SGML content
-SRCS= audit/chapter.sgml
+SRCS+= audit/chapter.sgml
SRCS+= book.sgml
SRCS+= colophon.sgml
SRCS+= freebsd-glossary.sgml
SRCS+= advanced-networking/chapter.sgml
SRCS+= basics/chapter.sgml
SRCS+= bibliography/chapter.sgml
-SRCS+= config/chapter.sgml
SRCS+= boot/chapter.sgml
+SRCS+= config/chapter.sgml
SRCS+= cutting-edge/chapter.sgml
SRCS+= desktop/chapter.sgml
SRCS+= disks/chapter.sgml
SRCS+= eresources/chapter.sgml
SRCS+= firewalls/chapter.sgml
SRCS+= geom/chapter.sgml
SRCS+= install/chapter.sgml
SRCS+= introduction/chapter.sgml
SRCS+= kernelconfig/chapter.sgml
SRCS+= l10n/chapter.sgml
SRCS+= linuxemu/chapter.sgml
SRCS+= mac/chapter.sgml
SRCS+= mail/chapter.sgml
SRCS+= mirrors/chapter.sgml
SRCS+= multimedia/chapter.sgml
SRCS+= network-servers/chapter.sgml
SRCS+= pgpkeys/chapter.sgml
SRCS+= ports/chapter.sgml
SRCS+= ppp-and-slip/chapter.sgml
SRCS+= preface/preface.sgml
SRCS+= printing/chapter.sgml
SRCS+= security/chapter.sgml
SRCS+= serialcomms/chapter.sgml
SRCS+= users/chapter.sgml
SRCS+= vinum/chapter.sgml
SRCS+= x11/chapter.sgml
# Entities
-SRCS+= chapters.ent
+SRCS+= chapters.ent
SYMLINKS= ${DESTDIR} index.html handbook.html
# Turn on all the chapters.
CHAPTERS?= ${SRCS:M*chapter.sgml}
SGMLFLAGS+= ${CHAPTERS:S/\/chapter.sgml//:S/^/-i chap./}
SGMLFLAGS+= -i chap.freebsd-glossary
-# XXX The Handbook build currently overflows some internal, hardcoded
-# limits in pdftex. Until we split the Handbook up, build the PDF
+# XXX The Handbook build currently overflows some internal, hardcoded
+# limits in pdftex. Until we split the Handbook up, build the PDF
# version using ps2pdf instead of pdftex.
PS2PDF?= ${PREFIX}/bin/ps2pdf
book.tex-pdf:
${TOUCH} book.tex-pdf
book.pdf: book.ps
${PS2PDF} book.ps book.pdf
pgpkeyring: pgpkeys/chapter.sgml
- @${JADE} -V nochunks ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC}
-
+ @${JADE} -V nochunks ${OTHERFLAGS} ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC}
#
# Handbook-specific variables
#
.if defined(WITH_PGPKEYS)
JADEFLAGS+= -V withpgpkeys
.endif
URL_RELPREFIX?= ../../../..
-DOC_PREFIX?= ${.CURDIR}/../../..
+DOC_PREFIX?= ${.CURDIR}/../../..
-.for p in ftp cvsup
-SRCS+= mirrors.sgml.${p}.inc
-CLEANFILES+= mirrors.sgml.${p}.inc
-CLEANFILES+= mirrors.sgml.${p}.inc.tmp
-.endfor
+#
+# rules generating lists of mirror site from XML database.
+#
+XMLDOCS= mirrors-ftp:::mirrors.sgml.ftp.inc.tmp \
+ mirrors-cvsup:::mirrors.sgml.cvsup.inc.tmp \
+ eresources:::eresources.sgml.www.inc.tmp
+DEPENDSET.DEFAULT= transtable mirror
+XSLT.DEFAULT= ${XSL_MIRRORS}
+XML.DEFAULT= ${XML_MIRRORS}
+NO_TIDY.DEFAULT= yes
+
+PARAMS.mirrors-ftp+= --param 'type' "'ftp'" \
+ --param 'proto' "'ftp'" \
+ --param 'target' "'handbook/mirrors/chapter.sgml'"
+PARAMS.mirrors-cvsup+= --param 'type' "'cvsup'" \
+ --param 'proto' "'cvsup'" \
+ --param 'target' "'handbook/mirrors/chapter.sgml'"
+PARAMS.eresources+= --param 'type' "'www'" \
+ --param 'proto' "'http'" \
+ --param 'target' "'handbook/eresources/chapter.sgml'"
+
+SRCS+= mirrors.sgml.ftp.inc \
+ mirrors.sgml.cvsup.inc \
+ eresources.sgml.www.inc
-SRCS+= eresources.sgml.www.inc
-CLEANFILES+= eresources.sgml.www.inc
-CLEANFILES+= eresources.sgml.www.inc.tmp
+CLEANFILES+= mirrors.sgml.ftp.inc mirrors.sgml.ftp.inc.tmp \
+ mirrors.sgml.cvsup.inc mirrors.sgml.cvsup.inc.tmp \
+ eresources.sgml.www.inc eresources.sgml.www.inc.tmp
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
.for p in ftp cvsup
-mirrors.sgml.${p}.inc: ${XML_MIRRORS} ${XSL_MIRRORS}
- ${XSLTPROC} ${XSLTPROCOPTS} \
- -o $@.tmp \
- --param 'type' "'$p'" \
- --param 'proto' "'$p'" \
- --param 'target' "'handbook/mirrors/chapter.sgml'" \
- ${XSL_MIRRORS} ${XML_MIRRORS}
+mirrors.sgml.${p}.inc: mirrors.sgml.${p}.inc.tmp
${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>\1>,;s,,,'\
< $@.tmp > $@ || (${RM} -f $@ && false)
- ${RM} -f $@.tmp
.endfor
-eresources.sgml.www.inc: ${XML_MIRRORS} ${XSL_MIRRORS}
- ${XSLTPROC} ${XSLTPROCOPTS} \
- -o $@.tmp \
- --param 'type' "'www'" \
- --param 'proto' "'http'" \
- --param 'target' "'handbook/eresources/chapter.sgml'" \
- ${XSL_MIRRORS} ${XML_MIRRORS}
+eresources.sgml.www.inc: eresources.sgml.www.inc.tmp
${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2>\1>,;s,,,'\
< $@.tmp > $@ || (${RM} -f $@ && false)
- ${RM} -f $@.tmp
diff --git a/nl_NL.ISO8859-1/books/handbook/basics/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/basics/chapter.sgml
index 04406fae63..b6e7b1572a 100644
--- a/nl_NL.ISO8859-1/books/handbook/basics/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/basics/chapter.sgml
@@ -1,2887 +1,2884 @@
ChrisShumwayHerschreven door RemkoLodderVertaald door &unix; beginselenOverzichtHet volgende hoofdstuk behandelt de basiscommando's en
functionaliteit van het &os; besturingssysteem. Veel van dit
materiaal is relevant voor elk &unix; achtig besturingssysteem.
Als de lezer reeds bekend is met het materiaal, hoeft dit
hoofdstuk niet gelezen te worden. Lezer die nog niet eerder
met &os; te maken hebben gehad wordt aangeraden door te
lezen.Na het lezen van dit hoofdstuk weet de lezer:Hoe virtuele consoles in &os; gebruikt
kunnen worden;Hoe &unix; bestandspermissies werken en hoe
bestandsvlaggen in &os; werken;Hoe het standaard &os; bestandssysteem eruit ziet;Hoe een &os; harde schijf is ingedeeld;Hoe bestandssystemen gemount en ge-unmount
worden;Wat processen, daemons en signalen zijn;Wat een shell is en hoe de standaard omgevingsvariabelen
veranderd kunnen worden;Hoe elementaire tekstverwerkers te gebruiken;Wat apparaten en apparaatmountpunten zijn;Welk binair formaat &os; gebruikt;Hoe handleidingen te gebruiken meer informatie.Virtuele consoles en terminalsVirtuele consolesterminals&os; kan op diverse manieren gebruikt worden.
Één van deze manieren is het typen van commando's
in een tekstterminal. Veel van de flexibiliteit en kracht van
een &unix; besturingssysteem is gemakkelijk beschikbaar als je
&os; op deze manier gebruikt. Dit onderdeel beschrijft wat
terminals en consoles zijn en hoe
je deze kan gebruiken in &os;.De consoleconsoleAls &os; niet is ingesteld om automatisch een grafische
omgeving te starten tijdens het opstarten, geeft het systeem
een login prompt als het gestart is. Dit gebeurt direct nadat
de startscripts klaar zijn. Er wordt iets als het volgende
getoond:Additional ABI support:.
Local package initialization:.
Additional TCP options:.
Fri Sep 20 13:01:06 EEST 2002
&os;/i386 (pc3.example.org) (ttyv0)
login:De meldingen op het scherm kunnen wellicht iets anders zijn
op een systeem, maar het zal iets soortgelijks zijn. De
laatste twee regels zijn de regels waar het nu over gaat.
De voorlaatste regel toont:&os;/i386 (pc3.example.org) (ttyv0)Deze regel bevat enkele informatie over het systeem dat
net gestart is: dit is een &os; console,
draaiend op een Intel of soortgelijke processor op de x86
architectuur.
Dit betekent i386. Let op: ook al
draait &os; niet op een Intel 386 processor, toch is dit
een i386. Het is niet het type
processor, maar de processor
architectuur.
De naam van de machine (elke &unix; machine heeft een
naam) is pc3.example.org en dit is de console
van het systeem, de ttyv0
terminal.De laatste regel is altijd:login:Dit is het deel waar een gebruikersnaam
ingevuld moet worden om aan te melden op &os;. Het volgende
deel beschrijft hoe dat werkt.Aanmelden op &os;&os; is een multi-user en multi-processing systeem. Dit is
de formele beschrijving die meestal gegeven wordt aan een
systeem dat gebruikt wordt door meerdere personen die
gelijktijdig verschillende programma's draaien op
één enkele machine.Elk multi-user systeem heeft een manier nodig om een
gebruiker van alle andere gebruikers te kunnen
onderscheiden. In &os; (en alle andere &unix; achtige
besturingssystemen), wordt dit bereikt door te eisen dat
elke gebruiker moet aanmelden op het systeem
voordat hij/zij programma's kan draaien. Elke gebruiker heeft
een unieke naam (de gebruikersnaam) en een
persoonlijke, geheime sleutel (het wachtwoord).
&os; vraagt om deze twee gegevens voordat het een gebruiker
toegestaat om programma's te draaien.startup scriptsDirect nadat &os; is opgestart en de opstartscripts
Opstart scripts zijn programma's die automatisch gestart
worden tijdens het opstarten. Het hoofddoel van deze
programma's is om dingen goed te zetten zodat alle andere
programma's ook kunnen draaien, en om services te starten
die je geconfigureerd hebt om bruikbare zaken in de
achtergrond te doen.
afgerond zijn, wordt een prompt getoond dat vraagt om een
geldige aanmeldnaam op te geven.login:In dit voorbeeld wordt aangenomen de gebruikersnaam
john is. Als na deze prompt
john wordt getype en op
Enter wordt gedrukt, verschijnt hierna
een prompt om het wachtwoord in te
voeren:login: john
Password:Nu kan john's wachtwoord ingevoerd
worden en op Enter gedrukt worden. Het
wachtwoord wordt niet getoond! Daarover
hoeft geen zorg te bestaan. Het is voldoende om te zeggen dat
dit om veiligheidsredenen gedaan wordt.Als het juiste wachtwoord is ingegeven, is er aangemeld bij
op &os; en in het systeem klaar om alle beschikbare commando's
uit te voeren.Na het aanmelden is de MOTD of het
bericht van de dag zichtbaar, gevolgd door een commandoprompt
(een #, $ of een
% karakter). Dit geeft aan dat er succesvol
is aangemeld op &os;.Meerdere consoles&unix; programma's draaien in één console is
prima, maar &os; kan veel programma's tegelijk draaien. Om
maar één console te hebben waar commando's
ingetypt kunnen worden zou zonde zijn van een besturingssysteem
als &os; waar meerdere programma's tegelijkertijd op kunnen
draaien. Hier kunnen virtuele consoles van pas
komen.&os; kan ingesteld worden om verschillende virtuele
consoles te tonen. Met toetscombinaties kan van de ene console
naar de gewisseld worden. Elke console heeft zijn eigen
uitvoerkanaal, en &os; zorgt ervoor dat alle toetsenbordinvoer
en monitoruitvoer goed wordt gezet als er van de ene console
naar de volgende wordt gewisseld.In &os; kunnen speciale toetscombinaties gebruikt worden om
te wisselen naar een ander virtueel console.
Een redelijk technische en accurate beschrijving van
alle details over de &os; console en toetsenborddrivers
staan in de hulppagina's van &man.syscons.4;,
&man.atkbd.4;, &man.vidcontrol.1; en &man.kbdcontrol.1;.
Hier wordt niet verder op ingegaan, maar de
geïnteresseerde lezer kan altijd de hulppagina's
raadplegen voor meer details en een grondige uitleg over
hoe alles werkt.
In &os; kan
AltF1,
AltF2
tot en met
AltF8
gebruikt worden om te wisselen naar een ander virtueel
console.Als wordt gewisseld van de ene naar de andere console zorgt
&os; dat de uitvoer bewaard blijft. Het resultaat is een
illusie van het hebben van meerdere schermen en
toetsenborden die gebruikt kunnen worden om commando's in te
voeren om &os; te laten draaien. De programma's die in de ene
virtuele console draaien, stoppen niet als de console niet
zichtbaar is. Ze blijven doordraaien als naar een andere
virtuele console wordt gewisseld.Het bestand /etc/ttysDe standaardinstelling van &os; start op met acht virtuele
consoles. Dit is echter geen vaste waarde en een installatie
kan eenvoudig aangepast worden, zodat het systeem gestart
wordt met meer of minder virtuele consoles. De hoeveelheid en
instellingen van de virtuele consoles worden ingesteld in
/etc/ttys./etc/ttys kan gebruikt worden om
virtuele consoles in te stellen. Elke niet-commentaar
regel in dit bestand (regels die niet beginnen met een
# karakter) bevat instellingen voor een
terminal of virtuele console. De standaardversie van dit
bestand die meegeleverd wordt met &os; stelt negen virtuele
consoles in en activeert er acht. Dit zijn de regels die
beginnen met ttyv:# naam getty type status commentaar
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secureEen uitgebreide beschrijving van elke kolom in dit
bestand en alle mogelijke opties voor virtuele consoles staan
in de &man.ttys.5; hulppagina
gebruiken.Single-user consoleIn staat een
gedetailleerde beschrijving van de single-user
modus. Het is belanrijk te melden dat er in
single-user modus maar één console is. Er zijn
geen virtuele consoles beschikbaar. De instellingen van de
single-user modus console staan ook in
/etc/ttys . De regel begint met
console:# name getty type status commentaar
#
# Als een console gemarkeerd is als "insecure", zal het init script om het root-wachtwoord
# vragen wanneer het in single-user mode komt.
console none unknown off secureZoals het commentaar boven de console
regel aangeeft, kan in deze regel het woord
secure gewijzigd worden in
insecure. In dat geval vraagt &os; bij
het opstarten in single-user modus nog steeds om een
root-wachtwoord.Pas op als dit wordt veranderd in
insecure. Als het wachtwoord
van de gebruiker root zoek is,
wordt het opstarten in single-user modus lastig. Het is nog
steeds mogelijk, maar het kan vrij moeilijk zijn voor iemand
die &os; niet zo goed kent met betrekking tot het opstarten
en de programma's die daarbij gebruikt worden.RechtenUNIX&os;, direct afgeleid van BSD &unix;, is gebaseerd op
verschillende belangrijke &unix; concepten. Het meest bekende is
dat &os; een multi-user systeem is. Het systeem kan meerdere
gebruikers behandelen die tegelijkertijd totaal verschillende
dingen doen. Het systeem is verantwoordelijk voor het netjes
delen en beheren voor aanvragen voor hardware, randapparatuur,
geheugen en cpu tijd tussen elke gebruiker.Omdat het systeem in staat is om meerdere gebruikers te
ondersteunen, heeft alles wat door het systeem beheerd wordt een
set van rechten die aangeeft wie mag lezen, schrijven en de
bron mag uitvoeren. Deze rechten zijn opgeslagen in drie
octetten, die weer in drie stukjes onderverdeeld zijn:
één voor de eigenaar van het bestand,
één voor de groep waar het bestand toe behoort en
één voor de overigen. De numerieke weergave werkt
als volgt:RechtenBestandsrechtenWaardeRechtMaprecht0Niet lezen, niet schrijven, niet uitvoeren---1Niet lezen, niet schrijven, uitvoeren--x2Niet lezen, schrijven, niet uitvoeren-w-3Niet lezen, schrijven, uitvoeren-wx4Lezen, niet schrijven, niet uitvoerenr--5Lezen, niet schrijven, uitvoerenr-x6Lezen, schrijven, niet uitvoerenrw-7Lezen, schrijven, uitvoerenrwxlsmappenDe optie kan gebruikt worden met
&man.ls.1; om een lange lijst met de inhoud van een map te zien
die een kolom heeft met informatie over bestandsrechten voor de
eigenaar, groep en de rest. ls -l in een
willekeurige map kan het volgende laten zien:&prompt.user; ls -l
total 530
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile
-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt
...Zo ziet de eerste kolom van ls -l
eruit:-rw-r--r--Het eerste (meest linkse) karakter geeft aan of dit een
reguliere bestand is, een map, een speciaal karakter
component(!), een socket of een andere pseudo-file component(!).
In dit geval betekent de - dat het een
regulier bestand is. De volgende drie karakters,
rw- in dit voorbeeld, geven de rechten voor de
eigenaar van het bestand. De drie karakters
r--erna geven de rechten van voor de groep van
het bestand. De overige drie karakters r--
tonen de rechten voor de rest. Een streepje betekent dat de
rechten uitgeschakeld zijn. In het geval van dit bestand zijn de
rechten zo ingesteld dat de eigenaar kan lezen en schrijven naar
het bestand, de groep het bestand kan lezen, en de rest kan het
bestand alleen lezen. Volgens de tabel hierboven worden de
rechten 644, waar de cijfers de drie stukjes
van de rechten aangeven.Dit is allemaal leuk en aardig, maar hoe controleert het
systeem dan rechten voor apparaten? &os; behandelt de meeste
hardware apparaten als bestanden die door programma's kunnen
worden geopend en gelezen, en waar data naar toe kan worden
geschreven, net zoals elk ander bestand. Deze speciale apparaat
bestanden worden bewaard in de map
/dev.Mappen worden ook behandeld als bestanden. Ze hebben lees,
schrijf en uitvoerbare rechten. De uitvoerbare vlag voor een map
heeft een klein verschil qua betekenis dan die voor gewone
bestanden. Als een map als uitvoerbaar gemarkeerd is, betekent
het dat erin gekeken mag worden. Het is dus mogelijk om te
wisselen naar de map met cd (wissel van map).
Dit betekent ook dat in de map bestanden benaderd kunnen worden
waarvan de naam bekend is. Dit is natuurlijk afhankelijk van de
rechten op het bestand zelf.In het bijzonder, om een lijst van de map te kunnen maken,
moet een gebruiker leesrechten op de map hebben. Om een bestand
te verwijderen zijn de naam van het bestand en schrijf
en uitvoerrechten op de map nodig waarin het
bestand zich bevindt.Er zijn meer rechtenvlaggen, maar die worden slechts gebruikt
in speciale gevallen, zoals bij setuid binaries en sticky mappen.
Meer informatie over bestandsrechten en hoe die aangepast kunnen
worden staat in &man.chmod.1;.TomRhodesBijgedragen door Symbolische rechtenrechtensymbolischSymbolische rechten, soms ook wel symbolische expressies,
gebruiken karakters in plaats van octale getallen om rechten
aan bestanden en mappen te geven. Symbolische expressies
gebruiken de volgende opbouw: (wie) (actie) (permissies), waar
de volgende waardes beschikbaar zijn:OptieLetterVertegenwoordigt(wie)uGebruiker(wie)gGroepseigenaar(wie)oOverigen(wie)aIedereen (wereld)(actie)+Rechten toevoegen(actie)-Rechten verwijderen(actie)=Stel deze rechten in(recht)rLezen(recht)wSchrijven(recht)xUitvoeren(recht)tSticky bit(recht)sVerander UID of GIDDeze waardes worden gebruikt met &man.chmod.1;, net zoals
eerder, alleen nu met letters. Het volgende commando kan
gebruikt worden om de overige gebruikers toegang tot
BESTAND te ontzeggen:&prompt.user; chmod go= BESTANDEr kan een door komma's gescheiden lijst geleverd worden als
meer dan één wijziging aan een bestand moet worden
uitgevoerd. Het volgende commando past de rechten voor de groep
en de wereld aan door de schrijfrechten te
ontnemen om daarna iedereen uitvoerrechten te geven:&prompt.user; chmod go-w,a+x BESTANDTomRhodesGeschreven door &os; bestandsvlaggenNaast de bestandsrechten die hiervoor zijn besproken,
biedt &os; ondersteuning voor bestandsvlaggen.
Deze vlaggen bieden een aanvullend beveiligingsniveau en
controle over bestanden, maar niet over mappen.Bestandsvlaggen voegen een extra niveau van controle over
bestanden, waardoor verzekerd kan worden dat in sommige
gevallen zelfs root een bestand niet kan
verwijderen of wijzigen.Bestandsvlaggen worden gewijzigd met het hulpprogramma
&man.chflags.1;, dat een eenvoudige interface heeft. Om
bijvoorbeeld de systeemvlag niet verwijderdbaar in te stellen
op het bestand file1:&prompt.root; chflags sunlink file1Om de vlag niet verwijderbaar weer te verwijderen kan het
voorgaande command met no voor
worden uitgevoerd:&prompt.root; chflags nosunlink file1Om de vlaggen op een bestand te bekijken, kan &man.ls.1;
met de vlaggen gebruikt worden:&prompt.root; ls -lo file1De uitvoer hoort er ongeveer als volgt uit te zien:-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1Een aantal vlaggen kan alleen ingesteld of verwijderd
worden door de gebruiker root. In andere
gevallen kan de eigenaar van een bestand vlaggen instellen.
Meer informatie voor beheerders staat in &man.chflags.1; en
&man.chflags.2;.MappenstructuurmappenstructuurDe &os; mappenstructuur is erg belangrijk om het systeem
goed te leren kennen. Het belangrijkste concept om greep op te
krijgen is die van de rootmap, /. Deze map is de
eerste die gemount wordt tijdens het opstarten en bevat het
basissysteem dat nodig is om het besturingssysteem gereed te
maken voor multi-user taken. De rootmap bevat ook mountpunten
voor elk ander bestandssysteem dat misschien gemount
wordt.Een mountpunt is een map waar extra bestandssystemen aan het
root bestandssysteem geplakt kunnen worden. Dit wordt beschreven
in . Standaard mountpunten
zijn /usr, /var,
/tmp, /mnt en
/cdrom. Naar deze mappen wordt meestal
verwezen in /etc/fstab, een tabel met
bestandssystemen en mountpunten ter referentie voor het systeem.
De meeste bestandssystemen in /etc/fstab
worden automatisch gemount tijdens het opstarten door het script
&man.rc.8;, behalve als ze de optie
hebben. Details staan beschreven in .Een complete beschrijving over het bestandssysteem staat in
&man.hier.7;. Hier wordt volstaan met een overzicht van de
voorkomende mappen.MapOmschrijving/Rootmap van het bestandssysteem./bin/Gebruikersapplicaties, belangrijk voor zowel
single user als multi-user omgevingen./boot/Programma's en instellingenbestanden die
gebruikt worden tijdens het opstarten van het
besturingssysteem./boot/defaults/Bestanden met standaardinstellingen voor
opstarten;, zie &man.loader.conf.5;./dev/Apparaatnodes;, zie &man.intro.4;./etc/Bestanden met systeeminstellingen en
scripts./etc/defaults/Bestanden met standaard systeeminstellingen;, zie
&man.rc.8;./etc/mail/Instellingenbestanden voor mail transport
programma's zoals &man.sendmail.8;./etc/namedb/Instellingenbestanden voor
named, zie &man.named.8;./etc/periodic/Scripts die dagelijks, wekelijks en maandelijks
via &man.cron.8; worden uitgevoerd,
zie &man.periodic.8;./etc/ppp/Instellingenbestanden voor ppp,
zie &man.ppp.8;./mnt/Lege map, veel gebruikt door systeembeheerders als
tijdelijk mountpunt voor opslagruimtes./proc/Process bestandssysteem;, zie &man.procfs.5; en
&man.mount.procfs.8;./rescue/Statisch gelinkte programma's voor noodherstel,
zie &man.rescue.8;./root/Thuismap van de gebruiker
root./sbin/Systeemprogramma's en administratieprogramma's
belangrijk voor zowel single-user en multi-user
omgevingen./stand/Programma's die gebruikt worden in een standalone
omgeving./tmp/Tijdelijke bestanden. De inhoud van /tmp blijft meestal NIET
bewaard na een herstart. Er wordt vaak een
geheugengebaseerd bestandssysteem gemount op /tmp. Dit kan
geautomatiseerd worden met de tmpmfs-gerelateerde
variabelen van &man.rc.conf.5; (of met een regel in
/etc/fstab). Zie &man.mdmfs.8;
(of &man.mfs.8; voor &os; 4.X)./usr/Hier bevindt zich het leeuwendeel van alle
hulpprogramma's en gewone programma's./usr/bin/Standaard programma's, programmeertools./usr/include/Standaard C invoegbestanden./usr/lib/Functiebibliotheken./usr/libdata/Diverse databestanden voor hulpprogramma's./usr/libexec/Systeemdaemons en systeemhulpprogramma's
(uitgevoerd door andere programma's)./usr/local/Lokale programma's, bibliotheken, etc. Wordt ook
gebruikt als standaard locatie voor de &os; ports.
Binnen /usr/local, wordt de
algemene layout bepaald door &man.hier.7;, dat ook voor
/usr wordt gebruikt.
Uitzonderingen is de map man, die direct onder
/usr/local ligt in plaats van
onder /usr/local/share, en de
documentatie voor ports is te vinden in
share/doc/port.
/usr/obj/Architectuur afhankelijke doelstructuur voor
resultaten van de bouw van
/usr/src./usr/portsDe &os; Portscollectie (optioneel)./usr/sbin/Systeemdaemons en systeemhulpprogramma's
(uitgevoerd door gebruikers)./usr/share/Architectuur onafhankelijke bestanden./usr/src/BSD en/of lokale broncodebestanden./usr/X11R6/Uitvoerbare bestanden en bibliotheken, etc, voor
de X11R6 distributie (optioneel)./var/Multifunctionele logboek-, tijdelijke,
transparante en spool bestanden./var/log/Diverse logboekbestanden van het systeem./var/mail/Postbusbestanden van gebruikers./var/spool/Diverse printer- en
mailsysteemspoolingmappen./var/tmp/Tijdelijke bestanden die bewaard worden bij een
herstart van het systeem./var/ypNIS maps.Organisatie van schijvenDe kleinste vorm van organisatie die &os; gebruikt om
bestanden te vinden is de bestandsnaam. Bestandsnamen zijn
hoofdlettergevoelig, wat betekent dat
readme.txt en
README.TXT twee verschillende bestanden
zijn. &os; gebruikt de extensie niet (.txt)
van een bestand om te bepalen of het bestand een programma, een
document of een vorm van data is.Bestanden worden bewaard in mappen. Een map kan leeg zijn of
honderden bestanden bevatten. Een map kan ook andere mappen
bevatten, wat het mogelijk maakt om een hiërarchie van
mappen te maken. Dit maakt het veel makkelijker om data te
organiseren.Bestanden en mappen worden aangegeven door het bestand
of de map aan te geven, gevolgd door een voorwaardse slash,
/, gevolgd door andere mapnamen die nodig
zijn. Als map foo de map
bar bevat, die op zijn beurt het bestand
readme.txt bevat, dan wordt de volledige
naam of pad naar het bestand
foo/bar/readme.txt.Mappen en bestanden worden bewaard op een bestandssysteem.
Elk bestandssysteem bevat precies één map op het
hoogste niveau die de rootmap van het
bestandssysteem heet. Deze rootmap kan op zijn beurt andere
mappen bevatten.Tot zover is dit waarschijnlijk hetzelfde als voor elk ander
besturingssysteem. Er zijn een paar verschillen. &ms-dos;
gebruikt bijvoorbeeld een \ om bestanden en
mappen te scheiden, terwijl &macos; gebruik maakt van
:.&os; gebruikt geen schijfletters, of andere schijfnamen in
het pad. &os; gebruikt geen
c:/foo/bar/readme.txt.Eén bestandssysteem wordt aangewezen als
root bestandssysteem, waar naar wordt
verwezen met /. Elk ander bestandssysteem
wordt daarna gemount onder het root
bestandssysteem. Hoeveel schijven er ook aan een &os; systeem
hangen, het lijkt alsof elke map zich op dezelfde schijf
bevindt.Stel er zijn drie bestandssystemen met de namen
A,B en
C. Elk bestandssysteem heeft
één root map die twee andere mappen bevat,
A1 en A2 (zo ook voor de
andere twee: B1, B2,
C1 en C2).A wordt het root besturingsysteem. Met
ls, dat de inhoud van de map kan tonen, zijn
de twee mappen A1 en A2 te
zien. De mappenstructuur ziet er als volgend uit: /
|
+--- A1
|
`--- A2Een bestandssysteem moet gemount worden in een map op een
ander bestandssysteem. Als nu bestandssysteem
B wordt gemount onder de map
A1 vervangt BA1 en zien de mappingen in
B er als volgt uit: /
|
+--- A1
| |
| +--- B1
| |
| `--- B2
|
`--- A2Elk bestand dat in de mappen B1 en
B2 aanwezig is, kan benaderd worden met het
pad /A1/B1 of /A1/B2.
Elk bestand dat in /A1 stond is tijdelijk
verborgen en komt tevoorschijn als Bis
ge-unmountvan A.Als B gemount is onder
A2 ziet de diagram er als volgt uit: /
|
+--- A1
|
`--- A2
|
+--- B1
|
`--- B2en de paden zouden dan respectievelijk
/A2/B1 en /A2/B2
zijn.Bestandssystemen kunnen op elkaar worden gemount. Doorgaand
op het vorige voorbeeld kan het bestandssysteem
C gemount worden bovenop de map
B1 in het bestandssysteem
B. Dit resulteert in: /
|
+--- A1
|
`--- A2
|
+--- B1
| |
| +--- C1
| |
| `--- C2
|
`--- B2Of C kan direct onder het bestandssysteem
A gemount worden, onder de map
A1: /
|
+--- A1
| |
| +--- C1
| |
| `--- C2
|
`--- A2
|
+--- B1
|
`--- B2Hoewel het niet gelijk is, lijkt het op het gebruik van
join in &ms-dos;.Beginnende gebruikers hoeven zich hier gewoonlijk niet mee
bezig te houden. Normaal gesproken worden bestandssystemen
gemaakt als &os; wordt geïnstalleerd en er wordt
besloten waar ze gemount worden. Meestal worden ze ook niet
gewijzigd tot er een nieuwe schijf aan een systeem wordt
toegevoegd.Het is mogelijk om één groot root
bestandssysteem te hebben en geen andere. Deze benadering
heeft voordelen en nadelen.Voordelen van meerdere bestandssystemenVerschillende bestandssystemen kunnen verschillende
mount opties hebben. Met een goede
voorbereiding kan het root bestandssysteem bijvoorbeeld als
alleen-lezen gemount worden, waardoor het onmogelijk wordt
om per ongeluk kritische bestanden te verwijderen of te
bewerken. Het scheiden van andere bestandssystemen die
beschrijfbaar zijn door gebruikers, zoals
/home van andere bestandssystemen stelt
de beheerder in staat om ze nosuid te
mounten. Deze optie voorkomt dat
suid/guid bits
op uitvoerbare bestanden effectief gebruikt kunnen worden,
waardoor de beveiliging mogelijk beter wordt.&os; optimaliseert automatisch de layout van bestanden
op een bestandssysteem, afhankelijk van hoe het
bestandssysteem wordt gebruikt. Een bestandsysteem dat veel
bestanden bevat waar regelmatig naar geschreven wordt, wordt
anders geoptimaliseerd dan een bestandssysteem dat minder
maar grotere bestanden bevat. Door het gebruik van
één groot bestandssysteem werkt de
optimalisatie niet.&os;'s bestandssystemen zijn erg robuust als er
bijvoorbeeld een stroomstoring is, hoewel een stroomstoring
op een kritiek moment nog steeds kan leiden tot schade aan de
structuur van het bestandssysteem. Door het verdelen van
data over meerdere bestandssystemen, is de kans groter dat
het systeem nog opstart, wat terugzetten van een backup
makkelijker maakt als dat nodig is.Voordeel van één bestandssysteemBestandssystemen hebben een vaste grootte. Als bij de
installatie van &os; een bestandssysteem wordt gemaakt, is
het later mogelijk dat de partitie groter gemaakt moet
worden. Dit is niet zo makkelijk zonder een backup, het
opnieuw maken van het bestandssysteem met gewijzigde grootte
en het terugzetten van de gebackupte data.&os; 4.4 en latere versies hebben &man.growfs.8;,
waarmee de grootte van het bestandssysteem is aan te passen
terwijl het draait.Bestandssystemen worden opgeslagen in partities. Dit
betekent niet hetzelfde als de algemene betekenis van de term
partitie (bijvoorbeeld, &ms-dos; partitie), vanwege &os;'s &unix;
achtergrond. Elke partitie wordt geïdentificeerd door een
letter van a tot en met h.
Elke partitie kan slechts één bestandssysteem
hebben, wat betekent dat bestandssystem vaak omschreven worden
aan de hand van hun mountpunt in de bestandssysteem
hiërarchie of de letter van de partitie waar ze in
opgeslagen zijn.&os; gebruikt ook schijfruimte voor
wisselbestanden. Wisselbestanden geven
&os; virtueel geheugen. Dit geeft de
computer de mogelijkheid om net te doen alsof er veel meer
geheugen in de machine aanwezig is dan werkelijk het geval is.
Als &os; geen geheugen meer heeft, verplaatst het data die op dat
moment niet gebruikt wordt naar de wisselbestanden en plaatst het
terug als het wel nodig is (en zet iets anders in ruil daarvoor
terug).Aan sommige partities zijn bepaalde conventies
gekoppeld.PartitieConventieaBevat meestal het root bestandssysteembBevat meestal de swapruimtecHeeft meestal dezelfde grootte als de hele harde
schijf. Dit geeft hulpprogramma's de mogelijkheid
om op een complete schijf te werken (voor bijvoorbeeld een
bad block scanner) om te werken op de
c partitie. Meest wordt hierop dan
ook geen bestandssysteem gecreeërd.dPartitie d had vroeger een
speciale betekenis, maar die is verdwenen. Tegenwoordig
werken sommige hulpprogramma's raar als ze verteld worden
dat ze moeten werken op partitie d,
dus sysinstall maakt normaal
gesproken partitie d niet.Elke partitie die een bestandssysteem bevat is opgeslagen
in wat &os; noemt een slice. Slice is
&os;'s term voor wat meeste mensen partities noemen. Dit komt
wederom door &os;'s &unix; achtergrond. Slices zijn genummerd
van 1 tot en met 4.slicespartitiesgevaarlijk toegewijdSlicenummers volgen de apparaatnamen, voorafgegaan door een
s die begint bij 1. Dus
da0s1 is de eerste slice op
de eerste SCSI drive. Er kunnen maximaal vier fysieke slices op
een schijf staan, maar er kunnen logische slices in fysieke
slices van het correcte type staan. Deze uitgebreide slices zijn
genummerd vanaf 5. Dus ad0s5
is de eerste uitgebreide slice op de eerste IDE schijf. Deze
apparaten worden gebruikt door bestandssystemen waarvan verwacht
wordt dat ze een slice in beslag nemen.Slices, gevaarlijk toegewijde (dangerously
dedicated) fysieke drivers en andere drives bevatten
partities, die worden weergegeven door
letters vanaf a tot h.
Deze letter wordt achter de apparaatnaam geplakt. Dus
da0a is de a partitie op de
eerste da drive, die gevaarlijk toegewijd is.
ad1s3e is de vijfde partitie
op de derde slice van de tweede IDE schijf.Elke schijf op het systeem wordt geïdentificeerd. Een
schijfnaam start met een code die het type aangeeft en dan een
nummer dat aangeeft welke schijf het is. In tegenstelling tot
bij slices, start het nummeren van schijven bij 0.
Standaardcodes staan beschreven in .Bij een referentie aan een partitie verwacht &os; ook dat
aan de slice en schijf refereert die de partitie bevat wordt
gerefereerd en als naar een slice wordt verwezen moet ook de
schijfnaam genoemd worden. Dit kan door de schijfnaam,
s, het slice nummer en de partitieletter aan
te geven. Voorbeelden staan in .In staat een
conceptmodel van een schijflayout die een en ander
verduidelijkt.Voordat &os; geïnstalleerd kan worden moeten eerst de
schijfslices gemaakt worden en daarna moeten de partities op de
slices voor &os; gemaakt worden. Daarna wordt op elke
partitie het bestandssysteem (of wisselbestand) gemaakt en als
laatste wordt besloten waar het filesysteem gemount wordt.
Voorbeeld schijf-, slice- en partitienamenNameBetekenisad0s1aDe eerste partitie (a) op de
eerste slice (s1) op de eerste IDE
schijf (ad0).da1s2eDe vijfde partitie (e) op de
tweede slice (s1) op de tweede SCSI
schijf (da1).Conceptmodel van een schijfHet onderstaande diagram geeft aan hoe &os; de eerste IDE
schijf in het systeem ziet. Stel dat de schijf 4 GB groot
is en dat deze twee 2 GB slices (&ms-dos; partities)
bevat. De eerste slice bevat een &ms-dos; schijf,
C: en de tweede slice bevat een &os;
installatie. Deze &os; installatie heeft drie partities en
een partitie met een wisselbestand.De drie partities hebben elk een bestandssysteem. Partitie
a wordt gebruikt voor het root
bestandssysteem, e voor de map
/var en f voor de map
/usr..-----------------. --.
| | |
| DOS / Windows | |
-: : > Eerste slice, ad0s1
+: : > Eerste slice, ad0s1
: : |
| | |
:=================: ==: --.
| | | Partitie a, gemount als / |
-| | > gerefereerd als ad0s2a |
+| | > gerefereerd als ad0s2a |
| | | |
:-----------------: ==: |
| | | Partitie b, gebruikt als swap |
-| | > gerefereerd als ad0s2b |
+| | > gerefereerd als ad0s2b |
| | | |
:-----------------: ==: | Partitie c, geen
| | | Partition e, gebruikt als /var > bestandssysteem, bevat
-| | > gerefereerd als ad0s2e | alle &os; slices,
+| | > gerefereerd als ad0s2e | alle &os; slices,
| | | | ad0s2c
:-----------------: ==: |
| | | |
: : | Partitie f, gebruikt als /usr |
-: : > gerefereerd als ad0s2f |
+: : > gerefereerd als ad0s2f |
: : | |
| | | |
| | --' |
`-----------------' --'Mounten en unmounten van bestandssystemenHet bestandssysteem wordt het best weergegeven als een boom,
met de stam als /.
/dev, /usr en de andere
map in root zijn takken die weer hun eigen takken kunnen hebben,
zoals /usr/local, etc.root bestandssysteemEr zijn verschillende redenen om sommige van deze mappen
op aparte bestandssystemen te plaatsen.
/var bevat de mappen
log/, spool/ en
verschillende types tijdelijke bestanden en kan volraken. Het
laten vollopen van het root bestandssysteem is geen goed idee,
dus het splitsen van /var van
/is vaak de favoriet.Een andere vaak voorkomende reden om bepaalde mapbomen
op aparte bestandssystemen te plaatsen, is om ze op verschillende
fysieke schrijven te zetten of gescheiden virtuele schijven zoals
gemounte Netwerk bestandssystemen of cd-rom
drives.Het bestand fstabbestandssystemengemount met fstabTijdens het opstartproces,
worden bestandssystemen die vermeld staan in
/etc/fstab automatisch gemount
(tenzij ze vermeld staan met )./etc/fstab bevat een lijst van regels
die aan het volgende formaat voldoen:apparaat/mountpuntfstypeoptiesdumpfreqpassnoapparaatEen apparaatnaam (die moet bestaan) zoals uitgelegd
in .mountpuntEen map (die moet bestaan) waarop het bestandssysteem
gemount moet worden.fstypeHet bestandssysteem type dat aan &man.mount.8;
gegeven wordt. Het standaard &os; bestandssysteem is
ufs.optiesDit is of voor lezen en
schrijven bestandssytemen, of voor
alleen lezen, gevolgd door elke andere optie die mogelijk
nodig is. Een standaard optie is
voor bestandssystemen die niet automatisch gemount
worden tijdens het opstarten. Andere opties staan in
&man.mount.8;.dumpfreqDit wordt gebruikt door &man.dump.8; om te bepalen
welke bestandssystemen gedumpt moeten worden. Als het
veld niet is ingevuld, wordt aangenomen dat er een nul
staat.passnoDit bepaalt in welke volgorde bestandssystemen
gecontroleerd moeten worden. Bestandssystemen die
overgeslagen moeten worden moeten hun
passno waarde op nul hebben staan.
Voor het root bestandssysteem (dat voor alle andere
gecontroleerd moet worden) moet passno
op één staan en passno
waarden voor andere bestandssystemen moeten een waarde
hebben groter dan één. Als bestandssysteem
dezelfde passno waarde hebben probeert
&man.fsck.8; deze bestandssystemen tegelijkertijd
te controleren.In &man.fstab.5; staat meer informatie over de opmaak van
/etc/fstab en de mogelijke opties.Het commando mountbestandssystemenmounten&man.mount.8; wordt gebruikt om bestandsystemen te
mounten.De meest eenvoudige vorm is:&prompt.root; mount apparaatmountpuntAlle opties voor het commando staat in &man.mount.8;, maar
de meest voorkomende zijn:MountoptiesMount alle bestandssystemen die in
/etc/fstab staan, behalve die
gemarkeerd staan als noauto, uitgesloten
zijn door de optie of die al
gemount zijn.Doe alles behalve het echt aanroepen van de mount
systeemopdracht. Deze optie is handig in samen met de
optie om te bepalen wat &man.mount.8;
eigenlijk probeert te doen.Forceert het mounten van een niet schoon
bestandssysteem (gevaarlijk) of forceert het innemen van
schrijftoegang als de mountstatus van een bestandssysteem
wijzigt van lezen en schrijven naar alleen lezen.Mount het bestandssysteem alleen lezen. Dit is
identiek aan de optie
( voor &os; versies ouder dan 5.2)
voor de optie .fstypeMount het opgegeven bestandssysteem als het opgegeven
type bestandssysteem of mount alleen bestandssystemen
van het aangegeven type als ook de optie
is opgegeven.ufs is het standaard
bestandssysteem.Werk mountopties van het bestandssysteem bij.Geef uitgebreide informatie (verbose).Mount het bestandssysteem lezen en schrijven.De optie accepteert een door komma's
gescheiden lijst van opties, waaronder de volgende:nodevInterpreteer geen speciale apparaten op het
bestandssysteem. Dit is een nuttige
veiligheidsoptie.noexecSta geen uitvoerbare bestanden toe op dit
bestandssysteem. Ook dit is een nuttige
veiligheidsoptie.nosuidInterpreteer geen setuid of setgid opties op het
bestandssysteem. Ook dit is een nuttige
veiligheidsoptie.Het commando umountbestandssystemenunmounten&man.umount.8; heeft een mountpunt, een apparaatnaam,
of als
parameter.Alle vormen kunnen de optie hebben om
een bestandsysteem te forceren te unmounten en de optie
voor uitgebreide informatie. De optie
is meestal geen goed idee. Forceren dat
een bestandssysteem geunmount wordt kan de computer laten
crashen of data op het bestandssysteem beschadigen.De opties en
worden gebruikt om alle bestandssystemen te unmounten,
mogelijk nader gespecificeerd door de optie
met daarachter op welke typen bestandssystemen het betrekking
heeft. Voor de optie geldt dat deze niet
probeert het root bestandssysteem te unmounten.Processen&os; is een multi-tasking besturingssysteem. Dit betekent
dat het lijkt alsof er meer dan één proces
tegelijkertijd draait. Elk programma dat draait wordt een
proces genoemd. Elk commando dat wordt
uitgevoerd start op zijn minst één nieuw proces en
er zijn systeemprocessen die continu draaien om het systeem
functioneel te houden.Elk proces wordt geïdentificeerd door een nummer dat
process ID of PID
heet, en net zoals bij bestanden heeft elk proces
één eigenaar en groep. De eigenaars- en
groepsinformatie wordt gebruikt om te bepalen welke bestanden en
apparaten het proces mag openen, waarbij gebruik wordt gemaakt
van de bestandsrechten die eerder zijn behandeld. Veel processen
hebben ook een ouderproces (parent process). Een ouderproces is
een proces dat het nieuwe proces heeft gestart. Als commando's
in een shell worden ingevoerd, start de shell een proces en elk
commando dat draait is ook een proces. De uitzondering hierop is
het speciale proces &man.init.8;. init is
altijd het eerste proces, dus het PID is altijd 1.
init wordt automatisch gestart door de kernel
als &os; opstart.Twee commando's die erg handig zijn om te zien welke
processen er draaien zijn &man.ps.1; en &man.top.1;.
ps wordt gebruikt om een statische lijst op te
vragen van de processen die op het moment van uitvoeren draaien
en kan hun PID, geheugengebruik, de startende commandoregel,
enzovoort, tonen. top geeft alle draaiende
processen weer en werkt de status elke paar seconden bij zodat
interactief wordt weergegeven wat een computer aan het doen
is.Standaard laat ps alleen zien welke
commando's draaien waarvan de gebruiker die het uitvoert de
eigenaar is:&prompt.user; ps
PID TT STAT TIME COMMAND
298 p0 Ss 0:01.10 tcsh
7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
48730 p0 IW 0:00.00 (dns helper) (navigator-linux-)
72210 p0 R+ 0:00.00 ps
390 p1 Is 0:01.14 tcsh
7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y
6688 p3 IWs 0:00.00 tcsh
10735 p4 IWs 0:00.00 tcsh
20256 p5 IWs 0:00.00 tcsh
262 v0 IWs 0:00.00 -tcsh (tcsh)
270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc
285 v0 S 0:38.45 /usr/X11R6/bin/sawfishIn het bovenstaande voorbeeld is de uitvoer van &man.ps.1;
georganiseerd in een aantal kolommen. PID
is het proces ID. PIDs worden toegekend vanaf 1 en lopen op tot
99999. Als ze allemaal zijn gebruikt, worden ze hergebruikt. De
TT kolom toont de tty vanwaar het programma
draait en wordt nu buiten beschouwing gelaten.
STAT toont de huidige staat van het programma
en ook deze kolom wordt buiten beschouwing gelaten.
TIME is de hoeveelheid tijd die het programma
gedraaid heeft op de CPU. Dit is meestal niet de verstreken
tijd vanaf het moment dat het programma is gestart. Veel
programma's wachten omdat er alleen gebruik wordt gemaakt van de
CPU als er iets voor het programma te doen is. Als laatste is
COMMAND de commandoregel die gebruikt is
om het programma te starten.&man.ps.1; ondersteunt een aantal opties die de informatie
wijzigen die wordt weergegeven. Één van de meest
nuttige combinaties is auxww. De optie
toont informatie over alle draaiende
processen, niet alleen die van de gebruiker die is aangemeld. De
optie toont de gebruikersnaam van de
proceseigenaar, evenals geheugengebruik. De optie
toont informatie over daemonprocessen en met
de optie laat &man.ps.1; de volledige
commandoregel zien, in plaats van een mogelijk afgekorte regel
omdat die te lang is om op het scherm te passsen..De uitvoer van &man.top.1; is hetzelfde:&prompt.user; top
last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10
47 processes: 1 running, 46 sleeping
CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle
Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top
7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14
281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA
296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm
48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu
175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd
7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt
...De uitvoer is gesplitst in twee secties. De kop (de eerste
vijf regels) toont het laatst uitgegeven PID, de gemiddelde
systeembelasting (hoe druk is een systeem), de uptime van het
systeem (tijd verstreken sinds laatste reboot) en de huidige
tijd. De andere cijfers in de kop tonen hoeveel processen er
draaien (in dit geval 47) , hoeveel geheugen en swap er gebruikt
wordt en hoeveel processortijd het systeem besteed aan
verschillende taakgroepen.Daaronder staat een serie van kolommen die soortgelijke
informatie bevatten als de uitvoer van &man.ps.1;. Zo zijn het
PID, de gebruikersnaam, de hoeveelheid processortijd en het
commando dat gebruikt is om het proces te starten te zien.
&man.top.1; laat standaard ook zien hoeveel geheugen er gebruikt
wordt door een proces. Dit staat in twee kolommen waarbij in de
eerste kolom het maximale geheugengebruik wordt getoond en in de
tweede kolom het huidige geheugengebruik. Maximale gebruik is
de hoeveelheid geheugen die het proces nodig had in de tijd dat
het bestaat en het residente gebruik is hoeveel er op het moment
van weergeven gebruikt wordt. In dit voorbeeld is zichtbaar dat
&netscape; bijna 30 MB RAM nodig
had, maar op het moment van uitvoeren 9 MB verbruikt.&man.top.1; werkt het beeld automatisch iedere twee seconden
bij. Dat kan gewijzigd worden met de optie
.Daemons, signalen en het stoppen van processenAls een gebruiker een editor draait is het makkelijk om de
editor te besturen, te vertellen om bestanden te openen, etc.
Dit kan omdat de editor de mogelijkheden geeft om dat te doen en
omdat de editor gekoppeld is aan een
terminal. Sommige programma's zijn niet
ontworpen om te draaien met continue gebruikersinvoer, dus
als zij de kans krijgen ontkoppelen zij zich van de terminal.
Een webserver reageert bijvoorbeeld de hele dag op webaanvragen
en heeft eigenlijk geen input van een lokale gebruiker nodig.
Programma's die email van locatie naar locatie transporteren zijn
een ander voorbeeld.Deze programma's heten daemons.
Daemons waren karakters in de Griekste mythologie, goed noch
slecht, ze waren dienende geesten die op grote schaal nuttige
dingen deden voor de mensheid. Net zoals de huidige webservers
en mailservers nuttige dingen doen. Dit is waarom de mascotte
voor BSD al lang een vrolijk kijkende daemon met puntoren en een
drietand is.Er is een overeenkomst om programma's die meestal draaien als
daemon te voorzien van het achtervoegsel d.
BIND is de Berkeley Internet Name
Daemon (het echte programma heet named), de
Apache webserver heet
httpd, de printerspooldriver heet
lpd, etc. Deze overeenkomst geldt niet
altijd. De hoofd maildaemon voor
Sendmail heet bijvoorbeeld
sendmail en niet
maild.Soms is communicatie met een daemon nodig. Deze
communicatie heet signaleren (signals).
Er kan met een daemon (of met elk ander draaiend proces)
gecommuniceerd worden door er een signaal naartoe te sturen. Er
zijn een verschillende signalen. Sommige hebben een specifieke
bedoeling, andere worden geïntrepeteerd door de applicatie.
In de documentatie van de applicatie staat hoe de applicatie
signalen intrepeteert. Er kan alleen een signaal naar een proces
gezonden worden waar de uitvoerende gebruiker eigenaar van is.
Als met &man.kill.1; of &man.kill.2; een signaal naar een proces
van een andere gebruiker wordt gestuurd, wordt de toegang
geweigerd. De enige uitzondering hierop is de
root gebruiker, die signalen naar processen
van alle gebruikers kan sturen.&os; stuurt soms ook signalen naar applicaties. Als een
applicatie slecht geschreven is en hij probeert geheugen te
benaderen waar hij niet naartoe mag, stuurt &os; het proces een
Segmentation Violation signaal
(SIGSEGV). Als een applicatie de
systeemaanroep &man.alarm.3; heeft gebruikt om na een bepaalde
periode een alarm te ontvangen, wordt er een Alarm signaal
heen gestuurd (SIGALRM), etc.Twee signalen kunnen gebruikt worden om een proces te
stoppen: SIGTERM en
SIGKILL. SIGTERM is de
nette manier om een proces te killen. Het proces kan het signaal
afvangen, begrijpen dat de eigenaar wil dat
het wordt afgesloten, wellicht logboekbestanden sluiten die
geopend zijn en alle onderhanden activiteiten afhandelen. In een
aantal gevallen kan een proces SIGTERM
negeren: als het midden in een taak zit die niet beëindigd
kan worden.SIGKILL mag niet worden genegeerd door een
proces. Dit is het Wat je ook aan het doen bent, stop er
nu mee signaal. Na een SIGKILL
stopt &os; het proces meteen.
Dit is niet geheel waar. Er zijn een aantal dingen
die niet onderbroken kunnen worden. Als het proces
bijvoorbeeld een bestand probeert uit te lezen dat op een
andere computer in het netwerk staat en de andere computer
is verdwenen (uitgezet of het netwerk heeft een fout), dan
wordt er gezegd dat het proces niet
onderbroken kan worden. Uiteindelijk loopt
het proces uit de tijd, meestal na twee minuten. Zodra het
uit de tijd loopt, wordt het proces alsnog gestopt.Andere veelgebruikte signalen zijn SIGHUP,
SIGUSR1 en SIGUSR2. Dit
zijn algemeen bruikbare signalen en verschillende applicaties
zullen verschillend reageren als ze verstuurd worden.Stel dat het bestand met instellingen voor de webserver is
aangepast. Dan moet aan de webserver verteld worden dat die de
instellingen opnieuw moet lezen. Hiervoor zou
httpd gestopt en gestart kunnen worden, maar
dit resulteert in een korte onderbreking van de webserverdienst,
wat ongewenst kan zijn. De meeste daemons zijn geschreven om te
reageren op het SIGHUP signaal door het
opnieuw inlezen van het instellingenbestand. Dus in plaats van
het stoppen en herstarten van httpd kan het
SIGHUP signaal gezonden worden. Omdat er geen
standaard manier is om op deze signalen te reageren, reageren
verschillende daemons anders. Het is verstandig eerst de
documentatie van de daemon in kwestie te lezen.Zoals onderstaand voorbeeld laat zien, worden signalen door
&man.kill.1; verzonden.Het versturen van een signaal naar een procesDit voorbeeld toont hoe een signaal naar &man.inetd.8;
wordt verstuurd. Het bestand met instellingen voor
inetd is
/etc/inetd.conf en
inetd leest dit bestand opnieuw in als er
een SIGHUP wordt verstuurd.Eerst moet het proces ID worden opgezocht van het proces
waar een signaal naar verzonden moeten worden. Dit kan door
&man.ps.1; en &man.grep.1; te gebruiken. &man.grep.1; wordt
gebruikt om in de uitvoer te zoeken en te kijken naar de
string die de gebruiker opgeeft. Dit commando wordt gedraaid
als een normale gebruiker en &man.inetd.8; wordt gedraaid
onder de gebruiker root, dus aan
&man.ps.1; moet de optie meegegeven
worden.&prompt.user; ps -ax | grep inetd
198 ?? IWs 0:00.00 inetd -wWDus PID van &man.inetd.8; is 198. In sommige gevallen
kan grep inetd ook voorkomen in de
uitvoer. Dit komt door de manier waarop &man.ps.1; de lijst
van draaiende processen moet vinden.Met &man.kill.1; kan het signaal verzonden worden. Omdat
&man.inetd.8; wordt gedraaid door root
moet &man.su.1; gebruikt worden om root
te worden.&prompt.user; suPassword:
&prompt.root; /bin/kill -s HUP 198Zoals zovaak met &unix; commando's, geeft &man.kill.1;
geen uitvoer als het succesvol uitgevoerd is. Als een
signaal wordt verzonden naar een proces waarvan de gebruiker
niet zelf de eigenaar is, dan is de melding: kill:
PID: Operation not
permitted. Als het PID verkeerd wordt
ingevuld, wordt het signaal naar het verkeerde proces
verzonden, wat slecht kan zijn, of, als de gebruiker geluk
heeft, wordt het verzonden naar een PID dat momenteel niet in
gebruik is, waarop de foutmelding kill:
PID: No such process
verschijnt.Waarom /bin/kill gebruiken?Veel shells leveren kill als
ingebouwd commando. Dat betekent dat de shell het
signaal direct verstuurt in plaats van door het starten van
/bin/kill. Dit kan erg nuttig zijn,
maar verschillende shells hebben een verschillende
opdrachtregel voor het specificeren van de naam van het
signaal dat verstuurd moet worden. In plaats van ze
allemaal te leren, is het eenvoudiger om gewoon
/bin/kill PID
te gebruiken.Andere signalen versturen werkt bijna hetzelfde door
TERM of KILL op de
commandoregel te vervangen door wat nodig is.Het stoppen van willekeurige processen op een systeem is
meestal een slecht idee. In het bijzonder bij &man.init.8; met
proces ID 1. Het draaien van /bin/kill -s KILL
1 is een snelle manier om een systeem uit te
zetten. Argumenten die aan &man.kill.1; worden meegegeven
moeten altijd twee keer gecontroleerd
worden voordat op Enter
gedrukt wordt.ShellsshellscommandoregelIn &os; wordt een groot deel van het alledaagse werk
gedaan vanuit een omgeving met een commandoregel die shell heet.
De grootste taak van een shell is om commando's van het
invoerkanaal op te vangen en deze uit te voeren. Veel shells
hebben ook functies ingebouwd om mee te helpen om alledaagse
taken zoals bestandsbeheer, bestandsglobbing, bestanden wijzigen
vanaf de commandoregel, commandomacro's schrijven en uitvoeren en
omgevingsvariabelen instellen en wijzigen. &os; heeft een aantal
shells bijgeleverd zoals sh, de Bourne Shell
en tcsh, de verbeterde C-shell. Er zijn veel
andere shells beschikbaar in de &os; Portscollectie zoals
zsh en bash.Welke shell gebruiken? Dit is een kwestie van smaak. Een
C–programmeur voelt zich misschien prettiger bij een
C–achtige shell, zoals tcsh. Een
voormalig &linux; gebruiker of iemand die niet veel ervaring
heeft met een &unix; commandoregel interface wil misschien
bash proberen. Elke shell heeft zijn eigen
unieke eigenschappen die wel of niet werken voor een bepaalde
gebruiker.Een standaard optie in een shell is bestandsnaam completie.
Door het intikken van de eerste paar letters van een commando of
bestandsnaam, kan de shell opdracht gegeven worden om automatisch
de rest het commando of bestandsnaam toe te voegen met de
Tab toets op het toetsenbord. Stel dat er twee
bestanden zijn met de namen foobar en
foo.bar en foo.bar moet
verwijderd worden. Dan kan op het toetsenbord
rm fo[Tab].[Tab]
ingevoerd worden.De shell geeft rm foo[BEEP].bar
weer.De [BEEP] geeft aan dat de shell in staat was om de
bestandsnaam te completeren omdat er meer dan één
soortgelijk bestand was. foobar en
foo.bar beginnen met fo,
maar het was in staat om het af te maken tot
foo. Na het invoeren van een
. en daarna Tab, is de shell
in staat om de rest van de bestandsnaam aan te vullen.omgevingsvariabelenEen andere optie van de shell is het gebruik van
omgevingsvariabelen. Omgevingsvariabelen zijn variabele
sleutelparen die opgeslagen zijn in de omgevingsruimte van een
shell. Deze ruimte kan uitgelezen worden door elk programma
dat door de shell wordt uitgevoerd en bevat dus veel
programmainstellingen. Hieronder staat een lijst van standaard
omgevingsvariabelen en wat ze betekenen:omgevingsvariabelenVariabeleOmschrijvingUSERGebruikersnaam van de gebruiker die is
aangemeld.PATHEen lijst van mappen, gescheiden door een
: voor het zoeken naar binaire
bestanden.DISPLAYNetwerknaam van het X11 scherm om verbinding mee
te maken, indien beschikbaar.SHELLDe huidige shell.TERMDe naam van de huidige gebruikersterminal.
Gebruikt om de mogelijkheden van de terminal te
bepalen.TERMCAPDatabaseregel met terminal escape codes voor het
uitvoeren van diverse terminalfuncties.OSTYPEType besturingssysteem, bijvoorbeeld &os;.MACHTYPEDe CPU architectuur waar het systeem op
draait.EDITORDe teksteditor waar de gebruiker de voorkeur aan
geeft.PAGERDe tekstpager waar de gebruiker de voorkeur aan
geeft.MANPATHLijst van mappen gescheiden door een
: voor het zoeken naar
handleidingen.Bourne shellsHet instellen van omgevingsvariabelen verschilt van shell tot
shell. In de C–achtige shells zoals
tcsh en csh moet
setenv gebruikt worden om omgevingsvariabelen
in te stellen. In Bourne-shells zoals sh en
bash moet export gebruikt
worden om de omgevingsvariabelen in te stellen. Om bijvoorbeeld
de omgevingsvariabele EDITOR te wijzigen naar
/usr/local/bin/emacs onder
csh of tcsh moet het
volgende gedaan worden:&prompt.user; setenv EDITOR /usr/local/bin/emacsIn Bourne shells is dat:&prompt.user; export EDITOR="/usr/local/bin/emacs"Met de meeste shells kunnen de omgevingsvariabelen ook
weergegeven worden door een $ karakter voor
de variabelenaam te plaatsen op de commandoregel.
echo $TERM zou weergeven wat er in
$TERM gezet is, omdat de shell
$TERM uitbreid en het resultaat doorgeeft aan
echo.Shells kennen veel speciale karakters, die meta-karakters
heten, als speciale weergaves van data. De meest voorkomende is
het karakter * karakter, dat elk
karakter in een bestandsnaam voorstelt. Deze speciale
meta-karakters kunnen gebruikt worden om bestandsnaamglobbing te
doen. Door bijvoorbeeld echo * in te voeren,
is het resultaat bijna hetzelfde als door het uitvoeren van
ls, omdat de shell alle bestanden die
van toepassing zijn aan echo geeft om ze daarna te tonen.Om te voorkomen dat de shell deze speciale tekens
verwerkt, kunnen ze uitgeschakeld worden door er het backslash
karakter (\) voor te plaatsen.
echo $TERM print de inhoud van TERM naar het
scherm. echo \$TERM print $TERM zoals het
geschreven is.Shell wijzigenDe makkelijkste manier om de shell te wijzigen is
door het chsh commando te gebruiken.
Door chsh te starten wordt de editor gestart
die in de EDITOR omgevingsvariable staat. Als
deze niet is ingesteld, wordt vi
gestart. In de editor kan de regel waarop
Shell: staat gewijzigd worden.Aan chsh kan ook de optie
meegegeven worden. Dit stelt de shell in,
zonder dat een editor gebruikt hoeft te worden. Als de shell
bijvoorbeeld gewijzigd moet worden in bash,
kan dat als volgt:&prompt.user; chsh -s /usr/local/bin/bash
- Dit kan ook door chsh zonder parameters
- te starten en de regel met daarin de shell te wijzigen.
-
De te gebruiken shell moet
geregistreerd zijn in /etc/shells. Als
een shell uit de Portscollectie
is geïnstalleerd, is dit meestal automatisch gebeurd.
Als de shell met de hand is geïnstalleerd moet het
onderstaande gedaan worden.Als bijvoorbeeld bash met de hand
geïnstalleerd is in /usr/local/bin,
dient het onderstaande te gebeuren:&prompt.root; echo "/usr/local/bin/bash" >> /etc/shellsHierna kan chsh weer gedraaid
worden.TeksteditorsteksteditorseditorsEen groot deel van de instellingen in &os; wordt gemaakt door
het bewerken van tekstbestanden. Hierdoor is het een goed
idee om bekend te zijn met een tekstverwerker. &os; heeft er een
paar in het basissysteem en veel anderen zijn beschikbaar via de
Portscollectie.eeeditorseeDe makkelijkste en simpelste editor om te leren is de editor
ee, wat easy editor
betekent. Om ee te starten, moet op
de commandoregel ee
bestandsnaam ingevoerd
worden, waar bestandsnaam de naam is
van het bestand dat bewerkt moet worden. Om bijvoorbeeld
/etc/rc.conf te bewerken, wordt
ee /etc/rc.conf ingegeven. Eenmaal in
ee worden alle manipulatie commando's die de
editor heeft weergegeven aan de bovenkant van het scherm. Het
karakter dakje ^ staat voor de toets
CTRL op het toetsenbord, dus
^e vormt de toetscombinatie Ctrle.
Om uit ee te komen wordt op de toets
Esc gedrukt en daar kan gekozen worden om de
editor te verlaten. De editor vraagt dan of de wijzigingen
bewaard moeten worden als het bestand veranderd is.vieditorsviEmacseditorsEmacs&os; heeft ook uitgebreidere tekstverwerkers, zoals
vi, in het basissysteem en andere
editors als Emacs en
vim maken onderdeel uit van de &os;
Portscollectie (editors/emacs
en editors/vim). Deze
editors leveren veel meer functionaliteit en kracht maar zijn
lastiger om te leren. Als echter veel met tekstverwerking gedaan
wordt, is het leren van een krachtige editor als
vim of
Emacs verstandig omdat deze
uiteindelijk veel tijd kan besparen.Apparaten en apparaatnodesApparaat is een term die meestal wordt gebruikt
voor hardwareonderdelen in een systeem, zoals schijven, printers
grafische kaarten en toetsenborden. Als &os; opstart laat het
vooral zien welke apparaten gedetecteerd worden. Deze
opstartmeldingen kunnen nagekeken worden door het bestand
/var/run/dmesg.boot te bekijken.acd0 is bijvoorbeeld de eerste IDE
cd-rom drive, terwijl kbd0 staat voor
het toetsenbord.Veel van deze apparaten moeten in een &unix;
besturingssysteem benaderd worden via speciale bestanden die
apparaatnodes heten en te vinden zijn in de map
/dev.Apparaatnodes makenAls een nieuw apparaat wordt toegevoegd aan een systeem of
als ondersteuning voor extra apparaten wordt gecompileerd, dan
moeten misschien één of meer apparaatnodes voor
het nieuwe apparaat gemaakt worden.Het MAKEDEV scriptOp systemen zonder DEVFS (dit is het
geval voor alle &os; versies vóór 5.0) worden
apparaatnodes gemaakt door het script &man.MAKEDEV.8; zoals
hieronder wordt aangegeven:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV ad1Dit voorbeeld maakt de juiste apparaatnode voor de tweede
IDE drive wanneer die geïnstalleerd is.DEVFS (apparaatbestandssysteem -
DEVice File System) Het apparaatbestandssysteem of DEVFS,
levert toegang tot de apparaatruimte van de kernel in het
globale bestandssysteem. In plaats van dat het nodig is om
apparaatnodes te maken en te wijzigen, doet
DEVFS dit.In &man.devfs.5; staat meer informatie.DEVFS wordt standaard gebruikt in
&os; 5.0 en verder.Binaire formatenOm te kunnen begrijpen waarom &os; gebruik maakt van
het &man.elf.5; formaat, is het belangrijk op de hoogte zijn
van de drie dominante uitvoerbare formaten voor
&unix;:&man.a.out.5;Het oudste en klassieke &unix; object
formaat. Het gebruikt een korte en compacte kop met een
magisch nummer aan het begin dat veel gebruikt wordt
om het formaat aan te geven (&man.a.out.5; geeft meer
details). Het bevat drie laadbare segmenten: .tekst, .data
en .bss, een symbolentabel en een stringtabel.COFFHet SVR3 object formaat. De kop bestaat uit een
sectietabel, dus er kunnen meer dan alleen .tekst, .data,
en .bss secties zijn.&man.elf.5;De opvolger van COFF, heeft
meerdere secties en 32-bit of 64-bit als mogelijke waarden.
Één nadeel: ELF was ook
ontworpen met de aanname dat er maar één
ABI per systeemarchitectuur zou zijn. Deze aanname is
eigenlijk redelijk incorrect, zelfs niet in de
commerciële SYSV wereld (die op zijn minst drie ABIs
heeft: SRV4, Solaris en SCO).&os; probeert om dit probleem heen te werken door
een hulpprogramma te leveren voor het
brandmerken van een bekend
ELF uitvoerbaar bestand met informatie
over de ABI waar hij mee kan werken. In &man.brandelf.1;
staat meer informatie.&os; komt uit het klassieke kamp en gebruikt
het &man.a.out.5; formaat, een technologie die zich bewezen heeft
door meerdere generaties van BSD versies heen, tot het begin van
de 3.X versies. Alhoewel het al mogelijk was om
ELF programma's en kernels te bouwen en te
draaien op een &os; systeem , verzette &os; zich eerst tegen de
druk om over te schakelen naar ELF als
standaard formaat. Waarom? Toen het &linux; kamp hun pijnlijke
wissel maakte naar ELF, was dat niet zozeer
om van het a.out formaat af te komen, maar
meer omdat van het op de inflexibele jump-tabel gebaseerde
gedeelde bibliotheekmechanisme af te komen, die het maken van
gedeelde bibliotheken erg moeilijk maakte voor bedrijven en
ontwikkelaars. Omdat de ELF hulprogramma's
een oplossing voor het gedeelde bibliotheek probleem waren en
algemeen gezien werden als een stap vooruit,
werd de migratie geaccepteerd als noodzakelijk kwaad en werd de
wissel uitgevoerd. Het gedeelde bibliotheek mechanisme van &os;
is meer gebaseerd op het gedeelde bibliotheek mechanisme van
Sun's &sunos; en daardoor erg makkelijk te gebruiken.Waarom zijn er zoveel verschillende formaten?In het duistere donkere verleden was er simpele hardware.
Deze simpele hardware ondersteunde een simpel klein systeem.
a.out was volledig adequaat voor de taak om
binaire bestanden op dat simpele systeem te vertegenwoordigen
(een PDP-11). Toen mensen &unix; van deze machine gingen porten,
behielden ze het a.out formaat omdat het
voldeed voor de vroege ports van &unix; naar architecturen
als Motorola 68k, VAXen, enzovoort.Toen besloot een slimme hardware engineer dat als hij de
software kon forceren om wat simpele truckjes te doen, hij in
staat was om een paar onderdelen van het ontwerp af te schaven,
waardoor zijn processorcore sneller kon draaien. Terwijl men
probeerde om het met deze nieuwe vorm van hardware te laten
werken (vandaag de dag beter bekend als RISC),
was a.out te beperkt voor deze hardware.
Dus werden er vele formaten ontworpen om betere prestaties te
krijgen uit deze hardware dan het simpele formaat
a.out kon leveren. Toen werden
COFF, ECOFF en een paar
andere duistere formaten uitgevonden en werden de limieten
verkend, waarna men besloot om zich te richten op
ELF.Daarnaast werden programma's groter en bleven schijven (en
fysiek geheugen) relatief klein, zodat het concept van een
gedeelde bibliotheek werd geboren. Het VM systeem werd ook meer
verfijnd. Terwijl al deze verbeteringen bereikt werden door het
a.out formaat, werd het nut met elke nieuwe
eigenschap verder uitgerekt. Daarnaast wilde men dingen
dynamisch laden tijdens het starten of delen weggooien nadat het
programma zijn intiële code had gedraaid om te blijven
hangen in het hoofdgeheugen en in de wisselbestanden. Talen
werden verder verfijnd en men wilde dat code automatisch werd
aangeroepen voor main. Er werden veel hacks gedaan in het
a.out formaat om alles mogelijk te maken en
dit werkte ook enige tijd. Na verloop van tijd was
a.out niet meer in staat om alle problemen
te adresseren zonder toenemende overhead in code en
complexibiliteit. Hoewel ELF veel van deze
problemem verhielp, was het moeilijk om te wisselen naar een
systeem dat compleet anders werkte. Dus moest
ELF wachten totdat het pijnlijker was om
a.out te behouden dan het te migreren naar
ELF.Met het verstrijken van de tijd, werden de bouwprogramma's
die &os; heeft afgeleid van hun bouwprogramma's (vooral de
assembler en de loader) ontwikkeld in twee parallel lopende
takken. De &os; tree voegde gedeelde bibliotheken toe en heeft
wat bugs opgelost. De mensen van GNU die deze programma's hebben
geschreven, hebben ze herschreven en simpelere ondersteuning
toegevoegd voor het bouwen van cross-compilers, waarbij
verschillende formaten zo nodig ingevoegd konden worden,
enzovoort. Omdat veel mensen cross-compilers wilden bouwen die
gericht waren op &os;, hadden die pech, omdat de oudere broncode
van &os; voor as en
ld niet opgewassen was tegen deze
taak. De nieuwe GNU programmaketen
(binutils) ondersteunt
cross-compiling, ELF, gedeelde bibliotheken,
C++ extensies, enzovoort. Daarnaast leveren veel
leverancierds ELF binaire bestanden en is het
goed voor &os; om het te draaien.ELF heeft meer expressiemogelijkheden dan
a.out en geeft meer
uitbreidingsmogelijkheden aan het basissysteem. De
ELF hulpprogramma's worden beter onderhouden
en geven de mogelijkheid tot ondersteuning voor cross compilatie,
wat voor veel mensen belangrijk is. ELF is
misschien iets trager dan a.out, maar
het meten daarvan kan vrij lastig zijn. Er zijn ook ontelbare
verschillen tussen de twee in hoe ze pages opslaan,
initiële code verwerken, enzovoort. Geen van allen zijn ze
erg belangrijk, maar er zijn verschillen. Na verloop van tijd
verdwijnt de ondersteuning voor a.out uit de
GENERIC kernel en uiteindelijk ook helemaal
uit de kernel als de noodzaak voor a.out
gebaseerde programma's voorbij is.Meer informatieHandleidingenhandleidingenDe meest uitvoerige documentatie van &os; is geschreven
in de vorm van handleidingen. Bijna elk programma op het
systeem heeft een kleine handleiding die uitlegt wat de
basisopties en verschillende argumenten doen. Deze
handleidingen bekeken worden met man. Het
gebruik van man gaat als volgt:&prompt.user; man commandocommando is de naam van het commando
waar meer informatie over getoond moet worden. Om bijvoorbeeld
meer informatie weer te geven over ls kan
het volgende uitgevoerd worden:&prompt.user; man lsDe handleidingen zijn opgedeeld in genummerde
onderdelen:Gebruikerscommando's.Systeemaanroepen en foutnummernummers.Functies in de C bibliotheken.Apparaatdrivers.Bestandsindelingen.Spelletjes en andere afleidingen.Diverse informatie.Systeemonderhoud en commando'sKernelontwikkelaars.In sommige gevallen kan een bepaald onderwerp vaker
voorkomen in een onderdeel van de handleidingen. Er is
bijvoorbeeld een gebruikerscommando chmod
en een systeemaanroep chmod(). In deze
gevallen kan man aangegeven worden welke
documentatie weer te geven door het specificeren van het
onderdeel:&prompt.user; man 1 chmodDit geeft de handleiding van het gebruikerscommando
chmod weer. Verwijzingen naar een bepaald
onderdeel van de handleiding worden traditioneel tussen haakjes
geplaatst: &man.chmod.1; verwijst naar het commando
chmod en &man.chmod.2; verwijst naar de
systeemaanroep.Dit werkt prima als de naam van het commando bekend is en
alleen informatie nodig is over het het commando gebruikt kan
worden, maar wat als de naam van het commando niet bekend is?
Dan kan man gebruikt worden om naar
trefwoorden te zoeken in de commandobeschrijvingen door de
optie te gebruiken:
&prompt.user; man -k mailMet dit commando wordt een overzicht getoond met commando's
die het trefwoord mail in hun omschrijving
hebben. Dit is gelijk aan het commando
apropos.Dus om meer informatie over spannende commando's met een
onbekende functie in /usr/bin te krijgen
is het volgende commando voldoende:&prompt.user; cd /usr/bin
&prompt.user; man -f *Het onderstaande commando resulteert in hetzelfde:&prompt.user; cd /usr/bin
&prompt.user; whatis *Gnu infobestandenFree Software Foundation&os; heeft veel applicaties en hulpmiddelen die gemaakt
zijn door de Free Software Foundation (FSF). Als extraatje
voor de documentatie hebben deze programma's uitgebreidere
html bestanden die infobestanden heten,
die uitgelezen kunnen worden met info of,
als emacs is geïnstalleerd, de
infomodus van emacs.&man.info.1; wordt als volgt gebruikt:&prompt.user; infoh geeft een korte beschrijving en
? toont een een kort
commando–overzicht.
diff --git a/nl_NL.ISO8859-1/books/handbook/book.sgml b/nl_NL.ISO8859-1/books/handbook/book.sgml
index f56ac84605..a2f3561990 100644
--- a/nl_NL.ISO8859-1/books/handbook/book.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/book.sgml
@@ -1,344 +1,343 @@
%books.ent;
%chapters;
%txtfiles;
%pgpkeys;
]>
&os; handboekThe &os; Dutch Documentation ProjectJuni 200419951996199719981999200020012002200320042005The &os; Dutch Documentation Project
&bookinfo.legalnotice;
&tm-attrib.freebsd;
&tm-attrib.3com;
&tm-attrib.3ware;
&tm-attrib.arm;
&tm-attrib.adaptec;
&tm-attrib.adobe;
&tm-attrib.apple;
&tm-attrib.corel;
&tm-attrib.creative;
&tm-attrib.cvsup;
&tm-attrib.heidelberger;
&tm-attrib.ibm;
&tm-attrib.ieee;
&tm-attrib.intel;
&tm-attrib.intuit;
&tm-attrib.linux;
&tm-attrib.lsilogic;
&tm-attrib.m-systems;
&tm-attrib.macromedia;
&tm-attrib.microsoft;
&tm-attrib.netscape;
&tm-attrib.nexthop;
&tm-attrib.opengroup;
&tm-attrib.oracle;
&tm-attrib.powerquest;
&tm-attrib.realnetworks;
&tm-attrib.redhat;
&tm-attrib.sap;
&tm-attrib.sun;
&tm-attrib.symantec;
&tm-attrib.themathworks;
&tm-attrib.thomson;
&tm-attrib.usrobotics;
&tm-attrib.vmware;
&tm-attrib.waterloomaple;
&tm-attrib.wolframresearch;
&tm-attrib.xfree86;
&tm-attrib.xiph;
&tm-attrib.general;
Welkom bij &os;! Dit handboek behandelt de installatie en
het dagelijks gebruik van
&os; &rel2.current;-RELEASE en
&os; &rel.current;-RELEASE. Aan deze
handleiding wordt nog gewerkt, en is het resultaat van het werk
van veel mensen. Veel hoofdstukken of paragrafen bestaan nog
niet en wat bestaat dient soms nog bijgewerkt te worden. Als
de lezer mee wil helpen aan dit project kan een mail gestuurd
worden naar de &a.doc;. De meest recente versie van dit
document is te vinden op de &os; website. Eerdere
versies van dit handboek zijn te vinden op . Het
kan ook gedownload worden in veel verschillende formaten en
compressiewijzen van de &os; FTP
server of een van de vele mirrorsites. Een gedrukt
exemplaar van het handboek is te koop bij de &os; Mall (Engels).
Het handboek kan ook doorzocht
worden.
&chap.preface;
BeginnenDit deel van het &os; handboek is voor gebruikers en
beheerders die net beginnen met &os;. Deze
hoofdstukken:Geven een inleiding in &os;;Lichten het installatieproces toe;Bespreken de &unix; basisbegrippen en grondslag;Tonen hoe de vele aanvullende applicaties
voor &os; geïnstalleerd kunnen worden;Introduceren X, het venstersysteem van &unix;
en gaan uitvoerig in op hoe een bureaubladomgeving wordt
ingesteld die een gebruiker helpt productiever te
zijn.Er is geprobeerd het aantal vooruitwijzingen tot een
minimum te beperken zodat het handboek van begin tot einde
gelezen kan worden zonder bladeren.Algemene takenNa de inleiding gaat dit deel van het &os; handboek over
een aantal vaak gebruikte mogelijkheden van &os;. De volgende
hoofdstukken:Geven een inleiding in populaire en handige desktop
toepassingen: browsers, productieviteitsgereedschappen,
documentviewers, etc;Geven een inleiding in een aantal
multimediatoepassingen die in &os; beschikbaar zijn;Geven uitleg over het proces waarmee een aangepaste
kernel voor &os; kan worden gemaakt om extra
functionaliteit aan een systeen toe te voegen;Beschrijven gedetailleerd het afdruksysteem, zowel voor
met een desktop verbonden als met het netwerk verbinden
printers;Beschrijven hoe applicaties voor &linux; op &os; kunnen
draaien.In een aantal van de hoofdstukken wordt voorkennis
aangeraden. Dit staat vermeld in de inleiding van ieder
hoofdstuk.SysteembeheerDe verdere hoofdstukken van het &os; handboek beslaan alle
aspecten van het &os; systeembeheer. Ieder hoofdstuk begint
met een omschrijving van wat de leerstof in een hoofdstuk is en
wat de verwachte voorkennis is.De hoofdstukken zijn ook ontworpen om gelezen te worden als
de specifieke informatie nodig is. Ze hoeven niet in een
bepaalde volgorde gelezen te worden en ze hoeven ook niet
gelezen te zijn voordat een gebruiker met &os; aan de slag
kan.NetwerkcommunicatieAls het om servers gaat die hoge prestaties moeten leveren,
wordt wereldwijd vaak &os; toegepast. De hoofdstukken in dit
deel behandelen:Seriëe communicatie;PPP en PPP over Ethernet;E-mail;Netwerkdiensten;Firewalls;Overig gevorderd netwerken.Deze hoofdstukken zijn geschreven om gelezen te worden als
de informatie nodig is. Ze hoeven niet allemaal in een
bepaalde volgorde gelezen te worden. Ze hoeven ook niet
allemaal gelezen te worden om &os; in een netwerkomgeving in te
zetten.Appendix
&chap.colophon;
diff --git a/nl_NL.ISO8859-1/books/handbook/colophon.sgml b/nl_NL.ISO8859-1/books/handbook/colophon.sgml
index 8abc45bb44..bc0a0aaf81 100644
--- a/nl_NL.ISO8859-1/books/handbook/colophon.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/colophon.sgml
@@ -1,34 +1,33 @@
Dit boek bevat het gecombineerde werk van honderden
- vrijwilligers die bijdragen aan
- Het FreeBSD Documentatie Project. De tekst is
- geschreven in SGML volgens de DocBook DTD en wordt vanuit
- SGML geformatteerd naar vele verschillende presentatieformaten
- met gebruik van de open source DSSSL engine
- Jade. De presentatie-instructies voor
- Jade zijn verkregen door uitbreiding van
- Norm Walsh's DSSSL stijlbladen. De gedrukte versie van dit boek zou
- niet mogelijk zijn geweest zonder Donald Knuth's
- &tex; typesetting taal,
+ vrijwilligers die bijdragen aan Het &os; Documentatie
+ Project. De tekst is geschreven in SGML volgens de
+ DocBook DTD en wordt vanuit SGML geformatteerd naar vele
+ verschillende presentatieformaten met gebruik van de open source
+ DSSSL engine Jade. De
+ presentatie-instructies voor Jade zijn
+ verkregen door uitbreiding van Norm Walsh's DSSSL stijlbladen. De
+ gedrukte versie van dit boek was niet mogelijk geweest zonder
+ Donald Knuth's &tex; typesetting taal,
Leslie Lamport's LaTeX, of Sebastian
- Rahtz's JadeTeX macro pakket.
+ Rahtz's JadeTeX macropakket.
-
diff --git a/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml
index a605a054ea..e1c369fbb1 100644
--- a/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml
@@ -1,3387 +1,3387 @@
ChernLeeGeschreven door MikeSmithNaar een tutorial van MattDillonTevens gebaseerd op tuning(7) door DannyPanstersVertaald door Instellingen en optimalisatieOverzichtsysteeminstellingensysteemoptimalisatieSysteeminstellingen zijn een belangrijk aspect van &os;.
Correcte instellingen helpen moeilijkheden bij toekomstige
upgrades te voorkomen. In dit hoofdstuk wordt het instellen van
&os; beschreven, alsmede een aantal prestatiebevorderende
maatregelen waarmee een &os; systeem geoptimaliseerd kan
worden.Na het lezen van dit hoofdstuk weet de lezer:Hoe efficiënt om te gaan met bestandssystemen en
wisselpartities;De grondbeginselen van het rc.conf
instellingensysteem en van het opstarten van toepassingen
(diensten) met
/usr/local/etc/rc.d;Hoe een netwerkkaart ingesteld en getest wordt;Hoe virtuele hosts op netwerkapparatuur ingesteld
worden;Hoe de instellingenbestanden in
/etc gebruikt worden;Hoe &os; geoptimaliseerd kan worden met
sysctl variabelen;Hoe schijfprestaties te verbeteren en hoe
kernelbeperkingen gewijzigd kunnen worden.Veronderstelde voorkennis:De &unix; en &os; grondbeginselen () begrijpen;Bekend zijn met de grondbeginselen van kernelinstellingen
en compilatie ().Initiële instellingenPartitionerenpartitioneren/etc/var/usrBasispartitiesBij het aanmaken van bestandssystemen met
&man.disklabel.8; of &man.sysinstall.8; is het van belang
dat op een harde schijf de data-overdracht het snelst is aan
de buitenste sporen en het langzaamst aan de binnenste.
Kleinere en veelgebruikte bestandssystemen kunnen daarom het
beste aan het begin van de schijf geplaatst worden, terwijl
grotere partities als /usr meer naar het
einde van de schijf geplaatst kunnen worden. Het is een goed
idee om partities aan te maken in deze of gelijksoortige
volgorde: root, swap, /var,
/usr.De grootte van /var
hangt af van de wijze waarop de machine gebruikt gaat worden.
/var wordt gebruikt voor onder meer
mailboxen, logbestanden en printerdata en -wachtrijen.
Mailboxen en logbestanden kunnen onverwacht groot worden,
afhankelijk van het aantal systeemgebruikers en de bewaarduur
van logbestanden. Meestal is minder dan een gigabyte
voldoende. /var/tmp moet wel groot
genoeg moet zijn om packages te kunnen bevatten.De partitie /usr bevat veel van de
benodigde systeembestanden. Die bevat tevens de
&man.ports.7;collectie (aanbevolen) en de broncode
(optioneel). Beide zijn optioneel tijdens de installatie.
Voor deze partitie wordt tenminste 2 gigabyte
aanbevolen.Het is verstandig rekening te houden met de vereiste
schijfruimte bij het kiezen van partitiegroottes. Als in een
partitie onvoldoende vrije schijfruimte is, terwijl een
andere vrijwel niet gebruikt wordt, is dat een vervelend
en niet optimaal oplosbaar probleem.&man.sysinstall.8;'s Auto-defaults
partitiekeuze kan in de ervaring van sommige gebruikers
mogelijk te kleine /var en
/ partities opleveren. Partitioneren
moet verstandig en niet te zuinig gebeuren.Wisselpartities (swap)swap groottewisselpartitiewisselpartitiegrootteDe vuistregel is dat het wisselbestand ongeveer het
dubbele van de grootte van het systeemgeheugen (RAM) moet
zijn. Als de machine bijvoorbeeld 128 megabytes
geheugen heeft, kan het beste een wisselbestand van
(tenminste) 256 megabytes gebruikt worden. Minder
dan 256 megabytes swap is in dit geval af te raden.
Systemen met weinig geheugen kunnen overigens beter
functioneren met meer swap. Ook is het verstandig rekening
te houden met eventuele geheugenuitbreiding in de toekomst.
Bovendien zijn de VM paging algoritmen van de kernel zo
afgestemd dat ze het beste presteren bij een wisselbestand
van tenminste tweemaal de grootte van het geheugen. Een te
kleine swap kan dus inefficiënties in de VM code tot
gevolg hebben en mogelijk problemen veroorzaken als het
systeemgeheugen uitgebreid wordt.Op grotere systemen met meerdere SCSI schijven (of
meerdere IDE schijven op verschillende controllers) is het
aan te raden om op elke schijf een wisselpartitie in te
stellen (dit kan tot en met vier schijven), elk met ongeveer
dezelfde grootte. De kernel kan met arbitraire groottes
werken, maar interne datastructuren schalen tot viermaal de
grootste swappartitie. De kernel kan de beschikbare ruimte
voor het wisselbestand het meest optimaal indelen als de
partities ongeveer even groot zijn. Een grote swap is prima,
ook als ze zelden gebruikt wordt. Zo kan het gemakkelijker
zijn om een (uit de hand gelopen) proces dat het systeem
grotendeels bezet houdt te beëindigen, voordat er
opnieuw opgestart moet worden.Waarom partitioneren?Waarom niet één enkele grote partitie
gebruiken? Er zijn verscheidene redenen waarom dit niet zo'n
goed idee is. De verschillende partities hebben hun eigen
karakteristieke operationele gedrag en vereisten. Door ze te
scheiden zijn er betere mogelijkheden om het systeem te
optimaliseren. Vanaf de / en
/usr partities wordt bijvoorbeeld vooral
gelezen en er wordt weinig naar geschreven, terwijl er in
/var en /var/tmp
zowel veel gelezen als geschreven wordt.Door een systeem goed te partitioneren wordt vermeden dat
fragmentatie die optreedt in de kleinere partities met veel
schrijfactiviteit doorsijpelt naar partities die vooral
lees-intensief zijn. Door schrijf-intensieve partities aan
het begin van de schijf te plaatsen, zijn de prestaties wat
betreft invoer/uitvoer het beste is daar waar het het
meest nodig is. Ofschoon er natuurlijk ook de best mogelijke
in/uit prestaties wenselijk zijn in de grotere partities,
weegt het plaatsen van deze bestandssystemen aan het begin
van de schijf niet tegen de voordelen van het plaatsen van
/var aan het begin van de schijf (na
root en swap) voor de totale snelheid van het systeem.
Tenslotte zijn er veiligheidsoverwegingen. Een compacte en
nette rootpartitie die vrijwel alleen-lezen is, heeft een
betere kans om een nare crash te overleven.Hoofdinstellingenrc bestandenrc.confDe voornaamste lokatie voor systeeminstellingen is
/etc/rc.conf. Dit bestand bevat een scala
aan instellingen, die gebruikt wordt om het systeem in te stellen
bij het opstarten. De naam impliceert dit al. Het is informatie
voor de rc* bestanden (rc staat voor
resource configuration of
broninstellingen).De systeembeheerder wordt geacht regels toe te voegen aan
rc.conf om de standaardinstellingen uit
/etc/defaults/rc.conf aan te passen. Het
standaardbestand moet niet letterlijk gekopiëerd worden
naar /etc. Het bevat standaardwaardes en is
niet bedoeld als voorbeeld. Alle wijzigingen die specifiek
zijn voor een systeem horen in /etc/rc.conf
thuis.In een clusterscenario is het nuttig om systeemspecifieke
instellingen te scheiden van algemene instellingen die voor het
hele cluster gelden. Hiervoor kunnen een aantal strategieën
worden gebruikt. De aanbevolen benadering is om gedeelde
instellingen in een ander bestand te plaatsen, zoals
/etc/rc.conf.site en dit invoegen in
/etc/rc.conf, wat verder alleen
systeemspecifieke informatie bevat.Aangezien rc.conf gelezen wordt door
&man.sh.1; is dit eenvoudig te bereiken:rc.conf:. /etc/rc.conf.site
hostname="node15.example.com"
network_interfaces="fxp0 lo0"
ifconfig_fxp0="inet 10.1.1.1"rc.conf.site:defaultrouter="10.1.1.254"
saver="daemon"
blanktime="100"rc.conf.site kan dan naar elk systeem
gedistribueerd worden met rsync of een
gelijksoortig programma, terwijl rc.conf
uniek blijft.Het actualiseren van het systeem met &man.sysinstall.8;
of make world overschrijft
rc.conf niet, zodat de bestaande
systeeminstellingen niet verloren gaan.Toepassingen instellenGeïnstalleerde toepassingen hebben meestal hun eigen
instellingenbestanden, met hun eigen syntaxis, etc. Het is van
belang deze bestanden apart te houden van het basissysteem,
zodat ze makkelijk gelokaliseerd kunnen worden en beheerd kunnen
worden met de hulpmiddelen voor pakketbeheer./usr/local/etcDeze bestanden worden meestal geïnstalleerd in
/usr/local/etc. Als een toepassing een
uitgebreide set bestanden voor instellingen heeft, wordt er een
submap voor aangemaakt.Bij de installatie van een port of package, worden normaliter
ook voorbeeldbestanden met instellingen geïnstalleerd. Deze
zijn doorgaans te herkennen aan een toevoegsel
.default. Als er geen bestaande
instellingenbestanden voor de toepassing zijn, kunnen ze gemaakt
worden door de .default bestanden te
kopiëren.Een voorbeeld is de map
/usr/local/etc/apache:-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf
-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default
-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf
-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default
-rw-r--r-- 1 root wheel 12205 May 20 1998 magic
-rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default
-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types
-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default
-rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf
-rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.defaultAan de grootte van de bestanden is te zien dat alleen
srm.conf gewijzigd is. Als later de
Apache port wordt vernieuwd, wordt dit
bestand niet overschreven.TomRhodesBijgedragen door Diensten startendienstenVeel gebruikers kiezen ervoor om software van derden te
installeren op &os; vanuit de Portscollectie. In veel gevallen
is het noodzakelijk om de software dusdanig in te stellen dat
het opstart tijdens het booten. Diensten zoals mail/postfix of www/apache13 zijn slechts twee
voorbeelden van softwarepakketten die gestart kunnen worden
tijdens de systeemstart. In deze paragraaf wordt toegelicht
hoe software van derde partijen kan worden gestart.In &os; worden de meeste diensten, zoals &man.cron.8;, door
de opstartscripts van het systeem gestart. Deze scripts kunnen
verschillen tussen &os; en leverancierversies, echter het meest
belangrijke aspect om in gedachten te houden is dat hun
opstartinstellingen verwerkt kunnen worden door simpele
opstartscripts.Voor de komst van rcNG zetten applicaties simpelweg een
opstartscript in de map /usr/local/etc/rc.d dat dan
uitgelezen werd door de opstartscripts van het systeem. Deze
scripts werden dan uitgevoerd tijdens de laatste stappen van
een systeemstart.Terwijl veel individuen bezig waren om de oude stijl van
instellen naar de nieuwe stijl over te zetten, bleef sommige
software nog steeds een script nodig hebben in de genoemde map.
De subtiele verschillen in de scripts hangen af van het wel of
niet gebruiken van rcNG. Vóór &os; 5.1
werden scripts oude stijl gebruikt en in bijna
alle gevallen voldoet een script nieuwe
stijl.Elk script moet een .sh toegevoegd
hebben aan het einde en elk script moet opstartbaar zijn door
het systeem. Het laatstgenoemde kan bereikt worden met
chmod en door het zetten van de rechten
755. Er zouden ook minimaal de opties
start en stop moeten zijn
voor de applicatie.Het simpelste opstartscript ziet er waarschijnlijk als
volgt uit:#!/bin/sh
echo -n ' utility'
case "$1" in
start)
/usr/local/bin/utility
;;
stop)
kill -9 `cat /var/run/utility.pid`
;;
*)
- echo "Usage: `basename $0` {start|stop}" >&2
+ echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
exit 0Dit script levert de opties stop en
start voor de applicatie met de naam
utility.Dit kan handmatig gestart worden met:&prompt.root; /usr/local/etc/rc.d/utility.sh startHoewel niet alle software van derden een regel nodig heeft
in /etc/rc.conf, wordt er bijna elke
dag een wel een port veranderd om deze instellingen te
ondersteunen. De meldingen tijdens de installatie van de port
bevatten vaak meer informatie. Sommige software
van derden levert opstartscripts die de applicatie kunnen laten
werken met rcNG. Dit wordt in de volgende paragraaf
behandeld.Uitgebreide applicatieinstellingenNu &os; rcNG heeft, zijn de instellingen van
applicaties die mee moeten opstarten verbeterd. Er is meer
diepgang in gekomen. Door gebruik te maken van de
sleutelwoorden die in de paragraaf rcNG behandeld worden,
kunnen applicaties nu starten na andere diensten.
DNS kan bijvoorbeeld extra opties
meekrijgen van /etc/rc.conf in plaats
van hard ingestelde opties in het opstartscript. Een
basisscript ziet er ongeveer als volgt uit:#!/bin/sh
#
# PROVIDE: utility
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: FreeBSD shutdown
#
# WIJZIG DEZE WAARDEN NIET HIER
# MAAR IN HET BESTAND /etc/rc.conf
#
utility_enable=${utility_enable-"NO"}
utility_flags=${utility_flags-""}
utility_pidfile=${utility_pidfile-"/var/run/utility.pid"}
. /etc/rc.subr
name="utility"
rcvar=`set_rcvar`
command="/usr/local/sbin/utility"
load_rc_config $name
pidfile="${utility_pidfile}"
start_cmd="echo \"Starting ${name}.\"; /usr/bin/nice -5 ${command} ${utility_flags} ${command_args}"
run_rc_command "$1"Dit script zorgt ervoor dat
utility wordt gestart voor
de dienst login, maar na de dienst
daemon. Het biedt ook de mogelijkheid
voor het instellingen en volgen van het
PID of het process ID
bestand.Voor deze applicatie kan dan de volgende regel in
/etc/rc.conf geplaatst worden:utility_enable="YES"Deze nieuwe methode maakt het volgende mogelijk:
makkelijker commandoregelopties manipuleren, importeren van
standaardfuncties uit /etc/rc.subr,
compatibiliteit met het &man.rcorder.8; programma en het
eenvoudiger instellingen via
/etc/rc.conf. In essentie kan dit
script zelfs geplaatst worden in de map /etc/rc.d. Dat kan in
potentie wel het &man.mergemaster.8; programma van de wijs
brengen als dat gebruikt wordt voor het bijwerken van
software.Diensten met diensten startenAndere diensten, zoals POP3 server
daemons, IMAP, enzovoort, kunnen gestart
worden door gebruik te maken van &man.inetd.8;. Daaraan is
voorafgegaan dat die dienst uit de Portscollectie is
geïstalleerd en dat er een regel met instellingen is
toegevoegd aan /etc/inetd.conf of
één van de bestaande niet actieve regels is
geactiveerd. Werken met inetd
en zijn instellingen wordt uitgebreid toegelicht in de
paragraaf over inetd.In sommige gevallen is het handiger om &man.cron.8; te
gebruiken om diensten te starten. Deze aanpak heeft een aantal
voordelen omdat cron start als de eigenaar
van crontab. Dit stelt reguliere
gebruikers in staat om sommige applicaties te starten en te
onderhouden.cron levert een unieke optie: plaats van
een tijdsspecificatie kan @reboot gebruikt
worden. Dit zorgt ervoor dat de taak gestart wordt als
&man.cron.8; gestart wordt, meestal tijdens een
systeemstart.TomRhodesGeschreven door cron instellencroninstellenEen zeer nuttig hulpprogramma in &os; is &man.cron.8;. De
cron daemon draait op de achtergrond en
controleert voortdurend /etc/crontab. Ook
controleert cron de map
/var/cron/tabs, op zoek naar nieuwe
crontab bestanden. Deze
crontab bestanden bevatten informatie over
specifieke taken die cron moet verrichten op
gezette tijden.cron gebruikt twee verschillende soorten
instellingenbestanden: de systeemcrontab en gebruikerscrontabs.
Het enige verschil tussen deze twee formaten is het zesde veld.
In de systeemcrontab is dit de gebruikersnaam die het commando
uitvoert. Hierdoor kunnen met de systeemcrontab commando's als
iedere gebruiker uitgevoerd worden. In een gebruikerscrontab is
het zesde veld het uit te voeren commando en alle commando's
worden uitgevoerd als de gebruiker die de crontab heeft
aangemaakt. Dit is een belangrijke veiligheidsmaatregel.Gebruikerscrontabs geven individuele gebruikers de
mogelijkheid om bepaalde terugkerende taken automatisch te
laten uitvoeren zonder dat root rechten
noodig zijn. Commando's in de crontab van een gebruiker
worden uitgevoerd met de rechten van de eigenaar.root kan ook een gebruikerscrontab
aanleggen. Dit is niet dezelfde als
/etc/crontab (de systeemcrontab). Omdat
er al een systeemcrontab is, is het doorgaans niet nodig om een
gebruikerscrontab voor root te
maken./etc/crontab (de systeemcrontab) ziet er
uit als volgt:# /etc/crontab - root's crontab for &os;
#
# $&os;: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $
#
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#
#
#minuut uur mdag maand wdag wie commando
#
#
*/5 * * * * root /usr/libexec/atrun Zoals in de meeste &os; instellingenbestanden gaat het
karakter # vooraf aan commentaar.
Commentaar wordt gebruikt als uitleg en geheugensteun.
Commentaar dient niet vermengd te worden met commando's,
anders wordt het commentaar opgevat als deel van het
commando. Blanco regels worden genegeerd.Eerst worden omgevingsvariabelen gedefiniëerd.
Hoervoor wordt het is-gelijk karakter (=)
gebruikt. In het bovenstaande voorbeeld wordt het gebruikt
voor de variabelen SHELL, PATH
en HOME. Als de regel SHELL
ontbreekt, gebruikt cron standaard
sh als shell. Voor de omgevingsvariabele
PATH bestaat geen standaardwaarde. Als
PATH ontbreekt moeten absolute paden
gebruikt worden. Als HOME ontbreekt, gebruikt
cron de thuismap van de de gebruiker die
cron aanroept.In deze commentaarregel staan de zeven velden van een
crontabdefinitie. Dit zijn minuut,
uur, mdag,
maand, wdag,
wie en commando. De
betekenissen liggen voor de hand: minute
is het aantal minuten van het tijdstip waarop het commando
moet worden uitgevoerd; hour geeft het uur
aan; mdag staat voor de dag van de maand;
maand staat voor het maandnummer en
wdag geeft de dag van de week aan. Het
veld wie is bijzonder en bestaat alleen in
/etc/crontab. Het geeft aan als welke
gebruiker het commando uitgevoerd moet worden. Een gebruiker
die zijn eigen crontab installeert,
heeft deze optie niet. Het veld command
bevat het uit te voeren commando.In deze regel worden aan de hierboven besproken opties
waarden toegekend. Er wordt gebruik gemaakt van
*/5 en * karakters.
Deze betekenen eerst-laatst en kunnen gezien
worden als telkens. In deze regel staat
dus dat het commando atrun elke vijf
minuten moet worden uitgevoerd door
root, ongeacht welke dag of maand het
is. Meer informatie over atrun staat in
&man.atrun.8;.Commando's kunnen een willekeurig aantal opties of
argumenten meekrijgen. Als commando's echter meerdere regels
nodig hebben moeten deze regels afgebroken worden met een
backslash \ karakter, om aan te geven dat ze
op de volgende regel vervolgd worden.Dit is de basisopzet voor elk crontab
bestand. De enige uitzondering is de aanwezigheid van veld zes,
waar de gebruikersnaam wordt aangegeven. Dit veld bestaat alleen
in het systeembestand /etc/crontab. Voor
crontabbestanden van individuele gebruikers
moet dit veld worden weggelaten.Een crontab installerenDe onderstaande procedure moet niet gebruikt worden om de
systeemcrontab te wijzigen of te installeren. Er kan een
gewone editor gebruikt worden. cron
ziet dat het bestand veranderd is en begint direct met het
gebruiken van de nieuwe versie. Deze
FAQ vraag geeft verdere uitleg.Om een nieuwe crontab te installeren
moet eerst een bestand in het juiste formaat gemaakt worden en
daarna moet het geiuml;nstalleerd worden met
crontab commando:&prompt.root; crontab crontabbestandIn dit voorbeeld is crontabbestand de
naam van een eerder gemaakt
crontabbestand.Er bestaat ook een optie om een lijst van
geïnstalleerde crontab bestanden op
te vragen, namelijk de optie van
crontab.Gebruikers die hun eigen crontabbestand willen schrijven
zonder het gebruik van een sjabloon, kunnen gebruik maken van
crontab -e. Dit opent de
EDITOR met een leeg bestand. Als het bestand
wordt opgeslagen en de editor wordt afgesloten, wordt het
bestand automatisch als crontab
geïnstalleerd.Een gebruikerscrontab kan verwijderd
worden door de met crontab de optie
te gebruiken.TomRhodesGeschreven door Gebruik van rc met &os; 5.X en laterrcNG&os; gebruikt inmiddels het NetBSD rc.d
systeem bij het opstarten van het systeem. Veel van de bestanden
in /etc/rc.d zijn scripts voor basisdiensten
die werken met de opties ,
en , analoog aan
hoe diensten die via een port of package zijn geïnstalleerd
gestart worden met de scripts in
/usr/local/etc/rc.d. &man.sshd.8; kan
bijvoorbeeld als volgt herstart worden:&prompt.root; /etc/rc.d/sshd restartDeze procedure is vrijwel gelijk voor andere diensten.
Uiteraard worden diensten meestal automatisch gestart zoals
in &man.rc.conf.5; staat. Om de Network Address Translation
daemon bij het opstarten te laten starten is de volgende regel in
/etc/rc.conf bijvoorbeeld voldoende:natd_enable="YES"Als er reeds een natd_enable="NO" regel
is, kan NO gewoon in YES
veranderd worden. De rc scripts starten, voor zover nodig,
automatisch andere afhankelijke diensten.Omdat het rc.d systeem in eerste
instantie bedoeld is om diensten te starten en stoppen bij het
opstarten en afsluiten van het systeem, werken de standaardopties
, en
alleen als de juiste variabelen in
/etc/rc.conf zijn ingesteld. Het commando
sshd restart alleen dan als
sshd_enable de waarde YES
heeft in /etc/rc.conf. Als er een service
gestart, gestopt of herstart moet worden, ongeacht de definities
in /etc/rc.conf, moet het commando
voorafgegaan worden door force. Dus om
sshd te herstarten ongeacht
/etc/rc.conf setting, voldoet het volgende
commando:&prompt.root; /etc/rc.d/sshd forcerestartHet is eenvoudig te controleren of een dienst is ingeschakeld
is in /etc/rc.conf door het bijpassende
rc.d script uit te voeren met de optie
. Voor sshd:&prompt.root; /etc/rc.d/sshd rcvar
# sshd
$sshd_enable=YESDe tweede regel (# sshd) is de
uitvoer van sshd, geen
root console.De optie wordt gebruikt om vast te
stellen of een dienst gestart is. Om bijvoorbeeld te controleren
of sshd gestart is:&prompt.root; /etc/rc.d/sshd status
sshd is running as pid 433.Het is ook mogelijk om een dienst te herladen met de optie
. Dan wordt er getracht een signaal te
sturen aan een individuele dienst, waarbij de dienst de bestanden
met instellingen opnieuw in moet lezen. Meestal komt dit neer
op het verzenden van het signaal
SIGHUP signaal.Het rc.d-systeem wordt niet alleen
gebruikt voor netwerkdiensten, maar ook voor het merendeel van de
systeemstart. In dit kader is bijvoorbeeld het bestand
bgfsck interessant. Als dit script wordt
uitgevoerd, wordt de volgende boodschap getoond:Starting background file system checks in 60 seconds.Dit script wordt dus gebruikt voor bestandssysteemcontrole
in de achtergrond, hetgeen alleen tijdens de systeemstart
gebeurt.Veel systeemdiensten zijn afhankelijk van andere diensten om
correct te kunnen functioneren. Zo starten NIS en andere
RPC-gebaseerde diensten niet als de rpcbind
(portmapper) dienst nog niet draait. Om dit te stroomlijnen
wordt informatie over afhankelijkheden en andere meta-data
ingevoegd in het commentaar bovenaan het opstartscript. Deze
commentaarregels worden vervolgens tijdens de systeemstart
met &man.rcorder.8; verwerkt om zo vast te stellen in welke
volgorde de systeemdiensten gestart moeten worden. De volgende
sleutelwoorden kunnen worden opgenomen aan het begin van elk
opstartscript:PROVIDE: geeft aan in welke diensten
dit bestand voorziet.REQUIRE: geeft aan welke andere
diensten vereist zijn voor deze dienst. Dit script wordt
uitgevoerd na de aangegeven
diensten.BEFORE: geeft diensten aan die
afhankelijk zijn van deze dienst. Dit bestand wordt
uitgevoerd vóór de
aangegeven diensten.KEYWORD: &os; of NetBSD. Dit wordt gebruikt voor
speciale eigenschappen van één van de
*BSD's.Met deze methode kan een systeembeheerder gemakkelijk
systeemdiensten besturen, zonder gedoe met
runlevels zoals bij sommige andere &unix;
systemen.Meer informatie over het rc.d-systeem
staat in &man.rc.8; en &man.rc.subr.8;.MarcFonvieilleGeschreven door Netwerkkaarten instellennetwerkkaarteninstellenHet is tegenwoordig nauwelijks voorstelbaar dat een computer
geen netwerkverbinding heeft. Het toevoegen en instellen van
een netwerkkaart is een gebruikelijke taak voor een &os;
beheerder.Het juiste stuurprogramma vindennetwerkkaartenstuurprogrammaVoor het zoeken begint, moet duidelijk zijn om welke kaart
het gaat, welke chip erop zit en of het een PCI of ISA kaart
is. &os; ondersteunt vele kaarten. Op de Hardware
Compatibiliteitslijst voor de betreffende release om staan de
kaarten die ondersteund worden.Als duidelijk is dat een kaart ondersteund wordt, moet
vastgesteld worden wat het geschikte stuurprogramma is.
In het bestand /usr/src/sys/conf/NOTES
(/usr/src/sys/arch/conf/LINT
voor &os; 4.X) staat een lijst van stuurprogramma's voor
netwerkinterfaces met wat informatie over de ondersteunde
chipsets of kaarten. In geval van twijfel biedt de hulppagina
voor het stuurprogramma (man) vaak uitkomst.
In het algemeen bevat deze meer informatie over de ondersteunde
hardware en mogelijke problemen die kunnen optreden.NOTES bestaat niet op &os; 4.X.
In plaats daarvan kan in het bestand
LINT informatie gevonden worden over een
groot aantal netwerkkaarten. In staan meer details over
NOTES versus
LINT.Als een veelgebruikte kaart gebruikt wordt, hoeft meestal
niet ver gezocht te worden. Stuurprogramma's voor
veelvoorkomende netwerkinterfaces al aanwezig in de algemene
GENERIC kernel. In dat geval wordt zo'n
al gevonden worden bij het opstarten, bijvoorbeeld met het
volgende bericht:dc0: <82c169 PNIC 10/100BaseTX> port 0xa000-0xa0ff mem 0xd3800000-0xd38
000ff irq 15 at device 11.0 on pci0
dc0: Ethernet address: 00:a0:cc:da:da:da
miibus0: <MII bus> on dc0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30
000ff irq 11 at device 12.0 on pci0
dc1: Ethernet address: 00:a0:cc:da:da:db
miibus1: <MII bus> on dc1
ukphy1: <Generic IEEE 802.3u media interface> on miibus1
ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, autoIn dit voorbeeld zitten er twee kaarten in het systeem die
het stuurprogramma &man.dc.4; gebruiken.Als het stuurprogramma voor een NIC geen onderdeel is van
de GENERIC kernel, dan dient het juiste
stuurprogramma voor die NIC geladen te worden. Dit kan op twee
manieren:De meest eenvoudige manier is het laden van een
kernelmodule voor een netwerkkaart met &man.kldload.8;.
Niet alle NIC stuurprogramma's zijn als module beschikbaar.
Zo zijn er bijvoorbeeld geen modules beschikbaar voor ISA
kaarten.Ondersteuning voor een kaart kan ook in de kernel
gecompileerd worden. In
/usr/src/sys/conf/NOTES,
/usr/src/sys/arch/conf/NOTES
en de hulppagina van het stuurprogramma is na te lezen wat
er in het kernelinstellingenbestand moet staan. In staat meer informatie over het
compileren van een eigen kernel. Als een netwerkkaart al
bij het opstarten wordt herkend door de
GENERIC kernel, is er geen reden om
een andere kernel te bouwen.De netwerkkaart instellennetwerkkaarteninstellenNadat een geschikt stuurprogramma geladen is, moet de kaart
nog ingestelt worden. Mogelijk is dit al gebeurd door
sysinstall tijdens de
installatie.Om de instellen van de netwerkkaarten weer te geven
zien:&prompt.user; ifconfig
dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
ether 00:a0:cc:da:da:da
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
dc1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
ether 00:a0:cc:da:da:db
media: Ethernet 10baseT/UTP
status: no carrier
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet 127.0.0.1 netmask 0xff000000
tun0: flags=8010<POINTOPOINT,MULTICAST> mtu 1500Op oudere versies van of &os; moet volgens
&man.ifconfig.8; misschien de optie
gebruikt worden. In &man.ifconfig.8;zijn meer details over
de syntaxis te lezen. In dit voorbeeld is de uitvoer over
IPv6 (inet6 etc.) achterwege
gelaten.In dit voorbeeld werden de volgende apparaten
weergegeven:dc0: de eerste Ethernet
interface;dc1: de tweede Ethernet
interface;lp0: de parallelle poort
interface;lo0: het loopback
apparaat;tun0: het tunnelapparaat
gebruikt door ppp.&os; gebruikt de naam van het stuurprogramma gevolgd door
een nummer voor de volgorde waarop de kaarten gedetecteerd zijn
bij het opstarten. sis2 is de derde
netwerkkaart in het systeem die het stuurprogramma &man.sis.4;
gebruikt.In het vorige voorbeeld is het apparaat
dc0 volledig operationeel. Dit blijkt
uit de volgende indicatoren:UP betekent dat de kaart
ingesteld is en klaar voor gebruik;De kaart heeft een Internet (inet)
adres (in dit geval 192.168.1.3);Het heeft een geldig subnetmasker
(netmask; 0xffffff00 is hetzelfde als
255.255.255.0);Het heeft een geldig broadcastadres (in dit geval,
192.168.1.255);Het MAC adres van de kaart (ether)
is 00:a0:cc:da:da:da;De fysieke mediaselectie staat in autoselectiemodus
(media: Ethernet autoselect (100baseTX
<full-duplex>)).
dc1 is ingesteld om met
10baseT/UTP media te werken. Meet
informatie over de mogelijke media types staan in de
hulppagina's voor het betreffende stuurprogramma.De status van de link (status)
is active, dat wil zeggen dat de drager
is gevonden. Bij dc1staat echter
status: no carrier. Dit is normaal als
er geen ethernet kabel in de kaart gestoken is.Als de uitvoer &man.ifconfig.8; uitvoer er ongeveer zoals
hieronder uitziet, dan is de netwerkkaart nog niet
ingesteld:dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
ether 00:a0:cc:da:da:daOm de kaart te instellen zijn root
rechten nodig. De netwerkkaart van vanaf de console worden
ingesteld met &man.ifconfig.8;, maar dan moet dat na elke
herstart herhaald worden. Daarom wordt het vrijwel altijd in
/etc/rc.conf gezet.In /etc/rc.conf moet voor elke
netwerkkaart in een systeem een regel toegevoegd worden. In
het huidige voorbeeld zou dat het volgende kunnen zijn:ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0"
ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"dc0, dc1,
enzovoort, moeten vervangen worden door de correcte
stuurprogramma's voor de netwerkkaarten, zo ook de
IP adressen. In de handleiding van het
stuurprogramma en van &man.ifconfig.8; staan meer details over
de mogelijke opties en in &man.rc.conf.5; staat meer informatie
over /etc/rc.conf.Als het netwerk al is ingesteld tijdens het installeren van
&os; staan er al enkele regels met betrekking tot de
netwerkkaart(en) in /etc/rc.conf. Het is
dus handig /etc/rc.conf te controleren
voordat er regels toegevoegd worden.Ook /etc/hosts moet worden gewijzigd
om de namen en IP adressen van
verschillende machines op het lokale netwerk, als ze er nog
niet in staan. Meer informatie staat in &man.hosts.5; en
/usr/share/examples/etc/hosts.Testen en problemen oplossenAls de veranderingen in /etc/rc.conf
zijn gemaakt, moet het systeem opnieuw gestarten worden (of
moeten nauwkeurig alle daemons gestart of herstart worden).
Veranderingen aan de interface(s) worden dan toegepast en dan
kan er controleerd worden of herstarten goed werkt zonder
foutmeldingen.Als de kaart werkt, maar de performance is slecht, dan kan
het de moeite waard zijn om &man.tuning.7; door te nemen.
Incorrecte netwerkinstellingen kunnen ook tot langzame
verbindingen leiden.Soms kunnen enkele device timeouts
optreden. Met sommige kaarten is dit normaal gedrag. Maar als
dit continu gebeurd of storend is, is het verstandig uit te
zoeken of er geen sprake is van een hardwareconfict tussen de
netwerkkaart en een ander apparaat. Ook dient nogmaals de
bekabeling gecontroleer te worden. Misschien zit er niets
anders op dan een andere netwerkkaart te gebruiken.Het is ook mogelijk dat er watchdog
timeout foutmeldingen optreden. Als eerste moet
dan de netwerkkabel fecontroleerd worden. Veel kaarten hebben
een PCI slot nodig dat Bus Mastering ondersteunt. Sommige
oudere moederborden hebben maar één PCI slot
waarmee dit kan (meestal slot 0). In de documentatie van de
netwerkkaart en het moederbord is na te gaan of dit het
probleem is.No route to host meldingen treden op
als het systeem niet in staat is om een pakket naar de
eindbestemming te routeren. Dit kan gebeuren als er geen
standaardroute aangegeven is of als er een kabel niet verbonden
is. De uitvoer van netstat -rn moet
gecontroleerd worden en of er een geldige route is naar de
bestemming. Mocht dit niet het geval zijn, dan staat er meer
informatie in .ping: sendto: Permission denied
foutmeldingen worden vaak veroorzaakt door een verkeerd
ingestelde firewall. Als de kernel ipfw
activeert bij het opstarten zonder dat er firewallregels zijn
gedefiniëerd, is het standaardbeleid om alle verkeer te
weigeren, zelfs pings! In staat
meer informatie.Er kan ook sprake zijn van onvoldoende prestaties doordat
de mediaselectie instelling niet optimaal is. In dergelijke
gevallen is het mogelijk om de mediaselectie niet als
autoselect in te stellen, maar expliciet
aan te geven wat de mediaselectie moet zijn, bijvoorbeeld
10baseT/UTP voor twisted pair. Hoewel dit voor de meeste
hardware helpt, kan het zijn dat de problemen blijven.
Dan moeten nogmaals de netwerkinstellingen gecontroleerd worden
en geeft de &man.tuning.7; handleiding wellicht meer
informatie.Virtuele hostsvirtuele hostsIP aliassen&os; wordt veel gebruikt voor virtuele sitehosting, waarbij
één fysieke server er op het netwerk uitziet alsof
het meerdere servers zijn. Dit kan bereikt worden door meerdere
IP adressen toe te kennen aan dezelfde
interface.Een bepaalde netwerkinterface heeft een echt
adres en kan daarnaast een willekeurig aantal
alias adressen hebben. Normaliter worden
dergelijke aliassen toegevoegd door aliasregels toe te voegen aan
/etc/rc.conf.Een aliasregel voor de interface
fxp0 ziet er zo uit:ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"De aliasregels moeten beginnen met alias0
en moete elkaar dan opvolgen (bijvoorbeeld
_alias1,, _alias2,
enzovoort). Het instelproces stopt als er een nummer
ontbreekt.Het is belangrijk dat aliassen het juiste netmasker hebben.
Dit is eenvoudig: Een bepaalde interface moet altijd
één adres hebben dat het netmasker van het netwerk
correct representeert. Elk ander adres binnen dit netwerk op
deze interface (alias) moet een netmasker van allemaal
1'en (bits) hebben (getoond als 255.255.255.255 of 0xffffffff).Een voorbeeld. Stel de fxp0
interface is verbonden met twee netwerken, het 10.1.1.0 netwerk met masker 255.255.255.0 en het 202.0.75.16 met netmasker 255.255.255.240. Het systeem moet ook
de adressen 10.1.1.1 tot en met
10.1.1.5 en 202.0.75.17 tot en met 202.0.75.20 krijgen. Zoals hierboven
vermeld, heeft alleen het eerste adres in een netwerkreeks (in
dit geval 10.0.1.1 en 202.0.75.17) een geldig netmasker. Alle
overige (10.1.1.2 tot en met
10.1.1.5 en 202.0.75.18 tot en met 202.0.75.20) moeten ingesteld worden met
het netmasker 255.255.255.255.De volgende regels voor /etc/rc.conf
stellen een adapter in voor het bovenstaande scenario:ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0"
ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255"
ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255"
ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255"
ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255"
ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240"
ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255"
ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255"
ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"Instellingenbestanden/etc layoutInstellingengegevens wordt in een aantal mappen bewaard.
Daar zijn onder andere:/etcGenerieke systeeminstellingenbestanden, specifiek
voor het systeem./etc/defaultsDe standaardversies van
systeeminstellingenbestanden die gebruikt worden als er
geen in /etc staat./etc/mailExtra &man.sendmail.8; instellingenbestanden of
instellingenbestanden voor andere MTAs.
/etc/pppInstellingen voor zowel user- als kernel-ppp
programma's./etc/namedbStandaardlocatie voor &man.named.8; gegevens.
Normaal gesproken bevinden zich hier
named.conf en
zonebestanden./usr/local/etcInstellingenbestanden voor geïnstalleerde
software. Kan submappen hebben waarin bij elkaar
horende instellingengegevens van een applicatie
gegroepeerd zijn./usr/local/etc/rc.dStart en stop scripts voor geïnstalleerde
diensten./var/dbAutomatisch gemaakte systeemspecifieke
databasebestanden, zoals de packagedatabase, de
&man.locate.1; database, enzovoort.HostnamenhostnaamDNS/etc/resolv.confresolv.confIn /etc/resolv.conf wordt
voorgeschreven op welke wijze &os; het Domain Name System
(DNS) moet gebruiken.De meest voorkomende termen in
resolv.conf zijn:nameserverHet IP adres van een
naamserver die ondervraagd moet worden voor
naam/IP conversie. De servers
worden in volgorde geprobeerd en het maximale aantal
is drie.searchZoeklijst voor het opzoeken van hostnamen.
Meestal wordt deze bepaald door het domein waarop de
lokale hostnaam zich bevindt.domainDe lokale domeinnaam.Een typisch resolv.conf
bestand:search example.com
nameserver 147.11.1.11
nameserver 147.11.100.30search en domain
dienen niet tegelijk gebruikt te worden.Als DHCP wordt gebruikt: &man.dhclient.8; overschrijft
meestal resolv.conf met informatie
ontvangen van de DHCP server./etc/hostshosts/etc/hosts is een eenvoudige
tekstdatabase uit de dagen van het oude internet. Het werkt
samen met DNS en NIS om namen en IP
adressen over en weer te vertalen. Lokale computers,
verbonden via een LAN, kunnen hier het beste in opgenomen
worden om zo op simpele wijze naam/IP
conversie voor een LAN te hebben, zonder noodzaak voor een
&man.named.8; server. Ook kunnen naamaliassen toegekend
worden (vergelijkbaar met CNAMES bij DNS). Op soortgelijke
wijze kan /etc/hosts gebruikt worden als
een (zeer beperkte) lokale DNS cache.
# $&os;$
#
# Host Database
# Dit bestand hoort de adressen en aliassen te bevatten
# voor de lokale hosts die dit bestand gebruiken.
# Bij gebruik van DNS of NIS hoeft dit bestand helemaal niet gebruikt
# te worden. Zie /etc/nsswitch.conf voor de volgorde van resolutie.
#
#
::1 localhost localhost.my.domain myname.my.domain
127.0.0.1 localhost localhost.my.domain myname.my.domain
#
# Verzonnen netwerk.
#10.0.0.2 myname.my.domain myname
#10.0.0.3 myfriend.my.domain myfriend
#
# Volgens RFC 1918 mogen de volgende IP netwerken gebruikt worden
# als private netwerken die niet met internet verbonden zijn:
#
# 10.0.0.0 - 10.255.255.255
# 172.16.0.0 - 172.31.255.255
# 192.168.0.0 - 192.168.255.255
#
# Als er toch verbinding moet zijn met internet, zijn echte
# officieel toegewezen nummers nodig. Probeer ECHT GEEN eigen
# netwerknummers te verzinnen, maar vraag ze op bij de provider
# (als die er is) of bij de Internet Registry (ftp naar
# rs.internic.net, map `/templates').
#/etc/hosts heeft als formaat:[Internet address] [official hostname] [alias1] [alias2] ...Bijvoorbeeld:10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2In &man.hosts.5; staat meer informatie.Logboekbestanden instellenlogboekbestandensyslog.confsyslog.confsyslog.conf is het
instellingenbestand voor het programma &man.syslogd.8;. Het
geeft aan welke soorten syslog berichten
er gelogd moeten worden en naar welke logboekbestanden,
apparaten, gebruikers of machines.# $&os;$
#
# Spaties zijn TOEGESTAAN als veldscheiding in dit bestand.
# Maar andere *nix-achtige systemen eisen nog steeds het gebruik
# van tabs als veldscheiding. Als dit bestand gedeeld wordt met
# andere systemen, is het verstandig alle tabs als veldscheiding
# te gebruiken.
# Zie ook de handleding van syslog.conf(5).
*.err;kern.debug;auth.notice;mail.crit /dev/console
*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
security.* /var/log/security
mail.info /var/log/maillog
lpr.info /var/log/lpd-errs
cron.* /var/log/cron
*.err root
*.notice;news.err root
*.alert root
*.emerg *
# verwijder het commentaarkarakter om alle schrijfacties naar
# /dev/console naar /var/log/console.log te schrijven.
#console.info /var/log/console.log
# verwijder het commentaarkarakter om alle berichten naar
# /var/log/all.log te schrijven.
#*.* /var/log/all.log
# # verwijder het commentaarkarakter om alle liggen naar een andere
# host in te schakelen met de naam loghost.
#*.* @loghost
# # verwijder het commentaarkarakter als inn draait.
# news.crit /var/log/news/news.crit
# news.err /var/log/news/news.err
# news.notice /var/log/news/news.notice
!startslip
*.* /var/log/slip.log
!ppp
*.* /var/log/ppp.logIn &man.syslog.conf.5; staat meer informatie.newsyslog.confnewsyslog.confnewsyslog.conf is het
instellingenbestand voor &man.newsyslog.8;, een programma
dat op gezette tijden via &man.cron.8; wordt uitgevoerd.
&man.newsyslog.8; stelt vast wanneer logboekbestanden
gearchiveerd moeten worden of anderszins opnieuw gerangschikt
moeten worden. logfile wordt hernoemd
naar logfile.0,
logfile.0
naar logfile.1, enzovoort.newsyslog.conf geeft aan welke
logboekbestanden beheerd moeten worden, hoeveel er in
archieven bewaard moeten worden en wanneer ze aangemaakt
moeten worden. Logboekbestanden kunnen gereorganiseerd en/of
gearchiveerd worden als ze een bepaalde grootte bereikt
hebben of op een bepaald periodiek tijdstip of een bepaalde
datum.# configuration file for newsyslog
# $&os;$
#
# filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num]
/var/log/cron 600 3 100 * Z
/var/log/amd.log 644 7 100 * Z
/var/log/kerberos.log 644 7 100 * Z
/var/log/lpd-errs 644 7 100 * Z
/var/log/maillog 644 7 * @T00 Z
/var/log/sendmail.st 644 10 * 168 B
/var/log/messages 644 5 100 * Z
/var/log/all.log 600 7 * @T00 Z
/var/log/slip.log 600 3 100 * Z
/var/log/ppp.log 600 3 100 * Z
/var/log/security 600 10 100 * Z
/var/log/wtmp 644 3 * @01T05 B
/var/log/daily.log 640 7 * @T00 Z
/var/log/weekly.log 640 5 1 $W6D0 Z
/var/log/monthly.log 640 12 * $M1D0 Z
/var/log/console.log 640 5 100 * ZIn &man.newsyslog.8; staat meer informatie.sysctl.confsysctl.confsysctlsysctl.conf lijkt veel op
rc.conf. Waardetoekenning heeft weer de
vorm variable=value. De ingestelde
&man.sysctl.8; waarden worden doorgevoerd op het moment dat het
systeem naar multi-user modus gaat. Niet alle variabelen
kunnen in deze modus gewijzigd worden.Hieronder staat een voorbeeld van
sysctl.conf waarin het loggen van gevallen
waarin een proces beëindigd wordt ten gevolge van een
fataal signaal (bijvoorbeeld een TERM signaal of een exitcode
van een programma dat crasht) wordt uitgezet en waarin de
&linux; emulatielaag zodanig wordt ingesteld dat een &linux;
programma ook echt rapporteert dat het onder &os;
draait:kern.logsigexit=0 # Do not log fatal signal exits (e.g. sig 11)
compat.linux.osname=&os;
compat.linux.osrelease=4.3-STABLEOptimaliseren met sysctlsysctloptimaliseringmet sysctl&man.sysctl.8; is een interface waarmee veranderingen gemaakt
kunnen worden aan een draaiend &os; systeem. Er zijn onder meer
vele geavanceerde opties voor de TCP/IP stack
en het virtuele geheugensysteem, waarmee een ervaren
systeembeheerder de systeemprestaties drastisch kan verbeteren.
Met &man.sysctl.8; kunnen meer dan vijfhonderd ststeemvariabelen
opgevraagd en ingesteld worden.In essentie heeft &man.sysctl.8; twee funkties: het lezen en
wijzigen van systeeminstellingen.Om alle leesbare variabelen te tonen:&prompt.user; sysctl -aOm een bepaalde variabele op te vragen, bijvoorbeeld
kern.maxproc:&prompt.user; sysctl kern.maxproc
kern.maxproc: 1044Om een bepaalde variabele toe te kennen (te wijzigen), is de
syntaxis
variable=value:&prompt.root; sysctl kern.maxfiles=5000
-kern.maxfiles: 2088 -> 5000
+kern.maxfiles: 2088 -> 5000
Waarden van sysctl variabelen zijn doorgaans strings (tekst),
getallen of booleans (1 als waar,
0 als onwaar).Om automatisch variabelen in te stellen als de machine start,
kunnen ze toegevoegd worden aan
/etc/sysctl.conf. Meer informatie staat in
&man.sysctl.conf.5; en .TomRhodesGeschreven door &man.sysctl.8; alleen-lezenIn sommige gevallen is het wenselijk zijn om &man.sysctl.8;
waarden die alleen-lezen zijn toch te wijzigen. Hoewel dit soms
onontkoombaar is, kan het alleen bij een (her)start gedaan
worden.Op sommige laptops is bijvoorbeeld het apparaat
&man.cardbus.4; niet in staat om geheugenregio's af te tasten,
met als gevolg foutmeldingen als:cbb0: Could not map register memory
device_probe_and_attach: cbb0 attach returned 12In dergelijke gevallen moeten er meestal enkele
&man.sysctl.8; instellingen gewijzigd worden die alleen-lezen
zijn en een standaardwaarde hebben. Dit kan bereikt worden door
&man.sysctl.8; OIDs in de lokale
/boot/loader.conf te zetten.
Standaardinstellingen staan in
/boot/defaults/loader.conf.Om het bovenstaande probleem op te lossen moet in
in /boot/loader.confhw.pci.allow_unsupported_io_range=1 ingesteld
worden. Dan werkt &man.cardbus.4; wel goed.Harde schijven optimaliserenSysctl variabelenvfs.vmiodirenablevfs.vmiodirenableDe sysctl variabele vfs.vmiodirenable
kan de waarde 0 (uit) of 1 (aan) hebben. De standaardwaarde
is 1. Deze variabele bepaalt hoe mappen door het systeem
in een cache bewaard worden. De meeste mappen zijn
klein en gebruiken slechts een klein fragment (typisch
1 K) in het bestandssysteem en nog minder (typisch
512 bytes) in de buffercache. Als deze variabele
uit staat (op 0) bewaart de buffercache slechts een bepaald
aantal mappen in de cache, ook al is er een overvloed aan
geheugen beschikbaar. Wanneer deze aan staat (op 1), wordt
de VM pagecache gebruikt, waardoor voor het cachen van mappen
al het geheugen kan worden gebruikt. Het is echter wel zo
dat het minimale in-core geheugen dat gebruikt wordt om een
map te cachen in dat geval de fysieke pagegrootte is
(typisch 4 K) in plaats van 512 bytes. Het is aan
te raden deze optie aan te laten staat als gebruik gemaakt
worden van diensten die met grote aantallen bestanden werken,
zoals webcaches, grote mailsystemen en newsservers. Als deze
optie aan blijft staan, verlaagt die de prestaties niet, ook
al kost het meer geheugen. Door experimenteren is dit voor
een systeem na te gaan.vfs.write_behindvfs.write_behindDe sysctl variabele vfs.write_behind
staat standaard aan (1). Dit betekent dat
het bestandssysteem gegevens naar het medium gaat schrijven
op het moment dat er een volledig cluster aan data verzameld
is. Dit is meestal het geval bij het schrijven van grote
sequentiële bestanden. Het idee is om te voorkomen dat
de buffercache verzadigd raakt met vuile buffers zonder dat
dit bijdraagt aan de I/O prestaties. Dit kan echter
processen ophouden en onder sommige omstandigheden is het
wellicht beter deze sysctl uit te zetten.vfs.hirunningspacevfs.hirunningspaceDe sysctl variabele vfs.hirunningspace
bepaalt hoeveel nog te schrijven gegevens er in het complete
systeem op elk moment in de wachtrij naar schijfcontrollers
mag staan. De standaardwaarde is meestal voldoende, maar op
machines met veel schijven, is het beter deze te verhogen
naar vier of vijf megabyte. Het
instellen van een te hoge waarde (groter dan de
schrijfdrempel van de buffercache) kan leiden tot zeer
slechte prestaties bij clustering. Stel deze waarde niet
arbitrair hoog in! Hogere schrijfwaarden kunnen vertraging
veroorzaken in het lezen, als dit tegelijk
plaatsvindt.Er zijn verscheidene andere sysctls voor buffercache en
VM pagecache. Het wordt afgeraden deze te wijzigen. Sinds
&os; 4.3 is het VM systeem zeer goed in staat zichzelf
automatisch te optimaliseren.vm.swap_idle_enabledvm.swap_idle_enabledDe sysctl variabele
vm.swap_idle_enabled is nuttig in grote
multi-user systemen met veel gebruikers die af- en aanmelden
en veel onbenutte processen. Dergelijke systemen hebben de
neiging om voortdurend de vrije geheugenreserves onder druk
te zetten. Het is mogelijk om de prioriteit van
geheugenpages die verband houden met onbenutte processen
sneller te laten dalen dan met het normale pageout algoritme,
door deze sysctl aan te zetten en via
vm.swap_idle_threshold1 en
vm.swap_idle_threshold2 de swapout
hysterese (in seconden onbenut) af te stemmen. Deze optie
dient alleen gebruikt te worden als ze echt nodig is, want de
andere kant van de medaille is dat dit eerder pre-page
geheugen inhoudt in plaats van later, waardoor het meer
wisselbestand- en schijfbandbreedte kost. In een klein
systeem heeft deze optie een voorspelbaar effect, maar in
grote systemen waar al sprake is van een matige paging kan
deze optie het mogelijk maken voor het VM systeem om hele
processen gemakkelijk in en uit het geheugen te halen.hw.ata.wchw.ata.wcTen tijde van &os; 4.3 is er geflirt met het
uitzetten van IDE schrijfcaching. Hierdoor neemt de
bandbraadte naar IDE schijven af, maar het werd als
noodzakelijk beschouwd vanwege ernstige problemen met
gegevensinconsistentie die door harde schijfproducenten
geëintroduceerd waren. Het probleem is dat IDE schijven
niet de waarheid vertellen over wanneer een schrijfactie
klaar is. Door IDE schrijfcaching wordt data niet alleen
ongeordend geschreven, maar soms kan zelfs het schrijven van
sommige blokken voortdurend uitgesteld worden als er sprake
is van een hoge schijfbelasting. Een crash of stroomstoring
kan dan ernstige corruptie van het bestandssysteem
veroorzaken. Daarom werd de standaardinstelling van &os;
voor alle zekerheid gewijzigd. Helaas was het resultaat een
groot verlies aan prestaties en na die release is de
standaardwaarde weer terug veranderd. Met de sysctl
variabele hw.ata.wc kan gecontroleerd
worden of schrijfcaching aan of uit staat. Als
schrijfcaching uit staat, het die weer aangezet worden door
hw.ata.wc naar 1 te zetten. Aangezien dit
een kernelvariabele is, moet deze ingesteld worden vanuit de
bootloader tijdens het opstarten. Nadat de kernel eenmaal
opgestart is, heeft het wijzigen van deze sysctl geen
effect.Meer informatie staat in &man.ata.4;.SCSI_DELAY
(kern.cam.scsi_delay)kern.cam.scsi.delaykerneloptiesSCSI_DELAYDe SCSI_DELAY kernelinstelling kan
gebruikt worden om de opstarttijd te versnellen. De
standaardwaarde is nogal hoog en kan 15
seconden vertraging veroorzaken. Met modernere SCSI systemen
is 5 seconden al voldoende. Nieuwere
versies van &os; (5.0 en hoger) gebruiken de opstartvariabele
kern.cam.scsi_delay. Zowel deze als de
optie SCSI_DELAY gebruiken waarden
uitgedrukt in milliseconden en
niet in
seconden.SoftupdatesSoftupdatestunefs&man.tunefs.8; kan gebruikt worden om een bestandsysteem
nauwkeurig af te stellen. Het heeft veel opties, maar nu wordt
alleen het aan- en uitzetten van softupdates besproken. Dat
gaat als volgt:&prompt.root; tunefs -n enable /filesystem
&prompt.root; tunefs -n disable /filesystemEen bestandssysteem kan niet met &man.tunefs.8; gewijzigd
worden als het gemount is. Softupdates aanzetten wordt dus in
het algemeen gedaan vanuit single-user modus, voordat partities
gemount zijn.Vanaf &os; 4.5, is het mogelijk om softupdates
aan te zetten op het moment dat de bestandssystemen aangemaakt
worden, door middel van de -U optie van
&man.newfs.8;.Softupdates zorgen voor een drastische verbetering van de
meta-data prestaties, met name het aanmaken en verwijderen van
bestanden, door gebruik van een geheugencache. Het wordt dan
ook aangeraden om op alle bestandssystemen softupdates te
gebruiken. Er zijn twee nadelen aan softupdates: softupdates
garandeert een consistent bestandssysteem in geval van een
crash, maar het kan makkelijk enkele seconden (zelfs een
minuut) achter liggen met het daadwerkelijk bijwerken op de
fysieke harde schijf. Als een systeem crasht wordt wellicht
meer werk verloren dan anders het geval zou zijn. Daarnaast
vertraagt softupdates het vrijgeven van bestandssysteemblokken.
Als een bestandssysteem (zoals de root partitie) bijna vol is,
dan kan het verrichten van een grote update, zoals
make installworld, ertoe leiden dat het
bestandssysteem ruimtegebrek krijgt en dat daardoor de operatie
mislukt.Meer over softupdatesSoftupdatesdetailsEr zijn traditioneel twee methodes om de metadata van een
bestandssysteem terug naar de schijf te schrijven. Het
bijwerken van metadata houdt het bijwerken van van
niet-inhoudelijke data zoals inodes of mappen in.Historisch gezien was het gebruikelijk om metadataupdates
synchroon weg te schrijven. Als een map bijvoorbeeld
gewijzigd was, wachtte het systeem totdat de verandering
daadwerkelijk naar de schijf geschreven was. De databuffers
(de inhoud van een bestand) werden doorgeschoven naar de
buffercache en op een later moment asynchroon op de schijf
opgeslagen. Het voordeel van deze benadering is dat ze
altijd veilig is. Als het systeem faalt tijdens het
bijwerken, is de metadata nog altijd consistent. Een bestand
kan volledig gecreëerd zijn of helemaal niet. Als de
datablokken van een bestand nog niet van de buffercache naar
de schijf geschreven zijn ten tijde van de crash, is
&man.fsck.8; in staat om dit te herkennen en het
bestandssysteem te repareren door de lengte van het bestand
nul te maken. Deze implementatie is ook helder en eenvoudig.
Het nadeel is echter dat het wijzigen van metadata een traag
proces is. Een rm -r commando benadert
bijvoorbeeld alle bestanden in een map sequentiëel, maar
elke mapverandering (verwijderen van een bestand) wordt
synchroon naar de schijf geschreven. Dit omvat ook het
bijwerken van de map zelf, van de inodetabel en mogelijk ook
van indirecte blokken die voor het bestand in kwestie
zijn gealloceerd. Gelijksoortige processen spelen zich af
bij een commando als tar -x, waarbij een
grote bestandshiëearchie wordt uitgepakt.De tweede mogelijkheid is om het bijwerken van metadata
asynchroon weg te schrijven. Dit is standaard in
&linux;/ext2fs en als een *BSD ufs bestandssysteem met
mount -o async gemount is, is de werking
hetzelfde. Alle bijwerkingen aan metagegevens worden
eenvoudigweg doorgegeven aan de buffercache en vermengd met
inhoudelijke updates van de bestandsgegevens. Het voordeel
is een grote winst aan snelheid, omdat er niet telkens
gewacht hoeft te worden op het bijwerken van metagegevens tot
deze daadwerkelijk naar de schijf geschreven zijn. De
implementatie is ook in dit geval helder en eenvoudig. Het
grote nadeel is uiteraard dat er geen enkele garantie is voor
de consistentie van het bestandssysteem. Als het systeem
faalt tijdens een operatie waarbij veel metagegevens worden
bijgewerkt (bijvoorbeeld door een stroomstoring of iemand
drukt op de resetknop), blijft het bestandssysteem in een
onvoorspelbare toestand achter. Er is geen mogelijkheid om
de toestand van het bestandssysteem te onderzoeken als het
systeem weer opstart, want de datablokken van een bestand
kunnen al weggeschreven zijn geweest terwijl het wegschrijven
van bijwerkingen aan de inodetabel of de bijhorende map nog
niet plaats heeft gevonden. Het is zelfs onmogelijk om een
fsck te implementeren die de overgebleven
chaos kan opruimen: de benodigde informatie is gewoon niet
volledig aanwezig op de schijf. Als een bestandssysteem op
deze manier onherstelbaar beschadigd is, is de enige optie
&man.newfs.8; te gebruiken en vervolgens te herstellen van
een backup.De gebruikelijke oplossing voor dit probleem is het
implementeren van dirty region logging,
ook wel journaling genoemd, hoewel deze
term niet consistent gebruikt wordt en soms ook wordt
gebruikt voor andere vormen van transactielogging. Het
bijwerken van metagegevens wordt nog steeds synchroon
geschreven, maar slechts naar een klein gebied van de schijf.
Later worden ze dan naar de juiste locatie verplaatst. Omdat
het loggebied klein is, hoeven de koppen van de schijf zelfs
tijdens schrijfintensieve operaties nog maar over een kleine
fysieke afstand te bewegen en door deze snellere respons zijn
dit soort operaties sneller dan op de traditionele manier.
De extra complexiteit van de implementatie is nogal beperkt,
dus het risico van introductie van extra bugs valt mee. Een
nadeel is dat alle metagegevens tweemaal geschreven worden
(eerst naar het loggebied en later nog eens naar de
definitieve locatie). Dus bij normaal gebruik kan er sprake
zijn van wat men wel noemt een performance
pessimization. Anderzijds kunnen in geval van een
crash alle nog uitstaande metagegevensoperaties snel worden
teruggedraaid of vanuit het loggebied alsnog worden
afgemaakt, wanneer de machine weer opstart. Het
bestandssysteem start dan snel op.Kirk McKusick, de vader van het Berkeley FFS, loste dit
probleem op met softupdates, wat betekent dat alle uitstaande
acties voor het bijwerken van metagegevens in het geheugen
bewaard worden en dan geordend naar de schijf geschreven
worden. Dit heeft het gevolg dat in geval van intensieve
operaties met betrekking tot metagegevens, latere
bijwerkingen aan een item eerdere bewerkingen opvangen
(catch) als deze nog in het geheugen zitten en
nog niet weggeschreven waren. Dus alle operaties,
op bijvoorbeeld een map, worden in het algemeen eerst in het
geheugen uitgevoerd voordat er wordt bijgewerkt naar schijf.
De datablokken worden geordend conform hun positie, zodat ze
nooit weggeschreven worden voordat hun metagegevens
geschreven zijn. Als het systeem een crash ondervindt,
veroorzaakt dat impliciet het terugdraaien van uitstaande
operaties (log rewind): alle operaties die nog
niet weggeschreven waren lijken nooit gebeurd te zijn. Zo
wordt een consistent bestandssysteem in stand gehouden dat
eruit ziet alsof het 30 tot 60 seconden eerder was. Het
gebruikte algoritme garandeert dat alle bronnen die in
gebruik zijn als zodanig gemarkeerd worden in hun daarvoor
geschikte bitmaps: blokken en inodes. Na een crash is de
enige allocatiefout die kan optreden dat bronnen gemarkeerd
kunnen zijn als in gebruik (used), terwijl ze
feitelijk alweer beschikbaar (free) zijn.
&man.fsck.8; herkent deze situatie en stelt dergelijke vrij
te maken bronnen opnieuw beschikbaar. Het is volkomen veilig
om na een crash te negeren dat het bestandssysteem niet
schoon is en het tot mounten te dwingen met
mount -f. Om niet langer gebruikte
bronnen vrij te maken moet later &man.fsck.8; uitgevoerd
worden. Dit is dan ook het idee achter background
fsck: op het moment dat het systeem aan het
opstarten is, wordt er alleen een
snapshot van het systeem bewaard.
fsck kan later uitgevoerd worden. Alle
bestandssystemen kunnen dirty gemount worden
en het systeem kan gewoon verder opstarten naar multi-user
modus. Vervolgens zijn er fscks
gepland die in de achtergrond draaien voor elk
bestandssysteem dat niet schoon is en waarmee bezette bronnen
vrijgegeven worden. Bestandssystemen die geen gebruik maken
van softupdates moeten echter nog steeds gebruik maken van de
normale fsck in de voorgrond.Het voordeel van softupdates is dat operaties op
metagegevens bijna net zo snel zijn als asynchrone updates
(dat wil zeggen sneller dan met
logging, waarbij de metagegevens keer
keer geschreven worden). Nadelen zijn de complexiteit van
de code (wat een groter risico op bugs impliceert in een
gebied dat bijzonder gevoelig is voor verlies van
gebruikersgegevens) en een groter geheugenverbruik. Tevens
moet de gebruiker wennen aan enkele eigenaardigheden. Na
een crash lijkt de toestand van het bestandssysteem wat
ouder. In situaties waar de standaard
synchrone benadering een aantal lege bestanden zou hebben
achtergelaten na fsck, is het met
softupdates juist zo dat dergelijke bestanden er helemaal
niet zijn, omdat de metadata of de bestandsinhoud nooit naar
de schijf is geschreven. Schijfruimte wordt pas vrijgegeven
als de bijwerkingen aan metagegevens en inhoudelijke
bestandsdata weggeschreven zijn, wat mogelijk pas enige tijd
na het uitvoeren van rm plaatsvindt. Dit
kan problemen veroorzaken als er grote hoeveelheden data
naar een bestandssysteem geschreven worden dat onvoldoende
vrije ruimte heeft om alle bestanden twee keer te kunnen
bevatten (bijvoorbeeld in /tmp).Fijnafstemming van kernellimietenfijnafstemmingkernellimietenBestandsproceslimietenkern.maxfileskern.maxfileskern.maxfiles kan worden verhoogd of
verlaagd, afhankelijk van de systeembehoeften. Deze
variabele geeft het maximale aantal bestandsdescriptors op
een systeem. Als de bestandsdescriptortabel vol is,.toont de
systeembuffer meerdere malen file: table is
full, hetgeen achteraf te zien is net
dmesg.Elk geopend bestand, socket of fifo heeft een
bestandsdescriptor. Een grote produktieserver kan makkelijk
enige duizenden bestandsdescriptors nodig hebben, afhankelijk
van het soort en aantal diensten die tegelijk draaien.De standaardwaarde voor kern.maxfiles
wordt bepaald door de optie maxusers in
het bestand met kernelinstellingen.
kern.maxfiles groeit evenredig met de
waarde van maxusers. Als een aangepaste
kernel wordt gebouwd, is het een goed idee om deze
kerneloptie in te stellen afhankelijk van het gebruikt van
een systeemhet (maar niet te laag). Hoewel een
produktieserver misschien niet 256 gebruikers gelijktijdige
gebruikers heeft, kunnen de benodigde systeembronnen best
vergelijkbaar zijn met een grootschalige webserver.De optie maxusers stelt de grootte van
een aantal belangrijke systeemtabellen in. Dit aantal moet
ruwweg gelijk zijn aan het aantal gebruikers dat verwacht
wordt gelijktijdig van de machine gebruik te maken.Met ingang van &os; 4.5 stelt het systeem deze
waarde zelf in als deze uitdrukkelijk op 0
is gezet.
Het auto-tuning-algoritme stelt
maxusers in afhankelijk van de
hoeveelheid geheugen in het systeem, met een minimum van
32 en een maximum van 384.
In &os; 5.X en hoger heeft maxusers
een standaardwaarde van 0 als deze niet gespecificeerd is.
Als er een versie van &os; lager dan 4.5 wordt gebruikt of
het gewenst is om de waarde zelf te beheren, wordt aangeraden
om maxusers minstens op 4 te zetten, met
name als het X Window systeem in gebruik is of als er
software gecompileerd wordt. De reden hiervoor is dat de
belangrijkste tabel die door maxusers
ingesteld wordt, het maximum aantal processen is, dat
ingesteld wordt op 20 + 16 * maxusers, dus
als maxusers op 1 ingesteld wordt, zijn er
maar 36 gelijktijdige processen mogelijk, inclusief de
ongeveer achttien processen die door het systeem tijdens het
opstarten start en de ongeveer vijftien processen die
waarschijnlijk aangemaakt worden door het opstarten van het X
Window systeem. Zelfs een eenvoudige taak als het afbeelden
van een hulppagina start negen processen op om de pagina te
filteren, te decomprimeren en af te beelden. Als
maxusers op 64 ingesteld wordt, zijn er
1044 gelijktijdige processen mogelijk, wat genoeg moet zijn
voor bijna alle soorten gebruik. Als echter de gevreesde
fout proc table full verschijnt als er
geprobeerd wordt om een programma op te starten of als er een
server gedraaid wordt met een groot aantal gelijktijdige
gebruikers, zoals ftp.FreeBSD.org, kan het getal altijd
verhoogd worden en kan de kernel opnieuw gebouwd
worden.maxusers stelt
geen grens aan het aantal gebruikers
dat op de machine kan aanmelden. Het stelt gewoon
verschillende tabelgroottes in op redelijke waardes,
uitgaande van het maximum aantal gebruikers dat
waarschijnlijk de machine gebruikt en van het aantal
processen dat elk van deze gebruikers zal draaien. Een
sleutelwoord dat wel het aantal
gelijktijdige aanmeldingen op afstand en X-terminalvensters
begrensd is pseudo-device pty
16. In &os; 5.X kan dit getal
genegeerd worden omdat daar het stuurprogramma &man.pty.4;
auto-cloning is. Er kan eenvoudig gebruik
worden gemaakt van de regel device pty
in het instellingenbestand.kern.ipc.somaxconnkern.ipc.somaxconnDe sysctl variabele kern.ipc.somaxconn
beparkt de grootte van de luisterwachtrij voor het accepteren
van nieuwe TCP verbindingen. De standaardwaarde van
128 is meestal te laag voor robuuste
behandeling van nieuwe verbindingen in een zwaarbeladen
webserver omgeving. Voor zulke omgevingen wordt aangeraden
deze waarde te verhogen tot 1024 of hoger.
De dienstdaemon beperkt misschien zelf de luisterwachtrij
(bijvoorbeeld &man.sendmail.8; of
Apache), maar heeft vaak een
mogelijkheid in een configuratiebestand de wachtrijgrootte
aan te passen. Grote luisterwachtrijen zijn
ook beter in het ontwijken van Ontzegging van Dienst
(DoS) aanvallen.NetwerkbeperkingenDe kerneloptie NMBCLUSTERS bepaalt het
aantal netwerk Mbufs dat beschikbaar is voor een systeem. Een
veel bezochte server met een laag aantal Mbufs beperkt de
mogelijkheden van &os;. Elk cluster staat voor ongeveer
2 K geheugen, dus een waarde van 1024 stelt 2 megabyte
aan kernelgeheugen voor, dat is gereserveerd voor
netwerkbuffers. Een simpele berekening geeft aan hoeveel er
nodig is. Stel dat een webserver met een maximum van 1000
simultane verbindingen voor elke verbinding 16 K aan
ontvangst netwerkbuffers en 16 K aan zendbuffers kost, dan
is ongeveer 32 MB aan netbuffers nodig voor de webserver.
Een goede vuistregel is te vermeniguldigen met twee,
dus 2x32 MB / 2 KB = 64 MB /
2 kB = 32768. Voor machines met veel geheugen wordt
4096 tot 32768 aangeraden. Er moet in geen geval een arbitrair
hoge waarde voor deze sysctl opgegeven worden, want dat kan
leiden tot een crash tijdens het opstarten. Met de optie
van &man.netstat.1; kan clustergebruik
van het netwerk bekeken worden.De loaderparameter kern.ipc.nmbclusters
moet gebruikt worden om dit tijdens het opstarten toe te
passen. Alleen voor oudere versies van &os; is het nodig om de
kerneloptie NMBCLUSTERS te gebruiken.Voor drukke servers die extensief gebruik maken van de
systeemaanroep &man.sendfile.2;, kan het nodig zijn het aantal
&man.sendfile.2; buffers te verhogen via de kerneloptie
NSFBUFS of door de waarde in te stellen in
/boot/loader.conf (in &man.loader.8; staan
details). Als er in de procestabel processen staan met een
status sfbufa is dat een algemene indicator
dat deze parameter aangepast moet worden. De sysctl variabele
kern.ipc.nsfbufs is alleen-lezen en
laat zien op welke waarde deze kernelvariabele is ingesteld.
Deze parameter schaalt engiszins met de variabele
kern.maxusers, maar het kan nodig zijn om
deze bij te stellen.Zelfs als een socket als non-blocking gemarkeerd is, dan
nog kan het aanroepen van &man.sendfile.2; op de non-blocking
socket ertoe leiden dat er toch blokkade optreedt totdat er
voldoende struct sf_buf's vrijgemaakt
zijn.net.inet.ip.portrange.*net.inet.ip.portrange.*De sysctle variabelelen
net.inet.ip.portrange.* bepalen welke
reeks poortnummers automatisch gebonden wordt aan TCP en UDP
sockets. Er zijn drie gebieden: een laag gebied, een
(standaard) middengebied en een hoog gebied. De meeste
netwerkprogramma's gebruiken het standaardbereik, wat
begrensd wordt door
net.inet.ip.portrange.first en
net.inet.ip.portrange.last met
standaardwaarden van respectievelijk 1024 en 5000. Gebonden
poortreeksen worden gebruikt voor uitgaande verbindingen en
het is onder bepaalde omstandigheden mogelijk dat poorten
op raken. Dit gebeurt meestal in het geval van een zwaar
belaste webproxy. Poortbereik is niet van belang als vooral
diensten draaien die zich bezighouden met inkomende
verbindingen, zoals een normale webserver, of als het aantal
uitgaande verbindingen beperkt is, zoals bij een mailrelay.
Voor situaties waarin een tekort aan poorten dreigt, wordt
aangeraden om net.inet.ip.portrange.last
bescheiden op te hogen. Een waarde van
10000, 20000 of
30000 is redelijk. Er moet ook rekening
met effecten op firewalls gehouden worden als de poortreeks
gewijzigd wordt. Sommige firewalls kunnen grote
poortreeksen blokkeren, meestal de lagere poorten, en
verwachten dat andere systemen hogere poorten gebruiken voor
uitgaande verbindingen. Om deze reden wordt het niet
aanbevolen om net.inet.ip.portrange.first
te verlagen.TCP Bandbreedtevertragingsproduct (TCP Bandwidth Delay
Product)TCP bandbreedtevertragingsproductnet.inet.tcp.inflight.enableDe TCP bandbreedtevertragingsproduct limitatie lijkt op
TCP/Vegas in NetBSD. Het kan aangezet worden door de sysctl
variabelel net.inet.tcp.inflight.enable
de waarde 1 te geven. Het systeem
tracht dan het bandbreedtevertragingssprodukt te berekenen
voor elke verbinding en beperkt dan de hoeveelheid gegevens
in de wachtrij naar het netwerk tot de hoeveelheid die
vereist is om maximale doorvoer te kunnen handhaven.Dit is nuttig bij gebruik van modems, Gigabit Ethernet of
zelfs bij hoge snelheid WAN links (of elke andere link met
een groot bandbreedtevertragingsprodukt), in het bijzonder
als ook windowschaling of een groot verzendwindow gebruikt
wordt. Als deze optie aangezet wordt, dient ook
net.inet.tcp.inflight.debug de waarde
0 te krijgen (geen debugging) en voor
produktiegebruik kan het instellen van
net.inet.tcp.inflight.min naar minstens
6144 voordeel opleveren. Het instellen
van hoge minima kan effectief het beperken van bandbreedte
ondermijnen, afhankelijk van de link. De mogelijkheid tot
limitering zorgt ervoor dat de hoeveelheid data die opgebouwd
wordt, in tussentijdse route- en switchwachtrijen verlaagd
kan worden en tevens kan de hoeveelheid gegevens die
opgebouwd wordt in de interfacewachtrij van de lokale host
verlaagd worden. Met minder pakketten in wachtrijen, kunnen
interactieve verbindingen opereren met lagere
Round Trip tijden, met name over
langzame modems. Deze optie gaat alleen over datatransmissie
(upload / serverkant) en heeft geen effect gegevensontvangst
(download / clientkant).Aanpassen van
net.inet.tcp.inflight.stab wordt
niet aangeraden. Deze parameter krijgt
standaard een waarde van 20, wat 2 maximale pakketten
opgeteld bij de bandbreedtevensterberekening representeert.
Het extra venster is nodig om het algoritme stabiel te houden
en om de reactietijd bij veranderende omstandigheden te
verbeteren, maar het kan ook leiden tot langere pingtijden
over langzame verbindingen (zonder het inflight algoritme kan
dit echter nog erger zijn). In dergelijke gevallen kan deze
parameter misschien verlaagd worden naar 15, 10 of 5 en
misschien moet voor het gewenste effect ook
net.inet.tcp.inflight.min verlaagd worden
(bijvoorbeeld naar 3500). Het verlagen van deze parameters
moet pas in laatste instantie overwogen worden.In 4.X en eerdere releases van &os; staan de sysctl
variabelen inflight direct onder
net.inet.tcp. Hun namen waren (in
alfabetische volgorde):
net.inet.tcp.inflight_debug,
net.inet.tcp.inflight_enable,
net.inet.tcp.inflight_max,
net.inet.tcp.inflight_min,
net.inet.tcp.inflight_stab.Virtueel Geheugenkern.maxvnodesEen vnode is de interne representatie van een bestand of
een map. Het verlagen van het aantal beschikbare vnodes
voor het besturingssysteem leidt dus tot een daling van disk
I/O. Normaliter wordt dit door het besturingssysteem
afgehandeld en hoeft de instelling niet gewijzigd te worden.
Im sommige gevallen kan disk I/O de beperkende factor zijn en
kan het systeem alle beschikbare vnodes in gebruik hebben.
Dan dient deze instelling gewijzigd te worden. De
hoeveelheid inactief en beschikbaar RAM dient meegenomen te
worden in de beslissing.Het huidige aantal gebruikte vnodes kan als volgt bekeken
worden:&prompt.root; sysctl vfs.numvnodes
vfs.numvnodes: 91349Om het maximale aantal vnodes weer te geven:&prompt.root; sysctl kern.maxvnodes
kern.maxvnodes: 100000Als het huidige aantal gebruikte vnodes dicht bij het
maximale aantal ligt, is het verstandig om
kern.maxvnodes op te hogen met 1.000.
Ook vfs.numvnodes dient in de gaten
gehouden te worden. Als de waarde weer tot aan het maximum
stijgt, dan moet kern.maxvnodes verder
opgehoogd worden. Er dient een verschuiving op te treden in
het door &man.top.1; gerapporteerde geheugengebruik. Er
hoort meer geheugen actief te zijn.Wisselbestandruimte toevoegenHoe goed er ook gepland wordt, soms draait een systeem gewoon
niet zoals verwacht. Een oorzaak hiervoor kan een tekort aan
wisselbestandruimte zijn. Als blijkt dat er meer
wisselbestandruimte nodig is, kan dat eenvoudig. Er zijn drie
manieren om de totale ruimte beschikbaar als wisselbestand te
vergroten: een nieuwe harde schijf toevoegen, swappen over NFS of
een wisselbestand maken op een bestaande (UFS of andere)
partitie.Wisselbestand (partitie) op een nieuwe harde
schijfDit is natuurlijk de beste manier om de
wisselbestandsruimte te vergroten en een goed excuus om een
extra harde schijf toe te voegen. Die komt immers altijd wel
van pas. In dat geval kan het beste de discussie over
wisselbestandruimte in
nog eens herlezen worden om wat suggesties te krijgen over hoe
wisselbestandpartitie(s) het beste ingedeeld kunnen
worden.Swappen over NFSIn het algemeen wordt swappen over NFS niet aangeraden
omdat het langzaam is. Dit dient alleen gebruikt te worden als
het onmogelijk om naar een lokale schijf te swappen. In &os;
versies voor 4.X was het hanteren van een wisselbestand over
NFS erg langzaam en inefficiënt. Nieuwere versies werken
beter, maar dan nog wordt swappen over NFS sterk gelimiteerd
door de aanwezige netwerkbandbreedte en belast het de NFS
server.WisselbestandenHet is mogelijk om een bestand aan te maken van een
bepaalde grootte en dit als swap te gebruiken. In dit
voorbeeld wordt een 64 MB bestand gebruikt,
/usr/swap0. Uiteraard kan een
willekeurige naam gebruikt worden.Een wisselbestand aanmaken met &os; 4.XDe kernel moet het vnode stuurprogramma bevatten. In
recente versies van GENERIC
is vnode niet opgenomen.pseudo-device vn #Vnode driver (turns a file into a device)Een vn-apparaat aanmaken:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV vn0Een wisselbestand aanmaken
(/usr/swap0):&prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64Correcte rechten op (/usr/swap0)
instellen:&prompt.root; chmod 0600 /usr/swap0Wisselbestand opnemen in
/etc/rc.conf:swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.Nu kan de machine herstart worden of het
wisselbestand meteen te gebruiken:&prompt.root; vnconfig -e /dev/vn0b /usr/swap0 swapEen wisselbestand aanmaken met &os; 5.XDe kernel moet het stuurprogramma voor de
geheugenschijf (&man.md.4;) bevatten. Dat zit standaard
in de GENERIC kernel.device md # Memory "disks"Het wisselbestand /usr/swap0
aanmaken:&prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64De correctie rechten op
/usr/swap0 instellen:&prompt.root; chmod 0600 /usr/swap0Het wisselbestand opnemen in
/etc/rc.conf:swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.De machine moet herstart worden of om het
wisselbestand direct in te schakelen:
- &prompt.root; mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0
+ &prompt.root; mdconfig -a -t vnode -f /usr/swap0 -u 0 && swapon /dev/md0HitenPandyaGeschreven door TomRhodesEnergie- en bronnenbeheerHet is belangrijk om hardwarebronnen op een efficiënte
wijze te benutten. Voordat ACPI
geïntroduceerd werd was het erg lastig en onflexibel
om het energieverbruik en de thermische eigenschappen van een
systeem te beheersen. De hardware werd beheerst door deze of
gene interface, ingebed in het BIOS, zoals de
Plug-n-play BIOS (PNPBIOS) of
Advanced Power Management (APM), enzovoort.
Energie- en bronnenbeheer is een kerntaak van moderne
besturingssystemen. Het besturingssysteem moet bijvoorbeeld
systeemlimieten in de gaten houdt (en mogelijk een SMS sturen of
iets dergelijks) als de systeemtemperatuur onverwacht
toeneemt.In dit deel van het &os; handboek wordt uitgebreide
informatie verschaft over ACPI. Aan het einde
staan referenties naar meer leesmateriaal.
ACPI is op &os; 5.X en nieuwere systemen
als een standaard ingeladen kernelmodule aanwezig. In
&os; 4.9 kan ACPI aangezet worden door de
regel device acpica toe te voegen aan het
bestand met kernelinstellingen en een nieuwe kernel te bouwen en
te installeren.Wat is ACPI?ACPIAPMAdvanced Configuration and Power Interface
(ACPI) is een standaard die door een
alliantie van producenten geschreven is, met als doel te
voorzien in een een standaardinterface voor hardware bronnen-
en energiebeheer. Een belangrijk element is dat het meer
flexibiliteit en beheersmogelijkheden biedt aan het
besturingssysteem (OS). Moderne systemen
hebben de limieten van de huidige PNP interfaces verder
opgerekt dan wenselijk en misschien wel mogelijk was.
ACPI is de directe opvolger van
APM (Advanced Power Management). Centraal
is het verleggen van hardwarebeheer en -monitoring naar de OS
laag in plaats van de zeer beperkte BIOS laag.Tekortkomingen van APMMet de Advanced Power Management (APM)
faciliteit kan het energieverbruik van een systeem geregeld
worden op basis van de systeemactiviteit. Het APM BIOS wordt
geleverd door de systeemproducent of -verkoper en het is
specifiek voor dat betreffende hardware platform. Een APM
stuurprogramma in het besturingssysteem regelt vervolgens de
toegang tot de APM Software Interface, die
het besturen van vermogensniveau mogelijk maakt.Er zijn vier hoofdproblemen met APM te onderscheiden: ten
eerste wordt het energiebeheer verricht door een BIOS
(afhankelijk van producent) en het besturingssysteem heeft daar
geen kennis van. De gebruiker die idle-time waarden instelt
voor een harde schijf in het APM BIOS is hier een voorbeeld
van. Dan zal het BIOS de harde schijf langzamer kunnen laten
draaien zonder dat het besturingssysteem de noodzaak ziet of
het goedkeurt. Ten tweede: de APM logica is ingebed in de
BIOS, waardoor het buiten het besturingssysteem om opereert.
Dit houdt in dat gebruikers problemen met hun APM BIOS alleen
kunnen verhelpen door een nieuw BIOS in het ROM te flashen,
wat een gevaarlijke en mogelijk onherstelbare operatie is.
Ten derde is APM een producent-specifieke technologie, in de
zin dat er altijd een hoge mate van duplicatie zal zijn van al
dan niet geslaagde pogingen om het wiel opnieuw uit te vinden
en uiteraard ook van bugs. Er is geen enkele garantie dat het
wegnemen van een bug door een producent ook een zelfde bug
wegneemt bij een concurrent. Tenslotte is het van belang te
weten dat de APM BIOS in het algemeen gewoon te weing geheugen
kon gebruiken om een ingewikkeld energiebeheer te kunnen
implementeren. Laat staan dat deze goed aanpasbaar was aan
veranderlijke doelstellingen voor de betreffende
machine.Plug-n-play BIOS (PNPBIOS) was
in veel situations onbetrouwbaar. PNPBIOS is 16-bit
technologie, dus het besturingssysteem moet 16-bit emulatie
gebruiken om met PNPBIOS methoden te kunnen samenwerken.Het &os; stuurprogramma APM is
gedocumenteerd in &man.apm.4;.ACPI instellenHet stuurprogramma acpi.ko wordt
standaard geladen bij het opstarten door de &man.loader.8;
en hoeft niet gecompileerd te worden.
De redenatie is dat er met modules gemakkelijker gewerkt kan
worden, bijvoorbeeld een andere acpi.ko
gebruiken zonder dat er een nieuwe kernel gebouwd moet worden.
Dit heeft het voordeel dat testen eenvoudiger is. Een andere
reden is dat het opstarten van ACPI nadat
een systeem eenmaal volledig opgestart is, weinig nuttig is en
in sommige gevallen fataal kan zijn. In geval van tijfel kan
ACPI beter uitgeschakeld worden. Dit
stuurprogramma kan niet gestopt worden als het eenmaal geladen
is, omdat de systeembus het gebruikt voor allerlei interacties
met hardware. ACPI kan uitgezet worden met
het hulpprogramma &man.acpiconf.8;. In feite kan de meeste
interactie met het ACPI systeem gedaan
worden via &man.acpiconf.8;. In wezen betekent dit dat als er
iets over ACPI in &man.dmesg.8; staat, het
hoogstwaarschijnlijk al draait.ACPI en APM
kunnen niet samenleven en moeten afzonderlijk en exclusief
gebruikt worden. De laatste die gestart wordt bepaalt of het
stuurprogramma de ander wel of niet ziet.In haar eenvoudigste vorm kan ACPI
gebruikt worden om het systeem in slaapmodus te zetten met de
vlag en een 1-5 optie
met &man.acpiconf.8;. De meeste gebruikers hebben alleen
1 nodig. De optie 5
verricht een soft-off, wat hetzelfde is
als:&prompt.root; halt -pAndere opties zijn mogelijk. In &man.acpiconf.8; staat
meer informatie.NateLawsonGeschreven door PeterSchultzMet medewerking van TomRhodes&os; ACPI gebruiken en debuggenACPI is een totaal nieuwe manier om
apparaten te ontdekken, om energieverbruik te beheren en om een
gestandaardiseerde toegang te bieden tot allerlei apparaten die
eerder via het BIOS beheerd werden. Er wordt
voortdurend vooruitgang geboekt om ACPI op
alle systemen te laten werken, maar bugs in de
ACPIMachine Language
(AML) bytecode van sommige moederborden,
onvolledigheden in &os;'s kernel subsystemen en bugs in de
&intel; ACPI-CA interpreter blijven
opduiken.Deze tekst is bedoeld om de &os; ACPI
beheerders (maintainers) te helpen met het vinden
van de hoofdoorzaken van problemen die voorkomen en met het
debuggen en het vinden van een oplossing.Debuginformatie aanleverenVoordat een probleem wordt aanmeld, moet het zeker zijn
dat de laatste BIOS versie draait en
indien beschikbaar de geïntregeerde controller
firmware versie.Diegenen die meteen een probleem willen indienen, sturen
de volgende informatie naar
freebsd-acpi@FreeBSD.org:Omschrijving van het foutieve gedrag, inclusief
systeemtype en model en alles wat de fout kan veroorzaken.
Als het een nieuw fenomeen is, dan dient ook zo accuraat
mogelijk aangegeven te worden wanneer de fout het eerst
optrad.De &man.dmesg.8; uitvoer van boot
-v, inclusief foutmeldingen die gegenereerd
worden als de fout optreedt.De &man.dmesg.8; uitvoer van boot
-v met ACPI uitgeschakeld,
indien het uitzetten van ACPI het
probleem oplost.Uitvoer van sysctl hw.acpi. Dit is
tevens een goede manier om uit te vinden welke
ACPI mogelijkheden een systeem
heeft.Een URL waar de
ACPISource
Language (ASL) gevonden
kan worden. De ASL dient
niet rechtstreeks naar de lijst
gezonden te worden, omdat deze nogal groot kan zijn. Een
kopie van een ASL kan gemaakt worden met het volgende
commando:&prompt.root; acpidump -t -d > name-system.asl(Vervang een aanmeldnaam door
$NAME en producent/model door
$SYSTEM. Bijvoorbeeld:
njl-FooCo6000.asl)De meeste &os; programmeurs lezen de &a.current;
mailinglijst, maar problemen gaan bij voorkeur ook naar
&a.acpi.name; zodat ze zeker gezien worden. Het kan enige tijd
duren voordat er antwoord komt, omdat deze mensen elders ook
nog fulltime banen hebben. Als de bug niet meteen duidelijk
is, komt er waarschijnlijk en verzoek om een
PR in te dienen via &man.send-pr.1;. Als er
een PR moet worden opgesteld, dan dient alle
hierboven gevraagde informatie vermeld te worden. Dit helpt om
het probleem te kunnen volgen en oplossen. Het sturen van een
PR zonder eerst &a.acpi.name; te mailen is
niet wenselijk, aangezien men PRs gebruikt
als herinnering, niet als rapportagesysteem. Mogelijk is een
probleem al eens door iemand anders aangemeld.AchtergrondACPI is aanwezig op alle moderne
computers die voldoen aan de ia32 (x86), ia64 (Itanium) of
amd64 (AMD) architecturen. De volledige standaard heeft vele
mogelijkheden zoals CPU prestatiebeheer,
energiebeheer, thermische zones, diverse batterijsystemen,
ingebedde controllers en busnummering. De meeste systemen
implementeren minder dan de volledige standaard. Een
desktopsysteem implementeert bijvoorbeeld meestal alleen
busnummering, terwijl laptops mogelijk ook koeling- en
batterijbeheer ondersteunen. Laptops hebben ook suspend en
resume (slapen en wakker worden) met hun eigen aanverwante
comlexiteit.Een ACPI-compliant systeem heeft
verscheidene componenten. Het BIOS is de
eerste en dan zijn er verscheidene tabellen in het geheugen
zoals FADT die zaken als de
APIC map (gebruikt voor
SMP) specificeren, beschikbaar gesteld door
verschillende producenten/verkopers. Daarnaast zijn er
specifieke eenvoudige instellingen en instellingenregisters,
ook allen specifiek voor de leverancier. Ook wordt er een
tabel van bytecode (de Differentiated System
Description Table DSDT)
geleverd die een op een boomstructuur lijkende namespace biedt
voor apparaten en apparaatobjectfuncties.Het stuurprogramma ACPI moet de
voorgedefinieerde tabellen verwerken, een interpreter voor
de bytecode implementeren en apparaatstuurprogramma's en de
kernel aanpassen om alleen al informatie van het
ACPI subsysteem te kunnen accepteren.
&intel; heeft een interpreter beschikbaar gesteld
(ACPI-CA) die door &os; en ook door &linux;
en NetBSD gebruikt wordt. De ACPI-CA
broncode staat in src/sys/contrib/dev/acpica. De
lijmcode (glue code) die
ACPI-CA laat werken met &os; staat in
src/sys/dev/acpica/Osd. Stuurprogramma's
die verscheidene ACPI apparaten
implementeren staan in src/sys/dev/acpica.Algemene problemenWil ACPI goed werken, dan moeten alle
onderdelen goed werken. Hieronder staan enkele algemene
problemen in volgorde van hoe vaak ze optreden en enkele
mogelijke oplossingen of manieren om de problemen te
vermijden.MuisproblemenSoms doet een muis het niet bij het opstarten uit de
slaapstand. Een bekend lapmiddel is het toevoegen van
hint.psm.0.flags="0x3000" aan het bestand
/boot/loader.conf. Als dat niet werkt,
dan wordt aangeraden een bugrapport in te sturen, zoals
eerder is beschreven.Suspend/resumeACPI heeft drie slaapstanden waarbij
het geheugen (RAM) wordt ingezet. Dit
zijn de STR toestanden
S1-S3,en nog een
slaap-met-gebruik-van-harde-schijf toestand
(STD) die S4 heet.
S5 is zacht uit en is de
normale status van een systeem als het is aangesloten maar
niet is aangezet. S4 kan feitelijk op
twee manieren geïmplementeerd worden:
S4BIOS is een
slaapstand naar schijf met behulp van het
BIOS en
S4OS wordt volledig
door het besturingssysteem beheerd.als eerste dienen de sysctl
items die iets met de slaapstand
te maken hebben gecontroleerd te worden. Hieronder staan de
resultaten voor een Thinkpad:hw.acpi.supported_sleep_state: S3 S4 S5
hw.acpi.s4bios: 0Dit betekent dat hier acpiconf -s
gebruikt kan worden om S3,
S4 OS en
S5 te testen. Als
gelijk was aan (1), dan zou er
S4BIOS ondersteuning
zijn in plaats van S4
OS.Als suspend/resume getest moet worden, dient, indien
ondersteund, bij S1 begonnen te worden.
Deze toestand heeft de grootste kans om te werken, omdat deze
niet veel stuurprogrammaondersteuning vereist. Niemand heeft
nog S2 geïmplementeerd, maar het is
ongeveer hetzelfde als S1. Daarna wordt
S3 getest. Dit is het diepste
STR niveau en heeft uitgebreide
ondersteuning van stuurprogramma's nodig om hardware goed
opnieuw te kunnen starten. Mochten er blokkades optreden,
dan kan naar de &a.acpi.name; lijst gemaild worden. Er kan
echter geen snelle oplossing verwacht worden, omdat er nog de
nodige stuurprogramma's/hardware liggen om getest en bewerkt
te worden.Om een probleem te kunnen isoleren helpt het om zoveel
mogelijk stuurprogramma's uit de kernel te halen. Als dit
werkt, kan er teruggewerkt worden naar de driver die schuldig
is aan het falen. Meestal vertonen binaire stuurprogramma's
als nvidia.ko, X11
beeldschermstuurprogramma's en USB de
meeste problemen, terwijl bijvoorbeeld Ethernet
interfaces meestal meteen goed werken. Als de
stuurprogramma's zonder problemen geladen en verwijderd
kunnen worden, dan is dit te automatiseren door de juiste
commando's in /etc/rc.suspend en
/etc/rc.resume te zetten. Er staat een
voorbeeld (achter commentaartekens) voor het laden en
verwijderen van een driver. Als het beeldscherm er na
wakker worden vreemd uitziet, kan geprobeerd worden
naar nul
(0) te zetten. Met langere of kortere
waarden voor kan
bekeken worden of dat helpt.In geval van problemen is het ook een optie om een
recente &linux; distibutie met ondersteuning voor
ACPI support te starten en daarvan de
suspend/resume ondersteuning op dezelfde hardware uit te
proberen. Als het werkt met &linux;, dan is het
waarschijnlijk een &os; stuurprogrammaprobleem en als het
mogelijk is uit te vinden over welke driver het gaat, kan dat
bijdragen aan het oplossen van het probleem.
ACPI houdt zich in het algemeen niet bezig
met andere stuurprogramma's bijvoorbeeld geluid,
ATA, enzovoort. Als er dus een echt
driverprobleem is, dan is waarchijnlijk uiteindelijk
ook nodig naar de &a.current.name; lijst te posten en naar de
beheerder van het stuurprogramma. Voor degenen met moed is
het vooral aan te raden een paar &man.printf.3;s in
problematische stukken van een stuurprogramma te plaatsen
voor debugging om na te gaan waar de resumefunctie precies
hangt.Tot slot kan geprobeerd worden om ACPI
uit te zetten en in plaats daarvan APM aan
te zetten. Als suspend/resume werkt met
APM, is het wellicht verstandig het
daarbij te houden, vooral met wat oudere apparatuur (voor
2000). Producenten hebben nogal wat tijd nodig gehad om
ACPI ondersteuning goed te krijgen en
voor oudere hardware is het waarschijnlijker dat er
BIOS problemen zijn met
ACPI.Systeem hangt (tijdelijk of permanent)Meestal is het hangen van het systeem het gevolg van
verloren interrupts of een interruptstorm. Chipsets kunnen
een heleboel problemen hebben, afhankelijk van hoe het
BIOS interrupts instelt voor het
opstarten, of de APIC
(MADT) tabel correct is en de routering
van het System Control Interrupt
(SCI).interrupt stormsInterruptstorms kunnen onderscheiden worden van verloren
geraakte interrupts door de uitvoer van vmstat
-i te controleren en de regel met
acpi0 goed te lezen. Als de teller in
toenemende mate hoger staat dan enkele per seconde, dan is
sprake van een interruptstorm. Als het systeem lijkt te
hangen, is het wellicht nog mogelijk door te dringen tot
de DDB (CTRLALTESC)
show interrupts uit te voeren.APICuitschakelenDe beste hoop in geval van interruptproblemen
is om APIC ondersteuning uit te zetten met
hint.apic.0.disabled="1" in
loader.conf.PanicsPanics zijn relatief zeldzaam met ACPI
en krijgen de hoogste prioriteit bij het oplossen. Eerst
moeten de verschillende gebeurtenissen waarmee de
panic (als mogelijk) te reproduceren is geïsoleerd
worden en moet een backtrace gemaakt worden.
options DDB dient aangezet te worden en er
dient een een seriële console () of een &man.dump.8; partitie
te komen.. In DDB is een backtrace te
maken met tr. Als de backtrace handmatig
opgeschreven moet worden, is het belangrijk dat in ieder
geval de bovenste en onderste vijf (5) regels van de
backtrace genoteerd worden.Daarna dient getracht te worden het systeem te starten
zonder ACPI. Als dat werkt, is het
ACPI subsysteem geïsoleerd en kunnen
de verschillende waarden
uitgeprobeerd worden. In &man.acpi.4; staan enkele
voorbeelden.Systeem slaat aan na slaapstand of stophw.acpi.disable_on_poweroff="0" kan
uitgezet worden in &man.loader.conf.5;. Hierdoor schakelt
ACPI bepaalde gebeurtenissen tijdens het
afsluitproces niet uit. Om dezelfde redenen moeten sommige
systemen deze waarde altijd op 1
(standaard) hebben staan. In het algemeen lost dit een
probleem op waarbij een systeem spontaan weer opkomt
nadat het in slaapstand is gezet of geheel gestopt is.Overige problemenAls er nog andere problemen zijn met
ACPI (met een docking station of
apparaten niet gedetecteerd, enzovoort), dan kan een mail
met beschijving naar de mailinglijst gezonden worden.
Sommige zaken kunnen echter gerelateerd zijn aan delen van
het ACPI subsysteem die nog niet af zijn,
dus het kan in sommige gevallen een tijd duren. Gebruikers
moeten soms geduld hebben en de bereidheid om eventuele
patches uit te proberen.ASL, acpidump en
IASLACPIASLHet grootste probleem is dat BIOS
producenten vaak incorrecte (of gewoon foutieve) bytecode
leveren. Dit blijkt doorgaans uit kernelboodschappen
als:ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\
(Node 0xc3f6d160), AE_NOT_FOUNDVaak kunnen dergelijke problemen geoplost worden door de
BIOS bij te werken tot de laatste revisie.
De meeste consoleberichten zijn onschuldig, maar als er andere
problemen zijn, zoals batterijstatus die niet werkt, dan ligt
het voor de hand te zoeken naar problemen in de
AML code. De bytecode die
AML genoemd wordt, wordt gecompileerd van
een broncodetaal ASL. Deze staat weer in
een tabel DSDT. Met &man.acpidump.8; kan
een kopie van de ASL gemaakt worden. Dan
moeten zowel de opties (laat inhoud van
vaste tabellen zien) als (disassembleer
AML naar ASL) gebruikt
worden. In Debuginformatie
aanleveren staat een voorbeeld.De eenvoudigste eerste controle is de
ASL code opnieuw compileren en kijken of
er foutmeldingen optreden. Waarschuwingen kunnen doorgaans
genegeerd worden, maar fouten zijn bugs die er meestal toe
leiden dat ACPI niet correct werkt. Om
ASL te hercompileren:&prompt.root; iasl eigen.aslASL reparerenACPIASLOp langere termijn is het de bedoeling dat voor vrijwel
elke machine ACPI werkt zonder enig
ingrijpen van de gebruiker. Op dit moment wordt er echter nog
gewerkt aan oplossingen voor veel voorkomende vergissingen die
BIOS producenten maken. De µsoft;
interpreter (acpi.sys en
acpiec.sys) controleert niet strikt of het
BIOS volledig aan de standaard voldoet,
waardoor het voorkomt dat BIOS makers die
alleen testen onder &windows; bepaalde fouten in hun
ASL nooit correct repareren. &os; hoopt
door te gaan met de identificatie en documentatie van welk
niet-standaard gedrag precies wordt toegelaten door
µsoft;'s interpreter en te dit te repliceren zodat &os;
kan werken zonder dat gebruikers zich gedwongen zien om de
ASL te repareren. Als een tijdelijke
oplossing en om te helpen met het in kaart brengen van bepaald
gedrag, kan de ASL handmatig gerepareerd
worden. Mocht dit lukken, dan wordt erop aangedrongen een
&man.diff.1; van de oude en de nieuwe ASL
te mailen, zodat het foutieve gedrag mogelijk in
ACPI-CA kan worden verwerkt, waardoor
andere gebruikers niet meer handmatig met hun
ASL aan de gang hoeven.ACPIerror messagesHieronder staat een lijst algemene foutmeldingen, hun
oorzaken en hoe ze op te lossen:_OS afhankelijkhedenSommige AMLs gaan ervan uit dat de
wereld enkel bestaat uit &windows; versies. &os; kan zich
voordoen als elk OS om te kijken of dit
problemen oplost. Een gemakkelijke manier om dit te doen is
hw.acpi.osname="Windows 2001" in te
stellen in /boot/loader.conf of andere
gelijksoortige strings die in een ASL
staan.Ontbrekende return opdrachtenSommige methoden hebben geen specifieke returnwaarde,
zoals wel vereist wordt door de standaard. Hoewel
ACPI-CA hier niets mee doet, heeft &os;
de mogelijkheid tot impliciete returns. Er kunnen ook
expliciet return opdrachten toegevoegd worden waar vereist,
als het bekend is welke waarden teruggevoerd moeten worden.
Om iasl te dwingen tot compilatie van
ASL kan de schakeloptie
gebruikt worden.De standaard AML aanpassenNadat eigen.asl aangepast is, kan
deze als volgt gecompileerd wordent:&prompt.root; iasl eigen.aslMet de optie is af te dwingen dat de
AML gemaakt wordt, zelfs als er
compileerfouten optreden. Sommige fouten (zoals ontbrekende
return opdrachten) worden automatisch opgelost door de
interpreter.DSDT.aml is de standaardnaam voor
het bestand dat door iasl wordt
geproduceerd. Dit is in plaats van de foutieve versie uit
het BIOS (die nog steeds
aanwezig is in het flashgeneugen) te laden door
/boot/loader.conf als volgt te
wijzigen:acpi_dsdt_load="YES"
acpi_dsdt_name="/boot/DSDT.aml"DSDT.aml moet in de map /boot staan.Debuguitvoer van ACPI
verkrijgenACPIproblemenACPIdebuggenHet stuurprogramma ACPI heeft een zeer
flexibele debugfaciliteit. Er kan zowel een set van
subsystemen aangegeven worden als het niveau van uitvoerigheid.
De te debuggen subsystemen worden aangegeven als lagen
(layers) en zijn opgedeeld in
ACPI-CA componenten (ACPI_ALL_COMPONENTS)
en ACPI hardware ondersteuning
(ACPI_ALL_DRIVERS). De uitvoerigheid van debuguitvoer wordt
aangegeven als het niveau (level) en gaat van
CPI_LV_ERROR (alleen fouten rapporteren) tot ACPI_LV_VERBOSE
(alles). Het niveau is een bitmasker en dus kunnen er meerdere
opties tegelijk ingeschakeld worden (gescheiden door spaties).
In de praktijk wordt wellicht een seriële console gebruikt
om de uitvoer te loggen als deze zo omvangrijk is dat de
console berichtbuffer vol loopt (misschien wel meerdere keren).
Een complete lijst van de individuele lagen en niveaus staat
in &man.acpi.4;.Debuguitvoer staat staandaard niet aan. Door
options ACPI_DEBUG toe te voegen aan het
bestand met kernelinstellingen als ACPI als
de kernel is gebouwd, wordt het ingeschakeld. Door
ACPI_DEBUG=1 toe te voegen aan
/etc/make.conf wordt het systeembreed
ingeschakeld. Als ACPI als module wordt
gebruikt (de normale situatie), dan hoeft slechts de
acpi.ko module opnieuw gecompileerd te
worden:&prompt.root; cd /sys/modules/acpi/acpi
&& make clean &&
make ACPI_DEBUG=1acpi.ko moet in
/boot/kernel komen te
staan en de gewenste debuglaag en het gewenste
niveau van uitvoerigheid dienen toegevoegd te worden aan
loader.conf. Hieronder een voorbeeld
waarmee debuguitvoer wordt aangezet voor alle
ACPI-CA componenten en alle
ACPI hardware stuurprogramma's
(CPU, LID, enzovoort.
Het niveau van uitvoerigheid is het laagst mogelijke. Er
worden alleen fouten gemeld.debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS"
debug.acpi.level="ACPI_LV_ERROR"Als de gezochte informatie wordt veroorzaakt door een
specifieke gebeurtenis (bijvoorbeeld in en uit slaapstand
gaan), dan kunnen wijzigingen aan
loader.conf achterwege blijven en in
plaats daarvan kan sysctl gebruikt worden om
laag en niveau in te stellen na het opstarten en zo het systeem
voor te bereiden op die specifieke gebeurtenis. De
sysctls hebben dezelfde namen als de
parameters in loader.conf.VerwijzingenMeer informatie over ACPI staat op de
volgende locaties:De &a.acpi;De ACPI mailinglijst archieven
De oude ACPI mailinglijst archieven
De ACPI 2.0 specificatie
&os; Handleidingen: &man.acpi.4;,
&man.acpi.thermal.4;, &man.acpidump.8;, &man.iasl.8;,
&man.acpidb.8;
DSDT debugging informatie.
(Gebruikt Compaq als voorbeeld, maar van algemeen
nut).
diff --git a/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
index 613dd7f299..98fd73adc4 100644
--- a/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
@@ -1,2033 +1,2030 @@
JimMockGeherstructureerd, gereorganiseerd en delen bijgewerkt door JordanHubbardOrigineel door Poul-HenningKampJohnPolstraNikClaytonRemkoLodderVertaald door SiebrandMazelandHet scherp van de snedeOverzicht&os; wordt ontwikkeld tussen de verschillende versies in.
Voor mensen die het nieuwste van het nieuwste willen hebben zijn
er verschillende makkelijke mechanismes om een systeem
gesynchroniseerd te houden met de laatste ontwikkelingen. Wees
gewaarschuwd: het nieuwste van het nieuwste is niet voor
iedereen geschikt! Dit hoofdstuk helpt om een keuze te maken of
het wenselijk is het ontwikkelsysteem te volgen of
één van de uitgegeven versies.Na het lezen van dit hoofdstuk weet de lezer:De verschillen tussen de ontwikkeltakken &os.stable; en
&os.current;;Hoe een systeem bijgewerkt kan worden met
CVSup,
CVS of
CTM;Hoe een basissysteem opnieuw te compileren en
te herinstalleren met make buildworld,
enzovoort.Veronderstelde criteria:Een juist ingesteld netwerk ();Weten hoe software van derden te installeren ().&os.current; vs. &os.stable;-CURRENT-STABLEEr zijn twee ontwikkeltakken voor &os;: &os.current; en
&os.stable;. Deze sectie licht beiden toe en beschrijft hoe een
systeem bijgewerkt te houden met elke tak. &os.current; wordt
eerst behandeld, daarna &os.stable;.Bijblijven met &os;Bedenk dat &os.current; het nieuwste van het
nieuwste is van &os; ontwikkeling. Van &os.current;
gebruikers wordt verwacht dat ze veel technische kennis hebben
en capabel zijn om zelfstandig lastige systeemproblemen op te
lossen. Nieuwe gebruikers van &os; kunnen het beste twee keer
nadenken alvorens het te installeren.Wat is &os.current;?momentopname&os.current; is de laatste werkende set broncode voor
&os;. Dit bevat werk in uitvoering, experimentele
wijzigingen en overgangsmechanismes die mogelijk wel of niet
meegenomen worden in de volgende officiële uitgave van
het besturingssysteem. Alhoewel veel &os;-ontwikkelaars de
broncode van &os.current; dagelijks compileren, zijn er
periodes dat de broncode niet compileerbaar is. Deze
problemen worden zo snel mogelijk gerepareerd, maar het is
mogelijk dat &os.current; een ramp veroorzaakt in plaats van
dat het de gewenste functionaliteit levert. Dit ligt geheel
aan het moment waarop de broncode is opgehaald.Wie heeft &os.current; nodig?&os.current; is beschikbaar voor drie primaire
aandachtsgroepen:Leden van de &os;-gemeenschap die actief werken aan
een deel van de broncode voor wie current
een echte eis is.Leden van de &os;-gemeenschap die actief testen en
tijd hebben om problemen op te lossen om zeker te stellen
dat &os.current; zo gezond als mogelijk is. Er zijn ook
mensen die actuele suggesties maken over wijzigingen
en de algemene richting van &os; en die patches
opsturen om deze te implementeren.Diegenen die alleen een oogje in het zeil willen
houden of de huidige bronnen gebruiken ter referentie
(bijvoorbeeld voor het lezen en
niet het draaien). Deze mensen geven ook regelmatig
commentaar of dragen bij in de code.Wat is &os.current; niet?Een snelle manier om pre-release versies te krijgen
omdat bekend is dat er een aantal leuke nieuwe
mogelijkheden in zitten en het leuk is deze als eerste te
gebruiken. Het als eerste gebruiken van nieuwe
mogelijkheden betekent ook de eerste zijn die nieuwe bugs
ontdekt.Een snelle manier om bugfixes te krijgen. Elke
willekeurige versie van &os.current; heeft waarschijnlijk
net zoveel nieuwe bugs als dat er bugs opgelost
zijn.Op welke manier dan ook
officieel ondersteund. We doen onze best
om mensen echt te helpen in één van de drie
legitieme &os.current; groepen maar er is
simpelweg niet genoeg tijd om
technische ondersteuning te leveren. Dit is niet omdat
we gemene en vervelende mensen zijn die anderen niet
willen helpen (we zouden niet eens aan &os; werken als
we dat durfden). De ontwikkelaars kunnen simpelweg geen
honderd berichten per dag beantwoorden
én aan &os; werken. Bij de
keuze tussen het verbeteren van &os; en vragen
beantwoorden over experimentele code, kiezen
ontwikkelaars voor het eerste.&os.current; gebruiken-CURRENTgebruikenNeem een abonnement op de mailinglijsten
&a.current.name; en &a.cvsall.name;. Dit is niet alleen
een goed idee, het is essentieel.
Geen berichten ontvangen van de lijst
&a.current.name; betekent geen
commentaar zien dat mensen maken over de huidige staat
van het systeem en dus waarschijnlijk struikelen over
problemen die anderen al gevonden en opgelost hebben.
Nog belangrijker is het missen van belangrijke informatie
die kritisch kan zijn voor een systeem.De lijst &a.cvsall.name; biedt de mogelijkheid de
wijzigingsboodschap te zien voor elke wijziging die
gemaakt wordt samen met relevante informatie over
mogelijke bijwerkingen.Ga om op deze lijsten of één van de
andere beschikbare lijsten te abonneren naar
&a.mailman.lists.link; en klik op de gewenste lijst.
Instructies over de rest van de procedure zijn daar
beschikbaar.Haal de broncode van een &os;
mirrorsite. Dit kan op
de volgende twee manieren:cvsupcron-CURRENTSynchroniseren met CVSupGebruik het programma cvsup met de
supfile genaamd
standard-supfile uit
/usr/share/examples/cvsup. Dit
is de geadviseerde methode, omdat de gehele collectie
in één keer wordt binnengehaald en
daarna alleen hetgeen wat gewijzigd is. Veel mensen
draaien cvsup vanuit de
cron en houden daarmee hun
broncode automatisch bijgewerkt. De voorbeeld
supfile dient aangepast te
worden om cvsup in te
stellen voor een omgeving.-CURRENTSynchroniseren met CTMGebruik de CTM faciliteit.
Bij een slechte verbinding, dure
connecties of alleen e-mail toegang, is
CTM een optie. Het werkt
echter lastig en geeft mogelijk corrupte bestanden.
Dit zorgt ervoor dat het zelden gebruikt wordt, dat
de kans verhoogt dat het niet werkt voor redelijk
lange periodes. Het advies is
CVSup te
gebruiken.Als de broncode wordt opgehaald om te draaien en niet
alleen om naar te kijken, haal dan
alles op van &os.current; en niet
alleen geselecteerde delen. De reden hiervoor is dat
verschillende delen van de code afhangen van updates
op andere plekken en het compileren van een onderdeel
gegarandeerd problemen oplevert.-CURRENTcompilerenVoordat &os.current; gecompileerd wordt is het
raadzaam om de Makefile in
/usr/src aandachtig te bekijken.
Het is handig om de eerste keer op zijn minst de kernel en de
wereld opnieuw te bouwen als
onderdeel van het updateproces. Via de
&a.current; en /usr/src/UPDATING is
het mogelijk op de hoogte te blijven van mogelijke
wijzigingen in de opstartprocedures die soms nodig zijn
tussen verschillende versies.Wees actief! Ervaringen van &os.current;-gebruikers
zijn belangrijk, zeker als het gaat om suggesties voor
verbeteringen of bugfixes. Suggesties met bijbehorende
code worden enthousiast ontvangen!&os; stabiel houdenWat is &os.stable;?-STABLE&os.stable; is de ontwikkeltak waaruit grote releases
gemaakt worden. Wijzigingen in deze tak gaan in een ander
tempo en met de algemene aanname dat ze eerst in &os.current;
worden ingebracht ter test. Dit is nog
steeds een ontwikkeltak, echter dit betekent dat
op elk gegeven moment de code voor &os.stable; wel of niet
geschikt is voor een speciaal doel. Het is simpelweg een
andere ontwikkelomgeving en geen bron voor
eindgebruikers.Wie heeft &os.stable; nodig?Bij interesse in het bijhouden van of bijdragen aan het
&os;-ontwikkelproces, speciaal als het gerelateerd is aan de
volgende versie van &os;, is het volgen van &os.stable; het
overwegen waard.Ondanks dat security fixes ook in de &os.stable;-tak
komen, hoeft dit niet per se. In elke
beveiligingswaarschuwing voor &os; wordt uitgelegd uit hoe
het probleem opgelost kan worden voor de release die het
betreft.
Dit is niet helemaal waar. Oude releases van &os;
kunnen niet eeuwig ondersteund worden, ook al duurt
ondersteuning vele jaren. Een volledige beschrijving van
het huidige beveiligingsbeleid voor oudere releases van
&os; staat op http://www.FreeBSD.org/security/.
Het volgen van de volledige ontwikkeltak alleen om
veiligheidsredenen levert ongetwijfeld ongewenste wijzigingen
op.Ondanks het voornemen ervoor te zorgen dat de
&os.stable;-tak compileert en altijd draait, wordt dit niet
gegarandeerd. Terwijl code ontwikkeld wordt in &os.current;
voordat die in &os.stable; verwerkt wordt, draaien meer
mensen &os.stable; dan &os.current;, dus het is onontkoombaar
dat bugs en randgevallen soms in &os.stable; gevonden worden
die niet in &os.current; bekend waren.Om deze redenen wordt niet
aangeraden &os.stable; blindelings te volgen en het is extra
belangrijk geen productieservers bij te werken naar
&os.stable; zonder de code te testen in een
testomgeving.Als de mogelijkheden om dit te doen niet beschikbaar
zijn, dan is het advies de meest recente release van &os; te
draaien en dan de binaire update methode te hanteren om bij
te werken tussen verschillende releases.&os.stable; gebruiken&os.stable;gebruikenNeem een abonnement op de lijst &a.stable.name;.
Deze biedt informatie over onderdelen van de build die
mogelijk verschijnen in &os.stable; of eventuele andere
kwesties die speciale aandacht vereisen. Ontwikkelaars
kondigen in deze mailinglijst ook aan wanneer ze
overwegen om een controversiële fix of aanpassing
willen maken, waardoor de gebruikers een kans hebben om
te reageren als ze goede redenen hebben tegen de
voorgestelde wijziging.De lijst &a.cvsall.name; biedt informatie over de
commitlogregels voor elke wijziging zoals deze gemaakt is
tezamen met relevante informatie over mogelijke
bijwerkingen.Ga om te abonneren op deze lijsten, of
één van de andere beschikbare lijsten
naar &a.mailman.lists.link; en klik op de lijst waarop
een abonnement gewenst is. Instructies over de rest van
de procedure zijn daar beschikbaar.
- Bij installatie van een nieuw systeem dat zo stabiel
- mogelijk moet zijn kan simpelweg de laatst gedateerde
- snapshot gehaald worden van
- en deze kan geïinstalleerd worden zoals elke andere
- release. Ook kan de meest recente &os.stable; release
- geïnstalleerd worden van de mirrorsites en kunnen de
- onderstaande instructies gevolgd worden om een systeem
- bij te werken naar de meest recente &os.stable;
- broncode.
+ Kijk op de webpagina Snapshots om een
+ systeem te installeren van een maandelijkse snapshot
+ van &os.stable;. Het is ook mogelijk om de meest recente
+ &os.stable; release te installeren van de mirrorsites. Volg de
+ onderstaande instructies om een systeem bij te werken
+ naar de meest recente &os.stable; broncode.Als al een vorige release van &os; draait en
bijgewerkt moet worden via de broncodes dan kan dat via
de &os; mirrorsites. Dit
kan op één van de twee volgende
manieren:cvsupcron&os.stable;synchroniseren met CVSupGebruik het programma cvsup met de
supfilestable-supfile uit de map
/usr/share/examples/cvsup.
Dit is de aanbevolen methode omdat het hiermee
mogelijk is de volledige collectie te downloaden en
daarna alleen hetgeen wat veranderd is. Veel mensen
draaien cvsup vanuit de
cron om de broncodes automatisch
bij te werken. Het voorbeeld van de
supfile dient aangepast en
ingesteld te worden voor de omgeving waarin het
instellingenbestand gebruikt wordt.&os.stable;synchroniseren met CTMGebruik CTM als er geen
snelle, goedkope verbinding is met internet. Dan is
dit de methode om te gebruiken.Als er snelle on-demand toegang nodig is tot de
broncode en bandbreedte is geen overweging, gebruik dan
cvsup of ftp.
Gebruik anders CTM.&os.stable;compilerenLees alvorens &os.stable; te compileren goed de
Makefile in
/usr/src. Het is handig om de
eerste keer op zijn minst de
kernel en de wereld opnieuw te
bouwen als onderdeel van het updateproces. Via
de &a.stable; en /usr/src/UPDATING
is het mogelijk op de hoogte te blijven van mogelijke
wijzigingen in de opstartprocedures die soms nodig zijn
tussen verschillende releases.Broncode synchroniserenEr zijn verschillende manieren om een internet (of e-mail)
verbinding te gebruiken om bij te blijven met elk onderdeel van
de &os; projectbronnen of alle onderdelen, afhankelijk van
het interessegebied. De primaire diensten zijn Anonieme CVS en
CTM.Ondanks dat het mogelijk is om alleen delen van de
broncode bij te werken, is de enige ondersteunde methode
de totale broncode bijwerken en zowel userland (alle
programma's die in gebruikersruimte draaien, zoals
programma's in /bin en
/sbin) als de kernel opnieuw compileren.
Als alleen delen van de broncode worden bijgewerkt, alleen de
kernel of alleen het userland, resulteert dat vaak in
problemen. Deze problemen kunnen verschillen van
compileerfouten tot kernel panics of corruptie van
gegevens.CVSanoniemAnonieme CVS en
CVSup gebruiken het
pull model om broncode bij te werken. In
het geval van CVSup start de gebruiker
(of een cron script) het programma
cvsup waarbij het communiceert met een
cvsupd server om bestanden bij te werken. De
ontvangen updates zijn op de minuut nauwkeurig en ze komen alleen
wanneer dat is ingesteld. Updates kunnen eenvoudig beperkt
worden tot specifieke bestanden of mappen uit een
interessegebied. Updates worden automatisch gegenereerd door een
server, aan de hand van wat is ingesteld.
Anonieme CVS is veel eenvoudiger dan
CVSup omdat dat alleen een uitbreiding
is van CVS die de mogelijkheid biedt
om wijzigingen direct van een CVS repository op afstand te halen.
CVSup kan dit veel efficiënter
doen, maar anonieme CVS is makkelijker
in het gebruik.CTMCTM aan de andere kant maakt geen
vergelijking tussen de aanwezige bronnen en die op de master
server. In plaats daarvan wordt een script uitgevoerd dat
wijzigingen in bestanden ziet sinds de vorige keer dat is
bijgewerkt en die meerdere keren per dag worden uitgevoerd op de
master CTM machine. Elke ontdekte wijziging wordt gecomprimeerd,
krijgt een volgnummer toegekend en wordt gecodeerd voor
verzending via e-mail (in leesbare ASCII). Deze CTM
delta's kunnen dan aangeleverd worden aan
&man.ctm.rmail.1; die ze automatisch decodeert, controleert en
toepast in de gebruikerskopie van de bronnen. Dit proces is
veel efficiënter dan CVSup en
claimt minder systeembronnen omdat het model
push in plaats van
pull is.Er zijn andere nadelen. Als per ongeluk een deel van het
archief wordt verwijderd, kan CVSup
dat detecteren en het beschadigde deel repareren.
CTM doet dit niet en als een deel van
de broncode wordt verwijderd (en er geen backup is), dan moet er
opnieuw begonnen worden (vanaf de meest recente CVS base
delta en moet alles opnieuw opgebouwd worden
met CTM. Met
Anonymous CVS kan simpelweg het
slechte deel verwijderd worden alvorens weer te
synchroniseren.De wereld opnieuw bouwenworld opnieuw bouwenZodra de lokale broncode gesynchroniseerd is met een
bepaalde versie van &os; (&os.stable;, &os.current;, enzovoort)
kan de broncode gebruikt worden om een systeem te
herbouwen.Maak een backupHet kan niet vaak genoeg verteld worden hoe belangrijk het
is om een backup te maken van een systeem
vóór deze taak uit te
voeren. Ook al is het opnieuw bouwen van de wereld vrij simpel
(als deze instructies gevolgd worden), er worden ongetwijfeld
ooit fouten gemaakt, misschien zelfs in de broncode, die het
onmogelijk maken om een systeem op te starten.Wees ervan verzekerd dat er een backup gemaakt is en dat er
een reparatiediskette of cd-rom bij de hand is. Deze wordt
waarschijnlijk nooit gebruikt maar better safe than
sorry.Abonneer op de juiste mailinglijstenmailinglijstDe &os.stable; en &os.current; takken zijn van nature
in ontwikkeling. Mensen die bijdragen
aan &os; zijn menselijk en foutjes ontstaan regelmatig.Soms zijn deze foutjes onschadelijk, ze geven dan hooguit
een nieuwe diagnostische waarschuwing weer. Maar de wijziging
kan ook catastrofaal zijn en ervoor zorgen dat een systeem niet
meer opstart of bestandssystemen vernietigt (of erger).Als problemen zoals deze voorkomen wordt er een
heads up naar de juiste mailinglijst gestuurd,
waarin uitgelegd wordt wat het probleem is en welke systemen
het raakt. Er wordt een all clear bericht
gestuurd als het probleem is opgelost.&os.stable; of &os.current; volgen zonder de &a.stable; of
&a.current; te volgen is vragen om problemen.Gebruik geen make worldVeel oudere documentatie raadt aan om make
world te gebruiken. In dat geval worden er
belangrijke stappen overgeslagen en gebruik het commando alleen
als er voldoende kennis over aanwezig is. In bijna alle
omstandigheden is make world verkeerd en
de procedure die hier beschreven is hoort in plaats daarvan
gebruikt te worden.De universele wijze om een systeem bij te werkenEen systeem bijwerken kan met de volgende procedure, nadat
/usr/src/UPDATING is geraadpleegd om te
controleren of er voor buildworld voor de gebruikte versie van
de broncode nog acties zijn uit te voeren:&prompt.root; make buildworld
&prompt.root; make buildkernel
&prompt.root; make installkernel
&prompt.root; rebootEr zijn een aantal zeldzame gevallen waarin
mergemaster -p nog een keer moet draaien
voor de stap met buildworld. Deze
staan beschreven in UPDATING. In het
algemeen kan deze stap echter zonder risico worden
overgeslagen als er niet tussen een of meer hoofdversies
wordt bijgewerkt.Nadat installkernel succesvol is
afgerond, dient er in single-user modus opgestart te worden
(met boot -s vanaf de loaderprompt). Draai
dan:&prompt.root; mergemaster -p
&prompt.root; make installworld
&prompt.root; mergemaster
&prompt.root; rebootLees verdere uitlegDe hierboven beschreven volgorde is alleen een korte
samenvatting. Ook de volgende secties lezen geeft een beter
beeld van elke stap, met name als er een op maat gemaakte
kernelinstelling wordt gebruikt./usr/src/UPDATING lezenLees voor verder te gaan
/usr/src/UPDATING (of het gelijknamige
bestand waar de kopie van de broncode ook staat). Dit bestand
kan belangrijke informatie bevatten over mogelijke problemen of
specificeert de volgorde waarin bepaalde commando's gestart
moeten worden. Als UPDATING tegenstrijdig
is met wat hier wordt beschreven, heeft
UPDATING voorrang.UPDATING lezen is geen acceptabele
vervanging voor het abonneren op de correcte mailinglijst
zoals eerder beschreven. De twee vullen elkaar aan en zijn
niet exclusief./etc/make.conf controlerenmake.confControleer
/usr/share/examples/etc/make.conf
(/etc/defaults/make.conf in
&os; 4.X) en /etc/make.conf. Het
eerste bestand bevat standaard definities, waarvan de meeste
uitgecommentarieerd zijn. Om hiervan gebruik te maken als het
systeem opnieuw opgebouwd wordt vanuit de broncode, moeten ze
toegevoegd worden aan /etc/make.conf.
Bedenk dat alles wat toegevoegd wordt aan
/etc/make.conf ook gebruikt wordt bij elk
make commando. Het is dus verstandig om
daar redelijke waardes in te vullen voor een systeem.Een typische gebruiker wil waarschijnlijk de regels
CFLAGS en NO_PROFILE (of
NOPROFILE in &os; 5.X en ouder) uit
/usr/share/examples/etc/make.conf
(/etc/defaults/make.conf in &os; 4.X)
kopieren naar /etc/make.conf en het
commentaar verwijderen.Bekijk de andere definities (COPTFLAGS,
NOPORTDOCS, enzovoort) en bepaal of deze
relevant zijn./etc bijwerkenDe map /etc bevat een groot deel van
de systeeminstellingen en scripts die gestart worden tijdens de
systeemstart. Sommige van deze scripts verschillen van versie
tot versie in &os;.Sommige van de instellingenbestanden worden dagelijks
gebruikt voor het draaien van een systeem. In het bijzonder
/etc/group.Er zijn gevallen geweest waarbij het installatiegedeelte
van make installworld een aantal
gebruikersnamen of groepen verwachtte. Als er een upgrade
wordt uitgevoerd is het waarschijnlijk dat deze gebruikers of
groepen niet bestaan. Dit levert problemen op bij upgraden.
In sommige gevallen controleert make
buildworld of deze gebruikers of groepen
bestaan.Een voorbeeld hiervan is het toevoegen van de gebruiker
smmsp. Gebruikers hadden een falend
installatieproces toen &man.mtree.8; probeerde om
/var/spool/clientmqueue te
creëren.De oplossing is om /usr/src/etc/group
te controleren en de lijst met groepen te vergelijken met die
van het bij te werken systeem. Als daar groepen bestaan die
nog niet op een systeem staan, moeten deze worden gekopieerd.
Hetzelfde geldt voor het hernoemen van groepen in
/etc/group die hetzelfde GID hebben maar
een andere naam dan in
/usr/src/etc/group.&man.mergemaster.8; kan in voorbereidende modus gedraaid
worden als de optie wordt meegegeven. Dan
worden alleen de bestanden vergeleken die essentieel zijn voor
het succes van buildworld of
installworld:&prompt.root; cd /usr/src/usr.sbin/mergemaster
&prompt.root; ./mergemaster.sh -pIn paranoide beheerdersmodus kan er
gecontroleerd worden welke bestanden op een systeem eigendom
zijn van de groep die wordt hernoemd of verwijderd:&prompt.root; find / -group GID -printDit commando toont alle bestanden die eigendom zijn van
de groep GID (een groepsnaam of
een numeriek groeps-ID).Systeem naar single-user modus brengensingle-user modusHet kan zijn dat een systeem in single-user modus
gecompileerd moet worden. Buiten het duidelijke voordeel dat
de operatie iets sneller verloopt, is het voordeel dat bij een
herinstallatie van een systeem een aantal belangrijke
systeembestanden waaronder binaire systeembestanden,
bibliotheken, include bestanden, enzovoort, worden aangepast,
iets wat op een actief systeem vragen om problemen is (zeker
als er actieve gebruikers op een systeem aanwezig zijn).multi-user modusEen andere methode is het systeem compileren in multi-user
modus en daarna naar single-user modus gaan voor de
installatie. Bij deze methode moeten de volgende stappen
gevolgd worden. Het overschakelen naar single-user modus kan
uitgesteld worden tot en met
installkernel of
installworld.Een supergebruiker kan als volgt een draaiend systeem naar
single-user modus overgeschakelen:&prompt.root; shutdown nowAls alternatief kan tijdens het opstarten de optie
worden meegegeven. Het systeem start dan
in single-user modus. Op de shell prompt moet dan worden
ingegeven:&prompt.root; fsck -p
&prompt.root; mount -u /
&prompt.root; mount -a -t ufs
&prompt.root; swapon -aHierdoor worden de bestandssystemen gecontroleerd,
/ met lees en schrijf rechten opnieuw
gemount, worden alle andere UFS bestandssystemen die in
/etc/fstab staan gemount en wordt swap
ingeschakeld.Als de CMOS-klok ingesteld is naar de lokale tijd en
niet naar GMT (dit is waar als het resultaat van
&man.date.1; niet de correcte tijd en zone weergeeft), dan
is het misschien handig om het volgende commando te
starten:&prompt.root; adjkerntz -iDit zorgt ervoor dat de lokale tijdzoneinstellingen
correct ingesteld worden. Zonder deze instelling kunnen er
later problemen ontstaan./usr/obj verwijderenAls delen van een systeem opnieuw gebouwd worden, worden ze
standaard geplaatst in mappen onder
/usr/obj. Deze mappen schaduwen de mappen
onder /usr/src.Het proces make buildworld kan versneld
worden en problemen met afhankelijkheden kunnen voorkomen
worden als deze map wordt verwijderd.Sommige bestanden onder /usr/obj
hebben mogelijk de optie niet aanpassen
ingesteld (zie &man.chflags.1;) die eerst verwijderd moet
worden:&prompt.root; cd /usr/obj
&prompt.root; chflags -R noschg *
&prompt.root; rm -rf *Broncode hercompilerenUitvoer bewarenHet is een goed idee om de uitvoer van &man.make.1; te
bewaren in een ander bestand. Als er iets misgaat is er een
kopie van de foutmelding aanwezig. Hoewel dit misschien niet
helpt in de diagnose van wat er fout is gegaan, kan het
anderen helpen als het probleem wordt aangegeven in
een &os; mailinglijst.De makkelijkste manier om dit te doen is door het
commando &man.script.1; te gebruiken, met een parameter
die de naam specificeert waar de uitvoer naartoe moet. Dit
moet direct gedaan worden vóór het herbouwen
van de wereld, zodat het proces klaar is moet
exit worden ingegeven:&prompt.root; script /var/tmp/mw.out
Script started, output file is /var/tmp/mw.out
&prompt.root; make TARGET… compile, compile, compile …
&prompt.root; exit
Script done, …Bewaar de uitvoer in deze stap niet
in /tmp. Deze map wordt mogelijk
opgeschoond tijdens de volgende herstart. Een betere plaats
om dit bestand te bewaren is de map
/var/tmp (zoals in het vorige voorbeeld)
of in de thuismap van root.Basissysteem compilerenGa naar de map /usr/src, tenzij de
broncode ergens anders staat, in welk geval naar die map
gegaan moet worden:&prompt.root; cd /usr/srcmakeOm de wereld opnieuw te bouwen moet het commando
&man.make.1; gebruikt worden. Dit commando leest zijn
instructies uit het bestand Makefile,
dat beschrijft hoe de programma's die samen &os; vormen
moeten worden gebouwd, in welke volgorde ze gebouwd moeten
worden, enzovoort.Het algemene formaat van de commandoregel die gebruikt
moet worden is als volgt:&prompt.root; make -x -DVARIABELEdoelIn dit voorbeeld is de optie
een optie die
wordt meegegeven aan &man.make.1;. In de hulppagina voor
&man.make.1; staat een voorbeeld van de opties die meegegeven
kunnen worden.
geeft een variabele door aan Makefile.
Het gedrag van Makefile wordt
beïnvloed door deze variabele. Dit zijn dezelfde
variabelen die ingesteld worden in
/etc/make.conf. Deze optie biedt een
alternatief om deze opties in te stellen.&prompt.root; make -DNO_PROFILE doelHet bovenstaande commando is een andere manier om aan te
geven dat geprofileerde bibliotheken niet gebouwd moeten
worden en correspondeert met de onderstaande regel in
/etc/make.conf:NO_PROFILE= true # Avoid compiling profiled librariesdoel geeft &man.make.1; aan
wat er gedaan moet worden. Elke
Makefile definieert een aantal van
verschillende doelen en het gekozen doel bepaalt wat er
gebeurt.Sommige doelen staan vermeld in het bestand
Makefile, maar zijn niet geschikt om
direct te starten. Integendeel, deze worden gebruikt door
het bouwproces om de benodigde stappen onder te
verdelen.In veel gevallen hoeven er geen parameters te worden
meegegeven aan &man.make.1; en dus ziet de commando regel er
als volgt uit:&prompt.root; make doelHet world doel is opgesplitst in
twee delen: buildworld en
installworld. Vanaf versie
5.3 van &os; verandert world
dusdanig dat het helemaal niet meer werkt omdat het
gevaarlijk is voor de meeste gebruikers.Zoals de namen impliceren bouwt
buildworld een compleet nieuwe boom
onder /usr/obj en
installworld installeert deze boom
op de huidige machine.Dit is erg handig om twee redenen. Als eerste biedt het
de mogelijkheid om de bouw veilig te doen met de wetenschap
dat geen enkel draaiend onderdeel van een systeem geraakt
wordt. De bouw is zelf ondersteunend.
Hierdoor kan veilig in multi-user modus
buildworld gedraaid worden. Het
wordt echter nog steeds aangeraden om
installworld in single-user modus te
starten.Ten tweede geeft het de mogelijkheid om NFS-mounts te
gebruiken om meerdere machines in het netwerk bij te werken.
Als er drie machines zijn, A,
B en C, die bijgewerkt
moeten worden, dan kunnen make buildworld
en make installworld gedraaid worden op
A waarna B en
C een NFS-mount kunnen opzetten naar
/usr/src en
/usr/obj op machine A
waarna make installworld gedraaid kan
worden op B en C om de
resultaten de installeren.Alhoewel het doel world nog wel
bestaat wordt het gebruik ervan sterk
afgeraden.Voer het volgende commando uit:&prompt.root; make buildworldHet is nu mogelijk om de optie mee te
geven aan make, wat resulteert in meerdere
processen die tegelijkertijd draaien. Dit heeft het meeste
effect op machines met meerdere processoren. Echter, omdat
het compilatieproces meer IO-gericht is dan processorgericht,
kan het ook nuttig zijn op systemen met één
processor.Start als volgt op een systeem met één
processor:&prompt.root; make -j4 buildworld&man.make.1; draait dan maximaal 4 processen
tegelijkertijd. In het algemeen blijkt uit de mailinglijsten
dat dit de beste resultaten geeft.Als er meerdere processoren in een systeem zitten en
gebruik gemaakt wordt van een SMP kernel, probeer dan waardes
tussen de 6 en 10 en bekijk hoe het systeem reageert.Deze mogelijkheid is nog steeds fragiel en commits in de
broncode verbreken deze mogelijkheid vaak. Als het opnieuw
bouwen van de wereld mislukt, probeer dan nogmaals te
compileren zonder deze opties alvorens een probleemrapport
aan te maken.Doorlooptijdworld opnieuw bouwendoorlooptijdDe doorlooptijd wordt door veel factoren beïnvloed.
Een 500 MHz &pentium; III met 128 MB ram doet
er ongeveer 2 uur over om de &os.stable; boom te bouwen
zonder extra trucjes. Een &os.current; boom kan wat langer
duren.Nieuwe kernel compileren en installerenkernelcompilerenOm volledig gebruik te maken van het nieuwe systeem moet de
kernel opnieuw gecompileerd worden. Dit is bijna altijd nodig
omdat sommige geheugenstructuren mogelijkerwijs veranderd zijn
en programma's als &man.ps.1; en &man.top.1; niet werken totdat
de kernel en de broncode dezelfde versie hebben.De simpelste en makkelijkste manier om dit te doen is
om een kernel te maken die gebaseerd is op
GENERIC. Ondanks dat
GENERIC mogelijk niet alle benodigde
apparaten heeft voor een systeem, hoort het alles te bevatten
dat nodig is om een systeem te starten in single-user modus.
Dit is een goede test op de correcte werking van een nieuw
systeem. Na het opstarten van GENERIC en
een systeemcontrole kan erna een nieuwe kernel gebouwd worden
gebaseerd op een aangepast kernelinstellingenbestand.Op moderne versies van &os; is het belangrijk om de
wereld opnieuw te bouwen
voordat een nieuwe kernel gebouwd wordt.Als een aangepaste kernel gemaakt moet worden en er reeds
een instellingenbestand aanwezig is, gebruik dan
KERNCONF=MYKERNEL
als volgt:&prompt.root; cd /usr/src
&prompt.root; make buildkernel KERNCONF=MYKERNEL
&prompt.root; make installkernel KERNCONF=MYKERNELLet op dat als kern.securelevel een
waarde hoger dan 1 heeft ofnoschg of gelijksoortige opties geplaatst
zijn op het binaire kernelbestand, is het misschien nodig om
terug te gaan naar single-user modus om
installkernel uit te voeren. In
andere gevallen moet het mogelijk zijn om deze commando's
zonder problemen uit te voeren in multi-user modus. Zie
&man.init.8; voor meer informatie over
kern.securelevel en &man.chflags.1; voor
informatie over diverse bestandsopties.Opnieuw opstarten in single-user modussingle-user modusStart met de instructies in in single-user modus op om te
testen of de nieuwe kernel werkt.Nieuwe binaire systeembestanden installerenNa het draaien van make buildworld kan
nu installworld gebruikt worden om de
nieuwe binaire systeembestanden te installeren.Voer de volgende commando's uit:&prompt.root; cd /usr/src
&prompt.root; make installworldAls er variabelen gespecificeerd zijn op de commandoregel
van make buildworld moeten dezelfde
variabelen gebruikt worden op de commandoregel van
make installworld. Dit is niet per se
waar voor opties zoals , die nooit
gebruikt mogen worden met
installworld.Als bijvoorbeeld het volgende commando is
uitgevoerd:&prompt.root; make -DNO_PROFILE buildworldDan moet het resultaat geïnstalleerd worden
met:&prompt.root; make -DNO_PROFILE installworldAnders wordt geprobeerd geprofileerde bibliotheken te
installeren die niet gebouwd zijn tijdens de fase
make buildworld.Bestanden bijwerken die niet bijgewerkt zijn door
make installworldHet herbouwen van de wereld werkt bepaalde mappen niet
bij (in het bijzonder /etc,
/var en /usr) met
nieuwe of gewijzigde instellingenbestanden.De simpelste manier om deze bestanden bij te werken is door
&man.mergemaster.8; te gebruiken, maar het is ook mogelijk
dit handmatig te doen. Welke manier er ook gekozen wordt, zorg
er altijd voor dat een backup van /etc
beschikbaar is voor het geval er iets misgaat.TomRhodesBijgedragen door mergemastermergemasterHet hulpprogramma &man.mergemaster.8; is een Bourne script
dat helpt bij het bepalen van de verschillen tussen de
instellingenbestanden in /etc en de
instellingenbestanden in de broncodeboom
/usr/src/etc. Deze methode wordt
aangeraden om instellingenbestanden van een systeem bijgewerkt
te houden met de bestanden die in de broncodeboom staan.Het programma wordt gestart met
mergemaster op de commandoregel en geeft dan
resultaten weer. mergemaster bouwt dan een
tijdelijke root omgeving vanaf / en vult
deze met diverse instellingenbestanden voor een systeem. Deze
bestanden worden vergeleken met de bestanden die
geïnstalleerd zijn op een systeem. Op dit punt worden de
bestanden getoond die verschillen in het &man.diff.1;-formaat,
met een voor toegevoegde of gewijzigde
regels en een voor regels die verwijderd of
vervangen zijn. In de hulppagina voor &man.diff.1; staat meer
informatie over de syntaxis van &man.diff.1; en hoe
bestandsverschillen getoond worden.&man.mergemaster.8; toont dan elk bestand dat verschilt en
op dit moment is er de mogelijkheid om of het nieuwe bestand te
verwijderen (ofwel het tijdelijke bestand), het tijdelijke
bestand te installeren zonder enige wijzigingen, het verwerken
van het oude bestand in het nieuwe bestand of de resultaten van
&man.diff.1; nogmaals te tonen.Als gekozen wordt om het tijdelijke bestand te verwijderen,
geeft dit &man.mergemaster.8; aan dat het huidige bestand niet
gewijzigd dient te worden en de nieuwe versie verwijderd kan
worden. Deze optie wordt niet aangeraden, behalve als er geen
reden is om het huidige bestand aan te passen. Op ieder moment
kunnen hulpteksten getoond worden door ? in te
geven op de prompt van &man.mergemaster.8;. Als een bestand
wordt overgeslagen, dan wordt het weer getoond als alle overige
bestanden verwerkt zijn.Bij de keuze om het ongewijzigde tijdelijke bestand te
installeren wordt het huidige bestand vervangen door het
nieuwe. Voor de meeste ongewijzigde bestanden is dit de beste
optie.Als ervoor gekozen wordt om de wijzigingen te verwerken
wordt er een tekstverwerker gestart die de inhoud van beide
- bestanden toont. D verschillen kunnen verwerkt worden terwijl
+ bestanden toont. De verschillen kunnen verwerkt worden terwijl
beide bestanden naast elkaar op het scherm staan. Hier kunnen
delen gekozen worden die gezamenlijk een nieuw bestand
opleveren. Als de bestanden zij aan zij vergeleken worden,
wordt met de toets l de inhoud links
geselecteerd en met de toets r de inhoud
rechts geselecteerd. Het eindresultaat bestaat uit delen van
beide bestanden die erna geinstalleerd kunnen worden. Deze
optie wordt voornamelijk gebruikt voor bestanden die gewijzigd
zijn door de beheerder.Als ervoor gekozen wordt om de &man.diff.1; resultaten nog
een keer te tonen, worden dezelfde verschillen getoond
zoals &man.mergemaster.8; deed voordat een optie gevraagd
werd.Zodra &man.mergemaster.8; klaar is met de systeembestanden
worden er andere opties getoond. &man.mergemaster.8; kan
vragen of het wachtwoordbestand opnieuw gebouwd moet worden
en/of &man.MAKEDEV.8; gestart moet worden als er een versie van
&os; voor 5.0 draait. Als laatste wordt een optie getoond om
alle overgebleven tijdelijke bestanden te verwijderen.Handmatig bijwerkenBij handmatig bijwerken kunnen de bestanden van
/usr/src/etc niet zomaar naar
/etc gekopieerd worden om een werkend
systeem te krijgen. Sommige van deze bestanden moeten eerst
geïnstalleerd worden. Dit omdat de map
/usr/src/etcgeen
kopie is van /etc. Daarnaast staan er
in /etc bestanden die niet in
/usr/src/etc staan.Als &man.mergemaster.8; gebruikt wordt (zoals
aangeraden), kan doorgegaan worden met het volgende onderdeel.De simpelste manier om met de hand bij te werken, is de
bestanden in een nieuwe map installeren en daarna naar
verschillen tussen de bestanden te zoeken.Backup maken van /etcOndanks dat, in theorie, niets in deze map automatisch
wordt aangepast, is het altijd beter om daar zeker van te
zijn. Dus kopieer de bestaande /etc
naar een veilige locatie. Zoals bijvoorbeeld met het
volgende commando:&prompt.root; cp -Rp /etc /etc.old maakt een recursieve kopie,
bewaart tijden, eigenaarschap,
enzovoort op bestanden.Er moet een dummyset van mappen gemaakt worden om de
nieuwe /etc en andere bestanden in te
installeren. /var/tmp/root is een
redelijke keuze en er zijn hier een aantal benodigde
submappen aanwezig:&prompt.root; mkdir /var/tmp/root
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distributionDit maakt de benodigde mappenstructuur en installeert de
bestanden. Een groot deel van de submappen die gemaakt zijn
in /var/tmp/root zijn leeg en moeten
verwijderd worden. De simpelste manier om dit te doen
is:&prompt.root; cd /var/tmp/root
&prompt.root; find -d . -type d | xargs rmdir 2>/dev/nullDit verwijderd alle lege mappen. De standaardfout wordt
omgeleid naar /dev/null om
waarschuwingen te voorkomen over mappen die niet leeg
zijn./var/tmp/root bevat nu alle
bestanden die geplaatst zouden moeten worden op de juiste
locaties in /. Er moet nu in de
bestanden gekeken worden om te bepalen of deze verschillen
met de huidige betanden.Let op dat sommige van de bestanden die
geïnstalleerd zijn in /var/tmp/root
beginnen met een .. Op het moment van
schrijven hebben alleen shell opstartscripts in
/var/tmp/root en
/var/tmp/root/root dit, maar er kunnen
ook andere zijn. Zorg ervoor dat ls -a
gebruikt wordt om deze bestanden te zien.De simpelste manier om twee bestanden te vergelijken is
&man.diff.1; gebruiken:&prompt.root; diff /etc/shells /var/tmp/root/etc/shellsDit toont de verschillen tussen de huidige
/etc/shells en de nieuwe
/var/tmp/root/etc/shells. Gebruik dit
om te bepalen of de wijzigingen gemigreerd moeten worden of
dat het oude bestand gekopieërd moet worden.Voeg aan de naam van de nieuwe rootmap
(/var/tmp/root) een tijdsindicatie toe
zodat makkelijk verschillen tussen versies bepaald kunnen
wordenAls de wereld regelmatig wordt herbouwd moeten
bestanden in /etc ook regelmatig
bijgewerkt moeten worden, wat een vervelend werkje kan
zijn.Dit proces kan versneld worden door een kopie te
bewaren van de bestanden die gemigreerd zijn naar
/etc. De volgende procedure geeft een
idee over hoe dit gedaan kan worden.Maak de wereld zoals normaal. Als
/etc en de andere mappen
bijgewerkt moeten worden, geef dan de doelmap een naam
gebaseerd op de huidige datum. Op 14 februari 1998
wordt dat als volgt gedaan:&prompt.root; mkdir /var/tmp/root-19980214
&prompt.root; cd /usr/src/etc
&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
distrib-dirs distributionMigreer de wijzigingen van deze map zoals hierboven
beschreven.Verwijder de map
/var/tmp/root-19980214niet na afronden.Als de laatste versie van de broncode gedownload en
opnieuw gemaakt is, volg stap 1. Dit geeft een nieuwe
map die wellicht
/var/tmp/root-19980221 heet (als
er een week zit tussen het bijwerken).De verschillen die gemaakt zijn in de
tussenliggende week kunnen nu getoond worden door met
&man.diff.1; een recursieve diff te maken tussen de
twee mappen:&prompt.root; cd /var/tmp
&prompt.root; diff -r root-19980214 root-19980221Vaak is dit een kleinere set aan verschillen dan
tussen /var/tmp/root-19980221/etc
en /etc. Omdat de set
verschillen kleiner is, is het makkelijker om deze te
migreren naar de map /etc.De oudste van de twee
/var/tmp/root-*-mappen kan nu
verwijderd worden:&prompt.root; rm -rf /var/tmp/root-19980214Herhaal dit proces elke keer als er wijzigingen
gemigreerd moeten worden naar
/etc.Met &man.date.1; kan het maken van de mappen
geautomatiseerd worden:&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`/dev bijwerkenDEVFSAls &os; 5.0 of later wordt gebruikt kan deze sectie
veilig overgeslagen worden. Deze versies gebruiken
&man.devfs.5; om apparaatnodes transparant aan te maken voor
gebruikers.In veel gevallen herkent &man.mergemaster.8; dat het nodig
is om apparaatnodes bij te werken en aan te bieden en doet dat
automatisch. Hieronder wordt beschreven hoe apparaatnodes
handmatig bijgewerkt kunnen worden.Om veiligheidsredenen bestaat dit proces uit meerdere
stappen.Kopieer /var/tmp/root/dev/MAKEDEV
naar /dev:&prompt.root; cp /var/tmp/root/dev/MAKEDEV /devMAKEDEVAls &man.mergemaster.8; is gebruikt om
/etc bij te werken is het script
MAKEDEV al aangepast. Het kan echter
geen kwaad om dit te controleren (met &man.diff.1;) en het
script indien nodig handmatig te kopieren.Maak een afdruk van de huidige
/dev. Deze snapshot moet de
permissies, eigenaarschappen, grote en kleine nummers van
ieder bestand bevatten, maar niet de timestamps. De
makkelijkste manier om dit te doen is door &man.awk.1; te
gebruiken om er informatie uit te halen:&prompt.root; cd /dev
-&prompt.root; ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out
+&prompt.root; ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.outCreeër alle apparaatnodes opnieuw:&prompt.root; sh MAKEDEV allMaak een tweede afdruk van de map, deze keer naar
/var/tmp/dev2.out. Bekijk nu door de
twee bestanden te vergelijken of er apparaatnodes niet zijn
aangemaakt. Dit hoort niet voor te komen, maar het kan
maar beter gecontroleerd zijn.&prompt.root; diff /var/tmp/dev.out /var/tmp/dev2.outAls er verschillen zijn is het waarschijnlijk dat deze
in diskslices zitten. Om deze apparaatnodes opnieuw aan te
maken kan iets als het onderstaande commando gebruikt
worden:&prompt.root; sh MAKEDEV sd0s1De precieze afwijkingen kunnen variëren./stand bijwerkenDeze stap is opgenomen om het proces compleet te maken.
Hij kan zonder problemen overgeslagen worden. Als
&os; 5.2 of later wordt gebruikt, wordt de map
/rescue automatisch bijgewerkt met de
nieuwste, statisch gecompileerde binaire bestanden tijdens
make installworld, waardoor het overbodig
wordt om /stand bij te werken (bestaat
helemaal niet in &os; 6.0 en later).Volledigheidshalve is het misschien wenselijk de bestanden
in de map /stand bij te werken. Deze
bestanden bestaan uit harde links naar het binaire bestand
/stand/sysinstall. Dit bestand moet
statisch gelinkt zijn zodat het zonder tussenkomst van andere
bestandssystemen kan werken (in het bijzonder
/usr).
&prompt.root; cd /usr/src/release/sysinstall
&prompt.root; make all installHerstartenDit was het. Na een controle of alles op de juiste plaats
staat kan het systeem herstart worden. Dan kan met een simpele
&man.shutdown.8;:&prompt.root; shutdown -r nowKlaarHet &os; systeem is nu succesvol bijgewerkt.
Gefeliciteerd!Als er dingen misgingen is het makkelijk om een deel van
het systeem opnieuw te bouwen. Als bijvoorbeeld per ongeluk
/etc/magic verwijderd is als onderdeel
van de upgrade of door een merge van /etc,
dan werkt &man.file.1; niet meer. Dat kan als volgt opgelost
worden:&prompt.root; cd /usr/src/usr.bin/file
&prompt.root; make all installVragenMoet de wereld opnieuw gemaakt worden voor elke
wijziging?Op deze vraag bestaat geen eenvoudig antwoord, omdat
dit afhangt van de aard van de wijziging. Als
bijvoorbeeld net CVSup is
gedraaid en de onderstaande bestanden zijn bijgewerkt,
dan is het waarschijnlijk niet de moeite waard om de
volledige wereld te herbouwen:src/games/cribbage/instr.csrc/games/sail/pl_main.csrc/release/sysinstall/config.csrc/release/sysinstall/media.csrc/share/mk/bsd.port.mkDan is het handiger om naar de juiste submappen te
gaan, daar make all install uit te
voeren en dat is het zo'n beetje. Maar als er iets
wezenlijks is veranderd, bijvoorbeeld
src/lib/libc/stdlib, dan dient ofwel
de wereld herbouwd te worden of tenminste die delen die
statisch gelinkt zijn (en ook al het andere dat statisch
gelinkt is en onderdeel is van een systeem).Uiteindelijk beslist een beheerder zelf. Misschien
vindt die het prettig iedere twee weken de wereld te
herbouwen terwijl de wijzigingen in die twee weken
binnenkomen. Een andere beheerder herbouwt alleen die
onderdelen die veranderd zijn en vertrouwt erop dat hij
alle afhankelijkheden in de gaten heeft.Natuurlijk hangt het ook af van de keuze hoe vaak het
wenselijk is bij te werken en of &os.stable; of
&os.current; wordt bijgehouden.Het compileren gaat fout met veel meldingen van
signal 11 (of andere signalnummers). Wat is er aan de
hand?signal 11Dit wijst meestal op hardwareproblemen. Het
(her)bouwen van de wereld is een prima manier om een
stresstest op hardware uit te voeren en hierdoor komen
vaak geheugenproblemen bovendrijven. Die resulteren vaak
in een compiler die op mysterieuze wijze overlijdt na het
ontvangen van vreemde signalen.Dit probleem is nog duidelijker als na het herstarten
van de make het proces opnieuw stopt op een ander
punt.Hier biedt niets anders uitkomst dan componenten in
een systeem wisselen om uit te zoeken welk component er
faalt.Kan /usr/obj verwijderd worden
na afloop?Het korte antwoord is ja./usr/obj bevat alle
objectbestanden die tijdens het compileren zijn gemaakt.
Normaliter is een van de eerste stappen in het
make buildworld proces deze map
verwijderen en een verse start maken. In dit geval heeft
het behouden van /usr/obj na het
afronden weinig zin en geeft het ook nogal wat extra
vrije schijfruimte (ongeveer 340 MB).Als er veel kennis aanwezig is bij een beheerder, dan
kan make buildworld aangegeven worden
deze stap over te slaan. Hierdoor draaien volgende
builds veel sneller, omdat veel broncode niet opnieuw
gecompileerd hoeft te worden. De andere kant van de
medaille is dat er subtiele afhankelijkheidsproblemen
kunnen ontstaan, waardoor een build op bijzondere wijze
kan falen. Hierdoor onstaat regelmatig ruis op &os;
mailinglijsten als er iemand klaagt dat zijn build faalt,
terwijl hij zich niet realiseert dat dit komt doordat hij
zijn updateproces niet volgens het boekje heeft
uitgevoerd.Kunnen onderbroken builds gecontinueerd
worden?Dit hangt af van hoever een systeem was voordat een
probleem gevonden werd.Normaal gesproken (en dit is
geen vaste regel) maakt het proces make
buildworld nieuwe kopieën van essentiele
hulpprogramma's (zoals &man.gcc.1; en &man.make.1;) en de
systeembibliotheken. Deze hulpprogramma's en
bibliotheken worden daarna geïnstalleerd. De nieuwe
hulpprogramma's en bibliotheken worden daarna gebruikt om
zichzelf opnieuw op te bouwen en wederom te installeren.
Het complete systeem (nu met gewone programma's zoals
&man.ls.1; en &man.grep.1;) wordt daarna opnieuw gebouwd
met de nieuwe systeembestanden.Als een systeem in de laatste fase zit (wat uit de
uitvoer blijkt) kan dit redelijk veilig gedaan
worden:… fix the problem …
&prompt.root; cd /usr/src
&prompt.root; make -DNO_CLEAN allGebruik in &os; 5.X en ouder
-DNOCLEAN.Dit maakt het werk van de vorige make
buildworld niet ongedaan.Als het onderstaande bericht in de uitvoer van
make buildworld staat, dan is het
redelijk veilig om het te doen:--------------------------------------------------------------
Building everything..
--------------------------------------------------------------Als dat bericht er niet is, of er is onzekerheid
over, dan is het altijd beter om de build opnieuw te
starten vanaf het begin.Kan kan de wereld bouwen versneld worden?Draai in single-user modus;Zet de mappen /usr/src en
/usr/obj op aparte
bestandssystemen die op aparte schijven staan. Hang
deze schijven als mogelijk aan aparte
schijfcontrollers;Nog beter, verspreid de bestandssystemen over
meerdere schijven via het apparaat &man.ccd.4;
(concatenated disk driver);Zet profiling uit (voeg
NO_PROFILE=true toe aan
/etc/make.conf). Het is zeer
waarschijnlijk niet nodig;Voer ook CFLAGS toe aan
/etc/make.conf met iets als
. De optimalisatie
is veel langzamer en het
optimalisatieverschil tussen en
is meestal verwaarloosbaar.
laat de compiler gebruik maken
van pipes in plaats van tijdelijke bestanden voor
communicatie, wat schijfacties scheelt (ten koste van
geheugengebruik);Geef de optie
mee
aan &man.make.1; om meerdere processen parallel te
laten lopen. Dit helpt in de meeste gevallen,
onafhankelijk of er gewerkt wordt op een systeem met
één of meerdere processoren;Het bestandssysteem dat
/usr/src bevat, kan (opnieuw)
gemount worden met de optie .
Dit voorkomt dat het bestandssysteem de
toegangsmomenten registreert. Deze informatie is
waarschijnlijk toch niet nodig.&prompt.root; mount -u -o noatime /usr/srcIn dit voorbeeld wordt aangenomen dat
/usr/src op zijn eigen
bestandssysteem staat. Als dit niet het geval is
(bijvoorbeeld als het onderdeel is van
/usr), dan moet het mountpunt
voor dat bestandssysteem gebruikt moeten worden
en niet /usr/src;Het bestandssysteem dat
/usr/obj gevat kan (opnieuw)
worden gemount met de optie .
Dit zorgt ervoor dat schrijfacties naar een schijf
asynchroon plaatsvinden. In andere woorden: de
schrijfactie wordt direct uitgevoerd en de gegevens
worden later naar de schijf geschreven. Dit stelt
het systeem in staat om data geclusterd weg te
schrijven, wat een grote prestatieverbetering kan
opleveren.Houd er rekening mee dat deze optie het
bestandssysteem kwetsbaarder maakt. Met deze optie
is er een vergrote kans dat, indien er een
stroomstoring optreed, het bestandssysteem in een
niet meer te herstellen staat komt als de machine
herstart.Als op dit bestandssysteem alleen
/usr/obj staat, is dit geen
probleem. Als er andere belangrijke gegevens op
hetzelfde bestandssysteem staan, zorg er dan voor
dat er verse backups zijn voordat deze optie
aangezet wordt.&prompt.root; mount -u -o async /usr/objZorg ervoor, zoals al eerder is aangegeven, dat
als /usr/obj niet op een eigen
bestandssysteem staat, het juiste mountpunt wordt
gebruikt.Wat te doen als er iets mis gaat?Zorg ervoor dat het systeem geen rommel meer bevat
van eerdere builds. Het volgende helpt daarbij:&prompt.root; chflags -R noschg /usr/obj/usr
&prompt.root; rm -rf /usr/obj/usr
&prompt.root; cd /usr/src
&prompt.root; make cleandir
&prompt.root; make cleandirInderdaad, make cleandir moet twee
keer gedraaid worden.Herstart daarna het complete proces vanaf
make buildworld.Als er nog steeds problemen zijn, stuur dan de
foutmelding en de uitvoer van uname -a
naar de &a.questions;. Wees bereid aanvullende vragen
over het systeem te beantwoorden!MikeMeyerBijgedragen door Meerdere machines bijwerkenNFSmeerdere machines installerenAls er meerdere machines zijn die dezelfde broncode
bijhouden, lijkt het downloaden van alle broncode en alles overal
opnieuw bouwen zonde van de bronnen: harde schijfruimte, netwerk
bandbreedte, en processorbelasting. Dit klopt en de oplossing is
om alles op één machine te doen terwijl de overige
machines het uitgevoerde werk benaderen via NFS. Nu wordt een
methode beschreven waarmee dit gedaan kan worden.BenodigdhedenAls eerste moet er een groep van machines gekozen worden
die dezelfde set aan binaire bestanden zal draaien, hier een
bouwgroep. Elke machine kan een eigen
afwijkende kernel hebben maar moet dezelfde binaire
gebruikersbestanden draaien. Uit die groep moet een machine
gekozen worden die de bouwmachine wordt.
Dit wordt de machine waar de wereld en kernel op gebouwd
worden. In het meest ideale geval is dit een snelle machine
die genoeg processorkracht vrij heeft om make
buildworld en make buildkernel
te draaien. Er moet ook een machine gekozen worden die de
testmachine wordt waarop alle bijgewerkte
software wordt test voordat die in productie wordt genomen.
Dit moet een machine zijn die voor langere
tijd down mag zijn. Dit kan de bouwmachine zijn maar dat hoeft
niet per se.Alle machines in deze bouwgroep moeten ingesteld worden om
/usr/obj en /usr/src
vanaf dezelfde machine te mounten op hetzelfde punt. In het
meest ideale geval zijn dit twee verschillende schijven op de
bouwmachine, maar ze kunnen ook door middel van NFS op die
machine gemount zijn. Als er meerdere bouwgroepen zijn, dan
moet /usr/src op één
bouwmachine staan en door middel van NFS gemount worden op de
overige machines.Zorg er als laatste voor dat
/etc/make.conf op alle machines in de
bouwgroep het eens zijn met de bouwmachine. Dat betekent dat
de bouwmachine alle delen van het basissysteem moet bouwen die
elke machine in de bouwgroep installeert. Ook heeft elke
bouwmachine zijn kernelnaam ingesteld met
KERNCONF in
/etc/make.conf en de bouwmachine moet ze
allemaal hebben in KERNCONF, zijn eigen
kernel eerst. De bouwmachine moet de instellingenbestanden
voor elke machine in
/usr/src/sys/arch/conf
hebben als deze machine de kernels voor de overige machines
gaat bouwen.BasissysteemNu kan één systeem alles bouwen. Bouw de
kernel en wereld zoals beschreven in op de bouwmachine, maar installeer
niets. Zodra de bouw klaar is, moet op de testmachine de
kernel geïnstalleerd en getest worden. Als deze machine
/usr/src en /usr/obj
mount via NFS, moet na een herstart in single-user modus het
netwerk ingeschakeld worden zodat de mounts opnieuw gemaakt
kunnen worden. De makkelijkste manier om dit te doen is om te
starten in multi-user modus en daar
shutdown now starten om in single-user modus
te komen. Eenmaal daar aangekomen kunnen de nieuwe kernel en
de wereld geïnstalleerd worden en kan daarna normaal
mergemaster gestart worden. Zodra dit klaar
is, kan de machine opnieuw gestart worden om naar multi-user
modus terug te keren.Nadat zeker is dat alles op de testmachine correct werkt,
kan dezelfde procedure gebruikt worden om de nieuwe software op
elke machine te installeren in de bouwgroep.PortsDezelfde ideeën kunnen gebruikt worden voor de ports.
De eerste kritieke stap is om /usr/ports
te mounten op alle machines in de bouwgroep. Daarna kan
/etc/make.conf correct ingesteld worden
om de distfiles te delen. De variabele
DISTDIR moet wijzen naar een gedeelde map
waarin geschreven kan worden door de gebruiker waar
root naar wijst in de NFS mounts. Op elke
machine moet WRKDIRPREFIX naar een lokale
bouwmap wijzen. Als er pakketten gebouwd en gedistribueerd
worden moet PACKAGES naar een map wijzen
gelijkvormig aan de instelling voor
DISTDIR.
diff --git a/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml
index c63001c255..df14bb431c 100644
--- a/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml
@@ -1,4417 +1,4688 @@
-
RenéLadanVertaald door OpslagOverzichtDit 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 ().ApparaatnamenDe volgende lijst noemt de fysieke opslagapparaten die in
&os; ondersteund worden, samen met de bijhorende namen.
Naamconventies voor fysieke SchijvenType mediumApparaatnaam mediumIDE harde schijvenadIDE CD-ROM-stationsacdSCSI harde schijven en USB-apparaten voor
massa-opslagdaSCSI CD-ROM-schijvencdOverige niet-standaard-CD-ROM-stationsmcd 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.DiskettestationsfdSCSI bandstationssaIDE bandstationsastFlashdrivesfla voor &diskonchip;
flashapparatenRAID-schijvenaacd voor &adaptec; AdvancedRAID,
mlxd en mlyd voor
&mylex;, amrd voor AMI &megaraid;,
idad voor Compaq Smart RAID,
twed voor &tm.3ware; RAID.
DavidO'BrienOrigineel bijgedragen door Schijven toevoegenschijventoevoegenStel 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).partitiesslicesfdisk&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; gebruikensysinstallschijven toevoegensuNavigeren door
sysinstallsysinstall
(/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.fdisk
partitie-bewerkerEenmaal 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.SchijflabelbewerkerBSD-partitiesVervolgens 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.AfrondenDe laatste stap bestaat uit het bewerken van
/etc/fstab om hier een regel voor de
nieuwe schijf aan toe te voegen.Het gebruik van opdrachtregelgereedschappenHet gebruik van slicesDeze 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.ToegewijdOS/2Indien 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 /1Een 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 /1Sinds &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;.RAIDSoftware RAIDChristopherShumwayOrigineel werk van JimBrownHerzien door RAIDsoftwarematigRAIDCCDConcatenated Disk Driver (CCD) instellingenBij 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 installerenAls 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 UDMA33Indien &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 installerenHet 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 4Op 5.X-systemen dient de volgende regel gebruikt
te worden:device ccdIn &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 autoBovenstaande 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 ad3Dit 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
moet4.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 aanmakenHet 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 ccd0In &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/ad3eHieronder 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/ccd0cAlles automatisch makenIn 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.confTijdens het opstarten draait het script
/etc/rcccdconfig -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 -COm 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 2Volumebeheerder VinumRAIDsoftwareRAIDVinumDe 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 RAIDRAIDhardwarematig&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 bouwenMet &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 lostMeer 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: DEGRADEDOntkoppel eerst het ata kanaal met de falende schijf
zodat deze veilig kan worden verwijderd:&prompt.root; atacontrol detach ata3Vervang 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 presentVoeg de nieuwe schijf toe aan de rij als
reserve:&prompt.root; atacontrol addspare ar0 ad6De rij dient nu opnieuw opgebouwd te worden:&prompt.root; atacontrol rebuild ar0Het 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% completedNu moet er gewacht worden tot de bewerking voltooid
is.MarcFonvieilleBijgedragen door USB-opslagapparatenUSBschijvenVeel 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.InstellenHet 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 umassHet 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 cdAangezien 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 ehciDe 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 testenDe 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: detachedReferentiesNaast 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;.MikeMeyerBijgedragen door Optische media (CD's) aanmaken en gebruikenCD-ROM'saanmakenInleidingCD'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 9660bestandssystemenISO 9660Het 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/cdrtoolsDe 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-branderATAPIHet 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-branderATAPI/CAM-stuurprogrammaIndien &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.mkisofsHet 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/boomstructuurbestandssystemenISO 9660Dit 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.bestandssystemenHFSbestandssystemenJolietEr 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'sopstartbaar makenDe 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/mybootAls 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 /mntVoor &os; 5.X met:&prompt.root; mdconfig -a -t vnode -f /tmp/bootable.iso -u 0
&prompt.root; mount -t cd9660 /dev/md0 /mntNu 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;.burncdCD-ROM'sbrandenIndien 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 fixateHet 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;.cdrecordIndien 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=devicebeeldbestand.isoHet 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'sbranden&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 duplicerenEen 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-drivesOnttrek cdda2wav de audio:&prompt.user; cdda2wav -v255 -D2,0 -B -OwavSchrijf met cdrecord de
.wav-bestanden:&prompt.user; cdrecord -v dev=2,0 -dao -useinfo *.wavControleer of 2,0 juist is
opgegeven, zoals beschreven in .ATAPI-drivesHet 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 acd0t99In &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 ... fixateGegevens-CD's duplicerenEen 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=2048Nu het beeld beschikbaar is, kan het naar CD geschreven
worden zoals hierboven beschreven.Gegevens-CD's gebruikenNu 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 /mntDe 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 /mntDe 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 /mntHet 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=15000Dit 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 brandenEen 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 fixateOm 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/acd1Het 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.MarcFonvieilleBijgedragen door CD-branderATAPI/CAM-stuurprogrammaHet ATAPI/CAM-stuurprogramma gebruikenDit 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 atapicamOok zijn de volgende regels in het
kernelinstellingenbestand nodig, die meestal wel aanwezig
zijn:device ata
device scbus
device cd
device passHierna 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 closedHet 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 /mntAls 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;.MarcFonvieilleBijgedragen door AndyPolyakovMet toevoegingen van Optische media (DVD's) aanmaken en gebruikenDVDbrandenInleidingVergeleken 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.InstellingenHet 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>).
+ (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 brandenHet 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/gegevensDe 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.isoDe 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;.DVDDVD-VideoDVD-Video brandenEen 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/videoDe 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;.DVDDVD+RWDVD+RW gebruikenIn 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/cd0Deze 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 gegevensHet 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 gegevensDezelfde 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/zeroDVDDVD-RWDVD-RW gebruikenEen 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/cd0Volledig 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.isoDe 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/gegevensOm 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/cd0Om terug te gaan naar het sequentiële formaat:&prompt.root; dvd+rw-format -blank=full /dev/cd0MultisessieMultisessie 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 gegevensHet 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 informatieOm 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.JulioMerinoOrigineel werk door MartinKarlssonHerschreven door Diskettes aanmaken en gebruikenSoms 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 formatterenHet apparaatDiskettes 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 versiesEr 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*"
+ &prompt.root; cd /dev && ./MAKEDEV "fd*"Schijfgrootte in 5.0 en latere versiesIn 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.FormatterenEen 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 versiesVoor 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.1440Formatteren in 5.0 en latere versiesVoor 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/fd0SchijflabelsNadat 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 fd1440Sinds &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;.BestandssystemenNu 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/fd0De schijf is nu klaar voor gebruik.Diskettes gebruikenOm 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 gebruikenbandmediaDe belangrijkste bandmedia zijn de 4mm, 8mm, QIC,
mini-cartridge en DLT.4mm (DDS: Digital Data Storage)bandmediaDDS (4mm) bandenbandmediaQIC banden4mm-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)bandmediaExabyte (8mm) banden8mm-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.QICbandmediaQIC-150De 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.DLTbandmediaDLTDLT-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.AITbandmediaAITAIT 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 bandAls 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 readyDe 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-uppenKunnen diskettes gebruikt worden om gegevens te
back-uppen?back-updiskettesdiskettesDiskettes 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?targzipcompressieHelaas 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/fd0Er 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 bestandsnaamHet 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!LowellGilbertOorspronkelijk werk van Back-up strategieënHet eerste wat nodig is voor het ontwepken van een
back-upplan, is er voor te zorgen dat de volgende mogelijke
problemen worden ondervangen:SchijffalenPer ongeluk verwijderde bestandenWillekeurige bestandscorruptieComplete 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-upbeginselenDe drie grote back-upprogramma's zijn &man.dump.8;,
&man.tar.1; en &man.cpio.1;.Dump en Restoreback-upsoftwaredump / restoredumprestoreDe 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..rhostsHet 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>&1Let 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 dump via
ssh&prompt.root; /sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
doelgebruiker@doelmachine.voorbeeld.com dd of=/mijngrotebestanden/dump-usr-10.gzOok kan de ingebouwde manier van dump
gebruikt worden, door de omgevingsvariabele RSH
in te stellen:Het gebruik van dump via
ssh met ingestelde
RSH&prompt.root; RSH=/usr/bin/ssh /sbin/dump -0uan -f doelgebruiker@doelmachine.voorbeeld.com:/dev/sa0 /usrtarback-upsoftwaretar&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.tarOp &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>&1Hetzelfde 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=20bIndien de veiligheid van back-uppen over een netwerk een
punt is, dient gebruik te worden gemaakt van het commando
ssh en niet van
rsh.cpioback-upsoftwarecpio&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.cpiocpio 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
+find $f >> back-up.lijstdone
-&prompt.root; cpio -v -o --format=newc < back-up.lijst | ssh gebruiker@host "cat > back-upapparaat"
+&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).paxback-upsoftwarepaxpaxPOSIXIEEE&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.Amandaback-upsoftwareAmandaAmandaAmanda (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.NietsdoenNietsdoen 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.NoodterugzetprocedureVóór de rampEr zijn slechts vier stappen om te volgen bij het
voorbereiden op elke ramp die voor kan komen.disklabelHet 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 diskettesDe 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 /mnt/sbin/init
-gzip -c -best /sbin/fsck > /mnt/sbin/fsck
-gzip -c -best /sbin/mount > /mnt/sbin/mount
-gzip -c -best /sbin/halt > /mnt/sbin/halt
-gzip -c -best /sbin/restore > /mnt/sbin/restore
+gzip -c -best /sbin/init > /mnt/sbin/init
+gzip -c -best /sbin/fsck > /mnt/sbin/fsck
+gzip -c -best /sbin/mount > /mnt/sbin/mount
+gzip -c -best /sbin/halt > /mnt/sbin/halt
+gzip -c -best /sbin/restore > /mnt/sbin/restore
-gzip -c -best /bin/sh > /mnt/bin/sh
-gzip -c -best /bin/sync > /mnt/bin/sync
+gzip -c -best /bin/sh > /mnt/bin/sh
+gzip -c -best /bin/sync > /mnt/bin/sync
cp /root/.profile /mnt/root
cp -f /dev/MAKEDEV /mnt/dev
chmod 755 /mnt/dev/MAKEDEV
chmod 500 /mnt/sbin/init
chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
chmod 555 /mnt/bin/sh /mnt/bin/sync
chmod 6555 /mnt/sbin/restore
#
# maak de apparaatnodes aan
#
cd /mnt/dev
./MAKEDEV std
./MAKEDEV da0
./MAKEDEV da1
./MAKEDEV da2
./MAKEDEV sa0
./MAKEDEV pty0
cd /
#
# maak een minimale bestandssysteemtabel aan
#
-cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd <Na de rampDe 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.mountrootpartitiedisklabelnewfsProbeer 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?
]]>
MarcFonvieilleGeherstructureerd en verbeterd door Netwerk-, geheugen-, en bestandsgebaseerde
bestandssystemenvirtuele schijvenschijvenvirtueelNaast 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.NFSCodaschijvengeheugenDit 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.Xschijvenbestandsgebaseerd (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 vnOm een bestaand beeld van een bestandssysteem te
mounten:vnconfig gebruiken om een bestaand
beeld van een bestandssysteem te mounten onder
&os; 4.X&prompt.root; vnconfig vn0schijfbeeld
&prompt.root; mount /dev/vn0c /mntOm een nieuw beeld van een bestandssysteem aan te maken met
&man.vnconfig.8;:Een nieuwe bestandsgebaseerde schijf aanmaken met
vnconfig&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 vn0nieuwbeeld
&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% /mntBestandsgebaseerd bestandssysteem onder
&os; 5.Xschijvenbestandsgebaseerd (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 mdHet 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:mdconfig 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/mntOm een nieuw beeld van een bestandssysteem aan te maken met
&man.mdconfig.8;:Nieuwe bestandsgebaseerde schijf aanmaken met
mdconfig&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% /mntIndien 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 mdmfs&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% /mntAls 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.Xschijvengeheugenbestandssysteem (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% /mntMeer details staan in de hulppagina van &man.md.4;.Geheugengebaseerd bestandssysteem onder &os; 5.X
schijvengeheugenbestandssysteem (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
mdconfig&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% /mntNieuwe geheugengebaseerde schijf aanmaken met
mdmfs&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% /mntIn 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 afkoppelenschijvengeheugenschijf afkoppelenAls 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 vn4TomRhodesBijgedragen door Snapshots van bestandssystemenbestandssystemensnapshots&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 /varAls alternatief kan &man.mksnap.ffs.8; gebruikt worden om een
snapshot aan te maken:&prompt.root; mksnap_ffs /var /var/snapshot/snapSnapshotbestanden kunnen gezocht worden op een
bestandssysteem (bijvoorbeeld /var) door
gebruik te maken van het commando &man.find.1;:&prompt.root; find /var -flags snapshotNadat 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 /mntHet 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 4Meer informatie over en
snapshots van bestandssystemen, inclusief technische documenten,
staat op de website van Marshall Kirk McKusick op .BestandssysteemquotaaccountenschijfruimteschijfquotaQuota 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 inschakelenControleer 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 QUOTADe 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"schijfquotacontrolerenVoor 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 2Analoog, 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 2Standaard 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 instellenschijfquotalimietenIndien 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 -vEr 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 limietEen 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 limietZachte 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 testQuotas 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-19999Meer informatie staat in de hulppagina voor
&man.edquota.8;.Quotalimieten en schijfgebruik controlerenschijfquotacontrolerenZowel &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 60gratieperiodeVoor 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 NFSNFSQuota 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.rquotadVervolgens dient inetd opnieuw gestart
te worden:&prompt.root; kill -HUP `cat /var/run/inetd.pid`LuckyGreenBijgedragen door shamrock@cypherpunks.toSchijfpartities versleutelenschijvenversleutelen&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.
- gbde in de kernel aanzetten
+ Schijven versleutelen met
+ gbdeWord rootHet instellen van gbde
vereist beheerdersrechten.&prompt.user; su -
Password:Controleer de versie van het besturingssysteemVoor &man.gbde.4; is &os; 5.0 of hoger
nodig.&prompt.root; uname -r
5.0-RELEASEVoeg ondersteuning voor &man.gbde.4; aan het
kernelinstellingenbestand toe
- Voeg de volgende regel aan het
- kernelinstellingenbestand toe:
+ Voeg de volgende regel toe aan het
+ kernelinstellingenbestand:options GEOM_BDE
- Compileer en installeer de &os; kernel opnieuw. Dit
- proces wordt beschreven in 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*
+
+ 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.
-
+
+ Maak een map aan voor gbde lockbestanden
-
- Initialiseer de gbde-partitie
+ &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.
+
- Een gbde-partitie dient
- geïnitialiseerd te worden voordat deze kan worden
- gebruikt. Deze initialisatie dient slechts eenmalig
- uitgevoerd te worden:
+
+ Initialiseer de gbde-partitie
- &prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c
+ Een gbde-partitie dient
+ geïnitialiseerd te worden voordat deze kan worden
+ gebruikt. Deze initialisatie dient slechts eenmalig
+ uitgevoerd te worden:
- &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:
+ &prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c
- $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:
+ &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.
+
+ Maak een bestandssysteem op het versleutelde
+ apparaat
-
- De optie is de standaard in
- &os; 5.1-RELEASE en nieuwer.
-
+ 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.
- &prompt.root; newfs -U -O2 /dev/ad4s1c.bde
+
+ De optie is de standaard in
+ &os; 5.1-RELEASE en nieuwer.
+
-
- Voer &man.newfs.8; uit op een aangekoppelde
- gbde-partitie die
- geïndificeerd wordt door de uitbreiding
- *.bde op
- de apparaatnaam.
-
-
+ &prompt.root; newfs -U -O2 /dev/ad4s1c.bde
-
- Mount de versleutelde partitie
+
+ Voer &man.newfs.8; uit op een aangekoppelde
+ gbde-partitie die
+ geïndificeerd wordt door de uitbreiding
+ *.bde op
+ de apparaatnaam.
+
+
- Maak een mountpunt voor het versleutelde
- bestandssysteem aan:
+
+ Mount de versleutelde partitie
- &prompt.root; mkdir /private
+ Maak een mountpunt voor het versleutelde
+ bestandssysteem aan:
- Mount het versleutelde bestandssysteem:
+ &prompt.root; mkdir /private
- &prompt.root; mount /dev/ad4s1c.bde /private
-
+ Mount het versleutelde bestandssysteem:
-
- Controleer of het versleutelde bestandssysteem
- beschikbaar is
+ &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:
+ Het versleutelde bestandssysteem is nu zichtbaar
+ met &man.df.1; en gebruiksklaar:
- &prompt.user; df -H
+ &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;.
+
- Bestaande versleutelde bestandssystemen mounten
+
+
+
+ Daniel
+ Gerzo
+ Bijgedragen door
+
+
+
+
+
+ Schijfversleuteling met geli
+
+ 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;.
- 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.
+ 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.
- Koppel de gbde-partitie aan de kernel
+ Toevoegen van geli-ondersteuning
+ aan het kernelinstellingenbestand
+
+ Voeg de volgende regels toe aan het bestand met
+ kernelinstellingen:
- &prompt.root gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c
+ options GEOM_ELI
+device crypto
- Er wordt om de wachtwoordzin gevraagd die gekozen is
- tijdens de initialisatie van de versleutelde
- gbde-partitie.
+ 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
- Controleer het bestandssysteem op fouten
+ De dienst koppelen met de gemaakte sleutel
- 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; geli attach -k /root/da2.key /dev/da2
+Enter passphrase:
- &prompt.root; fsck -p -t ffs /dev/ad4s1c.bde
+ 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
- Mount het versleutelde bestandssysteem
+ De dienst unmounten en afkoppelen
- &prompt.root; mount /dev/ad4s1c.bde /private
+ 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.
- Het versleutelde bestandssysteem is nu klaar voor
- gebruik.
+ &prompt.root; umount /private
+&prompt.root; geli detach da2.eli
+ Meer informatie over &man.geli.8; staat in de
+ handboekpagina.
+
- 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.
-
-
+ Swap-partitie versleutelen
-
- 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;.
-
+ Het volgende voorbeeld toont hoe een met
+ geli versleutelde swap-partition gemaakt
+ kan worden.
-
- 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;.
+ &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 geli 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/firewalls/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/firewalls/chapter.sgml
index 1f7014704d..b5947f85cd 100644
--- a/nl_NL.ISO8859-1/books/handbook/firewalls/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/firewalls/chapter.sgml
@@ -1,3503 +1,3503 @@
Joseph J.BarbishBijgedragen door BradDavisOmgezet naar SGML en bijgewerkt door SiebrandMazelandVertaald door FirewallsfirewallbeveiligingfirewallsInleidingFirewalls bieden de mogelijkheid om inkomend en uitgaand
verkeer op een systeem te filteren. Een firewall gebruikt
daarvoor een of meer groepen regels (rules) om
netwerkpakketten te inspecteren als ze binnenkomen of weggaan
door netwerkverbindingen en staat dat verkeer dan toe of
blokkeert het. De regels van een firewall kunnen
één of meerdere eigenschappen van pakketten
onderzoeken waaronder, maar niet uitsluitend, het protocol, het
bron- of bestemmingsadres en de bron- en bestemmingspoort.Firewalls kunnen de veiligheid van een host of netwerk enorm
vergroten. Ze kunnen één of meer van de volgende
dingen doen:Applicaties, diensten en machines op een intern
netwerk te beschermen tegen ongewild verkeer van het
internet.Toegang tot internet voor interne hosts te limiteren
of uitschakelen.Ondersteuning bieden voor netwerkadres vertaling
(network address translation of
NAT), waarmee er vanaf een intern
netwerk met private IP adressen een
internetverbinding gedeeld kan worden met één
IP adres of met een groep van publieke
adressen die automatisch wordt toegewezen.Na het lezen van dit hoofdstuk weet de lezer:Hoe pakketfilteringsregels op de juiste wijze
samengesteld kunnen worden;De verschillen tussen de firewalls die bij &os;
worden geleverd;Hoe de OpenBSD firewall PF te
gebruiken en in te stellen;Hoe IPFILTER te gebruiken en
in te stellen;Hoe IPFW te gebruiken en in te
stellen.Er wordt aangenomen dat de lezer van dit hoofdstuk:Basisbegrip heeft van &os; en internetconcepten.Firewallconceptenfirewallsets regelsEr zijn twee basismogelijkheden om sets met regels te maken
voor firewalls: inclusief of
exclusief. Een exclusieve firewall staat al het
verkeer door behalve het verkeer dat past bij de set met regels.
Een inclusieve firewall doet het tegenovergestelde. Die staat
alleen verkeer toe dat past bij de regels en blokkeert al het
overige verkeer.Inclusieve firewalls zijn in het algemeen veiliger dan
exclusieve firewalls omdat ze het risico op het toestaan van
ongewild verkeer door een firewall aanzienlijk reduceren.De beveiliging kan nog verder vergroot worden met een
stateful firewall. Een stateful firewall houdt
bij welke connecties er door de firewall tot stand zijn gekomen
en laat alleen verkeer door dat bij een bestaande connectie hoort
of onderdeeel is van een connectie in opbouw. Het nadeel van een
stateful firewall is dat die kwetsbaar kan zijn voor Ontzegging
van Dienst (DoS) aanvallen als er een groot aantal nieuwe
verbindingen binnen korte tijd wordt opgezet. Met de meeste
firewalls is het mogelijk een combinatie te maken van stateful en
niet stateful gedrag om een optimale firewall voor een site te
maken.Firewallsoftware&os; heeft drie soorten firewallsoftware in de
basisinstallatie. Dat zijn: IPFILTER (ook bekend als IPF),
IPFIREWALL (ook bekend als IPFW) en de pakketfilter van
OpenBSD (ook bekend als PF). &os; heeft ook twee ingebouwde
pakketten voor het regelen van verkeer (in de basis het
beheersen van bandbreedtegebruik): &man.altq.4; en
&man.dummynet.4;. Dummynet is traditioneel sterk verbonden met
IPFW en ALTQ met
IPF/PF. IPF, IPFW en PF
gebruiken allemaal regels om de toegang van pakketten tot een
systeem te regelen, hoewel ze dat op andere manieren doen en de
syntaxis voor regels anders is.De reden dat er meerdere firewallpakketten in &os; zitten is
dat verschillende mensen verschillende eisen en voorkeuren
hebben. Geen enkel firewallpakket is het beste.De schrijver van dit artikel geeft de voorkeur aan IPFILTER
omdat daarmee stateful regels minder complex zijn toe te passen
in een omgeving waar NAT wordt gebruikt en
IPF heeft een ingebouwde ftp proxy waardoor de regels voor het
veilig gebruiken van FTP eenvoudiger worden.Omdat alle firewalls gebaseerd zijn op het inspecteren van
aangegeven controlevelden in pakketten, moet iemand die sets van
firewallregels opstelt begrijpen hoe TCP/IP
werkt, welke waarde de controlevelden kunnen hebben en hoe die
waarden gebruikt worden in normaal verkeer. Op de volgende
webpagina wordt een prima uitleg gegeven: .De OpenBSD Packet Filter (PF) en
ALTQfirewallPFVanaf juli 2003 is de OpenBSD firewalltoepassing
PF geporteerd naar &os; wn bwschikbaar gekomen
in de &os; Portscollectie. In november 2004 was &os; 5.3 de
eerste release die PF bevatte is integraal
onderdeel van het basissysteem. PF is een
complete en volledige firewall die optioneel
ALTQ bevat (Alternate Queuing).
ALTQ biedt Quality of Service
(QoS) bandbreedtebeheersing waardoor een
bepaalde bandbreedte gegarandeerd kan worden aan verschillende
diensten op basis van filterregels. Het OpenBSD project zorgt
voor een erg goed gebruikershandboek voor PF (PF User's Guide)
dat niet in dit onderdeel wordt opgenomen omdat dat niet nodig
is.Hieronder wordt de beschikbaarheid van PF voor de
verschillende &os; releases en versies weergegeven:&os; VersiePF BeschikbaarheidPre-4.X versiePF is niet beschikbaar voor uitgaven van &os; ouder
dan de tak 4.X.Alle versies van de tak 4.XPF is beschikbaar als onderdeel van KAME.5.X uitgaven voor 5.3-RELEASEDe port security/pf kan gebruikt
worden om PF te installeren op deze versie van &os;.
Deze uitgaven waren gericht op ontwikkelaars en mensen
die een voorproefje wilden hebben van vroege versies van
5.X. Het wordt sterk aangeraden om te upgraden naar
5.3-RELEASE of een nieuwere versie van &os;.5.3-RELEASE en latere versiesPF onderdeel van het basissysteem. Gebruik de port
security/pf op deze
versies van &os; niet. Dat werkt
niet en dus dient de &man.pf.4;-ondersteuning uit het
basissysteem gebruikt te worden.Meer informatie staat op de PF voor &os;
website: .Het OpenBSD PF gebruikershandboek staat hier: .PF in &os; 5.X staat op het niveau van OpenBSD versie
3.5. De port uit de &os; Portscollectie is op het niveau van
OpenBSD versie 3.4. Houd dit in gedachten bij het doornemen
van het gebruikershandboek.PF inschakelenPF zit in de basisinstallatie van &os; voor versies vanaf
5.3 als aparte run time laadbare module. Een
systeem laadt de PF laadbare module dynamisch in de kernel als
pf_enable="YES" in
rc.conf staat. In de laadbare module is
loggen via &man.pflog.4; ingeschakeld.De module verwacht dat options INET en
device bpf beschikbaar zijn. Tenzij
NOINET6 was ingesteld (bijvoorbeeld in
&man.make.conf.5;) tijdens het bouwen, is ook
options INET6 nodig.Kerneloptieskerneloptiesdevice pfkerneloptiesdevice pflogkerneloptiesdevice pfsyncHet is niet verplicht om PF in te schakelen door het mee
te compileren in de &os; kernel. Dit wordt alleen beschreven
als achtergrondinformatie. Door PF in de kernel te
compileren wordt de laadbare module niet gebruikt.Voorbeeld kernelinstellingen voor PF staan beschreven in
de /usr/src/sys/conf/NOTES kernel source
en worden hier weergegeven:device pf
device pflog
device pfsyncdevice pf schakelt ondersteuning voor de
Packet Filter firewall in.device pflog schakelt het
optionele &man.pflog.4; pseudo netwerkapparaat in dat gebruikt
kan worden om verkeer te loggen naar een &man.bpf.4;
descriptor. De &man.pflogd.8; daemon kan gebruikt worden om
de logboekinformatie naar schijf te schrijven.device pfsync schakelt het
optionele &man.pfsync.4; pseudo netwerkapparaat in waarmee de
state wijzigingen gemonitord kunnen worden.
Omdat dit geen onderdeel is van de laadbare module, moet dit
in een aangepaste kernel gebouwd worden om het te kunnen
gebruiken.Deze instellingen worden pas actief nadat een kernel
waarvoor deze instellingen zijn gemaakt is gebouwd en
geïnstalleerd.Beschikbare opties voor
rc.confDe volgende instellingen moeten in /etc/rc.conf
staan om PF bij het booten te activeren:pf_enable="YES" # Schakel PF in (laad module als nodig)
pf_rules="/etc/pf.conf" # bestand met regels voor pf
pf_flags="" # aanvullende vraagen voor opstarten pfctl
pflog_enable="YES" # start pflogd(8)
pflog_logfile="/var/log/pflog" # waar pflogd het logboekbestand moet opslaan
pflog_flags="" # aanvullende vlaggen voor opstarten pflogdAls er een LAN achter de firewall staat en er pakketten
doorgestuurd moeten worden naar computers op dat LAN of als
NAT actief is, dan moet de volgende optie ook ingesteld
worden:gateway_enable="YES" # Schakel in als LAN gatewayALTQ inschakelenALTQ is alleen beschikbaar door de
opties in de &os; Kernel te compileren.
ALTQ wordt niet door alle
netwerkkaartstuurprogramma's ondersteund. In &man.altq.4;
staat een lijst met ondersteunde stuurprogramma's voor de
betreffende versie. Met de volgende opties wordt
ALTQ ingeschakeld en additionele
functionaliteit toegevoegd:options ALTQ
options ALTQ_CBQ # Class Bases Queuing (CBQ)
options ALTQ_RED # Random Early Detection (RED)
options ALTQ_RIO # RED In/Out
options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
options ALTQ_PRIQ # Priority Queuing (PRIQ)
options ALTQ_NOPCC # Required for SMP buildoptions ALTQ schakelt het
ALTQ framework in.options ALTQ_CBQ schakelt Class Based
Queuing (CBQ) in. Met
CBQ kan de bandbreedte van een verbinding
worden opgedeeld in verschillende klasses of wachtrijen om
verkeer te prioriteren op basis van filterregels.options ALTQ_RED schakelt Random Early
Detection (RED) in. RED
wordt gebruikt om netwerkverstopping te voorkomen.
RED doet dit door de lengte van de wachtrij
te meten en die te vergelijken met de minimale en maximale
drempelwaarden voor de wachtrij. Als de wachtrij groter is
dan de maximale waarde worden alle nieuwe pakketten genegeerd.
Het werkt naar zijn naam, dus RED negeert
willekeurig pakketten van verschillende verbindingen.options ALTQ_RIO schakelt Random Early
Detection In and Out in.options ALTQ_HFSC schakelt de
Hierarchical Fair Service Curve Packet Scheduler in. Meer
informatie over HFSC staat op .options ALTQ_PRIQ schakelt Priority
Queuing (PRIQ) in. PRIQ
laat verkeerd dat in een hogere wachtrij staat altijd eerder
door.options ALTQ_NOPCC schakelt
SMP ondersteuning voor
ALTQ in. Deze optie is verplicht op
SMP systemen.De IPFILTER (IPF) firewallfirewallIPFILTERAan dit onderdeel wordt nog gewerkt. De inhoud is wellicht
niet altijd volledig en juist.Darren Reed is de auteur van IPFILTER, dat niet afhankelijk
is van één besturingssysteem. Het is een open
source applicatie die is geporteerd naar &os;, NetBSD, OpenBSD,
SunOS, HP/UX en Solaris besturingssystemen. IPFILTER wordt
actief ondersteund en onderhouden en er worden regelmatig nieuwe
versies uigebracht.IPFILTER is gebaseerd op een firewall aan de kernelkant en
een NAT mechanisme dat gecontroleerd en
gemonitord kan worden door programma's in userland. De
firewallregels kunnen ingesteld of verwijderd worden met het
hulpprogramma &man.ipf.8;. De NAT regels
kunnen ingesteld of verwijderd worden met &man.ipnat.1;. Het
programma &man.ipfstat.8; kan actuele statistieken leveren voor
de kernelonderdelen van IPFILTER. &man.ipmon.8; kan acties van
IPFILTER wegschrijven naar logboekbestanden van het
systeem.IPF is oorspronkelijk geschreven met logica die regels
verwerkte volgens het principe de laatst passende regel
wint en gebruikte toen alleen staatloze regels. In de
loop der tijd is IPF verbeterd en zijn de opties
quick en keep state
toegevoegd waarmee de logica van het verwerken van regels
drastisch is gemoderniseerd. In de officiële documentatie
van IPF worden de verouderde regels en verwerkingslogica
behandeld. De moderne functies worden alleen behandeld als
opties, waardoor hun nut dat er een veiliger firewall mee te
maken volledig onderbelicht blijft.De instructies in dit hoofdstuk zijn gebaseerd op regels die
gebruik maken van de optie quick en de
stateful optie keep state. Dit is het
raamwerk waarmee een set van inclusieve firewallregels wordt
samengesteld.Een inclusieve firewall staat alleen pakketten toe die
voldoen aan de regels. Op die manier kan er in de hand
gehouden worden welke diensten van binnen de firewall naar
buiten mogen en welke diensten op het private netwerk vanaf
het internet bereikbaar zijn. Al het andere verkeer wordt
vanuit het ontwerp standaard geblokkeerd en gelogd.
Inclusieve firewalls zijn veel veiliger dan exclusieve
firewalls. Het is ook de enige wijze voor de opzet van een
firewall die in dit hoofdstuk wordt behandeld.Voor een gedetailleerde uitleg over de verwerking van de
verouderde regels zie
en .De IPF FAQ is te vinden op .IPF inschakelenIPFILTERinschakelenIPF zit in de basisinstallatie van &os; als een aparte
run time laadbare module. Een systeem laadt de
IPF kernel laadbare module dynamisch als
ipfilter_enable="YES" in
rc.conf staat. Voor de laadbare module
zijn de opties logging en default
pass all ingeschakeld. IPF hoeft niet in de
kernel gecompileerd te worden om het standaardgedrag te
wijzigen naar block all. Dat is mogelijk
door als laatste regel een regel toe te voegen die al het
verkeer blokkeert.KerneloptieskerneloptiesIPFILTERkerneloptiesIPFILTER_LOGkerneloptiesIPFILTER_DEFAULT_BLOCKIPFILTERkerneloptiesHet is niet verplicht om IPF in te schakelen door de
volgende opties in de &os; kernel te compileren. Dit wordt
alleen beschreven als achtergrondinformatie. Door IPF in de
kernel te compileren wordt de laadbare module niet
gebruikt.Voorbeeld kernelinstellingen voor IPF staan beschreven in
de /usr/src/sys/i386/conf/LINTin de
kernelbroncode
(/usr/src/sys/arch/conf/LINT
voor &os; 4.X) en worden hier beschreven:options IPFILTER
options IPFILTER_LOG
options IPFILTER_DEFAULT_BLOCKoptions IPFILTER schakelt ondersteuning
voor de IPFILTER firewall in.options IPFILTER_LOG schakelt de
optie in waarmee IPF verkeer kan loggen door het naar het
ipl pakketloggende
pseudo–apparaat te schrijven voor iedere regel met het
sleutelwoord log erin.options IPFILTER_DEFAULT_BLOCK
wijzigt het standaardgedrag zodat ieder pakket waarop geen
enkele pass regel van toepassing is
wordt geblokkeerd.Deze instelling worden pas actief nadat een kernel
waarvoor deze instellingen zijn gemaakt is gebouwd en
geïnstalleerd.Beschikbare opties voor rc.confDe volgende instellingen moeten in /etc/rc.conf
staan om IPF bij het booten te activeren:ipfilter_enable="YES" # Start ipf firewall
ipfilter_rules="/etc/ipf.rules" # laad regels uit het doelbestand
ipmon_enable="YES" # Start IP monitor log
ipmon_flags="-Ds" # D = start als daemon
# s = log naar syslog
# v = log tcp window, ack, seq
- # n = vertaal IP & poort naar namen
+ # n = vertaal IP & poort naar namen
Als er een LAN achter de firewall staat dat gebruik maakt
van IP adressen uit de privaat reeks, dan
moet de volgende optie ook ingesteld worden om
NAT functionaliteit in te schakelen:gateway_enable="YES" # Schakel in als LAN gateway
ipnat_enable="YES" # Start ipnat functie
ipnat_rules="/etc/ipnat.rules" # bestand met regels voor ipnatIPFipf&man.ipf.8; wordt gebruikt om het bestand met
firewallregels te laden. Gewoonlijk wordt er een bestand
aangemaakt waarin de situatieafhankelijke regels staan
waarmee in één keer de bestaande regels kunnen
worden vervangen:&prompt.root; ipf -Fa -f /etc/ipf.rules: verwijder alle interne tabellen
met regels.: laad het aangegeven
bestand met regels.Hiermee wordt het mogelijk wijzigingen te maken aan het
bestand met eigen regels en met &man.ipf.8; de firewall aan
te passen met verse regels zonder het systeem te booten.
Deze methode is erg handig om nieuwe regels te testen omdat
dit zo vaak als nodig gedaan kan worden.In &man.ipf.8; worden alle opties die beschikbaar zijn
toegelicht.&man.ipf.8; verwacht dat het bestand met regels een
standaard tekstbestand is. Het accepteert geen bestand met
regels dat is opgesteld als een script dat gebruik maakt van
substitutie.Er is wel een mogelijkheid om IPF regels op te stellen
en gebruik te maken van substitutie. Meer informatie staat
in .IPFSTATipfstatIPFILTERstatistieken&man.ipfstat.8; haalt de totalen van de statistieken op
die horen bij de firewall sinds die is gestart en toont deze.
Het kan ook zijn dat de tellers in tussentijd op nul zijn
gesteld met ipf –Z.In &man.ipfstat.8; worden alle details behandeld.Standaard ziet &man.ipfstat.8; uitvoer er ongeveer als
volgt uit:input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0
output packets: blocked 4200 passed 1284345 nomatch 14687 counted 0
input packets logged: blocked 99286 passed 0
output packets logged: blocked 0 passed 0
packets logged: input 0 output 0
log failures: input 3898 output 0
fragment state(in): kept 0 lost 0
fragment state(out): kept 0 lost 0
packet state(in): kept 169364 lost 0
packet state(out): kept 431395 lost 0
ICMP replies: 0 TCP RSTs sent: 0
Result cache hits(in): 1215208 (out): 1098963
IN Pullups succeeded: 2 failed: 0
OUT Pullups succeeded: 0 failed: 0
Fastroute successes: 0 failures: 0
TCP cksum fails(in): 0 (out): 0
Packet log flags set: (0)Als er als optie voor inkomend of
voor uitgaand wordt meegegeven, dan wordt
de juiste lijst met regels die de kernel op dat moment gebruikt
weergegeven.ipfstat –in toont de tabel met
regels voor inkomend verkeer met regelnummersipfstat –on toont de tabel met
regels voor uitgaand verkeer met regelnummersDe uitvoer ziet er ongeveer als volgt uit:@1 pass out on xl0 from any to any
@2 block out on dc0 from any to any
@3 pass out quick on dc0 proto tcp/udp from any to any keep stateipfstat –ih toont de tabel met
regels voor inkomend verkeer, waarbij voor iedere regel staat
hoe vaak die van toepassing was.ipfstat –oh toont de tabel met
regels voor uitgaand verkeer, waarbij voor iedere regel staat
hoe vaak die van toepassing was.De uitvoer ziet er ongeveer als volgt uit:2451423 pass out on xl0 from any to any
354727 block out on dc0 from any to any
430918 pass out quick on dc0 proto tcp/udp from any to any keep stateEen van de belangrijkste functies van
ipfstat is de vlag
waarmee de staat-tabel wordt getoond op een wijze die
vergelijkbaar is met de wijze waarop &man.top.1; de draaiende
&os; procestabel toont. Als een firewall wordt aangevallen dan
geeft deze functie de mogelijkheid om de pakketten van de
aanvaller te identificeren en nader te onderzoeken. De
optionele subvlaggen bieden de mogelijkheid om een bron of
bestemmings IP adres, poort of protocol aan
te geven dat gemonitord moet worden. Details zijn na te lezen
in &man.ipfstat.8;.IPMONipmonIPFILTERloggenOm &man.ipmon.8; te laten werken zoals bedoeld, moet de
kerneloptie IPFILTER_LOG aan staan. Dit
commando kan op twee verschillende wijzen gebruikt worden.
De standaard is van toepassing als het commando op de
commandoregel wordt ingegeven zonder de optie
.De daemon wordt gebruikt als continu een systeemlogboek
bijgewerkt moet worden zodat het mogelijk is om
gebeurtenissen in het verleden te bekijken. Zo zijn &os; en
IPFILTER ingesteld om samen te werken. &os; heeft ingebouwde
mogelijkheden om automatisch syslogs te roteren. Daarom is
het beter om de uitvoer naar &man.syslogd.8; te geschrijven
dan naar een gewoon bestand. In rc.conf
is te zien dat de instelling ipmon_flags
de waarde heeft:ipmon_flags="-Ds" # D = start als daemon
# s = log naar syslog
# v = log tcp window, ack, seq
- # n = vertaal IP & poort naar namen
+ # n = vertaal IP & poort naar namen
De voordelen van loggen zijn duidelijk. Het biedt de
mogelijkheid om na het feit informatie na te zien als: welke
pakketten heeft de firewall laten vallen, waar kwamen ze
vandaan en waar gingen ze heen? Dit zijn allemaal voordelen
als het gaat om uitvinden waar een aanvaller vandaan komt en
wat hij heeft geprobeerd.Zelfs als loggen is ingeschakeld logt IPF nog niets uit
zichzelf. De beheerder van de firewall beslist welke actieve
regels iets weg moeten schrijven door het sleutelwoord
log aan die regels toe te voegen.
Gewoonlijk worden alleen deny regels
gelogd.Het is heel normaal om als laatste regel een
deny regel aan de set met regels toe te
voegen waar het sleutelwoord log in staat.
Zo krijgt een beheerder alle pakketten te zien waarop geen
enkele regel van toepassing was.Loggen met IPMONSyslogd heeft een eigen methode
om logboekgegevens te scheiden. Het maakt gebruik van speciale
groepen die facility en level
heten. &man.ipmon.8; in mode gebruikt
security (local0 in 4.X)
als facilitynaam. Alle door &man.ipmon.8;
gelogde gegevens gaan naar security
(local0 in 4.X). De nu volgende levels
kunnen gebruikt worden om de gelogde gegevens nog verder uit
elkaar te trekken als dat gewenst is.LOG_INFO – pakketten gelogd met het sleutelwoord "log" als actie in plaats van pass of block.
LOG_NOTICE – gelogde pakketten die ook zijn doorgelaten
LOG_WARNING – gelogde pakketten die ook geblokkeerd zijn
LOG_ERR – gelogde pakketten die een verkeerde opbouw hebben, "short"Om IPFILTER alle gelogde gegevens naar
/var/log/ipfilter.log te laten schrijven,
dient dat bestand te bestaan. Dat kan met het volgende
commando:&prompt.root; touch /var/log/ipfilter.logDe syslogfunctie wordt beheerd met instellingen in
/etc/syslog.conf.
syslog.conf biedt aanzienlijke
flexibiliteit in hoe syslog omgaat met systeemberichten die
door softwaretoepassingen als IPF worden gegeven.Zo kan de volgende instelling toegevoegd worden aan
/etc/syslog.conf voor &os; 5.X en
later:security.* /var/log/ipfilter.logVoor &os; 4.X kan de volgende regel aan
/etc/syslog.conf toegevoegd worden:local0.* /var/log/ipfilter.logHet deel security.*
(local0.* in 4.X) betekent dat alle
logberichten naar de aangegeven plaats geschreven moeten
worden.Om de wijzigingen in
/etc/syslog.conf actief te maken kan er
gereboot worden of is het mogelijk de syslogtaak een schop te
geven zodat /etc/syslog.conf opnieuw
wordt ingelezen met /etc/rc.d/syslogd
reload. Voor &os; 4.X is dit killall
-HUP syslogd. Het PID
(procesnummer) is te achterhalen door een overzicht van taken
te tonen met ps –ax. Het PID is het
nummer in de linker kolom voor de regel waarop
syslog staat.Vaak wordt vergeten
/etc/newsyslog.conf te wijzigen om het
nieuw aangemaakte logboekbestand te laten roteren.De opmaak van gelogde berichtenBerichten die door ipmon wordt gezonden
bestaan uit velden die gescheiden worden door een spatie.
Velden die in alle berichten zitten zijn:De datum waarop het pakket is ontvangen.De tijd waarop het pakket is ontvangen weergegeven
als HH:MM:SS.F voor uren, minuten, seconden en fracties
van een seconde. De fractie kan meerdere cijfers lang
zijn.De naam van de interface waarop het pakket is
ontvangen, bijvoorbeeld
dc0.De groep en regelnummer van de regel, bijvoorbeeld
@0:17.Deze kunnen ingezien worden met
ipfstat -in.De acties: p voor doorgelaten
(passed), b voor
geblokkeerd (blocked),
S voor een verkeerd pakket
(short packet), n voor
dat er geen enkele regel van toepassing was,
L voor een logboekregel. De volgorde
waarin deze acties getoond worden is: S, p, b, n, L. Een
hoofdletter P of B
betekent dat het pakket gelogd is vanwege een globale
instelling, niet vanwege één regel in het
bijzonder.De adressen. Dit zijn eigenlijk drie velden: het
bronadres en poort gescheiden door een komma het symbool
- –> en het bestemmingsadres en poort.
- 209.53.17.22,80 –>
+ -> en het bestemmingsadres en poort.
+ 209.53.17.22,80 ->
198.73.220.17,1722.Achter PR staat de naam van het
protocol of het nummer, bijvoorbeeld PR
tcp.Achter len staan de lengte van de
pakketkop en de totale lengte van het pakket,
bijvoorbeeld len 20 40.Als het pakket een TCP pakket is, dan
is er nog een veld dat begint met een verbindingsstreepje
met daarachter letters die overeenkomen met vlaggen die
ingeschakeld waren. In &man.ipmon.8; is een lijst met
letters en bijbehorende vlaggen te vinden.Als het pakket een ICMP pakket is, dan worden aan het
einde twee velden toegevoegd. Het eerste is altijd
ICMP en het volgende het ICMP bericht en
subbericht type, gescheiden door een slash, bijvoorbeeld
ICMP 3/3 voor een poort niet
bereikbaar bericht.Script met regels met substitutie bouwenGeoefende gebruikers van IPF maken een bestand dat de
regels bevat en stellen dat op zo'n manier op dat het
uitgevoerd kan worden als een script met substitutie. Het
grote voordeel van deze werkwijze is dat er dan alleen de
waarde van een variabele gewijzigd hoeft te worden en dat
als het script opnieuw wordt uitgevoerd, op alle plaatsen
waar de variabele wordt gebruikt, de nieuwe waarde in de
regels wordt opgenomen. Omdat het een script is, kan
substitutie gebruik worden om vaak voorkomende waarden
de definiëren zodat ze in meerdere regels vervangen
kunnen worden. Dit wordt geïllustreerd in het
onderstaande voorbeeld.De syntaxis die in het script wordt gebruikt is
compatibel met de shells sh,
csh en tcsh.Velden waarvoor substitutie van toepassing is worden
vooraf gegaan door het dollarteken
$.Definities worden niet vooraf gegaan door het voorvoegsel
$.De waarden van een definitie moet omsloten worden door
dubbele aanhalingstekens (").Een set regels begint wellicht als volgt:############## Begin IPF regels script #########################
oif="dc0" # naam van de uitgaande interface
odns="192.0.2.11" # IP adres van DNS server ISP
myip="192.0.2.7" # statische IP adres gekregen van ISP
ks="keep state"
fks="flags S keep state"
# Er kan gekozen worden om dit script te gebruiken om een eigen
# /etc/ipf.rules script te maken of dit script kan gebruikt worden
# "as is"
#
# Haal bij één van deze regels het commentaarteken weg
# en plaats hem bij de ander.
#
# 1) Deze kan gebruikt worden om /etc/ipf.rules te maken:
#cat > /etc/ipf.rules << EOF
# 2) Deze kan gebruikt worden om het script "as is" te starten:
# Let op: er moet een lege regel zijn na het EOF teken.
/sbin/ipf -Fa -f - << EOF
# Verleen toegang tot de DNS van de ISP.
pass out quick on $oif proto tcp from any to $odns port = 53 $fks
pass out quick on $oif proto udp from any to $odns port = 53 $ks
# Sta uitgaand verkeer voor niet beveiligd www verkeer toe
pass out quick on $oif proto tcp from $myip to any port = 80 $fks
# Sta uitgaand verkeer voor beveiligd www verkeer toe (https over TLS SSL)
pass out quick on $oif proto tcp from $myip to any port = 443 $fks
EOF
################## Einde IPF regels script ########################Dat is alles. De regels zijn niet van belang in dit
voorbeeld, maar tonen hoe substitutievelden worden
gedefinieerd en hoe ze worden gebruikt. Als het bovenstaande
voorbeeld de inhoud van
/etc/ipf.rules.script was, dan kon het
geladen worden door het vanaf de commandoregel aan te
roepen:&prompt.root; sh /etc/ipf.rules.scriptEr is wel een probleem met het gebruik van regels in
combinatie met substitutie. IPF snapt het niet en kan deze
scripts niet direct lezen.Dit script kan gebruikt worden op één van de
volgende twee manieren:Haal het commentaarteken weg bij de regel die begint met
cat en zet het commentaarteken bij de
regel die begint met /sbin/ipf. Plaats
ipfilter_enable="YES" in
/etc/rc.conf zoals gewoonlijk en start
het script eenmalig na elke wijziging om
/etc/ipf.rules te maken of bij te
werken.Schakel IPFILTER uit in de systeem opstart scripts door
ipfilter_enable="NO" toe te voegen aan
/etc/rc.conf (dit is de
standaardwaarde).Voeg een script zoals de volgende toe aan de
/usr/local/etc/rc.d opstart
directory. Het script zou een duidelijke naam
moeten hebben zoals ipf.loadrules.sh.
De .sh is noodzakelijk.#!/bin/sh
sh /etc/ipf.rules.scriptDe permissies op dit script moeten zijn: lezen,schrijven
en uitvoeren voor de gebruiker root.&prompt.root; chmod 700 /usr/local/etc/rc.d/ipf.loadrules.shAls het systeem nu herstart, worden de regels via het
script gestart.Sets van IPF regelsEen set regels is een groep ipf regels
die is gemaakt om pakketten toe te staan of te blokkeren op
basis van de eigenschappen van dat pakket. De
bi-directionele uitwisseling van pakketten tussen hosts
bestaat uit een gesprek dat een sessie heet. De set van
firewallregels beoordeelt pakketten twee keer: als het
aankomt van de host op het publieke internet en als het de
host weer verlaat op de weg terug naar de host op het
publieke internet. Iedere TCP/IP dienst
als telnet, www, mail, etc, heeft zijn eigen protocol, bron
IP adres en bestemmings
IP adres of de bron- en bestemmingspoort.
Deze attributen vormen de basis voor het opstellen van regels
waarmee diensten toegelaten of geblokkeerd kunnen
worden.IPFILTERvolgorde regelverwerkingIPF is oorspronkelijk geschreven met logica die regels
verwerkte volgens het principe de laatst passende
regel wint en gebruikte toen alleen staatloze regels.
In de loop der tijd is IPF verbeterd en zijn de opties
quick en keep state toegevoegd
waarmee de logica van het verwerken van regels drastisch is
gemoderniseerd.De instructies in dit hoofdstuk zijn gebaseerd op regels
die gebruik maken van de optie quick
en de stateful optie keep state. Dit
is het raamwerk waarmee een set van inclusieve firewallregels
wordt samengesteld.Een inclusieve firewall staat alleen diensten toe die
voldoen aan de regels. Op die manier kan er in de hand
gehouden worden welke diensten van binnen de firewall naar
buiten mogen en welke diensten op het private netwerk vanaf
het internet bereikbaar zijn. Al het andere verkeer wordt
vanuit het ontwerp standaard geblokkeerd en gelogd.
Inclusieve firewalls zijn veel veiliger dan exclusieve
firewalls. Het is ook de enige wijze voor de opzet van een
firewall die in dit hoofdstuk wordt behandeld.Werk bij het wijzigen van firewallregels zeer
voorzichtig. Met sommige instellingen is een
server niet meer bereikbaar. Om het
veilig te spelen is het aan te raden de eerste instellingen
vanaf het console te maken, in plaats van via
ssh.RegelsyntaxisIPFILTERregelsyntaxisDe regelsyntaxis die hier wordt besproken is versimpeld
door alleen de moderne stateful regels en de eerste
van toepassing zijnde regel wint te belichten. De
complete regelsyntaxis is na te lezen in &man.ipf.8Het karakter # wordt gebruikt om het
begin van een opmerking te markeren en zowel op een eigen
regel als achter een firewallregel staan. Lege regels worden
genegeerd.Regels bevatten sleutelwoorden die in een bepaalde
volgorde van links naar rechts op een regel horen te staan.
Sleutelwoorden worden vet weergegeven. Sommige
sleutelwoorden hebben subopties die zelf ook weer
sleutelwoorden hebben die ook weer subopties kunnen hebben.
Alle opties die hier direct onder staan, worden daaronder
uitgebreid weergegeven en verderop in dit hoofdstuk in een
aparte paragraaf behandeld.ACTIE IN/UIT OPTIES SELECTIE STATEFUL
PROTO BRON_ADR,BEST_ADR OBJECT POORT_NUM TCP_VLAG STATEFUL
ACTIE = block | passIN/UIT = in | outOPTIES = log | quick | on
interfacenaamSELECTIE = protowaarde |
bron/bestemming IP | poort = nummer | flags
flag–valuePROTO = tcp/udp | udp | tcp |
icmpBRON_ADR,BEST_ADR = all | from
object to objectOBJECT = IP adres | anyPOORT_NUM = poortnummerTCP_VLAG = SSTATEFUL = keep stateACTIEDe actie geeft aan wat er met het pakket gedaan moet
worden als het van toepassing is op de rest van de
filterregel. Iedere regel moet een
actie hebben. De volgende acties zijn mogelijk:block geeft aan dat het pakket
moet verdwijnen als de parameters van toepassing zijn het
het pakket.pass geeft aan dat het pakket
doorgelaten moet worden als de parameters van toepassing
zijn op het pakket.IN/UITEen verplicht onderdeel voor iedere filterregel waarin
expliciet wordt aangegeven op welke zijde van de in/uit
hij van toepassing is. Het volgende sleutelwoord moet
in of out
zijn, anders is de regel syntactisch onjuist.in betekent dat de regel van
toepassing is op inkomende pakketten.out betekent dat de regel van
toepassing is op inkomende pakketten.OPTIESDeze opties moeten in de volgorde waarin ze hier
beschreven staan gebruikt worden.log geeft aan dat het pakket naar het
ipl logboekbestand geschreven moeten
worden (zoals verderop beschreven staat in de paragraaf
Loggen) als de regel van toepassing is op
het pakket.quick geeft aan dat als een regel van
toepassing is, dat de laatste regel moet zijn die wordt
gecontroleerd, waardoor er een pad wordt
kortgesloten waardoor de volgende regels voor
dat pakket niet meer gecontroleerd worden. Deze optie is
voor de moderne regels eigenlijk verplicht.on geeft de interface aan die in de
parameters meegenomen moet worden. De namen van interfaces
kunnen getoond worden met &man.ifconfig.8;. Als deze optie
wordt gebruikt, kan een regel alleen van toepassing zijn als
het pakket door de aangegeven interface gaat in de richting
die is aangegeven
(in/out). Ook deze
optie is verplicht voor de moderne regels.Als een pakket wordt gelogd, dan wordt de kop van het
pakket weggeschreven naar het ipl
pakketloggende pseudo–apparaat. Direct na het
sleutelwoord log mogen de volgende opties
gebruikt worden (in de aangegeven volgorde):body geeft aan dat de eerste 128 bytes
van de inhoud van het pakket worden opgeslagen na de
kop.first; als het sleutelwoord
log samen met keep
state wordt gebruikt, wordt het aangeraden om
deze optie ook te gebruiken zodat alleen het pakket dat als
eerste in de sessie van toepassing was en niet ook alle
pakketten die daarna in de sessie volgens
keep state van toepassing
zijn.SELECTIEDe sleutelwoorden in deze paragraaf worden gebruikt om
attributen van het pakket dat wordt geïnspecteerd te
beschrijven om te bepalen of een regel wel of niet van
toepassing is. Er is een sleutelwoord
en er zijn subopties waarvan er
één of meer gekozen moeten worden. De
volgende attributen zijn beschikbaar voor het proces en
moeten in de aangegeven volgorde worden gebruikt:PROTOproto is het
sleutelwoord dat moet worden aangegeven samen met een van de
sleutelwoorden uit de subopties. De waarde geeft een bepaald
protocol aan dat van toepassing moet zijn. Ook deze optie is
verplicht voor de moderne regels.tcp/udp, tcp,
udp, icmp of ieder
ander protocol dat in /etc/protocols
staat wordt herkend en kan gebruikt worden. Het bijzondere
protocol sleutelwoord tcp/udp kan gebruikt
worden om zowel voor TCP als
UDP pakketten van toepassing te laten zijn. Het is
toegevoegd voor het gemak om vrijwel gelijke regels te
voorkomen.BRON_ADR/BEST_ADRHet sleutelwoord all is in feite
hetzelfde als from any to any zonder
overige parameters.from bron to dest; de
sleutelwoorden from en
to worden gebruikt om te testen op
IP adressen. In regels moet zowel een
bron als bestemmings IP adres
aangegeven worden. any is een
bijzonder sleutelwoord dat van toepassing is voor ieder
IP adres als in from any to
any of from 0.0.0.0/0 to any
of from any to 0.0.0.0/0 of
from 0.0.0.0 to any of from
any to 0.0.0.0.IP adressen mogen ingevoerd worden
in de vorm numeriek, door punten gescheiden
adres/maskerlengte of als een enkelvoudig
IP adres in de vorm numeriek, door
punten gescheiden.Het is vaak lastig om te komen tot een reeks adressen
in de vorm adres/masker. De volgende webpagina kan daar
wellicht bij helpen: .POORTAls in een regel op een poort wordt gecontroleerd, voor
bron- of bestemmingspoort of beiden, dan is dat alleen van
toepassing op TCP en UDP pakketten. Bij
het maken van poortvergelijkingen kunnen zowel de dienstnamen
uit /etc/services als een uit een
natuurlijk getal bestaand poortnummer ingesteld worden. Als
de poort onderdeel is van het from object
dan wordt het vergeleken met het poortnummer van de bron en
als het onderdeel is van het to object,
dan wordt het vergeleken met het poortnummer van de
bestemming. Het gebruik van het to object
is in de moderne regels verplicht en neemt de vorm aan van
from any to any port = 80.Poortvergelijkingen kunnen op verschillende manieren
ingesteld worden met een aantal verschillende operators.
Er kunnen ook reeksen van poorten ingesteld worden.port = of een van de volgende
operators: !=, <, >, <, >=, eq, ne,
lt, gt, le, ge.Reeksen van poorten worden met de volgende optie
aangegeven: port <> of
><.De volgende twee parameters die betrekking hebben op
bron en bestemming, zijn verplicht in de moderne
regels.TCP_VLAGVlaggen zijn alleen beschikbaar voor het filteren
van TCP. De letters staan voor
de mogelijke vlaggen die bekeken kunnen worden in de
kop van een TCP pakket.In de moderne regels wordt de optie flags
S gebruikt om het verzoek tot het starten van
een TCP sessie.STATEFULkeep state geeft aan dat in een regel
met pass voor alle pakketten die van
toepassing zijn stateful gefilterd moet worden.Deze optie is voor moderne regels verplicht.Stateful filterenIPFILTERstateful filterenMet stateful filteren wordt verkeer benaderd als een
uitwisseling van pakketten tussen twee kanten die een sessie
zijn. Als het is ingeschakeld, dan maakt het
mechamisme dynamisch interne
regels voor pakketten die in de sessie horen te volgen. Het
kan bekijken of de karakteristieken van de sessie tussen
verzender en ontvanger de juiste procedure volgen. Alle
pakketten die niet passen in de sessie, worden automatisch
geblokkeerd.keep state staat ook ICMP pakketten toe
die gerelateerd zijn aan een TCP of UDP
sessie. Dus als er een ICMP type 3 code 4 komt in antwoord op
websurfen, dat wordt toegestaan van binnen naar buiten door een
keep state regel, dan wordt dat toegelaten.
Pakketten waarvan IPF zeker is dat ze onderdeel zijn van de
sessie worden toegelaten, zelfs als ze van een ander protocol
zijn.Wat er gebeurt: pakketten die naar buiten gaan op de
interface die met internet is verbonden worden eerst
vergeleken met de dynamische staattabel. Als een pakket
voldoet aan de verwachting van het volgende pakket in de
sessie, dan mag het de firewall verlaten en wordt de
staattabel bijgewerkt. De overige pakketten worden
vergeleken met de set van regels voor uitgaand
verkeer.Pakketten die binnenkomen op de interface die met
internet is verbonden worden eerst vergeleken met de
dynamische staattabel. Als een pakket voldoet aan de
verwachting van het volgende pakket in de sessie, dan mag het
de firewall verlaten en wordt de staattabel bijgewerkt. De
overige pakketten worden vergeleken met de set van regels
voor uitgaand verkeer.Als de sessie wordt beëindigd wordt hij uit de
dynamische staattabel verwijderd.Met stateful filteren is het mogelijk om de focus te
leggen op het blokkeren of toestaan van nieuwe sessies.
Als een nieuwe sessie tot stand mag komen, dan worden alle
volgende pakketten automatisch doorgelaten en al het
vervalste verkeer wordt automatisch tegegehouden. Als een
nieuwe sessie wordt geweigerd, dan wordt geen enkel pakket
doorgelaten. Met stateful filteren zijn er uitgebreide
mogelijkheden voor onderzoek om bescherming te bieden tegen
de veelheid aan aanvallen die tegenwoorden door aanvallers
worden uitgevoerd.Voorbeeld van inclusieve regelsDe onderstaande regels zijn een voorbeeld van hoe een
erg veilige inclusieve firewall opgezet kan worden. Een
inclusieve firewall staat alleen diensten toe die passen bij
de pass regels en blokkeert al het
overige verkeer. Alle firewalls hebben tenminste twee
interfaces waarop regels van toepassing zijn om de firewall
te laten werken.Alle &unix; systemen en dus ook &os; zijn zo ontworpen
dat ze voor interne communicatie de interface
lo0 en IP adres
127.0.0.1 gebruiken. De
firewall moet dit interne verkeer gewoon doorgang laten
vinden.Voor de interface die is verbonden met het publieke
internet worden regels gemaakt waarmee sessies naar het
internet mogelijk gemaakt worden en toegang wordt gegeven
voor pakketten die uit die sessies terug komen. Dit kan
de PPP interface tun0 zijn of de
netwerkkaart die is verbonden met een xDSL of
kabelmodem.In gevallen dat er één of meer netwerkkaarten
zijn aangesloten op het LAN achter de firewall, dan moeten er
op de firewall regels zijn om het verkeer tussen die interfaces
vrije doorgang te geven.De regels worden opgedeeld in drie onderdelen: alle
interfaces met vrije doorgang, uitgaand op publieke
interfaces en inkomend op publieke interfaces.In iedere sectie moeten zo staan dat de regels die het
meest gebruikt worden vóór de regels die minder
vaak gebruikt worden staan. De laatste regel van een onderdeel
geeft aan dat al het overige verkeer op die interface in die
richting geblokkeerd en gelogd moet worden.In het onderdeel Uitgaand staan alleen regels met
pass die parameters bevatten om
individuele diensten beschikbaar te maken zodat er internet
toegang is. Al die regels moeten gebruik maken van
quick, on,
proto, port en
keep state. De regels met
proto tcp maken ook gebruik van
flag om te bekijken of het een pakket
betreft voor het opzetten van een sessie om de stateful
functionaliteit aan te sturen.In het onderdeel Inkomend staan alle regels voor het
blokkeren van ongewenste pakketten eerst om twee redenen.
Als eerste kan het zo zijn dat wat er wordt geblokkeerd
later toegestaan zou worden door regels die diensten
toestaan. De tweede reden is dat nu ongewenste pakketten
die vaak voor komen en die bij voorkeur niet in de
logboeken voor komen niet meer van toepassing zijn op de
laatste regel van het onderdeel waarin ze zouden worden
gelogd. Met de laatste regel van dit onderdeel worden
alle overige pakketten geblokkeerd en gelogd en ze kunnen
bewijsmateriaal zijn in een zaak tegen iemand die heeft
geprobeerd een systeem aan te vallen.Voor al het verkeer dat wordt geweigerd wordt geen
antwoord gestuurd. De pakketten verdwijnen gewoon. Zo weet
een aanvaller niet of een pakket het doelsysteem wel heeft
bereikt. Zo kan een aanvaller geen informatie verzamelen
over een systeem: hoe minder informatie er over een systeem
beschikbaar is, hoe meer tijd iemand erin moet steken voordat
er iets slechts gedaan kan worden. Zo wordt bijvoorbeeld
een inkomend verzoek van een nmap OS fingerprint
gelogd omdat een aanvaller zoiets zou proberen.We raden aan om als er logmeldingen komen van een regel
met log first het commando
ipfstat -hio uit te voeren om te
bekijken hoe vaak de regel van toepassing is geweest om te
kijken of de firewall overspoeld wordt, m.a.w. aangevallen
wordt.Als er pakketten gelogd worden waarvan de beheerder het
poortnummer niet herkent, dan is de functie van dat poortnummer
na te zoeken in /etc/services of op .Op de volgende link worden poortnummers van Trojans
beschreven: .De onderstaande set regels is een complete en erg veilige
inclusieve set met regels voor een firewall die de auteur
zelf heeft gebruikt op zijn syteem. Deze set met regels is
een aanrader en eenvoudig aan te passen door commentaar te
maken van een regel voor een dienst die niet gewenst
is.Logberichten die niet gewenst zijn, zijn uit te sluiten
door ze met een regel te blokkeren in het begin van het
onderdeel Inkomend.Voor de onderstaande regels dient de
dc0 interfacenaam in iedere regel
vervangen te worden door de interfacenaam van de netwerkkaart
in het systeem die met het publieke internet is verbonden.
Voor gebruikers van PPP zou dat tun0
zijn.Dit zou de inhoud van /etc/ipf.rules
kunnen zijn:#################################################################
# Geen beperkingen op de interface aan de LAN kant.
# Niet nodig als er geen LAN is.
################################################################
#pass out quick on xl0 all
#pass in quick on xl0 all
#################################################################
# Geen beperkingen op de loopback interface
#################################################################
pass in quick on lo0 all
pass out quick on lo0 all
#################################################################
# Interface aan het publieke internet (onderdeel Uitgaand).
# Inspecteer verzoeken om een sessie te starten van achter de
# firewall op het private netwerk of vanaf de server zelf naar
# het publieke internet.
#################################################################
# Geef toegang tot de DNS server van de ISP.
# xxx moet het IP adres van de DNS van de ISP zijn.
# Dupliceer deze regels als een ISP meedere DNS servers heeft.
# Haal het IP adres evt. uit /etc/resolv.conf.
pass out quick on dc0 proto tcp from any to xxx port = 53 flags S keep state
pass out quick on dc0 proto udp from any to xxx port = 53 keep state
# Geef toegang tot de DHCP server van de ISP voor kabel- en
# xDSL-netwerken. Deze regel is niet nodig als gebruik gemaakt worden
# van PPP naar het publieke internet. In dat geval kan de hele groep
# verwijderd worden. Gebruik de volgende regel en controleer het
# logboek voor het IP adres. Wijzig dan het IP adres in de regel
# commentaar hieronder en verwijder de eerste regel.
pass out log quick on dc0 proto udp from any to any port = 67 keep state
#pass out quick on dc0 proto udp from any to z.z.z.z port = 67 keep state
# Sta niet beveiligd www verkeer toe.
pass out quick on dc0 proto tcp from any to any port = 80 flags S keep state
# Sta beveiligd www verkeer over TLS SSL toe.
pass out quick on dc0 proto tcp from any to any port = 443 flags S keep state
# Sta het verzenden en ontvangen van e-mail toe.
pass out quick on dc0 proto tcp from any to any port = 110 flags S keep state
pass out quick on dc0 proto tcp from any to any port = 25 flags S keep state
# Sta Time toe.
pass out quick on dc0 proto tcp from any to any port = 37 flags S keep state
# Sta NNTP nieuws toe.
pass out quick on dc0 proto tcp from any to any port = 119 flags S keep state
# Sta lokale en LAN gebruiker toe niet beveiligde FTP te gebruiken
# (zowel passieve als actieve modes). Deze functie maakt gebruik van
# de in IPNAT ingebouwde FTP proxy die in het bestand met nat regels
# staat om dit in één regel te laten werken. Als er met
# pkg_add packages toegevoegd moeten kunnen worden op een systeem, dan
# is deze regel nodig.
pass out quick on dc0 proto tcp from any to any port = 21 flags S keep state
# Sta beveiligde FTP, Telnet en SCP toe.
# Deze functie maakt gebruik van SSH (secure shell)
pass out quick on dc0 proto tcp from any to any port = 22 flags S keep state
# Sta uitgaande niet beveiligde telnet toe.
pass out quick on dc0 proto tcp from any to any port = 23 flags S keep state
# Sta de &os; CVSUP functie toe.
pass out quick on dc0 proto tcp from any to any port = 5999 flags S keep state
# Sta ping toe naar het publieke internet.
pass out quick on dc0 proto icmp from any to any icmp–type 8 keep state
# Sta whois toe vanaf overal naar het publieke internet.
pass out quick on dc0 proto tcp from any to any port = 43 flags S keep state
# Blokkeer en log het eerste voorkomen van al het andere dat probeert
# buiten te komen. Deze regel dwingt de 'block all' logica af.
block out log first quick on dc0 all
#################################################################
# Interface aan het publieke internet (onderdeel Inkomend).
# Inspecteert pakketten die van het publieke internet komen
# met als bestemming de host zelf of het private netwerk.
#################################################################
# Blokkeer al het verkeer voor niet–routeerbare of gereserveerde
# adresreeksen.
block in quick on dc0 from 192.168.0.0/16 to any #RFC 1918 privaat IP
block in quick on dc0 from 172.16.0.0/12 to any #RFC 1918 privaat IP
block in quick on dc0 from 10.0.0.0/8 to any #RFC 1918 privaat IP
block in quick on dc0 from 127.0.0.0/8 to any #loopback
block in quick on dc0 from 0.0.0.0/8 to any #loopback
block in quick on dc0 from 169.254.0.0/16 to any #DHCP auto–config
block in quick on dc0 from 192.0.2.0/24 to any #gereserveerd voor documentatie
block in quick on dc0 from 204.152.64.0/23 to any #Sun cluster interconnect
-block in quick on dc0 from 224.0.0.0/3 to any #Klasse D & E multicast
+block in quick on dc0 from 224.0.0.0/3 to any #Klasse D & E multicast
##### Blokkeer wat vervelende dingen ############
# die niet in de logboeken moeten komen.
# Blokkeer flagmenten.
block in quick on dc0 all with frags
# Block korte TCP pakketten.
block in quick on dc0 proto tcp all with short
# Blokkeer source gerouteerde pakketten.
block in quick on dc0 all with opt lsrr
block in quick on dc0 all with opt ssrr
# Blokkeer pogingen voor nmap OS fingerprint.
# Log first occurrence of these so I can get their IP address
block in log first quick on dc0 proto tcp from any to any flags FUP
# Blokkeer alles met speciale opties.
block in quick on dc0 all with ipopts
# Blokkeer publieke pings.
block in quick on dc0 proto icmp all icmp–type 8
# Blokkeer ident.
block in quick on dc0 proto tcp from any to any port = 113
# Blokkeer alle Netbios diensten. 137=naam, 138=datagram, 139=sessie.
# Netbios is de &windows; bestandsdeeldienst.
# Blokkeer &windows; hosts2 name server verzoeken 81.
block in log first quick on dc0 proto tcp/udp from any to any port = 137
block in log first quick on dc0 proto tcp/udp from any to any port = 138
block in log first quick on dc0 proto tcp/udp from any to any port = 139
block in log first quick on dc0 proto tcp/udp from any to any port = 81
# Sta inkomend verkeer toe van de DHCP server van de ISP. Deze regel
# moet het IP adres van de DHCP server van de ISP bevatten omdat die
# de enige toegestane bron van dit type pakketten moet zijn. Alleen
# van belang voor kabel en xDSL instellingen. Deze regel is niet nodig
# voor PPP verbindingen naar het publieke internet. Dit is hetzelfde
# IP adres dat in het Uitgaande onderdeel is opgezocht.
pass in quick on dc0 proto udp from z.z.z.z to any port = 68 keep state
# Sta inkomend webverkeer toe omdat er een Apache server draait.
pass in quick on dc0 proto tcp from any to any port = 80 flags S keep state
# Sta niet beveiligde telnet sessie toe vanaf het publieke internet.
# Dit heeft het label niet veilig omdat gebruikersnaam en
# wachtwoord als platte tekst over internet gaan. Als er geen telnet
# server draait, hoeft deze regel niet actief te zijn.
#pass in quick on dc0 proto tcp from any to any port = 23 flags S keep state
# Sta beveiligde FTP, telnet en SCP toe vanaf internet.
# Deze functie gebruik SSH(secure shell).
pass in quick on dc0 proto tcp from any to any port = 22 flags S keep state
# Blokkeer en log het eerste voorkomen van al het andere dat probeert
# binnen te komen. Het loggen van alleen het eerste voorkomen stopt
# een ontzegging van dienst aanval die gericht is op het laten
# vollopen van de partitie waarop de logboeken staan. Deze regel dwingt
# de 'block all' logica af.
block in log first quick on dc0 all
################### Einde van de regels ###################################NATNATIP masqueradingNATnetwork address translationNATnetwerkadres vertalingNATNAT staat voor Network Address
Translation (netwerkadres vertaling). In &linux; heet dit IP
Masquerading. Een van de vele mogelijkheden die IPF
NAT kan bieden is het delen van
één IP adres op het publieke
internet met een LAN achter een firewall.De vraag zou kunnen rijzen waarom iemand dat zou willen.
ISP's wijzen normaliter namelijk dynamisch een
IP adres toe aan hun niet-commerciële
gebruikers. Dynamisch betekent hier dat het
IP adres iedere dat er wordt ingebeld of
dat de kabel- of xDSL-modem uit- en aangeschakeld wordt
anders kan zijn. Dit IP adres is het
adres waarmee een netwerkapparaat bekend is op het publieke
internet.Stel dat er vijf PC's in een huis staan en iedere
computer in dat huis heeft toegang tot internet nodig. Dan
zouden er bij een ISP vijf individuele accounts moeten zijn
en vijf telefoonlijnen om dat te realiseren.Met NAT is er maar één
account bij een ISP nodig en moeten er vier PC's met kabels
op een switch aangesloten waarop ook een &os; systeem is
aangesloten dat als gateway gaat opereren.
NAT zal automatisch de private LAN
IP adressen van alle PC's vertalen naar
een enkel publiek IP adres als de
pakketten de firewall naar het internet verlaten.NAT wordt vaak gebruikt zonder
toestemming of wetenschap van een ISP en in de meeste
gevallen is het, als het wordt ontdekt, grond voor een ISP
om de account op te zeggen. Commerciële gebruikers
betalen veel meer voor hun internet verbindingen en krijgen
vaak een reeks statische IP adressen die
nooit verandert. Een ISP verwacht en staat toe dat
commerciële gebruikers NAT inzetten
voor connectiviteit voor hun interne netwerk.Er is een speciale reeks van IP
adressen gereserveerd voor NAT op LANs.
Volgens RFC 1918 kunnen de volgende reeksen
IP adressen gebruikt worden op private
netwerken die nooit direct op het publieke internet
gerouteerd worden.Eerste IP–Laatste IP10.0.0.0–10.255.255.255172.16.0.0–172.31.255.255192.168.0.0–192.168.255.255IPNATNATen IPFILTERipnatNAT regels worden geladen met
ipnat. De NAT regels
worden vaak opgeslagen in /etc/ipnat.rules
. Meer details staan in &man.ipnat.1;.Bij het maken van wijzigingen aan de
NAT regels nadat NAT
gestart is, wordt aangeraden de wijziging aan het bestand met
regels te maken en daarna met ipnat
alle actieve NAT regels
te wissen. Daarna kunnen de regels uit het bestand weer als
volgt geladen worden:&prompt.root; ipnat -CF -f /etc/ipnat.rulesGebruiksgegevens over NAT kunnen
getoond worden met:&prompt.root; ipnat -sDe huidige inhoud van de NAT tabellen
kan getoond worden met:&prompt.root; ipnat -lMet het volgende commando kan de uitgebreide rapportage
worden ingeschakeld en dan wordt informatie over het
verwerken van verkeer en de actieve regels getoond:&prompt.root; ipnat –vIPNAT regelsNAT regels zijn erg flexibel en er
kunnen veel dingen mee gedaan worden om behoeften van
bedrijven en thuisgebruikers in te vullen.De syntaxis van de regels die hier wordt toegelicht is
vereenvoudigd om te passen bij een niet-commerciële
omgeving. De complete syntaxis is na te lezen in
&man.ipnat.5;.De syntaxis voor een NAT regel ziet er
ongeveer als volgt uit:
- map IFLAN_IP_REEKS –> PUBLIEK_ADRES
+ map IFLAN_IP_REEKS -> PUBLIEK_ADRESDe regel begint met het sleutelwoord
map.IF dient vervangen te worden
door de aanduiding van de externe interface.LAN_IP_REEKS is de reeks die
clients op een LAN gebruiken, meestal iets van 192.168.1.0/24.PUBLIEK_ADRES kan het publieke
IP adres zijn of een speciaal sleutelwoord
0.32, wat betekent dat het
IP adres van IF
gebruikt moet worden.Hoe NAT werktEen pakket komt vanaf het LAN aan bij de firewall en
heeft een publieke bestemming. Het wordt verwerkt door de
filterregels voor inkomend verkeer en daarna krijgt
NAT de kans zijn regels op het pakket toe
te passen. De regels worden van boven naar beneden toegepast
en de eerste regel die van toepassing is wint.
NAT controleert voor alle regels het
pakket op interfacenaam en bron IP adres.
Als de interfacenaam van een pakket past bij een
NAT regel dan wordt het bron
IP adres van dat pakket gecontroleerd, dat
is dus een IP adres op het private LAN,
om te bekijken of het valt in de reeks die is opgegeven aan
de linkerkant van een NAT regel. Als ook
dat klopt, dan wordt het bron IP adres van
het pakket vervangen (rewritten) door een
publiek IP adres dat verkregen kan zijn
met het sleutelwoord 0.32.
NAT werkt dan zijn interne
NAT tabel bij, zodat als er een pakket uit
die sessie terugkomt van het publieke internet, dat pakket
weer gepast kan worden bij het originele private
IP adres en door de firewallregels
gefilterd kan worden om daarna, als dat mag, naar een client
gestuurd te worden.IPNAT inschakelenVoor IPNAT zijn de onderstaande
instellingen in /etc/rc.conf
beschikbaar.Om verkeer tussen interfaces te kunnen routeren:gateway_enable="YES"Om IPNAT automatisch te starten:ipnat_enable="YES"Om aan te geven waar de IPNAT regels
staan:ipnat_rules="/etc/ipnat.rules"NAT voor een groot LANVoor netwerken met grote aantallen PC's of netwerken
met meerdere LAN's kan het een probleem worden om al die
private IP adressen met één
enkel publiek IP adres te vervangen,
omdat vaak dezelfde poortnummers gebruikt worden. Er zijn
twee manieren om dit probleem op te lossen.Aangeven welke poorten te gebruikenEen normale regel voor NAT ziet er als volgt uit:
- map dc0 192.168.1.0/24 –> 0.32
+ map dc0 192.168.1.0/24 -> 0.32Met de bovenstaande regel blijft de bronpoort
ongewijzigd als het pakket door IPNAT
gaat. Door gebruik te maken van het sleutelwoord
portmap kan IPNAT
ingesteld worden om alleen bronpoorten in de aangegeven reeks
te gebruiken. Zo stelt de onderstaande regel in dat
IPNAT de bronpoort aanpast naar een
poortnummer dat in de aangegeven reeks valt:
- map dc0 192.168.1.0/24 –> 0.32 portmap tcp/udp 20000:60000
+ map dc0 192.168.1.0/24 -> 0.32 portmap tcp/udp 20000:60000Het kan nog eenvoudiger door gebruik te maken van het
sleutelwoord auto zodat
IPNAT zelf bepaalt welke poorten gebruikt
kunnen worden:
- map dc0 192.168.1.0/24 –> 0.32 portmap tcp/udp auto
+ map dc0 192.168.1.0/24 -> 0.32 portmap tcp/udp autoMeerdere publieke adressen gebruikenIn grote netwerken komt er een moment waarop er gewoon
te veel adressen zijn om te bedienen met één
IP adres. De volgende regel vertaalt
alle verbindingen naar 204.134.75.1:
- map dc0 192.168.1.0/24 –> 204.134.75.1
+ map dc0 192.168.1.0/24 -> 204.134.75.1Dit kan gewijzigd worden naar een reeks addressen met
de volgende regel:
- map dc0 192.168.1.0/24 –> 204.134.75.1–10
+ map dc0 192.168.1.0/24 -> 204.134.75.1–10Er kan ook een subnet aangegeven worden met een CIDR
notatie als in het volgende voorbeeld:
- map dc0 192.168.1.0/24 –> 204.134.75.0/24
+ map dc0 192.168.1.0/24 -> 204.134.75.0/24Poorten omleidenHet is erg gebruikelijk om een webserver, mailserver,
database server en DNS server op verschillende computers
op een LAN te draaien. Het uitgaande verkeer van die
servers kan dan met NAT afgehandeld
worden, maar er moet ook ingesteld worden dat inkomend
verkeer bij de juiste computer terecht komt.
IPNAT gebruikt daarvoor de opties in
NAT waarmee verkeer omgeleid kan worden.
Als bijvoorbeeld een webserver op 10.0.10.25 draait en het publieke
IP adres zou 20.20.20.5 zijn, dan zou dit mogelijk
zijn met één van de volgende twee regels:
- rdr dc0 20.20.20.5/32 port 80 -> 10.0.10.25 port 80
-rdr dc0 0/32 port 80 -> 10.0.10.25 port 80
+ rdr dc0 20.20.20.5/32 port 80 -> 10.0.10.25 port 80
+rdr dc0 0/32 port 80 -> 10.0.10.25 port 80Voor een DNS server op een LAN die ook vanuit internet
bereikbaar met zijn en die draait op 10.0.10.33 zou de regel er als
volgt uit zien:
- rdr dc0 20.20.20.5/32 port 53 -> 10.0.10.33 port 53 udp
+ rdr dc0 20.20.20.5/32 port 53 -> 10.0.10.33 port 53 udpFTP en NATFTP is dinosaurus uit het tijdperk van voor internet was
zoals het nu is, toen onderzoeksinstellingen met elkaar
verbonden waren via huurlijnen en FTP de aangewezen methode
was om bestanden met elkaar uit te wisselen. Maar bij het
gebruik van FTP worden gebruikersnaam en wachtwoord als
platte tekst verzonden en het protocol is nooit aangepast.
FTP is er in twee smaken: actief en passief. Het verschil
zit 'm in hoe het datakanaal wordt opgezet. De passieve
variant is veiliger voor een gebruiker omdat bij deze variant
beide communicatiekanalen door de client zelf worden opgezet.
Op de volgende link zijn details over FTP na te lezen:
.IPNAT regelsIPNAT heeft een een speciale FTP proxy
ingebouwd die kan worden ingeschakeld met een
NAT map regel. Die kan
al het uitgaande verkeer monitoren wat betreft
opstartverzoeken voor sessies voor actieve en passieve FTP en
dynamisch tijdelijke filterregels maken die alleen het
poortnummer dat echt in gebruik is voor het datakanaal
doorlaten. Hiermee wordt een veiligheidsrisico dat normaal
gepaard gaat met FTP, namelijk het toestaan van grote reeksen
hoge poortnummers, weggenomen.De volgende regel handelt al het FTP verkeer van het
LAN af:
- map dc0 10.0.10.0/29 –> 0/32 proxy port 21 ftp/tcp
+ map dc0 10.0.10.0/29 -> 0/32 proxy port 21 ftp/tcpDe regel hieronder handelt het FTP verkeer van de
gateway zelf af:
- map dc0 0.0.0.0/0 –> 0/32 proxy port 21 ftp/tcp
+ map dc0 0.0.0.0/0 -> 0/32 proxy port 21 ftp/tcpDeze laatste regel handelt al het niet–FTP
verkeer voor het LAN af:
- map dc0 10.0.10.0/29 –> 0/32
+ map dc0 10.0.10.0/29 -> 0/32De FTP map regel hoort voor de
normale regels te staan. Alle pakketten worden als eerste
vergeleken met de eerste regel en zo verder. Eerst wordt
gekeken over de interfacenaam overeenkomt, daarna het
bron IP adres van het LAN en dan of het
een FTP pakket is. Als dat allemaal klopt, dan maakt de
speciale FTP proxy een tijdelijke filterregel die de
pakketten uit de FTP sessie naar binnen en buiten doorlaat
en ook NAT toepast op de FTP pakketten. Alle pakketten
van het LAN die niet van het protocoltype FTP zijn en dus
niet bij de eerste regel passen, worden tegen de derde
regel gehouden die van toepassing is vanwege de interface
en bron IP adres, zodat er dan
NAT op toegepast wordt.IPNAT FTP filterregelsAls de NAT FTP proxy wordt gebruikt
is er maar één filterregel voor FTP
nodig. Zonder de FTP proxy zouden er drie regels nodig
zijn:# Sta LAN client toe te FTP-en naar internet
# Actieve en passieve modes
pass out quick on rl0 proto tcp from any to any port = 21 flags S keep state
# Sta opzetten van het datakanaal voor passieve mode toe voor hoge poorten
-pass out quick on rl0 proto tcp from any to any port > 1024 flags S keep state
+pass out quick on rl0 proto tcp from any to any port > 1024 flags S keep state
# Laat het datakanaal van de FTP server binnen voor actieve mode
pass in quick on rl0 proto tcp from any to any port = 20 flags S keep stateFTP NAT proxy bugVanaf &os; 4.9, waar IPFILTER versie 3.4.31 bij zit,
werkt de FTP proxy volgens de documentatie tot de sessie
wordt afgesloten. Als dit wordt gedaan dan worden
pakketten die terug komen van de FTP server geblokkeerd en
gelogd als inkomend op poort 21. De NAT
FTP proxy lijkt zijn tijdelijke regels te vroeg te
verwijderen, nog voordat het antwoord van de FTP server
dat de verbinding gesloten kan worden is ontvangen. Er is
een PR gepost op de ipf mailinglijst.Hoewel dit niet opgelost kan worden, is het mogelijk
een regel in te stellen waarmee de ongewilde logboekregels
niet ontstaan. Als alternatief is het mogelijk ze gewoon
te negeren. De meeste mensen maken niet zoveel gebruik van
uitgaande FTP.block in quick on rl0 proto tcp from any to any port = 21IPFWfirewallIPFWAan dit onderdeel wordt nog gewerkt. De inhoud is wellicht
niet altijd volledig en juist.IPFIREWALL (IPFW) is een firewall die binnen &os; wordt
ontwikkeld en onderhouden door vrijwilligers, leden van de
staf. Het maakt gebruik van verouderde staatloze regels en een
verouderde techniek om te realiseren wat eenvoudige stateful
logica zou kunnen heten.De set voorbeeldregels van IPFW (die in
/etc/rc.firewall staat) uit de standaard
&os; installatie is redelijk eenvoudig en niet voorbereid om
zonder wijzigingen gebruikt te worden. Het voorbeeld maakt geen
gebruik van stateful filteren, wat een voordeel is in de meeste
situaties. Daarom worden deze regels niet als basis gebruikt in
dit onderdeel.De staatloze syntaxis van IPFW is krachtig door de
technisch geavanceerde mogelijkheden van de regelsyntaxis die
de kennis van de gemiddelde gebruiker van firewalls ver
overstijgt. IPFW is gericht op de professionele gebruiker
of de gevorderde thuisgebruiker die hoge eisen stelt aan de
wijze waarop er met pakketten wordt omgegaan. Voordat de
kracht van de IPFW regels echt ingezet kan worden, moet de
gebruiker veel weten over de verschillende protocollen en
de wijze waarop pakketten in elkaar zitten. Het tot op dat
niveau behandelen van stof valt buiten de doelstellingen van
dit boek.IPFW bestaat uit zeven componenten: de verwerkingseenheid
voor de firewallregels, verantwoording, loggen, regels met
divert (omleiden) waarmee
NAT gebruikt kan worden en de speciale
gevorderde mogelijkheden voor bandbreedte management DUMMYNET,
de bridge mogelijkheden en de ipstealth mogelijkheden.IPFW inschakelenIPFWinschakelenIPFW zit bij de basisinstallatie van &os; als een losse
in run-time laadbare module. Het systeem laadt de kernel
module dynamisch als in rc.conffirewall_enable="YES" staat. IPFW hoeft
niet in de &os; kernel gecompileerd te worden, tenzij het
nodig is dat NAT beschikbaar is.Na het rebooten van een systeem met
firewall_enable="YES" in
rc.conf is het volgende bericht op het
scherm te zien tijdens het booten:ipfw2 initialized, divert disabled, rule-based forwarding disabled, default to deny, logging disabledIn de laadbare module zit de mogelijkheid om te loggen
gecompileerd. In /etc/sysctl.conf kan een
instelling gemaakt worden waardoor loggen na volgende herstarts
wordt ingeschakeld:net.inet.ip.fw.verbose_limit=5KerneloptieskerneloptiesIPFIREWALLkerneloptiesIPFIREWALL_VERBOSEkerneloptiesIPFIREWALL_VERBOSE_LIMITIPFWkerneloptiesHet is niet verplicht om IPFW in te schakelen door het
mee te compileren in de &os; kernel, tenzij de
NAT functionaliteit beschikbaar moet zijn.
Dit wordt alleen beschreven als achtergrondinformatie.
Door IPFW in de kernel te compileren wordt de laadbare module
niet gebruikt.options IPFIREWALLMet IPFIREWALL wordt IPFW ingeschakeld
als deel van de kernel.options IPFIREWALL_VERBOSEMet IPFIREWALL_VERBOSE wordt het
loggen van pakketten die worden verwerkt met IPFW mogelijk
als het sleutelwoord in een regel
staat.options IPFIREWALL_VERBOSE_LIMIT=5Limiteert het aantal pakketten dat per regel wordt gelogd
via &man.syslogd.8;. Deze optie kan gebruikt worden in
vijandige omgevingen waar de activiteit van een firewall gelogd
moet worden. Hierdoor kan een mogelijke ontzegging van dienst
aanval door syslog flooding voorkomen worden.kerneloptiesIPFIREWALL_DEFAULT_TO_ACCEPToptions IPFIREWALL_DEFAULT_TO_ACCEPTMet IPFIREWALL_DEFAULT_TO_ACCEPT wordt
standaard alles door de firewall doorgelaten. Dit wordt
aangeraden als iemand voor het eerst een firewall
opzet.options IPV6FIREWALL
options IPV6FIREWALL_VERBOSE
options IPV6FIREWALL_VERBOSE_LIMIT
options IPV6FIREWALL_DEFAULT_TO_ACCEPTVoor de bovenstaande opties geldt dat ze hetzelfde doen
als de opties voor IPv4, alleen doen ze dat voor IPv6. Als
IPv6 niet wordt gebruikt, dan wordt aangeraden de optie
IPV6FIREWALL te gebruiken zonder regels,
zodat al het IPv6 verkeer wordt geblokkeerd.kerneloptiesIPDIVERToptions IPDIVERTMet IPDIVERT wordt de
NAT functionaliteit ingeschakeld.Als IPFIREWALL_DEFAULT_TO_ACCEPT
niet wordt gebruikt of de regels van de firewall staan geen
verkeer toe, dan worden alle pakketten van en naar de
machine waar dit voor geldt geblokkeerd./etc/rc.conf optiesAls IPFW niet in de kernel is gecompileerd, dan moet het
geladen worden met de volgende instellingen in
/etc/rc.conf:firewall_enable="YES"Om de firewallregels uit een bestand te laden kan de
volgende instelling gebruikt worden:firewall_script="/etc/ipfw.rules"Om loggen in te schakelen:firewall_logging="YES"Het enige dat de variabele
firewall_logging doet is de sysctlt
variabele net.inet.ip.fw.verbose op de
waarde 1 zetten (zie ). Er is geen variabele in
rc.conf om logboeklimieten in te
stellen, maar dat kan ingesteld worden via een sysctl
variabele, handmatig of via het bestand
/etc/sysctl.conf:net.inet.ip.fw.verbose_limit=5Als de machine in kwestie een gateway is, dus Network
Address Translation (NAT) diensten levert via &man.natd.8;, dan
staat in meer informatie over de
benodigde installingen voor
/etc/rc.conf.Het commando IPFWipfwipfw wordt gebruikt om met de hand
regels toe te voegen of te verwijderen als IPFW actief is.
Het probleem met deze methode is dat, als het systeem down
wordt gebracht, alle regels die gewijzigd of verwijderd zijn
verloren gaan. Door alle regels in een bestand op te nemen
dat bij het booten wordt geladen of door het bestand waarin
de wijzigingen zijn gemaakt als een machine draait te laden
bestaat die probleem niet.Met ipfw kunnen de actieve regels van
de firewall op het scherm getoond worden. De
verantwoordingsmogelijkeden van &man.ipfw.8; maken
dynamisch tellers aan voor iedere regel en houden die bij
voor alle pakketten die van toepassing zijn op die regel.
Dit biedt ook een mogelijkheid om een regel te testen.Om alle regels in volgorde te tonen:&prompt.root; ipfw listOm alle regels te tonen met de tijd waarop deze voor het
laatst van toepassing was:&prompt.root; ipfw –t listHet volgende commando kan gebruikt worden om de
verantwoordingsinformatie, pakettellers en de regel zelf te
tonen. De eerste kolom is het regelnummer met daarachter
het aantal keren dat de regel van toepassing was voor
inkomend verkeer, gevolgd door het aantal keren dat de regel
van toepassing was voor uitgaand verkeer. Als laatste wordt
de regel zelf getoond:&prompt.root; ipfw –a listOok kunnen onder de statische regels de dynamische regels
getoond worden:&prompt.root; ipfw –d listEn de dynamische regels die verlopen zijn:&prompt.root; ipfw –d –e listDe tellers op nul gesteld worden:&prompt.root; ipfw zeroAlleen de tellers voor regel
NUM op nul stellen:&prompt.root; ipfw zero NUMSets van IPFW regelsEen set regels is een groep &man.ipfw.8; regels die is
gemaakt om pakketten toe te staan of te blokkeren op basis
van de eigenschappen van dat pakket. De bi-directionele
uitwisseling van pakketten tussen hosts bestaat uit een
gesprek dat een sessie heet. De set van firewallregels
beoordeelt pakketten twee keer: als het aankomt van de host
op het publieke internet en als het de host weer verlaat op
de weg terug naar de host op het publieke internet. Iedere
TCP/IP dienst als
telnet, www, mail, etc, heeft zijn eigen protocol, bron
IP adres en bestemmings
IP adres of de bron- en bestemmingspoort.
Deze attributen vormen de basis voor het opstellen van
regels waarmee diensten toegelaten of geblokkeerd kunnen
worden.IPFWvolgorde regelverwerkingAls een pakket de firewall binnenkomt wordt het
vergeleken met de eerste regel in de set regels en zo gaat
dat voor iedere regel vanaf boven tot beneden. Als een
regel van toepassing is op een pakket, dan wordt het
actieveld van de regel uitgevoerd. Dit wordt de
de eerst passende regel wint zoekmethode
genoemd. Als een pakket bij geen enkele regel past, dan
wordt de standaardregel 65535 toegepast, die alle pakketten
weigert zonder een antwoord terug te sturen naar de
verzender.Het zoeken gaat door na regels met
count, skipto en
tee.De instructies in dit onderdeel zijn gebaseerd op regels
die gebruik maken van de stateful opties keep
state, limit,
in/out en
via. Dit is het raamwerk waarmee een
set van inclusieve firewallregels wordt samengesteld.Een inclusieve firewall staat alleen diensten toe die
voldoen aan de regels. Op die manier kan er in de hand
gehouden worden welke diensten van binnen de firewall naar
buiten mogen en welke diensten op het private netwerk vanaf
het internet bereikbaar zijn. Al het andere verkeer wordt
vanuit het ontwerp standaard geblokkeerd en gelogd.
Inclusieve firewalls zijn veel veiliger dan exclusieve
firewalls. Het is ook de enige wijze voor de opzet van een
firewall die in dit hoofdstuk wordt behandeld.Er wordt aangeraden voorzichtig te zijn als er vanaf
het netwerk aan de firewallregels wordt gewerkt omdat het
gevaar bestaat buitengesloten te worden.RegelsyntaxisIPFWregelsyntaxisDe regelsyntaxis zoals hier toegelicht is vereenvoudigd
door alleen te tonen wat nodig is om een standaard
inclusieve set met firewallregels te maken. De complete
beschijving van alle mogelijkheden staat in
&man.ipfw.8;.Regels bevatten sleutelwoorden die in een bepaalde
volgorde van links naar rechts op een regel horen te staan.
Sleutelwoorden worden vet weergegeven. Sommige
sleutelwoorden hebben subopties die zelf ook weer
sleutelwoorden hebben die ook weer subopties kunnen
hebben.Het karakter # wordt gebruikt om
het begin van een opmerking te markeren en kan zowel op een
eigen regel als achter een firewallregel staan. Lege
regels worden genegeerd.CMD REGEL_NUMMER ACTIE LOGGEN SELECTIE
STATEFULCMDIedere regel moet beginnen met
add om hem toe te voegen aan de
tabel met regels.REGEL_NUMMERIedere regel moet een regelnummer hebben.ACTIEBij een regel kunnen één of meer acties
horen die worden uitgevoerd als een regel geldt voor een
pakket.allow | accept | pass |
permitDeze opties betekenen allemaal hetzelfde: als de
regel geldt voor een pakket, laat dat pakket dan door en
stop met het zoeken naar geldende regels.check–stateVergelijkt het pakket met de tabel met dynamische
regels. Als het erin staat, dan wordt de actie van
de dynamisch door deze regel gemaakte regel uitgevoerd.
Anders wordt er verder gezocht door de regels. Een
regel met check–state heeft
geen selectiecriteria. Als er geen regel met
check–state in de set met
regels staat, dan wordt de tabel met dynamische regels
bij het eerste voorkomen van
keep–state of
limit gecontroleerd.deny | dropDeze opties betekenen hetzelfde: als de regel geldt
voor een pakket, blokkeer dat pakket dan en stop met het
zoeken naar geldende regels.Loggenlog of
logamountAls een regel met het sleutelwoord
log van toepassing is op een
pakket, dan wordt er een bericht naar &man.syslogd.8;
geschreven met de facilitynaam SECURITY. Er wordt alleen
een bericht geschreven als het aantal voor die regel
gelogde pakketten niet groter is dan de instelling
logamount. Als
logamount niet is ingesteld, dan
wordt de limiet uit de &man.sysctl.8; variabele
net.inet.ip.fw.verbose_limit gehaald. In beide gevallen
bestaat er in het geval de waarde nul is geen limiet.
Als de limiet is bereikt, dan kan het loggen weer
ingeschakeld worden door de teller voor het loggen weer
op nul te stlelen voor die regel met
ipfwzero.Er wordt gelogd als een pakket zeker past bij een
regel, maar voordat de actie (bijvoorbeeld
accept of
deny) op een pakket wordt
toegepast. Uiteindelijk bepaalt de gebruiker zelf voor
welke regels loggen wordt ingeschakeld.SelectieDe sleutelwoorden in deze paragraaf beschrijven de
attributen van een pakket die bekeken worden bij het
bepalen of een regel wel of niet op een pakket van
toepassing is. De attributen waarop gecontroleerd kan
worden moeten in de beschreven volgorde gebruikt
worden.udp | tcp | icmpNaast de hierboven aangegeven protocollen kunnen alle
in /etc/protocols beschreven
protocollen gebruikt worden. De waarde die wordt
opgegeven is het protocol dat van toepassing moet zijn.
Dit attribuut is verpicht.from bron to bestDe sleutelwoorden from en
to worden gebruikt om te bekijken
of een regel van toepassing is op IP
adressen. Een regel moet zowel bron- als
bestemmingsadressen bevatten. any is
een bijzonder sleutelwoord dat van toepassing is op alle
IP adressen. me is
een bijzonder sleutelwoord dat van toepassing is op alle
IP adressen die ingesteld zijn op
interfaces van een &os; systeem. Zo kan dit onderdeel dus
bijvoorbeeld de volgende vormen aannemen:
from me to any,
from any to me,
from 0.0.0.0/0 to any,
from any to 0.0.0.0/0,
from 0.0.0.0 to any,
from any to 0.0.0.0,
from me to 0.0.0.0.
IP adressen mogen ingevoerd worden
in de vorm numeriek, door punten gescheiden
adres/maskerlengte of als een enkelvoudig
IP adres in de vorm numeriek, door
punten gescheiden. De volgende link kan hulp verschaffen
bij het schrijven van IP adressen in
de vorm adres/maskerlengte: Dit attribuut
is verpicht.poortnummerWordt gebruikt voor protocollen die poortnummers
ondersteunen (als TCP en UDP). Het
gebruik van een poortnummer is verplicht. Er mogen ook
dienstnamen uit /etc/services
gebruikt worden in plaats van nummers.in | outIs op respectievelijk inkomende of uitgaande
pakketten van toepassing. De sleutelwoorden
in of out
zijn verplicht in een regel.via IFDeze parameter geeft aan op welke interface de regel
van toepassing is, waarbij IF de
exacte naam van de bedoelde interface is.setupDit is een verplicht sleutelwoord waarmee wordt
aangegeven dat er gezocht wordt naar een pakket met het
verzoek tot het opstarten van een TCP
sessie.keep–stateDit is een verplicht sleutelwoord. Als er een pakket
op een regel met keep–state
van toepassing is, dan wordt er door de firewall een
dynamische regel gemaakt die bi–directioneel
verkeer zal toestaan tussen bron en bestemming en de
bijbehorende poorten voor hetzelfde protocol.limit {bron–adr | bron–poort |
best–adr | best–poort}De firewall staat maar N
verbindingen toe met dezelfde groep parameters uit een
regel. Er kunnen één of meer van de
parameters bron- of bestemmingsadres en bron- en
bestemmingspoort gebruikt worden.
limit en
keep–state kunnen niet in
dezelfde regel gebruikt worden.
limit geeft dezelfde mogelijkheden
als keep–state en voegt daar
zijn eigen mogelijkheden aan toe.Regeloptie statefulIPFWstateful filterenBij stateful filteren wordt verkeer bekeken als
bi–directioneel verkeer dat samen een sessie vormt.
Het heeft de mogelijkheid om te bepalen of de sessie
tussen de zender en de ontvanger op de juiste wijze
voortgaat. Alle pakketten die niet precies in de
verwachting van een sessie passen worden automatisch als
fout geblokkeerd.check–state wordt gebruikt
om aan te geven waar IPFW regels tegen de mogelijkheden
voor dynamische regels gehouden moeten worden. Als er
een passende regel bij een pakket wordt gevonden, dan kan
dat pakket de firewall verlaten en wordt een nieuwe regel
gemaakt voor het volgende pakket dat wordt verwacht in de
sessie. Als er geen regel van toepassing is op het pakket,
dan wordt de volgende regel in de groep regels
getest.De mogelijkheden voor dynamische regels zijn kwetsbaar
voor een aanval die SYN–flood heet, waarmee wordt
geprobeerd een zeer groot aantal regels aan te laten maken.
Om deze aanval tegen te gaan, is er vanaf &os; versie 4.5
de optie limit beschikbaar. Met deze
optie kan het maximaal aantal simultane sessies geregeld
worden op basis van bron en bestemmingsvelden. Als het
aantal sessies gelijk aan het maximale aantal sessies is,
wordt een pakket voor een nieuwe sessie geweigerd.Firewallberichten loggenIPFWloggenDe voordelen van loggen zijn duidelijk. Het biedt de
mogelijkheid om na het feit informatie na te zien als:
welke pakketten heeft de firewall laten vallen, waar kwamen
ze vandaan en waar gingen ze heen. Dit zijn allemaal
voordelen als het gaat om uitvinden waar een aanvaller
vandaan komt en wat hij heeft geprobeerd.Zelfs als logging is ingeschakeld logt IPFW nog niets
uit zichzelf. De beheerder van de firewall beslist welke
actieve regels iets weg moeten schrijven door het
sleutelwoord log aan die regels toe
te voegen. Gewoonlijk worden alleen
deny regels gelogd. Dit geldt
bijvoorbeeld voor de deny regel
voor inkomende ICMP pings. Het is
gebruikelijk om de standaard ipfw regel
te dupliceren, daar log in op te
nemen, en deze als laatste in de set met regels te
plaatsen. Zo zijn alle pakketten te zien die niet voldeden
aan ook maar één regel.Loggen heeft ook mogelijke nadelen. Het is mogelijk om
te veel te loggen en dan om te komen in logboekgegevens
die uiteindelijk een schijf kunnen vullen. Een DoS aanval
om een schijf met logs te vullen is een van de oudst bekende
typen DoS aanvallen. Logberichten van de firewall worden
niet alleen naar &man.syslogd.8; geschreven, maar ook op
het root console getoond waar ze snel
erg vervelend kunnen worden.De kerneloptie
IPFIREWALL_VERBOSE_LIMIT=5 beperkt het
aantal opeenvolgende berichten dat naar &man.syslogd.8;
wordt geschreven voor één specifieke regel.
Als deze optie is ingeschakeld, worden in dit geval
maximaal vijf berichten voor dezelfde regel gemeld. Als er
meer berichten op dezelfde regel zouden zijn, zou dat als
volgt aan &man.syslogd.8; gemeld worden:last message repeated 45 timesStandaard worden alle gelogde pakketten weggeschreven
naar /var/log/security, wat is
ingesteld in /etc/syslog.conf.Regelscript bouwenDe meeste ervaren gebruikers van IPFW maken een bestand
waarin de regels staan en stellen dat zo op dat het als
script uitgevoerd kan worden. Het grootste voordeel van
deze methode is dat de firewallregels allemaal vervangen
kunnen worden zonder dat het systeem geboot moet worden.
Deze methode is ook erg geschikt voor het testen van regels
omdat de procedure zo vaak als nodig uitgevoerd kan worden.
Omdat het een script is, kan er gebruik gemaakt worden van
substitutie zodat veel gebruikte waarden verduidelijkt
kunnen worden. In het volgende voorbeeld wordt hier
gebruik van gemaakt.De syntaxis die in het script wordt gebruikt is
compatibel met de shells sh,
csh en tcsh. Velden
waarvoor substitutie van toepassing is worden vooraf gegaan
door het dollarteken $. Definities worden niet
vooraf gegaan door het voorvoegsel $. De waarden
van een definitie moet omsloten worden door "dubbele
aanhalingstekens".Een bestand met regels kan als volgt beginnen:############### begin voorbeeldscript ipfw regels ##############
#
ipfw –q –f flush # Verwijder alle bestaande regels.
# Stel standaarden in.
oif="tun0" # uitgaande interface.
odns="192.0.2.11" # IP adres DNS server ISP.
cmd="ipfw –q add " # Voorvoegsel voor regel.
ks="keep–state" # Te lui om iedere keer in te typen.
$cmd 00500 check–state
$cmd 00502 deny all from any to any frag
$cmd 00501 deny tcp from any to any established
$cmd 00600 allow tcp from any to any 80 out via $oif setup $ks
$cmd 00610 allow tcp from any to $odns 53 out via $oif setup $ks
$cmd 00611 allow udp from any to $odns 53 out via $oif $ks
################### einde voorbeeldscript ipfw regels ###########Dat is alles. De feitelijke functie van de regels is
in dit voorbeeld van ondergeschikt belang. Dit was slechts
een voorbeeld om het gebruik van substitutie te
illustreren.Als het bovenstaande voorbeeld het de inhoud van
/etc/ipfw.rules was, dan kon het
herladen worden met het volgende commando:&prompt.root; sh /etc/ipfw.rules/etc/ipfw.rules zou overal kunnen
staan met iedere gewenste naam.Wat in het bovenstaande voorbeeld met een bestand is
gerealiseerd, kan ook met de hand:&prompt.root; ipfw –q –f flush
&prompt.root; ipfw –q add 00500 check–state
&prompt.root; ipfw –q add 00502 deny all from any to any frag
&prompt.root; ipfw –q add 00501 deny tcp from any to any established
&prompt.root; ipfw –q add 00600 allow tcp from any to any 80 out via tun0 setup keep–state
&prompt.root; ipfw –q add 00610 allow tcp from any to 192.0.2.11 53 out via tun0 setup keep–state
&prompt.root; ipfw –q add 00611 allow udp from any to 192.0.2.11 53 out via tun0 keep–stateSet met stateful regelsDe volgende set met regels, waarin geen gebruik gemaakt
wordt van NAT, is een voorbeeld van hoe
een erg veilige inclusieve firewall kan worden opgezet.
Een inclusieve firewall laat alleen diensten toe waarvoor
pass regels van toepassing zijn en
blokkeert al het andere verkeer. Alle firewalls hebben
tenminste twee interfaces waarvoor regels moeten zijn die
de firewall in staat stellen zijn werk te doen.Alle &unix; systemen en dus ook &os; zijn zo ontworpen
dat ze voor interne communicatie de interface
lo0 en IP adres
127.0.0.1 gebruiken. De
firewall moet dit interne verkeer gewoon doorgang laten
vinden.Voor de interface die is verbonden met het publieke
internet worden regels gemaakt waarmee sessies naar het
internet mogelijk gemaakt worden en toegang wordt gegeven
voor pakketten die uit die sessies terug komen. Dit kan
de PPP interface tun0 zijn of de
netwerkkaart die is verbonden met een xDSL of
kabelmodem.In gevallen dat er meer dan één
netwerkkaart is aangesloten op het private netwerk achter
de firewall, moeten er op de firewall regels zijn om het
verkeer tussen die interfaces vrije doorgang te
geven.De regels worden opgedeeld in drie onderdelen: alle
interfaces met vrije doorgang, uitgaand op publieke
interfaces en inkomend op publieke interfaces.De volgorde van de regels in iedere sectie voor
publieke interfaces moet zo zijn dat de regels die het
meest gebruikt worden vóór de regels staan
die minder vaak gebruikt worden. De laatste regel van een
onderdeel geeft aan dat al het overige verkeer op die
interface in die richting geblokkeerd en gelogd moet
worden.In het onderdeel Uitgaand staan alleen regels met
allow die parameters bevatten om
individuele diensten beschikbaar te maken zodat er internet
toegang is. Al die regels moeten gebruik maken van
proto, port,
in/out, via
en keep-state. De regels met
proto tcp maken ook gebruik van
setup om te bekijken of het een
pakket betreft voor het opzetten van een sessie om de
stateful functionaliteit aan te sturen.In het onderdeel Inkomend staan alle regels voor het
blokkeren van ongewenste pakketten eerst om twee redenen.
Als eerste kan het zo zijn dat wat er wordt geblokkeerd
later toegestaan zou worden door regels die diensten
toestaan. De tweede reden is dat nu ongewenste pakketten
die vaak voorkomen en die bij voorkeur niet in de logboeken
voorkomen niet meer van toepassing zijn op de laatste regel
van het onderdeel waarin ze zouden worden gelogd. Met de
laatste regel van dit onderdeel worden alle overige
pakketten geblokkeerd en gelogd en ze kunnen
bewijsmateriaal zijn in een zaak tegen iemand die heeft
geprobeerd een systeem aan te vallen.Voor al het verkeer dat wordt geweigerd wordt geen
antwoord gestuurd. Die pakketten verdwijnen gewoon. Zo
weet een aanvaller niet of een pakket het doelsysteem wel
heeft bereikt. Zo kan een aanvaller geen informatie
verzamelen over een systeem: hoe minder informatie er over
een systeem beschikbaar is, hoe veiliger het is. Als er
pakketten gelogd worden waarvan de beheerder het poortnummer
niet herkent, dan is de functie van dat poortnummer na te
zoeken in /etc/services of op .
Op de volgende link worden poortnummers van Trojans
beschreven: .Voorbeeld van een set inclusieve regelsHet volgende voorbeeld is een complete inclusieve set
regels die geen gebruik maakt van NAT.
Deze set met regels is een aanrader en eenvoudig aan te
passen door commentaar te maken van een regel voor een
dienst die niet gewenst is. Logberichten die niet gewenst
zijn, zijn uit te sluiten door ze met een regel te
blokkeren in het begin van het onderdeel Inkomend. Voor de
onderstaande regels dient de dc0
interfacenaam in iedere regel vervangen te worden door de
interfacenaam van de netwerkkaart in het systeem die met
het publieke internet is verbonden. Voor gebruikers van
PPP zou dat tun0 zijn.Er zit een structuur in de regels:Alle regels die controleren op het verzoek voor het
opzetten van een sessie gebruiken
keep–state.Alle diensten die vanaf internet bereikbaar zijn
gebruiken limit om
flooding te voorkomen.Alle regels gebruiken in of
out om de richting aan te
geven.Alle regels gebruiken via
interfacenaam om aan te geven op welke
interface de regel van toepassing is.De volgende regels zouden in
/etc/ipfw.rules kunnen staan:################ Begin bestand met IPFW regels ###############################
# Verwijder eerst de bestaande regels.
ipfw –q –f flush
# Stel commando voorvoegsel in.
cmd="ipfw –q add"
pif="dc0" # Interfacenaam van NIC die verbinding
# met het publieke internet heeft.
#################################################################
# Geen beperkingen op de interface aan de LAN kant. Alleen nodig
# als er een LAN is. Wijzig xl0 naar de gebruikte interfacenaam.
#################################################################
#$cmd 00005 allow all from any to any via xl0
#################################################################
# Geen beperkingen op de loopback interface.
#################################################################
$cmd 00010 allow all from any to any via lo0
#################################################################
# Sta het pakket toe als het aan de tabel met dynamische regels
# was toegevoegd met een 'allow keep–state' commando.
#################################################################
$cmd 00015 check–state
#################################################################
# Interface aan het publieke internet (onderdeel Uitgaand).
# Inspecteer verzoeken om een sessie te starten van achter de
# firewall op het private netwerk of vanaf de server zelf naar
# het publieke internet.
#################################################################
# Geef toegang tot de DNS server van de ISP.
# x.x.x.x moet het IP adres van de DNS van de ISP zijn.
# Dupliceer deze regels als een ISP meedere DNS servers heeft.
# Haal het IP adres evt. uit /etc/resolv.conf
$cmd 00110 allow tcp from any to x.x.x.x 53 out via $pif setup keep–state
$cmd 00111 allow udp from any to x.x.x.x 53 out via $pif keep–state
# Geef toegang tot de DHCP server van de ISP voor kabel- en
# xDSL-netwerken. Deze regel is niet nodig als gebruik gemaakt worden
# van PPP naar het publieke internet. In dat geval kan de hele groep
# verwijderd worden. Gebruik de volgende regel en controleer het
# logboek voor het IP adres. Wijzig dan het IP adres in de regel
# commentaar hieronder en verwijder de eerste regel.
$cmd 00120 allow log udp from any to any 67 out via $pif keep–state
#$cmd 00120 allow udp from any to x.x.x.x 67 out via $pif keep–state
# Sta niet beveiligd www verkeer toe.
$cmd 00200 allow tcp from any to any 80 out via $pif setup keep–state
# Sta beveiligd www verkeer over TLS SSL toe.
$cmd 00220 allow tcp from any to any 443 out via $pif setup keep–state
# Sta het verzenden en ontvangen van e-mail toe.
$cmd 00230 allow tcp from any to any 25 out via $pif setup keep–state
$cmd 00231 allow tcp from any to any 110 out via $pif setup keep–state
# Sta de FreeBSD CVSUP functie toe voor uid root.
$cmd 00240 allow tcp from me to any out via $pif setup keep–state uid root
# Sta ping toe.
$cmd 00250 allow icmp from any to any out via $pif keep–state
# Sta Time toe naar buiten.
$cmd 00260 allow tcp from any to any 37 out via $pif setup keep–state
# Sta NNTP nieuws toe naar buiten.
$cmd 00270 allow tcp from any to any 119 out via $pif setup keep–state
# Sta beveiligde FTP, Telnet en SCP toe naar buiten.
# Deze functie maakt gebruik van SSH (secure shell).
$cmd 00280 allow tcp from any to any 22 out via $pif setup keep–state
# Sta whois toe naar buiten.
$cmd 00290 allow tcp from any to any 43 out via $pif setup keep–state
# Blokkeer en log al het andere dat probeert buiten te komen.
# Deze regel dwingt de 'block all' logica af.
$cmd 00299 deny log all from any to any out via $pif
#################################################################
# Interface aan het publieke internet (onderdeel Inkomend).
# Inspecteert pakketten die van het publieke internet komen
# met als bestemming de host zelf of het private netwerk.
#################################################################
# Blokkeer al het verkeer voor niet-routeerbare of gereserveerde
# adresreeksen.
$cmd 00300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918 privaat IP
$cmd 00301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918 privaat IP
$cmd 00302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918 privaat IP
$cmd 00303 deny all from 127.0.0.0/8 to any in via $pif #loopback
$cmd 00304 deny all from 0.0.0.0/8 to any in via $pif #loopback
$cmd 00305 deny all from 169.254.0.0/16 to any in via $pif #DHCP auto–config
$cmd 00306 deny all from 192.0.2.0/24 to any in via $pif #gereserveerd voor documentatie
$cmd 00307 deny all from 204.152.64.0/23 to any in via $pif #Sun cluster interconnect
-$cmd 00308 deny all from 224.0.0.0/3 to any in via $pif #Klasse D & E multicast
+$cmd 00308 deny all from 224.0.0.0/3 to any in via $pif #Klasse D & E multicast
# Blokkeer publieke pings.
$cmd 00310 deny icmp from any to any in via $pif
# Blokkeer ident.
$cmd 00315 deny tcp from any to any 113 in via $pif
# Blokkeer alle Netbios diensten. 137=naam, 138=datagram, 139=sessie.
# Netbios is de Windows® bestandsdeeldienst.
# Blokkeer Windows hosts2 name server verzoeken 81.
$cmd 00320 deny tcp from any to any 137 in via $pif
$cmd 00321 deny tcp from any to any 138 in via $pif
$cmd 00322 deny tcp from any to any 139 in via $pif
$cmd 00323 deny tcp from any to any 81 in via $pif
# Blokkeer gefragmenteerde pakketten.
$cmd 00330 deny all from any to any frag in via $pif
# Blokkeer ACK pakketten die niet in de table met dynamische regels
# staan.
$cmd 00332 deny tcp from any to any established in via $pif
# Geef toegang tot de DHCP server van de ISP voor kabel- en
# xDSL-netwerken. Deze regel is niet nodig als gebruik gemaakt worden
# van PPP naar het publieke internet. In dat geval kan de hele groep
# verwijderd worden. Hier wordt hetzelfde IP adres gebruikt als in de
# sectie voor Uitgaand verkeer.
#$cmd 00360 allow udp from any to x.x.x.x 67 in via $pif keep–state
# Sta inkomend webverkeer toe omdat er een Apache server draait.
$cmd 00400 allow tcp from any to me 80 in via $pif setup limit src–addr 2
# Sta beveiligde FTP, telnet en SCP toe vanaf internet.
$cmd 00410 allow tcp from any to me 22 in via $pif setup limit src–addr 2
# Sta niet beveiligde telnet sessie toe vanaf het publieke internet.
# Dit heeft het label ``niet veilig'' omdat gebruikersnaam en
# wachtwoord als platte tekst over internet gaan. Als er geen telnet
# server draait, hoeft deze regel niet actief te zijn.
$cmd 00420 allow tcp from any to me 23 in via $pif setup limit src–addr 2
# Weiger en log alle niet toegestane inkomende verbindingen van buiten.
$cmd 00499 deny log all from any to any in via $pif
# Al het andere verkeer wordt standaard geblokkeerd. Weiger en log alle
# pakketten die tot hier zijn gekomen om te bekijken welke het waren.
$cmd 00999 deny log all from any to any
################ Einde bestand met IPFW regels ########################Voorbeeld NAT en stateful
regelsNATen IPFWOm NAT met IPFW te gebruiken moeten
een aantal instellingen gemaakt worden. In het
instellingenbestand voor de kernel moet option
divert toegevoegd worden aan de andere
IPFIREWALL opties.Naast de normale IPFW opties in
/etc/rc.conf zijn de volgende
nodig:natd_enable="YES" # Schakel NATD in
natd_interface="rl0" # interfacenaam voor de publieke internet NIC
natd_flags="–dynamic –m" # –m = behoud poortnummers als mogelijkStateful regels samen met de
divert natd regel gebruiken maakt
het schrijven van regels veel gecompliceerder. De plaats
van de regels met check–state
en divert natd zijn van kritiek
belang. De logica bestaat niet langer uit het eenvoudigweg
van boven naar beneden doorwerken van de regels. Er wordt
dan ook een nieuw type actie gebruik:
skipto. Bij het gebruik van
skipto is het verplicht iedere regel
te nummeren zodat duidelijk is waar een
skipto precies heen springt.Hieronder staat een groep regels zonder commentaar
waarin een manier om pakketten door de groep regels te
leiden wordt aangegeven.De verwerking begint met de eerste regel en er wordt
steeds een volgende regel gecontroleerd tot het einde
wordt bereikt of totdat een regel op het gecontroleerde
pakket van toepassing is, op dat pakket wordt toegepast
en de verwerking van regels daardoor stopt. In het
voorbeeld zijn de regels 100, 101, 450, 500, and 510 van
belang. Die regels regelen de vertaling van inkomende en
uitgaande pakketten zodat er in de tabel met de
dynamische keep–state regels
altijd het private IP adres staat.
Daarnaast is het van belang op te merken dat er in alle
allow en
deny regels de richting van het
pakket wordt gecontroleerd (inkomend of uitgaand) en over
welke interface het pakket gaat. Merk ook op dat alle
uitgaande verzoeken voor het starten van een sessie met
een skipto naar regel 500 gaan voor
NAT.Stel dat een gebruiker zijn webbrowser gebruikt om een
webpagina op te halen. Webpagina's gebruiken poort 80 voor
communicatie. Er komt een pakket de firewall binnen dat
niet past bij regel 100 omdat het naar buiten gaat en niet
naar binnen. Het komt voorbij regel 101 omdat dit het
eerste pakket is en er dus nog niets voor in de dynamische
keep-state tabel staat. Als het pakket bij 125 aankomt
blijkt het te passen bij die regel. Het gaat naar buiten
door de interface aan het publieke internet. Het pakket
heeft dan nog steeds het bron IP adres
van het private LAN. Als blijkt dat deze regel geldt, dan
gebeuren er twee dingen: door
keep–state wordt er een regel
in de dynamische keep–state tabel gezet en wordt de
aangegeven actie uitgevoerd. De actie is onderdeel van de
informatie uit de dynamische tabel. In dit geval is het
skipto 500. In regel 500 wordt
NAT op het IP adres
van het pakket toegepast en dan kan het weg. Het volgende
is van groot belang. Dit pakket komt aan op zijn
bestemming en als er een antwoord terug komt, dan begint de
verwerking van dat pakket weer van voor af aan. Nu voldoet
het aan regel 100 en dus wordt het bestemmingsadres
vertaald naar het bijbehorende IP adres
op het LAN. Daarna past het bij de
check–state regel en wordt een
vermelding in de tabel gevonden wat betekent dat er een
bestaande sessie is en wordt het doorgelaten naar het LAN.
Het gaat dan naar de PC op het LAN die als eerste een
pakket heeft verzonden en die verstuurt een nieuw pakket
met de vraag om een volgend segment met data naar de
server. Nu blijkt bij controle van de
check–state regel dat die op
het pakket van toepassing moet zijn en er staat een
vermelding in de tabel voor uitgaand verkeer. Daarom wordt
de bijbehorende actie skipto 500
uitgevoerd. Het pakket springt naar regel 500, er wordt
NAT op toegepast en het kan zijn weg
vervolgen.Wat betreft binnenkomende pakketten wordt alles dat
onderdeel is van een bestaande sessie automatisch
afgehandeld door de
check–state regel en de juist
geplaatste divert natd regels. Nu hoeven
alleen de foute pakketten nog geweigerd te worden en moet
ondersteuning voor inkomende diensten ingesteld worden. In
dit geval draait er een Apache server op de gateway machine
die vanaf internet bereikbaar moet zijn. Het nieuwe
inkomende pakket past bij regel 100 en het
IP adres wordt aangepast aan het interne
IP adres van de gateway machine. Dat
pakket wordt dan gecontroleerd op alle ongewenste
eigenschappen en komt uiteindelijk aan bij regel 425 die
van toepassing blijkt te zijn. In dat geval kunnen er twee
dingen gebeuren: de pakketregel wordt in de dynamische
keep–state tabel gezet, maar nu wordt het aantal nieuwe
sessies dat van het bron IP adres komt
gelimiteerd tot twee. Dit is een bescherming tegen DoS
aanvallen op de dienst die op dat poortnummer wordt
aangeboden. De actie is allow, dus het
pakket wordt tot het LAN toegelaten. Voor het antwoord
herkent de check–state regel dat het
pakket bij een bestaande sessie hoort, stuurt het naar regel
500 voor NAT en stuurt het via de
uitgaande interface weg.Voorbeeld Set Regels #1:#!/bin/sh
cmd="ipfw –q add"
skip="skipto 500"
pif=rl0
ks="keep–state"
good_tcpo="22,25,37,43,53,80,443,110,119"
ipfw –q –f flush
$cmd 002 allow all from any to any via xl0 # exclude LAN traffic
$cmd 003 allow all from any to any via lo0 # exclude loopback traffic
$cmd 100 divert natd ip from any to any in via $pif
$cmd 101 check–state
# Toegestaan uitgaand verkeer.
$cmd 120 $skip udp from any to xx.168.240.2 53 out via $pif $ks
$cmd 121 $skip udp from any to xx.168.240.5 53 out via $pif $ks
$cmd 125 $skip tcp from any to any $good_tcpo out via $pif setup $ks
$cmd 130 $skip icmp from any to any out via $pif $ks
$cmd 135 $skip udp from any to any 123 out via $pif $ks
# Blokkeer al het verkeer voor niet-routeerbare of gereserveerde
# adresreeksen.
$cmd 300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918 privaat IP
$cmd 301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918 privaat IP
$cmd 302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918 privaat IP
$cmd 303 deny all from 127.0.0.0/8 to any in via $pif #loopback
$cmd 304 deny all from 0.0.0.0/8 to any in via $pif #loopback
$cmd 305 deny all from 169.254.0.0/16 to any in via $pif #DHCP auto–config
$cmd 306 deny all from 192.0.2.0/24 to any in via $pif #gereserveerd voor documentatie
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif #Sun cluster
-$cmd 308 deny all from 224.0.0.0/3 to any in via $pif #Klasse D & E multicast
+$cmd 308 deny all from 224.0.0.0/3 to any in via $pif #Klasse D & E multicast
# Toegestaan inkomend verkeer.
$cmd 400 allow udp from xx.70.207.54 to any 68 in $ks
$cmd 420 allow tcp from any to me 80 in via $pif setup limit src–addr 1
$cmd 450 deny log ip from any to any
# Dit is de 'skipto' locatie voor de uitgaande stateful regels.
$cmd 500 divert natd ip from any to any out via $pif
$cmd 510 allow ip from any to any
######################## Einde regels ##################Het volgende voorbeeld doet vrijwel hetzelfde als het
bovenstaande, maar volgt een zelfdocumenterende stijl voor
het opstellen van regels en commentaar waardoor minder
ervaren gebruikers beter kunnen begrijpen wat de regels
doen.Voorbeeld Set Regels #2:
#!/bin/sh
################ Begin bestand met IPFW regels ###############################
# Verwijder eerst de bestaande regels.
ipfw –q –f flush
# Stel commando voorvoegsel in.
cmd="ipfw –q add"
skip="skipto 800"
pif="rl0" # Interfacenaam van NIC die verbinding
# met het publieke internet heeft.
#################################################################
# Geen beperkingen op de interface aan de LAN kant.
# Wijzig xl0 naar de gebruikte interfacenaam.
#################################################################
$cmd 005 allow all from any to any via xl0
#################################################################
# Geen beperkingen op de loopback interface.
#################################################################
$cmd 010 allow all from any to any via lo0
#################################################################
# Controleer of pakket inkomend is. NAT in dat geval.
#################################################################
$cmd 014 divert natd ip from any to any in via $pif
#################################################################
# Sta het pakket toe als het aan de tabel met dynamische regels
# was toegevoegd met een 'allow keep–state' commando.
#################################################################
$cmd 015 check–state
#################################################################
# Interface aan het publieke internet (onderdeel Uitgaand).
# Inspecteer verzoeken om een sessie te starten van achter de
# firewall op het private netwerk of vanaf de server zelf naar
# het publieke internet.
#################################################################
# Geef toegang tot de DNS server van de ISP.
# x.x.x.x moet het IP adres van de DNS van de ISP zijn.
# Dupliceer deze regels als een ISP meedere DNS servers heeft.
# Haal het IP adres evt. uit /etc/resolv.conf
$cmd 020 $skip tcp from any to x.x.x.x 53 out via $pif setup keep–state
# Geef toegang tot de DHCP server van de ISP voor kabel en xDSL.
$cmd 030 $skip udp from any to x.x.x.x 67 out via $pif keep–state
# Sta niet beveiligd www verkeer toe.
$cmd 040 $skip tcp from any to any 80 out via $pif setup keep–state
# Sta beveiligd www verkeer over TLS SSL toe.
$cmd 050 $skip tcp from any to any 443 out via $pif setup keep–state
# Sta het verzenden en ontvangen van e-mail toe.
$cmd 060 $skip tcp from any to any 25 out via $pif setup keep–state
$cmd 061 $skip tcp from any to any 110 out via $pif setup keep–state
# Sta de FreeBSD CVSUP functie toe voor uid root.
$cmd 070 $skip tcp from me to any out via $pif setup keep–state uid root
# Sta ping toe naar het publieke internet.
$cmd 080 $skip icmp from any to any out via $pif keep–state
# Sta Time toe.
$cmd 090 $skip tcp from any to any 37 out via $pif setup keep–state
# Sta NNTP nieuws toe.
$cmd 100 $skip tcp from any to any 119 out via $pif setup keep–state
# Sta beveiligde FTP, Telnet en SCP toe.
# Deze functie maakt gebruik van SSH (secure shell).
$cmd 110 $skip tcp from any to any 22 out via $pif setup keep–state
# Sta whois toe.
$cmd 120 $skip tcp from any to any 43 out via $pif setup keep–state
# Sta NPT tijdserver toe.
$cmd 130 $skip udp from any to any 123 out via $pif keep–state
#################################################################
# Interface aan het publieke internet (onderdeel Inkomend).
# Inspecteert pakketten die van het publieke internet komen
# met als bestemming de host zelf of het private netwerk.
#################################################################
# Blokkeer al het verkeer voor niet-routeerbare of gereserveerde
# adresreeksen.
$cmd 300 deny all from 192.168.0.0/16 to any in via $pif #RFC 1918 privaat IP
$cmd 301 deny all from 172.16.0.0/12 to any in via $pif #RFC 1918 privaat IP
$cmd 302 deny all from 10.0.0.0/8 to any in via $pif #RFC 1918 privaat IP
$cmd 303 deny all from 127.0.0.0/8 to any in via $pif #loopback
$cmd 304 deny all from 0.0.0.0/8 to any in via $pif #loopback
$cmd 305 deny all from 169.254.0.0/16 to any in via $pif #DHCP auto–config
$cmd 306 deny all from 192.0.2.0/24 to any in via $pif #gereserveerd voor documentatie
$cmd 307 deny all from 204.152.64.0/23 to any in via $pif #Sun cluster
-$cmd 308 deny all from 224.0.0.0/3 to any in via $pif #Klasse D & E multicast
+$cmd 308 deny all from 224.0.0.0/3 to any in via $pif #Klasse D & E multicast
# Blokkeer ident.
$cmd 315 deny tcp from any to any 113 in via $pif
# Blokkeer alle Netbios diensten. 137=naam, 138=datagram, 139=sessie.
# Netbios is de Windows® bestandsdeeldienst.
# Blokkeer Windows hosts2 name server verzoeken 81.
$cmd 320 deny tcp from any to any 137 in via $pif
$cmd 321 deny tcp from any to any 138 in via $pif
$cmd 322 deny tcp from any to any 139 in via $pif
$cmd 323 deny tcp from any to any 81 in via $pif
# Blokkeer gefragmenteerde pakketten.
$cmd 330 deny all from any to any frag in via $pif
# Blokkeer ACK pakketten die niet in de table met dynamische regels
# staan.
$cmd 332 deny tcp from any to any established in via $pif
# Geef toegang tot de DHCP server van de ISP voor kabel- en
# xDSL-netwerken. Deze regel is niet nodig als gebruik gemaakt worden
# van PPP naar het publieke internet. In dat geval kan de hele groep
# verwijderd worden. Hier wordt hetzelfde IP adres gebruikt als in de
# sectie voor Uitgaand verkeer.
$cmd 360 allow udp from x.x.x.x to any 68 in via $pif keep–state
# Sta inkomend webverkeer toe omdat er een Apache server draait.
$cmd 370 allow tcp from any to me 80 in via $pif setup limit src–addr 2
# Sta beveiligde FTP, telnet en SCP toe vanaf internet.
$cmd 380 allow tcp from any to me 22 in via $pif setup limit src–addr 2
# Sta niet beveiligde telnet sessie toe vanaf het publieke internet.
# Dit heeft het label ``niet veilig'' omdat gebruikersnaam en
# wachtwoord als platte tekst over internet gaan. Als er geen telnet
# server draait, hoeft deze regel niet actief te zijn.
#$cmd 390 allow tcp from any to me 23 in via $pif setup limit src–addr 2
# Weiger en log alle niet toegestane inkomende verbindingen vanaf het
# publieke internet.
$cmd 400 deny log all from any to any in via $pif
# Weiger en log alle niet toegestane uitgaande verbindingen naar
# internet.
$cmd 450 deny log all from any to any out via $pif
# Dit is de 'skipto' locatie voor de uitgaande stateful regels
$cmd 800 divert natd ip from any to any out via $pif
$cmd 801 allow ip from any to any
# Al het andere verkeer wordt standaard geblokkeerd. Weiger en log alle
# pakketten die tot hier zijn gekomen om te bekijken welke het waren.
$cmd 999 deny log all from any to any
################ Einde bestand met IPFW regels ########################
diff --git a/nl_NL.ISO8859-1/books/handbook/geom/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/geom/chapter.sgml
index fd172cdafc..29da9dc340 100644
--- a/nl_NL.ISO8859-1/books/handbook/geom/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/geom/chapter.sgml
@@ -1,457 +1,445 @@
TomRhodesGeschreven door SiebrandMazelandVertaald door GEOM: Modulair schijftransformatie frameworkOverzichtGEOMGEOM schijf frameworkGEOMDit hoofdstuk beschrijft het gebruik van schijven in het
GEOM framework in &os;. Hieronder vallen de belangrijkste
RAID
besturingsprogramma's die het framework gebruikt voor
instellingen. In dit hoofdstuk wordt niet diepgaand beschreven
hoe GEOM omgaat met I/O, het onderliggende subsysteem of code.
Die informatie staat in het hulppagina voor &man.geom.4; en de
verscheidene SEE ALSO referenties. Dit hoofdstuk
is ook geen definitief stuk over het instellen van
RAID. Alleen de door GEOM ondersteunde
RAID-classificaties worden beschreven.Na het lezen van dit hoofdstuk weet de lezer:Welk type RAID-ondersteuning via GEOM
beschikbaar is;Hoe de basisgereedschappen te gebruiken om de
verschillende RAID-niveau's in te stellen,
te onderhouden en te wijzigen;Hoe schijfapparaten via GEOM te spiegelen, aaneen te
schakelen, te versleutelen en vanaf afstand schijven aan te
sluiten;Hoe problemen op te lossen met schijven die via het GEOM
framework zijn aangesloten.Veronderstelde voorkennis:Begrijpen hoe &os; omgaat met schijfapparaten ();Weten hoe een nieuwe &os; kernel in te stellen en te
installeren ().GEOM inleidingGEOM staat toegang en controle toe op klassen, Master Boot
Records, BSD labels, enzovoort, door gebruik
te maken van diensten of de speciale bestanden in /dev. GEOM ondersteunt
verschillende software RAID instellingen en
biedt transparante toegang tot het besturingssysteem en de
hulpprogramma's.TomRhodesGeschreven door MurrayStokelyRAID0 - aaneengeschakeldGEOMaaneengeschakeldAaneenschakelen is een methode die gebruikt wordt
om meerdere schijven te combineren tot een enkele volume. In
veel gevallen wordt dit gedaan met hardware controllers. Het
GEOM subsysteem biedt softwareondersteuning voor
RAID0, ook wel bekend als aaneenschakelen
(disk striping).In een RAID0-systeem worden gegevens
opgedeeld in blokken die verdeeld worden over de schijven in een
reeks. In plaats van te hoeven wachten tot een systeem 256k naar
één schijf heeft geschreven, kan een
RAID0-systeem tegelijkertijd 64k naar vier
verschillende schijven schrijven, waardoor superieure I/O
prestaties worden bereikt. Deze prestaties kunnen nog verbeterd
worden door meerdere schijfcontrollers te gebruiken.Iedere schijf in een
RAID0-aaneenschakeling moet van dezelfde
grootte zijn, omdat I/O-verzoeken altijd zijn opgebouwd uit
precies gelijk over de schijven verdeelde verzoeken tot lezen of
schrijven.Illustratie aaneengeschakelde schijvenOngeformatteerde ATA-schijven aaneenschakelenLaad de module geom_stripe:&prompt.root; kldload geom_stripe.koZorg ervoor dat er een mountpunt beschikbaar is. Als dit
volume een rootpartitie wordt, gebruikt dan tijdelijk een
ander mountpunt zoals /mnt:&prompt.root; mkdir /mntStel de apparaatnamen voor de schijven vast die aaneen
worden geschakeld en maak het nieuwe apparaat aan. Het
volgende commando kan bijvoorbeeld gebruikt worden om twee
ongebruikte, ongepartitioneerde ATA
schijven aaneen te schakelen (/dev/ad2
en /dev/ad3).&prompt.root; gstripe label -v st0 /dev/ad2 /dev/ad3
-
- Als dit volume wordt gebruikt als rootapparaat voor het
- opstarten van een systeem, dan dient het volgende commando
- gegeven te worden voordat het bestandssysteem wordt
- gemaakt:
-
- &prompt.root; fdisk -vBI /dev/stripe/st0
-
-
Er moet een partitietabel gemaakt worden op het nieuwe
volume:&prompt.root; bsdlabel -wB /dev/stripe/st0Dit proces hoort twee nieuwe apparaten gemaakt te hebben
in de map /dev/stripe
- naast het apparaat st0, te weten
- st0a en st0c. Nu
- kan er een bestandssysteem gemaakt worden op het apparaat
- st0a met
- newfs:
+ naast het apparaat st0, te weten
+ st0a en
+ st0c. Nu kan er een bestandssysteem
+ gemaakt worden op het apparaat st0a
+ met newfs:
&prompt.root; newfs -U /dev/stripe/st0aNa het uitvoeren van het bovenstaande commando rollen er
veel getallen over het scherm en na een aantal seconden is
het proces afgerond. Het volume is gereed en klaar om
gemount te worden.Mount een nieuw gemaakte aaneengeschakelde schijf handmatig
met het volgende commando:&prompt.root; mount /dev/stripe/st0a /mntOm dit aaneengeschakelde bestandssysteem automatisch te
mounten bij het opstarten kan de volume-informatie in
/etc/fstab gezet worden:&prompt.root; echo "/dev/stripe/st0a /mnt ufs rw 2 2" \>> /etc/fstabLaadt de module geom ook automatisch
bij het initialiseren van een systeem door de volgende regel toe
te voegen aan /boot/loader.conf:&prompt.root; echo 'geom_stripe_load="YES"' >> /boot/loader.confRAID1 - spiegelenGEOMschijf spiegelenSpiegelen (mirroring) is een technologie die
door veel bedrijven en thuisgebruikers wordt ingezet om gegevens
te back-uppen zonder onderbrekingen. Als er een spiegel bestaat,
betekent dat eenvoudigweg dat schijfB een kopie is van schijfA,
of misschien zijn schijvenC+D een kopie van schijvenA+B. Los van
de schijfinstellingen is het belangrijkste aspect dat de
gegevens van de ene schijf of partitie worden gerepliceerd naar
de andere. Later kunnen die gegevens eenvoudiger worden hersteld
of geback-upped zonder dat dit leidt tot onderbrekingen in
dienstverlening of toegang tot gegevens en schijven kunnen zelfs
fysiek worden opgeslagen in een kluis.Begin met een systeem dat twee schijven heeft van gelijke
grootte. Deze oefening stelt dat het directe toegang
(&man.da.4;) SCSI-schijven zijn.Begin door &os; te installeren op de eerste schijf met twee
partities. Een van de twee moet een swap-partitie zijn die twee
keer de grootte van het RAM-geheugen is en de rest van de ruimte
moet toegewezen worden aan het root bestandssysteem (/). Er zouden eigen partities
gemaakt kunnen worden voor andere mountpunten, maar hierdoor
wordt de moeilijkheidsgraad wel tien keer hoger doordat de
instellingen voor &man.bsdlabel.8; and &man.fdisk.8; handmatig
gewijzigd moeten worden.Herstart en wacht tot het systeem volledig is
geïnitialiseerd. Meld daarna aan als gebruiker
root.Maak het apparaat /dev/mirror/gm en link
het aan /dev/da1:&prompt.root; gmirror label -vnb round-robin gm0 /dev/da1Het systeem hoort te antwoorden met:Metadata value stored on /dev/da1.
Done.Initialiseer GEOM, waardoor de kernelmodule
/boot/kernel/geom_mirror.ko wordt
geladen:&prompt.root; gmirror load
- Dit commando hoort de apparaatnodes
- gm0, gm0s1,
- gm0s1a en gm0s1c
- gemaakt te hebben onder de map /dev/mirror.
+ Dit commando hoort de apparaatnode
+ gm0 gemaakt te hebben onder de map
+ /dev/mirror.Installeer het algemene fdisk label en de
bootcode op het nieuw aangemaakte apparaat
- gm0:
+ gm0:
&prompt.root; fdisk -vBI /dev/mirror/gm0Installeer nu de algemene bsdlabel
informatie:&prompt.root; bsdlabel -wB /dev/mirror/gm0s1Als meerdere slices en partities bestaan, dienen de vlaggen
voor de vorige twee commando's anders te zijn. Ze moeten
gelijk zijn aan de groottes van de slice en partitie van de
andere schijf.Gebruik &man.newfs.8; om een standaard bestandssysteem te
- maken op de apparaatnode gm0s1a:
+ maken op de apparaatnode gm0s1a:
&prompt.root; newfs -U /dev/mirror/gm0s1aDoor het bovenstaande commando spuugt een systeem wat
informatie uit en wat getalletjes. Dat is goed. Bekijk de
uitvoer op het voorkomen van foutmeldingen en mount het apparaat
op het mountpunt /mnt:&prompt.root; mount /dev/mirror/gm0s1a /mntVerplaats nu alle gegevens van de bootschijf naar dit nieuwe
bestandssysteem. In dit voorbeeld worden &man.dump.8; en
&man.restore.8; gebruikt, maar &man.dd.1; werkt ook in dit
- scenario. Hier wordt &man.tar.1; òmzeild, omdat &man.tar.1; de
- bootcode niet kan kopiëren, iets dat een foute afloop
- garandeert.
+ scenario.
- &prompt.root; dump -L -0 -f- / |(cd /mnt && restore -r -v -f-)
+ &prompt.root; dump -L -0 -f- / |(cd /mnt && restore -r -v -f-)Dit dient voor ieder bestandssysteem uitgevoerd te worden.
Plaats eenvoudigweg het juiste bestandssysteem op de juiste
plaats bij het uitvoeren van het voorgaande commando.Wijzig nu het gerepliceerde bestand
/mnt/etc/fstab en verwijder het swapbestand
of plaats er een commentaarteken voor.
Het uitcommentariëren van de regel voor het
swapbestand in fstab zorgt er
waarschijnlijk voor dat het beschikbaar maken van swapruimte
op een andere manier bewerkstelligd moet worden. In staat daarover meer
informatie.
Wijzig de informatie voor de andere bestandssystemen zodat ze de
nieuwe schijf gebruiken. Zie het volgende voorbeeld:# Device Mountpoint FStype Options Dump Pass#
#/dev/da0s2b none swap sw 0 0
/dev/mirror/gm0s1a / ufs rw 1 1Maak nu een bestand boot.conf op zowel
de huidige als de nieuwe rootpartitie. Dit bestand
helpt het BIOS van een systeem
op te starten van de juiste schijf:&prompt.root; echo "1:da(1,a)/boot/loader" > /boot.config
&prompt.root; echo "1:da(1,a)/boot/loader" > /mnt/boot.configDit bestand dient op beide rootpartities te staan om zeker
te stellen dat een systeem goed opstart. Als een systeem om
welke reden dan ook niet kan lezen van de nieuwe rootpartitie,
dan is een achtervang beschikbaar.Voeg de volgende regel toe aan de nieuwe
/boot/loader.conf:&prompt.root; echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf
- Hiermee wordt aan &man.loader.8; aangegeven dat deze
- geom_mirror.ko dient te laden tijdens de
- initialisatie van een systeem.
+ Hiermee wordt aan &man.loader.8; aangegeven dat de module
+ geom_mirror.ko geladen moet worden tijdens
+ de initialisatie van een systeem.Herstart het systeem:&prompt.root; shutdown -r nowAls alles goed is gegaan, hoort het systeem gestart te zijn
vanaf het apparaat gm0s1a en er moet een
login prompt staan te wachten. Als er iets
mis is gegaan, kijk dan in de volgende sectie voor het oplossen
van problemen. Voeg nu de schijf da0 toe
aan het apparaat gm0:&prompt.root; gmirror configure -a gm0
&prompt.root; gmirror insert gm0 /dev/da0De vlag geeft &man.gmirror.8; aan dat
automatische synchronisatie gebruikt moet worden, ofwel dat
schrijfbewerkingen naar schijf automatisch gespiegeld moeten
worden. In de hulppagina wordt beschreven hoe schijven herbouwd
- en vervangen kunnen worden, hoewel daar data
- wordt gebruikt in plaats van gm0.
+ en vervangen kunnen worden, hoewel daar
+ data wordt gebruikt in plaats van
+ gm0.
Problemen oplossenSysteem weigert op te startenAls een systeem opstart in een prompt dat op het volgende
lijkt:ffs_mountroot: can't find rootvp
Root mount failed: 6
mountroot>Herstart te machine met de aan/uit-schakelaar of met de
resetknop. Selecteer in het bootmenu optie zes (6).
Hierdoor komt een systeem in een &man.loader.8; prompt. Laad
de kernelmodules handmatig:OK? load geom_mirror.ko
OK? bootAls dit werkt werd de module om welke reden dan ook niet
juist geladen. Zet de onderstaande regel in het bestand met
kernelinstellingen en herbouw en installeer de kernel.options GEOM_MIRRORHiermee moet het probleem opgelost zijn.
diff --git a/nl_NL.ISO8859-1/books/handbook/install/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/install/chapter.sgml
index c25275e5b3..f5f883ab3a 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 @@
JimMockGeherstructureerd, gereorganiseerd en delen
herschreven door RandyPrattDe sysinstall handleiding, schermafdrukken en algemene
bijdragen door Willem JaapZwartVertaald door &os; installerenOverzichtinstallatie&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 takenBeschrijf de computerProbeer 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 componentenComponentIRQIO-poort(en)OpmerkingenEerste harde schijfN/AN/A40 GB, Seagate, eerste IDE mastercd-romN/AN/AEerste IDE slaveTweede harde schijfN/AN/A20 GB, IBM, tweede IDE masterEerste IDE controller140x1f0NetwerkkaartN/AN/A&intel; 10/100ModemN/AN/A&tm.3com; 56K faxmodem, op COM1…
Maak een back-up van gegevensAls 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 wordtAls 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
partitieStel 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 verkleinenStel 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 computersAlphaOp 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 EIDEDit 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 verzamelenAls 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 modemAls 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-adresIP-adres van de default gatewayHostnameIP-adressen van de DNS server(s)SubnetmaskerAls 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 modemOok 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 ISPDe COM: poort waaraan de modem zitGebruikersnaam en wachtwoord bij de ISPControleer op &os; ErrataHoewel 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; installatiebestandenDe &os; installatieprocedure kan &os; installeren vanaf
één van de volgende plaatsen:Lokale mediaCd-rom of DVDDOS-partitie op dezelfde computerSCSI of QIC tapeDiskettestationNetwerkFTP site, indien noodzakelijk door een firewall of
via een HTTP proxyNFS serverParallelle of seriële verbindingAls &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 aanmakenDe &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 opstartdiskettesDe 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 aanPer 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 diskettesDe .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.DOSAls 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/fd0Onder &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 installatieDe 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.OpstartenOpstarten 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 AlphaAlphaBegin 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.KernelinstellingenVanaf &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 oplossenToets 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'sSchakel 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 conflictenHet 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 SysinstallResultaten van het hardware-onderzoek bekijkenDe 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-onderzoekavail 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 vty0Controleer 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 verlatenGebruik 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 ] NoHet 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 SysinstallHet 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 hoofdmenuMenu Documentation selecterenKies met de pijltjestoetsen in het hoofdmenu
Doc en druk op
Enter.Menu Documentation selecterenDit toont het menu Documentation.Sysinstall menu DocumentationHet 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 selecterenKies 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 hoofdmenuEen 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 KeymapInstallatiescherm OptionsKies Options en druk op
Enter.Sysinstall hoofdmenuSysinstall optiesDe 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 startenDe 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 startenSchijfruimte toewijzenAls 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 schijfnummeringVoordat &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.SCSIBIOSDuurdere 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
FredWillem 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 FDiskWijzigingen 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 FDiskWaarom 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
altijdad2, 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 wijzigenDe 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 schijfToets na afronding Q. De wijzigingen
worden bewaard in sysinstall, maar
worden nog niet op de schijf weggeschreven.Bootmanager installerenHierna 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 ManagerHet 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 schijfAls 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 verlatenMet 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
DisklabelNu 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 schijfPartitieBestandssysteemGrootteOmschrijvinga/100 MBDit 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
/.bN/A2-3 x RAMDe 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/var50 MBDe 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/usrOverige schijfruimteAlle 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 schijvenPartitieBestandssysteemGrootteOmschrijvingbN/AZie omschrijvingZoals 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/disknOverige schijfruimteDe 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 EditorDisklabel 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 standaardwaardenAls 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 rootpartitieDe 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 wijzigenAls 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 kiezenOmdat 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 kiezenHet 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 EditorWat installerenDistributieset selecterenDe 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 kiezenPortscollectie installerenNa 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,
+ For more information on the ports collection & the latest ports,
visit:
http://www.FreeBSD.org/ports
[ Yes ] NoSelecteer &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 kiezenAls 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 kiezenAls 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.MediaselectieFTP installatiemethodeninstallatienetwerkFTPEr zijn drie manieren van installeren via FTP: active FTP,
passive FTP of via een HTTP proxy.Actieve FTP: Install from an FTP
serverDeze 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 FTPpassive modusDeze 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 proxyFTPvia een HTTP proxyDeze 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 bevestigenNu 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 ] NoKies &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 installatieNa 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 instellenAls 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 ] NoKies &gui.yes; en druk op Enter om een
netwerkapparaat in te stellen. Kies anders &gui.no; om verder
te gaan.Ethernetapparaat kiezenKies 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 ed0Met Tab kunnen de velden geselecteerd
worden waarna de juiste informatie ingevuld kan worden:HostDe fully-qualified hostname, in dit
geval k6-2.example.com.DomainDe naam van het domein waar toe de machine behoort,
in dit geval example.com.IPv4 GatewayHet 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 serverHet 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 AddressHet IP-adres dat gebruikt moet worden voor deze
interface (192.168.0.1).NetmaskHet 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 ifconfigElke 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 ] NoHet 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 ] NoAls 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 ] NoSelecteer &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 ] NoHet selecteren van &gui.yes; geeft de mogelijkheid diensten
toe te voegen door het teken # aan het begin
van een regel te verwijderen.inetd.conf bewerkenDruk 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 FTPFTPanoniem User Confirmation Requested
Do you want to have anonymous FTP access to this machine?
Yes [ No ]Anonieme FTP weigerenHet 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 toestaanAls 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 instellingenDruk 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 ] NoNa het kiezen van &gui.yes; en op Enter
drukken opent zich een editor waarin het welkomstbericht
bewerkt kan worden.FTP welkomstbericht bewerkenDe 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 instellenNetwork 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.exports bewerkenVolg 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 ClientDe 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.BeveiligingsprofielEen 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;.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 beveiligingsprofielenExtremeModerate&man.sendmail.8;NeeJa&man.sshd.8;NeeJa&man.portmap.8;NeeWellicht
De portmapper wordt aangezet als de machine
eerder in de installatie is ingesteld als NFS
client of server.NFS serverNeeJa&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 ] NoHet 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.BeveiligingsprofieloptiesDruk 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 instellenEr 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 ] NoOm de opties te bekijken en in te stellen, kies &gui.yes;
en druk op Enter.Systeemconsole instellingenEen gebruikelijke optie is de schermbeveiliging. Gebruik
de pijltjestoetsen om Saver te
selecteren en druk op Enter.SchermbeveiligingsoptiesKies 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 activeringstijdWijzig de waarde, selecteer &gui.ok; en druk op
Enter om terug te gaan naar het
instellingenmenu System Console.Systeemconsole instellingen verlatenMet het selecteren van Exit en
drukken op Enter kan verdergegaan worden met
de andere instellingen.Tijdzone instellenHet 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 ] NoSelecteer &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 instellenKies met de pijltjestoetsen de juiste regio en druk op
Enter.Land kiezenKies met de pijltjestoetsen het juiste land en druk op
Enter.Tijdzone kiezenKies met de pijltjestoetsen de juiste tijdzone en druk op
Enter. Confirmation
Does the abbreviation 'EDT' look reasonable?
[ Yes ] NoBevestig 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 ] NoSelecteer &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.MuisinstellingenDeze 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 selecterenGebruik de pijltjestoetsen om
Type te selecteren en druk op
Enter.Muisprotocol kiezenDe 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 instellenGebruik de pijltjestoetsen om
Port te selecteren en druk op
Enter.Muispoort instellenDit 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 inschakelenGebruik tenslotte de pijltjestoetsen om
Enable te selecteren en druk op
Enter om de muisdaemon aan te zetten en te
testen.Het testen van de muisdaemonBeweeg 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.TomRhodesGeschreven door Extra netwerkdiensten instellenHet 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 optiesDe 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.mapDe 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.FTPanoniemDe 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 kiezenHier 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 instellingenKies 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 optiesDe 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 instellenVanaf &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 ] NoHet 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 kiezenEr 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
+ 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/sysmouseHet 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.)? nVervolgens 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: HitachiNu 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.
4Tenslotte 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? yAls 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 ] NoSelecteer 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
wijzigingen te maken.Na het succesvol instellen van
&xfree86; wordt de standaard
bureaubladomgeving gekozen.Standaard X bureaubladomgeving kiezenVanaf &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 kiezenKies een bureaublad met de pijltjestoetsen en druk op
Enter. De installatie van het geselecteerde
bureaublad start.Pakketten installerenPakketten 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 ] NoNa het kiezen van &gui.yes; en drukken op
Enter verschijnt het menu pakketkeuze:Pakketcategorie kiezenAlle 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 selecterenDe 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 installerenGebruik Tab en de pijltjestoetsen om
[ Install ] te selecteren en
druk op Enter. Daarna moet de
pakketinstallatie bevestigd worden:Pakketinstallatie bevestigenHet 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 toevoegenEr 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 ] NoKies &gui.yes; en druk op Enter om verder
te gaan met het toevoegen van een gebruiker.Gebruiker kiezenSelecteer User met de
pijltjestoetsen en druk op Enter.Gebruikersinformatie toevoegenDe 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 IDDe aanmeldnaam van de nieuwe gebruiker
(verplicht).UIDHet numerieke ID van de gebruiker (laat leeg voor
automatische toewijzing).GroupDe naam van de aanmeldgroep van de gebruiker (laat
leeg voor automatische keuze).PasswordHet wachtwoord voor de gebruiker (vul dit zorgvuldig
in!).Full nameDe volledige naam van de gebruiker
(commentaar).Member groupsDe groepen waar de gebruiker in zit (waar hij
toegangsrechten voor krijgt).Home directoryDe locatie van de thuismap van de gebruiker (laat
leeg voor de standaardwaarde).Login shellDe 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 groepbeheerOp 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.root 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 verlatenAls 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 afsluitenSelecteer [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 ] NoSelecteer &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 AlphaAlphaNadat de installatieprocedure voltooid is, kan &os;
starten door iets als onderstaand in te voeren op de SRM
prompt:>>>BOOT DKC0Dit 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 BOOTDe opstartberichten zijn vergelijkbaar (maar niet
hetzelfde) als tijdens het opstarten van &os; op &i386;.&os; uitschakelenHet 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 hardwarehardware&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 oplosseninstallatieproblemen oplossenDit 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;-partitiesDOSVeel 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 /mntIn 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 gebruikersAlphaIn 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?ARCAlpha BIOSSRMNee. &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.ValentinoVaschettoGeschreven door Installeren voor gevorderdenIn dit onderdeel wordt het installeren van &os; in bijzondere
situaties beschreven.&os; installeren op een systeem zonder monitor of
toetsenbordinstallatiezonder monitor en toetsenbord (seriële
console)seriële consoleDit 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
consolemountAls 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 /mntNu de diskette is aangekoppeld kan de map /mnt worden geopend:&prompt.root; cd /mntHier 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
+ &prompt.root; echo "/boot/loader -h" > boot.configNu de diskette goed is ingesteld moet deze weer
afgekoppeld worden met &man.umount.8;:&prompt.root; cd /
&prompt.root; umount /mntNu kan de diskette uit het diskettestation gehaald
worden.Null-modem kabel aansluitennull-modem kabelNu 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 installerenNu 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 machinecuNu moet verbinding gemaakt worden met die machine met
&man.cu.1;:&prompt.root; cu -l /dev/cuaa0Dat 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 makenOm 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 makenAls 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 downloadenDe 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.X ISO imagenamen en verklaringBestandsnaamBevatversie-RELEASE-arch-miniinst.isoAlles wat nodig is om &os; te
installeren.versie-RELEASE-arch-disc1.isoAlles wat nodig is om &os; te installeren en
zoveel additionele pakketten van derde partijen als
op de schijf passen.
versie-RELEASE-arch-disc2.isoEen 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.X ISO imagenamen en verklaringBestandsnaamBevatversie-RELEASE-arch-bootonly.isoAlles 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.isoAlles wat nodig is om &os; te
installeren.versie-RELEASE-arch-disc1.isoAlles 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 brandenDaarna 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;-schijfinstallatienetwerkFTP&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 /cdromMaak 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:/nonexistentZorg 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 makeninstallatiediskettesAls 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/fd0Gebruik 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;-partitieinstallatievan &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:\freebsdC:\>xcopy e:\bin c:\freebsd\bin\ /sC:\>xcopy e:\manpages c:\freebsd\manpages\ /sHierbij 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 tapeinstallatievan QIC/SCSI TapeHet 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 ... dist2Bij 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 netwerkinstallatienetwerkserieel (SLIP of PPP)installatienetwerkparallel (PLIP)installatienetwerkEthernetEr 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 NFSinstallatienetwerkNFSDe 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 dc03103fa3..88d4768c25 100644
--- a/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
@@ -1,1834 +1,1843 @@
JimMockBijgewerkt en opnieuw gestructureerd door JakeHambyOorspronkelijk bijgedragen door RenéLadanVertaald door De &os;-kernel instellenSamenvattingkerneleen aangepaste kernel bouwenDe 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 bouwenTraditioneel 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 kernelkernelbouwen / installerenEerst 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/sysniet 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 MIJNKERNELTraditioneel 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/MIJNKERNELNu 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.cvsupCTMCVSanoniemAls 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 traditionele
wijze bouwenDraai &man.config.8; om de kernelbroncode aan te
maken:&prompt.root; /usr/sbin/config MIJNKERNELGa naar de bouwmap. &man.config.8; geeft de naam van
deze map nadat het gedraaid is zoals boven is
aangegeven:&prompt.root; cd ../compile/MIJNKERNELVoor &os; versies lager dan 5.0 moet het volgende
gebruikt worden:&prompt.root; cd ../../compile/MIJNKERNELCompileer de kernel:&prompt.root; make depend
&prompt.root; makeInstalleer de nieuwe kernel:&prompt.root; make installProcedure 2: een kernel op de nieuwe wijze
bouwenGa naar de map /usr/src:&prompt.root; cd /usr/srcCompileer de kernel:&prompt.root; make buildkernel KERNCONF=MIJNKERNELInstalleer de nieuwe kernel:&prompt.user; make installkernel KERNCONF=MIJNKERNELVoor 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.
-
- In &os; 4.2 en eerder moet
- KERNCONF= door KERNEL=
- vervangen worden. Een 4.2-STABLE die voor 2 februari 2001 is
- opgehaald herkent KERNCONF= niet.
-
+
+ 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;.
+ /boot/kernel.oldDe 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.JoelDahlBijgewerkt voor &os; 5.X door Het instellingenbestandkernelNOTESkernelLINTNOTESLINTkernelinstellingenbestandHet 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
+ &prompt.root; cd /usr/src/sys/i386/conf && make LINTkernelinstellingenbestandHet 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.kerneloptiesmachinemachine i386Dit is de architectuur van de machine. Het moet
één van alpha,
amd64, i386,
ia64, pc98,
powerpc of sparc64
zijn.kerneloptiescpucpu I486_CPU
cpu I586_CPU
cpu I686_CPUBovenstaande 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.kerneloptiescputypeDe 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.kerneloptiesidentident GENERICDit 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 taakplannerDe 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 # internetwerkenNetwerkondersteuning. 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 communicatieprotocollenDit zet de IPv6-communicatieprotocollen aan.options FFS # Berkeley Fast BestandssysteemDit 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 inDeze 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 toeganscontrolelijstenMet 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 mappenDeze 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 rootapparaatDeze optie zet ondersteuning aan voor een virtuële
schijf die in het geheugen wordt geïmplementeerd en als
rootapparaat wordt gebruikt.kerneloptiesNFSkerneloptiesNFS_ROOToptions NFSCLIENT # Netwerk Bestandssysteem Client
options NFSSERVER # Netwerk Bestandssysteem Server
options NFS_ROOT # NFS bruikbaar als /, NFSCLIENT nodigHet netwerkbestandssysteem. Dit kan weggelaten worden tenzij
er gepland is om partities te mounten van een &unix;
bestandsserver over TCP/IP.kerneloptiesMSDOSFSoptions MSDOSFS # MSDOS BestandssysteemHet &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 BestandssysteemHet 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 # ProcesbestandssysteemHet 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 frameworkPSEUDOFS 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; 4Deze 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) ondersteuningDit schakelt kernelondersteuning voor het volgen processen
in, wat handig is tijdens debuggen.options SYSVSHM # SYSV-stijl gedeeld geheugenDeze 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 berichtwachtrijenDit biedt ondersteuning voor System V berichten. Ook
deze optie voegt slechts een paar honderd bytes aan de kernel
toe.options SYSVSEM # SYSV-stijl semaforenDit 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 extensiesDit 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 /devDeze 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.kerneloptiesSMPdevice apic # I/O APICHet 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 isaAlle 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 eisaNeem dit op voor een EISA-moederbord. Dit zet ondersteuning
voor zelfdetectie en -instelling aan voor alle apparaten op de
EISA-bus.device pciNeem 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 fdcDit is de controller voor de floppydrive.# ATA- en ATAPI-apparaten
device ataDit 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 schijvenDit is samen met device ata nodig voor ATA
schijven.device ataraid # ATA RAID schijvenDit is samen met device ata nodig voor ATA
RAID-schijven.
device atapicd # ATAPI cd-rom drivesDit is samen met device ata nodig voor
ATAPI cd-rom drives.device atapifd # ATAPI floppy drivesDit is samen met device ata nodig voor
ATAPI floppydrives.device atapist # ATAPI tape drivesDit is samen met device ata nodig voor
ATAPI tapedrives.options ATA_STATIC_ID # Statische apparaatnummeringDit 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/18C50SCSI 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 RAIDOndersteunde 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 toetsenbordcontrollerDe 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 toetsenbordHet 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 muisDit apparaat kan gebruikt worden als de muis in de
PS/2-muispoort wordt geplugd.device vga # VGA videokaart stuurprogrammaHet stuurprogramma voor de videokaart.# splash screen/screensaver
device splash # Splash screen en screensaver ondersteuningEen 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 scsc 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 blokcursorDit 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 agpNeem 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 npxnpx 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 apmOndersteuning 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 pmtimerHet 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) busOndersteuning voor PCMCIA. Dit is wenselijk voor
laptopgebruikers.# Serial (COM) poorten
device sio # 8250, 16[45]50-gebaseerde seriële poortenDit 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 ppcDit is de interface voor de parallelle poort op de
ISA-bus.device ppbus # Parallelle poortbus (verplicht)Biedt ondersteuning voor de parallelle poortbus.device lpt # PrinterOndersteuning voor parallelle poort-printers.Alle van de bovenstaande drie zijn noodzakelijk om
ondersteuning voor parallelle printers aan te zetten.device plip # TCP/IP over parallelDit is het stuurprogramma voor de parallelle
netwerkinterface.device ppi # Parallelle poort interface apparaatDe algemene I/O (geek-poort) + IEEE1284 I/O.#device vpo # scbus en da verplichtzipdriveDit 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 pucDit 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 ondersteuningOndersteuning 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 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 leISA 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 loopbackDit 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 loopdevice mem # Geheugen- en kernelgeheugenapparatenDe geheugenapparaten van het systeem.device io # I/O apparaatDeze 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 apparaatCryptografisch veilige willekeurige getallengenerator.device ether # Ethernet ondersteuningether 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 SLIPsl 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 PPPDit 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 # GeheugenschijvenPseudo-apparaten die een schijf in het geheugen implementeren.
Met &os; 4.X dient pseudo-device md
gebruikt te worden.device gif # IPv6 en IPv4 tunnelenDit 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 gifzelfklonend 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 pakketfilterDit 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 EthernetOndersteuning 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
(PAE)Physical Address Extensions
(PAE)veel geheugenSommige 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 PAEDe 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 makenapparaatnodesMAKEDEVAls &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 ad0Dit 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 acd0Als 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 snd0Als 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 oplossenEr zijn vijf categoriën problemen die op kunnen treden
tijdens het bouwen van een aangepaste kernel:config faaltAls 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 errormake faaltAls 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 misluktAls 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 opAls 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/kernelVoor 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 /kernelAls 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 /kernelDe kernel werkt, maar &man.ps.1; werkt niet meerAls 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/linuxemu/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml
index 13ca39aaf4..c335a6564a 100644
--- a/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/linuxemu/chapter.sgml
@@ -1,4027 +1,4027 @@
JimMockGeherstructureerd en delen bijgewerkt door Brian N.HandyOrigineel bijgedragen door RichMurpheyRenéLadanVertaald door &linux; binaire compatibiliteitOverzicht&os; levert binaire compatibiliteit met verscheidene andere
&unix; achtige besturingssystemen, waaronder &linux;. Op dit
moment kan de vraag gesteld worden waarom &os; nu precies
&linux; binaries moet kunnen draaien. Het antwoord is dat veel
bedrijven en ontwikkelaars alleen ontwikkelen voor &linux;, omdat
dat het nieuwste hebbeding is in de wereld van
computers. Dat laat &os; gebruikers al zeurend achter bij
diezelfde bedrijven en ontwikkelaars om originele &os; versies
van hun applicaties. Het probleem is dat veel van deze bedrijven
zich niet goed realiseren hoeveel mensen hun product zouden
gebruiken als er ook &os; versies van waren en de meesten blijven
alleen voor &linux; ontwikkelen. Dus wat moet een &os; gebruiker
doen? Hier komt de &linux; binaire compatibiliteit van &os; om
de hoek kijken.In een notendop stelt de compatibiliteit &os; in staat om
rond de 90% van alle &linux; applicaties zonder wijzigingen te
draaien. Dit omvat applicaties zoals
&staroffice;, de &linux; versie van
&netscape;,
&adobe; &acrobat;,
RealPlayer,
VMWare,
&oracle;, WordPerfect,
Doom,
Quake en meer. Er wordt zelfs gemeld
dat in sommige gevallen &linux; binaries beter presteren op &os;
dan op &linux;.Er zijn echter enkele &linux;-specifieke
besturingssysteemeigenschappen die niet door &os; ondersteund
worden. &linux; binaries werken niet op &os; als ze overvloedig
gebruik maken van &i386; specifieke aanroepen, zoals het
aanzetten van de virtuele 8086 modus.Na het lezen van dit hoofdstuk weet de lezer:Hoe &linux; binaire compatibiliteit op een systeem aan
te zetten;Hoe aanvullende &linux; gedeelde bibliotheken te
installeren;Hoe &linux; applicaties op een &os; systeem te
installeren;De implementatiedetails van &linux; compatibiliteit in
&os;.Aangeraden voorkennis:Hoe extra software van derden te installeren ().InstallatieKLD (kernel loadable object)&linux; binaire compatibiliteit staat standaard niet aan. De
gemakkelijkste manier om deze functionaliteit aan te zetten is
door het linux KLD object (Kernel
LoaDable object) te laden. Deze module kan geladen
worden door het volgende commando als root
uit te voeren:&prompt.root; kldload linuxAls &linux; compatibiliteit altijd aan moet staan, dan moet
de volgende regel aan /etc/rc.conf
toegevoegd worden:linux_enable="YES"Met &man.kldstat.8; kan gecontroleerd worden of de KLD
geladen is:&prompt.user; kldstat
Id Refs Address Size Name
1 2 0xc0100000 16bd8 kernel
7 1 0xc24db000 d000 linux.kokerneloptiesLINUXAls het om enige reden ongewenst of onmogelijk is de KLD te
laden, dan kan de &linux; binaire compatibiliteit statisch in de
kernel gecompileerd worden door
options COMPAT_LINUX aan het
kernelinstellingenbestand toe te voegen. Daarna kan de nieuwe
kernel zoals beschreven in
geïnstalleerd worden.&linux; runtime bibliotheken installeren&linux;&linux; bibliotheken installerenDit kan op twee manieren gedaan worden: door de linux_base port te
gebruiken of door ze handmatig te
installeren.Installeren uit de linux_base portPortscollectieDit is verreweg de gemakkelijkste weg om te bewandelen
om de runtime bibliotheken te installeren. Het is net
als het installeren van andere ports uit de Portscollectie.
Dit kan met het volgende commando:&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distcleanNu is er werkende &linux; binaire compatibiliteit.
Sommige programma's kunnen klagen over onjuiste kleine
versies van de systeembibliotheken. Over het algemeen
schijnt dit echter geen probleem te zijn.Er kunnen verschillende versies van de emulators/linux_base port
beschikbaar zijn, overeenkomend met verschillende versies
van verscheidene &linux; distributies. Het is verstandig
de port te installeren die het meest voldoet aan de eisen
van de &linux; applicaties die geïnstalleerd gaan
worden.Bibliotheken handmatig installerenAls de Portscollectie niet is geïnstalleerd, kunnen
de bibliotheken met de hand geïnstalleerd worden. Om
alles te laten werken moeten de &linux; gedeelde bibliotheken
waarvan het programma afhankelijk is en de runtime linker
geïnstalleerd worden. Ook moet een shadow
root map aangemaakt worden,
/compat/linux, voor &linux; bibliotheken
op een &os; systeem. Elke gedeelde bibliotheek die wordt
geopend door &linux; programma's die op &os; draaien, kijken
eerst in deze boomstructuur. Dus als een &linux; programma
bijvoorbeeld /lib/libc.so laadt,
probeert &os; eerst
/compat/linux/lib/libc.so te openen, en
als die niet bestaat, probeert het
/lib/libc.so proberen. Gedeelde
bibliotheken moeten in de schaduwmapstructuur
geïnstalleerd worden in plaats van in de paden die het
&linux; ld.so rapporteert.In het algemeen geldt dat alleen de eerste paar keer
dat een &linux; binary wordt geïnstalleerd op een &os;
systeem naar de gedeelde bibliotheken gezocht wordt waar
&linux; binaries van afhankelijk zijn. Na een tijd is de
verzameling van &linux; gedeelde bibliotheken op een systeem
voldoende groot om nieuw geïmporteerde &linux; binaries
te kunnen draaien zonder enig extra werk.Extra gedeelde bibliotheken installerengedeelde bibliothekenWat als de linux_base port is
geïnstalleerd en een applicatie nog steeds klaagt over
ontbrekende gedeelde bibliotheken? Op zich zijn er twee
mogelijkheden (voor het opvolgen van deze instructies zijn
root rechten op een &os; systeem
vereist).Als er toegang is tot een &linux; systeem kan gekeken
worden welke gedeelde bibliotheken de applicatie nodig heeft
en kunnen ze gekopieerd worden naar het &os systeem. Dit
wordt toegelicht in het volgende voorbeeld:Stel dat FTP gebruikt is om de &linux; binary van
Doom op te halen en die op een
&linux; systeem staat waar toegang tot is. Dan kan met
ldd linuxdoom gecontroleerd worden welke
gedeelde bibliotheken er nodig zijn:&prompt.user; ldd linuxdoom
libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0
libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0
libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29symbolische linksAlle bestanden uit de laatste kolom zijn nodig en
moeten onder /compat/linux komen te
staat en de namen uit de eerste kolom moeten er als
symbolische links naar verwijzen. Dit betekent dat
uiteindelijk deze bestanden op een &os; systeem
staan:/compat/linux/usr/X11/lib/libXt.so.3.1.0
/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0
/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Als er al een &linux; gedeelde bibliotheek met een
groot revisienummer overeenstemmend met de eerste kolom
van de ldd uitvoer is, dan hoeft het
bestand uit de laatste kolom niet naar een systeem
gekopieerd te worden. Het bestand dat er al staat moet
werken. Het is aan te raden om de gedeelde bibliotheek
sowieso te kopiëren als het een nieuwere versie
is. De oude kan verwijderd worden, zolang de
symbolische link maar naar de nieuwe wijst. Dus als
deze bibliotheken op een systeem staan:/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -> libc.so.4.6.27en een nieuwe binary zegt een latere versie nodig
te hebben volgens de uitvoer van
ldd:libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29Als slechts één of twee versies
verouderd zijn in het laatste cijfer, dan hoeft
/lib/libc.so.4.6.29 niet
gekopieerd te worden, omdat het programma goed moet
werken met de ietwat oudere versie. Als er echter
behoefte aan is, kan besloten worden om
libc.so sowieso te verplaatsen,
en dat resulteert in:/compat/linux/lib/libc.so.4.6.29
/compat/linux/libc.so.4 -> lbic.so.4.6.29
Het symbolische link mechanisme is
alleen nodig voor &linux;
binaries. De &os; runtime linker zorgt zelf voor het
kijken naar passende grote revisienummers en daar hoeft
geen zorg over te bestaan.
&linux; ELF binaries installeren&linux;ELF binariesELF binaries hebben soms een extra stap van
branding nodig. Als er ongemerkt ELF binaries
worden gedraaid, onstaat er een foutmelding zoals de
volgende:&prompt.user; ./mijn-linux-elf-binary
ELF binary type not known
AbortOm de &os; kernel te helpen &os; ELF binaries en &linux;
binaries uit elkaar te houden, kan &man.brandelf.1; gebruikt
worden.&prompt.user; brandelf -t Linux mijn-linux-elf-binaryGNU gereedschapskistDe GNU gereedschapskist plaatst nu automatisch de juiste
merkinformatie in ELF binaries, dus deze stap zou steeds
overbodiger moeten worden in de toekomst.De hostnaamresolver instellenresolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keywordAls DNS niet werkt of de bovenstaande melding ontstaat, dan
moet /compat/linux/etc/host.conf ingesteld
worden met daarin:order hosts, bind
multi onDe volgorde geeft aan dat /etc/hosts
als eerste doorzocht wordt en DNS als tweede. Als
/compat/linux/etc/host.conf niet
geïnstalleerd is, vinden &linux; applicaties
/etc/host.conf van &os; en klagen ze over
de incompatibele &os; syntaxis. bind moet
verwijderd worden als er geen naamserver is ingesteld die
gebruik maakt van /etc/resolv.conf.MurrayStokelyBijgewerkt voor &mathematica; 4.X door BojanBistrovicSamengevoegd met werk van &mathematica; installerenapplicaties&mathematica;Dit document beschrijft het installatieproces van de &linux;
versie van &mathematica; 4.X op een
&os; systeem.De &linux; versie van
&mathematica; draait perfect op &os;,
maar de binaries die door Wolfram geleverd worden moeten gemerkt
worden zodat &os; weet dat het de Linux ABI moet gebruiken om ze
uit te voeren.De &linux; versie van
&mathematica; of
&mathematica; for Students kan
direct bij Wolfram besteld worden op .De &linux; binaries merkenDe &linux; binaries zijn geplaatst in de map
Unix van de
&mathematica; cd-rom geleverd door
Wolfram. Deze mappenstructuur moet naar de lokale harde schijf
gekopieerd worden, zodat de &linux; binaries gemerkt kunnen
wordt met &man.brandelf.1; voordat de installer draait:&prompt.root; mount /cdrom
&prompt.root; cp -rp /cdrom/Unix/ /localdir/
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Kernel/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/FrontEnd/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Installation/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Graphics/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Converters/Binaries/Linux/*
&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/LicenseManager/Binaries/Linux/mathlm
&prompt.root; cd /localdir/Installers/Linux/
&prompt.root; ./MathInstallerAls alternatief kan simpelweg het standaard ELF merk op
Linux gezet worden voor alle ongemerkte binaries met het
commando:&prompt.root; sysctl kern.fallback_elf_brand=3Dit laat &os; aannemen dat alle ongemerkte ELF binaries de
Linux ABI gebruiken en dus zou de installer rechtstreeks van
de cd-rom moeten kunnen draaien.&mathematica; wachtwoord opvragenVoordat &mathematica; kan
draaien, moet er een wachtwoord komen van Wolfram dat
overeenkomt met het machine ID.EthernetMAC adresAls de &linux; compatibiliteits-runtime bibliotheken zijn
geïnstalleerd en &mathematica;
is uitgepaktm, dan kan het machine ID verkregen
worden door mathinfo te draaien in de
installatiemap. Dit machine-ID is alleen op het MAC adres van
de eerste Ethernetkaart gebaseerd.&prompt.root; cd /localdir/Files/SystemFiles/Installation/Binaries/Linux
&prompt.root; mathinfo
disco.example.com 7115-70839-20412Bij een registratie bij Wolfram, per email, telefoon of
fax, wordt het machine ID opgegeven en zij
reageren met een overeenkomstig wachtwoord dat uit groepen
getallen bestaat. Deze informatie kan ingevoerd worden bij het
voor de eerste keer draaien van
&mathematica;, net als voor elk
ander &mathematica; platform.Het &mathematica; frontend over een netwerk
draaien&mathematica; gebruikt enkele
speciale lettertypen om tekens af te beelden die niet aanwezig
zijn in een standaard lettertypeverzameling (integralen,
sommen, Griekse letters, enzovoort). Het X-protocol vereist
dat deze lettertypen lokaal worden
geïnstalleerd. Dit betekent dat deze lettertypen
gekopieerd moeten worden vanaf de cd-rom of vanaf een host met
&mathematica; erop naar de lokale
machine. Deze lettertypen worden meestal opgeslagen in
/cdrom/Unix/Files/SystemFiles/Fonts op de
cd-rom of in
/usr/local/mathematica/SystemFiles/Fonts
op de harde schijf. De eigenlijke lettertypen staan in de
submap Type1 en X.
Er zijn verschillende manieren om ze te installeren, zoals
hieronder staat beschreven.De eerste manier is om ze te kopiëren in
één van de bestaande lettertypenmappen in
/usr/X11R6/lib/X11/fonts. Hiertoe dient
fonts.dir bewerkt te worden door de namen
van de lettertypen eraan toe te voegen het aantal lettertypen
op de eerste regel te veranderen. Als alternatief kan ook
eenvoudig &man.mkfontdir.1; in de map gedraaid worden waar de
lettertypen heen zijn gekopieerd.De tweede manier om dit te doen is door de mappen naar
/usr/X11R6/lib/X11/fonts te
kopiëren:&prompt.root; cd /usr/X11R6/lib/X11/fonts
&prompt.root; mkdir X
&prompt.root; mkdir MathType1
&prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts
&prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X
&prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; cd /usr/X11R6/lib/X11/fonts/X
&prompt.root; mkfontdir
&prompt.root; cd ../MathType1
&prompt.root; mkfontdirVoeg nu de nieuwe lettertypenmappen toe aan het
lettertypenpad:&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X
&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; xset fp rehashAls de &xorg; server gebruikt
wordt, kunnen deze lettertypenmappen automatisch geladen worden
door ze aan xorg.conf toe te
voegen.Voor &xfree86; servers is het
instellingenbestand XF86Config.lettertypenAls er nog geen map
/usr/X11R6/lib/X11/fonts/Type1 bestaat,
kan de naam van de map MathType1 in het
bovenstaande voorbeeld veranderd worden naar
Type1.AaronKaplanBijgedragen door RobertGetschmannMet dank aan &maple; installerenapplicatiesMaple&maple; is een commercieel
wiskundeprogramma vergelijkbaar met
&mathematica;. De software is te koop
op en kan daar
ook geregistreerd worden voor een licentiebestand. Om deze
software op &os; te installeren kunnen de volgende eenvoudige
stappen gevolgd worden:Voer het INSTALL> shellscript
uit van de productdistributie. Kies de RedHat
optie als daarom wordt gevraagd door het
installatieprogramma. Een typische installatiemap zou
/usr/local/maple
zijn.Bestel, als dat nog niet gedaan is, een licentie voor
&maple; van Maple Waterloo
Software () en kopieer
deze naar
/usr/local/maple/license/license.dat.Installeer de FLEXlm
licentiebeheerder met het installatieshellscript
INSTALL_LIC, dat geleverd wordt bij
&maple;. Stel de primaire
hostnaam voor de machine in voor de licentieserver.Patch het bestand
/usr/local/maple/bin/maple.system.type
met het volgende: ----- knip ------------------
*** maple.system.type.orig Sun Jul 8 16:35:33 2001
--- maple.system.type Sun Jul 8 16:35:51 2001
***************
*** 72,77 ****
--- 72,78 ----
# the IBM RS/6000 AIX case
MAPLE_BIN="bin.IBM_RISC_UNIX"
;;
+ "FreeBSD"|\
"Linux")
# the Linux/x86 case
# We have two Linux implementations, one for Red Hat and
----- knip einde van patch -----Achter "FreeBSD"| mogen geen verdere
witvelden staan.Deze patch instrueert &maple;
om &os; als een &linux; systeem te herkennen.
Het shellscript bin/maple roept het
shellscript bin/maple.system.type aan,
dat op zijn beurt uname -a aanroept om
achter de naam van het besturingssysteem te komen.
Afhankelijk van de naam van het besturingssysteem zoekt het
uit welke binaries het moet gebruiken.Start de licentieserver.Het volgende script, geïnstalleerd als
/usr/local/etc/rc.d/lmgrd.sh, is een
gemakkelijke manier om lmgrd op te
starten: ----- knip ------------
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX
export PATH
LICENSE_FILE=/usr/local/maple/license/license.dat
LOG=/var/log/lmgrd.log
case "$1" in
start)
- lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
+ lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
echo -n " lmgrd"
;;
stop)
- lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
+ lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
;;
*)
- echo "Usage: `basename $0` {start|stop}" 1>&2
+ echo "Usage: `basename $0` {start|stop}" 1>&2
exit 64
;;
esac
exit 0
----- knip ------------&maple; testen:&prompt.user; cd /usr/local/maple/bin
&prompt.user; ./xmapleNu hoort het programma te draaien. Het is belangrijk om
Maplesoft te schrijven om ze te laten weten dat een echte
&os; versie gewenst is!Gemeenschappelijke verborgen gevarenDe FLEXlm
licentiebeheerder kan een lastig programma zijn om mee te
werken. Aanvullende documentatie staat op .lmgrd staat er bekend om erg
kieskeurig over het licentiebestand te zijn en core te dumpen
als er een probleem is. Een correct licentiebestand ziet er
zo uit:# =======================================================
# License File for UNIX Installations ("Pointer File")
# =======================================================
SERVER chillig ANY
#USE_SERVER
VENDOR maplelmg
FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \
ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
SN=XXXXXXXXXHet serienummer en de sleutel zijn vervangen door
X'en. chillig is de
hostnaam.Het bewerken van het licentiebestand lukt zolang de
regel FEATURE niet verandert (die
beschermd is door de licentiesleutel).DanPellegBijgedragen door &matlab; installerenapplicaties&matlab;Dit document beschrijft het installatieproces van de &linux;
versie van &matlab; 6.5 op een &os;
systeem. Het werkt best goed, met uitzondering van de
&java.virtual.machine; (zie ).De &linux; versie van &matlab; kan
besteld worden bij The MathWorks op . Er dient ook een
licentiebestand of instructies hoe dat te maken te zijn. Het is
belangrijk om Maplesoft te schrijven om ze te laten weten dat een
echte &os; versie gewenst is!&matlab; installerenOm &matlab; te
installeren:Laad de installatie-cd-rom en mount die. Start het
installatiescript als root:&prompt.root; /compat/linux/bin/sh /cdrom/installHet is een grafisch installatieprogramma. Als er
foutmeldingen verschijnen dat het programma geen scherm
kan openen, kan setenv HOME
~GEBRUIKER
uitgevoerd worden, waar
GEBRUIKER de gebruiker is
waarmee &man.su.1; is gedaan.Als om de &matlab; rootmap
wordt gevraagd, dient
/compat/linux/usr/local/matlab
opgegeven te worden.Voer op de commandoregel het volgende uit om de
rest van het installatieproces gemakkelijk te houden:
set
MATLAB=/compat/linux/usr/local/matlab.Wijzig het licentiebestand zoals aangegeven tijdens het
verkrijgen van de licentie voor
&matlab;.Dit bestand kan van tevoren gemaakt worden met een
tekstverwerker en door het te kopiëren naar
$MATLAB/license.dat voordat het
installatieprogramma vraagt om het te bewerken.Maak het installatieproces af.Nu is de installatie van
&matlab; compleet. De volgende
stappen lijmen het aan het &os; systeem.Licentiebeheerder startenMaak symbolische links voor de scriptbestanden van de
licentiebeheerder:&prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW
&prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMWMaak een opstartbestand in
/usr/local/etc/rc.d/flexlm.sh.
Onderstaand voorbeeld is een gewijzigde versie van het
meegeleverde $MATLAB/etc/rc.lm.glnx86.
De wijzigingen omvatten bestandslocaties en het starten
van de licentiebeheerder onder &linux;-emulatie.#!/bin/sh
case "$1" in
start)
if [ -f /usr/local/etc/lmboot_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u gebruikersnaam && echo 'MATLAB_lmgrd'
fi
;;
stop)
if [ -f /usr/local/etc/lmdown_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0Het bestand moet uitvoerbaar zijn:&prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.shOok moet bovenstaande
gebruikersnaam vervangen
worden door een geldige gebruikersnaam op het systeem
(maar niet door root).Start de licentiebeheerder op met het commando:&prompt.root; /usr/local/etc/rc.d/flexlm.sh startDe &java; runtime-omgeving linkenVerander de &java; Runtime
Environment Link naar een die werkt op &os;:&prompt.root; cd $MATLAB/sys/java/jre/glnx86
&prompt.root; unlink jre; ln -s ./jre1.1.8 ./jre&matlab; opstartscript makenPlaats het volgende startscript in
/usr/local/bin/matlab:#!/bin/sh
/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"Geef vervolgens het commando
chmod +x /usr/local/bin/matlab.Afhankelijk van de versie van emulators/linux_base, kunnen er
fouten optreden als dit script draait. Om dat te voorkomen,
dient in
/compat/linux/usr/local/matlab/bin/matlab
de regel:if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then(in versie 13.0.1 staat dit op regel 410) veranderd te
worden in:if test -L $newbase; then&matlab; afsluitscript makenHet volgende is nodig om een probleem op te lossen dat
samenhangt met het onjuist afsluiten van &matlab;.Maak het bestand
$MATLAB/toolbox/local/finish.m dat
alleen de volgende regel bevat:! $MATLAB/bin/finish.sh$MATLAB$ is hier letterlijk
bedoeld.In dezelfde map staan de bestanden
finishsav.m en
finishdlg.m, die de mogelijkheid
geven om de werkomgeving te bewaren vóór
het afsluiten. Als één van deze scripts
gebruikt wordt, dient de bovenstaande regel direct na het
commando save ingevoegd te
worden.Maak het bestand
$MATLAB/bin/finish.sh, dat het
volgende bevat:#!/usr/compat/linux/bin/sh
(sleep 5; killall -1 matlab_helper) &
exit 0Maak het bestand uitvoerbaar:&prompt.root; chmod +x $MATLAB/bin/finish.sh&matlab; gebruikenNu kan met matlab het programma gestart
worden.MarcelMoolenaarBijgedragen door &oracle; installerenapplicatiesOracleVoorwoordHieronder wordt het installatieproces van
&oracle; 8.0.5 en
&oracle; 8.0.5.1 Enterprise
Edition voor &linux; op een &os;-machine
beschreven.De &linux;-omgeving installerenUit de Portscollectie dienen emulators/linux_base en devel/linux_devtools
geïnstalleerd te zijn. Als er problemen zijn met deze
ports, kan het zijn dat de packages of oudere versies uit de
Portscollectie gebruikt moeten worden.Om de intelligente agent te draaien, moet ook het Red Hat
Tcl package geïnstalleerd worden:
tcl-8.0.3-20.i386.rpm. Het algemene
commando om packages te installeren met de officiële
RPM port (archivers/rpm) is:&prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm packageDe installatie van het package
hoort foutloos te verlopen.De &oracle;-omgeving creërenVoordat &oracle;
geïnstalleerd kan worden, moet een juiste omgeving
opgezet worden. Dit document beschrijft alleen welke
speciale dingen gedaan moeten worden om
&oracle; voor &linux; op &os; te
draaien, en niet wat beschreven staat in de
&oracle;
installatiehandleiding.KerneloptimalisatiekerneloptimalisatieZoals beschreven staat in de
&oracle; installatiehandleiding
moet de maximale grootte van het gedeelde geheugen ingesteld
worden. Op &os; moet SHMMAX niet gebruikt
worden. SHMMAX wordt slechts uit
SHMMAXPGS en PGSIZE
berekend. Daarom dient SHMMAXPGS
gedefinieerd te worden. Alle andere opties kunnen gebruikt
worden zoals in de handleiding staat beschreven.
Bijvoorbeeld:options SHMMAXPGS=10000
options SHMMNI=100
options SHMSEG=10
options SEMMNS=200
options SEMMNI=70
options SEMMSL=61Deze opties kunnen naargelang het gebruik van
&oracle; ingesteld worden.Ook de volgende opties dienen in het
kernelinstellingenbestand te staan:options SYSVSHM #SysV gedeeld geheugen
options SYSVSEM #SysV semaforen
options SYSVMSG #SysV interprocescommunicatie&oracle; accountCreeër een oracle account op
dezelfde manier als elk ander account. Het
oracle account is alleen bijzonder in
het opzicht dat het een &linux; shell moet hebben. Dat kan
door /compat/linux/bin/bash toe te voegen
aan /etc/shells en de shell voor het
oracle account in te stellen op
/compat/linux/bin/bash.OmgevingNaast de normale &oracle;
variabelen als ORACLE_HOME en
ORACLE_SID moeten de volgende
omgevingsvariabelen ingesteld worden:VariabeleWaardeLD_LIBRARY_PATH$ORACLE_HOME/libCLASSPATH$ORACLE_HOME/jdbc/lib/classes111.zipPATH/compat/linux/bin;
/compat/linux/sbin;
/compat/linux/usr/bin;
/compat/linux/usr/sbin;
/bin;
/sbin;
/usr/bin;
/usr/sbin;
/usr/local/bin;
$ORACLE_HOME/binHet is aan te raden om alle omgevingsvariabelen in
.profile in te stellen. Een volledig
voorbeeld is:ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=386x; export ORACLE_TERM
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
export CLASSPATH
PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin
PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
export PATH&oracle; installerenWegens een kleine inconsistentie in de &linux; emulator
moet de map .oracle aangemaakt worden
in /var/tmp voordat het
installatieprogramma wordt gestart. De gebruiker
oracle moet de eigenaar van deze map
zijn. Nu hoort &oracle; zonder
problemen te installeren. Bij problemen dienen eerst de
&oracle; distributie en/of de
instellingen gecontroleerd te worden! Nadat
&oracle; is geïnstalleerd,
moeten de patches uit de volgende twee secties
geïnstalleerd worden.Een veelvoorkomend probleem is dat de adapter voor het
TCP-protocol niet goed is geïnstalleerd. De consequentie
daarvan is dat er geen TCP-listeners gestart kunnen worden. De
volgende acties helpen om dit probleem op te lossen:&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk ntcontab.o
&prompt.root; cd $ORACLE_HOME/lib
&prompt.root; ar r libnetwork.a ntcontab.o
&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk installHierna dient root.sh nogmaals te
draaien!root.sh patchenAls &oracle;
geïnstalleerd wordt, worden sommige acties die als
root moeten worden uitgevoerd
geregistreerd in een shellscript met de naam
root.sh. Dit script komt in de map
orainst te staan. De volgende patch
dient uitgevoerd te worden op root.sh om
het de juiste locatie van chown te laten
gebruiken of als alternatief kan het script onder een
originele &linux; shell gedraaid worden*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
--- orainst/root.sh Mon Dec 28 15:58:53 1998
***************
*** 31,37 ****
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/bin/chown
#
# Define variables to be used in this script
--- 31,37 ----
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/usr/sbin/chown
#
# Define variables to be used in this scriptAls &oracle; niet vanaf
een cd-rom wordt geïnstalleerd, kan de broncode van
root.sh aangepast worden. Die heet
rthd.sh en staat in de map
orainst in de broncodestructuur.
genclntsh patchenHet script genclntsh wordt gebruikt om
é´n enkele gedeelde bibliotheek voor de client
aan te maken. Het wordt gebruikt tijdens het maken van de
demonstraties. Met de volgende patch wordt de definitie van
PATH uitgecommentarieerd:*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
--- bin/genclntsh Tue Dec 22 15:36:49 1998
***************
*** 32,38 ****
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst
--- 32,38 ----
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst&oracle; draaienAls de instructies worden gevolgd, draait
&oracle; als op &linux; zelf.HolgerKippBijgedragen door ValentinoVaschettoOriginele versie omgezet naar SGML door &sap.r3; installerenapplicaties&sap.r3;Installaties van &sap; Systemen
die &os; gebruiken worden niet ondersteund door het &sap;
ondersteuningsteam. Zij bieden alleen ondersteuning voor
gecertificeerde platformen.VoorwoordDit document beschrijft een mogelijke manier om een
&sap.r3; System met
&oracle; Database voor &linux; op
een &os; machine, inclusief de installatie van &os; en
&oracle;. Er worden twee
instellingen beschreven:&sap.r3; 4.6B (IDES) met
&oracle; 8.0.5 op
&os; 4.3–STABLE;.&sap.r3; 4.6C met
&oracle; 8.1.7 op
&os; 4.5–STABLE.Hoewel dit document alle belangrijke stappen in meer detail
probeert te beschrijven, is het niet bedoeld als een vervanging
voor de &oracle; en
&sap.r3;
installatiehandleidingen.Voor specifieke vragen wordt verwezen naar de documentatie
die geleverd wordt bij de &sap.r3;
&linux; editie voor &sap; en
&oracle; en de bronnen van
&oracle; en
&sap; OSS.SoftwareVoor de &sap; installaties zijn
de volgende cd-roms gebruikt:&sap.r3; 4.6B, &oracle; 8.0.5NaamNummerBeschrijvingKERNEL51009113SAP Kernel Oracle / Installation / AIX, Linux,
SolarisRDBMS51007558Oracle / RDBMS 8.0.5.X / LinuxEXPORT151010208IDES / DB-Export / Disc 1 of 6EXPORT251010209IDES / DB-Export / Disc 2 of 6EXPORT351010210IDES / DB-Export / Disc 3 of 6EXPORT451010211IDES / DB-Export / Disc 4 of 6EXPORT551010212IDES / DB-Export / Disc 5 of 6EXPORT651010213IDES / DB-Export / Disc 6 of 6Ook zijn de &oracle; 8 Server
(Pre-productie versie 8.0.5 voor &linux; kernelversie 2.0.33)
cd-rom gebruikt, die niet echt noodzakelijk is en
&os; 4.3-STABLE (een paar dagen na de 4.3-RELEASE).&sap.r3; 4.6C SR2, &oracle; 8.1.7NaamNummerBeschrijvingKERNEL51014004SAP Kernel Oracle / SAP Kernel Version 4.6D /
DEC, LinuxRDBMS51012930Oracle 8.1.7/ RDBMS / LinuxEXPORT151013953Release 4.6C SR2 / Export / Disc 1 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 2 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 3 of 4EXPORT151013953Release 4.6C SR2 / Export / Disc 4 of 4LANG151013954Release 4.6C SR2 / Language / DE, EN, FR /
Disc 1 van 3Afhankelijk van de talen die geïnstalleerd moeten
worden kunnen aanvullende taal-cd-roms nodig zijn. Hier
worden DE en EN gebruikt, dus is alleen de eerste taal-cd-rom
nodig. Een kleine kanttekening is dat de nummers van alle
vier de EXPORT cd-roms identiek zijn. Ook hebben alle drie de
taal-cd-roms hetzelfde nummer (dit verschilt met de 4.6B IDES
release cd-rom-nummering). Ten tijde van schrijven draait
deze installatie op &os; 4.5-STABLE (20.03.2002).Opmerkingen over &sap;Het wordt aangeraden de volgende notities
vóór de installatie van
&sap.r3; gelezen te hebben. Ze
waren bruikbaar tijdens de installatie:&sap.r3; 4.6B, &oracle; 8.0.5NummerTitel0171356SAP Software on Linux: Essential Comments0201147INST: 4.6C R/3 Inst. on UNIX - Oracle0373203Update / Migration Oracle 8.0.5 -->
8.0.6/8.1.6 LINUX0072984Release of Digital UNIX 4.0B for Oracle0130581R3SETUP step DIPGNTAB terminates0144978Your system has not been installed correctly0162266Questions and tips for R3SETUP on
Windows NT / W2K&sap.r3; 4.6C, &oracle; 8.1.7NummerTitel0015023Initializing table TCPDB (RSXP0004) (EBCDIC)0045619R/3 with several languages or typefaces0171356SAP Software on Linux: Essential Comments0195603RedHat 6.1 Enterprise version: Known problems0212876The new archiving tool SAPCAR0300900Linux: Released DELL Hardware0377187RedHat 6.2: important remarks0387074INST: R/3 4.6C SR2 Installation on UNIX0387077INST: R/3 4.6C SR2 Inst. on UNIX - Oracle0387078SAP Software on UNIX: OS Dependencies 4.6C SR2Benodigde hardwareDe volgende uitrusting is voldoende voor de installatie van
een &sap.r3; Systeem. Voor
productiegebruik geldt natuurlijk dat exactere gegevens nodig
zijn:Component4.6B4.6CProcessor2 x 800MHz &pentium; III2 x 800MHz &pentium; IIIGeheugen1GB ECC2GB ECCHardeschijfruimte50-60GB (IDES)50-60GB (IDES)Voor productiegebruik zijn &xeon; processoren met een grote
cache, schijftoegang op hoge snelheid (SCSI,
RAID-hardwarecontroller) USV en ECC-RAM aanbevolen. De
grote hoeveelheid benodigde schijfruimte is te wijten aan het
vooringestelde IDES-systeem, dat 27 GB aan
databasebestanden aanmaakt tijdens de installatie. Deze ruimte
is ook voldoende voor beginnende productiesystemen en
applicatiegegevens.&sap.r3; 4.6B, &oracle; 8.0.5De volgende kant-en-klare hardware werd gebruikt: een
dual processorbord met 2 800 MHz &pentium;nbsp;III
processoren, &adaptec; 21960 Ultra160 SCSI adapter (om een
40/80 GB DLT tapedrive en cd-rom aan te spreken),
&mylex; &acceleraid; (2 kanalen, firmware 6.00-1-00 met
32 MB RAM). Aan de &mylex; RAID-controller zijn twee
17 GB harde schijven (gespiegeld) en vier 36 GB
harde schijven (RAID-niveau 5) bevestigd.&sap.r3; 4.6C, &oracle; 8.1.7Voor deze installatie werd een &dell; &poweredge; 2500
gebruikt: een dual processorbord met twee 1000 MHz
&pentium; III processoren (256 kB cache), 2 GB
PC133 ECC SDRAM, PERC/3 DC PCI RAID-controller met
128 MB en een EIDE DVD-ROM-drive. Aan de
RAID-controller zijn twee 18 GB harde schijven
(gespiegeld) en vier 36 GB harde schijven (RAID-niveau
5) bevestigd.Installatie van &os;Eerst moet &os; geïnstalleerd worden. Er zijn
verschillende manieren om dit te doen (&os; 4.3 was
geïnstalleerd via FTP, &os; 4.5 direct vanaf de
RELEASE cd-rom). Er staat meer informatie in .SchijfindelingOm het eenvoudig te houden, werd voor zowel de
&sap.r3; 46B installatie als de
&sap.r3; 46C SR2 installatie
dezelfde schijfindeling gebruikt. Alleen de apparaatnamen
veranderden, omdat de installaties op verschillende hardware
werden gedaan (/dev/da respectievelijk
/dev/amr, dus als een AMI &megaraid;
wordt gebruikt, is /dev/amr0s1a te zien
in plaats van /dev/da0s1a):BestandssysteemGrootte (1k-blokken)Grootte (GB)Gemount aan/dev/da0s1a1.016.3031//dev/da0s1b6swap/dev/da0s1e2.032.6232/var/dev/da0s1f8.205.3398/usr/dev/da1s1e45.734.36145/compat/linux/oracle/dev/da1s1f2.032.6232/compat/linux/sapmnt/dev/da1s1g2.032.6232/compat/linux/usr/sapDe twee logische drives dienen tevoren met de &mylex;- of
PERC/3 RAID-software ingesteld en geïnitialiseerd te
worden. De software kan tijdens de opstartfase van het
BIOS gestart worden.De schijfindelingen wijken licht af van de aanbevelingen
van &sap;, omdat &sap; aanbeveelt om de
&oracle; submappen (en enkele
andere) gescheiden te mounten. Hier is besloten om ze
omwille van de eenvoud gewoon als echte submappen aan te
maken.make world en een nieuwe
kernelNu dient de nieuwste -STABLE-broncode gedownload te
worden. Nadat het kernelinstellingenbestand is aangepast,
kunnen de wereld en de kernel opnieuw gebouwd worden.
Hier moeten ook de kernelparameters in staan die
nodig zijn voor &sap.r3; en
&oracle;.De &linux;-omgeving installerenHet &linux; basissysteem installerenEerst moet de linux_base port
geïnstalleerd worden (als
root):&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distcleanDe &linux; ontwikkelomgeving installerenDe &linux;-ontwikkelomgeving is volgens noodzakelijk om
&oracle; op &os; te
installeren:&prompt.root; cd /usr/ports/devel/linux_devtools
&prompt.root; make install distcleanDe &linux;-ontwikkelomgeving is alleen voor de
&sap.r3; 46B IDES installatie
geïnstalleerd. Het is niet nodig als de
&oracle; DB niet opnieuw wordt
gelinkt op het &os;-systeem. Dit is het geval als de
&oracle; tarball van een
&linux;-systeem wordt gebruikt.De benodigde RPM's installerenRPM'sOm het R3SETUP programma te starten is
PAM-ondersteuning nodig. Tijdens de eerste installatie van
&sap; op &os; 4.3-STABLE is
geprobeerd om PAM met alle benodigde packages te installeren
en uiteindelijk is de installatie van het PAM-package
afgedwongen, wat werkte. Voor &sap.r3; 4.6C
SR 2 is we meteen de installatie van het PAM
RPM afgedwongen, wat ook werkte, dus lijkt het erop dat de
afhankelijke packages niet nodig zijn:&prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \
pam-0.68-7.rpmOm &oracle; 8.0.5 de
intelligente agent te laten draaien, moest ook het
Tcl-package van RedHat
tcl-8.0.5-30.i386.prm geïnstalleerd
worden (anders mislukt het herlinken tijdens de installatie
van &oracle;). Er zijn nog wat
andere gevallen met betrekking tot het herlinken van
&oracle;, maar dat is een
&oracle; &linux;-geval en niet
&os;-specifiek.Aanvullende hintsHet kan ook een goed idee zijn om
linprocfs aan
/etc/fstab toe te voegen. Meer
informatie is te vinden in &man.linprocfs.5;. Een andere
parameter om in te stellen is
kern.fallback_elf_brand=3 in
/etc/sysctl.conf.De &sap.r3;-omgeving makenDe benodigde bestandssystemen en mountpunten
creërenVoor een eenvoudige installatie is het voldoende om de
volgende bestandssystemen aan te maken:mountpuntgrootte in GB/compat/linux/oracle45 GB/compat/linux/sapmnt2 GB/compat/linux/usr/sap2 GBHet is ook noodzakelijk om enige mounts te maken,
anders klaagt de &sap; Installer
als die de gemaakte mounts controleert:&prompt.root; ln -s /compat/linux/oracle /oracle
&prompt.root; ln -s /compat/linux/sapmnt /sapmnt
&prompt.root; ln -s /compat/linux/usr/sap /usr/sapMogelijke foutmeldingen tijdens de installatie zijn (hier
met System PRD en de
&sap.r3; 4.6C
SR2-installatie):INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200
Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to
/sapmnt/PRD/exe. Creating if it does not exist...
WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400
Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file
/compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The
program cannot go on as long as this link exists at this
location. Move the link to another location.
ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0
can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content
'/sapmnt/PRD/exe'Gebruikers en mappen aanmaken&sap.r3; heeft twee gebruikers
en drie groepen nodig. De gebruikersnamen zijn afhankelijk
van de &sap; system ID (SID) die
uit drie letters bestaat. Enkele van deze SIDs zijn
gereserveerd door &sap;
(bijvoorbeeld SAP en
NIX. In de
&sap;-documentatie staat een
complete lijst). Voor de IDES-installatie is
IDS gebruikt, voor de 4.6C SR2-installatie
PRD, omdat dat systeem bedoeld is voor
productiegebruik. Daarvoor zijn de volgende groepen gebruikt
(groep-IDs kunnen afwijken, dat zijn gewoon de waardes die
voor deze specifieke installatie gebruikt zijn):groep-IDgroepsnaambeschrijving100dbaDataBase-Administrator101sapsys&sap; System102operDataBase-OperatorVoor een standaard &oracle;-
installatie wordt slechts é´n groep,
dba, gebruikt. De groep
oper gebruikt ook de groep
dba (er staat meer informatie in de
&oracle;- en
&sap;-documentatie).Tevens zijn de volgende gebruikers nodig:gebruikers-IDgebruikersnaamgenerieke naamgroepaanvullende groepenbeschrijving1000idsadm/prdadmsidadmsapsysoper&sap;-beheerder1002oraids/oraprdorasiddbaoper&oracle;-beheerderDe volgende regels voor &man.adduser.8; zijn nodig om de
&sap;-beheerder-gebruiker toe te
voegen:Name: sidadm
Password: ******
Fullname: SAP-beheerderSID
Uid: 1000
Gid: 101 (sapsys)
Class:
Groups: sapsys dba
HOME: /home/sidadm
Shell: bash (/compat/linux/bin/bash)en deze voor de
&oracle;-beheerder-gebruiker:Name: orasid
Password: ******
Fullname: Oracle-beheerderSID
Uid: 1002
Gid: 100 (dba)
Class:
Groups: dba
HOME: /oracle/sid
Shell: bash (/compat/linux/bin/bash)De &oracle;-beheerder moet ook
in de groep oper zitten als de groepen
dba en oper
beiden gebruikt worden.Mappen aanmakenDe volgende mappen worden normaalgesproken als aparte
bestandssystemen aangemaakt. Dit is geheel afhankelijk van
de behoefte. Hier is ervoor gekozen om ze als simpele mappen
aan te maken, omdat ze toch allemaal op dezelfde RAID-5
zitten:Eerst worden de eigenaren en rechten van sommige mappen
ingesteld (als root):&prompt.root; chmod 775 /oracle
&prompt.root; chmod 777 /sapmnt
&prompt.root; chown root:dba /oracle
&prompt.root; chown sidadm:sapsys /compat/linux/usr/sap
&prompt.root; chmod 775 /compat/linux/usr/sapAls tweede worden de mappen als gebruiker
orasid aangemaakt. Dat
zijn allemaal submappen van
/oracleSID:&prompt.root; su - orasid
&prompt.root; cd /oracle/SID
&prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB
&prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6
&prompt.root; mkdir saparch sapreorg
&prompt.root; exitVoor de &oracle;
8.1.7-installatie zijn enkele aanvullende
mappen nodig:&prompt.root; su - orasid
&prompt.root; cd /oracle
&prompt.root; mkdir 805_32
&prompt.root; mkdir client stage
&prompt.root; mkdir client/80x_32
&prompt.root; mkdir stage/817_32
&prompt.root; cd /oracle/SID
&prompt.root; mkdir 817_32De map client/80x_32 wordt met
precies deze naam gebruikt. De x mag
niet door een getal of iets dergelijs vervangen
worden.In de derde stap worden de mappen als gebruiker
sidadm
aangemaakt:&prompt.root; su - sidadm
&prompt.root; cd /usr/sap
&prompt.root; mkdir SID
&prompt.root; mkdir trans
&prompt.root; exitRegels in /etc/servicesVoor &sap.r3; zijn enkele
regels in het bestand /etc/services
nodig, die niet correct worden ingesteld tijdens de
installatie op &os;. De volgende regels moeten toegevoegd
worden (op zijn minst die regels die met een instantienummer
overeenkomen, in dit geval 00. Het
kan geen kwaad om alle regels van 00 tot
en met 99 toe te voegen voor
dp, gw,
sp en ms). Als er een
SAProuter gebruikt gaat worden of
toegang tot &sap; OSS nodig is,
dan is 99 ook nodig, aangezien poort 3299
gewoonlijk wordt gebruikt voor het
SAProuter-proces op het
doelsysteem:sapdp00 3200/tcp # SAP-dispatcher. 3200 + instantienummer
sapgw00 3300/tcp # SAP-gateway. 3300 + instantienummer
sapsp00 3400/tcp # 3400 + instantienummer
sapms00 3500/tcp # 3500 + instantienummer
sapmsSID 3600/tcp # SAP-berichtenserver. 3600 + instantienummer
sapgw00s 4800/tcp # veilige SAP-gateway 4800 + instantienummerBenodigde lokalisatieslocale&sap; heeft tenminste twee
lokalisaties nodig die geen deel uitmaken van de standaard
RedHat-installatie. &sap; biedt de benodigde RPMs als
downloadbare bestanden op hun FTP-server aan (die alleen
toegankelijk is voor klanten met OSS-toegang). In notitie
0171356 staat een lijst van de benodigde RPMs.Het is ook mogelijk om gewoon de juiste links aan te
maken (bijvoorbeeld vanuit de_DE en
en_US), maar dat is niet aan te raden
voor productiesystemen (alhoewel het probleemloos op het
IDES-systeem werkte). De volgende lokalisaties zijn
nodig:de_DE.ISO-8859-1
en_US.ISO-8859-1Nu moeten de volgende links gemaakt worden:&prompt.root; cd /compat/linux/usr/share/locale
&prompt.root; ln -s de_DE de_DE.ISO-8859-1
&prompt.root; ln -s en_US en_US.ISO-8859-1Als ze niet aanwezig zijn, onstaan er problemen tijdens
de installatie. Als ze dan consequent genegeerd worden (door
de STATUS van de probleemstap op
OK te zetten in het bestand
CENTRDB.R3S), is het niet mogelijk om op
het &sap;- systeem aan te melden
zonder wat extra moeite.Kerneloptimalisatiekerneloptimalisatie&sap.r3;-systemen hebben veel
bronnen nodig. Daarom zijn de volgende parameters
toegevoegd aan het kernelinstellingenbestand:#Stel deze in voor geheugengierigheid (SAP en Oracle)
options MAXDSIZ="(1024*1024*1024)"
options DFLDSIZ="(1024*1024*1024)"
#System-V-opties nodig.
options SYSVSHM # SysV-stijl gedeeld geheugen
options SHMMAXPGS=262144 #maximum aantal gedeelde geheugenpagina's
#options SHMMAXPGS=393216 #gebruik dit voor de 46C installatieparameters
options SHMMNI=256 #maximun aantal identifier-interfaces voor gedeeld geheugen
options SHMSEG=100 #maximum aantal gedeeld-geheugensegmenten per proces
options SYSVMSG #SysV-stijl berichtenwachtrijen
options MSGSEG=32767 #maximum aantal berichtsegmenten in systeem
options MSGSSZ=32 #grootte van berichtensegment. MOET macht van 2 zijn
options MSGMNB=65535 #maximum aantal tekens per berichtenwachtrij
options MSGTQL=2046 #maximum aantal berichten in systeem
options SYSVSEM #SysV-stijl semaforen
options SEMMNU=256 #aantal semafoor-UNDO-structuren
options SEMMNS=1024 #aantal semaforen in systeem
options SEMMNI=520 #aantal semafoor-identifiers
options SEMUME=100 #aantal UNDO-sleutelsDe minimumwaarden zijn aangegeven in de documentatie van
&sap;. Omdat er geen beschrijving voor &linux; is, wordt
verwezen naar de HP-UX-sectie (32 bit) voor meer informatie.
Omdat het systeem voor de 4.6C SR2-installatie meer
hoofdgeheugen heeft, kunnen de gedeelde segmenten voor
&sap; en
&oracle; groter zijn.. Daarom kan
voor een groter aantal pagina's voor het gedeelde geheugen
gekozen worden.Op een standaardinstallatie van &os; 4.5 op &i386;
moeten MAXDSIZ en
DFLDSIZ op maximaal 1 GB blijven
staan. Anders kunnen er vreemde fouten als
ORA-27102: out of memory en
Linux Error 12: Cannot allocate
memory optreden.&sap.r3; installerenDe &sap;-cd-roms voorbereidenTijdens de installatie moeten veel cd-roms gemount en
gedismount worden. Als er voldoende cd-rom drives zijn,
kunnen ze allemaal tegelijk gemount worden. Hier is besloten
om de inhoud van de cd-roms naar de overeenkomende mappen
te kopiëren:/oracle/SID/sapreorg/cd-naamHierboven is cd-naam
één van KERNEL,
RDBMS, EXPORT1,
EXPORT2, EXPORT3,
EXPORT4, EXPORT5 en
EXPORT6 voor de
4.6B/IDES-installatie en één van
KERNEL, RDBMS,
DISK1, DISK2,
DISK3, DISK4 en
LANG voor de 4.6C SR2-installatie. Alle
bestandsnamen op de gemounte cd-roms moeten in hoofdletters
staan of anders kan er gebruik gemaakt worden van de optie
bij het mounten:&prompt.root; mount_cd9660 -g /dev/cd0a /mnt
&prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/cd-naam
&prompt.root; umount /mntHet installatiescript uitvoerenEerst moet er een map install worden
aangemaakt:&prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SHDe IDES-installatie (4.6B) komt met een volledig
aangepast &sap.r3; -demonstratiesysteem, dus zijn er zes in
plaats van slechts drie EXPORT-cd-roms. Op dit moment dient
het installatiesjabloon CENTRDB.R3S voor
het installeren van een standaard centrale instantie
(&r3; met database), niet de
IDES centrale instantie, dus moet de overeenkomende
CENTRDB.R3S vanuit de map EXPORT1 gekopieerd worden,
anders vraagt R5SETUP slechts om drie
EXPORT-cd-roms.De nieuwere uitgave &sap; 4.6
SR2 komt met vier EXPORT-cd-roms. Het
parameterbestand dat de installatiestappen beheert is
CENTRAL.R3S. In tegenstelling tot
eerdere uitgaven zijn er geen aparte installatiesjablonen
voor een centrale instantie met of zonder database.
&sap; gebruikt een apart sjabloon
voor de installatie van de database. Om de installatie op
een later tijdstip te opnieuw te starten is het echter
oldoende om met het originele bestand opnieuw te
starten.Tijdens en na de installatie eist
&sap; dat
hostname alleen de naam van de computer en
niet de volledig gekwalificeerde domeinnaam teruggeeft. Dus
dient òf de computernaam op deze manier ingesteld te
worden, òf een alias ingesteld te worden met
alias hostname='hostname -s' voor zowel
orasid als
sidadm (en
voor root tijdens minimaal de
installatiestappen die als root worden
uitgevoerd). Het is ook mogelijk om de geïnstalleerde
bestanden .profile en .login
van beide gebruikers die tijdens de installatie
worden geïnstalleerd aan te passen.Start R3SETUP 4.6BBen er zeker van dat LD_LIBRARY_PATH juist
is ingesteld:&prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/libStart R3SETUP als
root vanuit de installatiemap:&prompt.root; cd /oracle/IDS/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRDB.R3SHet script stelt vervolgens wat vragen
(standaardantwoorden in haken, gevolgd door de eigenlijke
invoer):VraagStandaardInvoerEnter SAP System ID[C11]IDSEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[troubadix.domain.de]EnterEnter name of SAP db host[troubadix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (1) Oracle 8.0.5,
(2) Oracle 8.0.6, (3) Oracle 8.1.5,
(4) Oracle 8.1.61EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/IDS/sapreorg/KERNELEnter path to RDBMS CD[/sapcd]/oracle/IDS/sapreorg/RDBMSEnter path to EXPORT1 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT1Directory to copy EXPORT1 CD[/oracle/IDS/sapreorg/CD4_DIR]EnterEnter path to EXPORT2 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT2Directory to copy EXPORT2 CD[/oracle/IDS/sapreorg/CD5_DIR]EnterEnter path to EXPORT3 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT3Directory to copy EXPORT3 CD[/oracle/IDS/sapreorg/CD6_DIR]EnterEnter path to EXPORT4 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT4Directory to copy EXPORT4 CD[/oracle/IDS/sapreorg/CD7_DIR]EnterEnter path to EXPORT5 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT5Directory to copy EXPORT5 CD[/oracle/IDS/sapreorg/CD8_DIR]EnterEnter path to EXPORT6 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT6Directory to copy EXPORT6 CD[/oracle/IDS/sapreorg/CD9_DIR]EnterEnter amount of RAM for SAP + DB850Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[101]EnterEnter Group-ID of oper[102]EnterEnter Group-ID of dba[100]EnterEnter User-ID of
sidadm[1000]EnterEnter User-ID of
orasid[1002]EnterNumber of parallel procs[2]EnterAls de cd-roms niet naar de verschillende plaatsen
gekopieerd waren, kan het
&sap;-installatieprogramma de
benodigde cd-rom niet vinden (geïdentificeerd door het
bestand LABEL.ASC op de cd-rom) en
vraagt het om de cd-rom te mounten en het mountpad te
bevestigen of in te voeren.Het bestand CENTRDB.R3S kan fouten
bevatten. In dit geval vroeg het nogmaals om de EXPORT4
cd-rom, maar gaf het wel de juiste sleutel (6_LOCATION,
daarna 7_LOCATION enzovoorts) aan, dus kon gewoon doorgegaan
worden met het invoeren van de juiste waarden.Afgezien van enkele problemen die hieronder genoemd
worden, hoort alles vanzelf te gaan tot het punt waar de
software voor de &oracle;-database geïnstalleerd moet
worden.R3SETUP 4.6C SR2 startenLD_LIBRARY_PATH moet juist ingesteld
zijn. Dit is een andere waarde dan die van de 4.6B
installatie met &oracle;
8.0.5:&prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/libStart R3SETUP als gebruiker
root vanuit de installatiemap:&prompt.root; cd /oracle/PRD/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRAL.R3SHet script stelt vervolgens enkele vragen
(standaardantwoorden tussen haken, gevolgd door de eigenlijke
invoer):VraagStandaardInvoerEnter SAP System ID[C11]PRDEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[majestix]EnterEnter Database System ID[PRD]PRDEnterEnter name of SAP db host[majestix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (2) Oracle 8.1.72EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/PRD/sapreorg/KERNELEnter amount of RAM for SAP + DB20441800Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[100]EnterEnter Group-ID of oper[101]EnterEnter Group-ID of dba[102]EnterEnter User-ID of oraprd[1002]EnterEnter User-ID of prdadm[1000]EnterLDAP support3Enter (no support)Installation step completed[1] (continue)EnterChoose installation service[1] (DB inst,file)EnterTot dusver geeft het aanmaken van gebruikers een fout
in de fases OSUSERDBSID_IND_ORA (voor het aanmaken van de
gebruiker
orasid) en
OSUSERIDADM_IND_ORA (voor het aanmaken van de gebruiker
sidadm).&oracle; 8.0.5 installerenMogelijke problemen staan beschreven in de &sap; Notes en
&oracle; Readme bestanden met betrekking
tot &linux; en &oracle; DB. De
meeste, zoniet alle, problemen komen door incompatibele
bibliotheken.Meer informatie over het installeren van
&oracle; staat in &oracle; Installeren.&oracle; 8.0.5 installeren met
orainstAls &oracle; 8.0.5 gebruikt
moet worden, zijn enkele bibliotheken nodig voor het met
succes herlinken, omdat &oracle;
8.0.5 met een oude versie van glibc gelinkt
was (RedHat 6.0) en RedHat 6.1 reeds een nieuwere glibc
gebruikt. De volgende aanvullende packages moeten
geïnstalleerd worden om er zeker van te zijn dat het
linken lukt:compat-libs-5.2-2.i386.rpmcompat-glibc-5.2-2.0.7.2.i386.rpmcompat-egcs-5.2-1.0.3a.1.i386.rpmcompat-egcs-c++-5.2.1.0.3a.1.i386.rpmcompat-binutils-5.2-2.9.1.0.23.1.i386.rpmIn de &sap; Notes of &oracle; Readme
staat meer informatie. Als er geen keuze is (op het moment
van installeren was er niet genoeg tijd om dit te
controleren) kunnen de originele binaries gebruikt worden of
kunnen de herlinkte binaries van een origineel RedHat
systeem gebruikt worden.Om de intelligente agent te compileren moet het RedHat
Tcl package geïnstalleerd zijn. Als
tcl-8.0.3-20.i386.rpm niet te krijgen
is, doet een nieuwere versie zoals
tcl-8.0.5-30.i386.rpm voor RedHat 6.1
het ook.Afgezien van het herlinken is de installatie
rechttoe rechtaan:&prompt.root; su - oraids
&prompt.root; export TERM=xterm
&prompt.root; export ORACLE_TERM=xterm
&prompt.root; export ORACLE_HOME=/oracle/IDS
&prompt.root; cd $ORACLE_HOME/orainst_sap
&prompt.root; ./orainstAlle schermen dienen met Enter
bevestigd te worden totdat de software geïnstalleerd is,
behalve dat de &oracle; On-Line Text
Viewer gedeselecteerd moet worden omdat deze
momenteel niet voor &linux; beschikbaar is. Vervolgens wil
&oracle; met
i386-glibc20-linux-gcc herlinken, in
plaats van met de beschikbare gcc,
egcs of
i386-redhat-linux-gcc.Wegens tijdbeperkingen is besloten om de binaries van een
&oracle; 8.0.5 PreProduction-uitgave
te gebruiken, nadat de eerste poging om de versie van de
RDBMS-cd-rom werkend te krijgen mislukte en het vinden en
gebruiken van de juiste RPMs was op dat moment een nachtmerrie
was.&oracle; 8.0.5 pre-productie versie voor
&linux; (kernel 2.0.33) installerenDe installatie hiervan is vrij eenvoudig: mount de cd-rom
en start het installatieprogramma. Het vraagt dan om de
plaats van de &oracle; thuismap en zet daar alle binaries
neer. Op dat moment waren echter niet de restanten van
vorige pogingen om RDBMS te installeren verwijderd.Daarna kon &oracle; Database
zonder problemen gestart worden.De &oracle; 8.1.7 &linux; tarball installerenDe tarball oracle81732.tgz die gemaakt
is uit de installatiemap een &linux;-systeem kan uitgepakt
worden in
/oracle/SID/817_32/.Ga door met de &sap.r3; installatieAls eerste dienen de omgevingsinstellingen van de
gebruikers idsamd
(sidadm) en
oraids (orasid)
gecontroleerd te worden. Ze moeten nu beiden beschikken over
de bestanden .profile,
.login en .cshrc die
allemaal hostname gebruiken. In het geval
dat de hostnaam van het systeem de volledig gekwalificeerde
naam is, moet hostname in
hostname –s veranderd worden in
alle drie de bestanden.Database ladenHierna kan R3SETUP òfwel
opnieuw gestart of voortgezet worden (afhankelijk van de
keuze voor exit of niet). R3SETUP maakt
vervolgens de tabelruimten aan en laadt de gegevens (voor 46B
IDES van EXPORT1 tot en met EXPORT6, voor 46C van DISK1 tot
en met DISK4) met R3load in de
database.Wanneer het laden van de database is voltooid (dit kan
enkele uren duren) wordt om enkele wachtwoorden gevraagd.
Voor testinstallaties kunnen de welbekende
standaardwachtwoorden worden gebruikt. Als veiligheid een
punt is moeten er andere wachtwoorden gebruikt worden!VraagInvoerEnter Password for sapr3sapEnterConfirum Password for sapr3sapEnterEnter Password for sysverander_tijdens_installerenEnterConfirm Password for sysverander_tijdens_installatieEnterEnter Password for systembeheerderEnterConfirm Password for systembeheerderEnterHier waren er wat problemen met
dipgntab tijdens de installatie van
4.6B.ListenerHieronder staat hoe de
&oracle; Listener als gebruiker
orasid
op kan starten:&prompt.user; umask 0; lsnrctl startAnders kan de fout ORA-12546
optreden, omdat de sockets dan niet de juiste rechten
hebben. Zie &sap; Note 072984.Bijwerken van MNLS tabellenAls het de bedoeling is niet-Latin-1-talen in te voeren
in het &sap;-systeem, dan moeten
de Multi National Language Support-tabellen bijgewerkt
worden. Dit staat beschreven in de &sap; OSS Notes 15023 en
45619. In alle andere gevallen kan deze vraag overgeslagen
worden tijdens de &sap;
installatie.Als er geen MNLS nodig is, is het nog steeds
noodzakelijk om de TCPDB-tabel te controleren en deze te
initialiseren als dit nog niet is gedaan. Zie
&sap;-notities 0015023 en 0045619 voor meer
informatie.Stappen na de installatie&sap.r3; licentiesleutel opvragenEr moet een &sap.r3;
licentiesleutel opgevraagd worden. Dit is nodig omdat de
tijdelijke licentie die tijdens de installatie
geïnstalleerd is, maar voor vier weken geldig is. Eerst
moet de hardwaresleutel bekend zijn. Deze wordt bekend door
als gebruiker idsadm aan te melden en
saplicense uit te voeren:&prompt.root; /sapmnt/IDS/exe/saplicense -getHet uitvoeren van saplicense zonder
parameters geeft een lijst met opties. Nadat de
licentiesleutel verkregen is, kan deze geïnstalleerd
worden door middel van:&prompt.root; /sapmnt/IDS/exe/saplicense -installHierbij moeten de volgende waarden ingevoerd
worden:SAP SYSTEM ID = SID, 3 tekens
CUSTOMER KEY = hardwaresleutel, 11 tekens
INSTALLATION NO = installatie, 10 cijfers
EXPIRATION DATE = jjjjmmdd, meestal "99991231"
LICENSE KEY = licentiesleutel, 24 tekensGebruikers aanmakenNu kan een gebruiker binnen client 000 aangemaakt worden
(voor sommige taken is het nodig deze binnen client 000 aan
te maken, als maar een andere gebruiker dan gebruikers
sap* en ddic wordt
gebruikt). Zoals gewoonlijk wordt als nieuwe gebruikersnaam
wartung (of dienst
in het Nederlands) gekozen. Voor extra veiligheid moeten de
wachtwoorden van alle standaardgebruikers binnenin alle
clients worden veranderd (dit geldt ook voor gebruikers
sap* en
ddic).Transportsysteem, profiel, werkmodi en dergelijke
instellenVanuit client 000 dient, als een andere gebruiker
dan ddic of sap*,
tenminste het volgende ingesteld worden:TaakTransactieStel het transportsysteem in, bijvoorbeeld
als Stand-Alone Transport Domain
EntitySTMSMaak een profiel voor het systeem aan of wijzig
ditRZ10Beheer werkmodi en instantiesRZ04Deze en alle andere stappen die na de installatie
uitgevoerd moeten worden, staan uitvoerig beschreven in de
&sap; installatiehandleidingen.
initsid.sap
(initIDS.sap) bewerkenHet bestand
/oracle/IDS/dbs/initIDS.asp bevat het
&sap; back-upprofiel. Hier moeten
de grootte van de te gebruiken tape, het compressietype,
enzovoorts gedefinieerd worden. Om dit aan de gang te
krijgen met sapdba /
brbackup zijn de volgende waarden
veranderd:compress = hardware
archive_function = copy_delete_save
cpio_flags = "-ov --format=newc --block-size=128 --quiet"
cpio_in_flags = "-iuv --block-size=128 --quiet"
tape_size = 38000M
tape_address = /dev/nsa0
tape_address_rew = /dev/sa0Uitleg:compress: de tape die gebruikt wordt
is een HP DLT1 die hardware-compressie ondersteunt.archive_function: dit definieert het
standaardgedrag om &oracle;-archieflogs op te slaan: nieuwe
logboekbestanden worden op tape opgeslagen, reeds opgeslagen
logboekbestanden worden nogmaals opgeslagen en worden daarna
verwijderd. Dit bespaart een hoop problemen als de
database hersteld moet worden en één van de
archieftapes versleten is.cpio_flags: de standaard is om
te gebruiken die de blokgrootte op
5120 bytes instelt. Voor DLT tapes raadt HP een
blokgrootte van minimaal 32 kB aan, dus is
gebruikt voor blokken van
64 kB. is nodig omdat er
inodegetallen groter dan 65535 zijn. De laatste optie
is nodig omdat
brbackup anders klaagt zodra
cpio het aantal opgeslagen blokken
meldt.cpio_in_flags: vlaggen die nodig zijn
om de gegevens van de tape terug te laden. Het formaat wordt
automatisch herkend.tape_size: dit geeft gewoonlijk de
ruwe opslagcapaciteit van de tape. Omwille van de veiligheid
(er wordt hardware-compressie gebruikt) is de waarde iets
lager dan de eigenlijke waarde.tape_address: de naam van het
niet-opwindbare apparaat dat met cpio
gebruikt wordt.tape_address_rew: de naam van het
opwindbare apparaat dat met cpio gebruikt
wordt.Instellingen na installatieDe volgende parameters van
&sap; moeten na de installatie
geoptimaliseerd worden (voorbeelden voor IDES 46B, 1 GB
geheugen):NaamWaardeztta/roll_extension250000000abap/heap_area_dia300000000abap/heap_area_nondia400000000em/initial_size_MB256em/blocksize_kB1024ipc/shm_psize_4070000000&sap; notitie 0013026:NaamWaardeztta/dynpro_area2500000&sap; notitie 0157246:NaamWaarderdisp/ROLL_MAXFS16000rdisp/PG_MAXFS30000Met bovenstaande parameters kan op een op een systeem
met 1 GB aan geheugen het geheugengebruik soortgelijk
zijn aan het volgende:Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K FreeProblemen tijdens installatieR3SETUP herstarten na oplossen
van een probleemR3SETUP stopt als het een probleem
tegenkomt. Nadat de bijhorende logbestanden zijn bekeken
en de fout is hersteld, moet R3SETUP
opnieuw gestart worden en gewoonlijk dient REPEAT
geselecteerd te worden bij de laatste stap waar
R3SETUP over klaagde.R3SETUP kan gewoon met het bijhorende
bestand R3S worden opgestart:&prompt.root; ./R3SETUP -f CENTRDB.R3Svoor 4.6B, of met&prompt.root; ./R3SETUP -f CENTRAL.R3Svoor 4.6C, onafhankelijk van het feit of de fout optrad
met CENTRAL.R3S of met
DATABASE.R3S.Tijdens sommige fasen verwacht
R3SETUP dat zowel de database als
&sap; draaien (omdat die stappen
al voltooid waren). Mochten er fouten optreden en kan
bijvoorbeeld de database niet gestart worden, dan moeten
de database en &sap; handmatig
worden gestart nádat de fouten zijn hersteld en
voordat R3SETUP opnieuw wordt
gestart.Ook de &oracle; listener
moet opnieuw gestarten worden (als
orasid met
umask 0; lsnrctl start) als die ook was
gestopt (bijvoorbeeld omdat het systeem opnieuw opgestart
moest worden).OSUSERSIDADM_IND_ORA tijdens
R3SETUPAls R3SETUP tijdens deze fase klaagt,
moet het sjabloonbestand dat R3SETUP
destijds gebruikte (CENTRDB.R3S (4.6B)
of één van CENTRAL.R3S of
DATABASE.R3S (4.6C)) worden gewijzigd.
Zoek [OSUSERSIDADM_IND_ORA] of zoek de
enige regel met STATUS=ERROR en wijzig de
volgende waarden:HOME/home/sidadm (was leeg)
STATUS=OK (had status ERROR)Daarna kan R3SETUP opnieuw gestart
worden.OSUSERDBSID_IND_ORA tijdens
R3SETUPR3SETUP klaagt mogelijk ook tijdens
deze fase. De fout is vergelijkbaar met die in de fase
OSUSERSIDADM_IND_ORA. Hier kan gewoon het sjabloonbestand
dat R3SETUP destijds gebruikte
(CENTRDB.R3S (4.6B) of
één van CENTRAL.R3S of
DATABASE.R3S (4.6C)) gewijzigd worden.
In [OSUSERDBSID_IND_ORA] of de enige regel
STATUS=ERROR en kan de volgende waarde
in die sectie gewijzigd worden:STATUS=OKNu kan R3SETUP opnieuw gestart
worden.oraview.vrf FILE NOT FOUND
tijdens installatie van &oracle;De &oracle; On-Line Text Viewer is
niet gedeselecteerd voordat de installatie begon. Dit
onderdeel is gemarkeerd om geïnstalleerd te worden,
zelfs al is dit onderdeel momenteel niet beschikbaar op
&linux;. Dit onderdeel dient gedeselecteerd te worden in het
&oracle; installatiemenu en de
installatie dient opnieuw gestart te worden.TEXTENV_INVALID tijdens
R3SETUP, RFC of SAPgui startDeze foutmelding geeft aan dat de juiste locale niet
geïnstalleerd is. &sap; notitie 0171356 geeft de
benodigde RPMs die geïnstalleerd moeten worden
(bijvoorbeeld spalocales-1.0-3 en
saposcheck-1.0-1 voor RedHat 6.1).
Indien alle gerelateerde foutmeldingen genegeerd zijn en
de bijhorende STATUS van
ERROR in OK veranderd
zijn (in CENTRDB.R3S) telkens als
R3SETUP klaagde en
R3SETUP gewoon opnieuw gestart is, dan is
het &sap;-systeem onjuist
ingesteld en is het onmogelijk om met
SAPgui een verbinding met het
systeem te maken, zelfs al kan het systeem gestart worden.
Een poging om met de oude &linux;
SAPgui een verbinding te maken gaf
de volgende meldingen:Sat May 5 14:23:14 2001
*** ERROR => no valid userarea given [trgmsgo. 0401]
Sat May 5 14:23:22 2001
*** ERROR => ERROR NR 24 occured [trgmsgi. 0410]
*** ERROR => Error when generating text environment. [trgmsgi. 0435]
*** ERROR => function failed [trgmsgi. 0447]
*** ERROR => no socket operation allowed [trxio.c 3363]
SpeicherzugriffsfehlerDit komt doordat &sap.r3; geen
juiste locale kan toekennen en ook doordat het zelf onjuist
is ingesteld (ontbrekende regels in sommige
databasetabellen). Om een verbinding met
&sap.r3; te kunnen maken, moeten
de volgende regels aan het DEFAULT.PFL
worden toegevoegd (zie notitie 0043288):abap/set_etct_env_at_new_mode = 0
install/collate/active = 0
rscp/TCP0B = TCP0BNu kan het &sap;-systeem
opnieuw gestart worden en kan een verbinding met het systeem
gemaakt worden, hoewel landspecifieke taalinstellingen anders
kunnen werken dan verwacht. Nadat de landinstellingen zijn
gecorrigeerd (en de juiste locales zijn gegeven), kunnen
bovenstaande regels uit DEFAULT.PFL
verwijderd worden en kan het
&sap;-systeem opnieuw gestart
worden.ORA-00001Deze fout trad alleen op met &oracle;
8.1.7 op &os; 4.5. De reden was dat de
&oracle;-database zichzelf niet
goed kon initialiseren en crashte, waarbij het semaforen en
gedeeld geheugen op het systeem achterliet. De volgende
poging om de database te starten geeft dan
ORA-00001.Met ipcs -a moeten de semaforen
opgezocht worden en verwijderd worden met
ipcrm.ORA-00445 (achtergrondproces PMON
is niet gestart)Deze fout trad op met &oracle;
8.1.7. Deze fout wordt gemeld als de database
met het gebruikelijke script startsap
wordt gestart (bijvoorbeeld
startsap_majestix_00) als gebruiker
prdadm.Een mogelijke manier om dit te omzeilen is om de database
in plaats daarvan als gebruiker oraprd
te starten met svrmgrl:&prompt.user; svrmgrl
SVRMGR> connect internal;
SVRMGR> startup;
SVRMGR> exitORA-12546 (start listener met
juiste rechten)De &oracle; listener moet als
gebruiker oraids worden gestart:&prompt.root; umask 0; lsnrctl startAnders kan ORA-12456 optreden
omdat de sockets dan niet de juiste rechten hebben. Zie
&sap; notitie 0072984.ORA-27102 (geen geheugen
beschikbaar)Deze fout trad op toen geprobeerd werd en om waarden
groter dan 1 GB (1024x1024x1024) te gebruiken voor
MAXDSIZ en DFLDSIZ.
Ook kwam er de foutmelding Linux Error 12: Cannot
allocate memory.
[DIPGNTAB_IND_IND] tijdens
R3SETUPDit wordt behandeld in &sap; notitie 0130581
(R3SETUP termineert). Om een of andere
reden gebruikte het installatieproces tijdens de
IDES-specifieke installatie niet de juiste
&sap; systeemnaam
IDS, maar in plaats daarvan de lege string
"". Dit leidt tot wat kleine problemen
met de toegang tot mappen omdat de paden dynamisch
gegenereerd worden door middel van
SID (in dit geval IDS). Dus
werden niet de paden:/usr/sap/IDS/SYS/...
/usr/sap/IDS/DVMGS00maar de volgende paden gebruikt:/usr/sap//SYS/...
/usr/sap/D00Om de installatie voort te zetten, zijn een link en een
aanvullende map aangemaakt:&prompt.root; pwd
/compat/linux/usr/sap
&prompt.root; ls -l
total 4
drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00
drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS
-lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS
+lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS
drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp
drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 transDit gedrag staat ook beschreven in &sap; notities 0029227
en 0008401. Deze problemen traden niet op tijdens de
installatie van &sap; 4.6C.[RFCRSWBOINI_IND_IND] tijdens
R3SETUPTijdens de installatie van &sap;
4.6C trad deze fout gewoon op als het gevolg
van een andere fout eerder in de installatie. In dit geval
moeten de bijhorende logboekbestanden doorzocht worden om het
echte probleem te kunnen herstellen.Als na het doorzoeken van de logboekbestanden blijkt dat
deze fout inderdaad de juiste is (zie de &sap; notities),
dan kan de STATUS van de stap die het
probleem geeft van ERROR in
OK veranderd worden (in
CENTRDB.R3S) en kan
R3SETUP opnieuw gestart worden. Na de
installatie moet rapport RSWBOINS van
transactie SE38 uitgevoerd worden. In &sap; notitie 0162266
staat aanvullende informatie over de fasen
RFCRSWBOINI en
RFCRADDBDIF.[RFCRADDBDIF_IND_IND] tijdens
R3SETUPHier gelden dezelfde beperkingen: er dient door het
doorzoeken van de logboekbestanden gecontroleerd te worden
dat deze fout niet veroorzaakt wordt door eerdere
problemen.Als bevestigd kan worden dat &sap; notitie 0162266 van
toepassing is, kan gewoon STATUS van de
stap die het probleem geeft van ERROR in
OK veranderd worden (in
CENTRDB.R3S) en
R3SETUP opnieuw gestart worden. Na de
installatie moet het rapport RADDBDIF van
transactie SE38 uitgevoerd worden.sigaction sig31: File size limit
exceededDeze fout trad op tijdens het starten van de
&sap;-processen
disp+work. Als
&sap; met het script
startsap gestart wordt, worden er
subprocessen gestart die ontkoppelen en het vuile werk om
alle andere &sap;-processen te
starten opknappen. Een gevolg hiervan is dat het script zelf
een verkeerde situatie niet opmerkt.Om te controleren of de &sap;
processen juist zijn gestart, kan de processtatus bekeken
worden met ps ax | grep
SID, wat een lijst
geeft met alle processen van
&oracle; en
&sap;. Als het ernaar uitziet dat
sommige processen ontbreken of als er geen verbinding met het
&sap;-systeem gemaakt kan worden,
is het verstandig de bijhorende logboekbestanden uit
/usr/sap/SID/DVEBMGSnr/work/
te bekijken. De te controleren bestanden zijn
dev_ms en
dev_disp.Signaal 31 treedt hier op als de hoeveelheid gedeeld
geheugen die door &oracle; en
&sap; wordt gebruikt, groter is
dan wat in het kernelinstellingenbestand is ingesteld en dit
kan worden verholpen door een hogere waarde te
gebruiken:# grotere waarden voor 46C productiesystemen:
options SHMMAXPGS=393216
# kleinere waarde voldoende voor 46B:
#options SHMMAXPGS=262144saposcol starten misluktEr zijn wat problemen met het programma
saposcol (versie 4.6D). Het
&sap;-systeem gebruikt
saposcol om informatie over de
systeemprestaties in te winnen. Dit programma is niet
noodzakelijk om het &sap;-systeem
te gebruiken, dus kan dit probleem als onbelangrijk worden
beschouwd. De oudere versie (4.6B) werkt wel, maar verzamelt
niet alle gegevens (veel aanroepen geven gewoon 0 terug,
bijvoorbeeld het processorgebruik).Gevorderde onderwerpenHier wordt beschreven hoe de &linux; binaire compatibiliteit
werkt. Het meeste van wat nu volgt is sterk gebaseerd op een
e-mailbericht van Terry Lambert
tlambert@primenet.com aan &a.chat; (Message ID:
<199906020108.SAA07001@usr09.primenet.com>).Hoe werkt het?uitvoerklasselader&os; heeft een abstractie met de naam execution
class loader. Dit is een wig in de systeemaanroep
&man.execve.2;.Wat er gebeurt is dat &os; een lijst van loaders heeft, in
plaats van een enkele loader die terugvalt op de
#! loader voor het draaien van elke
shellinterpreter of shellscript.Vroeger onderzocht de enige loader op het &unix; platform
het magische getal (in het algemeen de eerste 4 of 8 bytes van
het bestand) om te zien of het een binary was die het systeem
kende en als dat het geval was laadde het de binaire
loader.Als het niet het binaire type voor het systeem was, faalde
de aanroep naar &man.execve.2; en probeerde de shell het als
shellopdrachten uit te voeren.Deze aanname was een standaard voor wat de huidige
shell ook is.Later werd er een hack gemaakt voor &man.sh.1; om de eerste
twee tekens te onderzoeken en als die bestonden uit
:\n voerde het in plaats hiervan de
&man.csh.1; shell uit (het idee is dat SCO de hack als eerste
maakte).Wat &os; nu doet is door een lijst van loaders gaan
met een generieke #! loader die kennis heeft
van interpreters in de zin van de karakters die volgen op de
volgende witruimte tot de laatste, met uiteindelijk een
terugval op /bin/sh.ELFVoor &linux; ABI-ondersteuning ziet &os; het magische getal
als een ELF-binary (het maakt op dit punt geen onderscheid
tussen &os;, &solaris;, &linux; of elk ander besturingssysteem
dat een ELF-beeldtype heeft).&solaris;De ELF loader zoekt naar een gespecialiseerd
merk, dat een commentaargedeelte in het
ELF-beeld is en dat niet aanwezig is in SVR4/&solaris;
ELF-binairen.Om &linux;-binaries werkend te krijgen, moeten ze
gemerkt worden als het type
Linux met &man.brandelf.1;:&prompt.root; brandelf -t Linux bestandAls dit gedaan is, ziet de ELF loader het
Linux-merk in het bestand.ELFmerkenAls de ELF loader het Linux-merk
tegenkomt, verplaatst de loader een pointer in de
proc-structuur. Alle systeemaanroepen
worden met deze pointer geïndexeerd (in een traditioneel
&unix; systeem is dit de
sysent[]-structuurarray, die de
systeemaanroepen bevat). Ook wordt het proces gemerkt voor
speciale behandeling door de valstrikvector van de
signaal-trampolinecode samen met nog meer (kleine) aanpassingen
die door de &linux; kernelmodule worden afgehandeld.De &linux; kernelmodule bevat naast andere dingen een lijst
van sysent[]-ingangen waarvan de adressen
in de kernelmodule staan.Als een systeemaanroep door de &linux;-binary wordt
aangeroepen, verwijdert de valstrikcode de referentie aan de
functiepointer van de systeemaanroep en geeft die de
ingangspunten van de systeemaanroep van &linux; en niet van
&os;.Verder reroot de &linux;-modus
dynamisch lookups. Dit is wat de optie
(niet het unionfs
bestandssysteemtype!) voor het mounten van bestandssystemen
effectief doet. Eerst wordt een poging gedaan om het bestand
in de map
/compat/linux/origineel-pad
op te zoeken en vervolgens alleen als dat
mislukt, wordt het bestand in
/origineel-pad
opgezocht. Dit zorgt ervoor dat binaries die andere binaries
nodig hebben kunnen draaien (zo kan bijvoorbeeld de
&linux;-gereedschapskist geheel onder &linux; ABI-ondersteuning
draaien). Dit betekent ook dat &linux;-binaries &os;-binaries
kunnen laden en draaien als er geen overeenkomende
&linux;-binaries zijn en dat er een &man.uname.1;-opdracht in
de mappenstructuur /compat/linux gezet kan
worden om er zeker van te zijn dat &linux;-binaries niet kunnen
weten dat ze niet op &linux; draaien.Effectief bevindt er zich een &linux;-kernel in de
&os;-kernel. De verschillende onderliggende functies die alle
functies implementeren die de kernel aanbiedt, zijn dezelfde
tabelingangen voor de systeemaanroepen van &os; als van
&linux;: bestandssysteembewerkingen, bewerkingen op het
virtuële geheugen, signaalaflevering, System V IPC,
enzovoort. Het enige verschil is dat &os;-binaries de
lijm functies voor &os; krijgen en dat de
&linux;-binaries de lijm-functies voor
&linux; krijgen (de meeste oudere besturingssystemen hadden
alleen hun eigen lijm-functies: adressen
van functies die in een statische globale
sysent[] structuurarray werden opgeslagen,
in plaats van adressen van functies waarvan dynamisch een
geïnitialiseerde pointer wordt verwijderd in de
proc-structuur van het proces dat de aanroep
doet).Welke is de eigenlijke &os; ABI? Dat maakt niet uit.
Eigenlijk is het enige verschil dat (op dit moment; dit kan
eenvoudig veranderen in een toekomstige uitgave, en dat gebeurt
waarschijnlijk na deze uitgave) de
lijm-functies van &os; statisch gelinkt
zijn in de kernel en dat de lijm-functies
van &linux; zowel statisch gelinkt kunnen worden als dat ze
door een kernelmodule worden benaderd.Maar is dit nu echt emulatie? Nee. Het is een
ABI-implementatie, geen emulatie. Er is geen emulator (of
simulator, om de volgende vraag voor te zijn) bij
betrokken.Dus waarom wordt het dan soms
&linux;-emulatie genoemd? Om het moeilijk te
maken om &os; te verkopen! Serieus, het is zo omdat de
historische implementatie in een tijd werd gedaan toen er echt
geen ander woord was om te beschrijven wat er aan de hand was,
om te zeggen dat &os; &linux;-binaries draaide was niet waar
als de code niet in de kernel gecompileerd werd of als een
module geladen werd en er moest een woord zijn voor hetgeen
geladen werd. Vandaar de
&linux;-emulator.
diff --git a/nl_NL.ISO8859-1/books/handbook/mirrors/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/mirrors/chapter.sgml
index d93a934d5c..99675d3600 100644
--- a/nl_NL.ISO8859-1/books/handbook/mirrors/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/mirrors/chapter.sgml
@@ -1,3325 +1,3325 @@
&os; verkrijgenCd-rom en DVD uitgeversWinkelproducten in doos&os; is beschikbaar in een doos (&os; cd-roms, additionele
software en gedrukte documentatie) bij verschillende
verkopers:CompUSA
WWW: Frys Electronics
WWW: Cd-roms en DVD's&os; cd-roms en DVD's zijn te koop bij veel online
winkels:Daemon News MallPO Box 161Nauvoo, IL62354Verenigde Staten
Telefoon: +1 866 273-6255
Fax: +1 217 453-9956
E–mail: sales@bsdmall.com
WWW: BSD-Systems
E–mail: info@bsd-systems.co.uk
WWW: fastdiscs.com6 Eltham CloseLeeds, LS6 2TYVerenigd Koninkrijk
Telefoon: +44 870 1995 171
E–mail: sales@fastdiscs.com
WWW: &os; Mall, Inc.3623 Sanford StreetConcord, CA94520-1405Verenigde Staten
Telefoon: +1 925 674-0783
Fax: +1 925 674-0821
E–mail: info@freebsdmall.com
WWW: Hinner EDVSt. Augustinus-Str. 10D-81825MünchenDuitsland
Telefoon: (089) 428 419
WWW: Ikarios22-24 rue Voltaire92000NanterreFrankrijk
WWW: JMC SoftwareIerland
Telefoon: 353 1 6291282
WWW: Linux CD MallPrivate Bag MBE N348Auckland 1030Nieuw Zeeland
Telefoon: +64 21 866529
WWW: The Linux EmporiumHilliard House, Lester WayWallingfordOX10 9TAVerenigd Koninkrijk
Telefoon: +44 1491 837010
Fax: +44 1491 837016
WWW: Linux+ DVD MagazineLewartowskiego 6Warsaw00-190Polen
Telefoon: +48 22 860 18 18
E–mail: editors@lpmagazine.org
WWW: Linux System Labs Australia21 Ray DriveBalwyn NorthVIC - 3104Australië
Telefoon: +61 3 9857 5918
Fax: +61 3 9857 8974
WWW: LinuxCenter.RuGalernaya Street, 55Saint-Petersburg190000Rusland
Telefoon: +7-812-3125208
E–mail: info@linuxcenter.ru
WWW: DistributeursWederverkopers die &os; cd-rom producten willen verkopen
kunnen contact opnemen met een distributeur:Cylogistics809B Cuesta Dr., #2149Mountain View, CA94040Verenigde Staten
Telefoon: +1 650 694-4949
Fax: +1 650 694-4953
E–mail: sales@cylogistics.com
WWW: Ingram Micro1600 E. St. Andrew PlaceSanta Ana, CA92705-4926Verenigde Staten
Telefoon: 1 (800) 456-8000
WWW: Kudzu, LLC7375 Washington Ave. S.Edina, MN55439Verenigde Staten
Telefoon: +1 952 947-0822
Fax: +1 952 947-0876
E–mail: sales@kudzuenterprises.comLinuxCenter.RuGalernaya Street, 55Saint-Petersburg190000Rusland
Telefoon: +7-812-3125208
E–mail: info@linuxcenter.ru
WWW: Navarre Corp7400 49th Ave SouthNew Hope, MN55428Verenigde Staten
Telefoon: +1 763 535-8333
Fax: +1 763 535-0341
WWW: FTP sitesDe officië broncode voor &os; is beschikbaar via anoniem
toegankelijke FTP in de hele wereld via vele mirrorsites. De
site
heeft een goede verbinding en staat veel verbindingen toe, maar
het is waarschijnlijk beter om een mirrorsite te zoeken die
dichterbij is (zeker als het doel is ook een
soort mirrorsite op te zetten).De &os; mirrorsites
database is beter bijgewerkt dan die in het
Handboek omdat die lijst uit DNS komt in plaats van een met de
hand ingevoerde lijst.&os; is beschikbaar via de onderstaande anonieme FTP mirror
sites. Bij het kiezen van anonieme FTP voor het verkrijgen van
&os; wordt aangeraden een site die dichtbij ligt te kiezen. De
mirrorsites die in de lijst staan als Primaire
Mirrorsites hebben meestal het complete &os; archief
(alle beschikbare versies voor alle architecturen) maar downloads
zijn waarschijnlijk sneller van een site die in het land of de
regio van de gebruiker staat. De regionale sites hebben de
meeste recente versies voor de meest populaire architecturen,
maar hebben wellicht niet het complete archief. Alle sites geven
toegang via anonieme FTP, maar een aantal sites hebben ook andere
toegangsmogelijkheden. De toegangsmogelijkheden voor iedere site
staan tussen haakjes achter de hostnaam. De rest van deze
paragraaf wordt automatisch samengesteld en is niet
vertaald.
&chap.mirrors.ftp.inc;
Anonieme CVSInleidingCVSanoniemAnonieme CVS (of ook wel bekend als
anoncvs) is een functie die beschikbaar is
met de hulpprogramma's die bij &os; zitten om te synchroniseren
met een elders aanwezig CVS depot. Het staat gebruikers van
&os; onder andere toe om zonder bijzondere rechten alleen-lezen
operaties uit te voeren op een van de officiële anoncvs
servers van het &os; project. Om het te kunnen gebruiken dient
de omgevingsvariabele CVSROOT zo ingesteld te
worden dat hij wijst naar de gewenste anoncvs server, dient het
bekende wachtwoord anoncvs bij het commando
cvs login opgegeven te worden en kan daarna
&man.cvs.1; gebruikt worden om het te benaderen als ieder
lokaal aanwezig depot.Het commando cvs login slaat de
wachtwoorden die voor aanmelden bij de CVS server op in een
bestand met de naam .cvspass in de map
HOME. Als dit bestand niet bestaat, is het
mogelijk dat er een foutmelding wordt gegeven als
cvs login de eerste keer wordt gebruikt.
Dat kan opgelost worden door een leeg bestand
.cvspass te maken en dan opnieuw aan te
melden.Hoewel de diensten CVSup en
anoncvs beiden vrijwel dezelfde functie
invullen, zijn er redenen die de keuze voor de
synchronisatiemethode beïnvloeden. In een notendop is
CVSup veel efficiënter in het
gebruik van netwerkbronnen en is het de meest geavanceerde van
de twee, maar daar staat iets tegenover. Voor het gebruik van
CVSup moet eerst een speciale client
geïnstalleerd en ingesteld worden voordat er bits kunnen
gaan stromen en dat kan dan alleen in de redelijk grote brokken
die in CVSupcollections heten.Anoncvs kan daarentegen gebruikt
worden om alles te bekijken van een individueel bestand tot aan
een specifiek programma (als ls of
grep) door aan de naam van de CVS module
te refereren. Ook anoncvs is alleen
geschikt voor alleen-lezen operaties op het CVS depot, dus als
het de bedoeling is om lokaal ontwikkelwerk en hetzelfde depot
met delen uit het &os; project te combineren, dan biedt alleen
CVSup daar een oplossing
voor.Anonieme CVS gebruikenHet instellen van &man.cvs.1; om gebruik te maken van
een Anoniem CVS depot is een kwestie van het instellen van de
omgevingsvariabele CVSROOT op een van de
anoncvs servers van het &os; project. Op
het moment van schrijven zijn de volgende servers
beschikbaar:Oostenrijk:
:pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs
Gebruikt cvs login en gebruik een
willekeurig wachtwoord.Frankrijk:
:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
(pserver (wachtwoord anoncvs), ssh
(geen wachtwoord)Duitsland:
:pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs
Gebruik cvs login en gebruik als
wachtwoord anoncvsDuitsland:
:pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs
(rsh, pserver, ssh, ssh/2022)Japan:
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
Gebruik cvs login en gebruik als
wachtwoord anoncvsZweden:
freebsdanoncvs@anoncvs.se.FreeBSD.org:/home/ncvs
(alleen ssh - geen wachtwoord)SSH HostKey: 1024 a7:34:15:ee:0e:c6:65:cf:40:78:2d:f3:cd:87:bd:a6 root@apelsin.fruitsalad.org
SSH2 HostKey: 1024 21:df:04:03:c7:26:3e:e8:36:1a:50:2d:c7:ae:b8:5f ssh_host_dsa_key.pubVS:
freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs
(alleen ssh - geen wachtwoord)SSH HostKey: 1024 a1:e7:46:de:fb:56:ef:05:bc:73:aa:91:09:da:f7:f4 root@sanmateo.ecn.purdue.edu
SSH2 HostKey: 1024 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65 ssh_host_dsa_key.pubVS:
anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (alleen ssh - geen
wachtwoord)SSH HostKey: 1024 4b:83:b6:c5:70:75:6c:5b:18:8e:3a:7a:88:a0:43:bb root@ender.liquidneon.com
SSH2 HostKey: 1024 80:a7:87:fa:61:d9:25:5c:33:d5:48:51:aa:8f:b6:12 ssh_host_dsa_key.pubOmdat met CVS vrijwel iedere versie die ooit beschikbaar is
geweest uitgecheckt kan worden, is het van
belang op de hoogte te zijn van de &man.cvs.1; vlag voor
revisie () en welke waarden zie zoal kan
aannemen in het &os; Project depot.Er zijn twee soorten labels (tags): revisielabels en
taklabels (branch). Een revisielabel refereert aan een
specifieke revisie. De betekenis blijft van dag tot dag
gelijk. Aan de andere kant refereert een taklabel aan de
laatste revisie in een bepaalde ontwikkellijn op een bepaald
moment. Omdat een taklabel niet refereert aan een specifieke
revisie, kan die morgen anders zijn dan vandaag. bevat revisielabels waar
gebruikers in geïnteresseerd kunnen zijn. Nogmaals: deze
zijn allemaal niet geldig voor de Portscollectie omdat de
Portscollectie geen meerdere revisies kent.Als een specifiek taklabel wordt aangegeven, worden als
alles goed gaat, de laatste revisies uit een bepaalde
ontwikkellijn ontvangen. Als er een oudere versie opgehaald
moet worden, kan dat door met de vlag een datum aan te geven. In &man.cvs.1; staan
meer details.VoorbeeldenHoewel het sterk wordt aangeraden eerst de hulppagina's
voor &man.cvs.1; grondig door te lezen, volgen hier een aantal
snelle voorbeelden die feitelijk aangeven hoe Anonieme CVS
gebruikt kan worden.SSH gebruiken om de src/ tree uit
te checken:&prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.Iets uitchecken uit -CURRENT (&man.ls.1;):&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs co lsSSH gebruiken om de src/
structuur uit te checken:&prompt.user; cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.De versie van &man.ls.1; in de 6-STABLE tak
uitchecken:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs co -rRELENG_6 lsEen lijst wijzigingen maken (als unified diffs) voor
&man.ls.1;&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE lsUitzoeken welke modulenamen gebruikt kunnen
worden:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs co modules
&prompt.user; more modules/modulesAndere bronnenDe volgende bronnen kunnen bijdragen aan een beter begrip
van CVS:CVS
Tutorial van Cal Poly.CVS Home,
de CVS gemeenschap voor ontwikkeling en
ondersteuning.CVSweb
is de &os; Project webinterface voor CVS.CTM gebruikenCTMCTM is een methode om een map
elders gesynchroniseerd te houden met een centrale. Het is
ontwikkeld voor gebruik met de &os; broncode, hoewel sommigen het
ook voor andere doeleinden handig vinden. Er bestaat op dit
moment weinig tot geen documentatie over het proces van het maken
van delta's. Voor informatie over het gebruik van
CTM kan het beste contact gezocht
worden met de &a.ctm-users.name; mailinglijst.Waarom CTM gebruiken?CTM geeft een lokale kopie van
de &os; broncode. Die is in een aantal smaken
beschikbaar. Of het gaat om slechts één tak of
de complete CVS structuur, CTM kan
het bieden. CTM is gewoon gemaakt
voor actieve ontwikkelaars die met &os; werken, maar geen of
een slechte internetverbinding hebben of gewoon automatisch de
laatste wijzigingen willen ontvangen. De meest actieve takken
kennen op z'n hoogst drie delta's per dag. Het is het
overwegen waard om ze per automatische mail te laten sturen.
De grootte van de updates wordt altijd zo klein mogelijk
gehouden. Meestal kleiner dan 5 K en soms (in tien
procent van de gevallen) is het 10–50 K. In
uitzonderlijke gevallen komt het voor dat een mail van
100 K of meer wordt gestuurd.Het is wel van belang op de hoogte te zijn van de valkuilen
die een rol spelen bij het direct werken met broncode in plaats
van met een voorverpakte release. Dit geldt nog meer als wordt
gewerkt met de current code. Het lezen van
Bijblijven met &os; wordt sterk
aangeraden.Wat is er nodig om CTM te
gebruiken?Voor het gebruik van CTM zijn
twee dingen nodig: het CTM
programma en de initiële delta's om de applicatie te
voeden en naar een current niveau te
komen.CTM is al onderdeel van &os;
sinds versie 2.0 is uitgebracht en is te vinden in
/usr/src/usr.sbin/ctm, als de broncode
aanwezig is.De delta's voor
CTM kunnen op twee manieren komen:
met FTP of per e-mail. De volgende FTP sites bieden
ondersteuning voor CTM:Er staan er nog meer in de paragraaf mirrors.FTP de relevante map en download het bestand
README vanaf daar.Voor delta's via e-mail:Er dient een abonnement genomen te worden op een van de
CTM distributielijsten.
&a.ctm-cvs-cur.name; ondersteunt de complete CVS structuur.
&a.ctm-src-cur.name; ondersteunt het hoofd van de ontwikkeltak.
&a.ctm-src-4.name; ondersteunt de 4.X release tak, enzovoort.
Om te abonneren kan geklikt worden op de bovenstaande links of
via &a.mailman.lists.link; kan in een lijst geklikt worden op
de lijst waarvoor waarvoor een abonnement gewenst is. De
lijstpagina bevat instructies over hoe te abonneren.Na het ontvangen van CTM updates
per mail, kan ctm_rmail gebruikt worden voor
het uitpakken en verwerken. ctm_rmail kan
zelfs direct vanuit /etc/aliases gebruikt
worden om het proces volledig automatisch te laten verlopen.
In de hulppagina van ctm_rmail staan meer
details.Welke methode ook gebruikt wordt voor de
CTM delta's, het is belangrijk een
abonnement te nemen op de &a.ctm-announce.name; mailinglijst.
In de toekomst worden alleen op die lijst aankondigingen
gedaan over het CTM systeem.
Abonneren kan door op de link hierboven te klikken en de
instructies te volgen.CTM de eerste keer
gebruikenVoordat de CTM delta's gebruikt
kunnen worden, moet er een startpunt voor bepaald
worden.Eerst moet bepaald worden wat er al is. Het is mogelijk te
beginnen vanuit een lege map. Dan moet een
initiële Empty delta gebruikt worden om een
door CTM ondersteunde structuur te
starten. Het is de bedoeling dat deze start
delta's ooit voor het gemak op de cd-rom komen te staan, maar
dit is nog niet het geval.Omdat de structuren tientallen megabytes groot zijn, heeft
het de voorkeur om al met iets te beginnen. Als er een
-RELEASE cd-rom beschikbaar is, kan de initiële broncode
gekopieerd of uitgepakt worden. Dit bespaart nogal wat
dataverkeer.De start delta's kunnen herkend worden aan
de X die aan het nummer is toegevoegd
(bijvoorbeeld src-cur.3210XEmpty.gz). De
nummering achter de X komt overeen met de
oorsprong van het initiële zaad.
Empty is een lege map. Er wordt in het
algemeen iedere honderd delta's een basistransitie voor
Empty gemaakt. Die zijn trouwens groot: 70
tot 80 Megabytes gzip data is normaal voor
de XEmpty delta's.Als er een delta als startpunt is gekozen, zijn ook alle
delta's met hogere volgnummers nodig.CTM in het dagelijks leven
gebruikenOm de delta's toe te passen:&prompt.root; cd /where/ever/you/want/the/stuff
&prompt.root; ctm -v -v /where/you/store/your/deltas/src-xxx.*CTM begrijpt delta's in
gzip formaat, dus het niet nodig om eerst
gunzip te gebruiken. Dat spaart
diskruimte.Tenzij het zeker is van de veiligheid van het proces, doet
CTM niets met de structuur. Om een
delta te verifiëren kan ook de vlag
gebruikt worden en dan komt
CTM ook niet aan een structuur. Dan
wordt alleen de integriteit van de delta gecontroleerd en of
die zonder problemen op de huidige structuur kan worden
toegepast.CTM kent nog meer opties die in
de hulppagina's worden besproken.Meer is er niet. Iedere keer dat er een delta wordt
ontvangen, moet die door CTM gehaald
worden om de broncode bijgewerkt te houden.Delta's kunnen het beste niet verwijderd worden als het
lastig is ze opnieuw te downloaden. Dan kunnen ze het beste
bewaard worden voor het geval er eens iets gebeurt. Zelfs als
er alleen floppy's beschikbaar zijn, is het wellicht verstandig
die te gebruiken met fdwrite.Lokale wijzigingen behoudenEen ontwikkelaar wil graag experimenteren met bestanden in
de structuur en die bestanden veranderen.
CTM ondersteunt lokale wijzigingen
in beperkte mate: alvorens te kijken of bestand
foo bestaat, zoekt het eerst naar
foo.ctm. Als dat bestand bestaat, past
CTM de wijzigigen daarop toe in
plaats van op foo.Dit gedrag biedt een eenvoudige mogelijkheid om lokale
wijzigingen bij te houden. Dat kan dus door bestanden die
gewijzigd gaan worden te kopiëren naar een bestand met
dezelfde naam met de toevoeging .ctm. Dan
kan er vrijelijk gespeeld worden met de code, terwijl
CTM het bestand
.ctm bijwerkt.Andere interessante mogelijkheden van
CTMUitvinden wat precies wordt veranderd met
bijwerkenHet is mogelijk een lijst met wijzigingen te maken die
CTM zou maken op het broncodedepot
met de optie .Dit is nuttig als het gewenst is om een logboek bij te
houden van de wijzigingen, de te wijzigen bestanden voor- of
na te bewerken op welke manier dan ook, of als de gebruiker
gewoon een beetje paranoïde is.Back-ups maken vóór bijwerkenSoms kan het wenselijk zijn om een back-up te maken van
alle bestanden die gewijzigd gaan worden door een
CTM update.Met back-upt
CTM alle bestanden die gewijzigd
gaan worden door een CTM delta
naar back–upbestand.Te wijzigen bestanden door bijwerken beperkenSoms is het wenselijk de reikwijdte voor een
CTM update te beperken of kan het
wenselijk zijn om maar een paar bestanden bij te werken uit
een aantal delta's.Een lijst met bestanden die
CTM mag bewerken kan aangegeven
worden met de opties en
en het opgeven van regular
expressions.Om bijvoorbeeld een bijgewerkte kopie van
lib/libc/Makefile te maken uit de
verzameling met opgeslagen CTM
delta's, kan het volgende commando uitgevoerd worden:&prompt.root; cd /where/ever/you/want/to/extract/it/
&prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*Voor ieder te wijzigen bestand in een
CTM delta worden de opties
en toegepast in de
volgorde waarin ze op de commandoregel staan. Het bestand
wordt alleen door CTM verwerkt als
het passend is bevonden na het toepassen van alle parameters
in en .Toekomstige plannen voor
CTMDie zijn er:Een of andere vorm van authenticatie in het
CTM systeem bouwen zodat
vervalste CTM updates
afgevangen kunnen worden;De opties voor CTM opruimen
omdat ze verwarrend zijn geworden.Nog meerEr zijn ook delta's voor de
portscollectie, maar daar is nog niet zo
veel belangstelling voor.CTM mirrorsCTM/&os; is op de volgende
mirrorsites via anonieme FTP beschikbaar. Als voor
CTM anonieme FTP wordt gebruikt,
heeft het de voorkeur een site die in geografische zin dichtbij
is te gebruiken.Bij problemen kan contact gezocht worden met de
&a.ctm-users.name; mailinglijst.Californië, Bay Area, officiële bronZuid-Afrika, back-upserver voor oude delta'sTaiwan/R.O.C.Als er geen mirror dichtbij is of als die incompleet is,
kan een zoekmachine als alltheweb gebruikt
worden.CVSup gebruikenInleidingCVSup is een softwarepakket voor
het verspreiden en bijwerken van broncodestructueren vanaf een
master CVS depot op een andere server. De &os; broncode wordt
beheerd in een broncode depot op een centrale ontwikkelmachine
in Californië. Met CVSup
kunnen &os; gebruikers op eenvoudige wijze hun broncode
bijwerken.CVSup gebruikt een zogenaamd
pull model voor het bijwerken. In het
pull-model vraagt iedere client de server om updates als die
nodig zijn. De server wacht passief op een verzoek om updates
van zijn clients. Alle updates worden dus op initiatief van de
client gedaan. De server stuurt nooit ongevraagde updates.
Gebruikers moeten de CVSup client
handmatig draaien om te updaten of een cron
taak instellen om op regelmatige basis bij te werken.De term CVSup, op de gegeven
wijze geschreven, doelt op het complete softwarepakket. De
belangrijkste componenten zijn de client
cvsup, die op de machine van een gebruiker
draait, en de server cvsupd, die op alle
&os; mirrorsites draait.In de &os; documentatie en op de mailinglijsten zijn
referenties aan sup te vinden.
Sup was de voorloper van
CVSup en diende hetzelfde doel.
CVSup wordt op dezelfde manier
gebruikt als sup en gebruikt zelfs bestanden met instellingen
die ook te gebruiken zijn met sup.
Sup wordt niet langer gebruikt in
het &os; project omdat CVSup sneller
en flexibeler is.InstallatieDe meest eenvoudige wijze van installatie van
CVSup is met het voorgecompileerde
package net/cvsup uit de
&os; packagescollectie. Als het
gewenst is, kan CVSup ook uit de
broncode gebouwd worden in net/cvsup. De net/cvsup port is afhankelijk van
het Modula-3 systeem en dat kan wel even duren en er is ook
nogal wat schijfruimte voor nodig om het te downloaden en te
bouwen.Als CVSup gebruikt gaat
worden op een machine waarop geen
&xfree86; of
&xorg; staat, zoals een server,
dan dient de port waar geen
CVSup GUI bij
zit geïnstalleerd te worden: net/cvsup-without-gui.CVSup instellingenDe werking van CVSup wordt
gestuurd door een bestand met instellingen met de naam
supfile. Er staan een aantal
supfiles als voorbeeld in de map /usr/share/examples/cvsup/.De informatie in een supfile
beantwoordt de volgende vragen voor
CVSup:Welke bestanden
moeten ontvangen worden?Welke versies daarvan
moeten ontvangen worden?Waar moeten ze
vandaan komen?Waar moeten ze komen
te staan?Waar moet
cvsup zijn statusbestanden
bijhouden?In de volgende paragrafen wordt een
supfile bestand opgebouwd door
achtereenvolgens alle gestelde vragen te beantwoorden. Als
eerste wordt de algemene structuur van een
supfile beschreven.Een supfile is een tekstbestand.
Commentaar begint met een # en loopt tot het
einde van de regel. Lege regels en regels die alleen
commentaar bevatten worden genegeerd.Iedere regel die overblijft slaat op een groep bestanden
die ontvangen moet worden. De regel begint met de naam van een
collectie, een logische groep bestanden op de
server. De naam van de collectie geeft de server aan welke
bestanden er gestuurd moeten worden. Na de naam van de
collectie komen er geen of meer velden die gescheiden worden
door witruimte. Die velden beantwoorden de hierboven gestelde
vragen. Er zijn twee soorten velden: vlagvelden en
waardevelden. Een vlagveld bestaat uit een alleenstaand
sleutelwoord, bijvoorbeeld delete of
compress. Een waardeveld begint ook met
een sleutelwoord, maar het sleutelwoord wordt direct (zonder
witruimte) gevolgd door = en een tweede
woord. release=cvs is bijvoorbeeld een
waardeveld.In een supfile wordt meestal
aangegeven dat er meerdere collecties ontvangen moeten worden.
Het is mogelijk om een supfile te
structureren door expliciet alle relevante velden aan te geven
voor iedere collectie, maar dat maakt de regels in de
supfile nogal lang en het is onhandig
omdat de meeste velden hetzelfde zijn voor alle collecties in
een supfile.
CVSup biedt een systeem met
standaardinstellingen om dit probleem te omzeilen. Regels die
beginnen met de speciale pseuso-collectienaam
*default kunnen gebruikt worden om
standaarden in te stellen voor de collecties die er in de
supfile achteraan komen. Een
standaardwaarde kan voor individuele collecties overschreven
worden door een andere waarde in de collectie zelf aan te
geven. Standaarden kunnen ook middenin het bestand gewijzigd
of aangevuld worden met extra *default
regels.Na deze achtergronden wordt er nu een
supfile samengesteld voor het ontvangen en
bijwerken van de hoofd broncodestructuur van &os;-CURRENT.Welke bestanden moeten
ontvangen worden?De bestanden die via CVSup
beschikbaar zijn, zijn beschikbaar in groepen die
collecties heten. De beschikbare collecties
staan beschreven in de volgende paragraaf. In dit
voorbeeld is het de bedoeling dat de hele hoofd
broncodestructuur voor &os; wordt ontvangen. Daar is
één grote collectie voor:
src-all. De eerste stap in het maken
van een supfile is het opsommen van de
gewenste collecties, één per regel (in dit
geval maar één regel):src-allWelke versies daarvan
moeten ontvangen worden?Met CVSup kan vrijwel iedere
versie van de broncode die ooit heeft bestaan opgehaald
worden. Dat kan omdat de cvsupd
server direct vanaf het CVS depot werkt, dat alle versies
bevat. Er kan aangegeven welke ontvangen moeten worden met
de waardevelden tag= en
.Voorzichtigheid is geboden bij het correct aangeven
van velden met tag=. Sommige labels
zijn alleen geldig voor bepaalde collecties of bestanden.
Als ze incorrect worden aangeven of als er een spelfout
wordt gemaakt in een label, verwijdert
CVSup bestanden waarvan dat
waarschijnlijk niet de bedoeling is. Het label
tag=. dient eigenlijk
alleen gebruikt te worden voor de
ports-* collecties.Het veld tag= benoemt een symbolisch
label in het depot. Er zijn twee soorten labels:
revisielabels en taklabels. Een revisielabel refereert aan
een specifieke revisie. De betekenis blijft altijd
hetzelfde. Een taklabel refereert echter aan de laatste
revisie van een gegeven ontwikkellijn op een gegeven
moment. Omdat een taklabel niet refereert aan een
specifieke revisie, kan het morgen iets anders betekenen
dan vandaag. beschrijft de meest
interessante taklabels. Als er in het instellingenbestand
van CVSup een label wordt
aangegeven, moet dat vooraf gegaan worden door
tag= (RELENG_4 zal
tag=RELENG_4 worden). Voor de
Portscollectie is alleen tag=.
relevant.Labels dienen exact zo ingegeven te worden als ze
staan beschreven. CVSup kan
geen onderscheid maken tussen geldige en ongeldige
labels. Als er een spelfout in een label wordt gemaakt,
doet CVSup alsof er een geldig
label is ingegeven dat aan geen enkel bestand refereert.
Dan zal CVSup de bestaande
broncode wissen.Bij het aangeven van een taklabel wordt meestal de
laatste versie van de bestanden voor een bepaalde
ontwikkellijn ontvangen. Om een oudere versie te
ontvangen kan in het veld een datum
opgegeven worden. In &man.cvsup.1; staat hoe dat
werkt.Om bijvoorbeeld &os;-CURRENT te ontvangen dient het
volgende aan het begin van supfile
toegevoegd te worden:*default tag=.Er ontstaat een belangrijk speciaal geval als er geen
velden met tag= of
date= worden aangegeven. In dat geval
worden de eigenlijke RCS bestanden direct uit het CVS depot
van de server ontvangen in plaats van dat een bepaalde
versie wordt ontvangen. Ontwikkelaars geven in het
algemeen de voorkeur aan deze optie. Door zelf een kopie
van de broncode op hun systeem te hebben, krijgen ze de
mogelijkheid om zelf door eerdere versies van bestanden te
bladeren en de geschiedenis ervan te bekijken. Dit
voordeel kost wel veel schijfruimte.Waar moeten ze vandaan
komen?Het veld host= wordt gebruikt om
cvsup aan te geven waar de updates
vandaan moeten komen. Dat kan van elke CVSup mirrorsite, hoewel
er wordt aangeraden een site die geografisch dichtbij ligt
te kiezen. In dit voorbeeld wordt een fictieve &os;
distributiesite gebruikt, cvsup99.FreeBSD.org:*default host=cvsup99.FreeBSD.orgIn een werkelijke situatie dient de hostnaam gewijzigd
te worden in een host die echt bestaat voordat
CVSup gaat draaien. Iedere keer
dat cvsup wordt gestart, kan er een
andere host op de commandoregel opgegeven worden met de
optie .Waar moeten ze komen te
staan?Het veld prefix= geeft
cvsup aan waar de ontvangen bestanden
terecht moeten komen. In dit voorbeeld worden de bestanden
direct in de hoofd broncodestructuur
/usr/src geplaatst. De map
src is al impliciet in de gekozen
collecties, vandaar dat het onderstaande de juiste
instelling is:*default prefix=/usrWaar moet
cvsup zijn statusbestanden
bijhouden?De CVSup client houdt
statusbestanden bij in een map die base
wordt genoemd. Die bestanden helpen
CVSup efficiënter te
werken door bij te houden welke updates al eerder zijn
ontvangen. Hier wordt de standaard basemap gebruikt,
/var/db:*default base=/var/dbDe bovenstaande instelling wordt standaard gebruikt als
die niet wordt aangegeven in de
supfile, dus hij is eigenlijk niet
nodig.Als de basemap niet al bestaat, moet die gemaakt
worden. De cvsup client weigert te
draaien als de basemap niet bestaat.Allerlei supfile
instellingen:Er is nog een regel die in een
supfile moet staan:*default release=cvs delete use-rel-suffix compressrelease=cvs geeft de server aan dat
de informatie uit het &os; hoofd CVS depot moet komen. Dat
is eigenlijk altijd het geval, maar er zijn mogelijkheden
die buiten het bereik van dit handboek vallen.delete geeft
CVSup het recht om bestanden te
verwijderen. Dit moet altijd aangegeven worden zodat
CVSup de broncode altijd kan
bijwerken. CVSup gaat
voorzichtig om met het verwijderen van bestanden waar het
verantwoordelijk voor is. Extra bestanden in de structuur
worden met rust gelaten.use-rel-suffix is nogal
geheimzinnig. Voor de nieuwsgierigen staat er meer over in
&man.cvsup.1;. Anders kan het gewoon ingesteld worden
zonder erover na te denken.compress schakelt het gebruikt van
gzip compressie in voor het communicatiekanaal. Als de
verbinding een E1 of sneller is, hoeft er geen compressie
gebruikt te worden. Anders helpt het aanzienlijk.Alles combinerend:Hieronder staat de hele supfile
uit het voorbeeld:*default tag=.
*default host=cvsup99.FreeBSD.org
*default prefix=/usr
*default base=/var/db
*default release=cvs delete use-rel-suffix compress
src-allHet bestand refuseZoals hierboven al is aangegeven, gebruikt
CVSup een pull
methode. Dat betekent eigenlijk dat er een
verbinding wordt gemaakt met de
CVSup server en die zegt dan:
Dit kan er van mij gedownload worden..., en
dan antwoordt de client met: Oké, ik wil dit en
dat en zus en zo. Met de standaardinstellingen haalt
de CVSup client alle bestanden die
bij een collectie en het label horen dat in het bestand met
de instellingen is opgegeven. Maar dat is niet altijd
wenselijk, in het bijzonder als de doc,
ports of www
structuren worden gesynchroniseerd. De meeste mensen kunnen
geen vier of vijf talen lezen en die hebben de taalspecifieke
bestanden dus niet nodig. Als de Portscollectie met
CVSup wordt opgehaald, is het
mogelijk om iedere collectie apart aan te geven (bijvoorbeeld
ports-astrology,
ports-biology, enzovoort, in plaats van
eenvoudigweg ports-all). Maar omdat
de doc en www
structuren geen taalspecifieke collecties hebben, moet er
gebruik gemaakt worden van een van de vele mooie
mogelijkheden van CVSup: het
bestand refuse.Het bestand refuse geeft
CVSup in feite aan dat niet ieder
bestand uit een collectie opgehaald moet worden. Het geeft
dus aan dat de client bepaalde bestanden van de server moet
weigeren. Het bestand
refuse staat in (of kan gemaakt worden
in)
base/sup/.
base staat ingesteld in
supfile. De standaardlocatie voor
base is
/var/db. De standaardplaats voor
refuse is dus
/var/db/sup/refuse.Het bestand refuse heeft een erg
eenvoudige opmaak. Het bevat de namen van de bestanden die
niet gedownload mogen worden. Als een gebruiker bijvoorbeeld
geen andere talen spreekt dan Engels en Nederlands, maar
de Nederlandse vertaling van de documentatie hoeft niet
binnengehaald te worden, dan kan het volgende in het bestand
refuse gezet worden:doc/bn_*
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/it_*
doc/ja_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/ru_*
doc/sr_*
doc/tr_*
doc/zh_*Dit gaat zo door voor de andere talen. De volledige
lijst staat in het &os;
CVS depot.Met deze handige eigenschap kunnen gebruikers met
langzamere verbindingen of zij die per minuut voor hun
internetverbinding betalen waardevolle tijd besparen omdat er
geen bestanden meer gedownload worden die nooit gebruikt
worden. Meer informatie over refuse
bestanden en andere leuke mogelijkheden van
CVSup staat in de
handleiding.CVSup draaienNu kan het bijwerken beginnen. Het commando is best wel
eenvoudig:&prompt.root; cvsup supfileDe supfile
is de naam van het supfile bestand dat
gebruikt moet worden. Aangenomen dat er X11 draait op een
machine, toont cvsup een GUI venster met
wat knoppen om de bekende acties uit te voeren. Het proces
start na het klikken op de knop
go.Omdat in dit voorbeeld de werkelijke structuur in
/usr/src wordt bijgewerkt, moet het
programma als root uitgevoerd worden,
zodat cvsup de rechten heeft die het nodig
heeft om de bestanden bij te werken. Het is voorstelbaar dat
de benodigde rechten, het net gemaakte bestand met instellingen
en het voor de eerste keer draaien van een programma zorgt voor
wat onrust. Daarom is het mogelijk proef te draaien zonder
dat er bestanden gewijzigd worden. Dat kan door ergens een
lege map te maken en een extra argument mee te geven op de
commandoregel:&prompt.root; mkdir /var/tmp/dest
&prompt.root; cvsup supfile /var/tmp/destDe opgegeven map is de bestemming voor alle
bestandsupdates. CVSup bekijkt wel
de bestanden in /usr/src, maar wijzigt ze
niet. Alle updates belanden in
/var/tmp/dest/usr/src.
CVSup werkt ook de statusbestanden
niet bij als het op deze wijze wordt uitgevoerd. De nieuwe
versies van de bestanden worden naar de aangegeven map
geschreven. Als er maar leestoegang is tot
/usr/src, hoeft een gebruiker zelfs geen
root te zijn bij het uitvoeren van dit
experiment.Als er geen X11 draait of als het niet wenselijk is een GUI
te gebruiken, dan kunnen daarvoor opties op de commandoregel
meegegeven worden bij het draaien van
cvsup:&prompt.root; cvsup -g -L 2 supfileDe optie geeft
CVSup aan dat de GUI niet gebruikt
hoeft te worden. Dit gebeurt automatisch als X11 niet draait,
maar anders moet het aangegeven worden.De optie geeft
CVSup aan dat details getoond
moeten worden over alle bestanden die bijgewerkt worden. Er
zijn drie niveau's van uitvoerigheid, van
tot . Standaard is het 0, wat betekent
dat er geen enkel bericht wordt getoond, met uitzondering van
foutmeldingen.Er zijn nog veel andere opties beschikbaar. Met
cvsup -H wordt een lijst met korte uitleg
getoond. Beschrijvingen met meer details staan in de
handleiding.Als het bijwerken op de gewenste manier loopt, kan het
regulier draaien van CVSup met
&man.cron.8; ingesteld worden. Natuurlijk hoort
CVSup zonder GUI te draaien als het
programma vanuit de &man.cron.8; draait.CVSup
bestandscollectiesDe via CVSup beschikbare
bestandscollecties zijn hiërarchisch georganiseerd. Er
zijn een paar grote collecties en die zijn opgedeeld in
kleinere sub-collecties. Het ontvangen van een collectie is
hetzelfde als het ontvangen van alle sub-collecties. De
hiërarchische relatie tussen de collecties wordt
hieronder aangegeven door het niveau van inspringen.De meest gebruikte collecties zijn
src-all en ports-all. De
andere collecties worden door kleine groepen mensen gebruikt
voor bijzondere doeleinden en sommige mirrorsites hebben ze
niet allemaal.cvs-all release=cvsHet &os; CVS hoofddepot, inclusief de cryptografische
code.distrib release=cvsBestanden die betrekking hebben op het
verspreiden en spiegelen van &os;.doc-all release=cvsBroncode voor het &os; Handboek en andere
documentatie, zonder de bestanden voor de &os;
website.ports-all release=cvsDe &os; Portscollectie.Als ports-all (het
complete portssysteem) niet bijgewerkt hoeft te
worden, maar enkele van de onderstaande
sub-collecties, dan moet
altijd ook de
ports-base sub-collectie
bijgewerkt worden! Als er iets wijzigt in de
infrastructuur van de ports waar
ports–base voor staat,
is het vrijwel zeker dat die wijzigingen heel
snel door echte ports gebruikt
gaan worden. Dus als alleen de
echte ports bijgewerkt worden en
als die gebruik maken van nieuwe mogelijkheden,
dan is de kans groot dat het bouwen daarvan
foutloopt met een vage foutmelding. Het
eerste dat gedaan moeten
worden is ervoor zorgen dat de
ports-base sub-collectie is
bijgewerkt.Bij het zelf bouwen van een lokale kopie van
ports/INDEXmOEtports-all geaccepteerd worden
(de hele port structuur). Het bouwen van
ports/INDEX met een
gedeeltelijke structuur wordt niet ondersteund.
Zie ook de FAQ.ports-accessibility
release=cvsSoftware voor minder valide
gebruikers.ports-arabic
release=cvsOndersteuning voor de Arabische
taal.ports-archivers
release=cvsArchiveringshulpmiddelen.ports-astro
release=cvsAstronomie ports.ports-audio
release=cvsGeluidsondersteuning.ports-base
release=cvsDe infrastructuur van de Portscollectie.
Bestanden uit de mappen
Mk/ en
Tools/ van
/usr/ports.Zie ook de belangrijke
waarschuwing hierboven: deze
sub-collectie dient
altijd bijgewerkt te
worden als er een onderdeel van de &os;
Portscollectie wordt bijgewerkt!ports-benchmarks
release=cvsBenchmarks.ports-biology
release=cvsBiologie.ports-cad
release=cvsComputer aided design programma's.ports-chinese
release=cvsOndersteuning voor de Chinese
taal.ports-comms
release=cvsCommunicatiesoftware.ports-converters
release=cvsKaraktercode omzetters.ports-databases
release=cvsDatabases.ports-deskutils
release=cvsDingen die op een bureaublad stonden
voordat computers waren uitgevonden.ports-devel
release=cvsOntwikkelhulpmiddelen.ports-dns
release=cvsDNS gerelateerde software.ports-editors
release=cvsEditors.ports-emulators
release=cvsEmulatoren voor
besturingssystemen.ports-finance
release=cvsMonetaire, financiële en
gerelateerde applicaties.ports-ftp
release=cvsFTP client en server programma's.ports-games
release=cvsSpelletjes.ports-german
release=cvsOndersteuning voor de Duitse taal.ports-graphics
release=cvsGrafische programma's.ports-hebrew
release=cvsOndersteuning voor de Hebreeuwse
taal.ports-hungarian
release=cvsOndersteuning voor de Hongaarse
taal.ports-irc
release=cvsInternet Relay Chat
hulpprogramma's.ports-japanese
release=cvsOndersteuning voor de Japanse
taal.ports-java
release=cvs&java; programma's.ports-korean
release=cvsOndersteuning voor de Koreaanse
taal.ports-lang
release=cvsProgrammeertalen.ports-mail
release=cvsMailsoftware.ports-math
release=cvsNumerieke rekensoftware.ports-mbone
release=cvsMBone applicaties.ports-misc
release=cvsVerschillende programma's.ports-multimedia
release=cvsMultimedia software.ports-net
release=cvsNetwerksoftware.ports-net-im
release=cvsBerichtenuitwisseling.ports-net-mgmt
release=cvsNetwerkbeheersoftware.ports-news
release=cvsUSENET news software.ports-palm
release=cvsSoftwareondersteuning voor
Palm
apparatuur.ports-polish
release=cvsOndersteuning voor de Poolse taal.ports-portuguese
release=cvsOndersteuning voor de Portugese
taal.ports-print
release=cvsPrintsoftware.ports-russian
release=cvsOndersteuning voor de Russische
taal.ports-science
release=cvsWetenschappelijk.ports-security
release=cvsBeveiligingsprogramma's.ports-shells
release=cvsCommandoregelshells.ports-sysutils
release=cvsSysteemprogramma's.ports-textproc
release=cvsTekstverwerkingsprogramma's (zonder
desktop publishing).ports-ukrainian
release=cvsOndersteuning voor de Oekraïnische
taal.ports-vietnamese
release=cvsOndersteuning voor de Vietnamese
taal.ports-www
release=cvsSoftware gerelateerd aan het Wereldwijde
Web.ports-x11
release=cvsPorts voor het X windowsysteem.ports-x11-clocks
release=cvsX11 klokken.ports-x11-fm
release=cvsX11 bestandsbeheerders.ports-x11-fonts
release=cvsX11 lettertypen en
lettertypeprogramma's.ports-x11-toolkits
release=cvsX11 hulpprogramma's.ports-x11-servers
release=cvsX11 servers.ports-x11-themesX11 thema's.ports-x11-wm
release=cvsX11 vensterbeheerprogramma's.src-all release=cvsDe hoofdbroncode van &os;, inclusief de
cryptografische code.src-base
release=cvsVerschillende bestanden bovenin de
/usr/src
structuur.src-bin
release=cvsGebruikersprogramma's die wellicht nodig
zijn in single-user modus
(/usr/src/bin).src-contrib
release=cvsProgramma's en bibliotheken van buiten
het &os; project die vrijwel ongewijzigd
gebruikt worden
(/usr/src/contrib).src-crypto release=cvsCryptografische programma's en
bibliotheken van buiten het &os; project, die
vrijwel ongewijzigd worden gebruikt
(/usr/src/crypto).src-eBones release=cvsKerberos en DES
(/usr/src/eBones). Niet
gebruikt in recente uitgaves van &os;.src-etc
release=cvsBestanden met systeeminstellingen
(/usr/src/etc).src-games
release=cvsSpelletjes
(/usr/src/games).src-gnu
release=cvsProgramma's die onder de GNU Public
License vallen
(/usr/src/gnu).src-include
release=cvsHeaderbestanden
(/usr/src/include).src-kerberos5
release=cvsKerberos5 beveiligingspakket
(/usr/src/kerberos5).src-kerberosIV
release=cvsKerberosIV beveiligingspakket
(/usr/src/kerberosIV).src-lib
release=cvsBibliotheken
(/usr/src/lib).src-libexec
release=cvsSysteemprogramma's die meestal door
andere programma's worden uitgevoerd
(/usr/src/libexec).src-release
release=cvsBestanden die nodig zijn voor het
maken van een &os; release
(/usr/src/release).src-sbin release=cvsSysteemprogramma's voor single-user modus
(/usr/src/sbin).src-secure
release=cvsCryptografische bibliotheken en
commando's
(/usr/src/secure).src-share
release=cvsBestanden die tussen meerdere systemen
gedeeld kunnen worden
(/usr/src/share).src-sys
release=cvsDe kernel
(/usr/src/sys).src-sys-crypto
release=cvsCryptografische kernelcode
(/usr/src/sys/crypto).src-tools
release=cvsVerschillende hulpprogramma's voor het
onderhoud van &os;
(/usr/src/tools).src-usrbin
release=cvsGebruikersprogramma's
(/usr/src/usr.bin).src-usrsbin
release=cvsSysteemprogramma's
(/usr/src/usr.sbin).www release=cvsDe broncode voor de &os; website.distrib release=selfDe instellingenbestanden van de
CVSup server zelf. Gebruikt
door de CVSup
mirrorsites.gnats release=currentDe GNATS bug-tracking database.mail-archive release=current&os; mailinglijstarchief.www release=currentDe voorbewerkte &os; websitebestanden (niet de
broncode). Gebruikt door WWW mirrorsites.Voor meer informatieDe CVSup FAQ en andere
informatie over CVSup is te vinden
op De
CVSup Homepage.De meeste &os;–gerelateerde discussie over
CVSup vindt plaats op de
&a.hackers;. Daar worden nieuwe versies van de software
aangekondigd, net als op de &a.announce;.Vragen en foutrapporten kunnen gericht worden aan de
auteur van het programma op
cvsup-bugs@polstra.com.CVSup sitesCVSup servers voor &os; draaien
op de onderstaande sites. Het overige deel van deze paragraaf
wordt automatisch samengesteld en is daarom niet vertaald.
&chap.mirrors.cvsup.inc;
Portsnap gebruikenIntroductiePortsnap is een systeem voor het
veilig distribueren van de &os; portsstructuur. Er wordt
ongeveer eens per uur een snapshot van de
portsstructuur gemaakt en dat wordt cryptografisch getekend.
De resulterende bestanden worden daarna gedistribueerd via
HTTP.Net als CVSup gebruikt
Portsnap een
pull-model voor het bijwerken: de
voorverpakte en getekende portsstructuren worden op een
webserver geplaatst die passief wacht op verzoeken om bestanden
door clients. Gebruikers dienen ofwel handmatig
&man.portsnap.8; te draaien om de updates op te halen ofwel een
taak in &man.cron.8; in te stellen om de updates regelmatig
automatisch op te laten halen.Om technische redenen werkt
Portsnap de portsstructuur in
/usr/ports/ niet direct
live bij. In plaats daarvan werkt het met een
gecomprimeerde kopie van de portsstructuur die standaard in
/var/db/portsnap/ staat. Deze
gecomprimeerde kopie wordt daarna gebruikt om de eigenlijke
portsstructuur bij te werken.Als Portsnap is
geïnstalleerd uit de &os; Portscollectie, dan is de
standaardlocatie voor het gecomprimeerde snapshot
/usr/local/portsnap/ in plaats van
/var/db/portsnap/.InstallatieIn &os; 6.0 en nieuwere versies, is
Portsnap onderdeel van het &os;
basissysteem. In oudere versies van &os; kan het
geïnstalleerd worden met de port sysutils/portsnap.Portsnap instellenDe werking van Portsnap wordt
bepaald door het instellingenbestand
/etc/portsnap.conf. Voor de meeste
gebruikers voldoen de standaard instellingen. Meer details
staan in de handboekpagina van &man.portsnap.conf.5;.Als Portsnap is
geïnstalleerd uit de Portscollectie, dan wordt als
instellingenbestand
/usr/local/etc/portsnap.conf gebruikt in
plaats van
/etc/portsnap.conf. Dit
instellingenbestand wordt niet gemaakt als de port wordt
geïnstalleerd, maar er wordt een voorbeeldbestand
gedistribueerd. Voer het volgende commando uit om dit
bestand juist te plaatsen:
- &prompt.root; cd /usr/local/etc && cp portsnap.conf.sample portsnap.conf
+ &prompt.root; cd /usr/local/etc && cp portsnap.conf.sample portsnap.confPortsnap voor de eerste keer
draaienDe eerste keer dat &man.portsnap.8; wordt gedraaid, moet
het een gecomprimeerde snapshot van de complete portsstructuur
downloaden naar /var/db/portsnap/ (of
/usr/local/portsnap/ als
Portsnap geïnstalleerd is uit
de Portscollectie). Dit is een download van ongeveer
36 MB.&prompt.root; portsnap fetchAls het gecomprimeerde snapshot is gedownload, dan kan een
live kopie van de portsstructuur uitgepakt
worden naar /usr/ports/. Dit moet
gebeuren, zelfs als er al een portsstructuur bestaat in die map
(bijvoorbeeld door gebruik van
CVSup), omdat hiermee een
uitgangspunt wordt gemaakt dat portsnap
gebruikt om later te bepalen welke delen van de portsstructuur
bijgewerkt moeten worden.In de standaard installatie wordt /usr/ports niet aangemaakt.
Maak deze map aan alvorens
portsnap te gebruiken:&prompt.root; mkdir /usr/ports&prompt.root; portsnap extractPortsstructuur bijwerkenNadat een eerste gecomprimeerd snapshot van de
portsstructuur is gedownload en uitgepakt in
/usr/ports/, bestaat het bijwerken van
de portsstructuur uit twee stappen: het ophalen van de
gecomprimeerde updates voor het snapshot
(fetch) en die gebruiken om de live
portsstructuur bij te werken (update).
Deze twee stappen kunnen door portsnap in
een enkel commando worden uitgevoerd:&prompt.root; portsnap fetch updateSommige oudere versies van portsnap
ondersteunen deze syntaxis niet. Als het bovenstaande niet
werkt, probeer dan het volgende:&prompt.root; portsnap fetch
&prompt.root; portsnap updatePortsnap draaien vanuit cronOm het probleem dat hordes gebruikers inhameren op de
servers voor Portsnap te voorkomen,
draait portsnap fetch niet vanuit een
&man.cron.8;-opdracht. In plaats daarvan is het commando
portsnap cron beschikbaar, dat een
willekeurige periode wacht, tot 3600 seconden, voordat de
updates worden opgehaald.Daarnaast wordt het sterk aangeraden om
portsnap update niet vanuit de
cron te draaien, omdat er grote problemen te
verwachten zijn als dit commando op hetzelfde moment draait als
waarop een port wordt gebouwd of geïnstalleerd. Het is
wel veilig om de INDEX-bestanden voor de ports bij te werken en
dit kan gedaan worden door de vlag mee te
geven aan portsnap. Natuurlijk is het op
een later moment nodig om, als portsnap -I
update draait vanuit de cron,
portsnap update te draaien zonder de vlag
om de rest van de structuur bij te
werken.Door de volgende regel toe te voegen aan
/etc/crontab werkt
Portsnap zijn gecomprimeerde
snapshot bij, worden de INDEX-bestanden in
/usr/ports/ bijgewerkt en wordt er een
e-mail verzonden als er ports zijn die bijgewerkt moeten
worden:
- 0 3 * * * root portsnap -I cron update && pkg_version -vIL=
+ 0 3 * * * root portsnap -I cron update && pkg_version -vIL=Als een systeemklok niet is ingesteld op de lokale
tijdzone, vervang 3 dan door een
willekeurige waarde tussen 0 en 23 om de belasting op de
servers voor Portsnap zo
evenwichtig mogelijk te verdelen.Sommige oudere versie van
portsnap bieden geen ondersteuning voor
het opgeven van meerdere commando's, zoals bijvoorbeeld
cron update, in dezelde aanroep van
portsnap. Als de regel hierboven faalt,
probeer portsnap -I cron update dan te
- vervangen door portsnap cron && portsnap -I
+ vervangen door portsnap cron && portsnap -I
update.CVS labelsBij het ophalen of bijwerken van broncode met
cvs of
CVSup moet een revisielabel meegegeven
worden. Een revisielabel refereert aan een specifieke lijn in
de &os; ontwikkeling of aan een specifiek moment in de tijd. Het
eerste type heet taklabel (branch tag) en het
tweede type heet releaselabel (release
tag).TaklabelsDeze zijn, met uitzondering van HEAD
(dat altijd een geldig label is), alleen van toepassing op de
src/ structuur. De
ports/, doc/ en
www/ structuren kennen geen takken.HEADSymbolische naam voor de hoofdlijn van &os;-CURRENT.
Ook de standaard als geen revisie is aangegeven.In CVSup wordt dit label
aangegeven met een . (dat is dus geen
interpunctie, maar een echt .
karakter).In CVS is dit de standaard als er geen revisietabel
is aangegeven. Het is meestal
geen goed idee om een checkout of
update van CURRENT broncode op een STABLE machine te
doen, tenzij dat expliciet de bedoeling is.RELENG_6De ontwikkellijn voor &os;-6.X, ook bekend als
&os; 6-STABLE.RELENG_6_0De releasetak voor &os;-6.0, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_5De ontwikkellijn voor &os;-5.X, ook bekend als
&os; 5-STABLE.RELENG_5_4De releasetak voor &os;-5.4, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_5_3De releasetak voor &os;-5.3, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_5_2De releasetak voor &os;-5.2 en &os;-5.2.1, alleen
gebruikt voor beveiligingswaarschuwingen en andere
kritische aanpassingen.RELENG_5_1De releasetak voor &os;-5.1, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_5_0De releasetak voor &os;-5.0, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4De ontwikkellijn voor &os;-4.X, ook bekend als &os;
4-STABLE.RELENG_4_11De releasetak voor &os;-4.11, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_10De releasetak voor &os;-4.10, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_9De releasetak voor &os;-4.9, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_8De releasetak voor &os;-4.8, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_7De releasetak voor &os;-4.7, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_6De releasetak voor &os;-4.6 en &os;-4.6.2,
alleen gebruikt voor beveiligingswaarschuwingen en andere
kritische aanpassingen.RELENG_4_5De releasetak voor &os;-4.5, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_4De releasetak voor &os;-4.4, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_4_3De releasetak voor &os;-4.3, alleen gebruikt voor
beveiligingswaarschuwingen en andere kritische
aanpassingen.RELENG_3De ontwikkellijn voor &os;-3.X, ook bekend als
3.X-STABLE.RELENG_2_2De ontwikkellijn voor &os;-2.2.X, ook bekend als
2.2-STABLE. Deze tak is sterk verouderd.ReleaselabelsDeze labels refereren aan een specifiek moment in de tijd
waarop een versie van &os; is uitgegeven. Het proces om tot
een release te komen is gedetailleerder beschreven in de
Release Engineering
Informatie en Release
Proces documenten. De src structuur gebruikt
labelnamen die beginnen met RELENG_ labels.
De ports en doc structuren gebruiken labels
waarvan de naam begint met het label
RELEASE. De www tenslotte, is niet
gemarkeerd met een bijzondere naam bij releases.RELENG_5_4_0_RELEASE&os; 5.4RELENG_4_11_0_RELEASEFreeBSD 4.11RELENG_5_3_0_RELEASE&os; 5.3RELENG_4_10_0_RELEASE&os; 4.10RELENG_5_2_1_RELEASE&os; 5.2.1RELENG_5_2_0_RELEASE&os; 5.2RELENG_4_9_0_RELEASE&os; 4.9RELENG_5_1_0_RELEASE&os; 5.1RELENG_4_8_0_RELEASE&os; 4.8RELENG_5_0_0_RELEASE&os; 5.0RELENG_4_7_0_RELEASE&os; 4.7RELENG_4_6_2_RELEASE&os; 4.6.2RELENG_4_6_1_RELEASE&os; 4.6.1RELENG_4_6_0_RELEASE&os; 4.6RELENG_4_5_0_RELEASE&os; 4.5RELENG_4_4_0_RELEASE&os; 4.4RELENG_4_3_0_RELEASE&os; 4.3RELENG_4_2_0_RELEASE&os; 4.2RELENG_4_1_1_RELEASE&os; 4.1.1RELENG_4_1_0_RELEASE&os; 4.1RELENG_4_0_0_RELEASE&os; 4.0RELENG_3_5_0_RELEASE&os;-3.5RELENG_3_4_0_RELEASE&os;-3.4RELENG_3_3_0_RELEASE&os;-3.3RELENG_3_2_0_RELEASE&os;-3.2RELENG_3_1_0_RELEASE&os;-3.1RELENG_3_0_0_RELEASE&os;-3.0RELENG_2_2_8_RELEASE&os;-2.2.8RELENG_2_2_7_RELEASE&os;-2.2.7RELENG_2_2_6_RELEASE&os;-2.2.6RELENG_2_2_5_RELEASE&os;-2.2.5RELENG_2_2_2_RELEASE&os;-2.2.2RELENG_2_2_1_RELEASE&os;-2.2.1RELENG_2_2_0_RELEASE&os;-2.2.0AFS sitesEr draaien AFS servers voor &os; op de volgende sites:SwedenThe path to the files are:
/afs/stacken.kth.se/ftp/pub/FreeBSD/stacken.kth.se # Stacken Computer Club, KTH, Sweden
130.237.234.43 #hot.stacken.kth.se
130.237.237.230 #fishburger.stacken.kth.se
130.237.234.3 #milko.stacken.kth.seBeheerder: ftp@stacken.kth.sersync sitesDe volgende sites bieden &os; aan via het protocol rsync.
Het programma rsync werkt vrijwel
hetzelfde als &man.rcp.1;, maar kent meer mogelijkheden en
gebruikt het rsync remote-update protocol, dat alleen verschillen
tussen twee groepen bestanden overbrengt, waardoor het
synchroniseren via een netwerk drastisch wordt versneld. Dit
kan het beste gedaan worden als er een mirrorsite voor de
&os; FTP server of het &os; CVS depot draait. De
rsync suite is voor veel
besturingssystemen beschikbaar. Voor &os; kan het package of de
port uit net/rsync
geïnstalleerd worden.Tschechische Republiekrsync://ftp.cz.FreeBSD.org/Beschikbare collecties:ftp: een gedeeltelijke mirror van de &os;
FTP server.&os;: een volledige mirror van de &os; FTP
server.Duitslandrsync://grappa.unix-ag.uni-kl.de/Beschikbare collecties:freebsd-cvs: het volledige &os; CVS
depot.Deze machine mirrort onder andere ook de CVS depots
voor de NetBSD en OpenBSD projecten.Nederlandrsync://ftp.nl.FreeBSD.org/Beschikbare collecties:vol/4/freebsd-core: een volledige mirror
van de &os; FTP server.Verenigd Koninkrijkrsync://rsync.mirror.ac.uk/Beschikbare collecties:ftp.FreeBSD.org: een volledige mirror van
de &os; FTP server.Verenigde Statenrsync://ftp-master.FreeBSD.org/Deze server mag alleen gebruikt worden door &os;
primaire mirrorsites.Beschikbare collecties:&os;: het masterarchief van de &os;
FTP server.acl: de &os; master ACL
lijst.rsync://ftp13.FreeBSD.org/Beschikbare collecties:&os;: een volledige mirror van de &os; FTP
server.
diff --git a/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml
index 7487b6bc77..d0e28e5a3d 100644
--- a/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml
@@ -1,5611 +1,5611 @@
MurrayStokelyGereorganiseerd door SiebrandMazelandVertaald door NetwerkdienstenOverzichtDit hoofdstuk behandelt een aantal veelgebruikte
netwerkdiensten op &unix; systemen. Er wordt ingegaan op de
installatie, het instellen, testen en beheren van verschillende
typen netwerkdiensten. Overal in dit hoofdstuk staan
voorbeeldbestanden met instellingen waar de lezer zijn voordeel
mee kan doen.Na het lezen van dit hoofdstuk weet de lezer:Hoe om te gaan met de inetd
daemon;Hoe een netwerkbestandssysteem opgezet kan worden;Hoe een netwerkinformatiedienst (NIS) opgezet kan worden
voor het delen van gebruikersaccounts;Hoe automatische netwerkinstellingen gemaakt kunnen
worden met DHCP;Hoe een domeinnaam server opgezet kan worden;Hoe een Apache HTTP Server
opgezet kan worden;Hoe een File Transfer Protocol (FTP) Server opgezet kan
worden;Hoe een bestands- en printserver voor &windows; clients
opgezet kan worden met
Samba;Hoe datum en tijd gesynchroniseerd kunnen worden en hoe
een tijdserver opgezet kan worden met het NTP
protocol.Veronderstelde voorkennis:Basisbegrip van de scripts in
/etc/rc;Bekend zijn met basis netwerkterminologie;Kennis van de installatie van software van derde partijen
().ChernLeeGeschreven door De inetdSuper-ServerOverzicht&man.inetd.8; wordt de internet Super-Server
genoemd, omdat die verbindingen voor meerdere diensten beheert.
Als door inetd een verbinding wordt
ontvangen, bepaalt die voor welk programma de verbinding
bedoeld is, spawnt dat proces en delegeert de socket (het
programma wordt gestart met de socket van de dienst als
zijn standaard invoer, uitvoer en foutbeschrijvingen). Het
draaien van één instantie van
inetd reduceert de load op een
systeem in vergelijking met het in stand-alone modus draaien
van alle daemons.inetd wordt primair gebruikt om
andere daemons aan te roepen, maar het handelt een aantal
triviale protocollen direct af, zoals
chargen,
auth en
daytime.In deze paragraaf worden de basisinstellingen van
inetd behandeld met de opties vanaf
de commandoregel en met het instellingenbestand
/etc/inetd.conf.Instellingeninetd wordt gestart door het
/etc/rc.conf systeem. De
optie inetd_enable staat standaard op
NO, maar wordt door
sysinstall vaak ingeschakeld door de
instellingen van het medium beveiligingsprofiel. Door het
instellen van
inetd_enable="YES" of
inetd_enable="NO" in
/etc/rc.conf wordt
inetd bij het opstarten van een
systeem wel of niet ingeschakeld.Dan kunnen er ook nog een aantal commandoregelopties aan
inetd meegegeven worden met de optie
inetd_flags.Commandoregeloptiesinetd overzicht:inetd [-d] [-l] [-w] [-W] [-c maximum] [-C rate] [-a adres | hostnaam]
[-p bestandsnaam] [-R rate] [instellingenbestand]-dSchakel debugging in.-lSchakel het loggen van succesvolle verbindingen
in.-wSchakel TCP Wrapping voor externe diensten in (staat
standaard aan).-WSchakel TCP Wrapping voor internet diensten uit
inetd in (staat standaard
aan).-c maximumGeeft het maximale aantal gelijktijdige verzoeken voor
iedere dienst aan. De standaard is ongelimiteerd. Kan
per dienst ter zijde geschoven worden met de parameter
.-C rateGeeft het maximale aantal keren aan dat een dienst
vanaf een bepaald IP adres per minuut aangeroepen kan
worden. Kan per dienst ter zijde geschoven worden met de
parameter
.-R rateGeeft het maximale aantal keren aan dat een dienst
per minuut aangeroepen kan worden. De standaard is 256.
De instelling 0 geeft aan dat er geen
limiet is.-aGeeft een of meer IP adres associaties aan. Er kan
ook een hostnaam opgegeven worden, in welk geval het IPv4
of IPv6 adres dat met de hostnaam overeenkomst wordt
gebruikt. Meestal wordt er een hostnaam gebruikt als
inetd in een &man.jail.8;
draait en de hostnaam dus overeenkomst met de
&man.jail.8;-omgeving.Als er een hostnaam wordt aangegeven en zowel IPv4
als IPv6 zijn nodig, dan moeten er twee instellingen
in /etc/inetd.conf gemaakt worden,
voor beide protocollen een. Een TCP-gebaseerde
dienst heeft bijvoorbeeld twee regels met instellingen
nodig: tcp4 en tcp6
voor beide protocollen.-pGeeft het bestand aan waarin het proces ID opgeslagen
moet worden.Al deze opties kunnen aan inetd
meegegeven worden met de optie inetd_flags
in /etc/rc.conf. Standaard staat
inetd_flags op –wW,
dat TCP wrapping voor de interne en externe diensten van
inetd inschakelt. Voor beginnende
gebruikers hoeven deze waarden meestal niet aangepast te worden
of ingegeven te worden in
/etc/rc.conf.Een externe dienst is een daemon buiten
inetd, die wordt aangesproken als
er een verbinding voor wordt ontvangen. Een interne dienst
is een dienst die inetd vanuit
zichzelf kan aanbieden.inetd.confDe instellingen van inetd
worden beheerd in /etc/inetd.conf.Als er een wijziging wordt aangebracht in
/etc/inetd.conf, dan kan
inetd gedwongen worden om de
instellingen opnieuw in te lezen door een HangUP signaal naar
het inetd proces te sturen:inetd een HangUP signaal
sturen&prompt.root; kill -HUP `cat /var/run/inetd.pid`Iedere regel in het bestand met instellingen heeft
betrekking op een individuele daemon. Commentaar wordt vooraf
gegaan door een #. De opmaak van
/etc/inetd.conf is als volgt:service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]]
user[:group][/login-class]
server-program
server-program-argumentsEen voorbeeldregel voor de ftpd
daemon met IPv4:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lservice-nameDit is de dienstnaam van een daemon. Die moet
overeenkomen met een dienst uit
/etc/services. Hiermee kan de
poort waarop inetd moet
luisteren aangegeven worden. Als er een nieuwe dienst
wordt gemaakt, moet die eerst in
/etc/services gezet worden.socket-typeDit is stream,
dgram, raw of
seqpacket. stream
moet gebruikt worden voor connectie gebaseerde TCP
daemons, terwijl dgram wordt gebruikt
voor daemons die gebruik maken van het
UDP transport protocol.protocolEen van de volgende:ProtocolToelichtingtcp, tcp4TCP IPv4udp, udp4UDP IPv4tcp6TCP IPv6udp6UDP IPv6tcp46Zowel TCP IPv4 als v6udp46Zowel UDP IPv4 als v6{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]] geeft aan of de daemon
die door inetd wordt
aangesproken zijn eigen sockets kan afhandelen of niet.
sockettypen moeten de optie
gebruiken, terwijl streamsocket
daemons, die meestal multi-threaded zijn, de optie
horen te gebruiken.
geeft meestal meerdere sockets aan
een daemon, terwijl een child
daemon spawnt voor iedere nieuwe socket.Het maximun aantal child daemons dat
inetd mag spawnen kan
ingesteld worden met de optie .
Als een limiet van tien instanties van een bepaalde
daemon gewenst is, dan zou er /10
achter gezet worden.Naast is er nog een andere
optie waarmee het maximale aantal verbindingen van een
bepaalde plaats naar een daemon ingesteld kan worden.
Dat kan met
. Een
waarde van tien betekent hier dat er van iedere IP adres
maximaal tien verbindingen naar daemon tot stand gebracht
kunnen worden. Dit kan gebruikt worden om bedoeld en
onbedoeld bronnengebruik van een machine te
voorkomen.In dit veld is of
verplicht.
en
zijn
optioneel.Een stream-type multi-threaded daemon zonder
or
limieten is eenvoudigweg:
nowait.Dezelfde daemon met een maximale limiet van tien
daemons zou zijn: nowait/10.Dezelfde instellingen met een limiet van twintig
connecties per IP adres per minuut en een totaal maximum
van tien child daemons zou zijn:
nowait/10/20.Deze opties worden allemaal gebruikt door de
standaardinstelling voor de
fingerd daemon:finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -suserDit is de gebruikersnaam waar een daemon onder
draait. Daemons draaien meestal als de gebruiker
root. Om veiligheidsredenen draaien
sommige daemons onder de gebruiker
daemon of de gebruiker met de minste
rechten: nobody.server-programHet volledige pad van de daemon die uitgevoerd moet
worden als er een verbinding wordt ontvangen. Als de
daemon een dienst is die door
inetd intern wordt geleverd,
dan moet de optie gebruikt
worden.server-program-argumentsDeze optie werkt samen met de optie
en hierin worden de
argumenten ingesteld, beginnend met
argv[0], die bij het starten aan de
daemon worden meegegeven. Als
mijndaemon -d de commandoregel is,
dan zou mijndaemon -d de waarde van
zijn. Hier
geldt ook dat als de daemon een interne dienst is, hier
de optie moet worden.BeveiligingAfhankelijk van het beveiligingsprofiel dat bij de
installatie is gekozen, kunnen veel van de daemons van
inetd standaard ingeschakeld zijn.
Het is verstandig een daemon die niet noodzakelijk is uit te
schakelen! Dat kan door een # voor de daemon
in /etc/inetd.conf en dan een hangup signaal naar inetd te
sturen. Sommige daemons, zoals
fingerd, zijn wellicht helemaal niet
gewenst omdat ze een aanvaller te veel informatie geven.Sommige daemons zijn zich niet echt bewust van beveiliging
en hebben lange of niet bestaande time-outs voor
verbindingspogingen. Hierdoor kan een aanvaller langzaam veel
verbindingen maken met een daemon en zo beschikbare bronnen
verzadigen. Het is verstandig voor die daemons de limietopties
en
te gebruiken.TCP wrapping staat standaard aan. Er staat meer informatie
over het zetten van TCP restricties op de verschillende daemons
die door inetd worden aangesproken
in &man.hosts.access.5;.Allerleidaytime,
time,
echo,
discard,
chargen en
auth zijn allemaal interne diensten
van inetd.De dienst auth biedt
identiteitsnetwerkdiensten (ident,
identd) en is tot op een bepaald
niveau instelbaar.Er staat meer informatie in &man.inetd.8;.TomRhodesGereorganiseerd en verbeterd door BillSwingleGeschreven door Netwerkbestandssysteem (NFS)NFSHet Netwerkbestandssysteem (Network File System) is een van
de vele bestandssystemen die &os; ondersteunt. Het staat ook wel
bekend als NFS.
Met NFS is het
mogelijk om mappen en bestanden met anderen in een netwerk te
delen. Door het gebruik van NFS kunnen gebruikers en
programma's bij bestanden op andere systemen op bijna dezelfde
manier als bij hun eigen lokale bestanden.De grootste voordelen van NFS zijn:Lokale werkstations gebruiken minder schijfruimte omdat
veel gebruikte data op één machine opgeslagen
kan worden en nog steeds toegankelijk is voor gebruikers via
het netwerk;Gebruikers hoeven niet op iedere machine een thuismap te
hebben. Thuismappen kunnen op de NFS
server staan en op het hele netwerk beschikbaar zijn;Opslagapparaten als floppydisks, cd-rom drives en
&iomegazip; drives kunnen door andere machines op een netwerk
gebruikt worden. Hierdoor kan het aantal drives met
verwijderbare media in een netwerk verkleind worden.Hoe NFS werktNFS bestaat uit tenminste twee
hoofdonderdelen: een server en een of meer clients. De client
benadert de gegevens die op een server machine zijn opgeslagen
via een netwerk. Om dit mogelijk te maken moeten er een aantal
processen ingesteld en gestart worden.In &os; 4.X is het hulpprogramma
portmap gebruikt in plaats van
rpcbind. Dus in &os; 4.X
moet elke rpcbind vervangen
worden door portmap in de
volgende voorbeelden.Op de server moeten de volgende daemons draaien:NFSserverfileserverUNIX clientsrpcbindportmapmountdnfsdDaemonBeschrijvingnfsdDe NFS daemon die verzoeken van
de NFS clients afhandelt.mountdDe NFS mountdaemon die
doorgestuurde verzoeken van &man.nfsd.8;
uitvoert.rpcbindDeze daemon geeft NFS
clients aan welke poort de NFS
server gebruikt.Op de client kan ook een daemon draaien:
nfsiod. De
nfsiod daemon handelt verzoeken van
de NFS server af. Dit is optioneel en kan
de prestaties verbeteren, maar het is niet noodzakelijk voor
een normale en correcte werking. Meer informatie staat in
&man.nfsiod.8;.NFS instellenNFSinstellenNFS instellen gaat redelijk rechtlijnig.
Alle processen die moeten draaien kunnen meestarten bij het
opstarten door een paar wijzigingen in
/etc/rc.conf.Op de NFS server dienen de volgende
opties in /etc/rc.conf te staan:rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"mountd start automatisch als de
NFS server is ingeschakeld.Op de client dient de volgende optie in
/etc/rc.conf te staan:nfs_client_enable="YES"In het bestand /etc/exports staat
beschreven welke bestandssystemen NFS moet
exporteren (soms heet dat ook wel delen of
sharen). Iedere regel in
/etc/exports slaat op een bestandssysteem
dat wordt geëxporteerd en welke machines toegang hebben
tot dat bestandssysteem. Samen met machines die toegang
hebben, kunnen ook toegangsopties worden aangegeven. Er zijn
veel opties beschikbaar, maar hier worden er maar een paar
beschreven. Alle opties staan beschreven in
&man.exports.5;.Nu volgen een aantal voorbeelden voor
/etc/exports:NFSexport voorbeeldenHet volgende voorbeeld geeft een beeld van hoe een
bestandssysteem te exporteren, hoewel de instellingen
afhankelijk zijn van de omgeving en het netwerk. Om
bijvoorbeeld de map /cdrom te exporteren
naar drie machines die dezelfde domeinnaam hebben als de server
(vandaar dat de machinenamen geef domeinachtervoegsel hebben)
of in /etc/hosts staan. De vlag
exporteert het bestandssysteem als
alleen–lezen. Door die vlag kan een ander systeem niet
schrijven naar het geëxporteerde bestandssysteem./cdrom -ro host1 host2 host3Het volgende voorbeeld exporteert
/home naar drie hosts op basis van IP
adres. Dit heeft zin als er een privaat netwerk bestaat,
zonder dat er een DNS server is ingesteld.
Optioneel kan /etc/hosts gebruikt worden
om interne hostnamen in te stellen. Er is meer informatie te
vinden in &man.hosts.5;. Met de vlag
mogen submappen ook mountpunten zijn. De submap wordt dan niet
feitelijk gemount, maar de client mount dan alleen de submappen
die verplicht of nodig zijn./home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4Het volgende voorbeeld exporteert /a
zo dat twee clients uit verschillende domeinen bij het
bestandssysteem mogen. Met de vlag
mag de gebruiker op het
andere systeem gegevens naar het geëxporteerde
bestandssysteem schrijven als root. Als
de vlag niet wordt gebruikt, dan
kan een gebruiker geen bestanden wijzigen op het
geëxporteerde bestandssysteem, zelfs niet als een
gebruiker daar root is./a -maproot=root host.example.com box.example.orgOm een client toegang te geven tot een geëxporteerd
bestandssysteem, moet die client daar rechten voor hebben. De
client moet daarvoor genoemd worden in
/etc/exports.In /etc/exports staat iedere regel
voor de exportinformatie van één bestandssysteem
naar één host. Per bestandssysteem mag een host
maar één keer genoemd worden en mag maar
één standaard hebben. Stel bijvoorbeeld dat
/usr een enkel bestandssysteem is. Dan is
de volgende /etc/exports niet
valide:># Werkt niet als /usr 1 bestandssysteem is
/usr/src client
/usr/ports clientEén bestandssysteem, /usr,
heeft twee regels waarin exports naar dezelfde host worden
aangegeven, client. In deze situatie is de
juiste instelling:/usr/src /usr/ports clientDe eigenschappen van een bestandssysteem dat naar een
bepaalde host wordt geëxporteerd moeten allemaal op
één regel staan. Regels waarop geen client
wordt aangegeven worden behandeld als een enkele host. Dit
beperkt hoe bestandssysteem geëxporteerd kunnen worden,
maar dat blijkt meestal geen probleem.Het volgende voorbeeld is een valide exportlijst waar
/usr en /exports
lokale bestandssystemen zijn:# Export src and ports to client01 and client02, but only
# client01 has root privileges on it
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# The client machines have root and can mount anywhere
# on /exports. Anyone in the world can mount /exports/obj read-only
/exports -alldirs -maproot=root client01 client02
/exports/obj -roAls /etc/exports wordt aangepast, moet
mountd herstart worden om de
wijzigingen actief te maken. Dat kan door een HUP signaal naar
het mountd proces te sturen:&prompt.root; kill -HUP `cat /var/run/mountd.pid`Het is ook mogelijk een machine te herstarten, zodat &os;
alles netjes in kan stellen, maar dat is niet nodig. Het
uitvoeren van de volgende commando's als
root hoort hezelfde resultaat te
hebben.Op de NFS server:&prompt.root; rpcbind
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -rOp de NFS client:&prompt.root; nfsiod -n 4Nu is alles klaar om feitelijk het netwerkbestandssysteem
te mounten. In de volgende voorbeelden is de naam van de
server server en de naam van de client is
client. Om een netwerkbestandssysteem
slechts tijdelijk te mounten of om alleen te testen, kan een
commando als het onderstaande als root op
de client uitgevoerd worden:NFSmounten&prompt.root; mount server:/home /mntHiermee wordt de map /home op de
server gemount op /mnt op de client. Als
alles juist is ingesteld, zijn nu in /mnt
op de client de bestanden van de server zichtbaar.Om een netwerkbestandssysteem iedere keer als een computer
opstart te mounten, kan het bestandssysteem worden toegevoegd
aan /etc/fstab file:server:/home /mnt nfs rw 0 0Alle beschikbare opties staan in &man.fstab.5;.Mogelijkheden voor gebruikNFS is voor veel doeleinden in te
zetten. Een aantal voorbeelden:NFSgebruikEen aantal machines een cd-rom of andere media laten
delen. Dat is goedkoper en vaak ook handiger, bijvoorbeeld
bij het installeren van software op meerdere
machines;Op grote netwerken kan het praktisch zijn om een
centrale NFS server in te richten,
waarop alle thuismappen staan. Die thuismappen kunnen dan
geëxporteerd worden, zodat gebruikers altijd
dezelfde thuismap hebben, op welk werkstation ze ook
aanmelden;Meerdere machines kunnen een gezamenlijke map
/usr/ports/distfiles hebben. Dan is
het mogelijk om een port op meerdere machines te
installeren, zonder op iedere machine de broncode te hoeven
downloaden.WylieStilwellGeschreven door ChernLeeHerschreven door Automatisch mounten met
amdamdautomatic mounter daemon&man.amd.8; (de automatic mounter daemon) mount automatisch
netwerkbestandssystemen als er aan een bestand of map binnen
dat bestandssysteem wordt gerefereerd.
amd unmount ook bestandssystemen die
een bepaalde tijd niet gebruikt worden. Het gebruikt van
amd is een aantrekkelijk en
eenvoudig alternatief ten opzichte van permanente mounts,
die meestal in /etc/fstab staan.amd werkt door zichzelf als
NFS server te koppelen aan de mappen /host
en /net. Als binnen die mappen een
bestand wordt geraadpleegd, dan zoekt
amd de bijbehorende netwerkmount op
en mount die automatisch. /net wordt
gebruikt om een geëxporteerd bestandssysteem van een
IP adres te mounten, terwijl /host wordt
gebruikt om een geëxporteerd bestandssysteem van een
hostnaam te mounten.Het raadplegen van een bestand in
/host/foobar/usr geeft
amd aan dat die moet proberen de
/usr export op de host
foobar te mounten.Een export mounten met
amdDe beschikbare mounts van een netwerkhost zijn te
bekijken met showmount. Om bijvoorbeeld
de mounts van de host foobar te
bekijken:&prompt.user; showmount -e foobar
Exports list on foobar:
/usr 10.10.10.0
/a 10.10.10.0
&prompt.user; cd /host/foobar/usrZoals in het bovenstaande voorbeeld te zien is, toont
showmount/usr als een
export. Als er naar de map
/host/foobar/usr wordt gegaan, probeert
amd de hostnaam
foobar te resolven en de gewenste export
automatisch te mounten.amd kan gestart worden door de
opstartscript door de volgende regel in
/etc/rc.conf te plaatsen:amd_enable="YES"Er kunnen ook nog opties meegegeven worden aan
amd met de optie
amd_flags. Standaard staat
amd_flags ingesteld op:amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"In het bestand /etc/amd.map staan
de standaardinstellingen waarmee exports gemount worden. In
het bestand /etc/amd.conf staan een
aantal van de meer gevorderde instellingen van
amd.In &man.amd.8; en &man.amd.conf.5; staat meer
informatie.JohnLindGeschreven door Problemen bij samenwerking met andere systemenBepaalde Ethernet adapters voor ISA PC systemen kennen
limieten die tot serieuze netwerkproblemen kunnen leiden, in
het bijzonder met NFS. Dit probleem is niet specifiek voor
&os;, maar het kan op &os; wel voor komen.Het probleem ontstaat bijna altijd als (&os;) PC systemen
netwerken met high-performance werkstations, zoals van Silicon
Graphics, Inc. en Sun Microsystems, Inc. De NFS mount werkt
prima en wellicht lukken een aantal acties ook, maar dan ineens
lijkt de server niet meer te reageren voor de client, hoewel
verzoeken van en naar andere systemen gewoon verwerkt worden.
Dit gebeurt op een clientsysteem, of de client nu het &os
systeem is of het werkstation. Op veel systemen is er geen
manier om de client netjes af te sluiten als dit probleem is
ontstaan. Vaak is de enige mogelijkheid een reset van de
client, omdat het probleem met NFS niet opgelost kan
worden.Hoewel de enige correcte oplossing de
aanschaf van een snellere en betere Ethernet adapter voor het
&os; systeem is, is er zo om het probleem heen te werken dat
het werkbaar is. Als &os; de server is,
kan de optie gebruikt worden bij het
mounten door de client. Als het &os; systeem de
client is, dan dient het NFS
bestandssysteem gemount te worden met de optie
. Deze opties kunnen het vierde
veld zijn in een regel in fstab voor
automatische mounts en bij handmatige mounts met &man.mount.8;
kan de parameter gebruikt worden.Soms wordt een ander probleem voor dit probleem versleten,
als servers en clients zich op verschillende netwerken
bevinden. Als dat het geval is, dan dient
vastgesteld te worden dat routers de
UDP informatie op de juiste wijze routeren,
omdat er anders nooit NFS verkeer gerouteerd kan worden.In de volgende voorbeelden is fastws de
host(interface)naam van een high-performance werkstation en
freebox is de host(interface)naam van een &os;
systeem met een Ehernet adapter die mindere prestaties levert.
/sharedfs wordt het geëxporteerde
NFS bestandssysteem (zie &man.exports.5;) en
/project wordt het mountpunt voor het
geëxporteerde bestandssysteem op de client.
In sommige gevallen kunnen applicaties beter draaien als
extra opties als of
en gebruikt
worden.Voorbeelden voor het &os; systeem
(freebox) als de client in
/etc/fstab op
freebox:fastws:/sharedfs /project nfs rw,-r=1024 0 0Als een handmatig mountcommando op
freebox:&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /projectVoorbeelden voor het &os; systeem als de server in
/etc/fstab op
fastws:freebox:/sharedfs /project nfs rw,-w=1024 0 0Als een handmatig mountcommando op
fastws:&prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /projectBijna iedere 16–bit Ethernet adapter werkt zonder de
hierboven beschreven restricties op de lees- en
schrijfgrootte.Voor wie het wil weten wordt nu beschreven wat er gebeurt
als de fout ontstaan, wat ook duidelijk maakt waarom het niet
hersteld kan worden. NFS werkt meestal met een
blockgrootte van 8 K (hoewel het mogelijk
is dat er kleinere fragmenten worden verwerkt). Omdat de
maximale grootte van een Ethernet pakket rond de
1500 bytes ligt, wordt een block
opgesplitst in meerdere Ethernet pakketten, hoewel het hoger in
de code nog steeds één eenheid is, en wordt
ontvangen, samengevoegd en bevestigd
als een eenheid. De high-performance werkstations kunnen de
pakketten waaruit een NFS eenheid bestaat bijzonder snel naar
buiten pompen. Op de kaarten met minder capaciteit worden de
eerdere pakketten door de latere pakketten van dezelfde eenheid
ingehaald voordat ze bij die host zijn aangekomen en daarom kan
de eenheid niet worden samengesteld en bevestigd. Als gevolg
daarvan ontstaat er op het werkstation een time-out en probeert
die de eenheid opnieuw te sturen, maar dan weer de hele eenheid
van 8 K, waardoor het proces wordt herhaald, ad
infinitum.Door de grootte van de eenheid kleiner te houden dan de
grootte van een Ethernet pakket, is het zeker dat elk Ethernet
pakket dat compleet is aangekomen bevestigd kan worden, zodat
de deadlock niet ontstaat.Toch kan een PC systeem nog wel overrompeld worden als
high-performance werkstations er op inhakken, maar met de
betere netwerkkaarten valt het dan in ieder geval niet om door
de NFS eenheden. Als het systeem toch wordt
overrompeld, dan worden de betrokken eenheden opnieuw
verstuurd en dan is de kans groot dat ze worden ontvangen,
samengevoegd en bevestigd.BillSwingleGeschreven door EricOgrenVerbeterd door UdoErdelhoffNetwerkinformatiesysteem (NIS/YP)Wat is het?NISSolarisHP-UXAIXLinuxNetBSDOpenBSDNIS,
dat staat voor Netwerkinformatiediensten (Network Information
Services), is ontwikkeld door Sun Microsystems om het beheer
van &unix; (origineel &sunos;) systemen te centraliseren.
Tegenwoordig is het eigenlijk een industriestandaard geworden.
Alle grote &unix; achtige systemen (&solaris;, HP-UX, &aix;,
&linux;, NetBSD, OpenBSD, &os;, enzovoort) ondersteunen
NIS.yellow pagesNISNIS
stond vroeger bekend als Yellow Pages, maar vanwege problemen
met het handelsmerk heeft Sun de naam veranderd. De oude term,
en yp, wordt nog steeds vaak gebruikt.NISdomeinenHet is een op RPC gebaseerd client/server systeem waarmee
een groep machines binnen een NIS domein een gezamenlijke set
met instellingenbestanden kan delen. Hierdoor kan een
beheerder NIS systemen opzetten met een minimaal aantal
instellingen en vanaf een centrale lokatie instellingen
toevoegen, verwijderen en wijzigen.Windows NTHet is te vergelijken met het &windowsnt; domeinsysteem en
hoewel de interne implementatie van de twee helemaal niet
overeenkomt, is de basisfunctionaliteit vergelijkbaar.Termen en processen om te onthoudenEr zijn een aantal termen en belangrijke
gebruikersprocessen die een rol spelen bij het implementeren
van NIS op &os;, zowel bij het maken van een NIS server als bij
het maken van een systeem dan NIS client is:rpcbindportmapTermBeschrijvingNIS domeinnaamEen NIS master server en al zijn clients
(inclusief zijn slave master) hebben een NIS
domeinnaan. Vergelijkbaar met een &windowsnt;
domeinnaam, maar de NIS domeinnaam heeft niets te maken
met DNS.rpcbindMoet draaien om RPC (Remote
Procedure Call in te schakelen, een netwerkprotocol dat
door NIS gebruikt wordt). Als
rpcbind niet draait, dan kan
een NIS server niet draaien en kan een machine ook geen
NIS client zijn (In &os; 4.X wordt
portmap in plaats van
rpcbind).ypbindVerbindt een NIS client aan zijn
NIS server. Dat gebeurt door met de NIS domeinnaam van
het systeem en door het gebruik van RPC
te verbinden met de server.
ypbind is de kern van
client-server communicatie in een NIS omgeving. Als
ypbind op een machine
stopt, dan kan die niet meer bij de NIS server
komen.ypservHoort alleen te draaien op NIS servers. Dit is
het NIS server proces zelf. Als &man.ypserv.8; stopt,
dan kan de server niet langer reageren op NIS
verzoeken (hopelijk is er dan een slave server om het
over te nemen). Er zijn een aantal implementaties van
NIS, maar niet die op &os;, die geen verbinding met
een andere server proberen te maken als de server
waarmee ze verbonden waren niet meer reageert. In dat
geval is vaak het enige dat werkt het server proces
herstarten (of zelfs de hele server) of het
ypbind proces op de
client.rpc.yppasswddNog een proces dat alleen op NIS master servers
hoort te draaien. Dit is een daemon waarbij NIS
clients hun NIS wachtwoorden kunnen wijzigen. Als deze
daemon niet draait, moeten gebruikers aanmelden op de
NIS master server en daar hun wachtwoord wijzigen.Hoe werkt het?Er zijn drie typen hosts in een NIS omgeving: master
servers, slave servers en clients. Servers zijn het centrale
depot voor instellingen voor een host. Master servers
bevatten de geauthoriseerd kopie van die informatie, terwijl
slave servers die informatie spiegelen voor redundantie.
Clients verlaten zich op de servers om hun die informatie ter
beschikking te stellen.Op deze manier kan informatie uit veel bestanden gedeeld
worden. De bestanden master.passwd,
group en hosts
worden meestal via NIS gedeeld. Als een proces op een client
informatie nodig heeft die normaliter in een van die lokale
bestanden staat, dan vraagt die het in plaats daarvan aan
de NIS servers waarmee hij verbonden is.Soorten machinesNISmaster serverEen NIS master server. Deze
server onderhoudt, analoog aan een &windowsnt; primary
domain controller, de bestanden die door alle NIS clients
gebruikt worden. De bestanden
passwd, group
en andere bestanden die door de NIS clients gebruikt
worden staan op de master server.Het is mogelijk om één machine master
server te laten zijn voor meerdere NIS domeinen. Dat
wordt in deze inleiding echter niet beschreven, omdat
die uitgaat van een relatief kleine omgeving.NISslave serverNIS slave servers. Deze zijn
te vergelijken met &windowsnt; backup domain controllers.
NIS slave servers beheren een kopie van de bestanden met
gegevens op de NIS master. NIS slave servers bieden
redundantie, die nodig is in belangrijke omgevingen. Ze
helpen ook om de belasting te verdelen met de master
server: NIS client maken altijd een verbinding met de NIS
server die het eerst reageert en dat geldt ook voor
antwoorden van slave servers.NISclientNIS clients. NIS clients
authenticeren, net als de meeste &windowsnt;
werkstations, tegen de NIS server (of de &windowsnt;
domain controller in het geval van &windowsnt;
werkstations) bij het aanmelden.NIS/YP gebruikenDit onderdeel behandelt het opzetten van een
NIS voorbeeldomgeving.Dit onderdeel veronderstelt dat &os; 3.3 of later
draait. De nu volgende instructies werken
waarschijnlijk voor iedere versie van
&os; hoger dan 3.0, maar dat hoeft niet waar te zijn.PlannenEr wordt uitgegaan van een beheerder van een klein
universiteitslab. Dat lab, dat bestaat uit &os; machines,
kent op dit moment geen centraal beheer. Iedere machine
heeft zijn eigen /etc/passwd en
/etc/master.passwd. Die bestanden
worden alleen met elkaar in lijn gehouden door handmatige
handelingen. Als er op dit moment een gebruiker aan het lab
wordt toegevoegd, moet adduser op alle 15
machines gedraaid worden. Dat moet natuurlijk veranderen en
daarom is besloten het lab in te richten met NIS, waarbij
twee machines als server worden gebruikt.Het lab ziet er ongeveer als volgt uit:MachinenaamIP adresRol Machineellington10.0.0.2NIS mastercoltrane10.0.0.3NIS slavebasie10.0.0.4Wetenschappelijk werkstationbird10.0.0.5Client machinecli[1-11]10.0.0.[6-17]Andere client machinesBij het voor de eerste keer instellen van een NIS schema
is het verstandig eerst na te denken over hoe dat opgezet
moet worden. Hoe groot een netwerk ook is, er moeten een
aantal beslissingen gemaakt worden.Een NIS domeinnaam kiezenNISdomeinnaamDit is wellicht niet de bekende
domeinnaam. Daarom wordt het ook de
NIS domeinnaam genoemd. Bij de broadcast
van een client om informatie wordt ook de naam van het NIS
domein waar hij onderdeel van uitmaakt meegezonden. Zo
kunnen meerdere servers op een netwerk bepalen of er
antwoord gegeven dient te worden op een verzoek. De NIS
domeinnaam is kan voorgesteld worden als de naam van een
groep hosts op op een of andere manier aan elkaar
gerelateerd zijn.Sommige organisaties kiezen hun internet domeinnaam als
NIS domeinnaam. Dat wordt niet aangeraden omdat het voor
verwarring kan zorgen bij het debuggen van
netwerkproblemen. De NIS domeinnaam moet uniek zijn binnen
een netwerk en het is handig als die de groep machines
beschrijft waarvoor hij geldt. Zo kan bijvoorbeeld de
Financiële afdeling van Acme Inc. als NIS domeinnaam
acme-fin hebben. In dit voorbeeld wordt
de naam test-domain gekozen.SunOSSommige besturingssystemen gebruiken echter (met name
&sunos;) hun NIS domeinnaam als hun internet domeinnaam.
Als er machines zijn op een netwerk die deze restrictie
kennen, dan moet de internet
domeinnaam als de naam voor het NIS domainnaam gekozen
worden.SysteemeisenBij het kiezen van een machine die als NIS server wordt
gebruikt zijn er een aantal aandachtspunten. Een van de
onhandige dingen aan NIS is de afhankelijkheid van de
clients van de server. Als een client de server voor zijn
NIS domein niet kan bereiken, dan wordt die machine vaak
onbruikbaar. Door het gebrek aan gebruiker- en
groepsinformatie bevriezen de meeste systemen. Daarom moet
er een machine gekozen worden die niet vaak herstart hoeft
te worden of wordt gebruikt voor ontwikkeling. De NIS
server is in het meest ideale geval een alleenstaande
server die als enige doel heeft NIS server te zijn. Als
een netwerk niet zwaar wordt gebruikt, kan de NIS server op
een machine die ook andere diensten aanbiedt gezet worden,
maar het blijft belangrijk om ervan bewust te zijn dat als
de NIS server niet beschikbaar is, dat nadelige invloed
heeft op alle NIS clients.NIS serversDe hoofdversies van alle NIS informatie staan opgeslagen
op één machine die de NIS master server heet.
De databases waarin de informatie wordt opgeslagen heten NIS
maps. In &os; worden die maps opgeslagen in
/var/yp/[domainnaam] waar
[domeinnaam] de naam is van het NIS
domein dat wordt bediend. Een enkele NIS server kan
tegelijkertijd meerdere NIS domeinen ondersteunen en het is
dus mogelijk dat er meerdere van zulke mappen zijn, een voor
ieder ondersteund domein. Ieder domein heeft zijn eigen
onafhankelijke set maps.In NIS master en slave servers worden alle NIS verzoeken
door de ypserv daemon afgehandeld.
ypserv is verantwoordelijk voor het
ontvangen van inkomende verzoeken van NIS clients, het
vertalen van de gevraagde domeinnaam en mapnaam naar een pad
naar het corresponderende databasebestand en het terugsturen
van de database naar de client.Een NIS master server opzettenNISserver opzettenHet opzetten van een master NIS server kan erg
eenvoudig zijn, afhankelijk van de behoeften. &os; heeft
ondersteuning voor NIS als basisfunctie. Alleen de
volgende regels hoeven aan
/etc/rc.conf toegevoegd te worden en
&os; doet de rest:nisdomainname="test-domain"
Deze regel stelt de NIS domainnaam in op
test-domain bij het instellen van
het netwerk (bij het opstarten).nis_server_enable="YES"
Dit geeft &os; aan de NIS server processen te starten
als het netwerk de volgende keer wordt
opgestart.nis_yppasswdd_enable="YES"
Dit schakelt de dameon rpc.yppasswdd
in die, zoals al eerder aangegeven, clients toestaat
om hun NIS wachtwoord vanaf een client machine te
wijzigen.Afhankelijk van de inrichting van NIS, kunnen er nog
meer instellingen nodig zijn. In het onderdeel NIS Servers die
ook NIS Clients Zijn staan meer details.Nu hoeft alleen /etc/netstart als
superuser uitgevoerd te worden. Dat stelt alles in met
gebruikmaking van de waarden uit
/etc/rc.conf.NIS maps initialiserenNISmapsDie NIS maps zijn
databasebestanden die in de map
/var/yp staan. Ze worden gemaakt uit
de bestanden met instellingen uit de map
/etc van de NIS master, met
één uitzondering:
/etc/master.passwd. Daar is een goede
reden voor, want het is niet wenselijk om de wachtwoorden
voor root en andere administratieve
accounts naar alle servers in het NIS domein te sturen.
Daar moet voor het initialiseren van de NIS maps het
volgende uitgevoerd worden:&prompt.root; cp /etc/master.passwd /var/yp/master.passwd
&prompt.root; cd /var/yp
&prompt.root; vi master.passwdDan horen alle systeemaccounts verwijderd te worden
(bin, tty,
kmem, games,
enzovoort) en alle overige accounts waarvoor het niet
wenselijk is dat ze op de NIS clients terecht komen
(bijvoorbeeld root en alle andere UID
0 (superuser) accounts)./var/yp/master.passwd hoort niet
te lezen te zijn voor een groep of voor de wereld (dus
modus 600)! Voor het aanpassen van de rechten kan
chmod gebruikt worden.Tru64 UNIXAls dat is gedaan, kunnen de NIS maps
geïnitialiseerd worden. Bij &os; zit een script
ypinit waarmee dit kan (in de hulppagina
staat meer informatie). Dit script is beschikbaar op de
meeste &unix; besturingssystemen, maar niet op allemaal.
Op Digital UNIX/Compaq Tru64 UNIX heet het
ypsetup. Omdat er maps voor een NIS
master worden gemaakt, wordt de optie
meegegeven aan
ypinit. Aangenomen dat de voorgaande
stappen zijn uitgevoerd, kunnen de NIS maps gemaakt worden
op de volgende manier:ellington&prompt.root; ypinit -m test-domain
Server Type: MASTER Domain: test-domain
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
At this point, we have to construct a list of this domains YP servers.
rod.darktech.org is already known as master server.
Please continue to add any slave servers, one per line. When you are
done with the list, type a <control D>.
master server : ellington
next host to add: coltrane
next host to add: ^D
The current list of NIS servers looks like this:
ellington
coltrane
Is this correct? [y/n: y] y
[..uitvoer van het maken van de maps..]
NIS Map update completed.
ellington has been setup as an YP master server without any errors.ypinit hoort
/var/yp/Makefile gemaakt te hebben uit
/var/yp/Makefile.dist. Als dit
bestand is gemaakt, neemt dat bestand aan dat er in een
omgeving met een enkele NIS server wordt gewerkt met alleen
&os; machines. Omdat test-domain ook
een slave server bevat, dient
/var/yp/Makefile gewijzigd te
worden:ellington&prompt.root; vi /var/yp/MakefileAls de onderstaande regel niet al uitgecommentarieerd
is, dient dat alsnog te gebeuren:NOPUSH = "True"Een NIS slave server opzettenNISslave serverHet opzetten van een NIS slave server is nog
makkelijker dan het opzetten van de master. Dit kan door
aan te melden op de slave server en net als voor de master
server /etc/rc.conf te wijzigen. Het
enige verschil is dat nu de optie
gebruikt wordt voor het draaien van
ypinit. Met de optie
moet ook de naam van de NIS
master meegegven worden. Het commando ziet er dus als
volgt uit:coltrane&prompt.root; ypinit -s ellington test-domain
Server Type: SLAVE Domain: test-domain Master: ellington
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
There will be no further questions. The remainder of the procedure
should take a few minutes, to copy the databases from ellington.
Transferring netgroup...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byuser...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byhost...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring group.bygid...
ypxfr: Exiting: Map successfully transferred
Transferring group.byname...
ypxfr: Exiting: Map successfully transferred
Transferring services.byname...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.byname...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.byname...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring netid.byname...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring ypservers...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byname...
ypxfr: Exiting: Map successfully transferred
coltrane has been setup as an YP slave server without any errors.
Don't forget to update map ypservers on ellington.Nu hoort er een map
/var/yp/test-domain te zijn waarin
kopieë van de NIS master server maps staan. Die
moeten bijgewerkt blijven. De volgende regel in
/etc/crontab op de slave servers
regelt dat:20 * * * * root /usr/libexec/ypxfr passwd.byname
21 * * * * root /usr/libexec/ypxfr passwd.byuidMet de bovenstaande twee regels wordt de slave
gedwongen zijn maps met de maps op de master server te
synchroniseren. Hoewel dit niet verplicht is, omdat de
master server probeert veranderingen aan de NIS maps door
te geven aan zijn slaves, is het wel verstandig om een
slave tot bijwerken te dwingen, omdat wachtwoordinformatie
van vitaal belang is voor systemen die van de server
afhankelijk zijn. Dit is des te belangrijker op drukke
netwerken, omdat daar het bijwerken van maps niet altijd
compleet afgehandeld hoeft te worden.Nu kan ook op de slave server het commando
/etc/netstart uitgevoerd worden, dat op
zijn beurt de NIS server start.NIS clientsEen NIS client maakt wat heet een verbinding (binding)
met een NIS server met de ypbind daemon.
ypbind controleert het standaarddomein van
het systeem (zoals ingesteld met
domainname) en begint met het broadcasten
van RPC verzoeken op het lokale netwerk. Die verzoeken
bevatten de naam van het domein waarvoor
ypbind een binding probeert te maken. Als
een server die is ingesteld om het gevraagde domein te
bedienen een broadcast ontvangt, dan antwoordt die aan
ypbind dat dan het IP adres van de server
opslaat. Als er meerdere servers beschikbaar zijn, een
master en bijvoorbeeld meerdere slaves, dan gebruikt
ypbind het adres van de eerste server die
antwoord geeft. Vanaf dat moment stuurt de client alle NIS
verzoeken naar die server. ypbindpingt de server zo nu en dan om te controleren
of die nog draait. Als er na een bepaalde tijd geen antwoord
komt op een ping, dan markeert ypbind het
domein als niet verbonden en begint het broadcasten opnieuw,
in de hoop dat er een andere server wordt
gelocaliseerd.Een NIS client opzettenNISclient instellenHet opzetten van een &os; machine als NIS client is
redelijk doorzichtig:Wijzig /etc/rc.conf en voeg de
volgende regels toe om de NIS domeinnaam in te stellen
en ypbind mee te laten starten bij
het starten van het netwerk:nisdomainname="test-domain"
nis_client_enable="YES"Om alle mogelijke regels voor accounts uit de NIS
server te halen, dienen alle gebruikersaccounts uit
/etc/master.passwd verwijderd te
worden en dient met vipw de volgende
regel aan het einde van het bestand geplaatst te
worden:+:::::::::Door deze regel wordt alle geldige accounts
in de password map van de NIS server toegang gegeven.
Er zijn veel manieren om de NIS client in te stellen
door deze regel te veranderen. In het onderdeel
netgroups
hieronder staat meer informatie. Zeer gedetailleerde
informatie staat in het boek NFS en NIS
beheren van O'Reilly.Er moet tenminste één lokale
account behouden blijven (dus niet geïmporteerd
via NIS) in /etc/master.passwd
en die hoort ook lid te zijn van de groep
wheel. Als er iets mis is met
NIS, dan kan die account gebruikt worden om via het
netwerk aan te melden, root te
worden en het systeem te repareren.Om alle groepen van de NIS server te importeren,
kan de volgende regel aan
/etc/group toegevoegd
worden:+:*::Na het afronden van deze stappen zou met ypcat
passwd de passwd map van de NIS server te zien
moeten zijn.NIS beveiligingIn het algemeen kan iedere netwerkgebruiker een RPC verzoek
doen uitgaan naar &man.ypserv.8; en de inhoud van de NIS maps
ontvangen, mits die gebruiker de domeinnaam kent. Omdat soort
ongeautoriseerde transacties te voorkomen, ondersteunt
&man.ypserv.8; de optie securenets, die gebruikt
kan worden om de toegang te beperken tot een opgegeven aantal
hosts. Bij het opstarten probeert&man.ypserv.8; de securenets
informatie te laden uit het bestand
/var/yp/securenets.Dit pad kan verschillen, afhankelijk van het pad dat
opgegeven is met de optie . Dit
bestand bevat regels die bestaan uit een netwerkspecificatie
en een netwerkmasker, gescheiden door witruimte. Regels die
beginnen met # worden als commentaar
gezien. Een voorbeeld van een securenetsbestand zou er zo
uit kunnen zien:# allow connections from local host -- mandatory
127.0.0.1 255.255.255.255
# allow connections from any host
# on the 192.168.128.0 network
192.168.128.0 255.255.255.0
# allow connections from any host
# between 10.0.0.0 to 10.0.15.255
# this includes the machines in the testlab
10.0.0.0 255.255.240.0Als &man.ypserv.8; een verzoek ontvangt van een adres dat
overeenkomt met een van de bovenstaande regels, dan wordt dat
verzoek normaal verwerkt. Als er geen enkele regel op het
verzoek van toepassing is, dan wordt het verzoek genegeerd en
wordt er een waarschuwing gelogd. Als het bestand
/var/yp/securenets niet bestaat, dan
accepteert ypserv verbindingen van iedere
host.Het programma ypserv ondersteunt ook
het pakket TCP Wrapper van Wietse
Venema. Daardoor kan een beheerder de instellingenbestanden
van TCP Wrapper gebruiken voor
toegangsbeperking in plaats van
/var/yp/securenets.Hoewel beide methoden van toegangscontrole enige vorm van
beveiliging bieden, zijn ze net als de privileged port test
kwetsbaar voor IP spoofing aanvallen. Al het
NIS gerelateerde verkeer hoort door een firewall
tegengehouden te worden.Servers die gebruik maken van
/var/yp/securenets kunnen wellicht
legitieme verzoeken van NIS clients weigeren als die gebruik
maken van erg oude TCP/IP implementaties. Sommige van die
implementaties zetten alle host bits op nul als ze een
broadcast doen en/of kijken niet naar het subnetmasker als ze
het broadcastadres berekenen. Hoewel sommige van die
problemen opgelost kunnen worden door de instellingen op de
client aan te passen, zorgen andere problemen voor het
noodgedwongen niet langer kunnen gebruiker van NIS voor die
client of het niet langer gebruiken van
/var/yp/securenets.Het gebruik van /var/yp/securenets
op een server met zo'n oude implementatie van TCP/IP is echt
een slecht idee en zal leiden tot verlies van NIS
functionaliteit voor grote delen van een netwerk.tcpwrapperHet gebruik van het TCP
Wrapper pakket leidt tot langere wachttijden
op de NIS server. De extra vertraging kan net lang genoeg
zijn om een timeout te veroorzaken in clientprogramma's, in
het bijzonder als het netwerk druk is of de NIS server traag
is. Als een of meer clients last hebben van dat symptoom,
dan is het verstandig om de clientsystemen in kwestie NIS
slave server te maken en naar zichzelf te laten
wijzen.Aanmelden voor bepaalde gebruikers blokkerenIn het lab staat de machine basie, die
alleen faculteitswerkstation hoort te zijn. Het is niet
gewenst die machine uit het NIS domein te halen, maar het
passwd bestand op de master NIS server
bevat nu eenmaal accounts voor zowel de faculteit als de
studenten. Hoe kan dat opgelost worden?Er is een manier om het aanmelden van specifieke gebruikers
op een machine te weigeren, zelfs als ze in de NIS database
staan. Daarvoor hoeft er alleen maar
–username
aan het einde van /etc/master.passwd op de
client machine toegevoegd te worden, waar
username de gebruikersnaam van de
gebruiker die niet mag aanmelden is. Dit gebeurt bij voorkeur
met vipw, omdat vipw
de wijzigingen aan /etc/master.passwd
controleert en ook de wachtwoord database opnieuw bouwt na
het wijzigen. Om bijvoorbeeld de gebruiker
bill aan te kunnen laten aanmelden op
basie:basie&prompt.root; vipw[add -bill to the end, exit]
vipw: rebuilding the database...
vipw: done
basie&prompt.root; cat /etc/master.passwd
root:[password]:0:0::0:0:The super-user:/root:/bin/csh
toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5::0:0:System &:/:/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
+:::::::::
-bill
basie&prompt.root;UdoErdelhoffGeschreven door Netgroups gebruikennetgroupsDe methode uit het vorige onderdeel werkt prima als er maar
voor een beperkt aantal gebruikers en/of machines speciale
regels nodig zijn. Op grotere netwerken
gebeurt het gewoon dat er wordt vergeten
om een aantal gebruikers de aanmeldrechten op gevoelige
machines te ontnemen of dat zelfs iedere individuele machine
aangepast moet worden, waardoor het voordeel van NIS teniet
wordt gedaan: centraal beheren.De ontwikkelaars van NIS hebben dit probleem opgelost met
netgroups. Het doel en de semantiek
kunnen vergeleken worden met de normale groepen die gebruikt
worden op &unix; bestandssystemen. De belangrijkste
verschillen zijn de afwezigheid van een numeriek ID en de
mogelijkheid om een netgroup aan te maken die zowel gebruikers
als andere netgroups bevat.Netgroups zijn ontwikkeld om gebruikt te worden voor grote,
complexe netwerken met honderden gebruikers en machines. Aan
de ene kant is dat iets Goeds. Aan de andere kant is het wel
complex en bijna onmogelijk om netgroups met een paar
eenvoudige voorbeelden uit te leggen. Dat probleem wordt in de
rest van dit onderdeel duidelijk gemaakt.Stel dat de succesvolle implementatie van NIS in het lab
de interesse heeft gewekt van een centrale beheerclub. De
volgende taak is het uitbreiden van het NIS domein met een
aantal andere machines op de campus. De onderstaande twee
tabellen bevatten de namen van de nieuwe gebruikers en de
nieuwe machines met een korte beschijving.Gebruikersna(a)m(en)Beschrijvingalpha,
betaGewone medewerkers van de IT afdelingcharlie,
deltaJunior medewerkers van de IT afdelingecho,
foxtrott,
golf, ...Gewone medewerkersable,
baker, ...StagiairsMachinena(a)m(en)Beschrijvingwar, death,
famine,
pollutionDe belangrijkste servers. Alleen senior
medewerkers van de IT afdeling mogen hierop
aanmelden.pride, greed,
envy, wrath,
lust, slothMinder belangrijke servers. Alle leden van
de IT afdeling mogen aanmelden op deze
machines.one, two,
three, four,
...Gewone werkstations. Alleen
echte medewerkers mogen op deze
machines aanmelden.trashcanEen erg oude machine zonder kritische data. Zelfs
de stagiair mag deze doos gebruiken.Als deze restricties ingevoerd worden door iedere gebruiker
afzonderlijk te blokkeren, dan wordt er een
-user regel per
systeem toegevoegd aan de passwd voor
iedere gebruiker die niet mag aanmelden op dat systeem. Als
er maar één regel wordt vergeten, kan dat een
probleem opleveren. Wellicht lukt het nog dit juist in te
stellen bij de bouw van een machine, maar het wordt
echt vergeten de regels toe te voegen voor
nieuwe gebruikers in de produktiegase. Murphy was tenslotte
een optimist.Het gebruik van netgroups biedt in deze situatie een aantal
voordelen. Niet iedere gebruiker hoeft separaat afgehandeld te
worden. Een gebruik kan aan een of meer groepen worden
toegevoegd en aanmelden kan voor alle leden van zo'n groep
worden toegestaan of geweigerd. Als er een nieuwe machine
wordt toegevoegd, dan hoeven alleen de aanmeldrestricties voor
de netgroups te worden ingesteld. Als er een nieuwe gebruiker
wordt toegevoegd, dan hoeft die alleen maar aan de juiste
netgroups te worden toegevoegd. Die veranderingen zijn
niet van elkaar afhankelijk: geen voor iedere combinatie
van gebruiker en machine moet het volgende .... Als
de NIS opzet zorgvuldig is gepland, dan hoeft er maar
één instellingenbestand gewijzigd te worden om
toegang tot machines te geven of te ontnemen.De eerst stap is het initialiseren van de NIS map netgroup.
&man.ypinit.8; van &os; maakt deze map niet standaard, maar als
die is gemaakt, ondersteunt de NIS implementatie hem wel. Een
lege map wordt als volgt gemaakt:ellington&prompt.root; vi /var/yp/netgroupNu kan hij gevuld worden. In het gebruikte voorbeeld zijn
tenminste vier netgroups: IT medewerkers, IT junioren, gewone
medewerkers en stagiars.IT_MW (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
USERS (,echo,test-domain) (,foxtrott,test-domain) \
(,golf,test-domain)
STAGS (,able,test-domain) (,baker,test-domain)IT_MW, IT_APP
enzovoort, zijn de namen van de netgroups. Iedere groep tussen
haakjes bevat een of meer gebruikersnamen voor die groep. De
drie velden binnen een groep zijn:De na(a)m(en) van de host(s) waar de volgende
onderdelen geldig zijn. Als er geen hostnaam wordt
opgegeven dan is de regel geldig voor alle hosts. Als er
wel een hostnaam wordt opgegeven, dan wordt een donker,
spookachtig en verwarrend domein betreden.De naam van de account die bij deze netgroup
hoort.Het NIS domein voor de account. Er kunnen accounts
uit andere NIS domeinen geïmporteerd worden in een
netgroup als een beheerder zo ongelukkig is meerdere
NIS domeinen te hebben.Al deze velden kunnen jokerkarakters bevatten. Details
daarover staan in &man.netgroup.5;.netgroupsDe naam van een netgroup mag niet langer zijn dan acht
karakters, zeker niet als er andere besturingssystemen binnen
een NIS domein worden gebruikt. De namen zijn
hoofdlettergevoelig: alleen hoofdletters gebruiken voor de
namen van netgroups is een makkelijke manier om onderscheid
te kunnen maken tussen gebruikers-, machine- en
netgroupnamen.Sommige NIS clients (andere dan die op &os; draaien)
kunnen niet omgaan met netgroups met veel leden. Sommige
oudere versies van &sunos; gaan bijvoorbeeld lastig doen als
een netgroup meer dan 15 leden heeft.
Dit kan omzeild worden door meerdere sub-netgroups te maken
met 15 gebruikers of minder en een echte netgroup die de
sub-netgroups bevat:BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
BIGGRP3 (,joe31,domain) (,joe32,domain)
BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3Dit proces kan herhaald worden als er meer dan 225
gebruikers in een netgroup moeten.Het activeren en distribueren van de nieuwe NIS map is
eenvoudig:ellington&prompt.root; cd /var/yp
ellington&prompt.root; makeHiermee worden drie nieuwe NIS maps gemaakt:
netgroup,
netgroup.byhost en
netgroup.byuser. Met &man.ypcat.1; kan
bekeken worden op de nieuwe NIS maps beschikbaar zijn:ellington&prompt.user; ypcat -k netgroup
ellington&prompt.user; ypcat -k netgroup.byhost
ellington&prompt.user; ypcat -k netgroup.byuserDe uitvoer van het eerste commando hoort te lijken op de
inhoud van /var/yp/netgroup. Het tweede
commando geeft geen uitvoer als er geen host-specifieke
netgroups zijn ingesteld. Het derde commando kan gebruikt
worden om een lijst van netgroups voor een gebruiker op te
vragen.Het instellen van de client is redelijk eenvoudig. Om de
server war in te stellen hoeft alleen met
&man.vipw.8; de volgende regel in de regel daarna vervangen te
worden:+:::::::::Vervang de bovenstaande regel in de onderstaande.+@IT_MW:::::::::Nu worden alleen de gebruikers die in de netgroup
IT_MW geïmporteerd in de wachtwoord
database van de host war, zodat alleen die
gebruikers kunnen aanmelden.Helaas zijn deze beperkingen ook van toepassing op de
functie ~ van de shell en alle routines
waarmee tussen gebruikersnamen en numerieke gebruikers ID's
wordt gewisseld. Met andere woorden: cd
~user werkt niet,
ls –l toont het numerieke ID in plaats
van de gebruikersnaam en find . –user joe
–print faalt met de foutmelding No
such user. Om dit te repareren moeten alle
gebruikers geïmporteerd worden, zonder ze het
recht te geven aan te melden op een server.Dit kan gedaan worden door nog een regel aan
/etc/master.passwd toe te voegen:+:::::::::/sbin/nologinDit betekent importeer alle gebruikers, maar vervang
de shell door /sbin/nologin.
Ieder veld in een passwd regel kan door een
standaardwaarde vervangen worden in
/etc/master.passwd.De regel +:::::::::/sbin/nologin moet
na +@IT_MW::::::::: komen. Anders krijgen
alle gebruikers die uit NIS komen
/sbin/nologin als aanmeldshell.Na deze wijziging hoeft er nog maar één NIS
map gewijzigd te worden als er een nieuwe medewerker komt bij
de IT afdeling. Dezelfde aanpak kan gebruikt worden voor de
minder belangrijke servers door de oude regel
+::::::::: in de lokale versie van
/etc/master.passwd door iets als het
volgende te vervangen:+@IT_MW:::::::::
+@IT_APP:::::::::
+:::::::::/sbin/nologinVoor normale werkstations zijn het de volgende
regels:+@IT_MW:::::::::
+@USERS:::::::::
+:::::::::/sbin/nologinEn dat zou allemaal leuk en aardig zijn als er niet na een
paar weken een beleidsverandering komt: de IT afdeling gaat
stagiairs aannemen. De IT stagiairs mogen de normale
werkstations en de minder belangrijke servers gebruiken en de
junior beheerders mogen gaan aanmelden op de hoofdservers. Dat
kan door een nieuwe groep IT_STAG te maken
en de nieuwe IT stagiairs toe te voegen aan die netgroup en dan
de instellingen op iedere machine te gaan veranderen. Maar
zoals het spreekwoord zegt: Fouten in een centrale
planning leiden tot complete chaos.Deze situaties kunnen voorkomen worden door gebruik te
maken van de mogelijkheid in NIS om netgroups in netgroups op
te nemen. Het is mogelijk om rol-gebaseerde netgroups te
maken. Er kan bijvoorbeeld een netgroup
BIGSRV gemaakt worden om het aanmelden op de
belangrijke servers te beperken en er kan een andere netgroup
SMALLSRV voor de minder belangrijke servers
zijn en een derde netgroup met de naam
USERBOX voor de normale werkstations. Al
die netgroups kunnen de netgroups bevatten die op die machines
mogen aanmelden. De nieuwe regels in de NIS map netgroup zien
er dan zo uit:BIGSRV IT_MW IT_APP
SMALLSRV IT_MW IT_APP ITSTAG
USERBOX IT_MW ITSTAG USERSDeze methode voor het instellen van aanmeldbeperkingen
werkt redelijk goed als er groepen van machines gemaakt kunnen
worden met identieke beperkingen. Helaas blijkt dat eerder
uitzondering dan regel. Meestal moet het mogelijk zijn om per
machine in te stellen wie wel en wie niet mogen
aanmelden.Daarom is het ook mogelijk om via machine-specifieke
netgroups de hierboven aangegeven beleidswijziging op te
vangen. In dat scenario bevat
/etc/master.passwd op iedere machine twee
regels die met + beginnen. De eerste voegt de
netgroup toe met de accounts die op de machine mogen aanmelden
en de tweede voegt alle andere accounts toe met
/sbin/nologin als shell. Het is
verstandig om als naam van de netgroup de machinenaam in
HOOFDLETTERS te gebruiken. De regels zien er
ongeveer als volgt uit:+@MACHINENAAM:::::::::
+:::::::::/sbin/nologinAls dit voor alle machines is gedaan, dan hoeven de lokale
versies van /etc/master.passwd nooit meer
veranderd te worden. Alle toekomstige wijzigingen kunnen dan
gemaakt worden door de NIS map te wijzigen. Hieronder staat
een voorbeeld van een mogelijke netgroup map voor het
beschreven scenario met een aantal toevoegingen:# Definieer eerst de gebruikersgroepen
IT_MW (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
DEPT2 (,golf,test-domain) (,hotel,test-domain)
DEPT3 (,india,test-domain) (,juliet,test-domain)
ITSTAG (,kilo,test-domain) (,lima,test-domain)
D_STAGS (,able,test-domain) (,baker,test-domain)
#
# En nu een aantal groepen op basis van rollen
USERS DEPT1 DEPT2 DEPT3
BIGSRV IT_MW IT_APP
SMALLSRV IT_MW IT_APP ITSTAG
USERBOX IT_MW ITSTAG USERS
#
# Een een groep voor speciale taken.
# Geef echo en golf toegang tot de anti-virus machine.
SECURITY IT_MW (,echo,test-domain) (,golf,test-domain)
#
# Machine-gebaseerde netgroups
# Hoofdservers
WAR BIGSRV
FAMINE BIGSRV
# Gebruiker india heeft toegang tot deze server nodig.
POLLUTION BIGSRV (,india,test-domain)
#
# Deze is erg belangrijk en heeft strengere toegangseisen nodig.
DEATH IT_MW
#
# De anti-virus machine als hierboven genoemd.
ONE SECURITY
#
# Een machine die maar door 1 gebruiker gebruikt mag worden.
TWO (,hotel,test-domain)
# [...hierna volgen de andere groepen]Als er een soort database wordt gebruikt om de
gebruikersaccounts te beheren, dan is het in ieder geval nodig
dat ook het eerste deel van de map met de database
rapportagehulpmiddelen gemaakt kan worden. Dan krijgen nieuwe
gebruikers automatisch toegang tot de machines.Nog een laatste waarschuwing: het is niet altijd aan te
raden gebruik te maken van machine-gebaseerde netgroups. Als
er tientallen of zelfs honderden gelijke machines voor
bijvoorbeeld studentenruimtes worden uitgerold, dan is het
verstandiger rol-gebaseerde netgroups te gebruiken in plaats
van machine-gebaseerde netgroups om de grootte van de NIS map
binnen de perken te houden.Belangrijk om te onthoudenIn een NIS omgeving werken een aantal dingen wel
anders.Als er een gebruiker toegevoegd moet worden, dan moet
die alleen toegevoegd worden aan de
master NIS server en mag niet vergeten worden dat
de NIS maps herbouwd moeten worden. Als dit
wordt vergeten, dan kan de nieuwe gebruiker nergens anders
aanmelden dan op de NIS master. Als bijvoorbeeld een
nieuwe gebruiker jsmith toegevoegd
moet worden:&prompt.root; pw useradd jsmith
&prompt.root; cd /var/yp
&prompt.root; make test-domainEr kan ook adduser jsmith in plaats
van pw useradd jsmith gebruikt
worden.De beheeraccounts moeten buiten de NIS maps
gehouden worden. Het is niet handig als de
beheeraccounts en wachtwoorden naar machines waarop
gebruikers aanmelden die geen toegang tot die informatie
horen te hebben zouden gaan.De NIS master en slave moeten veilig blijven
en zo min mogelijk niet beschikbaar zijn. Als
de machine wordt gehackt of als hij wordt uitgeschakeld,
dan kunnen er in theorie nogal wat mensen niet meer
aanmelden.Dit is de belangrijkste zwakte van elk gecentraliseerd
beheersysteem. Als de NIS servers niet goed beschermd
worden, dan worden veel gebruikers boos!NIS v1 compatibiliteitypserv voor &os; biedt wat
ondersteuning voor NIS v1 clients. De NIS implementatie van
&os; gebruikt alleen het NIS v2 protocol, maar andere
implementaties bevatten ondersteuning voor het v1 protocol voor
achterwaartse compatibiliteit met oudere systemen. De
ypbind daemons die bij deze systemen
zitten proberen een binding op te zetten met een NIS v1 server,
hoewel dat niet per se ooit nodig is (en ze gaan misschien nog
wel door met broadcasten nadat ze een antwoord van een v2
server hebben ontvangen). Het is belangrijk om te melden dat
hoewel ondersteuning voor gewone clientcalls aanwezig is, deze
versie van ypserv geen v1 map
transferverzoeken af kan handelen. Daarom kan
ypserv niet gebruikt worden als
master of slave in combinatie met oudere NIS servers die alleen
het v1 protocol ondersteunen. Gelukkig worden er in deze tijd
niet meer zoveel van deze servers gebruikt.NIS servers die ook NIS clients zijnHet is belangrijk voorzichtig om te gaan met het draaien
van ypserv in een multi-server
domein waar de server machines ook NIS clients zijn. Het is
in het algemeen verstandiger om de servers te dwingen met
zichzelf te binden dan ze toe te staan een bindverzoek te
broadcasten en het risico te lopen dat ze een binding met
elkaar maken. Er kunnen vreemde fouten optreden als een van de
servers plat gaat als er andere servers van die server
afhankelijk zijn. Na verloop van tijd treedt op de clients wel
een timeout op en verbinden ze met een andere server, maar de
daarmee gepaard gaande vertraging kan aanzienlijk zijn en de
foutmodus is nog steeds van toepassing, omdat de servers dan
toch weer opnieuw een verbinding met elkaar kunnen
vinden.Het is mogelijk een host aan een specifieke server te
binden door aan ypbind de vlag
mee te geven. Om dit niet iedere
keer handmatig na een herstart te hoeven uitvoeren, kan de
volgende regel worden opgenomen in
/etc/rc.conf van de NIS server:nis_client_enable="YES" # start ook het client gedeelte
nis_client_flags="-S NIS domain,server"In &man.ypbind.8; staat meer informatie.WachtwoordformatenNISwachtwoordformatenEen van de meest voorkomende problemen bij het
implementeren van NIS is de compatibiliteit van het
wachtwoordformaat. Als een NIS server wachtwoorden gebruikt
die met DES gecodeerd zijn, dan kunnen alleen clients die ook
DES gebruiken ondersteund worden. Als er bijvoorbeeld
&solaris; NIS clients in een netwerk zijn, dan moet er vrijwel
zeker gebruik gemaakt worden van met DES gecodeerde
wachtwoorden.Van welk formaat clients en servers gebruik maken is te
zien in /etc/login.conf. Als een host
gebruik maakt van met DES gecodeerde wachtwoorden, dan staat er
in de klasse default een regel als de
volgende:default:\
:passwd_format=des:\
:copyright=/etc/COPYRIGHT:\
[Overige regels weggelaten]Andere mogelijke waarden voor
passwd_format zijn
blf en md5
(respectievelijk voor Blowfish en MD5 gecodeerde
wachtwoorden).Als er wijzigingen gemaakt zijn aan
/etc/login.conf dan moet de
login capability database herbouwd worden door het volgende
commando als root uit te voeren:&prompt.root; cap_mkdb /etc/login.confHet formaat van de wachtwoorden die al in
/etc/master.passwd staan worden niet
bijgewerkt totdat een gebruiker zijn wachtwoord voor de
eerste keer wijzigt nadat de login
capability database is herbouwd.Om te zorgen dat de wachtwoorden in het gekozen formaat
zijn gecodeerd, moet daarna gecontroleerd worden of de waarde
crypt_default in
/etc/auth.conf de voorkeur geeft aan het
gekozen formaat. Om dat te realiseren dient het gekozen
formaat vooraan gezet te worden in de lijst. Als er
bijvoorbeeld gebruik gemaakt wordt van DES gecodeerde
wachtwoorden, dan hoort de regel er als volgt uit te
zien:crypt_default = des blf md5Als de bovenstaande stappen op alle &os; gebaseerde NIS
servers en clients zijn uitgevoerd, dan is het zeker dat ze het
allemaal eens zijn over welk wachtwoordformaat er op het
netwerk wordt gebruikt. Als er problemen zijn bij de
authenticatie op een NIS client, dan is dit een prima startpunt
voor het uitzoeken waar de problemen vandaan komen. Nogmaals:
als er een NIS server in een heterogene omgeving wordt
geplaatst, dan is het waarschijnlijk dat er gebruik gemaakt
moet worden van DES op alle systemen, omdat dat de laagst
overeenkomende standaard is.GregSutterGeschreven door Automatisch netwerk instellen (DHCP)Wat is DHCP?Dynamic Host Configuration ProtocolDHCPInternet Software Consortium (ISC)DHCP, het Dynamic Host Configuration Protocol, schrijft
voor hoe een systeem verbinding kan maken met een netwerk en
hoe het de benodigde informatie kan krijgen om met dat netwerk
te communiceren. &os; versies eerder dan 6.0 gebruiken de ISC
(Internet Software Consortium) DHCP client (&man.dhclient.8;)
implementatie. Latere versies gebruiken de OpenBSD
dhclient die uit OpenBSD 3.7 komt.
Alle informatie over dhclient kan zowel voor
de ISC als de OpenBSD DHCP client gebruikt worden. De DHCP
server zit bij de ISC distributie.Wat behandeld wordtIn dit onderdeel worden de clientcomponenten van de ISC en
OpenBSD DHCP client en de servercomponenten van het ISC DHCP
systeem beschreven. Het programma voor de client,
dhclient, zit standaard in &os; en de server
is beschrikbaar via de net/isc-dhcp3-server port. Naast
de onderstaande informatie, zijn de hulppagina's van
&man.dhclient.8;, &man.dhcp-options.5; en &man.dhclient.conf.5;
bruikbare bronnen.Hoe het werktUDPAls dhclient, de DHCP client, wordt
uitgevoerd op een clientmachine, dan begint die met het
broadcasten van verzoeken om instellingeninformatie. Standaard
worden deze verzoeken op UDP poort 68 gedaan. De server
antwoordt op UDP 67 en geeft de client een IP adres en andere
relevante netwerkinformatie, zoals een netmasker, router en DNS
servers. Al die informatie komt in de vorm van een DHCP
lease en is voor een bepaalde tijd geldig
(die is ingesteld door de beheerder van de DHCP server). Op
die manier kunnen IP adressen voor clients die niet langer met
het netwerk verbonden zijn (stale) automatisch weer ingenomen
worden.DHCP clients kunnen veel informatie van de server krijgen.
Er staat een uitputtende lijst in &man.dhcp-options.5;.&os; integratie&os; integreert de OpenBSD of ISC DHCP client
dhclient volledig (afhankelijk van de
gebruikte &os; versie). Er is ondersteuning voor de DHCP
client in zowel het installatieprogramma als in het
basissysteem, waardoor het niet noodzakelijk is om kennis te
hebben van het maken van netwerkinstellingen voor het netwerk
waar een DHCP server draait. dhclient is
onderdeel van &os; distributies sinds 3.2.sysinstallDHCP wordt ondersteund door
sysinstall. Bij het instellen van
een netwerkinterface binnen
sysinstall is de tweede vraag:
Wil je proberen de interface met DHCP in te
stellen? Als het antwoord bevestigend luidt, dan
wordt dhclient uitgevoerd en als dat
succesvol verloopt, dan worden de netwerkinstellingen
automatisch ingevuld.Voor het gebruiken van DHCP bij het opstarten van het
systeem zijn twee instellingen nodig:DHCPvereistenHet apparaat bpf moet in de
kernel gecompileerd zijn. Dit kan door
device bpf (pseudo-device
bpf onder &os; 4.X) aan het bestand met
kernelinstellingen toe te voegen en de kernel te herbouwen.
Meer informatie over het bouwen van een kernel staat in
.Het apparaat bpf is al
onderdeel van de GENERIC kernel die
bij &os; zit, dus als er geen sprake is van een aangepaste
kernel, dan hoeft er geen nieuwe gemaakt te worden om DHCP
aan te praat te krijgen.Voor de lezer die bijzonder begaan is met
beveiliging, is het belangrijk aan te geven dat
bpf ook het apparaat is waardoor
pakketsnuffelaars hun werk kunnen doen (hoewel ze nog
steeds als root moeten draaien).
bpfis
noodzakelijk voor DHCP, maar als beveiliging bijzonder
belangrijk is, dan hoort bpf
waarschijnlijk niet in een kernel te zitten omdat de
verwachting dat er in de toekomst ooit DHCP gebruikt gaat
worden.In /etc/rc.conf moet het volgende
worden opgenomen:ifconfig_fxp0="DHCP"fxp0 dient vervangen te worden
door de juiste aanduiding van de interface die dynamisch
ingesteld moet worden, zoals beschreven staat in .Als er een andere lokatie voor
dhclient wordt gebruikt of als er extra
parameters aan dhclient meegegeven
moeten worden, dan dient ook iets als het volgende
toegevoegd te worden:dhcp_program="/sbin/dhclient"
dhcp_flags=""DHCPserverDe DHCP server, dhcpd, zit bij
de port net/isc-dhcp3-server in de
Portscollectie. Deze port bevat de ISC DHCP server en
documentatie.BestandenDHCPinstellingenbestanden/etc/dhclient.confVoor dhclient is een
instellingenbestand /etc/dhclient.conf
nodig. Dat bestand bevat meestal alleen maar commentaar,
omdat de standaardinstellingen redelijk zinvol zijn. Dit
bestand wordt beschreven in &man.dhclient.conf.5;./sbin/dhclientdhclient is statisch gelinkt en
staat in /sbin. Er staat meer
informatie over dhclient in
&man.dhclient.8;./sbin/dhclient-scriptdhclient-script is het
&os;-specifieke DHCP client instellingenscript. Het wordt
beschreven in &man.dhclient-script.8;, maar het is niet
nodig het te wijzigen om goed te werken./var/db/dhclient.leasesDe DHCP client houdt in dit bestand een database bij
van geldige leases, die naar een logboekbestand worden
geschreven. In &man.dhclient.leases.5; staat een iets
uitgebreidere beschrijving.Verder lezenHet DHCP protocol staat volledig beschreven in RFC 2131.
Er is nog een bron van informatie ingesteld op .Een DHCP server installeren en instellenWat behandeld wordtIn dit onderdeel wordt beschreven hoe een &os; systeem
zo ingesteld kan worden dat het opereert als DHCP server
door gebruik te maken van de ISC (Internet Software
Consortium) implementatie van de DHCP suite.Het servergedeelte van de suite is geen
standaardonderdeel van &os; en om deze dienst aan te bieden
dient de port net/isc-dhcp3-server
geïnstalleerd te worden. In
staat meer informatie over de Portscollectie.DHCP serverinstallatieDHCPinstallatieOm een &os; systeem in te stellen als DHCP server moet
het apparaat &man.bpf.4; in de kernel zijn opgenomen. Om dit
te doen dient device bpf
(pseudo-device bpf onder &os; 4.X)
aan het bestand met kernelinstellingen toegegvoegd te worden
en dient de kernel herbouwd te worden. Meer informatie over
het bouwen van kernels staat in .Het apparaat bpf is al onderdeel
van de GENERIC kernel die bij &os;, dus
het is meestal niet nodig om een aangepaste kernel te bouwen
om DHCP aan de praat te krijgen.Het is belangrijk te vermelden dat
bpf ook het apparaat is waardoor
pakketsnuffelaars kunnen werken (hoewel de programma's die
er gebruik van maken wel bijzondere toegang nodig hebben).
bpfis
verplicht voor DHCP, maar als beveiliging van belang is,
dan is het waarschijnlijk niet verstandig om
bpf in een kernel op te nemen
alleen omdat er in de toekomst misschien ooit DHCP gebruikt
gaat worden.Hierna dient het standaardbestand
dhcpd.conf dat door de port net/isc-dhcp3-server is
geïnstalleerd gewijzigd te worden. Standaard is dit
/usr/local/etc/dhcpd.conf.sample en dit
bestand dient gekopieerd te worden naar
/usr/local/etc/dhcpd.conf voordat de
wijzgingen worden gemaakt.De DHCP server instellenDHCPdhcpd.confdhcpd.conf is opgebouwd uit
declaraties over subnetten en hosts en is wellicht het meest
eenvoudig te beschijven met een voorbeeld:option domain-name "example.com";
option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
}
host mailhost {
hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}Deze optie geeft het domein aan dat door clients als
standaard zoekdomein wordt gebruikt. In
&man.resolv.conf.5; staat meer over wat dat
betekent.Deze optie beschrijft een door komma's gescheiden
lijst met DNS servers die de client moet
gebruiken.Het netmasker dat aan de clients wordt
voorgeschreven.Een client kan om een bepaalde duur vragen die een
lease geldig is. Anders geeft de server aan wanneer de
lease vervalt (in seconden).Dit is de maximale duur voor een lease die de server
toestaat. Als een client vraagt om een langere lease,
dan wordt die wel verstrekt, maar is de maar geldig
gedurende max-lease-time
seconden.Deze optie geeft aan of de DHCP server moet proberen
de DNS server bij te werken als een lease is geaccepteerd
of wordt vrijgegeven. In de ISC implementatie is deze
optie verplicht.Dit geeft aan welke IP adressen in de groep met
adressen zitten die zijn gereserveerd om uitgegeven te
worden aan clients. Alle IP adressen tussen de
aangegeven adressen en die adressen zelf worden aan
clients uitgegeven.Geeft de default gateway aan die aan de clients
wordt voorgeschreven.Het hardware MAC adres van een host, zodat de DHCP
server een host kan herkennen als die een verzoek
doet.Geeft een host aan die altijd hetzelfde IP adres
moet krijgen. Hier kan een hostnaam gebruikt worden,
omdat de DHCP server de hostnaam zelf opzoekt voordat de
lease-informatie terug wordt gegeven.Als dhcpd.conf is ingesteld, kan de
server met het volgende commando gestart worden:&prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh startAls er later wijzigingen in de instellingen gemaakt
moeten worden, dan is het belangrijk te onthouden dat het
sturen van een SIGHUP signaal naar
dhcpdniet
resulteert in het opnieuw laden van de instellingen, zoals
voor de meeste daemons geldt. Voor deze daemon dient een
signaal SIGTERM gestuurd te worden om het
proces te stoppen. Daarna dient de daemon met het hiervoor
beschreven commando weer gestart worden.BestandenDHCPinstellingenbestanden/usr/local/sbin/dhcpddhcpd is statisch gelinkt
en staat in /usr/local/sbin. In de
hulppagina voor &man.dhcpd.8; die meekomt met de port
staat meer informatie over
dhcpd./usr/local/etc/dhcpd.confdhcpd heeft een
instellingenbestand,
/usr/local/etc/dhcpd.conf, nodig
voordat de daemon diensten aan clients kan leveren. Het
bestand moet alle informatie bevatten die aan clients
gegeven moet worden en de informatie die nodig is voor
het draaien van de dienst. Dit instellingenbestand staat
beschreven in de hulppagina voor &man.dhcpd.conf.5; die
meekomt met de port./var/db/dhcpd.leasesDe DHCP server houdt in dit bestand een database bij
met leases die zijn uitgegeven en die naar een logboek
worden geschreven. In de hulppagina &man.dhcpd.leases.5;
die bij de port zit wordt dit uitvoeriger
beschreven./usr/local/sbin/dhcrelaydhcrelay wordt in
uitgebreidere omgevingen gebruikt waar de ene DHCP server
een verzoek van een client naar een andere DHCP server op
een ander netwerk doorstuurt. Als deze functionaliteit
nodig is, kan die beschikbaar komen door de port
net/isc-dhcp3-relay
te installeren. De hulppagina voor &man.dhcrelay.8; die
bij de port zit bevat meer details.ChernLeeGeschreven door Domeinnaamsysteem (DNS)OverzichtBIND&os; gebruikt standaard een versie van BIND (Berkeley
Internet Name Domain), wat de meest gebruikte implementatie van
het DNS protocol is. DNS is het protocol waarmee namen aan
IP adressen gebonden worden en vice versa. Zo wordt
bijvoorbeeld op een zoekopdracht voor www.FreeBSD.org geantwoord met het IP
adres van de webserver van het &os; Project en op een
zoekopdracht voor ftp.FreeBSD.org
wordt geantwoord met het bijbehorende IP adres van de FTP
machine. Het tegenovergestelde kan ook gebeuren. Een
zoekopdracht voor een IP adres kan de bijbehorende hostnaam
opleveren. Het is niet nodig om een nameserver te draaien om
op een systeem zoekopdrachten met DNS te maken.DNSDNS wordt op internet onderhouden door een complex systeem
van autoritaire root nameservers en andere nameservers met een
kleinere scope die domeininformatie hosten en cachen.In dit document wordt BIND 8.x beschreven, de stabiele
versie die in &os; wordt gebruikt. Versies van &os; 5.3
en later bevatten BIND9 en aanwijzingen voor
het instellen daarvan zijn later in dit hoofdstuk te vinden.
Gebruikers van &os; 5.2 en eerdere versies kunnen
BIND9 installeren vanuit de port net/bind9.RFC1034 and RFC1035 schrijven het DNS protocol voor.Op dit moment wordt BIND beheerd door het Internet Software
Consortium .TerminologieVoor het begrip van dit document dienen aan aantal termen
begrepen te worden.resolverreverse DNSroot zoneTermDefinitieVoorwaartse DNSHet koppelen van hostnamen aan IP
adressen;Herkomst (origin)Verwijst naar het domein dat door een bepaald
zonebestand wordt gedekt;named, BIND,
nameserverVaak gebruikte namen voor het BIND nameserver
pakket in &os;;ResolverEen systeemproces waarmee een machine
zoekopdrachten om zoneinformatie aan een nameserver
stelt;Reverse DNSHet tegenovergestelde van voorwaartse DNS. Het
koppelen van IP adressen aan hostnamen;Root zoneHet begin van de internet zonehiërarchie.
Alle zones vallen onder de root zone, net zoals alle
bestanden in een bestandssysteem onder de rootmap
vallen;ZoneEen individueel domein, subdomein of een deel van
de DNS die door dezelfde autoriteit wordt
beheerd.zonesvoorbeeldenVoorbeelden van zones:. is de root zone;org. is een zone onder de root
zone;example.org. is een
zone onder het zone org.;foo.example.org. is
een subdomein onder de zone example.org.;1.2.3.in-addr.arpa is een zone waarin
alle IP adressen die onder de IP ruimte 3.2.1.* vallen.Zoals te zien is staat het meer specifieke deel van een
hostnaam aan de linkerkant. Zo is example.org. bijvoorbeeld meer
specifiek dan org. en is org.
meer specifiek van de root zone. De indeling van ieder deel
van een hostnaam lijkt veel op een bestandssysteem: de map
/dev valt onder de root, enzovoort.Redenen om een nameserver te draaienNameservers bestaan in het algemeen in twee smaken: een
authoritative namserver en een caching namserver.Er is een authoritative namserver nodig als:het nodig is DNS informatie aan te bieden aan de wereld
om met autoriteit (authoritatively) op verzoeken te
antwoorden;een domein, zoals example.org, is geregistreerd
en er IP adressen aan hostnamen die daaronder liggen
toegewezen moeten worden;een IP adresblok reverse DNS entries nodig heeft (IP
naar hostnaam);een backup namserver, die slave wordt genoemd, moet
antwoorden op verzoeken als de primaire down of niet
toegankelijk is.Er is een caching namserver nodig als:een lokale DNS server kan cachen en wellicht sneller
kan antwoorden dan een namserver die verder weg
staat;het wenselijk is om het totale netwerkverkeer te
reduceren. Er is ooit vastgesteld dat DNS verkeer 5% of
meer van het totale verkeer op internet uitmaakt.Als er een verzoek wordt gedaan voor www.FreeBSD.org, dan doet de resolver
meestal een verzoek bij de nameserver van de ISP die de uplink
levert en ontvangt daarop een antwoord. Met een lokale,
caching namserver hoeft het verzoek maar één
keer door de caching nameserver naar de buitenwereld gedaan te
worden. Voor ieder volgend verzoek hoeft niet buiten het
lokale netwerk gekeken te worden omdat het al lokaal in de
cache staat.Hoe het werktOm begrijpelijke redenen heet de BIND daemon in &os;
named.BestandBeschrijvingnamedde BIND daemonndcname daemon beheerprogramma/etc/namedbmap waar BIND zoneinformatie staat/etc/namedb/named.confdaemon instellingenbestandZonebestanden staat meestal binnen de map
/etc/namedb en bevatten de DNS zone
informatie die de namserver aanbiedt.BIND startenBINDstartenOmdat BIND standaard wordt geïnstalleerd, is het
instellen relatief eenvoudig.Om de named daemon bij het
booten te laten starten kan de volgende regel in
/etc/rc.conf gezet worden:named_enable="YES"Om na het instellen de daemon handmatig te starten:&prompt.root; ndc startInstellingenbestandenBINDinstellingenbestanden/secondary>
make-localhost gebruikenHet volgende commando dient uitgevoerd te worden om het
bestand voor de lokale reverse DNS zone in
/etc/namedb/master/localhost.rev op de
juiste wijze aan te maken:&prompt.root; cd /etc/namedb
&prompt.root; sh make-localhost/etc/namedb/named.conf// $FreeBSD$
//
// In de hulppagina named(8) zijn meer details te vinden. Voor het
// opzetten van een primaire server is begrip van de werking van DNS
// noodzakelijk. Zelfs eenvoudige fouten kunnen de werking verstoren
// of veel onnodig verkeer veroorzaken.
options {
directory "/etc/namedb";
// Als toevoeging op de "forwarders" clausule kan de namserver ook
// worden aangegeven dat hij nooit zelf verzoeken mag maken, maar dat
// altijd aan zijn forwarders moet vragen door de volgende regel te
// activeren:
//
// forward only;
// Als er een DNS server beschikbaar is bij een upstream provider dan
// kan het IP adres op de regel hieronder ingegeven worden en kan die
// geactiveerd worden. Hierdoor wordt voordeel gehaald uit de cache,
// waardoor het DNS verkeer op internet vermindert.
/*
forwarders {
127.0.0.1;
};
*/Zoals al in het commentaar staat kan het gebruik van een
cache in de uplink met forwarders
ingeschakeld worden. In normale omstandigheden maakt een
namserver recursief verzoeken tot er een antwoord komt waar
de server naar op zoek is. Door de bovenstaande optie in te
schakelen wordt eerst bij de namserver die is opgegeven
gevraagd, waardoor er gebruik gemaakt kan worden van de
cache van die server. Als die namserver een drukke, snelle
namserver is, kan het erg de moeite waard zijn van deze
optie gebruik te maken.127.0.0.1 werkt hier
niet. Dat IP adres dient gewijzigd te
worden naar een werkende namserver in de uplink./*
* Als er een firewall tussen een host en namservers staat waarmee
* gesproken moet worden, dan dient het commentaar voor het
* query-source hieronder verwijderd te worden. In eerdere versies van
* BIND werden verzoeken altijd via poort 53 gedaan, maar vanaf
* BIND 8.1 wordt een poort zonder privileges gebruikt.
*/
// query-source address * port 53;
/*
* Als de namserver in een sandbox draait, kan het wenselijk zijn om
* een andere lokatie voor het dumpbestand in te geven.
*/
// dump-file "s/named_dump.db";
};
// Opmerking: het volgende wordt in een latere release ondersteund.
/*
host { any; } {
topology {
127.0.0.0/8;
};
};
*/
// Het opzetten van een secondary is veel eenvoudiger en dat wordt
// hieronder ruweg beschreven.
//
// Als er een lokale nameserver wordt gebruikt, dan dient niet
// vergeten te worden om 127.0.0.1 in /etc/resolv.conf te zetten zodat
// die eerst bevraagd wordt. Het is ook belangrijk wijzigingen aan te
// brengen in /etc/rc.conf om named te starten.
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
// NB: De IP adressen hieronder zijn bedoeld als voorbeeld en dienen
// niet gebruikt te worden!
//
// Voorbeeld secondary instellingen. Het kan handig zijn om tenminste
// secondary te worden voor de zone waar de host onderdeel van
// uitmaakt. Bij netwerkbeheerders kan nagevraagd worden welke server
// de primaire server is.
//
// De reverse lookup zone (IN-ADDR.ARPA) mag nooit vergeten worden! Dat
// zijn de eerste bytes van het respectievelijke IP adres in omgekeerde
// volgorde met daarachter ".IN-ADDR.ARPA".
//
// Het is echter van groot belang om de werking van DNS en BIND te
// begrijpen voordat er een primaire zone wordt opgeset. Er zijn
// nogal wat onverwachte valkuiten. Het opzetten van een secondary is
// veel eenvoudiger.
//
// NB: Het wordt afgeraden de onderstaande voorbeelden actief te maken.
// Er dienen bestaande namen en adressen gebruikt te worden.
//
// BELANGRIJK!!! &os; draait BIND in een zandbak (zie named_flags in
// rc.conf). In de map waarin de secundaire zones staat moet
// geschreven kunnen worden door BIND. Dat kan als volgt:
//
// mkdir /etc/namedb/s
// chown bind:bind /etc/namedb/s
// chmod 750 /etc/namedb/sMeer informatie over het draaien van BIND in een zandbak
staat in named
in een Zandbak Draaien.
/*
zone "example.com" {
type slave;
file "s/example.com.bak";
masters {
192.168.1.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "s/0.168.192.in-addr.arpa.bak";
masters {
192.168.1.1;
};
};
*/De bovenstaande voorbeelden komen uit
named.conf en zijn voorbeelden van
instellingen voor een slave, voor een forward en reverse
zone.Voor iedere nieuwe zone die wordt aangeboden dient een
nieuwe instelling voor de zone aan
named.conf toegevoegd te worden.De meest eenvoudige instelling voor de zone example.org kan er als volgt
uitzien:zone "example.org" {
type master;
file "example.org";
};De zone is een master, dat geeft de instelling
aan, waarvan de zoneinformatie in
/etc/namedb/example.org staat, wat de
instelling aangeeft.zone "example.org" {
type slave;
file "example.org";
};In het geval van de slave wordt de zoneinformatie
voor een zone getransporteerd van de master namserver en
opgeslagen in het ingestelde bestand. Als een master server
het niet meer doet of niet bereikbaar is, dan heeft de slave
server de getransporteerde zoneinformatie nog en kan die
aanbieden.ZonebestandenEen voorbeeldbestand voor een master zone voor example.org (als bestand
/etc/namedb/example.org):$TTL 3600
example.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
; DNS Servers
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
; Machinenamen
localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30
; Aliases
www IN CNAME @
; MX Record
@ IN MX 10 mail.example.org.Iedere hostnaam die eindigt op een . is
een exacte hostnaam, terwijl alles zonder een
. op het einde refereert aan de oorsprong.
Zo wordt www bijvoorbeeld vertaald naar
www.origin.
In de zone uit het voorbeeld hierboven is de oorsprong
example.org., dus www
vertaalt naar www.example.org.De regels in een zonebestand volgen de volgende
opmaak:recordnaam IN recordtype waardeDNSrecordsDe meest gebruikte DNS records:SOAbegin van zoneautoriteit (start of
authority)NSeen bevoegde (authoritative) name
serverAeen hostadresCNAMEde canonieke (canonical) naam voor een
aliasMXmail exchangerPTReen domeinnaam pointer (gebruikt in
reverse DNS)
example.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 dayexample.org.de domeinnaam, ook de oorsprong voor dit
zonebestand.ns1.example.org.de primaire/bevoegde namserver voor deze
zone.admin.example.org.de persoon die verantwoordelijk is voor
deze zone, e-mailadres met @ vervangen.
admin@example.org wordt
admin.example.org.5het serienummer van het bestand. Dit moet iedere
keer als het zonebestand wordt aangepast opgehoogd
worden. Tegenwoordig geven veel beheerders de voorkeur
aan de opmaak yyyymmddrr voor het
serienummer. 2001041002 betekent
dan dat het voor het laatst is aangepast op
10–04–2001. De laatste
02 betekent dat het zonebestand een
aantal keer is aangepast op die dag. Het serienummer
is belangrijk omdat het slave nameservers aangeeft dat
een zone is bijgewerkt.
@ IN NS ns1.example.org.Hierboven staat een NS regel. Voor iedere nameserver
die bevoegde antwoorden moet geven voor de zone hoort er
zo'n regel te zijn. De @ betekent
hetzelfde als example.org.
Een @ vertaalt naar de oorsprong.
localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30Een A record geeft een machinenaam aan. Hierboven is te
zien dat ns1.example.org zou
resolven naar 3.2.1.2.
Nogmaals, het symbool voor oorsprong, @,
wordt hier gebruikt en dus zou example.org resolven naar
3.2.1.30.
www IN CNAME @Een canoniek name record wordt meestal gebruikt voor het
geven van aliasen aan een machine. In het voorbeeld is
www een alias naar de machine die gelijk is
aan de oorsprong, example.org (3.2.1.30). CNAME's kunnen gebruikt
worden om een alias aan hostnamen te geven of om round robin
één hostnaam naar meerdere machines te laten
wijzen.MX record
@ IN MX 10 mail.example.org.MX records geven aan welke mailservers verantwoordelijk
zijn voor het afhandelen van inkomende mail voor de zone.
mail.example.org is de hostnaam
voor de mailserver en 10 is de prioriteit voor die
mailserver.Het is mogelijk meerdere mailservers in te stellen met
prioriteiten 3, 2 en 1. Een mailserver die probeert mail
af te leveren voor example.org probeert dat eerst
bij de MX met de hoogste prioriteit, daarna de op een na
hoogste, enzovoort, totdat de mail afgeleverd kan
worden.Voor in-addr.arpa zonebestanden (reverse DNS) wordt
dezelfde opmaak gebruikt, maar dan met PTR regels in plaats
van A of CNAME.$TTL 3600
1.2.3.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
3600 ) ; Minimum
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
10 IN PTR mail.example.org.
30 IN PTR example.org.Dit bestand geeft de juiste IP adressen voor hostnamen
in het voorbeelddomein hierboven.Caching nameserverBINDcaching namserverEen caching namserver is een namserver die voor geen
enkele zone bevoegd is en alleen verzoeken doet en die onthoudt
voor later gebruik. Het opzetten ervan is eenvoudigweg het
opzetten van een namserver zonder zones toe te voegen.named in een zandbak
draaienBINDin een zandbak draaienchrootAls extra beveiligingsmaatregel is het wellicht wenselijk
om &man.named.8; als een gebruiker zonder privileges te draaien
en de instellingen zo te maken dat die &man.chroot.8; in een
zandbakmap draait. Hierdoor is alles buiten de zandbak niet
toegankelijk voor de named daemon.
Hierdoor wordt de schade die aangericht kan worden beperkt in
het geval dat named wordt gehackt.
Standaard kent &os; een gebruiker en groep
bind die voor dit doel bestemd
zijn.Er wordt ook wel gesteld dat het verstandiger is om
named met
chroot te draaien, maar in plaats daarvan
in een &man.jail.8; te draaien. Dit wordt hier niet
beschreven.Omdat named niet in staat is
ook maar iets buiten de zankbak te raadplegen (zoals gedeelde
bibliotheken, log sockets, enzovoort), moeten er een aantal
stappen gevolgd worden om named goed
te laten draaien. In de onderstaande controlelijst wordt
aangenomen dat het pad naar de zandbak
/etc/namedb is en dat er geen wijzigingen
gemaakt zijn aan de inhoud van die map. De volgende stappen
dienen als root uitgevoerd te
worden:Maak alle mappen die named
verwacht:&prompt.root; cd /etc/namedb
&prompt.root; mkdir -p bin dev etc var/tmp var/run master slave
&prompt.root; chown bind:bind slave var/*named hoeft alleen in
deze mappen te schrijven, dus krijgt het alleen daar
rechten.Herschik en maak de basiszone en stel het bestand met
instellingen in:&prompt.root; cp /etc/localtime etc
-&prompt.root; mv named.conf etc && ln -sf etc/named.conf
+&prompt.root; mv named.conf etc && ln -sf etc/named.conf
&prompt.root; mv named.root master
&prompt.root; sh make-localhost
-&prompt.root; cat > master/named.localhost
+&prompt.root; cat > master/named.localhost
$ORIGIN localhost.
$TTL 6h
@ IN SOA localhost. postmaster.localhost. (
1 ; serial
3600 ; refresh
1800 ; retry
604800 ; expiration
3600 ) ; minimum
IN NS localhost.
IN A 127.0.0.1
^DHierdoor kan named de
correcte tijd melden aan &man.syslogd.8;.sysloglogboekbestandennamedAls er een oudere versie dan &os; 4.9-RELEASE draait,
dient een statisch gelinkte kopie van
named-xfer gebouwd te worden en
naar de zankbak gekopieerd te worden:&prompt.root; cd /usr/src/lib/libisc
-&prompt.root; make cleandir && make cleandir && make depend && make all
+&prompt.root; make cleandir && make cleandir && make depend && make all
&prompt.root; cd /usr/src/lib/libbind
-&prompt.root; make cleandir && make cleandir && make depend && make all
+&prompt.root; make cleandir && make cleandir && make depend && make all
&prompt.root; cd /usr/src/libexec/named-xfer
-&prompt.root; make cleandir && make cleandir && make depend && make NOSHARED=yes all
-&prompt.root; cp named-xfer /etc/namedb/bin && chmod 555 /etc/namedb/bin/named-xfer
+&prompt.root; make cleandir && make cleandir && make depend && make NOSHARED=yes all
+&prompt.root; cp named-xfer /etc/namedb/bin && chmod 555 /etc/namedb/bin/named-xferNadat de statisch gelinkte
named-xfer is geïnstalleerd, is het
nodig wat op te ruimen om te voorkomen dat er kopieen van
bibliotheken of programma's in de boomstructuur met
broncode achterblijven:&prompt.root; cd /usr/src/lib/libisc
&prompt.root; make cleandir
&prompt.root; cd /usr/src/lib/libbind
&prompt.root; make cleandir
&prompt.root; cd /usr/src/libexec/named-xfer
&prompt.root; make cleandirDeze stap gaat wel eens verkeerd. Als dit gebeurt,
kan het volgende commando uitgevoerd worden:
- &prompt.root; cd /usr/src && make cleandir && make cleandir
+ &prompt.root; cd /usr/src && make cleandir && make cleandirDaarnaast kan de /usr/obj
structuur verwijderd worden:
- &prompt.root; rm -fr /usr/obj && mkdir /usr/obj
+ &prompt.root; rm -fr /usr/obj && mkdir /usr/objHiermee wordt aanwezige rommel uit de
broncodestructuur verwijderd en kunnen de hierboven
beschreven stappen opnieuw uitgevoerd worden.Als &os; version 4.9-RELEASE of later wordt gebruikt,
dan is named-xfer in
/usr/libexec standaard statisch
gelinkt en kan er simpelweg met &man.cp.1; een kopie naar
de zandbak gemaakt worden.Maak een dev/null die zichtbaar is
voor named en waar
named kan schrijven:
- &prompt.root; cd /etc/namedb/dev && mknod null c 2 2
+ &prompt.root; cd /etc/namedb/dev && mknod null c 2 2
&prompt.root; chmod 666 nullSymlink /var/run/ndc naar
/etc/namedb/var/run/ndc:&prompt.root; ln -sf /etc/namedb/var/run/ndc /var/run/ndcHiermee wordt voorkomen dat er iedere keer als
&man.ndc.8; wordt uitgevoerd de optie
meegegeven moet worden. Omdat de inhoud van
/var/run bij het booten wordt
verwijderd, kan het wenselijk zijn dit commando aan de
&man.crontab.5; van root toe te
voegen met de optie .sysloglogboekbestandennamedStel &man.syslogd.8; in om een extra
log socket te maken waar
named heen kan schrijven. Dit
kan door -l /etc/namedb/dev/log toe te
voegen aan de syslogd_flags variable in
/etc/rc.conf.chrootMaak de instelling om named
te starten en zich met chroot in een
zandbak te plaatsen met de volgende aanpassing in
/etc/rc.conf:named_enable="YES"
named_flags="-u bind -g bind -t /etc/namedb /etc/named.conf"In het instellingenbestand
/etc/named.conf staan
volledige paden relatief aan de
zandbak. Het bestand in de regel hierboven
is dus feitelijk
/etc/namedb/etc/named.conf.Nu dient /etc/namedb/etc/named.conf
gewijzigd te worden, zodat named
weet welke zones geladen moeten worden en waar ze staan. Nu
volgt een van commentaar voorzien voorbeeld. Alle regels
zonder commentaar wijken niet af van de opzet voor een DNS
server die niet in een zandbak draait:options {
directory "/";
named-xfer "/bin/named-xfer";
version ""; // Laat versie BIND niet zien
query-source address * port 53;
};
// ndc control socket
controls {
unix "/var/run/ndc" perm 0600 owner 0 group 0;
};
// Zones follow:
zone "localhost" IN {
type master;
file "master/named.localhost";
allow-transfer { localhost; };
notify no;
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "master/localhost.rev";
allow-transfer { localhost; };
notify no;
};
zone "." IN {
type hint;
file "master/named.root";
};
zone "private.example.net" in {
type master;
file "master/private.example.net.db";
allow-transfer { 192.168.10.0/24; };
};
zone "10.168.192.in-addr.arpa" in {
type slave;
masters { 192.168.10.2; };
file "slave/192.168.10.db";
};De opdracht directory heeft als
waarde / omdat alle bestanden die
named nodig heeft binnen die
map staan. Dit staat dus gelijk aan
/etc/namedb voor een
normale gebruiker.Geeft het volledige pad naar het uitvoerbare bestand
named-xfer (vanuit de optiek van
named). Dit is nodig omdat
named is gecompileerd om
standaard te zoeken naar named-xfer in
/usr/libexec.Geeft de bestandsnaam
(relatief aan de instelling directory
hierboven) waar named het
zonebestand voor deze zone kan vinden.Geeft de bestandsnaam
(relatief aan de instelling directory
hierboven) waar named een kopie
van het zonebestand moet schrijven nadat die succesvol van
de master server is gekopieerd. Daarom moest de eigenaar
van de map slave naar
bind gewijzigd worden in een eerdere
stap.Na het doorlopen van de hierboven beschreven stappen kan
de server herstart worden of kunnen &man.syslogd.8; herstart en
&man.named.8; gestart worden, mits de nieuwe opties voor
syslogd_flags en
named_flags zijn ingesteld. Dan draait
named in een zandbak!BeveiligingHoewel BIND de meest gebruikte implementatie van DNS is,
is er altijd nog het beveiligingsvraagstuk. Soms worden er
mogelijke en te misbruiken beveiligingsgaten gevonden.Het is verstandig om bij te blijven met CERT
beveiligingswaarschuwingen en een abonnement te nemen op de
&a.security-notifications; om bij te blijven met de
beveiligingsproblemen wat betreft internet en &os;.Als er problemen ontstaan, kan het bijwerken van broncode
en het opnieuw bouwen van named
geen kwaad doen.Verder lezenBIND/named hulppagina's:
&man.ndc.8;, &man.named.8;, &man.named.conf.5;Officiële
ISC BIND pagina
BIND FAQO'Reilly
DNS en BIND 4e EditieRFC1034
- Domeinnamen - Concepten en FaciliteitenRFC1035
- Domeinnamen - Implementatie en
SpecificatieTomRhodesGeschreven door BIND9 en &os;bind9instellenHet uitbrengen van &os; 5.3 was het moment van
introductie van de BIND9
DNS server software in de distributie.
Dit betekende nieuwe beveiligingsmogelijkheden, een nieuwe
indeling van het bestandssysteem en automatische instelling van
&man.chroot.8;. Deze paragraaf bestaat uit twee delen. In het
eerste deel worden de nieuwe mogelijkheden en hun instelling
beschreven en het tweede gedeelte gaat over hulp bij het upgraden
naar &os; 5.3. Vanaf dit moment wordt er simpelweg verwezen
naar &man.named.8; in plaats van naar BIND.
Dit onderdeel slaat het beschrijven van de terminologie over,
omdat die eerder is besproken. De theorie wordt ook niet
beschreven. Het is aan te raden om die eerdere onderdelen te
lezen voor dit onderdeel.De bestanden met instellingen voor
named staan op dit moment in /var/named/etc/namedb/ en moeten
voor gebruik aangepast worden. Daar worden de meeste
instellingen gemaakt.Een master zone instellenOm een master zone in te stellen kan in /var/named/etc/namedb/ het volgende
uitgevoerd worden:&prompt.root; sh make-localhostAls alles goed is gegaan hoort er een nieuw bestand in de
master map te staan. De
bestandsnamen horen localhost.rev voor de
lokale domeinnaam te zijn en
localhost-v6.rev voor
IPv6 instellingen. Instellingen voor
standaardgebruik staan al in het instellingenbestand
named.conf file.Een slave zone instellenInstellingen voor extra domeinen of subdomeinen kunnen
worden ingesteld als slave zones. In de meeste gevallen kan
het bestand master/localhost.rev gewoon
naar de map slave
gekopieerd worden en aangepast worden. Als dat is gedaan,
moeten de bestanden op de juiste wijze toegevoegd worden aan
named.conf, zoals in het volgende
voorbeeld voor example.com:zone "example.com" {
type slave;
file "slave/example.com";
masters {
10.0.0.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "slave/0.168.192.in-addr.arpa";
masters {
10.0.0.1;
};
};In dit voorbeeld is het master IP adres
de primaire domain server vanwaar de zones gehaald worden. Die
hoeft niet per se zelf een DNS server te
zijn.Opstarten instellenOm de named daemon met het
systeem te laten starten, hoort de volgende optie in
rc.conf te staan:named_enable="YES"Hoewel er nog andere mogelijkheden bestaan, is dit het
absolute minimum. In &man.rc.conf.5; staan nog meer
mogelijkheden beschreven. Als er niets in
rc.conf staat, kan
named gestart worden vanaf de
commandoregel:&prompt.root; /etc/rc.d/named startBIND9 beveiligingHoewel &os; named automatisch in een
&man.chroot.8; omgeving zet, zijn er nog een aantal andere
beveiligingsmogelijkheden die kunnen helpen om mogelijke
aanvallen op de DNS dienst af te
slaan.Toegangscontrolelijsten opvragenEen toegangscontrolelijst (acl) voor vraagstellingen kan
gebruikt worden om vraagstellingen voor zones te beperken.
De instelling gaat door een netwerk te definiëren binnen
het token acl en dan een lijst met
IP adressen aan te geven in de
instellingen voor de zone. Om domeinen toe te staan om de
voorbeeldhost te gebruiken, kan iets als het volgende
gebruikt worden:acl "example.com" {
192.168.0.0/24;
};
zone "example.com" {
type slave;
file "slave/example.com";
masters {
10.0.0.1;
};
allow-query { example.com; };
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "slave/0.168.192.in-addr.arpa";
masters {
10.0.0.1;
};
allow-query { example.com; };
};Opvragen versie beperkenHet opvragen van de versie van de DNS
server kan een ingang zijn voor een aanvaller, die deze
informatie kan gebruiken om te zoeken naar bekende exploits
of bugs om in te breken op de host.Het instellen van een vals versienummer beschermt een
server niet tegen exploits. Alleen het bijwerken naar een
versie die niet kwetsbaar is beschermt een server.Er kan een valse versiestring ingesteld worden in de
sectie options van
named.conf:options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
version "None of your business";
};MurrayStokelyGeschreven door Apache HTTP serverwebserversopzettenApacheOverzicht&os; wordt gebruikt om een paar van de drukste websites ter
wereld te draaien. De meeste webservers op internet maken
gebruik van de Apache HTTP Server.
Apache softwarepackages staan op de
&os; installatiemedia. Als Apache
niet bij de oorsponkelijke installatie van &os; is
meegeïnstalleerd, dan kan dat vanuit de www/apache13 of www/apache2 port.Als Apache succesvol is
geïnstalleerd, moeten er instelingen gemaakt
worden.In dit onderdeel wordt versie 1.3.X van de
Apache HTTP Server behandeld omdat
die het meest gebruikt wordt op &os;.
Apache 2.X biedt veel nieuwe
mogelijkheden, maar wordt hier niet beschreven. Meer
informatie over Apache 2.X is
te vinden op .InstellenApacheconfiguration fileHet belangrijkste bestand met instellingen voor de
Apache HTTP Server op &os; is
/usr/local/etc/apache/httpd.conf. Dit
bestand is een typisch &unix; tekstgebaseerd
instellingenbestand waarin regels met commentaar beginnen met
het karakter #. Het uitputtend beschrijven
van alle mogelijke instellingen valt buiten het bereik van dit
boek, dus worden alleen de meest gebruikte directieven
beschreven.ServerRoot "/usr/local"Hierin wordt de standaard mappenhiërarchie voor
de Apache installatie
aangegeven. Binaire bestanden staan in de submappen
bin en sbin van de serverroot en
bestanden met instellingen staan in etc/apache.ServerAdmin beheerder@beheer.adresHet adres waaraan problemen met de server gemaild
kunnen worden. Dit adres verschijnt op een aantal door
de server gegenereerde pagina's, zoals documenten met
foutmeldingen.ServerName www.example.comMet ServerName kan een hostnaam
ingesteld worden die wordt teruggezonden aan de clients
als de naam van de server anders is dan die is ingesteld
(gebruik bijvoorbeeld www in plaats van
de echte hostnaam).DocumentRoot "/usr/local/www/data"DocumentRoot: de map waaruit de
documenten worden geserveerd. Standaard worden alle
verzoeken uit deze map gehaald, maar er kunnen
symbolische links en aliasen gebruikt worden om naar
andere locaties te wijzen.Het is altijd een goed idee om back-ups te maken van het
instellingenbestand voor Apache
vóór het maken van wijzigingen. Als de juiste
instellingen gemaakt zijn, kan
Apache gestart worden.Apache draaienApachestarten of stoppenApache draait niet vanuit de
inetd super server zoals veel andere
netwerkdiensten. Hij is ingesteld om zelfstandig te draaien
vanwege beter prestaties voor het afhandelen van inkomende
HTTP verzoeken van client webbrowsers. Er wordt een
shellscriptwrapper bijgeleverd om het starten, stoppen en
herstarten zo eenvoudig mogelijk te maken. Het volgende
commando start Apache voor de eerste
keer:&prompt.root; /usr/local/sbin/apachectl startDe server kan op iedere moment gestopt worden met:&prompt.root; /usr/local/sbin/apachectl stopNa het maken van wijzigingen aan het instellingenbestand
moet de dienst herstart worden:&prompt.root; /usr/local/sbin/apachectl restartOm Apache te herstarten zonder
bestaande connecties te verbreken:&prompt.root; /usr/local/sbin/apachectl gracefulIn &man.apachectl.8; staat meer informatie.Om Apache met het systeem mee te
starten kan de volgende regel aan
/etc/rc.conf worden toegevoegd:apache_enable="YES"Als het nodig is additionele commandoregelopties op te
geven voor de Apachehttpd bij het opstarten, dan kunnen die in
de volgende regel in rc.conf meegegeven
worden:apache_flags=""Nu de webserver draait, is die te benaderen door een
webbrowser te wijzen naar http://localhost/.
De standaard webpagina is
/usr/local/www/data/index.html.Virtuele hostingApache ondersteunt twee
verschillende manieren van Virtuele Hosting. De eerste
methode is Naam-gebaseerde Virtuele Hosting. Naam-gebaseerde
Virtuele Hosting gebruikt de HTTP/1.1 headers van de clients
om de hostnaam uit te zoeken. Hierdoor kunnen meerdere
domeinen hetzelfde IP adres delen.Om Apache gebruik te laten
maken van Naam-gebaseerde Virtuele Hosting kan een regel als
de volgende in httpd.conf worden
opgenomen:NameVirtualHost *Als een webserver www.domein.tld heet en er moet een
virtueel domein voor www.anderdomein.tld gaan draaien, dan
kunnen de volgende regels aan httpd.conf
worden toegevoegd:<VirtualHost *>
ServerName www.domein.tld
DocumentRoot /www/domein.tld
</VirtualHost>
<VirtualHost *>
ServerName www.anderdomein.tld
DocumentRoot /www/anderdomein.tld
</VirtualHost>De adressen en de paden uit dit voorbeeld kunnen in echte
implementaties uiteraard gewijzigd worden.Meer informatie over het opzetten van virtuele hosts staat
in de officiële documentatie voor
Apache op Apache modulesApachemodulesEr zijn veel verschillende
Apache modules die functionaliteit
toevoegen aan de basisdienst. De &os; Portscollectie biedt
op een eenvoudige manier de mogelijkheid om
Apache samen met de meeste populaire
add-on modules te installeren.mod_sslwebserverveiligSSLcryptografieDe module mod_ssl gebruikt
de OpenSSL bibliotheek om sterke cryptografie te leveren via
de protocollen Secure Sockets Layer (SSL v2/v3) en
Transport Layer Security (TLS v1). Deze module levert
alles wat nodig is om een getekend certificaat aan te vragen
bij een vertrouwde certificaatautoriteit om een veilige
webserver onder &os; te kunnen draaien.Als Apache nog niet is
geïnstalleerd, dan is er een versie van
Apache 1.3.X die
mod_ssl bevat en
geïnstalleerd kan worden met de www/apache13-modssl port. SSL
ondersteuning is ook voor
Apache 2.X beschikbaar in de
www/apache2 port, waar
het standaard is ingeschakeld.mod_perlPerlHet Apache/Perl
integratieproject brengt de volledige kracht van de Perl
programmeertaal en de Apache HTTP
Server samen. Met de
mod_perl module is het mogelijk om
Apache modules volledig in Perl te
schrijven. Daarnaast voorkomt een ingebouwde persistente
interpreter in de server de overhead van het starten van een
externe interpreter en de nadelen van het opstarten van
Perl.Als Apache nog niet is
geïnstalleerd, dan is er een versie van
Apache die
mod_perl bevat en
geïnstalleerd kan worden met de www/apache13-modperl port.TomRhodesGeschreven door PHPPHPIn de afgelopen jaren hebben steeds meer bedrijven zich
op Internet gericht om hun omzet te verhogen en hun
zichtbaarheid te vergroten. Hiermee is ook de behoefte aan
interactieve webcontent toegenomen. Hoewel sommige bedrijven
zoals µsoft; oplossingen hebben geïntroduceerd
voor hun eigen (proprietary) producten, heeft ook de open
source gemeenschap een antwoord op de vraag gegeven. Een van
die antwoorden, breed ingezet, heet
PHP.PHP, ook bekend als
Hypertext Preprocessor, is een algemene
scripttaal die bijzonder geschikt is voor webontwikkeling.
Het is mogelijk de taal in te bedden in
HTML en de syntaxis is afgeleid van C,
&java; en Perl met de bedoeling webontwikkelaars in staat te
stellen en dynamisch samengestelde pagina's te
schrijven.Om aan de Apache webserver
ondersteuning voor PHP5 toe te voegen kan
eerst de port www/mod_php5 toegevoegd
worden.Hiermee worden de modules die nodig zijn voor de
ondersteuning van dynamische webapplicaties
geïnstalleerd en ingesteld. De volgende regels dienen
in /usr/local/etc/apache/httpd.conf te
staan:LoadModule php5_module libexec/apache/libphp5.so
AddModule mod_php5.c
<IfModule mod_php5.c>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>Na afronding dient eenvoudigweg apache herstart te worden
met apachectl:&prompt.root; apachectl gracefulDe ondersteuning voor PHP in &os; is
extreem modulair. Als ondersteuning voor een bepaalde
extensie gewenst is, hoeft een beheerder alleen maar de
bewust port te installeren en
Apache te herstarten zoals
hierboven is aangegeven.Om bijvoorbeeld ondersteuning voor de
MySQL databaseserver aan
PHP5 toe te voegen
kan gewoonweg de port databases/php5-mysql
geïnstalleerd worden en het volgende commando gegeven
worden:&prompt.root; apachectl gracefulHiermee wordt de MySQL
ondersteuning in
Apache ingeschakeld.MurrayStokelyGeschreven door File Transfer Protocol (FTP)FTP serversOverzichtHet File Transfer Protocol (FTP) biedt gebruikers een
eenvoudige manier om bestanden van en naar een FTP server te
verplaatsen. &os; bevat FTP
server software, ftpd, in het
basissysteem. Hierdoor is het opzetten en beheren van een
FTP server op
&os; erg overzichtelijk.InstellenDe belangrijkste stap bij het instellen is de beslissing
welke accounts toegang krijgen tot de FTP server. Een normaal
&os; systeem heeft een aantal systeemaccounts die gebruikt
worden voor daemons, maar onbekende gebruikers mag niet
toegestaan worden van die accounts gebruikt te maken. In
/etc/ftpusers staat een lijst met
gebruikers die geen FTP toegang hebben. Standaard staan daar
de voorgenoemde accounts in, maar het is ook mogelijk om daar
gebruikers toe te voegen die geen FTP toegang mogen
hebben.Het kan ook wenselijk zijn de FTP toegang voor sommige
gebruikers te beperken, maar niet onmogelijk te maken. Dit kan
met /etc/ftpchroot. In dat bestand staan
gebruikers en groepen waarop FTP toegangsbeperkingen van
toepassing zijn. In &man.ftpchroot.5; staan alle details die
hier niet beschreven zijn.FTPanoniemOm anonieme FTP toegang voor een server in te schakelen,
dient er een gebruiker ftp op een &os;
systeem aangemaakt te worden. Dan kunnen gebruikers op de
server aanmelden met de gebruikersnaam ftp
of anonymous en met ieder wachtwoord
(de geldende conventie schrijft voor dat dit een e-mail adres
van de gebruiker is). De FTP server roep bij een anonieme
aanmelding &man.chroot.2; aan, zodat er alleen toegang is tot
de thuismap van de gebruiker ftp.Er zijn twee tekstbestanden waarin welkomstberichten voor
de FTP clients gezet kunnen worden. De inhoud van
/etc/ftpwelcome wordt getoond voordat
gebruikers een aanmeldprompt zien. Na een succesvolle
aanmelding wordt de inhoud van
/etc/ftpmotd getoond. Het genoemde pad
is relatief ten opzichte van de aanmeldomgeving, dus voor
anonieme gebruikers wordt ~ftp/etc/ftpmotd
getoond.Als een FTP server eenmaal correct is ingesteld, moet die
ingeschakeld worden in /etc/inetd.conf.
Daar moet het commentaarkarakter # voor de
bestaande ftpd regel verwijderd
worden:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lNadat het bestand met instellingen is gewijzigd, moet er
een HangUP signaal verstuurd worden naar
inetd, zoals uitgelegd in .Nu kan aangemeld worden op de FTP server met:&prompt.user; ftp localhostBeherensysloglogboekbestandenFTPDe ftpd daemon gebruikt
&man.syslog.3; om berichten te loggen. Standaard plaatst de
systeemlogdaemon berichten over FTP in
/var/log/xferlog. De lokatie van het FTP
logboek kan gewijzigd worden door de volgende regels in
/etc/syslog.conf te wijzigen:ftp.info /var/log/xferlogFTPanoniemHet is verstandig na te denken over de gevaren die op de
loer liggen bij het draaien van een anonieme FTP server. Dat
geldt in het bijzonder voor het laten uploaden ven bestanden.
Het is dan goed mogelijk dat een FTP site een forum wordt om
commerciële software zonder licenties uit te wisselen of
erger. Als anonieme uploads toch nodig zijn, dan horen de
rechten op die bestanden zo te staan dat ze niet door andere
anonieme gebruikers gelezen kunnen worden tot er door een
beheerder naar gekeken is.MurrayStokelyGeschreven door Bestands- en printdiensten voor µsoft.windows; clients
(Samba)Samba serverMicrosoft WindowsfileserverWindows clientsprintserverWindows clientsOverzichtSamba is een populair open
source softwarepakket dat bestands- en printdiensten voor
µsoft.windows; clients biedt. Die clients kunnen
dan ruimte op een &os; bestandssysteem gebruiken alsof het
een lokale schijf is en &os; printers gebruiken alsof het
lokale printers zijn.Samba software packages horen
op de &os; installatiemedia te staan. Als
Samba bij de basisinstallatie niet
mee is geïnstalleerd, dan kan dat alsnog via de net/samba3 port of met het
package.InstellenEen standaardbestand met instellingen voor
Samba wordt geïnstalleerd als
/usr/local/etc/smb.conf.default. Dit
bestand dient gekopieerd te worden naar
/usr/local/etc/smb.conf en voordat
Samba gebruikt kan worden, moeten er
aanpassingen aan worden gemaakt.smb.conf bevat de instellingen voor
Samba, zoals die voor de printers en
de gedeelde bestandssystemen die gedeeld worden
met &windows; clients. Het Samba
pakket bevat een webgebaseerde beheermodule die
swat heet, waarmee
smb.conf op een eenvoudige manier
ingesteld kan worden.De Samba webbeheermodule gebruiken (SWAT)De Samba Webbeheermodule (SWAT) draait als een daemon
vanuit inetd. Daarom dient voor
de volgende regel uit /etc/inetd.conf
het commentaarkarakter verwijderd te worden voordat
swat gebruikt kan worden om
Samba in te stellen:swat stream tcp nowait/400 root /usr/local/sbin/swatNadat het bestand met instellingen is gewijzigd, moet er
een HangUP signaal verstuurd worden naar
inetd, zoals uitgelegd in .Als swat is ingeschakeld in
inetd.conf, kan de module gebruikt
worden door met een browser een verbinding te maken met
. Er dient
aangemeld te worden met de root account
van het systeem.Na succesvol aanmelden op de hoofdpagina voor de
Samba instellingen, is het
mogelijk de systeemdocumentatie te bekijken of te starten
door op het tabblad Globals te klikken.
Het onderdeel Globals correspondeert met
de sectie [global] in
/usr/local/etc/smb.conf.Systeembrede instellingenOf Samba nu wordt ingesteld
door /usr/local/etc/smb.conf direct te
bewerken of met swat, de eerste
instellingen die gemaakt moeten worden zijn de
volgende:workgroupNT Domeinnaam of Werkgroepnaam voor de computers
die verbinding gaan maken met de server.netbios nameNetBIOSHiermee wordt de NetBIOS naam waaronder de
Samba server bekend zal zijn
ingesteld. Standaard is de naam het eerste gedeelte
van de DNS naam van een host.server stringHiermee wordt de string ingesteld die te zien is
als het commando net view en een
aantal andere commando's die gebruik maken van de
descriptieve tekst voor de server gebruikt
worden.BeveiligingsinstellingenTwee van de belangrijkste instellingen in
/usr/local/etc/smb.conf zijn het
gekozen beveiligingsmodel en het wachtwoord voor
clientgebruikers. Deze worden met de volgende instellingen
gemaakt:securityDe twee meest gebruikte mogelijkheden hier zijn
security = share en
security = user. Als de clients
gebruikersnamen hebben die overeenkomen met hun
gebruikersnaam op de &os; machine, dan is het
verstandig om te kiezen voor beveiliging op
gebruikersniveau. Dit is het standaard
beveiligingsbeleid en kent als voorwaarde dat
gebruikers zich eerst moeten aanmelden voordat ze
toegang krijgen tot gedeelde bronnen.Bij beveiliging op shareniveau hoeft een client
niet met een geldige gebruikersnaam en wachtwoord aan
te melden op de server voor het mogelijk is om een
verbinding te proberen te krijgen met een gedeelde
bron. Dit was het standaardbeveiligingsmodel voor
oudere versies van
Samba.passdb backendNIS+LDAPSQL databaseSamba kent aan de
achterkant verschillende authenticatiemodellen.
Clients kunnen authenticeren met LDAP, NIS+, een SQL
database of een aangepast wachtwoordbestand. De
standaard authenticatiemethode is
smbpasswd. Meer wordt hier niet
behandeld.Als aangenomen wordt dat de standaard achterkant
smbpasswd wordt gebruikt, dan moet
/usr/local/private/smbpasswd gemaakt
worden om Samba in staat te
stellen clients te authenticeren. Alle &unix;
gebruikersaccounts toegang geven vanaf &windows; clients gaat
met het volgende commando:&prompt.root; grep -v "^#" /etc/passwd | make_smbpasswd > /usr/local/private/smbpasswd
&prompt.root; chmod 600 /usr/local/private/smbpasswdIn de Samba documentatie staat
meer informatie over instellingen. Met de hier gegeven
basisuitleg moet het mogelijk zijn
Samba draaiende te krijgen.Samba startenOm Samba in te schakelen bij het
starten van een systeem dient de volgende regel aan
/etc/rc.conf toegevoegd te worden:samba_enable="YES"Samba kan op ieder moment
gestart worden met:&prompt.root; /usr/local/etc/rc.d/samba.sh start
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.Samba bestaat feitelijk uit drie
afzonderlijke daemons. Het script
samba.sh start de daemons
nmbd en
smbd. Als de winbind name
resolution diensten in smb.conf zijn
ingeschakeld, dan start ook de daemon
winbindd.Samba kan op ieder moment
gestopt worden met:&prompt.root; /usr/local/etc/rc.d/samba.sh stopSamba is een complexe
softwaresuite met functionaliteit waarmee verregaande
ingratie met µsoft.windows; netwerken mogelijk wordt.
Informatie die verder gaat dan de basisinstallatie staat op
.TomHukinsGeschreven door Tijd synchroniseren met NTPNTPOverzichtNa verloop van tijd gaat de tijd van een computer meestal
uit de pas lopen. Het Netwerk Tijd Protocol (NTP) kan ervoor
zorgen dat de tijd accuraat blijft.Veel diensten op internet zijn afhankelijk, of hebben veel
voordeel, van het betrouwbaar zijn van de tijd. Zo ontvangt
een webserver bijvoorbeeld veel verzoeken om een bestand te
sturen als dat gewijzigd is sinds een bepaald moment. In een
LAN omgeving is het van groot belang dat computers die
bestanden delen van eenzelfde server gesynchroniseerde tijd
hebben zodat de tijdstempels consistent blijven. Diensten
zoals &man.cron.8; zijn ook afhankelijk van een betrouwbare
systeemtijd om commando's op het ingestelde moment uit te
voeren.NTPntpdBij &os; zit de &man.ntpd.8; NTP server die gebruikt kan worden
om bij andere NTP servers de tijd op
te vragen om de eigen klok gelijk te zetten of om de juiste
tijd te verstrekken aan andere apparaten.Passende NTP servers kiezenNTPchoosing serversOm de tijd te synchroniseren moeten er één
of meer NTP
servers beschikbaar zijn. Een lokale systeembeheerder of een
ISP heeft wellicht een NTP server voor dit doel opgezet. Het
is verstandig om documentatie te raadplegen en te bekijken of
dat het geval is. Er is een online
lijst van publiek toegankelijke NTP servers waarop een
NTP server gezocht kan worden die in geografische zin dichtbij
een te synchroniseren computer ligt. Het is belangrijk te
voldoen aan het beleid voor de betreffende server en
toestemming te vragen als dat in de voorwaarden staat.Het is verstandig meerdere, niet van elkaar afhankelijke,
NTP servers te kiezen voor het geval een van de servers niet
langer betrouwbaar is of niet bereikbaar is. &man.ntpd.8;
gebruikt de antwoorden die van andere servers ontvangen worden
op intelligente wijze: betrouwbare servers krijgen voorrang
boven ontbetrouwbare servers.Machine instellenNTPinstellenBasisinstellingenntpdateAls het alleen de bedoeling is de tijd te synchroniseren
bij het opstarten van een machine, dan kan &man.ntpdate.8;
gebruikt worden. Dit kan van toepassing zijn op desktops
die regelmatig herstart worden en niet echt regelmatig
gesynchroniseerd hoeven te worden. Op sommige machines hoort
echter &man.ntpd.8; te draaien.Het gebruik van &man.ntpdate.8; bij het opstarten is ook
een goed idee voor machines waarop &man.ntpd.8; draait. De
&man.ntpd.8; wijzigt de tijd geleidelijk, terwijl
&man.ntpdate.8; gewoon de tijd instelt, hoe groot het
verschil tussen de bestaande tijd van een machine en de
correcte tijd ook is.Om &man.ntpdate.8; tijdens het opstarten in te schakelen
kan ntpdate_enable="YES" aan
/etc/rc.conf worden toegevoegd. Alle
voor de synchronisatie te gebruiken servers moeten dan,
samen met eventuele opties voor &man.ntpdate.8;, in
ntpdate_flags aangegeven worden.NTPntp.confAlgemene instellingenNTP wordt ingesteld met het bestand
/etc/ntp.conf in het formaat dat
beschreven staat in &man.ntp.conf.5;. Hieronder volgt een
eenvoudig voorbeeld:server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
driftfile /var/db/ntp.driftDe optie server geeft aan welke
servers er gebruikt moeten worden, met op elke regel een
server. Als de server wordt ingesteld met het argument
prefer, zoals bij ntplocal.example.com, dan krijgt die
server de voorkeur boven de andere. Een antwoord van een
voorkeursserver wordt genegeerd als dat significant afwijkt
van de antwoorden van de andere servers. In andere gevallen
wordt het gebruikt zonder rekening te houden met de andere
antwoorden. Het argument prefer wordt
meestal gebruikt voor NTP servers waarvan bekend is dat ze
erg betrouwbaar zijn, zoals die met speciale tijdbewaking
hardware.De optie driftfile geeft aan welk
bestand gebruikt wordt om de offset van de klokfrequentie van
het systeem op te slaan. &man.ntpd.8; gebruikt die om
automatisch te compenseren voor het natuurlijke afwijken van
de tijd, zodat er zelfs bij gebrek aan externe bronnen een
redelijke accurate tijdsinstelling mogelijk is.De optie driftfile geeft aan welk
bestand gebruikt wordt om informatie over eerdere
antwoorden van NTP servers die gebruikt worden op te slaan.
Dit bestand bevat interne informatie voor NTP. Het hoort
niet door andere processen gewijzigd te worden.Toegang tot een server instellenEen NTP server is standaard toegankelijk voor alle
hosts op een netwerk. De optie restrict
in /etc/ntp.conf maakt het mogelijk om
aan te geven welke machines de dienst mogen benaderen.Voor het blokkeren van toegang voor alle andere machines
kan de volgende regel aan /etc/ntp.conf
toegevoegd worden:restrict default ignoreOm alleen machines op bijvoorbeeld het locale netwerk toe
te staan hun tijd te synchroniseren met een server, maar
ze tegelijkertijd niet toe te staan om de server te draaien
of de server als referentie voor synchronisatie te gebruiken,
kan de volgende regel toegevoegd worden:restrict 192.168.1.0 mask 255.255.255.0 nomodify notrapHierboven is 192.168.1.0
een IP adres op een LAN en 255.255.255.0 is het bijbehorende
netwerkmasker./etc/ntp.conf mag meerdere regels
met restrict bevatten. Meer details staan
in het onderdeel Access Control Support
van &man.ntp.conf.5;.De NTP server draaienDe NTP server kan bij het opstarten gestart worden door de
regel ntpd_enable="YES" aan
/etc/rc.conf toe te voegen. Om extra
opties aan &man.ntpd.8; mee te geven kan de parameter
ntpd_flags in
/etc/rc.conf gebruikt worden.Om de server zonder een herstart van de machine te starten
kan ntpd uitgevoerd worden, met toevoeging
van de parameters uit ntpd_flags in
/etc/rc.conf. Bijvoorbeeld:&prompt.root; ntpd -p /var/run/ntpd.pidIn &os; 4.X, dienen de
ntpd uit het bovenstaande voorbeeld
vervangen te worden door xntpd.ntpd gebruiken met een tijdelijke
Internetverbinding&man.ntpd.8; heeft geen permanente verbinding met een
netwerk nodig om goed te werken. Maar als er gebruik gemaakt
wordt van een inbelverbinding, is het wellicht verstandig om
ervoor te zorgen dat uitgaande NTP verzoeken geen uitgaande
verbinding kunnen starten. Als er gebruik gemaakt wordt van
user PPP, kunnen er filter commando's
ingesteld worden in /etc/ppp/ppp.conf.
Bijboorbeeld:set filter dial 0 deny udp src eq 123
# NTP verkeer zorgt niet voor uitbellen
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Inkomend NTP verkeer houdt de verbinding niet open
set filter alive 1 deny udp dst eq 123
# Uitgaand NTP verkeer houdt de verbinding niet open
set filter alive 2 permit 0/0 0/0Meer details staan in de PACKET
FILTERING sectie in &man.ppp.8; en in de voorbeelden
in /usr/share/examples/ppp/.Sommige internet providers blokkeren lage poorten,
waardoor NTP niet kan werken omdat er nooit een antwoord
ontvangen kan worden door een machine.Meer informatieHTML documentatie voor de NTP server staat in
/usr/share/doc/ntp/.
diff --git a/nl_NL.ISO8859-1/books/handbook/pgpkeys/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
index 53025e1e31..baeb1fd507 100644
--- a/nl_NL.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
@@ -1,1036 +1,56 @@
-
PGP sleutelspgp sleutelsIn het geval een handtekening van een van de beambten of
ontwikkelaars gecontroleerd moet worden of er een versleutelde
e-mail aan ze gezonden moet worden, worden hier voor het gemak een
aantal sleutels weergegeven. Een complete sleutelring van FreeBSD.org gebruikers kan op de
volgende link gedownload worden: http://www.FreeBSD.org/doc/pgpkeyring.txt.Beambten
-
- &a.security-officer;
- &pgpkey.security-officer;
-
-
-
- &a.core-secretary;
- &pgpkey.core-secretary;
-
-
-
- &a.portmgr-secretary;
- &pgpkey.portmgr-secretary;
-
+ §ion.pgpkeys-officers;
Leden Kernteam
-
- &a.jhb;
- &pgpkey.jhb;
-
-
-
- &a.kuriyama;
- &pgpkey.kuriyama;
-
-
-
- &a.imp;
- &pgpkey.imp;
-
-
-
- &a.wes;
- &pgpkey.wes;
-
-
-
- &a.murray;
- &pgpkey.murray;
-
-
-
- &a.peter;
- &pgpkey.peter;
-
+ §ion.pgpkeys-core;
Ontwikkelaars
-
- &a.ariff;
- &pgpkey.ariff;
-
-
-
- &a.will;
- &pgpkey.will;
-
-
-
- &a.anholt;
- &pgpkey.anholt;
-
-
-
- &a.mat;
- &pgpkey.mat;
-
-
-
- &a.asami;
- &pgpkey.asami;
-
-
-
- &a.barner;
- &pgpkey.barner;
-
-
-
- &a.dougb;
- &pgpkey.dougb;
-
-
-
- &a.bvs;
- &pgpkey.bvs;
-
-
-
- &a.tobez;
- &pgpkey.tobez;
-
-
-
- &a.damien;
- &pgpkey.damien;
-
-
-
- &a.tdb;
- &pgpkey.tdb;
-
-
-
- &a.mbr;
- &pgpkey.mbr;
-
-
-
- &a.novel;
- &pgpkey.novel;
-
-
-
- &a.harti;
- &pgpkey.harti;
-
-
-
- &a.obraun;
- &pgpkey.obraun;
-
-
-
- &a.jmb;
- &pgpkey.jmb;
-
-
-
- &a.brueffer;
- &pgpkey.brueffer;
-
-
-
- &a.markus;
- &pgpkey.markus;
-
-
-
- &a.wilko;
- &pgpkey.wilko;
-
-
-
- &a.oleg;
- &pgpkey.oleg;
-
-
-
- &a.jcamou;
- &pgpkey.jcamou;
-
-
-
- &a.perky;
- &pgpkey.perky;
-
-
-
- &a.jon;
- &pgpkey.jon;
-
-
-
- &a.luoqi;
- &pgpkey.luoqi;
-
-
-
- &a.ache;
- &pgpkey.ache;
-
-
-
- &a.seanc;
- &pgpkey.seanc;
-
-
-
- &a.cjh;
- &pgpkey.cjh;
-
-
-
- &a.cjc;
- &pgpkey.cjc;
-
-
-
- &a.marcus;
- &pgpkey.marcus;
-
-
-
- &a.nik;
- &pgpkey.nik;
-
-
-
- &a.aaron;
- &pgpkey.aaron;
-
-
-
- &a.ceri;
- &pgpkey.ceri;
-
-
-
- &a.brd;
- &pgpkey.brd;
-
-
-
- &a.brooks;
- &pgpkey.brooks;
-
-
-
- &a.gnn;
- &pgpkey.gnn;
-
-
-
- &a.pjd;
- &pgpkey.pjd;
-
-
-
- &a.bsd;
- &pgpkey.bsd;
-
-
-
- &a.danfe;
- &pgpkey.danfe;
-
-
-
- &a.dd;
- &pgpkey.dd;
-
-
-
- &a.bruno;
- &pgpkey.bruno;
-
-
-
- &a.ale;
- &pgpkey.ale;
-
-
-
- &a.peadar;
- &pgpkey.peadar;
-
-
-
- &a.josef;
- &pgpkey.josef;
-
-
-
- &a.ue;
- &pgpkey.ue;
-
-
-
- &a.ru;
- &pgpkey.ru;
-
-
-
- &a.le;
- &pgpkey.le;
-
-
-
- &a.stefanf;
- &pgpkey.stefanf;
-
-
-
- &a.jedgar;
- &pgpkey.jedgar;
-
-
-
- &a.green;
- &pgpkey.green;
-
-
-
- &a.lioux;
- &pgpkey.lioux;
-
-
-
- &a.fanf;
- &pgpkey.fanf;
-
-
-
- &a.blackend;
- &pgpkey.blackend;
-
-
-
- &a.petef;
- &pgpkey.petef;
-
-
-
- &a.billf;
- &pgpkey.billf;
-
-
-
- &a.gioria;
- &pgpkey.gioria;
-
-
-
- &a.mnag;
- &pgpkey.mnag;
-
-
-
- &a.jmg;
- &pgpkey.jmg;
-
-
-
- &a.dannyboy;
- &pgpkey.dannyboy;
-
-
-
- &a.dhartmei;
- &pgpkey.dhartmei;
-
-
-
- &a.jhay;
- &pgpkey.jhay;
-
-
-
- &a.sheldonh;
- &pgpkey.sheldonh;
-
-
-
- &a.mikeh;
- &pgpkey.mikeh;
-
-
-
- &a.mheinen;
- &pgpkey.mheinen;
-
-
-
- &a.niels;
- &pgpkey.niels;
-
-
-
- &a.ghelmer;
- &pgpkey.ghelmer;
-
-
-
- &a.mux;
- &pgpkey.mux;
-
-
-
- &a.mich;
- &pgpkey.mich;
-
-
-
- &a.foxfair;
- &pgpkey.foxfair;
-
-
-
- &a.jkh;
- &pgpkey.jkh;
-
-
-
- &a.ahze;
- &pgpkey.ahze;
-
-
-
- &a.trevor;
- &pgpkey.trevor;
-
-
-
- &a.phk;
- &pgpkey.phk;
-
-
-
- &a.joe;
- &pgpkey.joe;
-
-
-
- &a.vkashyap;
- &pgpkey.vkashyap;
-
-
-
- &a.kris;
- &pgpkey.kris;
-
-
-
- &a.keramida;
- &pgpkey.keramida;
-
-
-
- &a.fjoe;
- &pgpkey.fjoe;
-
-
-
- &a.jkim;
- &pgpkey.jkim;
-
-
-
- &a.andreas;
- &pgpkey.andreas;
-
-
-
- &a.jkois;
- &pgpkey.jkois;
-
-
-
- &a.sergei;
- &pgpkey.sergei;
-
-
-
- &a.maxim;
- &pgpkey.maxim;
-
-
-
- &a.jkoshy;
- &pgpkey.jkoshy;
-
-
-
- &a.rik;
- &pgpkey.rik;
-
-
-
- &a.rushani;
- &pgpkey.rushani;
-
-
-
- &a.clement;
- &pgpkey.clement;
-
-
-
- &a.mlaier;
- &pgpkey.mlaier;
-
-
-
- &a.erwin;
- &pgpkey.erwin;
-
-
-
- &a.lawrance;
- &pgpkey.lawrance;
-
-
-
- &a.leeym;
- &pgpkey.leeym;
-
-
-
- &a.sam;
- &pgpkey.sam;
-
-
-
- &a.jylefort;
- &pgpkey.jylefort;
-
-
-
- &a.netchild;
- &pgpkey.netchild;
-
-
-
- &a.lesi;
- &pgpkey.lesi;
-
-
-
- &a.glewis;
- &pgpkey.glewis;
-
-
-
- &a.delphij;
- &pgpkey.delphij;
-
-
-
- &a.avatar;
- &pgpkey.avatar;
-
-
-
- &a.ijliao;
- &pgpkey.ijliao;
-
-
-
- &a.clive;
- &pgpkey.clive;
-
-
-
- &a.clsung;
- &pgpkey.clsung;
-
-
-
- &a.arved;
- &pgpkey.arved;
-
-
-
- &a.remko;
- &pgpkey.remko;
-
-
-
- &a.scottl;
- &pgpkey.scottl;
-
-
-
- &a.pav;
- &pgpkey.pav;
-
-
-
- &a.bmah;
- &pgpkey.bmah;
-
-
-
- &a.mtm;
- &pgpkey.mtm;
-
-
-
- &a.dwmalone;
- &pgpkey.dwmalone;
-
-
-
- &a.sem;
- &pgpkey.sem;
-
-
-
- &a.ehaupt;
- &pgpkey.ehaupt;
-
-
-
- &a.kwm;
- &pgpkey.kwm;
-
-
-
- &a.matusita;
- &pgpkey.matusita;
-
-
-
- &a.tmclaugh;
- &pgpkey.tmclaugh;
-
-
-
- &a.ken;
- &pgpkey.ken;
-
-
-
- &a.dinoex;
- &pgpkey.dinoex;
-
-
-
- &a.sanpei;
- &pgpkey.sanpei;
-
-
-
- &a.marcel;
- &pgpkey.marcel;
-
-
-
- &a.marck;
- &pgpkey.marck;
-
-
-
- &a.tmm;
- &pgpkey.tmm;
-
-
-
- &a.rich;
- &pgpkey.rich;
-
-
-
- &a.knu;
- &pgpkey.knu;
-
-
-
- &a.max;
- &pgpkey.max;
-
-
-
- &a.yoichi;
- &pgpkey.yoichi;
-
-
-
- &a.bland;
- &pgpkey.bland;
-
-
-
- &a.simon;
- &pgpkey.simon;
-
-
-
- &a.anders;
- &pgpkey.anders;
-
-
-
- &a.obrien;
- &pgpkey.obrien;
-
-
-
- &a.philip;
- &pgpkey.philip;
-
-
-
- &a.hmp;
- &pgpkey.hmp;
-
-
-
- &a.mp;
- &pgpkey.mp;
-
-
-
- &a.roam;
- &pgpkey.roam;
-
-
-
- &a.den;
- &pgpkey.den;
-
-
-
- &a.gerald;
- &pgpkey.gerald;
-
-
-
- &a.jdp;
- &pgpkey.jdp;
-
-
-
- &a.krion;
- &pgpkey.krion;
-
-
-
- &a.markp;
- &pgpkey.markp;
-
-
-
- &a.thomas;
- &pgpkey.thomas;
-
-
-
- &a.hq;
- &pgpkey.hq;
-
-
-
- &a.dfr;
- &pgpkey.dfr;
-
-
-
- &a.rees;
- &pgpkey.rees;
-
-
-
- &a.trhodes;
- &pgpkey.trhodes;
-
-
-
- &a.benno;
- &pgpkey.benno;
-
-
-
- &a.roberto;
- &pgpkey.roberto;
-
-
-
- &a.rodrigc;
- &pgpkey.rodrigc;
-
-
-
- &a.guido;
- &pgpkey.guido;
-
-
-
- &a.niklas;
- &pgpkey.niklas;
-
-
-
- &a.marks;
- &pgpkey.marks;
-
-
-
- &a.hrs;
- &pgpkey.hrs;
-
-
-
- &a.wosch;
- &pgpkey.wosch;
-
-
-
- &a.das;
- &pgpkey.das;
-
-
-
- &a.schweikh;
- &pgpkey.schweikh;
-
-
-
- &a.gshapiro;
- &pgpkey.gshapiro;
-
-
-
- &a.arun;
- &pgpkey.arun;
-
-
-
- &a.nork;
- &pgpkey.nork;
-
-
-
- &a.vanilla;
- &pgpkey.vanilla;
-
-
-
- &a.demon;
- &pgpkey.demon;
-
-
-
- &a.jesper;
- &pgpkey.jesper;
-
-
-
- &a.scop;
- &pgpkey.scop;
-
-
-
- &a.anray;
- &pgpkey.anray;
-
-
-
- &a.glebius;
- &pgpkey.glebius;
-
-
-
- &a.kensmith;
- &pgpkey.kensmith;
-
-
-
- &a.ben;
- &pgpkey.ben;
-
-
-
- &a.des;
- &pgpkey.des;
-
-
-
- &a.sobomax;
- &pgpkey.sobomax;
-
-
-
- &a.brian;
- &pgpkey.brian;
-
-
-
- &a.nsouch;
- &pgpkey.nsouch;
-
-
-
- &a.ssouhlal;
- &pgpkey.ssouhlal;
-
-
-
- &a.vsevolod;
- &pgpkey.vsevolod;
-
-
-
- &a.vs;
- &pgpkey.vs;
-
-
-
- &a.gsutter;
- &pgpkey.gsutter;
-
-
-
- &a.metal;
- &pgpkey.metal;
-
-
-
- &a.garys;
- &pgpkey.garys;
-
-
-
- &a.nyan;
- &pgpkey.nyan;
-
-
-
- &a.mi;
- &pgpkey.mi;
-
-
-
- &a.gordon;
- &pgpkey.gordon;
-
-
-
- &a.lth;
- &pgpkey.lth;
-
-
-
- &a.thierry;
- &pgpkey.thierry;
-
-
-
- &a.thompsa;
- &pgpkey.thompsa;
-
-
-
- &a.flz;
- &pgpkey.flz;
-
-
-
- &a.ume;
- &pgpkey.ume;
-
-
-
- &a.ups;
- &pgpkey.ups;
-
-
-
- &a.nectar;
- &pgpkey.nectar;
-
-
-
- &a.adamw;
- &pgpkey.adamw;
-
-
-
- &a.nate;
- &pgpkey.nate;
-
-
-
- &a.wollman;
- &pgpkey.wollman;
-
-
-
- &a.joerg;
- &pgpkey.joerg;
-
-
-
- &a.emax;
- &pgpkey.emax;
-
-
-
- &a.bz;
- &pgpkey.bz;
-
-
-
- &a.phantom;
- &pgpkey.phantom;
-
+ §ion.pgpkeys-developers;
diff --git a/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml
index 4ed08f95cf..20febe824d 100644
--- a/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/ports/chapter.sgml
@@ -1,1471 +1,1493 @@
ReneKetelaarsVertaald door SiebrandMazelandApplicaties installeren: packages en portsOverzichtportspackages&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 softwareinstallatieAls 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 packagesEen 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 portsPackages 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 zoekenVoordat 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.FreshPortsDan 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.FreshMeatAls 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/lsofDit 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.ChernLeeBijgedragen door Het packagessysteem gebruikenPackages installerenpackagesinstallerenpkg_addMet &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.tgzAls 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 lsofHet 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 beherenpackagesbeheren&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.SymboolBetekenis=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 verwijderenpkg_deletepackagesdeletingVoor het verwijderen van een geïnstalleerd package
wordt het hulpprogramma &man.pkg.delete.1; gebruikt.&prompt.root; pkg_delete xchat-1.7.1DiversenAlle 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 gebruikenIn de volgende paragrafen worden basisinstructies gegeven
over het gebruik van de Portscollectie om programma's op een
- systeem te installeren of ervan te verwijderen.
+ systeem te installeren of ervan te verwijderen. Een
+ gedetailleerde beschrijving van de make-doelen
+ en omgevingsvariabelen staat in &man.ports.7;.
De PortscollectieVoordat 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 sysinstall
-
- Bij deze methode wordt
- sysinstall weer gebruikt om de
- Portscollectie te installeren.
-
-
- sysinstall
- (/stand/sysinstall in &os; versies
- ouder dan 5.2) dient als
- root uitgevoerd te worden:
-
- >&prompt.root; sysinstall
-
-
-
- Selecteer onderaan
- Configure en druk op
- Enter;
-
-
-
- Selecteer onderaan
- Distributions en druk op
- Enter;
-
-
-
- Selecteer ports en druk op
- Space;
-
-
-
- Selecteer bovenaan Exit en
- druk op Enter;
-
-
-
- Selecteer het gewenste installatiemedium, zoals cd-rom,
- FTP, enzovoort;
-
-
-
- Selecteer bovenaan Exit en
- druk op Enter;
-
-
-
- Druk op X om
- sysinstall te verlaten.
-
-
-
- De alternatieve methode om de Portscollectie te installeren
- en bij te werken maakt gebruik van
- CVSup. Zie hiervoor het bestand
- /usr/share/examples/cvsup/ports-supfile
- uit de port CVSup. In dat bestand
- en CVSup gebruiken
- () staat meer informatie over het gebruik
- van CVSup.
-
Met CVSup
- Dit is een snelle methode om de Portscollectie te
- installeren met behulp van CVSup.
- Meer informatie over CVSup of over
- het bijgewerkt houden van de Portscollectie staat in de eerder
- genoemde paragraaf.
+ 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-guiMeer details staan in CVSup Installatie ();Draai cvsup:&prompt.root; cvsup -L 2 -h cvsup.FreeBSD.org /usr/share/examples/cvsup/ports-supfileWijzig 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-supfileAls 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 installerenportsinstallerenHet 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;.
-
- Ports vanaf cd-rom installeren
-
-
- ports
-
- installeren vanaf cd-rom
-
+ 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.
- De officiële &os; Project cd-rom images bevatten
- geen distfiles meer. Die kostten veel ruimte die beter
- gevuld kon worden met voorgecompileerde packages. cd-rom
- producten als het &os; PowerPak bevatten wel distfiles en
- deze kunnen besteld worden bij een verkoper als de &os; Mall. In
- deze paragraaf wordt aangenomen dat er een &os; cd-rom set
- aanwezig is.
+ Ga om te beginnen naar de juiste map voor een port:
- De &os; cd-rom dient in de drive te zitten en gemount te
- worden op /cdrom. Als er een ander
- mountpunt wordt gebruikt, dient de make
- variable CD_MOUNTPTS te worden ingesteld.
- Om te beginnen dient de juiste map voor een port aangegeven
- te worden:
+ &prompt.root; cd /usr/ports/sysutils/lsof
- &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:
- 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
+ &prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
->> Attempting to fetch from file:/cdrom/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:
+ 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
+ &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 mogelijk een stap minder te gebruiken door
- make install uit te voeren in plaats van
- make en make install
- als twee 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. Voor shells als
- sh of shells/bash dient
- hash -r gebruikt te worden. In de
- documentatie van een shell staat meer informatie.
-
-
-
- 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. Dit staat in de
- volgende paragraaf
- beschreven.
-
-
-
-
- Ports vanaf Internet installeren
+ 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;
- Net als in de vorige paragraaf wordt hier aangenomen dat
- er voor een systeem een werkende internetverbinding is. Als
- die er niet is, dient de cd-rom installatie gevolgd te
- worden of moet met de hand de distfile in
- /usr/ports/distfiles gezet
- worden.
+
+ 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.
+
- Het installeren van een ports vanaf internet gaat op
- precies dezelfde manier als de installatie vanaf cd-rom. Het
- enige verschil is dat de distfile van internet komt in plaats
- vanaf de cd-rom.
+
+ 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 shhash
+ -r. In de documentatie van een shell staat meer
+ informatie.
+
- Het stappenplan is ook hetzelfde:
+ 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.
- &prompt.root; make install
->> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
->> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
-Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
-439860 bytes transferred in 18.0 seconds (23.90 kBps)
-===> 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]
-...
-===> Installing for lsof-4.57
-...
-[uitvoer van 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;
+
+ 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 enige verschil is de regel die aangeeft waar de
- distfile wordt opgehaald.
-
- 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 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.
-
+
+ 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:
+ 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; 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/.
+ 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.
-
-
+
+ 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 wijzigenSoms 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 installHet voorbeeld hierboven compileert de port in
/usr/home/example/ports en installeert
alles in /usr/local.&prompt.root; make PREFIX=/usr/home/example/local installHet voorbeeld hierboven compileert in
/usr/ports en installeert in
/usr/home/example/local.&prompt.root; make PORTSDIR=../ports PREFIX=../local installHet 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 imakeEr 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 verwijderenportsverwijderenIn 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). Net als bij het
- installeren van ports, moet eerst naar de juiste map gegaan
- worden (/usr/ports/sysutils/lsof). Daarna
- kan lsof verwijderd worden. Dit gaat met
- het commando make deinstall:
-
- &prompt.root; cd /usr/ports/sysutils/lsof
-&prompt.root; make deinstall
-===> Deinstalling for lsof-4.57
-
- Erg makkelijk dus. Nu is lsof van een
- systeem verwijderd. Om het opnieuw te installeren kan vanuit
- de map /usr/ports/sysutils/lsof
- make reinstall uitgevoerd worden.
-
- Het uitvoeren van make deinstall en
- make reinstall werkt niet als ooit
- make clean voor die port is uitgevoerd. Om
- een port te verwijderen na het cleanen van die port kan
- &man.pkg.delete.1; gebruikt worden, zoals wordt toegelicht in
- de paragraaf Het Packagessysteem
- Gebruiken.
-
-
-
- Ports en schijfruimte
-
-
- ports
+ 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):
- schijfruimte
-
-
- Werken met de Portscollectie kan in de loop der tijd veel
- schijfruimte gebruiken. Omdat de portsstructuur de neiging
- heeft in de loop der tijd in grootte te groeien, na het bouwen
- en installeren van software uit de ports, is het van belang
- altijd de tijdelijke werkmappen work op te ruimen met het
- commando make clean.
- Hiermee wordt de map work verwijderd nadat
- een port is gebouwd en geïnstalleerd. Daarnaast kunnen
- ook de distfiles met de broncode verwijderd worden uit de map
- distfiles en
- kunnen ports die niet meer gebruikt worden verwijderd
- worden.
-
- Sommige gebruikers kiezen ervoor om de beschikbare port
- categorieën te beperken met instellingen in het bestand
- refuse. Zo kan bij het draaien van de
- applicatie CVSup voorkomen worden
- dat bestanden in een categorie worden gedownload. Meer
- informatie over refuse staat in .
+ &prompt.root; pkg_delete lsof-4.57Ports bijwerken
- portupgrade
-
portsbijwerken
+ 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.
- Het bijwerken van ports kan een vervelend klusje zijn. Om
- bijvoorbeeld een port bij te werken is het nodig om naar de
- juiste portsmap te gaan, de port te bouwen, de oude port te
- verwijderen, de nieuwe port te installeren en daarna de werkmap
- op te ruimen. Het is voorstelbaar dat dit voor bijvoorbeeld
- vijf ports een vervelend klusje is. Dit was een groot probleem
- voor systeembeheerders, dus zijn daar hulpprogramma's voor
- gemaakt. Zo voert het hulpprogramma sysutils/portupgrade het complete
- hiervoor beschreven proces uit! Die port is gewoon als iedere
- andere port te installeren met make install
- clean.
-
- Nu kan er een database gemaakt worden met het commando
- pkgdb -F. Hiermee wordt de lijst van
- geïnstalleerde ports gelezen en wordt een databasebestand
- gemaakt in de map /var/db/pkg. Als daarna
- portupgrade -a wordt uitgevoerd, wordt
- die database gelezen en het bestand INDEX
- van de ports. Tenslotte begint
- portupgrade met het downloaden,
- bouwen, back-uppen, installeren en opschonen van de ports die
- zijn bijgewerkt. portupgrade kent
- veel opties voor verschillend gebruik. De meest belangrijke
- worden hieronder besproken.
-
- Om een specifieke applicatie bij te werken en niet de hele
- database, kan portupgrade
- pkgname gebruikt worden.
- De vlag kan gebruikt worden om
- portupgrade ook te draaien voor alle
- packages waar het opgegeven package van afhankelijk is en
- de optie zorgt ervoor dat het wordt
- gedraaid voor alle packages die van het opgegeven package
- afhankelijk zijn.
-
- Om bij installatie van packages in plaats van ports gebruik
- te maken kan gebruikt worden. Met deze
- optie zoekt portupgrade in de
- lokale mappen uit PKG_PATH of haalt de packages
- van via het netwerk op als het lokaal niet wordt 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 .
-
- 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 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
+ 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 is van belang om regelmatig de packagedatabase bij
- te werken met pkgdb -F om
- inconsistenties de repareren, in het bijzonder als
- portupgrade daar om vraagt. Als
- portupgrade tijdens het bijwerken
- van de packagedatabase wordt onderbroken levert dat een
- inconsistente database op.
+ Het hulpprogramma portsclean is
+ onderdeel van de suite
+ portupgrade.
- Er bestaan ook andere hulpprogramma's die de besproken
- taken uit kunnen voeren. Deze zijn te vinden in de map
- ports/sysutils.
+ Vergeet niet ports die niet langer gebruikt worden te
+ verwijderen. Een handig hulpmiddel hiervoor kan de port
+ sysutils/pkg_cutleaves
+ zijn.Activiteiten na het installerenNa 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 | lessBestanden 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 foopackageHiermee 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.0Als 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 portsAls 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
eerstin 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 27225bbc05..8278595150 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 @@
MatthewDillonVeel uit dit hoofdstuk is overgenomen uit de
security(7) handboekpagina van SiebrandMazelandVertaald door BeveiligingbeveiligingOverzichtDit 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 .IntroductieBeveiliging 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 aanvallenOntzegging van Dienst (DoS)beveiligingOntzegging 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.beveiligingaccount compromitteringEen 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.beveiligingachterdeurenSysteembeheerders 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; beveiligenbeveiliging&os; beveiligenCommando vs. protocolIn 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 root en
medewerkersaccounts.suOm 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.wheelNatuurlijk 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/tcshZou veranderd moeten worden naar:foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcshDoor 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.KerberosIVHet 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 root – servers
onder root en suid/sgid binaire
bestandenntalkcomsatfingerzandbakkensshdtelnetdrshdrlogindEen 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.sendmailEr 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 gebruikersaccountsGebruikersaccounts 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 wachtwoordbestandDe 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
bestandssystemenAls 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.sysctlMaar 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, enzovoortAls 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.ParanoiaEen 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 aanvallenOntzegging 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.portrangesysctls (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 rtmaxcachesysctl 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
Kerberos en
SSHsshKerberosIVEr 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.BillSwingleDelen geschreven en herschreven door SiebrandMazelandVertaald door DES, MD5 en cryptbeveiligingcryptcryptDESMD5Iedere 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 herkennenVoor &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
aanmeldinstellingen.Eenmalige wachtwoordeneenmalige wachtwoordenbeveiligingeenmalige wachtwoordenS/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 initialiserenOm 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 SOFTBij 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 COEDAls 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 initialiserenOm 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 GOREBij 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 TROYOm 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 GOREOf 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 CHATIn de onveilige verbinding wordt nu het eenmalige
wachtwoord in het relevante programma
gekopieerd.Een enkel eenmalig wachtwoord makenAls 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-DOSWindowsMacOSNu 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 HAAGBij 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 CHATNu 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 makenSoms 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 BILKOf 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 PHIMet 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 beperkenS/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
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 ttyd0In 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.0In 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.TomRhodesGeschreven door SiebrandMazelandVertaald door TCP WrapperTCP wrappersIedereen 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 instellenDe 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 : allowNadat 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 instellingenTCP 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'sStel 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) \
: denyHiermee 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
lijst.Wildcard optiesTot 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 : denyIn 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
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.MarkMurrayBijgedragen door MarkDapozGebaseerd op een bijdrage van SiebrandMazelandVertaald door KerberosIVKerberos 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.KerberosIV installerenMITKerberosIVinstallerenKerberos 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 databaseDit 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.realmsAls 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.govIn 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
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.EDUNogmaals: 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_initRealm 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; kstashEnter 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 praatKerberosIVeerste keer startenVoor 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:passwdInstance: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:rcmdInstance: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 exitAanmaken van het serverbestandNu 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 gruntEnter 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 srvtabAls 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 srvtabDe database vullenNu 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:janeInstance:
<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 exitAlles testenEerst 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.COMNu 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.su rechten toewijzenKerberos 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:janeInstance: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 exitEen 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.COMNa een &man.su.1;:&prompt.user; suPassword: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.COMAndere commando's gebruikenIn 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.COMZo 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.COMHierdoor 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 1995Of 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 1995TillmanHodgsonBijgedragen door MarkMurrayGebaseerd op een bijdrage van SiebrandMazelandVertaald door Kerberos5Iedere &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.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.GeschiedenisKerberos5geschiedenisKerberos 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 KDCKerberos5sleutel distributie centrum instellingenHet 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.ORGDoor 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.ORGOm clients de Kerberos
diensten te kunnen laten vinden, moet
er een volledig ingestelde
/etc/krb5.conf zijn of een minimaal
ingestelde /etc/krb5.confen 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: xxxxxxxxNu 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.ORGKerberos inschakelen op een
server met Heimdal dienstenKerberos5diensten inschakelenAls 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> exitLet 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> exitHierna 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 userHet belangrijkste is dat de typering
-a (van authenticatie) op user staat. Meer
details zijn in &man.telnetd.8; te vinden.Kerberos activeren op een
client met HeimdalKerberos5clientinstellingenHet 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:
.k5login en
.k5users.k5login.k5usersVoor 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.orgin 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
.k5users behandelt.Kerberos tips, trucs en
problemen oplossenKerberos5problemen oplossenAls 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
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 MIT portHet 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
KerberosKerberos5beperkingen en tekortkomingenKerberos is een alles of
niets aanpakIedere 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.Kerberos is bedoeld voor
werkstations met een gebruikerIn 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 failureZoals 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
KerberosKerberos 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 informatieKerberos5externe 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
homepageHeimdal
Kerberos homepageTomRhodesGeschreven door SiebrandMazelandVertaald door OpenSSLbeveiligingOpenSSLOpenSSLEen 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 makenOpenSSLcertificaten makenVoor 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 NameLet 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
&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 1024Hierna kan de CA sleutel gemaakt
worden:&prompt.root; openssl gendsa -des3 -out myca.keymyRSA.keyDeze sleutel kan gebruikt worden om een certificaat te
maken:&prompt.root; openssl req -new -x509 -days 365 -key myca.key -out new.crtEr 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 voorbeeldEn 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 makerestart 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.NikClaytonnik@FreeBSD.orgGerschreven door SiebrandMazelandVertaald door IPsecVPN via IPsecEen VPN opzetten met &os; gateways tussen twee netwerken die
gescheiden zijn door internet.Hiten M.Pandyahmp@FreeBSD.orgGeschreven door SiebrandMazelandVertaald door IPsec begrijpenDeze 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:kerneloptiesFAST_IPSECoptions 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.IPsecESPIPsecAHIPsec 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.VPNvirtual private networkVPNvirtueel privaat netwerkVPNIPsec 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:kerneloptiesIPSECkerneloptiesIPSEC_ESPoptions IPSEC #IP security
options IPSEC_ESP #IP security (crypto; define w/ IPSEC)kerneloptiesIPSEC_DEBUGAls er ook fouten in IPsec (debugging) verwijderd moeten
kunnen worden, dan is de volgende optie ook nodig:options IPSEC_DEBUG #debug for IP securityHet probleemEr 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 zijnVPNmakenDit is het uitgangspunt:Er zijn tenminste twee locatiesBeide locaties gebruiken IPBeide 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.34uitgevoerd 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 virtuele netwerkverbinding
maken en testenStel 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 gifHet 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 0xffffffffOp 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 0xffffffffDaarna toont:gifconfig gif0de 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.ZEr 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 metipfw add 1 allow ip from any to any via gif0al 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.1gedraaid 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 0xffffff00Dit 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.1Voer vanuit een andere sessie op de host het onderstaande
commando uit:ping 192.168.2.1De 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 replyHet 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 gif0Maak gelijksoortige wijzigingen in
/etc/rc.conf op gateway host #2 en
draai de volgorde van de IP adressen
om.Stap 2: de verbinding beveiligenOm 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 optionsIPSECoptions IPSEC
options IPSEC_ESPDaarna dienen hercompilatie en installatie van de kernel
plaats te vinden en moet de machine gereboot worden. Dit
moet voor beide gateway hosts uitgevoerd worden.IKEHet 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.IPsecsecurity policiessetkeyVoor 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.racoonRacoon 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 secretEr 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 secretDus 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 isakmpAls 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 -DHet 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.DOmdat 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.1In nog een sessie op dezelfde host kan dan het volgende
commando uitgevoerd worden:ping 192.168.2.1Nu 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.SamenvattingStel beide kernels in met:options IPSEC
options IPSEC_ESPInstalleer 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.DDe 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.ChernLeeBijgedragen door SiebrandMazelandVertaald door OpenSSHOpenSSHbeveiligingOpenSSHOpenSSH 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 OpenSSHAls 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.sshd inschakelenOpenSSHinschakelenDe 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 clientOpenSSHclient&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ërenOpenSSHveilig kopiërenscpHet 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
.InstellenOpenSSHinstellenHet 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-keygenIn 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
&man.ssh-keygen.1; te raadplegen.ssh-agent en ssh-addDe 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 startxfce4Hiermee 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 tunnelsOpenSSHtunnelsOpenSSH 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 23telnet 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 ESMTPDit 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 tunnelVeilige toegang tot een POP3 serverOp 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 omzeilenSommige 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 AllowUsersVaak 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.32Om de gebruiker admin het recht te
geven zich van overal aan te melden hoeft alleen de
gebruikersnaam vermeld te worden:AllowUsers adminMeerdere gebruikers met rechten of beperkingen horen op
dezelfde regel te staan:AllowUsers root@192.168.1.32 adminHet 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 reloadMeer informatieOpenSSH&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;TomRhodesBijgedragen door SiebrandMazelandVertaald door ACLBestandssysteem toegangscontrolelijstenIn 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_ACLAls 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_htmlHierboven is te zien dat mappen
directory1, directory2
en directory3 allemaal gebruik maken van
ACLs. De map public_html
doet dat niet.Gebruik maken van ACLsDe 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 testDe 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::--- testBij 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.TomRhodesGeschreven door PortauditMonitoren van beveiligingsproblemen met andere
softwareIn 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
+ &prompt.root; cd /usr/ports/security/portaudit && make install cleanTijdens 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 -FDe 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 -aHieronder 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.TomRhodesBijgedragen door SiebrandMazelandVertaald door &os; Beveiligingswaarschuwingen&os; beveiligingswaarschuwingenNet 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. ReferencesHet 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.TomRhodesGeschreven door ProcesaccountingProcesaccountingProcesaccounting 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 gebruikenVoordat 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.confEenmaal 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 ttyp1Het 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;.
diff --git a/nl_NL.ISO8859-1/books/handbook/serialcomms/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/serialcomms/chapter.sgml
index fa5743fcfb..2646745bd7 100644
--- a/nl_NL.ISO8859-1/books/handbook/serialcomms/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/serialcomms/chapter.sgml
@@ -1,3331 +1,3330 @@
RenéLadanVertaald door Seriële communicatieOverzichtseriële communicatie&unix; heeft altijd ondersteuning geboden voor seriële
communicatie. Het is een feit dat de allereerste &unix;-machines
afhankelijk waren van seriële kabels voor gebruikersinvoer
en -uitvoer. De dingen zijn flink veranderd sinds de tijd dat de
gemiddelde terminal uit een 10-tekens-per-seconde
seriële printer en een toetsenbord bestond. Dit hoofdstuk
beschrijft enkele manieren waarop &os; gebruik maakt van
seriële communicatie.Na het lezen van dit hoofdstuk weet de lezer:Hoe terminals met een &os;-systeem te verbinden;Hoe een modem te gebruiken om naar computers op afstand
te bellen;Hoe het mogelijk te maken voor gebruikers op afstand om
met een modem op een systeem aan te melden;Hoe een systeem van een seriële console op te
starten.Veronderstelde voorkennis:Weten hoe een nieuwe kernel ingesteld en
geïnstalleerd wordt ();Begrijpen hoe rechten en processen in &unix; werken (
);De beschikking hebben over het technische handboek voor
de hardware (modem of meerpoortige kaart) die gebruikt wordt
met &os;.InleidingTerminologiebits per secondebpsBits per seconde: de snelheid waarmee gegevens
verstuurd wordenDTEDTEData Terminal Equipment (apparatuur voor
gegevensterminal): bijvoorbeeld een computerDCEDCEData Communications Equipment (apparatuur voor
gegevenscommunicatie): een modemRS-232RS-232C-kabelsEIA standaard voor hardwarematige seriële
communicatieDeze sectie gebruikt niet de term baud
als er over snelheden van gegevenscommunicatie gesproken wordt.
Baud verwijst naar het aantal elektrische toestandsovergangen
dat binnen een tijdsperiode gemaakt mag worden,
bps (bits per seconde) is de
correcte term om te gebruiken (de oude
mopperkonten schijnen zich er niet erg druk over te
maken).Kabels en poortenOm een modem of terminal met een &os;-systeem te verbinden,
dienen een seriële poort op een computer en een kabel om
verbinding te maken met een serieel apparaat aanwezig te zijn.
Indien kennis over hardware en de benodigde kabel reeds
aanwezig is, kan deze sectie veilig worden overgeslagen.KabelsEr zijn verschillende soorten seriële kabels. De
twee meest voorkomende types in deze context zijn
nulmodem-kabels en standaard (rechte)
RS-232-kabels. De documentatie van de hardware beschrijft
het type kabel dat nodig is.Nulmodem-kabelsnulmodem-kabelEen nulmodem-kabel geeft sommige signalen, zoals
Aardesignaal recht door, maar kruist andere
signalen. Bijvoorbeeld, de
Verzonden Gegevens-pin aan de ene kant gaat
naar de Ontvangen Gegevens-pin aan de andere
kant.Een nulmodem-kabel voor het gebruik met terminals kan
ook zelf worden gemaakt (bijvoorbeeld voor
kwaliteitsdoeleinden). Deze tabel toont de RS-232C signalen en de
pinnummers op een DB-25-aansluiting. De standaard vereist
ook een Aardebescherming rechte lijn
van pin 1 naar pin 1, maar deze wordt vaak weggelaten.
Sommige terminals werken goed met slechts pin 2, 3 en 7,
terwijl andere instellingen eisen die afwijken van die in
de onderstaande voorbeelden.
Als een pin aan het ene eind verbonden is met een
pinnenpaar aan het andere eind, is dit meestal
geïmplementeerd met een korte draad tussen het
pinnenpaar in de stekker en een lange draad naar de
andere, enkele pin.Bovenstaande ontwerpen lijken het populairst. In een
andere variatie (uitgelegd in het boek RS-232
Made Easy) worden de volgende verbindingen
gemaakt: SG met SG, TD met RD, RTS en CTS met DCD, DTR met
DSR en vice-versa.Standaard RS-232C-kabelsRS-232C-kabelsEen standaard seriële kabel laat alle
RS-232C-signalen recht door. Dit betekent dat de
Verzonden Gegevens-pin aan de ene kant naar
de Verzonden Gegevens-pin aan de andere kant
gaat. Dit type kabel wordt gebruikt om een modem met een
&os;-systeem te verbinden en is ook geschikt voor sommige
terminals.PoortenSeriële poorten zijn apparaten die gebruikt worden
om gegevens te versturen tussen een &os; gastcomputer en een
terminal. Deze sectie beschrijft de bestaande soorten
poorten en hoe deze aangesproken worden in &os;.Soorten poortenEr bestaan verschillende soorten seriële poorten.
Controleer of een kabel past op de poorten van een terminal
en een &os;-systeem alvorens deze te kopen of te
maken.De meeste terminals hebben DB-25-poorten. PC's,
inclusief PC's die &os; draaien, hebben DB-25- of
DB-9-poorten. Indien een meerpoortige seriële kaart
voor een PC beschikbaar is, kan het zijn dat er RJ-12- of
RJ-45-poorten aanwezig zijn.In documentatie die bij hardware zit, staan
specificaties over het soort poort dat gebruikt wordt.
Vaak volstaat ook een visuele inspectie van een
poort.PoortnamenIn &os; wordt elke seriële poort benaderd door een
ingang in de map /dev. Er zijn twee
verschillende soorten ingangen:Inbelpoorten heten
/dev/ttydN
waarbij N het poortnummer
is, beginnend met nul. In het algemeen kunnen
inbelpoorten voor terminals gebruikt worden.
Inbelpoorten stellen de eis dat een seriële kabel
ervoor zorgt dat het data carrier detect (DCD) signaal
correct werkt.Uitbelpoorten heten
/dev/cuadN.
In het algemeen worden uitbelpoorten niet voor
terminals maar voor modems gebruikt. Gebruik een
uitbelpoort als een seriële kabel of terminal het
carrier detect-signaal niet ondersteunt.Uitbelpoorten heten
/dev/cuaaN
in &os; 5.X en ouder.Als er een terminal met de eerste seriële poort
(COM1 in &ms-dos;) verbonden is,
wordt /dev/ttyd0 gebruikt om naar de
terminal te verwijzen. Als een terminal op de tweede
seriële poort is aangesloten (ook bekend als
COM2), dient
/dev/ttyd1 gebruikt te worden,
enzovoort.Kernelinstellingen&os; ondersteunt standaard vier seriële poorten. In
de wereld van &ms-dos; staan ze bekend als
COM1, COM2,
COM3 en COM4.
&os; ondersteunt momenteel domme meerpoortige
seriële interfacekaarten, zoals de BocaBoard 1008 en 2016,
alsook intelligentere meerpoortige kaarten van fabrikanten als
Digiboard en Stallion Technologies. De kernel kijkt echter
alleen naar de standaard COM-poorten.Bekijk de boodschappen tijdens het opstarten van de kernel
om te zien of de kernel seriële poorten herkent of gebruik
het commando /sbin/dmesg om de
opstartboodschappen van de kernel te herhalen. Kijk in het
bijzonder naar boodschappen die met de tekens
sio beginnen.Gebruik het volgende commando om alleen de boodschappen
die het woord sio bevatten te zien:&prompt.root; /sbin/dmesg | grep 'sio'Voor bijvoorbeeld een systeem met vier seriële
poorten, zijn dit de opstartboodschappen van de kernel die
specifiek zijn voor de seriële poorten:sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
sio2 at 0x3e8-0x3ef irq 5 on isa
sio2: type 16550A
sio3 at 0x2e8-0x2ef irq 9 on isa
sio3: type 16550AAls een kernel niet alle seriële poorten herkent, dan
dient waarschijnlijk de kernel aangepast te worden in het
bestand /boot/device.hints. Het is ook
mogelijk regels uit te schakelen of volledig te verwijderen
voor apparaten die niet aanwezig zijn.Pas voor &os; 4.X het kernelinstellingenbestand aan.
Voor gedetailleerde informatie over het aanpassen van een
kernel, zie . De relevante
apparaatregels zijn de volgende:device sio0 at isa? port IO_COM1 irq 4
device sio1 at isa? port IO_COM2 irq 3
device sio2 at isa? port IO_COM3 irq 5
device sio3 at isa? port IO_COM4 irq 9Zie de hulppagina &man.sio.4; voor meer informatie over het
instellen van seriële poorten en meerpoortige kaarten.
Bij gebruik van een instellingenbestand dat eerder voor een
andere versie van &os; werd gebruikt is voorzichtigheid geboden
omdat de apparaatvlaggen en de syntaxis tussen de versies
veranderd zijn.port IO_COM1 is een substitutie voor
port 0x3f8, IO_COM2 is
0x2f8, IO_COM3 is
0x3e8 en IO_COM4 is
0x2e8, welke redelijk algemene
poortadressen zijn voor hun overeenkomstige seriële
poorten. Interrupts 4, 3, 5 en 9 zijn redelijk algemene
interruptlijnen. Reguliere seriële poorten kunnen
geen interrupts delen op ISA-bus-PC's
(meerpoortige kaarten hebben elektronica die alle 16550A's op
een kaart in staat stellen om één of twee
interruptlijnen te delen).Speciale apparaatbestandenDe meeste apparaten in de kernel worden benaderd met
speciale apparaatbestanden die in de map
/dev staan. De apparaten
sio worden benaderd met de apparaten
/dev/ttydN
(inbellen) en
/dev/cuadN
(uitbellen). &os; biedt ook initialisatie-apparaten
(/dev/ttydN.init
en
/dev/cuadN.init
in &os; 6.X,
/dev/ttyidN en
/dev/cuaidN in
&os; 5.X en ouder) en
slotapparaten
(/dev/ttydN.lock
en
/dev/cuadN.lock
in &os; 6.X,
/dev/ttyldN en
/dev/cualdN in
&os; 5.X en ouder).
De initialisatie-apparaten worden gebruikt om telkens als een
poort wordt geopend de parameters van de communicatiepoorten te
initialiseren, zoals crtscts voor modems die
gebruik maken van RTS/CTS-signalering voor
gegevensstroombeheer. De slotapparaten worden gebruikt om
vlaggen op poorten op slot te zetten om te voorkomen dat
gebruikers of programma's bepaalde parameters veranderen. In
de hulppagina's &man.termios.4;, &man.sio.4; en &man.stty.1;
staat informatie over respectievelijk terminalinstellingen,
apparaten op slot zetten en initialiseren en terminalopties
instellen.Speciale apparaatbestanden aanmaken&os; 5.0 bevat het bestandssysteem &man.devfs.5;,
dat automatisch apparaatnodes aanmaakt als ze nodig zijn.
Als devfs in &os; aan staat, kan deze
sectie veilig worden overgeslagen.Het shellscript MAKEDEV in de map
/dev beheert de speciale
apparaatbestanden. Ga naar de map /dev
en geef het commando MAKEDEV ttyd0 om
MAKEDEV te gebruiken om speciale
inbelapparaatbestanden te maken voor
COM1 (poort 0). Gebruik voor het
aanmaken van speciale inbelapparaatbestanden voor
COM2 (poort 1) het commando
MAKEDEV ttyd1.MAKEDEV maakt niet alleen de speciale
apparaatbestanden voor
/dev/ttydN
aan, maar ook de nodes voor
/dev/cuaaN,
/dev/cuaiaN,
/dev/cualaN,
/dev/ttyldN
en
/dev/ttyidN.Controleer de rechten op de bestanden (in het bijzonder
de bestanden /dev/cua*) nadat de nieuwe
speciale apparaatbestanden zijn gemaakt om er zeker van te
zijn dat alleen de gebruikers die toegang tot die speciale
apparaatbestanden moeten hebben ze kunnen lezen en schrijven.
Het is waarschijnlijk ongewenst dat de gemiddelde gebruiker
modems kan gebruiken om naar buiten te bellen. De standaard
rechten op de bestanden /dev/cua* zouden
moeten volstaan:crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cuaa1
crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuaia1
crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1Deze rechten stellen de gebruiker
uucp en de gebruikers in de groep
dialer in staat om de uitbelapparaten te
gebruiken.De seriële poort instellenttydcuadHet apparaat
ttydN (of
cuadN) is
het gebruikelijke apparaat dat geopend dient te worden voor de
applicaties. Wanneer een proces het apparaat opent, heeft het
een standaardverzameling aan terminal I/O-instellingen. Bekijk
deze instellingen met het volgende commando:&prompt.root; stty -a -f /dev/ttyd1Als de instellingen van dit apparaat veranderd worden,
blijven de instellingen geldig totdat het apparaat gesloten
wordt. Als het heropend wordt, gaat het terug naar de
standaardverzameling. Om de standaardverzameling te
veranderen, dient het apparaat voor de initiële
toestand geopend te worden en die instellingen
veranderd te worden. Om bijvoorbeeld de
-modus, 8-bits-communicatie en
-gegevensstroombeheer voor apparaat
ttyd5 standaard aan te zetten:&prompt.root; stty -f /dev/ttyd5.init clocal cs8 ixon ixoffrc-bestandenrc.serialDe systeembrede initialisatie van de seriële apparaten
wordt beheerd in /etc/rc.d/serial. Dit
bestand heeft invloed op de standaardinstellingen van
seriële apparaten.In &os; 4.X wordt de systeembrede initialisatie van
seriële apparaten beheerd in
/etc/rc.serial.Om te voorkomen dat bepaalde instellingen door een
applicatie worden veranderd, dienen wijzigingen aan het
slottoestand-apparaat te worden aangebracht. Om
bijvoorbeeld de snelheid van ttyd5
vast te zetten op 57600 bps:&prompt.root; stty -f /dev/ttyd5.lock 57600Nu blijft een applicatie die ttyd5
en de snelheid van de poort probeert te veranderen zitten op
57600 bps.MAKEDEVUiteraard dienen de apparaten voor de initiële
toestand en de slottoestand alleen voor het account
root schrijfbaar te zijn.SeanKellyBijgedragen door TerminalsterminalsTerminals bieden een handige en goedkope manier om een &os;
systeem te benaderen als de console van of een netwerk naar een
computer niet beschikbaar is. Deze sectie beschrijft hoe
terminals met &os; te gebruiken.Types terminals en ze gebruikenDe originele &unix;-systemen hadden geen consoles. In
plaats daarvan werd er aangemeld en werden programma's via
terminals gedraaid die verbonden waren met de seriële
poorten van een computer. Het is goed vergelijkbaar met het
gebruik van een modem en terminalsoftware om op een systeem op
afstand in te bellen en werk te doen wat alleen uit tekst
bestaat.De consoles van hedendaagse PC's kunnen grafische uitvoer
van hoge kwaliteit produceren, maar de mogelijkheid om een
aanmeldsessie op een seriële poort tot stand te brengen
bestaat nog steeds op bijna elk hedendaags &unix;-achtig
systeem. &os; is geen uitzondering. Door gebruik te maken van
een terminal die aangesloten is op een ongebruikte seriële
poort, kan er aangemeld worden en kan bijna elk tekstprogramma
gedraaid worden dat normaalgesproken op de console of in een
xterm-venster in het X Window-systeem
gedraaid wordt.Een zakelijke gebruiker kan vele terminals aan een
&os;-systeem koppelen en deze op de bureaus van medewerkers
neerzetten. Een thuisgebruiker kan een reservecomputer, zoals
een oudere IBM PC of een &macintosh;, met de terminal verbinden
met een krachtigere computer die &os; draait. Op deze manier
kan wat anders een computer voor een enkele gebruiker zou zijn,
worden veranderd in een krachtig systeem voor meerdere
gebruikers.Er zijn drie soorten terminals voor &os;:Domme
terminals;PC's die als terminals
dienen;X-terminals.De overige subsecties beschrijven elk van deze
soorten.Domme terminalsDomme terminals zijn gespecialiseerde stukken hardware
die computers door seriële kabels kunnen verbinden. Ze
worden dom genoemd omdat ze alleen maar tekst
kunnen weergeven, verzenden en ontvangen. Het is niet
mogelijk om programma's op deze terminals te draaien. De
computer waar ze op zijn aangesloten heeft de benodigde
kracht om tekstverwerkers, compilers, e-mail, spellen,
enzovoort te draaien.Er zijn honderden soorten domme terminals gemaakt door
vele fabrikanten, inclusief de VT-100 van Digital Equipment
Corporation en de WY-75 van Wyse. Bijna elke soort werkt met
&os;. Sommige terminals uit de hoogste klasse kunnen zelfs
grafisch weergeven, maar slechts bepaalde softwarepakketten
kunnen gebruik maken van deze geavanceerde mogelijkheden.Domme terminals zijn ook populair in werkomgevingen
waarin gebruikers geen toegang tot grafische applicaties
nodig hebben, zoals die door het X Window systeem worden
geleverd.PC's die als terminal dienenIndien een domme terminal net genoeg
mogelijkheden heeft om tekst weer te geven, te verzenden en
te ontvangen, dan kan zeker elke reserve-PC een domme
terminal zijn. De enige benodigdheden zijn de juiste kabel
en wat terminal-emulatie software om op
de computer te draaien.Zo'n opstelling is populair in thuissituaties. Indien
bijvoorbeeld persoon A werkt op de console van een
&os;-systeem, kan persoon B wat alleen-tekst-werk verrichten
op een minder krachtige PC die als terminal met het
&os;-systeem verbonden is.X-terminalsX-terminals behoren tot de meest geavanceerde
terminalsoort die beschikbaar is. In plaats van dat ze
verbinding maken met een seriële poort, maken ze meestal
verbinding met een netwerk zoals Ethernet. In plaats van
dat ze alleen tekstapplicaties weergeven, kunnen ze elke
X-applicatie weergeven.X-terminals worden slechts voor de compleetheid
geïntroduceerd. Dit hoofdstuk behandelt echter
niet de installatie, het instellen of
het gebruik van X-terminals.InstellenDeze sectie beschrijft wat in te stellen op een os;-systeem
om een aanmeldsessie op een terminal mogelijk te maken. De
sectie gaat ervan uit dat er al een kernel is ingesteld met
ondersteuning voor een seriële poort waar de terminal op
is aangesloten en dat deze verbonden is.In staat beschreven dat het proces
init verantwoordelijk is voor het beheer van
alle processen en voor de initialisatie tijdens het opstarten
van een systeem. Eén van de taken die door
init wordt uitgevoerd is het lezen van het
bestand /etc/ttys en het starten van een
proces getty op de beschikbare terminals.
Het proces getty is verantwoordelijk voor
het lezen van een aanmeldnaam en het starten van het programma
login.Voer volgende stappen als root uit om
terminals voor een &os;-systeem in te stellen:Voeg een regel aan /etc/ttys toe
voor de ingang in de map /dev voor een
seriële poort als deze er nog niet is;Specificeer dat /usr/libexec/getty
uitgevoerd moet worden op de poort en het juiste type
getty van het bestand
/etc/gettytab;Specificeer het standaard terminaltype;Stel de poort in op on;Specificeer of de poort secure dient te
zijn;init dient
/etc/ttys opnieuw te lezen.Als optionele stap kan het wenselijk zijn om een eigen type
getty aan te maken voor stap 2 door
een ingang in /etc/gettytab te maken. Dit
wordt hier niet beschreven. Meer informatie staat in de
hulppagina's &man.gettytab.5; en &man.getty.8;.Een regel aan /etc/ttys
toevoegenHet bestand /etc/ttys bevat alle
poorten op een &os;-systeem waar aanmelden is toegestaan. De
eerste virtuele console ttyv0 staat
bijvoorbeeld in dit bestand vermeld. Met deze vermelding kan
er op de console worden aangemeld. Dit bestand bevat ook
vermeldingen voor de andere virtuele consoles, seriële
poorten en pseudo-tty's. Vermeld voor een vast aangesloten
terminal de /dev-regel van de
seriële poort zonder het
/dev-gedeelte
(/dev/ttyv0 wordt bijvoorbeeld
ttyv0).Een standaard &os; installatie bevat een bestand
/etc/ttys met ondersteuning voor de
eerste vier seriële poorten: ttyd0
tot en met ttyd3. Indien er aan een van
deze poorten een terminal wordt gekoppeld is het niet nodig
om een regel toe te voegen.Terminalregels aan /etc/ttys
toevoegenStel dat er twee terminals verbonden moeten worden met
een systeem: een Wyse-50 en een oude 286 IBM-PC waarop
Procomm terminalsoftware draait
dat een VT-100 terminal emuleert. De Wyse wordt met de
tweede seriële poort verbonden en de 286 met de zesde
seriële poort (een poort op een meerpoortige
seriële kaart). De overeenkomstige regels in
/etc/ttys zien er als volgt
uit:ttyd1 "/usr/libexec getty std.38400" wy50 on insecure
ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure
Het eerste veld specificeert normaalgesproken de
naam van het speciale terminalbestand zoals dat in
/dev staat.Het tweede veld bevat het commando dat voor deze
regel uitgevoerd moet worden, meestal is dit
&man.getty.8;. getty initialiseert
en opent een lijn, stelt een snelheid in, vraagt om een
gebruikersnaam en draait daarna het programma
&man.login.1;.Het programma getty accepteert
één (optionele) parameter op de
opdrachtregel, het type
getty. Een type
getty stelt karakteristieken
op een terminallijn in, zoals de bps-snelheid en de
pariteit. Het programma getty leest
deze karakteristieken uit het bestand
/etc/gettytab.Het bestand /etc/gettytab
bevat een hoop regels voor zowel oude als nieuwe
terminallijnen. In bijna alle gevallen werken de
regels die met de tekst std beginnen
voor vast aangesloten terminals. Deze regels negeren
pariteit. Er is een std-regel voor
elke bps-snelheid van 110 tot en met 115200. Uiteraard
kunnen eigen regels aan dit bestand worden toegevoegd.
De hulppagina &man.gettytab.5; biedt meer
informatie.Zorg er tijdens het instellen van het type
getty in het bestand
/etc/ttys voor dat de
communicatie-instellingen op de terminal ermee
over komen.In bovenstaand voorbeeld gebruikt de Wyse-50 geen
pariteit en maakt deze verbinding met 38400 bps.
De 286 PC gebruikt geen pariteit en maakt
verbinding met 19200 bps.Het derde veld bevat het het type terminal dat
normaalgesproken is verbonden met de tty-lijn. Voor
inbelpoorten wordt voor dit veld normaalgesproken
unknown of dialup
gebruikt omdat gebruikers bijna elk type terminal of
software gebruiken om in te bellen. Voor terminals met
een vaste aansluiting verandert het type terminal niet,
dus kan in dit veld een echt terminaltype uit het
databasebestand &man.termcap.5; worden gebruikt.In bovenstaand voorbeeld gebruikt de Wyse-50 het
echte terminaltype, terwijl de 286 PC die
Procomm draait zo ingesteld
wordt dat deze een VT-100 emuleert.Het vierde veld geeft aan of de poort aan moet
staan. Indien hier on staat, start
init het programma in het tweede
veld, getty, op. Indien hier
off staat wordt
getty niet uitgevoerd en kan er
daarom niet op de poort worden aangemeld.Het laatste veld geeft aan of de poort veilig is.
Indien deze poort als veilig is aangemerkt betekent dit
dat er genoeg vertrouwen is om de gebruiker
root (of iedere andere account met
een gebruikers-id 0) aan te laten melden via deze poort.
Onveilige poorten staan aanmelden door
root niet toe. Meld op onveilige
poorten eerst aan een account zonder rechten en gebruik
daarna &man.su.1; of een soortgelijk mechanisme om
rootrechten te verkrijgen.Het wordt sterk aangeraden om
insecure zelfs voor terminals achter
gesloten deuren te gebruiken. Het is vrij gemakkelijk
om aan te melden en su te gebruiken
indien rootrechten nodig zijn.init forceren om
/etc/ttys opnieuw te lezenStuur na het maken van de benodigde veranderingen aan het
bestand /etc/ttys een SIGHUP-signaal
(ophangen) naar het proces init om het te
dwingen het instellingenbestand opnieuw te lezen:&prompt.root; kill -HUP 1init is altijd het eerste proces dat
op een systeem gedraaid wordt, daarom heeft het altijd PID
1.Indien alles juist is ingesteld, alle kabels juist zijn
aangesloten en alle terminals aanstaan, draait er op elke
terminal een proces getty en is er een
aanmeldprompt zichtbaar op de terminals.Problemen met een verbinding oplossenZelfs met de grootste aandacht voor details kan er nog
steeds iets mis gaan met het instellen van een terminal. Hier
is een lijst van symptomen en mogelijke oplossingen.Er verschijnt geen aanmeldpromptControleer of de terminal is aangesloten en aan staat.
Indien het een PC is die als terminal fungeert, controleer of
de terminalemulatiesoftware op de juiste seriële poort
draait.Controleer of de kabel stevig verbonden is met zowel de
terminal als de &os; computer en dat de kabel van het juiste
soort is.Controleer of de terminal en &os; dezelfde bps-snelheid
en pariteit gebruiken. Indien de terminal een beeldscherm
is, controleer dan of de video- en helderheidsniveaus zijn
ingesteld. Indien de terminal een printer is, controleer of
er voldoende papier en inkt aanwezig zijn.Controleer of er een proces getty
draait dat de terminal bedient. Om bijvoorbeeld een lijst
van draaiende getty-processen te
krijgen:&prompt.root; ps -axww|grep gettyEr zou een regel voor de terminal zichtbaar moeten zijn.
Het volgende scherm geeft bijvoorbeeld weer dat
getty op de tweede seriële poort
ttyd1 draait en de regel
std.38400 in
/etc/gettytab gebruikt:22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1Indien er geen proces getty draait,
controleer dan of de poort in /etc/ttys
aan staat. Draai kill -HUP 1 nadat het
bestand ttys is gewijzigd.Indien het proces getty draait maar de
terminal nog steeds geen aanmeldprompt weergeeft of als het
een prompt weergeeft maar er niet getypt kan worden, kan het
zijn dat de terminal of de kabel hardwarematige handshaking
niet ondersteunt. Probeer om de regel in
/etc/ttys van
std.38400 in
3wire.38400 te veranderen (draai na het
wijzigen van /etc/ttyskill
-HUP 1). De regel 3wire is
vergelijkbaar met de regel std, maar
negeert hardwarematige handshaking. Het kan nodig zijn om de
baudsnelheid te verlagen of om softwarematig doorvoerbeheer
aan te zetten als 3wire gebruikt wordt, om
overspoelde buffers te voorkomen.Als er rommel in plaats van een aanmeldprompt
verschijntControleer of de terminal en &os; dezelfde bps-snelheid
en pariteit gebruiken. Controleer de
getty-processen op het gebruik van het
juiste type getty. Indien dit niet het
geval is, wijzig dan /etc/ttys en draai
kill -HUP 1.Tekens verschijnen dubbel en/of het wachtwoord
verschijnt tijdens de invoerWijzig de terminal (of de terminalemulatiesoftware) van
half duplex of local echo naar
full duplex.GuyHelmerBijgedragen door SeanKellyToevoegingen door InbeldienstHet instellen van het &os;-systeem voor inbeldiensten is
vrijwel gelijk aan het verbinden van terminals, behalve dat er
met modems in plaats van terminals wordt gewerkt.Externe en interne modemsExterne modems lijken gemakkelijker voor het inbellen,
omdat externe modems vaak semi-permanent ingesteld kunnen
worden via parameters die in een niet-vluchtig RAM worden
opgeslagen en ze hebben gewoonlijk LED's die de toestand van
belangrijke RS-232-signalen weergeven. Knipperende LED's maken
indruk op bezoekers, maar LED's zijn ook zeer nuttig om te zien
of een modem goed functioneert.Interne modems hebben vaak geen niet-vluchtig RAM en het
kan dus voorkomen dat de instelmogelijkheden beperkt zijn tot
het instellen van DIP-schakelaars. Als een intern modem al
indicatie-LED's voor signalen heeft, zijn ze moeilijk te zien
in de behuizing van een systeem.Modems en kabelsmodemBij gebruik van een extern modem is uiteraard een juiste
kabel nodig. Een standaard RS-232C seriële kabel
moet voldoen zolang alle normale signalen zijn
aangesloten.
SignaalnamenAcroniemenNamenRDReceived Data (ontvangen gegevens)TDTransmitted Data (verzonden gegevens)DTRData Terminal Ready (gegevensterminal
gereed)DSRData Set Ready (gegevensverzameling
gereed)DCDData Carrier Detect (RS-232's detector voor
signaal lijn-ontvangen)SGSignal Ground (signaalaarde)RTSRequest to Send (verzoek om te zenden)CTSClear to Send (gereed om te zenden)
&os; heeft de signalen RTS en
CTS nodig voor doorstroombeheer bij
snelheden van meer dan 2400 bps, het signaal
CD om te bepalen wanneer een oproep
beantwoord of geannuleerd is, en het signaal
DTR om een modem opnieuw in te stellen
nadat een sessie voltooid is. Op sommige kabels ontbreken
sommige benodigde signalen. Dus als zich problemen voordoen,
zoals een aanmeldsessie die niet weggaat nadat de verbinding
verbroken is, kan dit aan de kabel liggen.Net als andere &unix;-achtige besturingssystemen gebruikt
&os; hardwaresignalen om te bepalen of een oproep beantwoord
of weggedrukt is en om met het modem op te hangen en dit
opnieuw in te stellen na een oproep. &os; vermijdt het
versturen van commando's naar een modem en het bekijken van
de toestand van een modem. Dit kan vreemd lijken als bekend
is hoe modems met PC-gebaseerde prikbordsystemen (BBS)
verbinden.Overwegingen voor de seriële interface&os; ondersteunt EIA RS-232C (CCITT V.24)
communicatie-interfaces gebaseerd op NS8250, NS1645, NS16550 en
NS16550A. De 8250- en 16450-apparaten hebben buffers van een
enkel karakter. Het 16550-apparaat biedt een buffer van 16
karakters, wat betere systeemprestaties toestaat. Door fouten
in platte 16550's is het niet mogelijk de buffer van 16
karakters te gebruiken, dus gebruik indien mogelijk 16550A's.
Omdat apparaten met een buffer van een enkel karakter meer werk
door het besturingssysteem vereisen dan apparaten met een
buffer van 16 karakters, ligt de voorkeur bij seriële
interfacekaarten gebaseerd op de 16550A. Indien een systeem
veel actieve seriële poorten heeft of zwaar belast wordt,
zijn kaarten gebaseerd op de 16550A beter voor communicatie met
een lage foutenratio.Snel overzichtgettyNet als met terminals zet init een
getty-proces op voor elke seriële poort
die voor inbelverbindingen is ingesteld. Indien bijvoorbeeld
een modem aan /dev/ttyd0 is gekoppeld, kan
het commando ps ax het volgende
weergeven: 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0Wanneer een gebruiker naar de modemlijn belt en de modems
verbinding maken, wordt de CD-lijn (Carrier
Detect) door het modem gerapporteerd. De kernel merkt op dat
een draaggolf is gesignaleerd en laat getty
het openen van de poort voltooien. getty
stuurt een prompt login: met de initieel
gespecificeerde lijnsnelheid. getty bekijkt
of er geldige karakters zijn ontvangen en probeert, in een
typische opstelling, indien het rommel aantreft (waarschijnlijk
omdat de snelheid waarmee het modem verbindt afwijkt van de
snelheid van getty) de lijnsnelheden aan te
passen totdat het redelijke karakters ontvangt./usr/bin/loginNadat een gebruikersnaam is opgegeven voert
getty/usr/bin/login
uit, die het aanmelden voltooit door te vragen naar het
wachtwoord van een gebruiker en daarna de shell van een
gebruiker op te starten.InstellingenbestandenEr zijn drie systeeminstellingenbestanden in de map
/etc die waarschijnlijk gewijzigd moeten
worden om inbellen op een &os;-systeem toe te staan. Het
eerste bestand, /etc/gettytab, bevat
informatie om de daemon /usr/libexec/getty
in te stellen. Het tweede bestand,
/etc/ttys bevat informatie voor
/sbin/init dat vertelt op welke
tty apparaten een proces
getty moet draaien. Als laatste kunnen in
het script /etc/rc.d/serial commando's
geplaatst worden om poorten te initialiseren.Er bestaan twee stromingen met betrekking tot inbelmodems
op &unix;. De ene houdt ervan om modems en systemen in te
stellen zodat de lokale computer-naar-modem RS-232-interface
met een vaste snelheid werkt, ongeacht de snelheid waarmee een
gebruiker-op-afstand inbelt. Het voordeel van deze instelling
is dat een gebruiker-op-afstand altijd meteen een aanmeldprompt
van een systeem ziet. Het nadeel is dat een systeem niet weet
wat de werkelijke gegevenssnelheid van een gebruiker is en dus
passen programma's die met een volledig scherm werken, zoals
Emacs, hun methode om het scherm te tekenen niet aan om hun
reactie beter te maken voor langzame verbindingen.De andere stroming stelt de RS-232-interface van een modem
zo in dat de snelheid ervan varieert met de verbindingssnelheid
van een gebruiker-op-afstand. Zo zorgen V.32bis-verbindingen
(14,4 kbps) met een modem ervoor dat een modem de
RS-232-interface op 19,2 kbps laat draaien, terwijl
verbindingen op 2400 bps ervoor zorgen dat de
RS-232-interface van een modem op 2400 bps draait. Omdat
getty meldingen over de verbindingssnelheid
van een gegeven modem niet begrijpt, geeft
getty een bericht login: op
een initiële snelheid en kijkt het naar de karakters die
als antwoord terugkomen. Als een gebruiker rommel ziet, wordt
ervan uitgegaan dat deze weet dat de Enter
toets ingedrukt moet worden totdat een herkenbaar prompt
zichtbaar is. Indien de gegevenssnelheden niet overeenkomen,
ziet getty alles wat een gebruiker intypt
als rommel, probeert het op de volgende snelheid
over te gaan en het geeft opnieuw het prompt
login:. Deze procedure kan ad nauseam
doorgaan, maar normaal gesproken zijn er slechts een stuk of
twee toetsaanslagen nodig voordat een gebruiker een juist
prompt ziet. Het is duidelijk dat deze aanmeldprocedure er
niet zo mooi uitziet als de methode
vaste-snelheid, maar een gebruiker met een
langzame verbinding zou betere interactiviteit moeten beleven
met programma's die met een volledig scherm werken.Deze sectie poogt om neutrale informatie over instellingen
te geven, maar is geneigd om de gegevenssnelheid van het modem
af te laten hangen van de verbindingssnelheid./etc/gettytab/etc/gettytab/etc/gettytab is een bestand met
informatie over instellingen voor &man.getty.8; in de stijl
van &man.termcap.5;. In de hulppagina van &man.gettytab.5;
staat de volledige informatie over het formaat van het
bestand en de lijst met mogelijkheden.Vaste snelheid instellenIndien de snelheid van een modem om gegevens te
communiceren op een bepaalde waarde wordt vastgezet, is het
waarschijnlijk niet nodig om wijzigingen aan te brengen in
/etc/gettytab.Overeenkomstige snelheid instellenIn /etc/gettytab dient een regel
ingesteld te worden om getty informatie
te geven over de snelheden die voor het modem gewenst zijn.
Indien een 2400 bps modem aanwezig is, kan
waarschijnlijk de bestaande regel D2400
gebruikt worden.#
# Voor snelle inbelterminals, 2400/1200/300 roterend (er kan met beide kanten begonnen worden)
#
D2400|d2400|Fast-Dial-2400:\
:nx=D1200:tc=2400-baud:
3|D1200|Fast-Dial-1200:\
:nx=D300:tc=1200-baud:
5|D300|Fast-Dial-300:\
:nx=D2400:tc=300-baud:Indien er een modem voor hogere snelheden aanwezig is,
dient er waarschijnlijk een regel aan
/etc/gettytab toegevoegd te worden.
Hieronder staat een regel die gebruikt kan worden voor een
14,4 kbps modem met een maximale interface-snelheid
van 19,2 kbps:#
# Toevoegingen voor een V.32bis modem
#
um|V300|High Speed Modem at 300,8-bit:\
:nx=V19200:tc=std.300:
un|V1200|High Speed Modem at 1200,8-bit:\
:nx=V300:tc=std.1200:
uo|V2400|High Speed Modem at 2400,8-bit:\
:nx=V1200:tc=std.2400:
up|V9600|High Speed Modem at 9600,8-bit:\
:nx=V2400:tc=std.9600:
uq|V19200|High Speed Modem at 19200,8-bit:\
:nx=V9600:tc=std.19200:Dit resulteert in 8-bits verbindingen zonder
pariteit.Het bovenstaande voorbeeld begint met een
communicatiesnelheid van 19,2 kbps (voor een
V.32bis-verbinding), daarna doorloopt het 9600 bps
(voor V.32), 2400 bps, 1200 bps, 300 bps en
daarna weer 19,2 kbps. Het doorlopen van de
communicatiesnelheid is met de mogelijkheid
nx= (volgende tabel)
geïmplementeerd. Elk van deze regels gebruikt een
regel tc= (tabel
continuëren) om de rest van de
standaard-instellingen voor een bepaalde
gegevenssnelheid op te pikken.Indien er een 28,8 kbps modem aanwezig is en/of
het gewenst is om voordeel uit de compressie met een
14,4 kbps te halen, is het nodig om hogere
communicatiesnelheden dan 19,2 kbps te gebruiken.
Hieronder staat een voorbeeld van een regel voor
gettytab die begint met
57,6 kbps.#
# Toevoegingen voor een V.32bis of V.34 modem
# beginnend bij 57,6 kbps
#
vm|VH300|Very High Speed Modem at 300,8-bit:\
:nx=VH57600:tc=std.300:
vn|VH1200|Very High Speed Modem at 1200,8-bit:\
:nx=VH300:tc=std.1200:
vo|VH2400|Very High Speed Modem at 2400,8-bit:\
:nx=VH1200:tc=std.2400:
vp|VH9600|Very High Speed Modem at 9600,8-bit:\
:nx=VH2400:tc=std.9600:
vq|VH57600|Very High Speed Modem at 57600,8-bit:\
:nx=VH9600:tc=std.57600:Indien een CPU langzaam of een systeem zwaar belast is
en er geen seriële poorten gebaseerd op 16550A
aanwezig zijn, kunnen er siosilo-fouten optreden bij
57,6 kbps./etc/ttys/etc/ttysHet instellen van het bestand
/etc/ttys staat beschreven in . Het instellen van modems is
vergelijkbaar maar er moet een ander argument aan
getty doorgegeven worden en er moet een
ander type terminal doorgegeven te worden. Het algemene
formaat voor zowel vaste snelheid als overeenkomstige
snelheid is:ttyd0 "/usr/libexec/getty xxx" dialup onHet eerste item op bovenstaande regel is het speciale
apparaatbestand. ttyd0 betekent dat
/dev/ttyd0 het bestand is dat door
getty in de gaten wordt gehouden. Het
tweede item,
"/usr/libexec/gettyxxx"
(xxx wordt vervangen door de
initiële mogelijkheden van
gettytab) is het proces dat door
init op het apparaat gedraaid wordt. Het
derde item, dialup, is het standaard
terminaltype. De vierde parameter, on,
geeft aan init aan dat de lijn
operationeel is. Er kan een vijfde parameter zijn,
secure, maar gebruik deze alleen voor
terminals die fysiek veilig zijn (zoals de
systeemconsole).Het standaard terminaltype (dialup in
bovenstaand voorbeeld) mag afhangen van lokale voorkeuren.
Het traditionele standaard terminaltype voor inbellijnen is
dialup, zodat gebruikers hun
aanmeldscripts kunnen aanpassen om op te merken wanneer het
terminal dialup is en automatisch hun
terminaltype kunnen aanpassen. Wellicht is het makkelijker
om vt102 als het standaard terminaltype te
specificeren, aangezien gebruikers gewoon VT102-emulatie op
hun systemen-op-afstand gebruiken.Nadat /etc/ttys gewijzigd is, kan
aan het proces init een signaal
HUP gestuurd worden om het bestand opnieuw
te laten lezen. Gebruik volgende opdracht om het signaal te
versturen:&prompt.root; kill -HUP 1Indien een systeem voor de eerste keer wordt
geïnstalleerd, is het verstandig te wachten totdat een
modem juist ingesteld en verbonden is voordat het signaal
aan init verstuurd wordt.Vaste snelheid instellenVoor het instellen van een vaste snelheid dient de
regel in ttys een vaste snelheid door
te geven aan getty. Voor een modem met
een vaste poortsnelheid van 19,2 kbps kan de regel in
ttys er als volgt uitzien:ttyd0 "/usr/libexec/getty std.19200" dialup onIndien een modem op een andere gegevenssnelheid is
ingesteld, dient de juiste waarde voor
std.snelheid
in plaats van std.19200 ingesteld te
worden. Gebruik een geldig type dat in
/etc/gettytab vermeld staat.Overeenkomstige snelheid instellenVoor het instellen van een overeenkomstige snelheid
dient de regel in ttys te verwijzen
naar regel met de juiste begin-auto-baud
(sic). Indien bijvoorbeeld de boven voorgestelde regel
voor een modem met een overeenkomstige snelheid die begint
met 19,2 kbps wordt toegevoegd (de regel in
gettytab die het beginpunt
V19200), kan de regel in
ttys er als volgt uitzien:ttyd0 "/usr/libexec/getty V19200" dialup on/etc/rc.d/serialrc-bestandenrc.serialHogesnelheidsmodems, zoals V.32, V.32bis, en V.34 modems,
moeten gebruik maken van hardwarematig
(RTS/CTS) gegevensstroombeheer. Er kunnen
stty-opdrachten aan
/etc/rc.d/serial toegevoegd worden om de
vlag voor hardwarematig gegevensstroombeheer in de kernel van
&os; voor modempoorten in te stellen.Om bijvoorbeeld de termios-vlag
crtscts op de apparaten die de in- en
uitbelapparaten initialiseren op de eerste seriële poort
(COM2) in te stellen, kunnen de
volgende regels aan /etc/rc.d/serial
worden toegevoegd:# Seriële poort initieel instellen
stty -f /dev/ttyd1.init crtscts
stty -f /dev/cuad1.init crtsctsModeminstellingenBij gebruik van een modem waarvan de parameters permanent
in niet-vluchtig RAM ingesteld kunnen worden, is er een
terminalprogramma (zoals Telix onder &ms-dos; of
tip onder &os;) nodig om parameters in te
stellen. Maak een verbinding met een modem met dezelfde
communicatiesnelheid als de initiële snelheid die door
getty gebruikt wordt en stel het
niet-vluchtige RAM van een modem in zodat aan deze voorwaarden
voldaan wordt:CD geldt tijdens
verbindingen;DTR geldt tijdens gebruik; het
loslaten van DTR hangt de verbinding op en stelt het modem
opnieuw in;gegevensstroombeheer door CTS
verzonden;gegevensstroombeheer met XON/XOFF
uitgezet;gegevensstroombeheer door RTS
ontvangen;Stille modus (geen resultaatcodes);Geen opdrachtecho.Kijk in de documentatie van een modem voor de benodigde
opdrachten en/of instellingen van DIP-schakelaars.Om de bovenstaande parameters bijvoorbeeld op een
&usrobotics; &sportster; 14.400 extern modem in te stellen,
kunnen de volgende opdrachten aan het modem gegeven
worden:ATZ
AT&C1;&D2&H1&I0&R2&WIn deze fase kunnen ook andere modeminstellingen aangepast
worden, zoals of het V.42bis en/of MNP5 compressie wordt
gebruiken.Een &usrobotics;&sportster; 14.400 externe modem heeft ook
enkele DIP-schakelaars die ingesteld moeten worden. Voor
andere modems kunnen deze instellingen wellicht als voorbeeld
dienen:Schakelaar 1: UP: DTR NormalSchakelaar 2: N/A (Verbal Result Codes/Numeric Result
Codes)Schakelaar 3: UP: Suppress Result CodesSchakelaar 4: DOWN: Geen echo, offline
opdrachtenSchakelaar 5: UP: Auto AnswerSchakelaar 6: UP: Carrier Detect NormalSchakelaar 7: UP: Load NVRAM DefaultsSchakelaar 8: N/A (Smart Mode/Dumb Mode)Schakel resultaatcodes voor alle inbelmodems uit of
onderdruk ze om problemen te voorkomen die kunnen optreden als
getty abusievelijk een prompt
login: geeft aan een modem dat in
opdrachtmodus staat en het modem de opdracht echoot of een
resultaatcode teruggeeft. Deze sequentie kan tot een
uitgebreide, onnozele discussie tussen getty
en het modem leiden.Vaste snelheid instellenStel voor een vaste snelheid een modem zodanig in dat die
een constante gegevenssnelheid naar de computer,
onafhankelijk van de communicatiesnelheid, behoudt. Op een
&usrobotics; &sportster; 14.400 extern modem zetten de
volgende opdrachten de gegevenssnelheid naar de computer vast
op de snelheid die gebruikt werd om de opdrachten te
geven:ATZ
AT&B1&WOvereenkomstige snelheid instellenStel voor een variabele snelheid een modem zodanig in dat
het de gegevenssnelheid van zijn seriële poort aanpast
aan de snelheid van een binnenkomende oproep. Op een
&usrobotics; &sportster; 14.400 extern modem zetten de
volgende opdrachten de gegevenssnelheid van het modem, die op
fouten gecorrigeerd wordt, vast op de snelheid die gebruikt
werd om de opdrachten te geven, maar staan ze toe dat de
snelheid van de seriële poort varieert voor verbindingen
die niet op fouten gecorrigeerd worden:ATZ
AT&B2&WDe modeminstellingen controlerenDe meeste modems die op hoge snelheid werken, bieden
opdrachten om de huidige werkparameters van een modem in een
min of meer voor mensen leesbare vorm te bekijken. Op het
&usrobotics; &sportster; 14.400 extern modem beeldt de
opdracht ATI5 de instellingen af die in
het niet-vluchtige RAM zijn opgeslagen. Gebruik om de
werkelijke werkparameters van een modem te zien (zoals
beïnvloed door de stand van de DIP-schakelaars van een
modem) de opdrachten ATZ gevolgd door
ATI4.Kijk in de handleiding van een modem als er met een
ander merk modem gewerkt wordt voor het controleren van de
parameters voor het instellen van dat modem.Problemen oplossenHier volgen wat stappen die gevolgd kunnen worden om een
inbelmodem op een systeem te controleren.Een &os;-systeem controlerenVerbind een modem met een &os;-systeem, start het systeem
op en kijk, indien het modem lampjes bevat die de toestand
aangeven, of de DTR-indicator oplicht
als het prompt login: op de systeemconsole
verschijnt. Als het oplicht zou dit betekenen dat &os;
een getty-proces heeft gestart op de
juiste communicatiepoort en wacht op het modem om een gesprek
aan te nemen.Geef als de DTR-indicator niet
oplicht, na aanmelden op de console, de opdracht ps
ax om te zien of &os; probeert een
getty-proces op de juiste poort te
draaien. Er dienen tussen de weergegeven processen regels
zoals de onderstaande te verschijnen: 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0
115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1Er kan ook iets als het volgende verschijnen: 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0Als het modem nog geen gesprek heeft aangenomen, betekent
dit dat getty het openen van de
communicatiepoort voltooid heeft. Dit kan duiden op een
probleem met de bekabeling of op een verkeerd ingesteld modem
omdat getty niet in staat zou moeten zijn
om de communicatiepoort te openen totdat
CD (kiestoon) door het modem is
bevestigd.Indien er geen enkel getty-proces
verschijnt dat wacht op het openen van de gewenste poort
ttydN,
controleer dan de regels in /etc/ttys op
vergissingen. Controleer ook het logboekbestand
/var/log/messages om te zien of er
logboekberichten van init of
getty met betrekking tot problemen zijn.
Indien er problemen zijn, controleer dan nogmaals de
instellingenbestanden /etc/ttys en
/etc/gettytab, alsook de betreffende
speciale apparaatbestanden /dev/ttydN,
op vergissingen, ontbrekende regels of ontbrekende speciale
apparaatbestanden.Proberen om in te bellenProbeer in te bellen op een systeem. Controleer of op
het systeem-op-afstand 8 bits, geen pariteit en 1 stopbit
gebruikt wordt. Probeer, indien er niet meteen een prompt
verschijnt of als er rommel verschijnt, ongeveer
eens per seconde op Enter te drukken.
Probeer, indien er na een tijd nog geen prompt
login: verschijnt, een
BREAK te versturen. Probeer, indien er
een modem wordt gebruikt dat op hoge snelheid werkt om te
bellen, opnieuw in te bellen nadat de interfacesnelheid van
het bellende modem is vastgezet (bijvoorbeeld via
AT&B1 op een &usrobotics; &sportster;
modem).Controleer, indien er nog steeds geen prompt
login: verschijnt, nogmaals
/etc/gettytab en controleer of:De initiële specificatie die in
/etc/ttys voor de lijn staat
overeenkomt met een naam van een specificatie in
/etc/gettytab;Elke regel nx= overeenkomt met een
naam van een andere specificatie in
gettytab;Elke regel tc= overeenkomt met een
naam van een andere specificatie in
gettytab.Controleer, indien er gebeld wordt maar het modem op het
&os;-systeem niet reageert, of het modem ingesteld is om de
telefoon te beantwoorden als DTR bevestigd
is. Controleer, indien het modem juist ingesteld lijkt te
zijn, of de DTR-lijn bevestigd is door de
indicatielampjes van het modem te controleren (indien die
aanwezig zijn).Neem een pauze en probeer het later nog eens indien alles
meerdere malen is geprobeerd en het nog steeds niet werkt.
Indien het nog steeds niet werkt, stuur dan een e-mail naar
de &a.questions; met een beschrijving van het modem en het
probleem en de mensen op de lijst zullen proberen te
helpen.UitbeldienstuitbeldienstDe volgende tips dienen voor het maken van een verbinding met
een andere computer per modem. Dit is geschikt voor het opzetten
van een terminalsessie met een gast op afstand.Dit is nuttig bij het aanmelden op een BBS.Dit soort verbinding kan extreem behulpzaam zijn om een
bestand op het Internet te krijgen indien er problemen zijn met
PPP. Indien FTP ergens voor nodig is en PPP kapot is, kan de
terminalsessie voor FTP gebruikt worden. Vervolgens kan zmodem
gebruikt worden om het naar de machine te verzenden.Een gewone Hayes-modem wordt niet ondersteund, wat
nu?In feite is de hulppagina voor tip
verouderd. Er is al een generiek belprogramma voor Hayes
ingebouwd. Gebruik at=hayes in het bestand
/etc/remote.Het stuurprogramma voor Hayes is niet slim genoeg om enkele
geavanceerde eigenschappen van nieuwere modems te herkennen.
Berichten als BUSY (in gesprek),
NO DIALTONE (geen kiestoon) of
CONNECT 115200 (verbinden 115200) verwarren
het stuurprogramma. Schakel deze berichten uit bij gebruik van
tip (door middel van
ATX0&W).Verder is de beltimeout voor tip 60
seconden. Het modem dient een lagere waarde te gebruiken om te
voorkomen dat tip denkt dat er een probleem
met de communicatie is. Probeer
ATS7=45&W.De geleverde versie van tip
ondersteunt Hayesmodems nog niet volledig. De oplossing is
om het bestand tipconf.h in de map
/usr/src/usr.bin/tip/tip te bewerken.
Het mag duidelijk zijn dat hiervoor de distributie van de
broncode nodig is.Wijzig de regel #define HAYES 0 in
#define HAYES 1. Voer hierna
make en make install
uit. Hierna werkt alles naar wens.Hoe AT-commando's ingeven?/etc/remoteMaak een zogenaamde directe regel in het
bestand /etc/remote aan. Als het modem
bijvoorbeeld aan de eerste seriële poort,
/dev/cuad0, is gekoppeld, voeg dan de
volgende regel toe:cuad0:dv=/dev/cuad0:br#19200:pa=noneGebruik voor de mogelijkheid br de
hoogst ondersteunde snelheid van het modem in bps. Typ hierna
tip cuad0 om een verbinding met het modem te
maken.Als alternatief kan cu als
root met het volgende commando gebruikt
worden:&prompt.root; cu
-llijn
-ssnelheidDe waarde lijn is de
seriële poort (bijvoorbeeld
/dev/cuad0) en
snelheid is de snelheid
(bijvoorbeeld 57600). Als alle
AT-commando's zijn ingevoerd, voer dan ~. in
om het programma te verlaten.Het teken @ voor de optie pn werkt
niet!Het teken @ in de
telefoonnummermogelijkheid vertelt tip om in
/etc/phones naar een telefoonnummer te
kijken. Maar het teken @ is ook een speciaal
teken in specificatiebestanden als
/etc/remote. Gebruik een backslash om
hieraan te ontsnappen:pn=\@Hoe een telefoonnummer op de opdrachtregel
draaien?Voeg een zogenaamde generieke regel aan
het bestand /etc/remote toe.
Bijvoorbeeld:tip115200|Bel elk telefoonnummer met 115200 bps:\
:dv=/dev/cuad0:br#115200:at=hayes:pa=none:du:
tip57600|Bel elk telefoonnummer met 57600 bps:\
:dv=/dev/cuad0:br#57600:at=hayes:pa=none:du:Hierna zijn onder andere de volgende mogelijkheden
beschikbaar:&prompt.root; tip -115200 5551234Indien cu boven tip
geprefereerd wordt, dient een generieke regel voor
cu gebruikt te worden:cu115200|Gebruik cu om elk nummer met 115200bps te bellen:\
:dv=/dev/cuad1:br#57600:at=hayes:pa=none:du:Voer in:&prompt.root; cu 5551234 -s 115200Dient de bps-snelheid telkens ingevoerd te worden?Voeg een regel toe voor tip1200 of
cu1200, maar gebruik een bps-snelheid die
geschikt is voor de br-mogelijkheid. tip
meent dat 1200 bps een goede standaardwaarde is, hierdoor
zoekt het naar een regel tip1200. Uiteraard
hoeft 1200 bps niet gebruikt te worden.Een aantal hosts met een terminalserver benaderenOm niet iedere keer te hoeven wachten totdat er verbinding
is en CONNECT <host> in te typen, kan
de mogelijkheid cm van
tip gebruikt worden. Als voorbeeld bieden
de onderstaande regels in /etc/remote de
mogelijkheid om tip pain of tip
muffin in te typen om met de hosts pain of muffin
te verbinden, en tip deep13 om naar de
terminalserver te gaan:pain|pain.deep13.com|Forresters machine:\
:cm=CONNECT pain\n:tc=deep13:
muffin|muffin.deep13.com|Franks machine:\
:cm=CONNECT muffin\n:tc=deep13:
deep13:Gizmonics Institute terminalserver:\
:dv=/dev/cuad2:br#38400:at=hayes:du:pa=none:pn=5551234:Kan tip meer dan één lijn voor elke site
proberen?Dit is een vaak een probleem als een universiteit een
handvol modemlijnen en enkele duizenden studenten heeft die ze
proberen te gebruiken.Voeg een regel voor de universiteit toe in
/etc/remote en gebruik
@ voor de mogelijkheid
pn:grote-universiteit:\
:pn=\@:tc=dialout
dialout:\
:dv=/dev/cuad3:br#9600:at=courier:du:pa=none:Voeg hierna de telefoonnummers voor de universiteit toe aan
/etc/phones:grote-universiteit 5551111
grote-universiteit 5551112
grote-universiteit 5551113
grote-universiteit 5551114
Het commando tip probeert elk nummer in
de volgorde van de lijst alvorens op te geven. Om de pogingen
te herhalen, kan tip in een while-lus
gedraaid worden.Waarom moet CtrlP
tweemaal worden ingedrukt om CtrlP
éénmaal te versturen?CtrlP
is het standaard forceer-karakter, dat gebruikt
wordt om tip te vertellen dat het volgende
karakter letterlijk genomen dient te worden. Het
forceerkarakter kan met de ontsnapping ~s,
wat stel een variabele in betekent, op elk ander
karakter ingesteld worden.Typ
~sforce=enkel-karakter
in gevolgd door een nieuwe regel.
enkel-karakter is elk enkel
karakter. Indien enkel-karakter
weggelaten wordt, is het forceerkarakter het nulkarakter, wat
door middel van Ctrl2
of Ctrlspatie
verkregen kan worden. Een redelijke standaardwaarde
voor enkel-karakter is ShiftCtrl6,
die slechts op enkele terminalservers gebruikt
wordt.Het forceerkarakter kan op elk gewenst karakter ingesteld
worden door het volgende op te nemen in het bestand
$HOME/.tiprc:force=<enkel-karakter>Alle ingevoerde tekst staat opeens in
hoofdletters?Waarschijnlijk is CtrlA
ingedrukt, het raisechar van
tip, dat speciaal voor mensen met een
kapotte caps-lock toets is ontworpen. Gebruik
~s zoals boven is aangegeven en stel de
variabele raisechar op iets redelijks in.
Het kan zelfs op hetzelfde als het forceerkarakter worden
ingesteld, indien het onwaarschijnlijk is dat een van deze
mogelijkheden ooit gebruikt wordt.Hier volgt een voorbeeld voor het bestand
.tiprc dat perfect is voor gebruikers van
Emacs die Ctrl2
en CtrlA
vaak moeten gebruiken:force=^^
raisechar=^^De ^^ is ShiftCtrl6.Hoe met tip bestanden
versturen?In de communicatie met een ander &unix;-systeem kunnen
bestanden verzonden en ontvangen worden met de commando's
~p (put) en ~t (take).
Deze commando's draaien cat en
echo op een systeem op afstand om bestanden
aan te nemen en te verzenden. De syntaxis is:~plokaal-bestandbestand-op-afstand~tbestand-op-afstandlokaal-bestandEr wordt niet op fouten gecontroleerd, het is dus
verstandig om een ander protocol te gebruiken, zoals
zmodem.Hoe kan zmodem samen met tip
draaien?Start om bestanden te ontvangen het verstuurprogramma aan
de andere kant. Typ daarna ~C rz om ze
lokaal te ontvangen.Start om bestanden te versturen het ontvangprogramma aan de
andere kant. Typ daarna ~C sz
bestanden om ze naar het
systeem aan de andere kant te versturen.KazutakaYOKOTABijgedragen door BillPaulGebaseerd op een document van Seriële console opzettenseriële consoleInleiding&os; biedt de mogelijkheid om op een systeem op te starten
met slechts een domme terminal en een seriële poort als
console. Dit soort opstellingen is handig voor twee soorten
mensen: voor systeembeheerders die &os; willen installeren op
machines die geen toetsenbord of beeldscherm hebben en voor
ontwikkelaars die de kernel of apparaatstuurprogramma's willen
debuggen.Zoals beschreven in , gebruikt &os;
drie fasen voor het opstarten. De eerste twee fasen bevinden
zich in de code van het opstartblok dat zich aan het begin van
de opstartslice van &os; op de opstartschijf bevindt. Het
opstartblok laadt vervolgens de opstartlader
(/boot/loader) en draait als de code van
de derde fase.Om de seriële console gereed te maken moeten de code
in het opstartblok, de code van de opstartlader en de kernel
worden ingesteld.De seriële console instellen, korte versieDeze sectie neemt aan dat de standaard opstelling wordt
gebruikt en dat een kort overzicht voor het opzetten van de
seriële console gewenst is.Verbind de seriële kabel met COM1 en de leidende
terminal;Om alle opstartmeldingen op de seriële console te
zien, dient het volgende commando als supergebruiker
uitgevoerd te worden:&prompt.root; echo 'console="comconsole"' >> /boot/loader.confBewerk /etc/ttys en wijzig
off in on en
dialup in vt100 voor
de regel ttyd0. Indien dit niet gebeurt
is er geen wachtwoord nodig om met de seriële console
te verbinden, wat tot een mogelijk beveiligingslek
leidt;Start het systeem opnieuw op om te zien of de
veranderingen effect hebben.Indien een andere instelling nodig is, is er een
diepgaandere uitleg over instellingen beschikbaar in
.De seriële console instellenBereid een seriële kabel voor.nulmodem-kabelBenodigd zijn een nulmodem-kabel òf een
standaard seriële kabel samen met een
nulmodem-adapter. Zie voor een beschrijving
van seriële kabels.Ontkoppel het toetsenbord.De meeste PC-systemen zoeken naar het toetsenbord
tijdens de Power-On Self-Test (POST) en geven een
foutmelding als het toetsenbord niet is gevonden. Sommige
systemen klagen luid over het ontbreken van een toetsenbord
en gaan niet verder met opstarten totdat het is
aangesloten.Indien de computer klaagt over de fout, maar desondanks
opstart, is het niet nodig iets speciaals te doen. Sommige
machines waarop Phoenix BIOS is geïnstalleerd melden
enkel Toetsenbord faalde en gaan
normaal door met opstarten.Indien de machine weigert zonder toetsenbord op te
starten dient het BIOS ingesteld te worden zodat het deze
fout negeert (als het dit kan). Raadpleeg het handboek van
het moederbord voor verdere aanwijzingen.Stel het toetsenbord in op Niet
geïnstalleerd in de BIOS-instellingen.
Het is dan nog steeds mogelijk om het toetsenbord te
gebruiken. Dit zorgt er alleen voor dat het BIOS niet
naar een toetsenbord zoekt tijdens het aanzetten. Het
BIOS dient niet te klagen als het toetsenbord ontbreekt.
Het is mogelijk om het toetsenbord aangesloten te laten,
zelfs als deze vlag is ingesteld op Niet
geïnstalleerd en het toetsenbord werkt nog
steeds.Als een systeem een &ps2;-muis heeft, is het goed
mogelijk dat naast het toetsenbord ook de muis
losgekoppeld moet worden. Dit komt doordat &ps2;-muizen
wat hardware met het toetsenbord delen. Als de muis
aangesloten blijft, kan het zoeken naar het toetsenbord
als resultaat hebben dat het toetsenbord er nog steeds
is. Een Gateway 2000 Pentium 90 MHz systeem met een
AMI BIOS schijnt zich op deze manier te gedragen. Over
het algemeen is dit geen probleem aangezien een muis
zonder toetsenbord sowieso weinig nut heeft.Sluit een domme terminal aan op
COM1
(sio0).Indien er geen domme terminal aanwezig is, kan een oude
PC met een modemprogramma of de seriële poort van een
andere &unix; machine gebruikt worden. Indien er geen
COM1
(sio0) aanwezig is dient deze
geregeld te worden. Op dit moment is er geen manier om een
andere poort dan COM1 voor de
opstartblokken te selecteren, afgezien van deze opnieuw te
compileren. Indien COM1 al voor
een ander apparaat gebruikt wordt, verwijder dat apparaat
dan tijdelijk en installeer een nieuw opstartblok en een
nieuwe kernel zodra &os; werkt. Er wordt aangenomen dat
COM1 sowieso beschikbaar is op een
bestands-/reken-/terminalserver. Als
COM1 ècht voor iets anders
nodig is (en het niet mogelijk is om dat op
COM2
(sio1) over te zetten), is het
sowieso al onverstandig om hiermee bezig te zijn.)Controleer of het instellingenbestand van de kernel de
juiste vlaggen ingesteld heeft voor
COM1
(sio0).Relevante vlaggen zijn:0x10Zet console-ondersteuning voor deze eenheid aan.
De andere consolevlaggen worden genegeerd tenzij deze
is aangezet. Momenteel kan ten hoogste
één eenheid console-ondersteuning
hebben. De eerste (in de volgorde van het
instellingenbestand) waarvan deze vlag is aangezet
heeft de voorkeur. Deze optie zelf maakt de
seriële poort geen console. Stel de volgende
vlag in of gebruik de onderstaande optie
samen met deze vlag.0x20Dwingt deze eenheid om de console te zijn (tenzij
er een andere console met hogere prioriteit is),
ongeacht de onderstaande optie .
De vlag 0x20 dient samen met de
vlag gebruikt te worden.0x40Reserveert deze eenheid (in samenwerking met
0x10) en maakt de eenheid
ontoegankelijk voor normale toegang. Deze vlag dient
niet aangezet te worden op de seriële poort van
de eenheid die als seriële console gebruikt gaat
worden. De enige functie van deze vlag is de eenheid
voor het debuggen van de kernel op afstand aan te
merken. Zie het Ontwikkelaarshandboek
voor meer informatie over debuggen op afstand.In &os; 4.0 en nieuwer is de semantiek van de
vlag 0x40 enigszins anders en is
er een andere vlag om een seriële poort voor
debuggen op afstand te specificeren.Voorbeeld:device sio0 at isa? port IO_COM1 flags 0x10 irq 4Zie de hulppagina &man.sio.4; voor meer details.Indien de vlaggen niet waren ingesteld, dient
UserConfig gedraaid te worden (op een andere console) of de
kernel opnieuw gecompileerd te worden.Maak boot.config aan in de
hoofdmap van de partitie a van de
opstartschijf.Dit bestand instrueert de code op het opstartblok hoe
het systeem opgestart dient te worden. Om de seriële
console te activeren, zijn één of meer van de
volgende opties nodig. Indien meerdere opties gewenst
zijn, dienen ze allemaal op dezelfde regel te staan:Wisselt tussen de interne en de seriële
console. Indien bijvoorbeeld vanaf de interne
(video)console opgestart wordt, kan
gebruikt worden om het
console-apparaat van de opstartlader en de kernel om
te leiden naar de seriële console. Indien vanaf
de seriële poort opgestart wordt, kan
gebruikt worden om de
opstartlader en de kernel het videoscherm als console
te laten gebruiken.Wisselt tussen opstellingen met een enkele en een
dubbele console. In opstellingen met een enkele
console is de console òfwel de interne console
(videoscherm) òfwel de seriële poort,
afhankelijk van bovenstaande optie
. In opstellingen met een dubbele
console worden zowel het videoscherm als de
seriële poort tegelijkertijd console, ongeacht
de toestand van de optie . De
opstelling met een dubbele console heeft alleen
effect als het opstartblok draait. Zodra de
opstartlader het overneemt, wordt de console die met
de optie gespecificeerd is de
enige console.Zorgt ervoor dat het opstartblok naar het
toetsenbord zoekt. Als er geen toetsenbord wordt
gevonden, worden de opties en
automatisch ingesteld.Vanwege ruimtebeperkingen in de huidige versie
van het opstartblok, is de optie
alleen in staat om uitgebreide
toetsenborden te detecteren. Toetsenborden met
minder dan 101 toetsen (en zonder de toetsen F11 en
F12) worden mogelijk niet gedetecteerd.
Toetsenborden op sommige laptops worden vanwege
deze beperking mogelijk niet correct gevonden.
Indien dit het geval is met een systeem, vermijd
dan de optie . Helaas is er
geen mogelijkheid om dit probleem te
omzeilen.Gebruik om de console automatisch te selecteren
òfwel de optie òfwel de
optie om de seriële console te
activeren.De andere opties beschreven in &man.boot.8; kunnen ook
gebruikt worden.De opties, behalve , worden aan de
opstartlader (/boot/loader
doorgegeven. De opstartlader bepaalt of de interne
videopoort of de seriële poort de console wordt door
enkel naar de toestand van de optie te
kijken. Dit betekent dat als de optie ,
maar niet de optie in
/boot.config gespecificeerd wordt, de
seriële poort alleen tijdens het opstartblok als
console gebruikt kan worden, de opstartlader gebruikt het
interne videoscherm als console.Start de machine op.Als &os; gestart wordt, tonen de opstartblokken de
inhoud van /boot.config op de
console. Bijvoorbeeld:/boot.config: -P
Keyboard: noDe tweede regel verschijnt alleen als
in /boot.config
staat en aangegeven wordt of het toetsenbord aanwezig of
afwezig is. Deze berichten gaan of naar de seriële of
interne console of naar beide, afhankelijk van de optie in
/boot.config.OptiesBericht gaat naargeeninterne consoleseriële consoleseriële en interne consolesseriële en interne consoles, toetsenbord aanweziginterne console, toetsenbord afwezigseriële consoleNa de bovenstaande berichten is er een korte pauze
voordat de opstartblokken doorgaan met het laden van de
opstartlader en voordat er verdere berichten op de console
worden afgebeeld. Normaalgesproken hoeven de
opstartblokken niet onderbroken te worden, maar het kan
gedaan worden om er zeker van te zijn dat alles goed is
ingesteld.Om het opstartproces te onderbreken, kan op elke andere
toets dan Enter gedrukt worden. De
opstartblokken vragen dan om verdere actie. Er verschijnt
iets als het volgende:
- >> FreeBSD/i386 BOOT
+ >> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:Controleer of de bovenstaande boodschap naar de
seriële of interne console of beide gaat, naar gelang
de opties in /boot.config. Indien de
boodschap op de juiste console verschijnt kan op
Enter gedrukt worden om het
opstartproces voort te zetten.Als de seriële console gewenst is maar de prompt
niet op de seriële terminal verschijnt, is er iets mis
met de instellingen. Voer in de tussentijd
in en druk op Enter/Return (indien
mogelijk) om aan het opstartblok (en vervolgens de
opstartlader en de kernel) te vertellen dat de seriële
poort console moet worden. Controleer als het systeem
draait wat er verkeerd ging.Nadat de opstartlader is geladen en het derde stadium van
het opstartproces bereikt is, kan er nog steeds gewisseld
worden tussen de interne console en de seriële console
door de juiste omgevingsvariabelen in de opstartlader in te
stellen. Zie .SamenvattingHieronder volgt een samenvatting van de verschillende
instellingen die in deze sectie en de uiteindelijk gekozen
console beschreven zijn.Geval 1: vlaggen ingesteld op 0x10 voor
siodevice sio0 at isa? port IO_COM1 flags 0x10 irq 4Opties in /boot.configConsole tijdens de opstartblokkenConsole tijdens de opstartladerConsole in kernelnietsinterninterninternserieelserieelserieelserieel en interninterninternserieel en internserieelserieel, toetsenbord aanweziginterninternintern, toetsenbord afwezigserieel en internserieelserieelGeval 2: vlaggen ingesteld op 0x30 voor
siodevice sio0 at isa? port IO_COM1 flags 0x30 irq 4Opties in /boot.configConsole tijdens de opstartblokkenConsole tijdens de opstartladerConsole in kernelnietsinterninternserieelserieelserieelserieelserieel en interninternserieelserieel en internserieelserieel, toetsenbord aanweziginterninternserieel, toetsenbord afwezigserieel en internserieelserieelTips voor de seriële consoleEen hogere snelheid voor de seriële poort
instellen!!!Standaard zijn de instellingen van de seriële poort:
9600 baud, 8 bits, geen pariteit, en 1 stopbit. Indien het
wenselijk is om de snelheid te veranderen, dienen in ieder
geval de opstartblokken opnieuw gecompileerd te worden. Voeg
de volgende regel toe aan /etc/make.conf
en compileer nieuwe opstartblokken:BOOT_COMCONSOLE_SPEED=19200Zie voor uitgebreide
instructies over het bouwen en installeren van nieuwe
opstartblokken.Indien de seriële console op een andere manier dan
door opstarten met is ingesteld of indien
de kernel anders is dan die door de opstartblokken is
gebruikt, voeg dan de volgende optie aan het
kernelinstellingenbestand toe en compileer een nieuwe
kernel:options CONSPEED=19200Een andere seriële poort dan
sio0 voor de console
gebruikenHet gebruik van een andere poort dan
sio vergt wat hercompileren. Indien
het gewenst is om een andere seriële poort te gebruiken,
hercompileer dan de opstartblokken, de opstartlader en de
kernel als volgt:De broncode van de kernel moet beschikbaar zijn.
Zie ;Bewerk /etc/make.conf en stel
BOOT_COMCONSOLE_PORT in op het adres
van de te gebruiken poort (0x3F8, 0x2F8, 0x3E8 of 0x2E8).
Alleen sio0 tot en met
sio3
(COM1 tot en met
COM4) zijn te gebruiken.
Seriële kaarten met meerdere poorten werken niet.
Interrupts instellen is niet nodig;Maak een aangepast kernelinstellingenbestand aan en
voeg de juiste vlaggen toe voor de te gebruiken
seriële poort. Als bijvoorbeeld
sio1
(COM2) de console moet
worden:device sio1 at isa? port IO_COM2 flags 0x10 irq 3Alternatief:device sio1 at isa? port IO_COM2 flags 0x30 irq 3Stel de consolevlaggen voor de andere seriële
poorten niet in;Hercompileer en installeer de opstartblokken en de
opstartlader:&prompt.root; cd /sys/boot
&prompt.root; make clean
&prompt.root; make
&prompt.root; make installHerbouw en installeer de kernel;Schrijf de opstartblokken met &man.disklabel.8; naar
de opstartschijf en start met de nieuwe kernel op.De debugger DDB gebruiken via de seriële
verbindingAls het wenselijk is om vanuit de seriële console in
de kerneldebugger te vallen - nuttig voor diagnose op
afstand, maar ook gevaarlijk indien een onbedoelde BREAK op
de seriële poort wordt gegenereerd! - compileer de
kernel dan met de volgende opties:options BREAK_TO_DEBUGGER
options DDBEen aanmeldprompt op de seriële console
krijgenHoewel dit niet nodig is, kan het gewenst zijn om een
aanmeldprompt over de seriële lijn
te krijgen, nu het mogelijk is om opstartboodschappen te zien
en de kerneldebugsessie door de seriële console betreden
kan worden. Hier volgt hoe het te doen.Open het bestand /etc/ttys met een
tekstverwerker en zoek de volgende regels:ttyd0 "/usr/libexec/getty std.9600" unknown off secure
ttyd1 "/usr/libexec/getty std.9600" unknown off secure
ttyd2 "/usr/libexec/getty std.9600" unknown off secure
ttyd3 "/usr/libexec/getty std.9600" unknown off securettyd0 tot en met
ttyd3 komen overeen met
COM1 tot en met
COM4. Wijzig off
in on voor de gewenste poort. Als de
snelheid van de seriële poort is gewijzigd, wijzig dan
std.9600 zodat het met de huidige
instelling overeenkomt, bijvoorbeeld
std.19200.Het kan ook wenselijk zijn om het terminaltype te
wijzigen van unknown naar het eigenlijke
type van de seriële terminal.Voer kill -HUP 1 uit na het wijzigen
van het bestand om de wijzigingen actief te maken.De console vanuit de opstartlader veranderenDe vorige secties beschreven hoe de seriële console
ingesteld kan worden door het instellen van het opstartblok.
Deze sectie toont dat het mogelijk is om de console te
specificeren door het invoeren van enkele opdrachten en
omgevingsvariabelen in de opstartlader. Aangezien de
opstartlader tijdens het derde stadium van het opstartproces
wordt geactiveerd, na het opstartblok, overheersen de
instellingen in de opstartlader de instellingen in het
opstartblok.De seriële console instellenHet is mogelijk om de opstartlader en de kernel gebruik te
laten maken van de seriële console door slechts
één regel naar
/boot/loader.rc te schrijven:set console="comconsole"Dit heeft effect ongeacht de instellingen in het
opstartblok die in de vorige sectie zijn besproken.Het is verstandig om bovenstaande regel de eerste regel
van /boot/loader.rc te maken om de
opstartboodschappen zo vroeg mogelijk op de seriële
console te kunnen zien.Evenzo kan de interne videoconsole worden gespecificeerd
met:set console="vidconsole"Indien de omgevingsvariabele console van
de opstartlader niet ingesteld wordt, gebruikt de
opstartlader, en vervolgens de kernel, de console die door de
optie in het opstartblok wordt
aangegeven.In versie 3.2 en hoger kan de console in
/boot/loader.conf.local of in
/boot/loader.conf, in plaats van in
/boot/loader.rc gespecificeerd worden.
Bij deze methode zou /boot/loader.rc er
uit moeten zien als:include /boot/loader.4th
startMaak daarna /boot/loader.conf.local
aan met de volgende inhoud:console=comconsoleOf:console=vidconsoleZie &man.loader.conf.5; voor meer informatie.Momenteel heeft de opstartlader een optie die gelijk is
aan de optie van het opstartblok en is
er geen voorziening om automatisch de interne console en de
seriële console te selecteren afhankelijk van de
aanwezigheid van een toetsenbord.Een andere seriële poort dan
sio voor de console
gebruikenCompileer de opstartlader opnieuw om een andere
seriële poort dan sio voor de
seriële console te gebruiken. Volg de procedure zoals
beschreven in .ValkuilenDe doelstelling van dit stuk is beheerders in staat te
stellen om toegewijde servers te installeren die geen grafische
hardware of aangesloten toetsenborden nodig hebben. Hoewel de
meeste systemen zonder toetsenbord opstarten, zijn er helaas
aardig wat die niet zonder een grafische adapter opstarten.
Machines met een AMI BIOS kunnen ingesteld worden om zonder
grafische adapter op te starten door de instelling
graphics adapter in de CMOS-instellingen te
wijzigen in Not installed.De meeste systemen ondersteunen deze optie echter niet en
weigeren om zonder weergavehardware op te starten. Voor deze
machines is het nodig om een of andere grafische kaart in een
systeem te laten (zelfs al is het een aftandse monochrome
kaart) hoewel het niet nodig is om een beeldscherm aan te
sluiten. Ook kan geprobeerd worden om een AMI BIOS te
installeren.
diff --git a/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml b/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml
index 4a682fa1ad..4ed7615d8b 100644
--- a/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml
+++ b/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml
@@ -1,1950 +1,1950 @@
KenTomGeupdate voor X.Org's X11 server door MarcFonvieilleErikRadderVertaald door Het X Window systeemOverzicht&os; gebruikt X11 om gebruikers een krachtige grafische
gebruikersschil te bieden. X11 is een open-source
implementatie van het X Window System dat zowel
&xorg; als
&xfree86; bevat. &os; versies tot en
met &os; 4.11-RELEASE en &os; 5.2.1-RELEASE hebben
&xfree86; als standaard, de X11 server
die is uitgebracht door The &xfree86; Project, Inc. Vanaf
&os; 5.3-RELEASE is de officiële standaardversie van
X11 gewijzigd naar &xorg;, de X11
server die is ontwikkeld door de X.Org Foundation.In dit hoofdstuk wordt de installatie en instelling van X11
behandeld met de nadruk op
&xorg;.Meer informatie over de videohardware die X11 ondersteunt
kan gevonden worden op &xorg; of &xfree86;
websites.Na het lezen van dit hoofdstuk weet de lezer:Wat de componenten van het X Window systeem zijn en hoe
zij samenwerken.Hoe X11 geïnstalleerd en ingesteld kan
worden.Hoe verschillende window managers geïnstalleerd en
gebruikt kunnen worden.Hoe &truetype; lettertypen in X11 te gebruiken.Hoe het systeem ingesteld moet worden voor grafisch
aanmelden (XDM).Aangeraden voorkennis:Hoe extra software van derden te installeren
().In dit hoofdstuk wordt het installeren en instellen van de
&xorg; en
&xfree86; X11 servers behandeld. De
bestanden met instellingen, commando's en syntaxis is
overwegend hetzelfde. Waar dat anders is wordt het
aangegeven.X begrijpenX voor de eerste keer gebruiken kan een hele schok zijn voor
mensen die gewend zijn aan andere grafische omgevingen, zoals
µsoft.windows; of &macos;.Het is niet noodzakelijk om alle details te kennen over de
X componenten en hoe zij samenwerken, maar enige basiskennis
draagt wel bij aan krachtiger gebruik kunnen maken van
X.Waarom X?X is niet het eerste windows systeem dat geschreven is voor
&unix;, maar wel het meest populaire. Het oorspronkelijke X
ontwikkelteam werkte eerst aan een ander window systeem. De
naam van dat systeem was W (van
Window). X was gewoon de volgende letter in het
alfabet.X kan gewoon X,
X Window systeem, X11 of nog
anders genoemd worden. X11 X Windows noemen kan
door sommigen als een belediging opgevat worden. &man.X.7; kan
hierover wat licht laten schijnen.Het X client/server modelX is vanaf het begin aan ontworpen om netwerk-centraal te
zijn en gebruikt een client-server model.In het X model, draait de X server op de
computer waar het toetsenbord, beeldscherm en muis aan vast
zit. De server is verantwoordelijk voor het regelen van
beeldinformatie, verwerken van invoer van toetsenbord en muis,
enzovoort. Iedere X applicatie (zoals
XTerm, of
&netscape;) is een
client. Een client stuurt berichten naar de
server zoals teken een venster op deze
coördinaten en de server stuurt berichten terug
zoals de gebruiker heeft op de OK knop
gedrukt.Thuis of in kleine bedrijven draaien zowel de X server als
de X clients op dezelfde machine. Het is heel goed mogelijk
dat de X server op een minder krachtige desktop computer draait
en de X applicaties (de clients) op een, zeg maar, dure
krachtige machine van het bedrijf. Hier vindt de communicatie
tussen de X client en server plaats over het netwerk.Dit verwart sommige mensen, omdat de X terminologie geheel
omgekeerd is aan wat ze verwachten. Dat is namelijk dat de
X server de grote krachtige machine aan het eind
van de gang is en de X client de machine op hun
bureau is.De X server is de machine met het beeldscherm en het
toetsenbord en de X clients zijn de programma's die de
vensters tonen.Het protocol vereist niet dat de clients en servers
hetzelfde besturingssysteem moeten draaien of hetzelfde soort
computer moeten zijn. Het is heel goed mogelijk om X server op
een µsoft.windows; of Apple's &macos; te draaien en er
zijn verschillende gratis en commerciële applicaties die
dat doen.&xorg;, zit vanaf
&os; 5.3-RELEASE als standaard X server bij &os; en is
gratis onder een gelijksoortig licentie als de &os; licentie.
Er zijn ook commerciële X servers voor &os;
verkrijgbaar.De window managerDe filosofie van het X ontwerp lijkt veel op die van
&unix;: gereedschappen, geen beleid. Dit houdt
in dat X niet bepaalt hoe een taak volbracht moet worden. In
plaats daarvan worden gereedschappen geleverd aan de gebruiker
die verantwoordelijk is voor het juiste gebruik hiervan.Deze filosofie verbreedt zich door X niet te laten bepalen
hoe vensters er moeten uitzien op het scherm, hoe ze verplaatst
moeten worden met de muis, welke toetsaanslagen gebruikt moeten
worden om te schakelen tussen vensters (bijvoorbeeld AltTab in het geval van µsoft.windows;), hoe de
titelbalken eruit moeten zien, of ze wel of niet sluitknoppen
moeten hebben, enzovoort.In plaats daarvan delegeert X deze verantwoordelijkheid aan
een applicatie die Window Manager heet. Er zijn
tientallen window managers voor X:
AfterStep,
Blackbox,
ctwm,
Enlightenment,
fvwm,
Sawfish,
twm,
Window Maker en vele anderen. Elk
van deze window managers heeft een eigen voorkomen en werking.
Er zijn window managers met virtual desktops of
met eigen toetscombinaties om de desktop te beheren; of hebben
een Start knop of iets gelijksoortigs. Sommige
gebruiken thema's die uiterlijk en beleving
compleet veranderen door een nieuw thema te kiezen. Window
managers zijn te vinden in de categorie
x11-wm van de Portscollectie.De KDE en
GNOME desktop omgevingen hebben hun
eigen window managers die in het bureaublad zijn
geïntegreerd.Iedere windows manager heeft zijn eigen manier van
instellen. Sommige werken met handgetypte bestanden, anderen
beschikken over grafische gereedschappen voor de meeste
instellingen. Er is er minstens één
(Sawfish) waarvan het
instellingenbestand is geschreven in een dialect van de taal
Lisp.FocusbeleidDe window manager is ook verantwoordelijk voor het
focusbeleid van de muis. Ieder window
geörienteerd systeem heeft een manier nodig om te
bepalen welk venster actief is, toetsaanslagen ontvangt en
daarbij zichtbaar aangeeft welk venster actief is.Een bekend focus beleid heet
click-to-focus. Dit model wordt gebruikt door
µsoft.windows;, waarbij een venster actief wordt door er
met de muis op te klikken.X ondersteunt geen specifiek focusbeleid. In plaats
daarvan bepaalt de window manager op welk venster, op welk
moment, de focus ligt. Een aantal window managers
ondersteunen verschillende focusmethoden. Ze ondersteunen
allemaal click to focus en de meerderheid
ondersteunt ook nog andere.De meest populaire zijn:focus-volgt-muis (focus-follows-mouse)Het venster dat onder de muis zit is het venster
waarop de focus ligt. Dit hoeft niet het venster te
zijn dat bovenop alle andere vensters ligt. De focus
verandert door te wijzen naar een ander venster. Het
is niet nodig om er ook nog eens op te klikken.slordige-focus (sloppy-focus)Dit beleid is een kleine uitbreiding op
focus-follows-mouse. Indien bij focus-follows-mouse de
muis over het root venster (of de achtergrond) gaat,
ligt op geen enkel venster de focus en gaan alle
toetsaanslagen verloren. Bij sloppy-focus, verandert
de focus alleen als de muis in een nieuw venster komt
en niet als het huidige venster wordt verlaten.klik-voor-focus (click-to-focus)Het actieve venster wordt geselecteerd door erop
te klikken. Het venster wordt dan
opgetild en verschijnt dan voor alle
andere vensters. Alle toetsaanslagen worden nu naar
dit venster gestuurd, zelfs als de cursor naar een
ander scherm wordt verplaatst.Veel window managers ondersteunen andere soorten of
variaties op de bovenstaande typen muisbeleid. Hierover
staat meestal meer in de documentatie van de betreffende
window manager.WidgetsDe X aanpak door gereedschappen te leveren en niets af te
dwingen breidt zich uit naar de widgets die in elk
applicatievenster te zien zijn.Widget is een term voor alle dingen van de
gebruikersinterface waarop geklikt kan worden of een andere
actie mee uitgevoerd kan worden: knoppen, vinkvakjes, iconen,
lijsten en ga zo maar door. µsoft.windows; noemt ze
controls.µsoft.windows; en Apple's &macos; hebben beide een erg
strikt widgetbeleid. Van de applicatieontwikkelaars wordt
verwacht dat hun applicaties eenduidig zijn wat betreft
uiterlijk en beleving. Bij X is ervoor gekozen geen grafische
stijl of widgets te verplichten.X applicaties hebben dus niet allemaal hetzelfde uiterlijk.
Er zijn populaire widgetsets en variaties, inclusief de
originele Athena widgetset van MIT,
&motif; (waarvan de widgetset van
µsoft.windows; is afgeleid: schuine randen en drie
gradaties grijs), OpenLook en
anderen.De meeste nieuwe X applicaties gebruiken een modern
uitziende widgetset: Qt, gebruikt door
KDE, of GTK+ van het
GNOME project. Vanuit dit oogpunt
lijkt het enigzins op de &unix; desktop, wat het makkelijker
maakt voor de beginnende gebruiker.X11 installerenZowel &xorg; als
&xfree86; kan op &os;
geïnstalleerd worden. Vanaf &os; 5.3-RELEASE is
&xorg; de standaard X11
implementatie voor &os;. &xorg; is
de X11 server van de open source implementatie die is uitgebracht
door de X.Org Foundation. &xorg; is
gebaseerd op de code van
&xfree86 4.4RC2 en X11R6.6.
De X.Org Foundation heeft X11R6.7 uitgebracht in april
2004 en X11R6.8.2 in februari 2005. De laatstgenoemde versie
is beschikbaar via de &os; Portscollectie.Om &xorg; vanuit de
Portscollectie te bouwen en te installeren:&prompt.root; cd /usr/ports/x11/xorg
&prompt.root; make install cleanOm &xorg; compleet te
bouwen is tenminste 4 GB vrije schijfruimte nodig.Om &xfree86; vanuit de
Portscollectie te bouwen en te installeren:&prompt.root; cd /usr/ports/x11/XFree86-4
&prompt.root; make install cleanX11 kan ook als package geïnstalleerd worden doordat er
binaire packages beschikbaar zijn voor &man.pkg.add.1;. Als
hiervoor de optie remote fetching van
&man.pkg.add.1; wordt gebruikt, dan moet het versienummer
verwijderd worden. &man.pkg.add.1; haalt automatisch de laatste
versie van het programma op.Om het package voor &xorg; op te
halen en te installeren:&prompt.root; pkg_add -r xorgHet &xfree86; 4.X package kan
geïnstalleerd worden met:&prompt.root; pkg_add -r XFree86Het voorbeeld hierboven installeert de complete X11
distributie inclusief de servers, clients, lettertypen enz. Er
zijn ook afzondelijke packages en ports beschikbaar voor
verschillende delen van X11.De rest van dit hoofdstuk licht toe hoe X11 wordt ingesteld
en hoe een productieve desktopomgeving gebouwd kan worden.Van &xfree86; naar
&xorg;Zoals voor iedere port, moet
/usr/ports/UPDATING bekeken worden voor
de wijzigingen. In dit bestand staan instructies die
nodig zijn om een systeem te migreren van
&xfree86; naar
&xorg;.CVSup kan gebruikt worden om
de ports tree bij te werken voordat er wordt begonnen met een
migratie. Naast deze maatregel moet ook sysutils/portupgrade
geïnstalleerd worden voor de migratie van een X11
systeem.In /etc/make.conf kan de variabele
X_WINDOW_SYSTEM=xorg ingesteld worden.
Hierdoor is het zeker dat een systeem weet welke X11 er wordt
gebruikt. De oude variabele XFREE86_VERSION
is komen te vervallen en vervangen door de variabele
X_WINDOW_SYSTEM.Dan kunnen de volgende commando's uitgevoerd worden:&prompt.root; pkg_delete -f /var/db/pkg/imake-4* /var/db/pkg/XFree86-*
&prompt.root; cd /usr/ports/x11/xorg
&prompt.root; make install clean
&prompt.root; pkgdb -F&man.pkgdb.1; is onderdeel van de
portupgrade software en kan packages
inclusief afhankelijkheden bijwerken.Om &xorg; compleet te bouwen
is tenminste 4 GB vrije schijfruimte nodig.ChristopherShumwayGeschreven door X11 instellen&xfree86; 4.X&xfree86;&xorg;X11VoorbereidingVoordat er wordt begonnen met het instellen van X11 is de
volgende informatie van de te installeren machine nodig:Monitor specificatiesChipset van de videokaartGeheugen van de videokaarthorizontale scansnelheidverticale scansnelheidDe specificaties van de monitor worden door X11 gebruikt om
de resolutie en ververssnelheid te bepalen. Deze specificaties
kunnen normaal gesproken verkregen worden uit de bij de monitor
geleverde documentatie of van de website van de leverancier.
Er zijn twee nummerreeksen nodig: de horizontale scansnelheid
(scan rate) en de vertikale syncronisatiesnelheid (vertical
synchronization).De chipset van de videokaart bepaalt welk stuurprogramma
X11 gebruikt om de grafische hardware aan te spreken. Bij de
meeste chipsets kan dit automatisch bepaald worden, maar het is
altijd handig om dit te weten voor het geval de automatische
detectie niet correct werkt.Het geheugen op de videokaart bepaalt de resolutie en
kleurdiepte waarmee het systeem kan werken. Dit is belangrijk
omdat de gebruiker zo de grenzen van zijn systeem kent.X11 instellenHet instellen van X11 bestaat uit meerdere stappen. De
eerste stap is het bouwen van een instellingenbestand. Dit kan
met:&prompt.root; Xorg -configureIn het geval van &xfree86; is
dat:&prompt.root; XFree86 -configureDit genereert een kaal X11 instellingbestand in de map
/root met de naam
xorg.conf.new. Feitelijk wordt bepaald
waar de map staat door hoe er superuser rechten zijn verkregen.
$HOME is anders bij gebruik van &man.su.1; of
bij direct aanmelden. Het X11 programma probeert dan de
grafische hardware te detecteren en schrijft een
instellingenbestand dat de juiste stuurprogramma's laadt voor
de gevonden hardware van het systeem.De volgende stap is het testen van de bestaande
instellingen om te controleren of
&xorg; met de grafische kaart van
het doelsysteem kan werken. Dit kan met:&prompt.root; Xorg -config xorg.conf.newVoor &xfree86;
gebruikers:&prompt.root; XFree86 -xf86config XF86Config.newAls er een zwart/grijs rooster en een X muis cursor
verschijnen was de instelling successvol. Om de test te
stoppen dient gelijktijdig op CtrlAltBackspace gedrukt te
worden.Als de muis niet werkt, dan moet deze eerst ingesteld
worden. Zie in het &os; installatie
hoofdstuk.X11 optimaliserenNu moet xorg.conf.new (of
XF86Config.new als
&xfree86; wordt gebruikt) worden
aangepast aan de smaak van de gebruiker. Hiervoor moet het
bestand in een teksteditor zoals &man.emacs.1; of &man.ee.1;
worden geladen. Eerst moeten de frequenties van de monitor
toegevoegd worden. Die zijn meestal weergegeven als
horizontale en vertikale synchronisatiesnelheid. Deze waarden
worden toegevoegd aan xorg.conf.new in het
onderdeel "Monitor":Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
HorizSync 30-107
VertRefresh 48-120
EndSectionIn het instellingenbestand kunnen de sleutelwoorden
HorizSync en VertRefresh
missen. Als ze er niet staan, moeten ze toegevoegd worden met
de juiste horizontale synchronisatiesnelheid achter het
HorizSync sleutelwoord en de vertikale
synchronisatiesnelheid achter het
VertRefresh sleutelwoord. In het
bovenstaande voorbeeld werden de gegevens van de monitor
ingevoerd.X kan DPMS (Energy Star) eigenschappen gebruiken bij
monitoren die dit ondersteunen. &man.xset.1; regelt de
time-outs en kan de statussen standby, suspend of uit forceren.
Om DPMS eigenschappen voor een monitor te activeren, moet de
volgende regel toegevoegd worden aan de monitor sectie:
Option "DPMS"xorg.confXF86ConfigAls het instellingenbestand
xorg.conf.new (of
XF86Config.new) toch open staat in de
editor dan kan ook meteen de gewenste standaardresolutie en
kleurdiepte gekozen worden. Dit staat in het onderdeel
"Screen":Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768"
EndSubSection
EndSectionHet sleutelwoord DefaultDepth beschrijft
de kleurdiepte die standaard wordt gebruikt. Met de
commandoregeloptie van &man.Xorg.1; (of
&man.XFree86.1;) kan dit overschreven worden. Het sleutelwoord
Modes beschrijft de resolutie waarmee
gewerkt wordt bij de opgegeven kleurdiepte. Alleen VESA
standaarden die door de grafische kaart van het systeem worden
gedefinieerd worden ondersteund. In het voorbeeld hierboven is
de standaardkleurdiepte 24 bits per pixel. Bij deze
kleurdiepte is de toegestane resolutie 1024 bij 768
pixels.Bij het oplossen van problemen zijn de logboekbestanden
van X11 vaak een goede hulp. Ze bevatten informatie voor
ieder apparaat waar de X11 server verbinding mee maakt.
Namen van &xorg; logboekbestanden
hebben de vorm /var/log/Xorg.0.log
(namen van &xfree86;
logboekbestanden hebben de vorm
XFree86.0.log). De precieze naam van
een logboekbestand van variëren van
Xorg.0.log tot
Xorg.8.log enzovoort.Als alles is ingesteld, moet het instellingenbestand op een
plaats gezet worden waar &man.Xorg.1; (of &man.XFree86.1;) het
kan vinden. Dit is meestal
/etc/X11/xorg.conf of
/usr/X11R6/etc/X11/xorg.conf (voor
&xfree86; heet het
/etc/X11/XF86Config of
/usr/X11R6/etc/X11/XF86Config):&prompt.root; cp xorg.conf.new /etc/X11/xorg.confVoor &xfree86;:&prompt.root; cp XF86Config.new /etc/X11/XF86ConfigHet instellen van X11 is nu gereed. Om
&xfree86; 4.X te kunnen starten
met &man.startx.1; dient de x11/wrapper port geïnstalleert
te worden. &xorg; heeft wrappercode
en heeft geen extra wrapper nodig. De X11 server kan ook
gestart worden met &man.xdm.1;.Er zit ook een grafisch instellingenprogramma bij de
X11 distributie: &man.xorgcfg.1; (man.xf86cfg.1; voor
&xfree86;). Hiermee kunnen de
instellingen en stuurprogramma's interactief gekozen worden.
Dit kan ook op het console gebruikt worden:
xorgcfg -textmode. Meer details zijn
te vinden in &man.xorgcfg.1; en &man.xf86cfg.1;.Er is ook nog het hulpprogramma &man.xorgconfig.1;
(&man.xf86config.1; voor
&xfree86;). Dit programma is
op het console te gebruiken en is veel minder
gebruikersvriendelijk, maar het zou wel kunnen werken in
gevallen waarin andere hulpprogramma's dat niet doen.Bijzondere instellingenInstellen met de &intel; i810 graphische
chipsetIntel i810 grafische
chipsetInstellen met &intel; i810 integrated chipsets vereist de
agpgart AGP programmeringsinterface
voor X11 om de kaart aan te sturen. Het &man.agp.4;
stuurprogramma zit in de GENERIC kernel
sinds 4.8-RELEASE en 5.0-RELEASE. Bij eerdere versies dient
het volgende toegevoegd te worden aan het bestand met
kernelinstellingen:device agpHierna dient een nieuwe kernel gebouwd te worden. In
plaats hiervan, kan de kernelmodule
agp.ko automatisch geladen worden met
&man.loader.8; tijdens het opstarten. Hiervoor moet het
volgende in /boot/loader.conf
staan:agp_load="YES"Als gebruik wordt gemaakt van &os; 4.X of recenter,
dan moet een apparaatnode gemaakt worden voor de
programmainterface. Om deze AGP apparaatnode te maken, dient
&man.MAKEDEV.8; gestart te worden in de map
/dev:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV agpgart&os; 5.X of later gebruikt &man.devfs.5; om
apparaatnodes transparant te verwerken, dan is de
stap met &man.MAKEDEV.8; niet meer nodig.Hierdoor wordt het instellen van de hardware net
als ieder andere grafische kaart. Bij systemen die zonder
&man.agp.4; stuurprogramma gecompileerd zijn slaagt het laden
van module met &man.kldload.8; niet. Het stuurprogramma moet
in de kernel geladen zijn tijdens het opstarten door te
compileren of door /boot/loader.conf te
gebruiken.Als &xfree86; 4.1.0 (of
later) gebruikt wordt en er verschijnen berichten over
unresolved symbols zoals
fbPictureInit, dan kan het toevoegen van
de regel aan het
&xfree86; instellingenbestand na
Driver "i810" de oplossing zijn:Option "NoDDC"MurrayStokelyBijgedragen door Lettertypen gebruiken in X11Type1 lettertypenDe standaard lettertypen van X11 zijn allerminst ideaal
voor het typische bureaubladprogramma. Grote
presentatielettertypen zien er hoekig en onprofessioneel uit en
kleine lettertypen in &netscape;
zijn bijna onleesbaar. Er zijn diverse gratis, kwalitatief
goede Type1 (&postscript;) lettertypen die meteen gebruikt
kunnen worden met X11. De URW lettertypecollectie (x11-fonts/urwfonts) heeft
bijvoorbeeld hoge kwaliteit versies van standaard Type1
lettertypen (Times Roman, Helvetica, Palatino en anderen). De
Freefonts collectie (x11-fonts/freefonts) heeft nog meer
lettertypen, maar de meesten ervan zijn bedoeld om in grafische
software als Gimp gebruikt te worden
en zijn niet compleet genoeg om als schermlettertypen te
gebruiken. Daarbij kan X11 zonder veel moeite ingesteld worden
worden om &truetype; lettertypen te gebruiken. Meer informatie
staat in &man.X.7; of de paragraaf over &truetype; Lettertypen.Om de bovenstaande Type1 lettertypecollectie van de
Portscollectie te installeren:&prompt.root; cd /usr/ports/x11-fonts/urwfonts
&prompt.root; make install cleanDat geldt ook voor de freefont en andere collecties. Om de
X server te vertellen dat deze lettertypen bestaan, dient de
volgende regel toegevoegd te worden in
XF86Config (in /etc/
voor &xfree86; versie 3 of in
/etc/X11/ voor versie 4):FontPath "/usr/X11R6/lib/X11/fonts/URW/"Ook kan op de commando regel in de X sessie het volgende
gestart worden:&prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/URW
&prompt.user; xset fp rehashDit werkt wel, maar zodra de X sessie wordt afgesloten is
het weer verdwenen tenzij het is toegevoegd aan het
opstartbestand (~/.xinitrc voor een
normale startx sessie of
~/.xsession als er wordt aangemeld met een
grafische aanmeldmanager als XDM).
Een derde manier is het gebruik van het nieuwe bestand
/usr/X11R6/etc/fonts/local.conf: zie
hiervoor de paragraaf over over Anti-aliasing.&truetype; lettertypenTrueType lettertypenlettertypenTrueType&xfree86; 4.X en
&xorg; hebben ingebouwde
ondersteuning voor het renderen van &truetype; lettertypen. Er
zijn twee verschillende modules die deze functionaliteit
activeren. In dit voorbeeld wordt de freetype module gebruikt
omdat deze beter werkt met de andere lettertypen die back-ends
renderen. Om de freetype module te activeren dient de volgende
regel toegevoegd te worden aan het onderdeel
"Module" van
/etc/X11/xorg.conf of
/etc/X11/XF86Config.Load "freetype"Voor &xfree86; 3.3.X is een
aparte &truetype; lettertypeserver nodig. Meestal wordt
Xfstt gebruikt. Om
Xfstt te installeren hoeft alleen
de port x11-servers/Xfstt
geïnstalleerd te worden.Hierna dient een map voor de &truetype; lettertypen gemaakt
te worden (bijvoorbeeld
/usr/X11R6/lib/X11/fonts/TrueType) en alle
&truetype; lettertypen moeten naar deze map gekopieerd worden.
&truetype; lettertypen kunnen niet direct van een &macintosh;
gehaald worden. Ze moeten in een &unix;/&ms-dos;/&windows;
formaat zijn voor X11. Zodra de bestanden naar deze map zijn
gekopieerd, kan ttmkfdir gestart
worden om een fonts.dir bestand te maken
zodat de X lettertyperenderer weet waar deze nieuwe bestanden
zijn geïnstalleerd. ttmkfdir zit in de
&os; Portscollectie als x11-fonts/ttmkfdir.&prompt.root; cd /usr/X11R6/lib/X11/fonts/TrueType
&prompt.root; ttmkfdir > fonts.dirNu moet de &truetype; map toe aan het lettertypepad
toegevoegd worden. Dit gebeurt op dezelde wijze als boven is
beschreven voor Type1
lettertypen:&prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/TrueType
&prompt.user; xset fp rehashof door een FontPath regel toe te voegen
aan xorg.conf (of
XF86Config).Dat is alles. Nu herkennen
&netscape;,
Gimp,
&staroffice; en alle andere X
applicaties de geïnstalleerde &truetype; lettertypen.
Extreem kleine lettertypen (zoals hoge resolutie tekst op een
webpagina) en extreme grote lettertypen (in
&staroffice;) zien er nu veel beter
uit.Joe MarcusClarkeBijgewerkt door Anti-alias lettertypenanti-alias lettertypenlettertypenanti-aliasAnti-aliasing wordt door X11 sinds ondersteund sinds
&xfree86; versie 4.0.2. Maar
instellingen voor lettertypen waren bewerkelijk voordat
&xfree86; 4.3.0 geïntroduceerd
werd. Vanaf &xfree86; 4.3.0
zijn alle lettertypen die X11 in de mappen
/usr/X11R6/lib/X11/fonts/ en
~/.fonts/ aantreft automatisch beschikbaar
voor anti-aliasing in applicaties die Xft ondersteunen. Niet
alle applicaties ondersteunen Xft. Voorbeelden van applicaties
met Xft ondersteuning zijn Qt 2.3 en hoger (de
hulpprogramma's voor het KDE
bureaublad), GTK+ 2.0 en hoger (de hulpprogramma's voor
het GNOME bureaublad) en
Mozilla 1.2 en hoger.Om te kunnen regelen welke lettertypen gebruik maken van
anti-alias of om de eigenschappen van anti-aliasing in te
stellen kan
/usr/X11R6/etc/fonts/local.conf gemaakt
of gewijzigd worden. In dit bestand kunnen speciale
eigenschappen van het Xft lettertypesysteem aangepast worden.
Deze paragraaf beschijft wat eenvoudige mogelijkheden.
Meer details staan in &man.fonts-conf.5;.XMLDit bestand moet in het XML formaat opgemaakt worden.
Hoofdletters en kleine letters worden onderscheiden en alle
tags moeten netjes worden afgesloten. Het bestand begint met
de gewone XML header gevolgd door een DOCTYPE definitie en
daarna de <fontconfig> tag:<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>Zoals al eerder is vermeld zijn alle lettertypen in
/usr/X11R6/lib/X11/fonts/ en in
~/.fonts/ al geschikt gemaakt voor
Xft applicaties. Als naast deze twee mappen nog een andere
lettertypen moeten kunnen bevatten, dan dient een soortgelijke
regel als de onderstaande aan
/usr/X11R6/etc/fonts/local.conf toegevoegd
te worden:<dir>/path/to/my/fonts</dir>Na het toevoegen van nieuwe lettertypen en zeker nieuwe
lettertypemappen dienen de lettertypecaches opnieuw opgebouwd
worden met:&prompt.root; fc-cache -fAnti-aliasing maakt randen een beetje wazig wat kleine
teksten beter leesbaar maakt en voorkomt
trapvorming van grote letters. Maar het kan
oogkramp veroorzaken als het op normale tekst wordt toegepast.
Om lettertypen kleiner dan 14 punten uit te sluiten van
anti-aliasing moeten de volgende regels toegevoegd
worden:<match target="font">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<test name="pixelsize" compare="less" qual="any">
<double>14</double>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>lettertypenspacingSpatiëring voor sommige enkel gespatieerde lettertypen
kan ook ongepast zijn bij anti-aliasing. Dit lijkt vooral een
probleem te zijn bij KDE. Een
mogelijke oplossing hiervoor is het vergroten van de
spatiëring van die lettertypen naar 100:<match target="pattern" name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>console</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>Het bovenstaande hernoemt de standaardnamen van lettertypen
naar "mono"). Voeg daarna het volgende
toe:<match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="spacing" mode="assign">
<int>100</int>
</edit>
</match>Bepaalde lettertypen, zoals Helvetica, kunnen problemen
hebben met anti-aliasing. Dit uit zich meestal in een
lettertype dat vertikaal door midden lijkt gesneden. Op zijn
ergst kan het applicaties zoals
Mozilla laten crashen. Om dit te
voorkomen kan overwogen worden om ook de volgende regels toe
te voegen aan local.conf:<match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match>Als de wijzigingen in local.conf zijn
gemaakt dient niet vergeten te worden het bestand te eindigen
met de tag </fontconfig> tag. Als dit
niet gedaan wordt, dan worden de wijzigingen niet
gezien.De standaard lettertypeset die geleverd wordt bij X11 is
niet erg geschikt als het aankomt op anti-aliasing. Een veel
betere set standaardlettertypen is de x11-fonts/bitstream-vera port.
Deze port maakt
/usr/X11R6/etc/fonts/local.conf aan als
het nog niet bestaat. Als het al wel bestaat maakt de port
/usr/X11R6/etc/fonts/local.conf-vera aan.
De inhoud van dit bestand dient in
/usr/X11R6/etc/fonts/local.conf geplaatst
te worden en dan vervangen de Bitstream lettertypen automatisch
de standaard X11 Serif, Sans Serif en Monospaced
lettertypen.Als laatste kunnen gebruikers hun eigen instellingen aan
een persoonlijk .fonts.conf bestand
toevoegen. Om dit te doen moet iedere gebruiker het bestand
~/.fonts.conf maken. Ook dit bestand moet
in het XML formaat zijn.LCD screenlettertypenLCD screenNog een laatste punt: bij een LCD scherm kan sub-pixel
sampling prettig zijn. Eigenlijk zorgt dit er voor dat de
(horizontaal gesplitste) rode, groene en blauwe componenten
gewijzigd worden om de horizontale resolutie te verbeteren.
Het resultaat is geweldig. Voeg hiervoor de volgende regels
ergens aan local.conf toe:<match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>Afhankelijk van het soort beeldscherm kan
rgb veranderd moeten worden in
bgr, vrgb of
vbgr. Experimenteren levert de beste
instelling op.Mozillaanti-aliasing lettertypen uitschakelenAnti-aliasing moet werken zodra de X server opnieuw gestart
is. Programma's dienen echter wel te weten hoe ze er mee
moeten werken. Op dit moment geldt dat voor de Qt toolkit en
de hele KDE omgeving kan met
anti-alias omgaan (zie
over KDE). GTK+ en
GNOME anti-aliasing gebruiken via de
Font capplet (zie ).
Mozilla 1.2 en hoger gebruiken
automatisch anti-aliasing. Om dit uit te zetten moet
Mozilla opnieuw gebouwd worden met
de optie -DWITHOUT_XFT.SethKingsleyBijgedragen door De X beeldschermmanagerOverzichtX beeldschermmanagerDe X beeldschermmanager (XDM) is
een optioneel onderdeel van het X Window systeem dat gebruikt
wordt voor beheer van aanmeldsessies. Dit is vaak erg handig
bij bijvoorbeeld X Terminals, desktops en grote
netwerk beeldschermservers. Omdat het X Window systeem
netwerk- en protocolonafhankelijk is, zijn er veel
mogelijkheden om X clients en servers op verschillende machines
in een netwerk te verbinden. XDM
levert een grafische interface waarmee er gekozen kan worden
welke beeldschermserver gebruikt moet worden en handelt
authorisatie informatie (gebruikersnaam en wachtwoord)
af.XDM levert de gebruiker dezelfde
funtionaliteit levert als &man.getty.8; (zie
). Dus het regelt de
systeemaanmeldingen voor de schermen waaraan verbonden moet
worden en start dan een sessie manager namens de gebruiker
(meestal een X window manager). XDM
wacht dan tot het programma stopt en geeft aan dat de gebruiker
klaar is en afgemeld kan worden. Hierna kan
XDM het aanmeldscherm weer tonen
zodat de volgende gebruiker kan aanmelden.XDM gebruikenDe XDM daemon staat in
/usr/X11R6/bin/xdm. Dit programma
kan als root altijd gestart worden en
regelt dan het X weergavegedeelte van de lokale machine. Als
XDM iedere keer bij het opstarten
moet starten is het handig om een regel toe te voegen aan
/etc/ttys. Meer informatie over het
gebruik van dit bestand staat in .
In de standaardversie van /etc/ttys staat
een regel om de applicatie deamon
XDM op een virtuele terminal te
draaien:ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secureStandaard staat deze regel uit. Om hem aan te zetten moet
veld 5 van off naar on
gewijzigd worden en moet met &man.init.8; herstart worden met
gebruikmaking van de aanwijzingen in .
Het eerste veld, de naam van de terminal die het programma
aanstuurt, is ttyv8. Dit houdt in dat
XDM op de negende virtuele terminal
begint te draaien.XDM instellenDe map met instellingen voor XDM
is /usr/X11R6/lib/X11/xdm. In deze map
staan diverse bestanden die gebruikt kunnen worden om het
gedrag en uiterlijk van XDM te
veranderen. Meestal zijn dit de volgende bestanden:BestandOmschrijvingXaccessRegels voor client authorisatie.XresourcesStandaard waarden voor X bronnen.XserversLijst met op afstand en lokaal te beheren schermen.XsessionStandaard sessie script voor logins.Xsetup_*Script die applicaties start voordat de login
interface start.xdm-configAlgehele instellingen voor alle schermen op
deze machine.xdm-errorsErrors die gegenereerd zijn door het server programma.xdm-pidHet proces ID van de draaiende XDM.Tevens staan in deze map een aantal scripts en programma's
om het bureaublad in te stellen als
XDM draait. Het doel van elk van
deze bestanden wordt kort omschreven. De juiste syntaxis en
het gebruik van deze bestanden staat in &man.xdm.1;.De standaardinstelling regelt een eenvoudig rechthoekig
aanmeldvenster met bovenin de hostnaam van de machine in een
groot lettertype met een Login: en
Password: prompt eronder. Dit is een goed
beginpunt om het uiterlijk en werking van het
XDM venster te veranderen.XaccessOm een verbinding te maken met
XDM gestuurde schermen wordt het
protocol X Display Manager Connection Protocol (XDMCP)
gebruikt. Het bestand is een set regels die XDMCP
verbindingen met andere machines bestuurt. Het wordt
genegeerd, tenzij xdm-config is
gewijzigd zodat er wordt geluisterd naar inkomende
verbindingen. Standaard wordt het clients niet toegestaan te
verbinden.XresourcesDit is een bestand met standaarden voor de schermkiezer
en de aanmeldschermen. Hier kan het uiterlijk van het
aanmeldprogramma gewijzigd worden. De indeling is hetzelfde
als bij het app-defaults bestand en is beschreven in de X11
documentatie.XserversDit is een lijst met netwerkschermen waaruit gekozen kan
worden.XsessionDit is het standaard sessiescript voor
XDM dat start nadat de gebruiker
is aangemeld. Normaal heeft iedere gebruiker een eigen
sessiescript in ~/.xsession dat dit
script overheerst.Xsetup_*Deze starten automatisch voordat de kiezers of
aanmeldschermen getoond worden. Er is een script voor ieder
gebruikt scherm met de naam Xsetup_
gevolgd door het lokale schermnummer (bijvoorbeeld
Xsetup_0). Normaal draaien deze scripts
éé of twee programma's in de achtergrond zoals
xconsole.xdm-configDit bevat de instellingen die toegepast worden op ieder
scherm die deze installatie aanstuurt. De indeling is
hetzelfde als van app-defaults.xdm-errorsHierin staan de meldingen die de X servers geven als
XDM ze probeert te starten. Als
een scherm dat gestart is door XDM
om onduidelijke reden hangt, is dit een goede plaats om te
zoeken naar foutmeldingen. Deze meldingen worden ook per
sessie naar het ~/.xsession-errors van
de gebruiker gestuurd.Een netwerk beeldschermserver gebruikenOm gebruikers een verbinding te laten maken met een X
server moeten de toegangsregels gewijzigd worden en de
connectielistener moet aangezet worden. Deze hebben standaard
wat terughoudende waarden. Om XDM
te laten luisteren naar verbindingen moet als eerste een regel
uitgecommentarieerd worden in
xdm-config:! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with XDM
DisplayManager.requestPort: 0Hierna moet XDM herstart worden.
Afwijkend in dit bestand is dat commentaar in app-defaults
bestanden begint met het karakter ! en niet met
het karakter #. Het kan wenselijk zijn om de
toegangcontrole aan te scherpen. Hiervoor staan
voorbeeldregels in Xaccess en
&man.xdm.1;.Alternatieven voor XDMEr bestaan diverse alternatieven voor
XDM programma.
kdm (wordt geleverd bij
KDE) wordt later in dit hoofstuk
behandeld. De kdm
beeldschermmanager biedt vele grafische verbeteringen en
cosmetische franje en de mogelijkheid om de gebruiker de kans
te geven een window manager te laten kiezen bij het
aanmelden.ValentinoVaschettoBijgedragen door BureaubladomgevingenDeze sectie beschrijft de verschillende
bureaubladomgevingen voor X op &os;. Een
bureaubladomgeving kan van alles inhouden: van
een simpele window manager tot een complete suite van
bureaubladapplicaties zoals KDE of
GNOME.GNOMEOver GNOMEGNOMEGNOME is een
gebruikersvriendelijke bureaubladomgeving die de gebruiker de
mogelijkheid geeft om gemakkelijk de computer te gebruiken en
in te stellen. GNOME heeft een
paneel (voor het starten en tonen van statusinformatie van
applicaties), een bureaublad (waar data en applicaties
geplaatst kunnen worden), een set standaard
bureaubladapplicaties en een regels die het makkelijker maakt
voor applicaties om eenduidig met elkaar samen te werken.
Gebruikers van andere besturingssystemen of omgevingen voelen
zich meestal meteen thuis bij het gebruik van de krachtige
grafisch gestuurde omgeving die
GNOME biedt. Meer informatie over
GNOME op &os; staat op de &os; GNOME
Project website. De website bevat ook redelijk
complete FAQ's over het installeren, instellen en beheren van
GNOME.GNOME installerenDe makkelijkste manier om
GNOME te installeren is door
middel van het Desktop Configuration menu
tijdens de &os; installatie zoals beschreven in . Het kan ook makkelijk
geïnstalleerd worden van een package of uit de
Portscollectie:Om het GNOME package te
installeren:&prompt.root; pkg_add -r gnome2Om GNOME vanuit de
Portscollectie te installeren:&prompt.root; cd /usr/ports/x11/gnome2
&prompt.root; make install cleanZodra GNOME geïnstalleerd
is, moet de X server verteld worden dat in plaats van de
standaard window manager GNOME
gebruikt moet worden.De meest eenvoudige manier om
GNOME te starten is via
GDM, de GNOME Display Manager.
GDM wordt meegeïnstalleerd
met de GNOME bureaubladomgeving,
maar staat standaard uitgeschakeld. Dit programma kan
ingeschakeld worden door gdm_enable="YES"
toe te voegen aan /etc/rc.conf. Na
herstarten start GNOME
automatisch bij het aanmelden. Er zijn geen verdere
instellingen nodig.GNOME kan ook gestart worden
vanaf de commandoregel door het bestand
.xinitrc juist in te stellen. Als er al
een .xinitrc is, dan hoeft alleen de
regel die de huidige window manager start veranderd te worden
in een regel die
/usr/X11R6/bin/gnome-session
start. Als er niets speciaals met dit instellingenbestand is
gedaan:&prompt.user; echo "/usr/X11R6/bin/gnome-session" > ~/.xinitrcNu kan met startx de
GNOME bureaubladomgeving gestart
worden.Als een beeldschermmanager als
XDM gebruikt wordt werkt het
bovenstaande niet. In plaats daarvan moet een uitvoerbaar
.xsession gemaakt worden met hetzelfde
commando erin. Hiervoor moet het bestand aangepast worden
door het bestaande window manager commando te vervangen door
/usr/X11R6/bin/gnome-session:
- &prompt.user; echo "#!/bin/sh" > ~/.xsession
-&prompt.user; echo "/usr/X11R6/bin/gnome-session" >> ~/.xsession
+ &prompt.user; echo "#!/bin/sh" > ~/.xsession
+&prompt.user; echo "/usr/X11R6/bin/gnome-session" >> ~/.xsession
&prompt.user; chmod +x ~/.xsessionHet is ook mogelijk de beeldschermanager zo in te stellen
dat de window manager gekozen kan worden tijdens het
aanmelden. In de paragraaf Meer KDE Details wordt
uitgelegd hoe dit gedaan moet worden voor de
kdm beeldschermmanager van
KDE.Anti-alias lettertypen in GNOMEGNOMEanti-alias lettertypenX11 ondersteunt anti-aliasing via de
RENDER uitbreiding. GTK+ 2.0 en hoger
(de toolkit die gebruikt wordt bij
GNOME) kunnen dit gebruiken. Het
instellen van anti-aliasing is beschreven in . Dus met up-to-date software is
anti-aliasing in de GNOME
bureaublagomgeving mogelijk. In ApplicationsDesktop
PreferencesFont kan gekozen wordne voor Best
shapes, Best contrast of
Subpixel smoothing (LCDs). Bij een
GTK+ applicatie die geen onderdeel is van het
GNOME bureaublad moet de
omgevingsvariabele GDK_USE_XFT op
1 gezet worden voordat het programma wordt
gestart.KDEKDEOver KDEKDE is een bureaubladomgeving
die eigentijds is en makkelijk in gebruik.
KDE biedt de gebruiker:Een schitterende eigentijdse desktop;Een desktop die volledig netwerktransparant
is;Een geïntegreerd hulpsysteem dat eenvoudig
bruikbare informatie geeft over het gebruik van het
KDE bureaublad en de
applicaties;Alle KDE applicaties
werken op dezelfde manier en zien er hetzelfde
uit;Gestandaardiseerde menu's en werkbalken,
keybindings, kleurschema's, enzovoort;Internationalisatie:
KDE is beschikbaar in meer dan
40 talen;Gecentraliseerde vraag en antwoord gestuurde
bureaubladinstelling;Een grote hoeveelheid bruikbare
KDE applicaties;KDE heeft een office
applicatie suite die gebaseerd is op
KDE's
KParts technologie en bestaat uit een
spread-sheet, een presentatieprogramma, een organizer, een
nieuwsclient en meer. KDE heeft
ook de webbrowser Konqueror die
niet onder doet voor de andere bestaande webbrowsers op
&unix; systemen. Meer informatie over
KDE staat op de KDE website. Voor &os;
specifieke informatie en bronnen over
KDE is er de &os;-KDE team
website.KDE installerenNet als bij GNOME of iedere
andere bureaubladomgeving is de makkelijkste manier om
KDE te installeren door middel van
het Desktop Configuration menu in het &os;
installatie proces. Dat wordt beschreven in . Ook nu geldt weer dat de
software eenvoudig geïnstalleerd met een package of uit
de Portscollectie:Om KDE van een package te
installeren:&prompt.root; pkg_add -r kde&man.pkg.add.1; haalt automatisch de laatste versie van
de applicatie op.Om KDE vanuit de
Portscollectie te bouwen en te installeren:&prompt.root; cd /usr/ports/x11/kde3
&prompt.root; make install cleanNadat KDE geïnstalleerd
is, moet de X server verteld worden dat déze
applicatie gestart moet worden in plaats van de standaard
window manager. Hiervoor kan .xinitrc
aangepast worden:&prompt.user; echo "exec startkde" > ~/.xinitrcAls het X Window System wordt gestart met
startx is KDE
het bureaublad.Als er een beeldschermmanager als
XDM gebruikt wordt, is de
instelling anders. Dan moet .xsession
gewijzigd worden. Instructies voor
kdm worden later in dit hoofdstuk
beschreven.Meer KDE detailsNadat KDE
geïnstalleerd is op een systeem, kunnen de meeste dingen
uitgezocht worden via de hulppagina's of door de verschillende
menu's aan te wijzen en erop te klikken. &windows; en &mac;
gebruikers voelen zich meestal helemaal thuis.Het beste naslagwerk voor KDE
is de on-line documentatie. KDE
heeft zijn eigen web browser,
Konqueror, tientallen handige
applicatie's en uitgebreide documentatie. De volgende
paragrafen beschrijven de technische zaken die moeilijk
proefondervindelijk te achterhalen zijn.De KDE beeldschermmanagerKDEbeeldschermmanagerEen beheerder van een multi-user systeem die een grafisch
aanmeldscherm willen hebben voor zijn gebruikers kan hiervoor
XDM gebruiken, zoals eerder
beschreven. KDE biedt
kdm als alternatief. Dat is
ontworpen met een beter uiterlijk en heeft meer
aanmeldopties. Gebruikers kunnen via een menu kiezen
welke bureaubladomgeving (KDE,
GNOME of een andere) zij na het
aanmelden willen gebruiken.Om te beginnen dient het KDE
beheerpaneel kcontrol door
root uitgevoerd te worden. Er wordt in
het algemeen vanuit gegaan dat het niet veilig is om als
root de X omgeving te gebruiken. In
plaats daarvan wordt de window manager als normale gebruiker
gestart en in een terminalvenster (zoals
xterm of
KDE's
konsole) wordt root
met su aangemeld. De gebruiker moet
hiervoor wel in de groep wheel
in /etc/group staan). In het
terminalvenster kan dan kcontrol
ingegeven worden.Eerst dient geklikt te worden op het linker icoon
System, daarna op Login
manager. Rechts staan nu verschillende opties
om in te stellen die de KDE
handleiding uitgebreid behandelt. Klik op
sessions aan de rechterzijde. Klik
New type om de verschillende window
managers en bureaubladomgevingen toe te voegen. Dit zijn
alleen de labels, hierop staat dan
KDE en
GNOME in plaats van
startkde of
gnome-session. Er dient ook nog
een label failsafe gemaakt te
worden.Er wordt aangeraden ook met de andere menu's te spelen.
Die zijn hoofdzakeklijk voor cosmetische zaken en spreken
voor zich. Als de instellingen gemaakt zijn kan onderaan op
Apply geklikt worden en kan het
beheerprogramma verlaten worden.Om te zorgen kdm begrijpt
wat de labels (KDE en
GNOME etc) betekenen, dienen de
bestanden die XDM gebruikt
gewijzigd te worden.In KDE 2.2 is dit veranderd:
kdm gebruikt nu zijn eigen
instellingenbestanden. In de
KDE 2.2 documentatie staan
meer details.Als root, in een terminal venster,
dient /usr/X11R6/lib/X11/xdm/Xsession
gewijzigd te worden. In het midden van het bestand is een
onderdeel dat er als volgt uitziet:case $# in
1)
case $1 in
failsafe)
exec xterm -geometry 80x24-0-0
;;
esac
esacEr moeten een aantal regels toegevoegd worden aan dit
onderdeel. Aangenomen dat de gebruikte labels
KDE en GNOME waren, dient
dat het volgende de worden:case $# in
1)
case $1 in
kde)
exec /usr/local/bin/startkde
;;
GNOME)
exec /usr/X11R6/bin/gnome-session
;;
failsafe)
exec xterm -geometry 80x24-0-0
;;
esac
esacOm bij het aanmelden de KDE
bureaubladachtergrond hetzelfde te laten zijn als na het
aanmelden, dient de volgende regel toegevoegd worden aan
/usr/X11R6/lib/X11/xdm/Xsetup_0:/usr/local/bin/krootimageNu moet kdm voorkomen in
/etc/ttys en starten bij de volgende
herstart. Om dit te doen kunnen de instructies uit XDM gebruikt worden en kan
/usr/X11R6/bin/xdm vervangen worden
in /usr/local/bin/kdm.Anti-alias lettertypenKDEanti-alias lettertypenX11 ondersteunt anti-aliasing door de toevoeging de
RENDER toevoeging en vanaf
Qt versie 2.3 ondersteunt Qt (de toolkit die bij
KDE zit) deze toevoeging. Het
instellen hiervan is beschreven in
over anti-aliasing X11 lettertypen. Dus met up-to-date
software is anti-aliasing mogelijk op een
KDE bureaublad. In het
KDE menu moet in PreferencesLook and
FeelFonts het vinkvakje Gebruik
Anti-aliasing voor Lettertypen en Iconen
aangevinkt worden. Voor Qt applicaties die geen onderdeel
zijn van KDE moet de
omgevingsvariabele QT_XFT op
true gezet worden voordat het programma
wordt gestart.XFceOver XFceXFce is een bureaubladomgeving
die gebaseerd is op de GTK+ toolkit die gebruikt wordt bij
GNOME, maar is eenvoudiger en
bedoeld voor gebruikers die een simpel en efficient
bureaublad willen dat toch eenvoudig en makkelijk in te
stellen is. Het ziet er bijna hetzelfde uit als
CDE dat bij commerciële
&unix; systemen zit. Een aantal
XFce functies zijn:Een eenvoudige, makkelijk te bedienen
desktop;Geheel in te stellen met de muis, met klikken en
slepen, enzovoort;Hoofdpaneel hetzelfde als
CDE met menu's, applets en
applicatiesGeïntegreerde window manager, bestandsmanager,
geluidsmanager, GNOME
compliance module en andere zaken;Thema's (sinds het gebruik van GTK+);Snel, licht en efficient: ideaal voor de oudere
of langzamere machines of machines met beperkte
hoeveelheid geheugen;Meer informatie over XFce
staat op de XFce
website.Installeren van XFceXFce is met een package
te installeren:&prompt.root; pkg_add -r xfce4Of vanuit de Portscollectie:&prompt.root; cd /usr/ports/x11-wm/xfce4
&prompt.root; make install cleanNu moet de X server weten dat
XFce gestart moet worden als X de
volgende keer start:&prompt.user; echo "/usr/X11R6/bin/startxfce4" > ~/.xinitrcDe volgende keer dat X start is
XFce het bureaublad. Wederom:
als een beeldschermmanager als XDM
gebruikt wordt, moet .xsession gemaakt
worden zoals beschreven in de paragraaf over GNOME. Nu moet echter het
command /usr/X11R6/bin/startxfce4
gebruikt. Het is ook mogelijk de beeldschermmanager in te
stellen om bureaublad te kiezen bij het aanmelden, zoals is
uitgelegd in de paragraaf over kdm.
diff --git a/nl_NL.ISO8859-1/share/sgml/freebsd.dsl b/nl_NL.ISO8859-1/share/sgml/freebsd.dsl
index f1161f813b..34481bca66 100644
--- a/nl_NL.ISO8859-1/share/sgml/freebsd.dsl
+++ b/nl_NL.ISO8859-1/share/sgml/freebsd.dsl
@@ -1,252 +1,251 @@
]>
(define %refentry-xref-link% #t)
(define ($email-footer$)
(make sequence
(make element gi: "p"
attributes: (list (list "align" "center"))
(make element gi: "small"
(literal "Deze en andere documenten kunnen worden gedownload van ")
(create-link
(list (list "HREF" "ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/"))
(literal "ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/"))
(literal ".")))
(make element gi: "p"
attributes: (list (list "align" "center"))
(make element gi: "small"
(literal "Lees voor vragen over FreeBSD de ")
(create-link
(list (list "HREF" "http://www.FreeBSD.org/docs.html"))
(literal "documentatie"))
(literal " alvorens contact te zoeken <")
(create-link
(list (list "HREF" "mailto:questions@FreeBSD.org"))
(literal "questions@FreeBSD.org"))
(literal ">.")
(make empty-element gi: "br")
(literal "Vragen over deze documentatie kunnen per e-mail naar <")
(create-link (list (list "HREF" "mailto:doc@FreeBSD.org"))
(literal "doc@FreeBSD.org"))
(literal ">.")))))
]]>
number ;; then get the apparent level
+ (string->number ;; then get the apparent level
(substring renderas 4 5)) ;; from "renderas",
(SECTLEVEL))) ;; else use the real level
(hs (HSIZE (- 4 hlevel))))
(make sequence
(make paragraph
font-family-name: %title-font-family%
font-weight: (if (< hlevel 5) 'bold 'medium)
font-posture: (if (< hlevel 5) 'upright 'italic)
font-size: hs
line-spacing: (* hs %line-spacing-factor%)
space-before: (* hs %head-before-factor%)
space-after: (if (node-list-empty? subtitles)
(* hs %head-after-factor%)
0pt)
start-indent: (if (or (>= hlevel 3)
(member (gi) (list (normalize "refsynopsisdiv")
(normalize "refsect1")
(normalize "refsect2")
(normalize "refsect3"))))
%body-start-indent%
0pt)
first-line-start-indent: 0pt
quadding: %section-title-quadding%
keep-with-next?: #t
heading-level: (if %generate-heading-level% (+ hlevel 1) 0)
;; SimpleSects are never AUTO numbered...they aren't hierarchical
(if (> hlevel (- max-section-level-labels 1))
(empty-sosofo)
(if (string=? (element-label (current-node)) "")
(empty-sosofo)
(literal (element-label (current-node))
(gentext-label-title-sep (gi sect)))))
(element-title-sosofo (current-node)))
(with-mode section-title-mode
(process-node-list subtitles))
($section-info$ info))))
]]>
(define (local-en-label-title-sep)
(list
(list (normalize "warning") ": ")
(list (normalize "caution") ": ")
(list (normalize "chapter") " ")
(list (normalize "sect1") " ")
(list (normalize "sect2") " ")
(list (normalize "sect3") " ")
(list (normalize "sect4") " ")
(list (normalize "sect5") " ")
))