Index: translations/nl_NL.ISO8859-1/articles/contributing/article.xml
===================================================================
--- translations/nl_NL.ISO8859-1/articles/contributing/article.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/articles/contributing/article.xml (revision 40367)
@@ -1,604 +1,577 @@
%entities;
]>
Bijdragen aan &os;Vertaald door René Ladan.Dit artikel beschrijft de verschillende manieren waarop een
individu of organisatie kan bijdragen aan het &os;
Project.JordanHubbardBijgedragen door
&tm-attrib.freebsd;
&tm-attrib.ieee;
&tm-attrib.general;
$FreeBSD$$FreeBSD$bijdragenDus u wilt bijdragen aan &os;? Dat is mooi! &os;
bouwt op de bijdragen van zijn gebruikers om te
overleven. Uw bijdragen worden niet alleen gewaardeerd, ze zijn van
vitaal belang voor de aanhoudende groei van &os;.In tegenstelling tot wat sommige mensen u laten geloven, hoeft u
geen doorgewinterde programmeur of een goede vriend van het coreteam
van &os; te zijn opdat uw bijdragen geaccepteerd worden. Een groot
en groeiend aantal internationale bijdragende vrijwilligers, van een
grote variëteit aan leeftijden en technische expertisegebieden,
ontwikkelen &os;. Er is altijd meer werk te doen dan dat er mensen
zijn om het uit te voeren, en meer hulp wordt altijd
gewaardeerd.Het &os; project is verantwoordelijk voor een complete omgeving
van een besturingssysteem, en niet slechts voor alleen een kernel of
een paar verspreide gereedschappen. Hierom staan op onze
TODO-lijsten een groot aantal verschillende
taken: van documentatie, beta-testing en -presentatie, tot de
systeeminstaller en ver gespecialiseerde soorten van
kernelontwikkeling. Mensen van alle niveaus op bijna alle gebieden
kunnen zeer waarschijnlijk meehelpen aan het project.Commerciële entiteiten die betrokken zijn in
&os;-gerelateerde ondernemingen worden ook aangemoedigd om contact
met ons op te nemen. Heeft u een speciale uitbreiding nodig om uw
product te laten werken? U zult zien dat wij ontvankelijk zijn voor
uw verzoeken, op de voorwaarde dat ze niet te vreemdsoortig zijn.
Werkt u aan een product met toegevoegde waarde? Laat het ons weten!
Misschien kunnen we op sommige punten samenwerken. De wereld van
vrije software heeft te maken met vele bestaande aannamen over hoe
software wordt ontwikkeld, verkocht, en onderhouden, en we verzoeken
u om er op zijn minst nog eens naar te kijken.Wat is er nodigDe onderstaande lijst van taken en deelprojecten representeert
een soort amalgaam van verschillende
TODO-lijsten en verzoeken van
gebruikers.Voortdurende taken voor niet-programmeursVeel mensen die betrokken zijn bij &os; zijn geen
programmeurs. Het Project omvat documentatieschrijvers,
Webontwerpers, en mensen ter ondersteuning. Deze mensen hoeven
alleen een tijdsinvestering en een wil om te leren bij te
dragen.Lees regelmatig de FAQ en het Handboek door. Laat het
ons weten als er iets slecht is uitgelegd, is verlopen of
gewoon helemaal verkeerd is. Of stuur een reparatie in
- (SGML is niet moeilijk te leren, maar er is geen bezwaar
+ (Docbook is niet moeilijk te leren, maar er is geen bezwaar
tegen inzendingen in ASCII).Help bij het vertalen van &os;-documentatie in uw eigen
taal. Als er al documentatie in uw taal bestaat, kunt u
helpen door aanvullende documenten te vertalen of te
controleren dat de vertalingen up-to-date zijn. Kijk eerst
op Translations
FAQ in de &os; Documentation Project Primer. U
bindt zich niet aan het vertalen van elk &os;-document door
dit te doen — als vrijwilliger kunt u zo veel of zo
weinig vertalen als u wilt. Als iemand eenmaal begint te
vertalen, sluiten andere mensen zich hier bijna altijd bij
aan. Als u slechts de tijd of energie heeft om
één document te vertalen, vertaal dan
alstublieft de installatie-instructies.Lees af en toe (of regelmatig) de &a.questions; en
&ng.misc;. Het kan veel voldoening geven om uw expertise te
delen en mensen helpen met het oplossen van hun problemen;
soms leert u zelf misschien iets nieuws! Deze fora kunnen
ook een inspiratiebron zijn voor dingen om aan te
werken.Voortdurende taken voor programmeursVoor de meeste van de hier genoemde taken is een
aanzienlijke tijdsinvestering, of diepe kennis van de kernel van
&os;, of beide nodig. Er zijn echter ook vele nuttige taken die
geschikt zijn voor weekend hackers.Als u &os;-CURRENT draait en een goede
Internetverbinding heeft, dan is er een machine current.FreeBSD.org die elke dag een
volledige uitgave bouwt—probeer zo nu en dan om de
nieuwste uitgave ervan te installeren en rapporteer alle
fouten in het proces.Lees de &a.bugs;. Er kunnen problemen zijn waarop u
constructief commentaar kunt geven of waarvoor u testbare
patches kunt geven. U kunt zelfs proberen om een van de
problemen zelf op te lossen.Als u bugfixes weet die succesvol op -CURRENT zijn
toegepast maar nog niet na een redelijk interval naar
-STABLE zijn samengevoegd (normaliter een aantal weken),
stuur de committer dan een beleefde herinnering.Verplaats bijgedragen software naar
src/contrib in de
broncodeboom.Verzeker dat de code in src/contrib up-to-date
is.Bouw de broncodeboom (of slechts een gedeelte ervan) met
extra waarschuwingen aangezet en ruim de waarschuwingen
op.Repareer waarschuwingen voor ports die verouderde dingen
zoals gets() of
malloc.h gebruiken.Als u ports heeft bijgedragen en u &os;-specifieke
veranderingen moest maken, stuur dan uw patches terug naar
de originele auteurs (dit maakt het gemakkelijker
voor u wanneer ze de volgende versie uitbrengen).Verkrijg kopieën van formele standaarden zoals
&posix;. Enkele links over deze standaarden staan op de
website van het &os; C99 & POSIX
Standards Conformance Project. Vergelijk het
gedrag van &os; met dat wat de standaard voorschrijft. Als
het gedrag verschilt, met name in subtiele of obscure
gedeelten van de specificatie, stuur er dan een PR over op.
Indien mogelijk, zoek uit hoe het te repareren en voeg een
patch bij het PR. Als u meent dat de standaard verkeerd is,
vraag dan het standaardorgaan om de vraag te
overwegen.Suggereer verdere taken voor deze lijst!Spit de PR-database doorprobleemrapportdatabaseDe &os;
PR-lijst laat alle huidige actieve probleemrapportages
en verzoeken voor verrijkingen zien die door gebruikers van &os;
zijn ingestuurd. De PR-database bevat zowel taken voor
programmeurs als voor niet-programmeurs. Bekijk de open PR's,
en kijk of iets uw interesse wekt. Sommige van deze kunnen heel
simpele taken zijn waarvoor gewoon een extra paar ogen nodig is
om te bevestigen dat de reparatie in de PR een goede is. Andere
kunnen veel complexer zijn, of bevatten in het geheel geen
reparatie.Begin met de PR's die nog niet aan iemand anders zijn
toegekend. Als een PR aan iemand anders is toegekend, maar het
eruit ziet als iets wat u aankunt, stuur dan een email naar de
persoon waaraan het is toegekend en vraag of u eraan kunt werken
—ze kunnen al een patch hebben die klaar is om getest te
worden, of verdere ideeën hebben die u met ze kan
bespreken.Kies een van de punten van de Ideeën
pagina
- De &os;-lijst van
+ De &os;-lijst van
projecten en ideeën voor vrijwilligers is ook
beschikbaar voor mensen die aan het &os;-project willen
bijdragen. Deze lijst wordt regelmatig bijgewerkt en bevat
punten voor zowel programmeurs als niet-programmeurs met
informatie over elk project.Hoe bij te dragenBijdragen aan het systeem vallen over het algemeen in
één of meer van de volgende 5
categoriën:Foutrapportages en algemeen commentaarEen idee of suggestie van algemene
technische aard dient naar &a.hackers; gemaild te worden.
Evenzo kunnen mensen die in dit soort dingen geïnteresseerd
zijn (en een tolerantie voor grote
hoeveelheden mail hebben!) zich abonneren op de &a.hackers;.
Zie Het
&os; Handboek voor meer informatie over deze en andere
mailinglijsten.Als u een bug vindt of een specifieke verandering opstuurt,
gebruik dan alstublieft het programma &man.send-pr.1; of het
webgebaseerde
equivalent om het te rapporteren. Probeer om elk veld
van het bugrapport in te vullen. Voeg patches direct bij het
rapport tenzij ze 65kB overschrijden. Als de patch geschikt is
om op de broncodeboom te worden toegepast, vermeld dan
[PATCH] in het overzicht van het rapport.
Wanneer u patches bijvoegt, gebruik dan
geen knippen-en-plakken omdat
knippen-en-plakken tabs in spaties omzet en de patches
onbruikbaar maakt. Overweeg wanneer patches veel groter zijn
dan 20 kB om ze te comprimeren (bijvoorbeeld met &man.gzip.1; of
&man.bzip2.1;) en &man.uuencode.1; te gebruiken om hun
gecomprimeerde vorm in uw probleemrapport op te nemen.Na het opsturen van een rapport dient u een bevestiging met
daarbij een volgnummer te krijgen. Bewaar dit volgnummer zodat
u ons op de hoogte kunt houden met details over het probleem
door mail te sturen naar &a.bugfollowup;. Gebruik het nummer
als het berichtonderwerp, bijvoorbeeld "Re:
kern/3377". Aanvullende informatie voor elk
foutrapport dient op deze manier opgestuurd te worden.Als u geen bevestiging ontvangt binnen een redelijke tijd (3
dagen tot een week, afhankelijk van uw emailverbinding) of als
u, om enige reden, het commando &man.send-pr.1; niet kunt
gebruiken, dan kunt u iemand vragen om het voor u op te sturen
door mail te sturen naar de &a.bugs;.Zie ook dit
artikel over het schrijven van goede
probleemrapporten.Veranderingen aan de documentatiedocumentatie-inzendingenVeranderingen aan de documentatie worden overzien door de
&a.doc;. Bekijk de &os; Documentation
Primer voor volledige instructies. Stuur bijdragen en
veranderingen (zelfs kleine zijn welkom!) door &man.send-pr.1;
te gebruiken zoals beschreven is in Foutrapportages en algemeen
commentaar.Veranderingen aan bestaande broncode&os;-CURRENTEen toevoeging of verandering aan de bestaande broncode is
een iets lastigere zaak en hangt in grote mate af van hoe ver u
achterloopt met de huidige toestand van &os;-ontwikkelingen. Er
is een speciale doorgaande uitgave van &os; die bekend staat als
&os;-CURRENT die op verscheidene manieren
beschikbaar wordt gesteld voor het gemak van ontwikkelaars die
actief aan het systeem werken. Zie Het &os;
Handboek voor meer informatie over het verkrijgen en
gebruiken van &os;-CURRENT.Het werken met oudere broncode betekent helaas dat uw
veranderingen soms te verouderd of te ver afgedwaald zijn om
eenvoudig in &os; gerëintegreerd te worden. De kansen
hierop kunnen enigszins geminimaliseerd worden door een
abonnement te nemen op de &a.announce; en de &a.current;
lijsten, waar discussies over de huidige toestand van het
systeem plaatsvinden.Aannemende dat u in staat bent om redelijk recente broncode
veilig te stellen om uw veranderingen op te baseren, is de
volgende stap het produceren van een verzameling diffs om naar
de onderhoudsmensen van &os; te sturen. Dit wordt gedaan met
het commando &man.diff.1;.Het geprefereerde &man.diff.1;-formaat voor het opsturen van
patches is het verenigde uitvoerformaat gegenereerd door
- diff -u. Echter, voor patches die
- substantieel een gebied aan code wijzigen, kan een diff in
- contextuitvoerformaat gegenereerd door
- diff -c leesbaarder en dus verkiesbaar
- zijn.
+ diff -u.
diff
- Bijvoorbeeld:
-
- &prompt.user; diff -c oudbestand nieuwbestand
-
- of
-
- &prompt.user; diff -c -r oudemap nieuwemap
-
- zal zo'n verzameling van contextdiffs aanmaken voor het gegeven
- broncodebestand of maphiërarchie.
-
- Evenzo zal
-
&prompt.user; diff -u oudbestand nieuwbestandof
- &prompt.user; diff -u -r oudemap nieuwemap
+ &prompt.user; diff -u -r -N oudemap nieuwemap
- hetzelfde doen, maar dan in het verenigde diff-formaat.
+ zouden een verzameling van verenigde diffs genereren voor het
+ gegeven bronbestand of maphiërarchie.
- Zie de hulppagina van &man.diff.1; voor meer details.
+ Zie &man.diff.1; voor meer details.Als u eenmaal een verzameling aan diffs heeft (welke u kunt
testen met het commando &man.patch.1;), dient u ze op te sturen
voor opname in &os;. Gebruik het programma &man.send-pr.1;
zoals beschreven in Foutrapportages en algemeen
commentaar. Stuur de diffs niet
alleen naar de &a.hackers; op omdat ze dan verloren raken! We
stellen uw toezending erg op prijs (dit is een
vrijwilligersproject!); omdat we het druk hebben kan het zijn
dat we het niet direct kunnen behandelen, maar het blijft in de
PR-database totdat we het doen. Geef uw toezending aan door
[PATCH] in het overzicht van het rapport op
te nemen.uuencodeAls u het geschikt acht (bijvoorbeeld als u bestanden
toegevoegd, verwijderd, of hernoemd heeft), bundelt u uw
veranderingen in een tar-bestand en draait u
het programma &man.uuencode.1; erop. Archieven die met
&man.shar.1; zijn aangemaakt zijn ook welkom.Als uw verandering mogelijk gevoelig van aard is,
- bijvoorbeeld als u onzeker bent over copyright-dingen die de
- verdere distributie ervan dicteren of als u eenvoudigweg niet
- klaar bent om het uit te geven zonder een voorafgaand nauwer
- review, dan dient u het direct naar &a.core; te sturen in plaats
- van het met &man.send-pr.1; op te sturen. De &a.core; bereikt
+ bijvoorbeeld als u onzeker bent over copyright-zaken die de
+ verdere distributie ervan dicteren, dan dient u het direct naar
+ &a.core; te sturen in plaats
+ van het met &man.send-pr.1; op te sturen. Het &a.core; bereikt
een veel kleinere groep mensen die veel dagelijks werk op &os;
doen. Merk op dat deze groep het ook erg
druk heeft, daarom dient u alleen mail naar hen te
sturen als dit echt noodzakelijk is.Bekijk alstublieft &man.intro.9; en &man.style.9; voor wat
informatie over de codeerstijl. We zouden het op prijs stellen
als u op zijn minst op de hoogte bent van deze informatie
voordat u code opstuurt.Nieuwe code of grote pakketten met toegevoegde waardeIn het geval van een significante bijdrage van een grote
bijdrage aan werk, of van een belangrijke nieuwe mogelijkheid
aan &os;, is het bijna altijd nodig om de veranderingen als
uuencoded tar-bestanden te versturen of ze naar een web- of
FTP-site up te loaden zodat andere mensen ze kunnen benaderen.
Als u geen toegang heeft tot een web- of FTP-site, vraag dan een
geschikte &os;-mailinglijst om iemand de veranderingen voor u te
laten hosten.Bij het werken met grote hoeveelheden code komt het
gevoelige onderwerp van copyright ook altijd naar voren.
Acceptabele copyrights voor code voor opname in &os;
zijn:BSD-copyrightHet BSD-copyright. Dit copyright wordt het meeste
verkozen wegens zijn natuur van geen
voorwaarden en de algemene aantrekkelijkheid voor
commerciële ondernemingen. Ver van het ontmoedigen van
dit soort commercieel gebruik, moedigt het &os; Project
zulke participatie door commerciële interesses actief
aan die uiteindelijk geneigd kunnen zijn om zelf iets in
&os; te investeren.GPLGNU General Public LicenseGNU General Public LicenseDe GNU General Public License, of GPL.
Deze licentie is niet zo populair bij ons wegens de extra
hoeveelheid moeite die gevraagd wordt van iedereen die de
code voor commerciële doeleinden gebruikt, maar vanwege
de grote hoeveelheid aan ge-GPL-de code die we momenteel
nodig hebben (compiler, assembler, tekstopmaker, enz.) zou
het dom zijn om aanvullende bijdragen onder deze licentie te
verwerpen. Code onder de GPL gaat ook naar een ander deel
van de boom, namelijk /sys/gnu of /usr/src/gnu, en is daardoor
eenvoudig te herkennen voor iedereen voor wie de GPL
problemen geeft.Bijdragen die onder een ander soort copyright vallen moeten
zorgvuldig worden herzien voordat hun opname in &os; wordt
overwogen. Bijdragen waarvoor nogal beperkende commerciële
copyrights gelden worden over het algemeen verworpen, alhoewel
de auteurs altijd worden aangemoedigd om zulke veranderingen via
hun eigen kanalen beschikbaar te maken.Om een copyright in BSD-stijl op uw werk te
plaatsen, dient u de volgende tekst aan het uiterste begin van
elk broncodebestand te plaatsen dat u wilt beschermen, en
daarbij de tekst tussen de %% door de juiste
informatie te vervangen:Copyright (c) %%juiste_jaren_hier%%
%%uw_naam_hier%%, %%uw_staat%% %%uw_postcode%%.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer as
the first lines of this file unmodified.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY %%uw_naam_hier%% ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL %%uw_naam_hier%% BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- $Id$
+ $Id$
Voor uw gemak staat een kopie van deze tekst in
/usr/share/examples/etc/bsd-style-copyright.Geld, hardware, of InternettoegangWe accepteren altijd graag donaties om het &os; Project
verder te verspreiden en in een vrijwilligersonderneming zoals
het onze kan een klein beetje een groot verschil maken!
Hardwaredonaties zijn ook erg belangrijk om onze lijst van
ondersteunde randapparatuur uit te breiden aangezien ons het
over het algemeen aan de middelen ontbreekt om zelf zulke dingen
te kopen.Geld donerenDe &os; Foundation is een non-profit, belastinguitgesloten
stichting die opgericht is om de doelen van het &os; Project
verder te verspreiden. Als een 501(c)3-entiteit is de
Foundation over het algemeen uitgesloten van van
inkomstenbelasting van de overheid van de Verenigde Staten alsook van
inkomstenbelasting van de staat Colorado. Donaties aan een
entiteit die van belasting is uitgesloten zijn vaak aftrekbaar
van het belastbaar overheidsinkomen.Donaties kunnen als check verstuurd worden aan:
The FreeBSD Foundation
7321 Brockway Dr.Boulder, CO80303USADe &os; Foundation is nu in staat om donaties via het web
met PayPal te ontvangen. Om een donatie te maken bezoekt u de
website
van de Foundation.Meer informatie over de &os; Foundation kan gevonden
worden in The
FreeBSD Foundation -- an Introduction. Om de
Foundation per email te bereiken, schrijft u naar
bod@FreeBSDFoundation.org.Hardware donerendonatiesHet &os; Project accepteert graag hardwaredonaties die het
goed kan gebruiken. Als u geïnteresseerd bent in het
doneren van hardware, neem dan contact op met het Donations Liaison
Office.
-
-
-
- Internettoegang doneren
-
- We kunnen altijd nieuwe spiegelsites voor FTP, WWW, of
- cvsup gebruiken. Als u zo'n spiegel wilt
- hosten, bekijk dan het artikel Mirroring &os;
- voor meer informatie.
Index: translations/nl_NL.ISO8859-1/articles/contributing-ports/article.xml
===================================================================
--- translations/nl_NL.ISO8859-1/articles/contributing-ports/article.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/articles/contributing-ports/article.xml (revision 40367)
@@ -1,877 +1,877 @@
%entities;
]>
Bijdragen aan de &os; PortscollectieAbstractDit artikel beschrijft de manieren waarop een individu kan
bijdragen aan de &os; Portscollectie.Vertaald door René Ladan.SamLawranceMarkLinimon
&tm-attrib.freebsd;
&tm-attrib.general;
$FreeBSD$$FreeBSD$bijdragen aan portsIntroductieDe Portscollectie is een eeuwig werk-in-uitvoering. We willen
onze gebruikers een reservoir van software van derde partijen
bieden dat gemakkelijk te gebruiken, bijgewerkt, en van hoge
kwaliteit is. We hebben mensen nodig die wat tijd en moeite
investeren om ons dit doel te helpen bereiken.Iedereen kan erin betrokken raken, en er zijn vele manieren om
dat te doen. Bijdragen aan ports is een uitstekende manier om te
helpen om iets aan het project terug te geven. Of u nu op
zoek bent naar een blijvende rol, of naar een uitdaging voor een
regenachtige dag, wij stellen uw hulp zeer op prijs!Als een vrijwilliger kunt u doen en laten wat u wilt. We
vragen echter wel dat u op de hoogte bent van wat andere leden van
de &os;-gemeenschap van u verwachten. U doet er goed aan om dit
te overwegen voordat u besluit om vrijwilliger te worden.Wat u kunt doen om te helpenEr zijn een aantal gemakkelijke manieren waarop u bij kunt
dragen om de portsboom actueel en in een goede toestand te
houden:Zoek wat leuke of nuttige software en creëer er een port
voor.Er is een groot aantal niet-onderhouden ports. Wordt een
onderhouder en adopteer een
port.Als u een port gecreëerd of geadopteerd heeft, dient
u op de hoogte te zijn van wat
u als onderhouder moet doen.Als u op zoek bent naar een snelle uitdaging zou u een bug of een kapotte port kunnen
repareren.Een nieuwe port creëerenEr is een apart document beschikbaar om u door het
creëeren (en bijwerken) van een port te loodsen genaamd het
Porter's
Handbook. Het Porter's Handbook is het beste naslagwerk
wat betreft het werken met het portssysteem. Het noemt details
over hoe het portssysteem werkt en bespreekt aangeraden
praktijken.Een niet-onderhouden port adopterenEen niet-onderhouden port kiezenHet beheer overnemen van ports die niet onderhouden worden
is een uitstekende manier om betrokken te raken.
Niet-onderhouden ports worden alleen bijgewerkt en gerepareerd
wanneer iemand zich aanbiedt om eraan te werken. Er is een
groot aantal ports dat niet onderhouden wordt. Het is een goed
idee om met het adopteren van een port te beginnen die u
regelmatig gebruikt.Voor niet-onderhouden ports staat de
MAINTAINER op
ports@FreeBSD.org. Een lijst van ports die
niet onderhouden wordt en hun huidige fouten en
probleemrapporten kan worden bekeken op het
&os; Ports Monitoring System.Sommige ports beïnvloeden een groot aantal anderen
vanwege afhankelijkheden en relaties als slaafport. Over het
algemeen wensen we dat mensen wat ervaring hebben voordat ze
zulke ports onderhouden.U kunt uitzoeken of een port wel of geen afhankelijkheden
of slaafpoorten heeft door in een hoofdindex van ports genaamd
INDEX te kijken. (De naam van het bestand
varieert naar gelang de uitgave van &os;; bijvoorbeeld
INDEX-8.) Sommige ports hebben
conditionele afhankelijkheden die niet standaard in een bouw van
INDEX worden opgenomen. We verwachten dat
u zulke ports kunt herkennen door naar de
Makefile van andere ports te kijken.Hoe een port te adopterenZorg eerst dat u uw
verantwoordelijkheden als onderhouder begrijpt. Lees
ook het Porter's
Handbook. Neem alstublieft niet meer werk
op u dan dat u op een comfortabele manier
aankunt.U kunt zo snel als u wilt het beheer van een
niet-onderhouden port aanvragen. Stel
MAINTAINER in op uw emailadres en stuur een
PR (probleemrapport) in met de verandering. Als de port
bouwfouten bevat of moet worden bijgewerkt, dan kunt u deze
veranderingen in hetzelfde PR opnemen. Dit helpt omdat veel
committers minder bereid zijn om beheer aan iemand toe te kennen
die geen bekende geschiedenis met &os; heeft. Het insturen van
PR's die bouwfouten repareren of ports bijwerken zijn de beste
manier om er een op te bouwen.Stuur uw PR in met categorie ports en
klasse change-request. Een committer zal uw
PR nakijken, de veranderingen committen, en uiteindelijk het PR
sluiten. Soms kan dit proces even duren (committers zijn ook
vrijwilligers).De uitdaging voor port-onderhoudersDeze sectie geeft u een idee waarom ports onderhouden moeten
worden en schetst de verantwoordelijkheden van een onderhouder van
een port.Waarom ports onderhoud nodig hebbenEen port creëeren is een eenmalige taak. Er zeker van
zijn dat een port actueel is en blijft bouwen en draaien is
een voortdurende inspanning. Onderhouders zijn mensen die
wat van hun tijd wijden aan het vervullen van deze
doelen.De voornaamste reden waarom ports onderhoud nodig hebben is
om het nieuwste en beste van software van derde partijen aan de
&os;-gemeenschap te geven. Een aanvullende uitdaging is om
individuele ports werkend te houden binnen het evoluerende
raamwerk van de Portscollectie.Als onderhouder zult u de volgende uitdagingen moeten
aangaan:Nieuwe versies en updates van software.Nieuwe versies en updates van bestaande geporteerde
software komen continu beschikbaar, en moeten in de
Portscollectie worden verwerkt om actuele software aan te
bieden.Veranderingen aan afhankelijkheden.Als er significante wijzigingen zijn gemaakt aan de
afhankelijkheden van uw port, kan het zijn dat de port
moet worden bijgewerkt zodat het correct blijft
werken.Veranderingen die afhankelijke ports
beïnvloeden.Als andere ports afhankelijk zijn van een port die u
onderhoudt, kan het zijn om veranderingen aan uw port met
andere onderhouders te coördineren.Interactie met andere gebruikers, onderhouders, en
ontwikkelaars.Een gedeelte van een onderhouder zijn is het vervullen
van een ondersteunende rol. Er wordt niet van u verwacht
dat u algemene ondersteuning biedt (maar we juichen het
toe als u dat doet). U dient een centraal punt voor
&os;-specifieke zaken met betrekking tot uw ports te
bieden.Bugs oplossen.Een port kan vatbaar zijn voor bugs die specifiek zijn
voor &os;. U dient deze bugs te onderzoeken en te
repareren wanneer ze worden gerapporteerd. Het grondig
testen van een port om problemen te identificeren voordat
ze in de Portscollectie terechtkomen is nog beter.Veranderingen aan portsinfrastructuur en
beleid.Af en toe worden die systemen die gebruikt worden om
ports en pakketten te bouwen bijgewerkt of wordt er een
nieuwe aanbeveling met betrekking tot de infrastructuur
gemaakt. U dient van deze veranderingen op de hoogte te
zijn indien ze betrekking hebben op uw ports en ze
bijgewerkt moeten worden.Veranderingen aan het basissysteem.&os; is constant in ontwikkeling. Veranderingen aan
software, bibliotheken, de kernel, of zelfs
beleidsveranderingen kunnen noodzakelijke veranderingen
aan ports veroorzaken.Verantwoordelijkheden als onderhouderHoud uw ports actueelDeze sectie schetst het proces dat gevolgd wordt om uw
ports actueel te houden.Dit is een overzicht. Meer informatie over het bijwerken
van een port is beschikbaar in het Porter's
Handbook.Kijk uit naar updatesHoud de stroomopwaartse leverancier in de gaten wat
betreft nieuwe versies, updates, en beveiligingsreparaties
voor de software. Mailinglijsten met aankondigingen of
webpagina's met nieuws zijn hiervoor handig. Soms zullen
gebruikers contact met u opnemen en vragen wanneer uw port
wordt bijgewerkt. Als u het druk hebt met andere dingen
of u het om enige andere reden niet nu kunt bijwerken,
vraag ze dan om u te helpen door een update te
sturen.U kunt ook geautomatiseerde email van de &os;
Ports Version Check ontvangen die u informeert
of er een nieuwe versie van het distributiebestand van uw
port beschikbaar is. Meer informatie over dat systeem
(inclusief hoe toekomstige emails te stoppen) staat in het
bericht.Verwerk veranderingenVerwerk veranderingen in de port wanneer ze
beschikbaar komen. U dient een patch aan te kunnen maken
tussen de originele port en uw bijgewerkte port.Herzie en testHerzie en test uw veranderingen grondig:Bouw, installeer, en test uw port op zoveel
mogelijk platforms en architecturen. Het is
gebruikelijk dat een port op één tak of
platform werkt maar faalt op een ander.Zorg dat de afhankelijkheden van uw port compleet
zijn. De aangeraden manier om dit te doen is door uw
eigen tinderbox voor ports
te installeren. Bekijk bronnen voor meer
informatie.Controleer of de pakketlijst actueel is. Dit
omvat het toevoegen van nieuwe bestanden en mappen en
het verwijderen van ongebruikte regels.Verifieer uw port met &man.portlint.1; als gids.
Bekijk bronnen voor
belangrijke informatie over het gebruik van
portlint.Overweeg of veranderingen aan uw port andere ports
zouden kunnen kapotmaken. Bespreek de veranderingen
met de onderhouders van die ports als dit het geval
is. Dit is speciaal van belang als uw update de
versie van de gedeelde bibliotheek verandert; in dit
geval dienen de afhankelijke ports minstens een
verhoging van de PORTREVISION te
krijgen zodat ze automatisch worden bijgewerkt door
geautomatiseerde gereedschappen als
portmaster of
&man.portupgrade.1;.Stuur veranderingen inVerzend uw update door een PR met een uitleg van de
veranderingen en een patch die de verschillen tussen de
originele port en de bijgewerkte port bevat in te sturen.
Bekijk alstublieft Probleemrapporten
voor &os; schrijven voor informatie over hoe
een echt goed PR te schrijven.Stuur alstublieft geen &man.shar.1;-archief van de
gehele port; gebruik in plaats daarvan &man.diff.1;
-ruN. Op deze manier kunnen committers
veel gemakkelijker zien welke veranderingen er precies
gemaakt worden. De sectie in het Porter's Handbook over
Upgrading bevat meer informatie
hierover.WachtOp een gegeven moment zal een committer uw PR
behandelen. Dit kan minuten, maar ook weken duren — ben
dus alstublieft geduldig.Geef feedbackAls een committer een probleem vindt in uw
veranderingen zullen ze het waarschijnlijk aan u
terugkoppelen. Een snel antwoord helpt om uw PR sneller
gecommit te krijgen, en is beter voor het behouden van een
discussie wanneer er geprobeerd wordt om problemen op te
lossen.En ten slotteUw veranderingen zullen gecommit worden en uw port zal
bijgewerkt zijn. Het PR wordt vervolgens door de
committer gesloten. Dat is alles!Zorg ervoor dat uw ports correct blijven bouwenDeze sectie gaat over het ontdekken en oplossen van
problemen die verhinderen dat uw ports correct bouwen.&os; garandeert alleen dat de Portscollectie op de
-STABLE-takken werkt. U dient
7-STABLE of 8-STABLE te
draaien, bij voorkeur de laatste. In theorie zou het
voldoende moeten zijn om de nieuwste uitgave van elke
STABLE-tak te draaien (aangezien de ABI's niet horen te
veranderen), maar als u die tak kunt draaien is dat
beter.Aangezien de meerderheid van &os;-installaties op
PC-compatibele machines draait (wat wordt aangeduid als de
i386-architectuur), verwachten wij van u
dat u de port op die architectuur werkend houdt. We prefereren dat
de ports ook op de amd64-architectuur draaien.
Het is prima om hulp te vragen als u een van deze machines niet
heeft.De gebruikelijke manieren om te falen voor
niet-i386 machines zijn dat de originele
programmeurs aannamen dat, bijvoorbeeld, pointers
ints zijn of dat een relatief lakse
oudere gcc compiler werd
gebruikt. Steeds meer reorganiseren applicatie-auteurs hun
code om deze aannames te verwijderen — maar als de
auteur de code niet actief onderhoudt, zult u dit zelf
moeten doen.Deze taken moet u uitvoeren om ervoor te zorgen dat uw
port gebouwd kan worden:Kijk uit naar bouwfoutenControleer regelmatig het geautomatiseerde
portbouwcluster, pointyhat,
en de
- scanner voor distributiebestanden om te zien
+ url="http://portscout.FreeBSD.org">scanner voor
+ distributiebestanden om te zien
of er ports zijn die u onderhoudt die er niet in slagen om
gebouwd of opgehaald te worden (bekijk bronnen voor meer informatie
over deze systemen). Rapportages over mislukkingen kunnen
ook via email van andere gebruikers of geautomatiseerde
systemen tot u komen.Verzamel informatieAls u eenmaal op de hoogte bent van een probleem,
verzamel dan informatie die u helpt het op te lossen.
Bouwfouten die door pointyhat worden
gerapporteerd worden vergezeld door logs die aangeven waar
het bouwen mislukte. Als de mislukking door een gebruiker
aan u werd gerapporteerd, vraag ze dan om informatie te
verzenden die u helpt om het probleem te vast te stellen,
zoals:BouwlogsDe commando's en opties die gebruikt werden om de
port te bouwen (inclusief opties die in
/etc/make.conf zijn
ingesteld)Een lijst met op hun systeem geïnstalleerde
pakketten als aangegeven door &man.pkg.info.1;De versie van &os; die ze draaien als aangegeven
door &man.uname.1; -aWanneer hun Portscollectie voor het laatst was
bijgewerktWanneer hun bestand INDEX
voor het laatst was bijgewerktOnderzoek en zoek een oplossingHelaas is er geen rechttoe-rechtaan proces dat gevolgd
kan worden om dit te doen. Herinner: vraag om hulp als u
vast zit! De &a.ports; is een goede plaats om te starten,
en de stroomopwaartse ontwikkelaars zijn vaak zeer
behulpzaam.Stuur veranderingen inNet zoals bij het bijwerken van een port, dient u nu
de veranderingen te integreren, te herzien en te testen,
uw veranderingen als een PR in te sturen, en feedback te
geven als dat nodig is.Stuur patches naar de stroomopwaartse auteursIn sommige gevallen moet u patches maken om de port op
&os; te laten draaien. Sommige (maar niet alle)
stroomopwaartse auteurs zullen zulke patches in hun code
accepteren voor de volgende uitgave. Als dit zo is, kan
dit zelfs hun gebruikers op andere op BSD-gebaseerde
systemen helpen en misschien dubbel werk besparen.
Overweeg alstublieft om geschikte patches naar de auteurs
te zenden als teken van goede wil.Onderzoek foutrapporten en PR's die aan uw port
gerelateerd zijnDeze sectie gaat over het ontdekken en repareren van
bugs.&os;-specifieke bugs worden in het algemeen veroorzaakt
door aannames over de bouw- en draaiomgevingen die niet voor
&os; gelden. U zult zo'n soort fout minder snel aantreffen,
maar het kan subtieler en moeilijker zijn om het vast te
stellen.De onderstaande taken moet u uitvoeren om ervoor te zorgen
dat uw port als bedoeld blijft werken:Reageer op bugrapportenBugs kunnen per email via de
GNATS Probleemrapportendatabase aan u worden
gerapporteerd. Bugs kunnen ook direct door gebruikers aan
u gerapporteerd worden.U dient binnen 14 dagen op PR's en andere rapporten te
reageren, probeer hier alstublieft niet zo lang over te
doen. Probeer zo snel mogelijk te reageren, zelfs als het
alleen maar is om te zeggen dat u wat meer tijd nodig
heeft voordat u aan het PR kan werken.Als u niet na 14 dagen heeft gereageerd, mag elke committer
via een maintainer-timeout uit een PR
committen waarop u niet heeft gereageerd.Verzamel informatieAls degene die de bug heeft gerapporteerd niet ook een
reparatie heeft aangeleverd, zult u informatie moeten
verzamelen die u in staat stelt om er een te
genereren.Als de bug reproduceerbaar is, kunt u zelf de meeste
vereiste informatie verzamelen. Zo niet, vraag dan degene
die de bug rapporteerde om de informatie voor u te
verzamelen, zoals:Een gedetailleerde beschrijving van hun acties,
verwacht gedrag en eigenlijk gedrag van het
programmaKopiën van invoergegevens die de bug
aanzwengeldenInformatie over hun bouw- en uitvoeromgeving —
bijvoorbeeld een lijst van geïnstalleerde
pakketten en de uitvoer van &man.env.1;CoredumpsStacktracesElimineer onjuiste rapportenSommige bugrapporten kunnen onjuist zijn. De
gebruiker kan het programma simpelweg verkeerd gebruikt
hebben; of hun geïnstalleerde pakketten kunnen
verouderd zijn en bijgewerkt moeten worden. Soms is een
gerapporteerde fout niet specifiek voor &os;. Rapporteer
in dit geval de bug naar de stroomopwaartse ontwikkelaars.
Als u de bug kunt repareren, kunt u de port ook patchen
zodat de reparatie is toegepast voor de volgende
stroomopwaartse uitgave.Vind een oplossingNet als met bouwfouten dient u een oplossing voor het
probleem te vinden. Nogmaals, vraag om hulp als u
vastzit!Stuur veranderingen in of keur ze goedNet als bij het bijwerken van een port, dient u nu de
veranderingen te integreren, ze te herzien en te testen,
en ze in een PR op te sturen (of een vervolg te verzenden
als er al een PR voor het probleem bestaat). Als een
andere gebruiker veranderingen in het PR heeft ingezonden,
kunt u ook een vervolg sturen waarin u zegt of u de
veranderingen wel of niet goedkeurt.Ondersteuning biedenDeel van een onderhouder zijn is ondersteuning bieden
— niet noodzakelijk voor de software in het algemeen
— maar voor de port en alle &os;-specifieke rariteiten
en problemen. Gebruikers kunnen contact met u opnemen voor
vragen, suggesties, problemen, en patches. Meestal zal hun
correspondentie specifiek voor &os; zijn.Af en toe zult u uw diplomatieke vaardigheden moeten
gebruiken, en gebruikers die algemene ondersteuning zoeken
vriendelijk naar de geschikte bronnen verwijzen. Minder vaak
zult u iemand tegenkomen die vraagt waarom de
RPMs niet actueel zijn of hoe ze de
software onder Foo Linux kunnen draaien. Grijp deze kans om
ze te vertellen dat uw port actueel is (als het dat is,
uiteraard!) en stel voor dat ze &os; uitproberen.Soms zullen gebruikers en ontwikkelaars besluiten dat u
een druk persoon bent wiens tijd waardevol is en wat werk van
u overnemen. Ze kunnen bijvoorbeeld:een PR insturen of u patches toesturen om uw port bij
te werken,een PR onderzoeken en er misschien een reparatie voor
aanleveren, ofop andere wijze veranderen aan uw port
insturen.In deze gevallen is uw hoofdplicht om op tijd te reageren.
Nogmaals, de timeout voor niet-reagerende onderhouders is 14 dagen.
Na deze periode mogen niet-goedgekeurde veranderingen gecommit
worden. Ze hebben de moeite genomen om dit voor u te doen;
dus probeer tenminste op tijd te reageren. Daarna dient u zo
snel mogelijk hun veranderingen te herzien, goed te keuren, te
wijzigen, of met hen te bediscussiëren.Als u ervoor kunt zorgen dat ze het gevoel hebben dat hun
bijdrage gewaardeerd wordt (wat zo hoort te zijn), dan heeft u
een grotere kans om ze te overtuigen om in de toekomst meer
voor u te doen :-).Een kapotte port vinden en reparerenEr zijn twee zeer goede plaatsen om een port te vinden die wat
aandacht nodig heeft.U kunt de webinterface
voor de probleemrapportdatabase gebruiken om
onopgeloste PR's te doorzoeken en ze te bekijken. De meerderheid
van port-PR's zijn updates, maar met een beetje zoeken door en
uitkammen van de samenvattingen zou u iets moeten kunnen vinden
wat interessant is om aan te werken (de klasse
sw-bug is een goede plaats om te
beginnen).De andere plaats is het &os; Ports Monitoring
System. Zoek in het bijzonder naar niet-onderhouden
ports met bouwfouten en ports die als BROKEN
zijn gemerkt. Het is ook goed om veranderingen voor een
onderhouden port te versturen, maar denk eraan om de onderhouder
te vragen in het geval dat ze al aan het probleem werken.Als u eenmaal een bug of probleem heeft gevonden, verzamel dan
informatie, onderzoek, en repareer het! Als er een bestaand PR
is, ga daar dan mee verder. Maak anders een nieuw PR aan. Uw
veranderingen zullen worden herzien en, als alles goed is,
gecommit.Wanneer het tijd wordt om te stoppenWanneer uw interesses en toewijdingen veranderen, zult u
erachter komen dat u niet langer tijd heeft om sommige van (of al)
uw ports-bijdragen voort te zetten. Dat is prima! Laat ons weten
als u een port niet langer gebruikt of om andere redenen de tijd
of interesse heeft verloren om ports te onderhouden. Op deze
manier kunnen we verder gaan en andere mensen toestaan om te
proberen om aan bestaande problemen met de port te werken zonder
op uw antwoord te wachten. Herinner dat &os; een
vrijwilligersproject is, dus als het onderhouden van een port
niet langer leuk is, is het waarschijnlijk tijd om iemand anders
het te laten doen!In elk geval houdt het Ports Management Team
(portmgr) zich het recht voor om u als
onderhouder te wissen als u uw port voor enige tijd niet actief
heeft onderhouden. (Momenteel is dit 3 maanden.) Hiermee
bedoelen we dat er onopgeloste problemen of wachtende updates zijn
waaraan binnen die tijd niet gewerkt is.Bronnen voor onderhouders en vrijwilligers voor portsHet Porter's Handbook is
uw overlevingsgids voor het portssysteem. Houd het in de
buurt!Probleemrapporten
voor &os; schrijven beschrijft hoe het beste een PR
geformuleerd en ingezonden kan worden. In 2005 werden er meer dan
elfduizend port-PR's ingestuurd! Het volgen van dit artikel helpt
ons enorm om de tijd te verkorten die nodig is om uw PR's te
behandelen.De
Probleemrapportendatabase.Pointyhat
is het bouwcluster voor ports. U kunt Pointyhat gebruiken om
bouwlogs van ports over alle architecturen en grote uitgaven te
controleren.Het &os; Ports Monitoring
System kan u kruislingse informatie over ports zoals
bouwfouten en probleemrapporten laten zien. Als u een onderhouder
bent kunt u het gebruiken om de bouwstatus van uw ports te
controleren. Als een vrijwilliger kunt u het gebruiken om kapotte
en niet-onderhouden ports te vinden die gerepareerd moeten
worden.De scanner voor distributiebestanden voor
- &os; ports kan u ports laten zien waarvoor
+ url="http://portscout.FreeBSD.org">scanner voor distributiebestanden
+ voor &os; ports kan u ports laten zien waarvoor
de distributiebestanden niet kunnen worden opgehaald. U kunt uw
eigen ports controleren of u kunt het gebruiken om ports te vinden
waarvan de MASTER_SITES moet worden
bijwerkt.De tinderbox voor ports is de meest
grondige manier om een port door de gehele cyclus van installatie,
inpakken, en deïnstallatie te halen. Het biedt een
opdrachtregelinterface maar kan ook via een webinterface worden
beheerd. Meer informatie staat op de marcuscom tinderbox
homepage.&man.portlint.1; is een applicatie die gebruikt kan worden om
te verifiëren dat uw port zich aan vele belangrijke
stilistische en functionele richtlijnen houdt.
portlint is een eenvoudige heuristieke
applicatie, dus dient u het alleen als gids
te gebruiken. Als portlint
veranderingen voorstelt die onredelijk lijken, raadpleeg dan het
Porter's Handbook
of vraag om advies.De &a.ports; dient voor algemene ports-gerelateerde
discussies. Het is een goede plaats om hulp te vragen. U kunt
zich
aanmelden, of de lijstarchieven lezen en doorzoeken.
Het lezen van de archieven van de &a.ports-bugs; en de
&a.cvs-ports; kan ook interessant zijn.
Index: translations/nl_NL.ISO8859-1/books/Makefile
===================================================================
--- translations/nl_NL.ISO8859-1/books/Makefile (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/Makefile (revision 40367)
@@ -1,13 +1,13 @@
# $FreeBSD$
#
# %SOURCE% en_US.ISO8859-1/books/Makefile
-# %SRCID% 38826
+# %SRCID% 40258
#
SUBDIR = handbook
SUBDIR += faq
ROOT_SYMLINKS= handbook
DOC_PREFIX?= ${.CURDIR}/../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
Index: translations/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.xml
===================================================================
--- translations/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.xml (revision 40367)
@@ -1,6772 +1,6772 @@
RenéLadanVertaald door Geavanceerde netwerkenSamenvattingDit hoofdstuk zal een aantal onderwerpen over geavanceerde
netwerken behandelen.Na het lezen van dit hoofdstuk is bekend:De beginselen van gateways en routes.Hoe &ieee; 802.11- en &bluetooth;-apparaten te
installeren.Hoe &os; als een bridge te laten werken.Hoe een schijfloze machine vanaf het netwerk op te
starten.Hoe opstarten met netwerk-PXE en een NFS-root-bestandssysteem te
installeren.Hoe Network Address Translation te installeren.Hoe twee computers via PLIP met elkaar te verbinden.Hoe IPv6 op een &os;-machine te installeren.Hoe ATM in te stellen.Hoe de mogelijkheden van CARP, het Common Address
Redundancy Protocol, aan te zetten en te benutten.Voordat dit hoofdstuk gelezen wordt, dient de lezer:De beginselen van de scripts in
/etc/rc te begrijpen.Bekend te zijn met basisnetwerktermen.Te weten hoe een nieuwe &os;-kernel in te stellen en te
installeren ().Te weten hoe aanvullende software van derde partijen te
installeren ().CoranthGryphonBijgedragen door Gateways en routesroutinggatewaysubnetIndien een machine een andere machine over een netwerk wil
vinden, dient er een mechanisme te zijn dat beschrijft hoe van de
ene naar de andere machine te gaan. Dit wordt
routen genoemd. Een route
is een gedefinieerd adressenpaar: een bestemming en
een gateway. Het paar geeft aan dat door deze
gateway gecommuniceerd moet worden om bij
deze bestemming aan te komen. Er zijn drie
soorten bestemmingen: individuele host, subnetten en
standaard. De standaardroute wordt
gebruikt indien geen van de andere routes van toepassing zijn.
Verderop wordt verder op standaardroutes ingegaan. Er zijn ook
drie soorten gateways: individuele hosts, interfaces (ook wel
verbindingen genoemd), en
Ethernet-hardware-adressen (MAC-adressen).Een voorbeeldOm de verschillende aspecten van routen te illustreren,
wordt het volgende voorbeeld van netstat
gebruikt:&prompt.user; netstat -r
Routing tables
Destination Gateway Flags Refs Use Netif Expire
default outside-gw UGSc 37 418 ppp0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
10.20.30.255 link#1 UHLW 1 2421
example.com link#1 UC 0 0
host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
host2.example.com link#1 UC 0 0
224 link#1 UC 0 0standaardrouteDe eerste twee regels geven de standaardroute (die behandeld
wordt in de volgende
sectie) en de localhost-route aan.teruglusapparaatDe interface (kolom Netif) dat deze
routeertabel aangeeft om voor localhost te
gebruiken is lo0, ook bekend als het
teruglusapparaat. Dit geeft aan dat alle verkeer voor deze
bestemming intern gehouden moet worden, in plaats van het over
het LAN te sturen, aangezien het alleen aankomt op de plaats
waar het verzonden werd.EthernetMAC-adresHet volgende dat opvalt zijn de adressen die beginnen met
0:e0:. Dit zijn Ethernet-hardware
adressen, ook bekend als MAC-adressen. &os; zal automatisch
elke host (test0 in het voorbeeld) op het
lokale Ethernet identificeren en een route voor die host
toevoegen, direct van deze host over de Ethernet-interface,
ed0. Er is ook een timeout (kolom
Expire) met deze routesoort geassocieerd,
die gebruikt wordt indien er binnen een bepaalde tijd geen
bericht komt van de host. Indien dit gebeurt, wordt de route
naar deze host automatisch verwijderd. Deze hosts worden
geïdentificeerd door middel van een mechanisme dat bekend
staat als RIP (Routing Information Protocol), dat routes naar
lokale hosts bepaald door middel van een kortste-pad
algoritme.subnet&os; zal ook subnetroutes voor het lokale subnet toevoegen
(10.20.30.255 is het
broadcast-adres voor het subnet
10.20.30, en
example.com is de
domeinnaam die bij dat subnet hoort). De aanduiding
link#1 verwijst naar de eerste Ethernetkaart
in de machine. Merk op dat voor hen geen aanvullende interface
is gespecificeerd.Voor beide groepen (lokale netwerkhosts en lokale subnetten)
worden de routes automatisch ingesteld door een daemon genaamd
routed. Indien dit niet draait,
zullen alleen routes die statisch gedefinieerd (i.e., expliciet
vermeld zijn) bestaan.De regel met host1 verwijst naar deze
host, het kent deze door het Ethernetadres. Aangezien het de
zendende host is, weet &os; dat het de teruglus-interface
(lo0) moet gebruiken, in plaats van het
over de Ethernet-interface te verzenden.De twee regels met host2 geven een
voorbeeld van wat er gebeurt als een alias met &man.ifconfig.8;
gebruikt wordt (in de sectie over Ethernet staan redenen waarom
dit gedaan wordt). Het symbool => na de
interface lo0 zegt dat niet alleen de
teruglus gebruikt wordt (aangezien dit adres ook verwijst naar
de lokale host), maar specifiek dat dit een alias is. Zulke
routes verschijnen alleen op de hosts die de alias ondersteunen;
alle andere hosts op het lokale netwerk vermelden simpelweg een
regel met link#1 voor zulke routes.De laatste regel (bestemming subnet
224) heeft te maken met
multicasten, wat in een andere sectie besproken wordt.Als laatste staan in de kolom Flags
verschillende attributen. Hieronder staat een korte tabel met
enkele van deze vlaggen en hun betekenis:UUp: De route is actief.HHost: De bestemming van de route is een enkele
host.GGateway: Stuur alles voor deze bestemming door naar
dit verre systeem, dat zoekt daar uit waar het verder
naar te sturen.SStatisch: Deze route was handmatig ingesteld, dus
niet automatisch door het systeem aangemaakt.CKloon: Maakt op basis van deze route een nieuwe
route aan voor machines waarmee verbinding wordt
gemaakt. Dit soort routes wordt gewoonlijk in lokale
netwerken gebruikt.WWasGekloond: Geeft aan dat een route automatisch
was ingesteld gebaseerd op een LAN (kloon)-route.LVerbinding: De route maakt gebruik van verwijzingen
naar Ethernet-hardware.StandaardroutesstandaardrouteWanneer het lokale systeem een verbinding met een verre host
moet maken, controleert het de routeertabel op reeds bekende
paden. Indien de verre host binnen een subnet valt waarvan
bekend is hoe het bereikt kan worden (gekloonde routes),
controleert het systeem of het met de daarbij behorende
interface verbinding kan maken.Indien alle bekende paden falen, heeft het systeem
één laatste mogelijkheid: de
standaardroute. Deze route is een speciaal soort
gateway-route (gewoonlijk de enig aanwezige in het systeem) en
is altijd gemarkeerd met een c in het
vlaggenveld. Voor hosts op een LAN staat deze gateway ingesteld
op de machine die een directe verbinding met de buitenwereld
heeft (via een PPP-verbinding, DSL, kabelmodem, T1, of een ander
netwerkinterface).Indien de standaardroute wordt ingesteld voor een machine
die zelf als gateway naar de buitenwereld werkt, zal de
standaardroute de gateway-machine van de internetprovider
zijn.Hieronder volgt een voorbeeld van standaardroutes. Dit is
een veelgebruikte opstelling:
[Lokaal2] <--ether--> [Lokaal1] <--PPP--> [IP-Serv] <--ether--> [T1-GW]De hosts Lokaal1 en
Lokaal2 staan op deze site.
Lokaal1 is verbonden met een internetprovider
via een inbel-PPP-verbinding. Deze PPP-server is door een LAN
verbonden met een andere gateway-computer door een externe
interface naar de Internet-feed van de internetprovider.De standaardroutes voor de machines zijn:HostStandaard gatewayInterfaceLokaal2Lokaal1EthernetLokaal1T1-GWPPPEen veelvoorkomende vraag is Waarom (of hoe) moet
worden ingesteld dat T1-GW de standaard gateway
is voor Lokaal1, in plaats van de server van
de internetprovider waarmee het verbonden is?.Onthoud dat, aangezien de PPP-interface een adres gebruikt
op het lokale netwerk van de internetprovider voor deze kant van
de verbinding, routes voor alle andere machines op het lokale
netwerk van de internetprovider automatisch aangemaakt worden.
Daarom is het al bekend hoe de machine T1-GW
bereikt kan worden, dus is de tussenstap dat het verkeer eerst
naar de server van de internetprovider gestuurd wordt niet
nodig.Het is gebruikelijk om het adres X.X.X.1 te gebruiken als het
gateway-adres voor het lokale netwerk. Dus (gebruikmakend van
hetzelfde voorbeeld), indien de lokale klasse-C adresruimte
10.20.30 was en de
internetprovider 10.9.9
gebruikte, zouden de standaardroutes als volgt zijn:HostStandaardrouteLokaal2 (10.20.30.2)Lokaal1 (10.20.30.1)Lokaal1 (10.20.30.1, 10.9.9.30)T1-GW (10.9.9.1)De standaardroute kan eenvoudig in /etc/rc.conf
gedefinieerd worden. In dit voorbeeld werd de volgende regel aan
/etc/rc.conf van Lokaal2
toegevoegd:defaultrouter="10.20.30.1"Het is ook mogelijk dit met het commando &man.route.8;
direct vanaf de opdrachtregel te doen:&prompt.root; route add default 10.20.30.1Voor meer informatie over het handmatig manipuleren van
netwerkrouteertabellen kan de hulppagina &man.route.8;
geraadpleegd worden.Dual Homed machinesdual homed hostsEr is nog één andere soort opstelling die
behandeld dient te worden, en dat is een host die in twee
verschillende netwerken zit. Technisch gezien telt elke machine
die als gateway dienst doet (in bovenstaand voorbeeld door een
PPP-verbinding te gebruiken) als een dual-homed host. Maar de
term wordt echt alleen gebruikt om naar een machine te verwijzen
die in twee LAN's zit.In het ene geval heeft de machine twee Ethernetkaarten,
waarbij elke kaart een adres op de gescheiden subnetten heeft.
Een alternatief is dat de machine slechts één
Ethernetkaart heeft en gebruikt maakt van &man.ifconfig.8;
aliasing. Het eerste wordt gebruikt indien er twee fysiek
gescheiden Ethernet-netwerken in gebruik zijn, het laatste
indien er één fysiek netwerksegment is, maar er
twee logisch gescheiden subnetten zijn.In beide gevallen worden er routeertabellen aangemaakt zodat
elk subnet weet dat deze machine de gedefinieerde gateway
(ingaande route) naar het andere subnet is. Deze opstelling,
waarbij de machine dienst doet als router tussen de twee
subnetten, wordt vaak gebruikt voor het implementeren van
pakketfilters of firewall-beveiliging in één of
beide richtingen.Om deze machine daadwerkelijk pakketten te laten forwarden
tussen de twee interfaces, moet aan &os; verteld worden dat het
deze mogelijkheid aan moet zetten. In de volgende sectie staan
meer details over hoe dit te doen.Een router bouwenrouterEen netwerkrouter is simpelweg een systeem dat pakketten van
de ene naar de andere interface doorstuurt.
Internetstandaarden en goede ontwerppraktijken verhinderen het
&os; Project dit standaard in &os; aan te zetten. Deze
mogelijkheid kan worden aangezet door de volgende variabele in
&man.rc.conf.5; op YES in te stellen:gateway_enable="YES" # Op YES instellen indien deze host een gateway isDeze optie stelt de &man.sysctl.8; variabele
net.inet.ip.forwarding in op
1. Indien het nodig is om het routen
tijdelijk te stoppen, kan deze variabele tijdelijk op
0 worden teruggezet.BGPRIPOSPFDe nieuwe router heeft routes nodig om te weten waar het
het verkeer naar toe moet sturen. Voor een eenvoudig netwerk
kunnen statische routes gebruikt worden. &os; wordt met het
standaard BSD routeer-daemon &man.routed.8; geleverd, dat
RIP (zowel versie 1 en versie 2) en IRDP spreekt. Ondersteuning
voor BGP v4, OSPF v2, en andere slimme routeerprotocollen is
beschikbaar via het pakket net/zebra. Ook zijn
commerciële producten als
&gated; beschikbaar voor complexere
netwerkrouteer-oplossingen.AlHoangBijgedragen door Statische routes opzettenHandmatige configuratieEr wordt van het volgende netwerk uitgegaan:
INTERNET
| (10.0.0.1/24) Standaardrouter naar Internet
|
|Interface xl0
|10.0.0.10/24
+------+
| | RouterA
| | (FreeBSD gateway)
+------+
| Interface xl1
| 192.168.1.1/24
|
+--------------------------------+
Intern Net 1 | 192.168.1.2/24
|
+------+
| | RouterB
| |
+------+
| 192.168.2.1/24
|
Intern Net 2In dit scenario is RouterA een
&os;-machine die dienst doet als router naar de rest van het
Internet. Het heeft een standaardroute ingesteld op 10.0.0.1, dat het in staat stelt om
verbindingen met de buitenwereld te maken. Er wordt
aangenomen dat RouterB reeds juist is
ingesteld en dat het weet hoe het waar naar toe moet gaan. (In
dit plaatje is dit simpel. Voeg een standaardroute op
RouterB toe door 192.168.1.1 als gateway te
gebruiken.)De routeertabel voor RouterA zou er
ongeveer als volgt uitzien:&prompt.user; netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.1 UGS 0 49378 xl0
127.0.0.1 127.0.0.1 UH 0 6 lo0
10.0.0.0/24 link#1 UC 0 0 xl0
192.168.1.0/24 link#2 UC 0 0 xl1Met de huidige routeertabel is RouterA
niet in staat om Intern Net 2 te bereiken. Het heeft geen
route voor 192.168.2.0/24. Een
manier om dit te verhelpen is om de route handmatig toe te
voegen. Het volgende commando voegt het netwerk Intern Net 2
toe aan de routeertabel van RouterA door
192.168.1.2 als de volgende hop
te gebruiken:&prompt.root; route add -net 192.168.2.0/24 192.168.1.2Nu kan RouterA elke host op het netwerk
192.168.2.0/24 bereiken.Persistente configuratieBovenstaand voorbeeld is perfect voor het instellen van
een statische route op een draaiend systeem. Een probleem is
dat de routeerinformatie verdwijnt indien de &os;-machine
opnieuw wordt opgestart. Aanvullende statische routes kunnen in
/etc/rc.conf opgenomen worden:# Voeg Intern Net 2 als een statische route toe
static_routes="internnet2"
route_internnet2="-net 192.168.2.0/24 192.168.1.2"De instellingsvariabele static_routes
is een lijst van strings gescheiden door een spatie. Elke
string verwijst naar een routenaam. Bovenstaand voorbeeld
heeft slechts één string in
static_routes. Dit is de string
internnet2. Vervolgens wordt een
instellingsvariabele
route_internnet2
toegevoegd waarin alle instellingsparameters staan die aan
het commando &man.route.8; moeten worden doorgegeven. Voor
bovenstaand voorbeeld zou het volgende commando zijn
gebruikt:&prompt.root; route add -net 192.168.2.0/24 192.168.1.2Dus is "-net 192.168.2.0/24 192.168.1.2"
nodig.Zoals hierboven is vermeld is het mogelijk om meerdere
strings in static_routes te hebben. Dit
maakt het mogelijk om meerdere statische routes aan te maken.
De volgende regels geven een voorbeeld van het toevoegen van
statische routes voor de netwerken 192.168.0.0/24 en 192.168.1.0/24 op een denkbeeldige
router:static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"Routes propagerenroutes propagerenEr is al gesproken over hoe routes naar de buitenwereld te
definiëren, maar niet over hoe de buitenwereld ons kan
vinden.Het is al bekend dat routeertabellen aangemaakt kunnen
worden zodat al het verkeer voor een bepaalde adresruimte (in
ons voorbeeld een klasse-C subnet) naar een bepaalde host op dat
netwerk gezonden kan worden, dat de ingaande pakketten
doorgeeft.Wanneer een adresruimte aan een site wordt toegewezen, stelt
de serviceprovider al hun routeertabellen zodanig in dat al het
verkeer voor het bijhorende subnet naar de PPP-verbinding van de
site gezonden wordt. Maar hoe weten sites door het land heen
hoe naar de internetprovider van deze site te versturen?Er bestaat een systeem (dat veel lijkt op de gedistribueerde
DNS-informatie) dat alle toegewezen adresruimtes bijhoudt, en
hun verbindingspunt met de Internet Backbone definieert. De
Backbone zijn de grote kabels die Internetverkeer
door het land en over de wereld sturen. Elke backbone-machine
heeft een kopie van een master-verzameling van tabellen, die
verkeer voor een bepaald netwerk naar een bepaalde
backbone-carrier sturen, en van daaruit naar een keten van
serviceproviders totdat het netwerk van de site
bereikt is.Het is de taak van de serviceprovider om bij de
backbone-sites aan te geven dat zij het verbindingspunt (en dus
het ingaande pad) zijn voor de site. Dit staat bekend als
routepropagatie.Problemen oplossentracerouteSoms is er een probleem met routepropagatie en kunnen
sommige sites geen verbinding maken. Misschien is het nuttigste
commando om proberen uit te zoeken waar het routen misgaat
&man.traceroute.8;. Het is ook nuttig als er geen verbinding
mogelijk lijkt met een verre machine (dus als &man.ping.8;
faalt).Het commando &man.traceroute.8; wordt gedraaid met de naam
van de verre host waarmee geprobeerd wordt te verbinden. Het
laat de gateway-hosts zien langs het gepoogde pad, dat
uiteindelijk de doelhost bereikt, of wegens een gebrek aan
verbinding afgebroken wordt.Raadpleeg voor meer informatie de hulppagina voor
&man.traceroute.8;.Multicast routenmulticast routenkerneloptiesMROUTING&os; ondersteunt zowel multicast-applicaties als multicast
routen van huis uit. Voor multicast-applicaties is geen
speciale configuratie van &os; nodig; applicaties draaien over
het algemeen als geleverd. Voor multicast routen dient
ondersteuning in de kernel gecompileerd te worden:options MROUTINGOok dient de multicast-routeer-daemon &man.mrouted.8;
ingesteld worden zodat het tunnels en DVMRP
via /etc/mrouted.conf aanmaakt. Kijk voor
meer details over multicast-instellingen in de hulppagina voor
&man.mrouted.8;.De &man.mrouted.8; multicast-routeer-daemon implementeert
het multicast-routeer-protocol DVRMP welke
in veel multicast-installaties grotendeels is vervangen door
&man.pim.4;. &man.mrouted.8; en de gerelateerde
&man.map-mbone.8; en &man.mrinfo.8; gereedschappen zijn
beschikbaar in de &os; Ports Collectie als
net/mrouted.LoaderMarcFonvieilleMurrayStokelyDraadloze netwerkendraadloze netwerken802.11draadloze netwerkenDe beginselen van draadloos netwerkenDe meeste draadloze netwerken zijn op de &ieee; 802.11
standaarden gebaseerd. Een eenvoudig draadloos netwerk bestaat
uit meerdere stations die met radio's communiceren die in de
2,4GHz of de 5GHz band uitzenden (alhoewel dit regionaal
varieert en het ook verandert om communicatie in de 2,3GHz en
de 4,9GHz banden mogelijk te maken).802.11-netwerken zijn op twee manieren georganiseerd: in
infrastructuurmodus treedt
één station als meester op, alle andere stations
associëren met dit station; dit netwerk staat bekend als
een BSS en het meesterstation heet een toegangspunt (AP). In
een BSS gaat alle communicatie via het AP; zelfs als een station
met een ander draadloos station wil communiceren gaan de
boodschappen door het AP. In de tweede netwerkvorm is er geen
meester en communiceren de stations direct. Deze netwerkvorm is
een IBSS en staat gewoonlijk bekend als een ad-hoc
netwerk.802.11 netwerken begonnen in de 2,4GHz band waarbij gebruik
werd gemaakt van protocollen die door de &ieee; 802.11 en
802.11b standaarden worden gedefinieerd. Deze specificaties
omvatten de werkfrequenties, karakteristieken van de MAC-lagen
waaronder frame- en zendsnelheden (communicatie kan met
verschillende snelheden plaatsvinden). Later definieerde de
802.11a-standaard het werken in de 5GHz band, inclusief andere
mechanismen voor signalering en hogere zendsnelheden. Nog later
werd de 802.11g-standaard gedefinieerd om gebruik te kunnen
maken van de signalerings- en zendmechanismen van 802.11a in de
2,4GHz band zodanig dat het met terugwerkende kracht werkt op
802.11b-netwerken.Afgezien van de onderliggende zendtechnieken beschikken
802.11-netwerken over een verscheidenheid aan
beveiligingstechnieken. De originele 802.11-specificaties
definieerden een eenvoudig beveiligingsprotocol genaamd WEP.
Dit protocol maakt gebruik van een vaste, van te voren gedeelde
sleutel en het cryptografische algoritme RC4 om de gegevens die
over het netwerk verstuurd worden te coderen. Alle stations
dienen dezelfde sleutel te gebruiken om te kunnen communiceren.
Het is bewezen dat dit mechanisme eenvoudig te kraken is en
wordt nu, afgezien om voorbijgaande gebruikers te ontmoedigen
het netwerk te gebruiken, nog zelden gebruikt. De huidige
beveiligingsmethoden worden gegeven door de &ieee; 802.11i
specificatie dat nieuwe cryptografische algoritmen en een
aanvullend protocol om stations aan een toegangspunt te
authenticeren en om sleutels voor gegevenscommunicatie uit te
wisselen definieert. Verder worden cryptografische sleutels
periodiek ververst en zijn er mechanismen om indringpogingen
te detecteren (en om indringpogingen tegen te gaan). Een andere
specificatie van een veelgebruikt beveiligingsprotocol in
draadloze netwerken is WPA. Dit was een voorloper op 802.11i
en gedefinieerd door een industriegroep als een tussenmaatregel
terwijl er gewacht werd op de ratificatie van 802.11i. WPA
specificeert een deel van de eisen van 802.11i en is ontworpen
voor implementatie op verouderde hardware. In het bijzonder
vereist WPA alleen de TKIP-sleutel die van de originele
WEP-sleutel is afgeleid. 802.11i staat het gebruik van TKIP toe
maar vereist ook ondersteuning voor een sterkere sleutel,
AES-CCM, om gegevens te versleutelen. (De AES-sleutel was niet
nodig in WPA omdat het rekenkundig te kostbaar werd geacht voor
implementatie op verouderde hardware.)Afgezien van de bovenstaande protocolstandaarden is de
andere belangrijke standaard waarvan bewustzijn belangrijk is
802.11e. Deze standaard definieert het opstellen van
multimediatoepassingen zoals gestroomde video en voice over IP
(VoIP) binnen een 802.11-netwerk. Net als 802.11i heeft ook
802.11e een voorgaande specificatie genaamd WME (later hernoemd
tot WMM) die door een industriegroep is gedefinieerd als een
deelverzameling van 802.11e die nu kan worden gebruikt om
multimediatoepassingen mogelijk te maken terwijl er gewacht
wordt op de uiteindelijke ratificatie van 802.11e. Het
belangrijkste om over 802.11e en WME/WMM te weten is dat ze
gepriotiseerd verkeersgebruik van een draadloos netwerk mogelijk
maken door middel van Quality of Service (QoS) protocollen en
protocollen voor verbeterde mediatoegang. Een juiste
implementatie van deze protocollen maken snelle gegevensbursts
en gepriotiseerde verkeersstromen mogelijk.&os; ondersteunt netwerken die met 802.11a,
802.11b, en 802.11g werken. Ook worden de
veiligheidsprotocollen WPA en 802.11i ondersteund (samen met
11a, 11b, of 11g) en QoS en de verkeerspriorisatieprotocollen
die nodig zijn voor de protocollen WME/WMM worden voor een
beperkte verzameling draadloze apparatuur ondersteund.BasisinstallatieKernelinstellingenOm van een draadloos netwerk gebruik te maken is het nodig
om een draadloze netwerkkaart te hebben en om de kernel met de
juiste ondersteuning voor draadloze netwerken in te stellen.
Het laatste is verdeeld in meerdere modulen zodat alleen de
software ingesteld hoeft te worden die daadwerkelijk gebruikt
zal worden.Ten eerste is een draadloos netwerkapparaat nodig. De
meestgebruikte apparaten zijn degenen die onderdelen van
Atheros gebruiken. Deze apparaten worden ondersteund door het
stuurprogramma &man.ath.4; en voor hen dient de volgende regel
aan /boot/loader.conf
toegevoegd te worden:if_ath_load="YES"Het stuurprogramma voor Atheros is opgedeeld in drie
verschillende delen: het eigenlijke stuurprogramma
(&man.ath.4;), de ondersteuningslaag voor de hardware die
chip-specifieke functies afhandelt (&man.ath.hal.4;), en een
algoritme om de snelheid om frames te verzenden te kiezen uit
een reeks mogelijke waarden (hier ath_rate_sample). Indien
deze ondersteuning als kernelmodules wordt geladen, zullen de
afhankelijkheden automatisch afgehandeld worden. Voor andere
apparaten dan die van Atheros dient de module voor dat
stuurprogramma geladen te worden; bijvoorbeeld:if_wi_load="YES"voor apparaten die op onderdelen van Intersil Prism zijn
gebaseerd (stuurprogramma &man.wi.4;).In de rest van dit document zal een &man.ath.4; apparaat
gebruikt worden, de naam van het apparaat in de voorbeelden
dient aangepast te worden aan de lokale installatie. Een
lijst van beschikbare draadloze stuurprogramma's en ondersteunde
adapters staat in de &os; Hardware Notes. Kopieën hiervan
voor verschillende uitgaven en architecturen zijn beschikbaar op
de Uitgave
Informatie pagina van de &os; website. Indien er geen
origineel stuurprogramma voor het draadloze apparaat
bestaat, is het mogelijk om te proberen om direct het
stuurprogramma van &windows; proberen te gebruiken met
behulp van de stuurprogramma-wrapper NDIS.Nadat het apparaatstuurprogramma is ingesteld onder &os; 7.X
is het ook nodig om de ondersteuning voor 802.11-netwerken waarvan het
stuurprogramma gebruik maakt in te stellen. Voor het
stuurprogramma &man.ath.4; zijn dit minimaal de modules
&man.wlan.4;, wlan_scan_ap en
wlan_scan_sta; de module &man.wlan.4; wordt
automatisch geladen met het stuurprogramma voor draadloze
apparaten, de overige modules dienen tijdens het opstarten
geladen te worden in /boot/loader.conf:wlan_scan_ap_load="YES"
wlan_scan_sta_load="YES"Sinds &os; 8.0 zijn deze modules deel van het
basisstuurprogramma &man.wlan.4; dat dynamisch met het stuurprogramma
voor de adapter wordt geladen.Daarvoor zijn ook de modules nodig die cryptografische
ondersteuning implementeren voor de te gebruiken
veiligheidsprotocollen. Het is de bedoeling dat ze dynamisch
door de module &man.wlan.4; worden geladen maar momenteel
dienen ze handmatig ingesteld te worden. De volgende modules
zijn beschikbaar: &man.wlan.wep.4;, &man.wlan.ccmp.4;, en
&man.wlan.tkip.4;. Zowel de stuurprogramma's
&man.wlan.ccmp.4; en &man.wlan.tkip.4; zijn alleen nodig
indien het veiligheidsprotocol WPA en/of 802.11i gebruikt
wordt. Indien het netwerk encryptieloos dient te zijn, is de
ondersteuning van &man.wlan.wep.4; niet nodig. Om deze modules
tijdens het opstarten te laden, dienen de volgende regels aan
/boot/loader.conf toegevoegd te worden:wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"Nadat deze informatie aan het instellingenbestand om het
systeem op te starten (i.e.
/boot/loader.conf) is toegevoegd, is het
noodzakelijk om de &os;-computer opnieuw op te starten.
Indien het ongewenst is om de computer nu opnieuw op te
starten, kunnen de modules ook handmatig worden geladen door
&man.kldload.8; te gebruiken.Indien het gebruik van modules ongewenst is, kunnen deze
stuurprogramma's in de kernel worden gecompileerd door de
volgende regels aan het kernelinstellingenbestand toe te
voegen:device wlan # 802.11 ondersteuning
device wlan_wep # 802.11 WEP-ondersteuning
device wlan_ccmp # 802.11 CCMP-ondersteuning
device wlan_tkip # 802.11 TKIP-ondersteuning
device wlan_amrr # AMRR controle-algoritme voor zendsnelheid
device ath # Atheros PCI/Cardbus netwerkkaarten
device ath_hal # Ondersteuning voor PCI/cardbus chips
options AH_SUPPORT_AR5146 # zet AR5146 tx/rx descriptors aan
device ath_rate_sample # SampleRate verzendsnelheid-controle voor athBeide van de volgende regels zijn nodig voor
&os; 7.X, voor andere versies van &os; zijn ze niet
nodig:device wlan_scan_ap # 802.11 AP mode scanning
device wlan_scan_sta # 802.11 STA mode scanningMet deze informatie in het kernelinstellingenbestand kan
de kernel opnieuw gecompileerd en de &os;-computer opnieuw
opgestart worden.Wanneer het systeem draait, is het mogelijk om enige
informatie over de draadloze apparaten in de
opstartboodschappen te vinden, zoals:ath0: <Atheros 5212> mem 0x88000000-0x8800ffff irq 11 at device 0.0 on cardbus1
ath0: [ITHREAD]
ath0: AR2413 mac 7.9 RF2413 phy 4.5InfrastructuurmodusDe infrastructuur- of BSS-modus is de modus die normaliter
gebruikt wordt. In deze modus zijn een aantal draadloze
toegangspunten verbonden met een bedraad netwerk. Elk draadloos
netwerk heeft een eigen naam, deze naam wordt de SSID van het
netwerk genoemd. Draadloze cliënten verbinden zich met de
draadloze toegangspunten.&os; cliëntenHoe toegangspunten te vindenVoor het scannen van netwerken wordt het commando
ifconfig gebruikt. Het kan even duren
voordat dit verzoek is afgehandeld aangezien het systeem op
elke beschikbare draadloze frequentie naar toegangspunten
moet zoeken. Alleen de super-gebruiker kan zo'n scan
opzetten:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
dlinkap 00:13:46:49:41:76 11 54M -90:96 100 EPS WPA WME
freebsdap 00:11:95:c3:0d:ac 1 54M -83:96 100 EPS WPADe interface dient als up te worden gemarkeerd
voordat het scannen begint. Voor verdere scans is het
niet nodig om de interface als up te markeren.In &os; 7.X wordt de apparaat-adapter, bijvoorbeeld
ath0,
direct gebruikt in plaats van het apparaat
wlan. Hierom is het nodig om beide
vorige regels te vervangen door:&prompt.root; ifconfig ath0 up scanIn de rest van dit document dienen gebruikers van
&os; 7.X de opdracht- en instellingregels volgens dat schema
aan te passen.De uitvoer van een scanverzoek vermeld elk gevonden
BSS/IBSS-netwerk. Naast de naam van het netwerk,
SSID, staat het BSSID,
wat het MAC-adres van het toegangspunt is. Het veld
CAPS identificeert het type van elk
netwerk en de mogelijkheden van de stations die daar
werkzaam zijn:
Station Capability CodesCapability CodeBetekenisEUitgebreide dienstenverzameling (ESS). Geeft aan
dat het station deel uitmaakt van een
infrastructuurnetwerk (in tegenstelling tot een IBSS-/
ad-hoc-netwerk).IIBSS-/ad-hoc-netwerk. Geeft aan dat het station
deel uitmaakt van een ad-hoc-netwerk (in tegenstelling
tot een ESS-netwerk).PPrivacy. Vertrouwelijkheid is vereist voor alle
gegevensframes die binnen het BSS worden uitgewisseld.
Dit betekent dat dit BSS eist dat het station
cryptografische middelen als WEP, TKIP of AES-CCMP
dient te gebruiken om de gegevensframes die met
anderen worden uitgewisseld te versleutelen en te
ontsleutelen.SKorte preambule. Geeft aan dat het netwerk korte
preambules gebruikt (gedefinieerd in 802.11b Hoge
Snelheid/DSSS PHY, korte preambule gebruikt een
56-bits synchronisatieveld in tegenstelling tot een
128-bits dat bij lange preambules wordt
gebruikt).sKorte slottijd. Geeft aan dat het 802.11g-netwerk
een korte slottijd gebruikt omdat er geen verouderde
(802.11b) stations aanwezig zijn.
Het is ook mogelijk om de huidige lijst van bekende
netwerken weer te geven met:&prompt.root; ifconfig scan0 list scanDeze informatie kan automatisch bijgewerkt worden door
de adapter of handmatig met een
verzoek. Oude gegevens worden automatisch uit de cache
verwijderd, dus kan deze lijst na verloop van tijd korter
worden tenzij er meer scanverzoeken gedaan worden.BasisinstellingenDeze sectie geeft een eenvoudig voorbeeld hoe de
draadloze netwerkadapter in &os; zonder encryptie aan de
praat te krijgen. Nadat deze concepten bekend zijn, wordt
het sterk aangeraden om WPA te gebruiken om
de draadloze netwerken op te zetten.Er zijn drie basisstappen om een draadloos netwerk in te
stellen: een toegangspunt kiezen, het station authenticeren,
en een IP-adres instellen. De volgende secties behandelen
elk een stap.Een toegangspunt kiezenIn de meeste gevallen is het voldoende om het systeem
een toegangspunt gebaseerd op de ingebouwde heuristieken
te laten kiezen. Dit is het standaardgedrag wanneer een
interface als up wordt gemarkeerd of als een interface
wordt ingesteld door het te noemen in
/etc/rc.conf, bijvoorbeeld:wlans_ath0="wlan0"
ifconfig_wlan0="DHCP"Zoals eerder vermeld, is voor &os; 7.X alleen een
regel nodig voor de apparaat-adapter:ifconfig_ath0="DHCP"Indien er meerdere toegangspunten zijn en het gewenst
is om een specifieke te kiezen, kan dit met het SSID:wlans_ath0="wlan0"
ifconfig_wlan0="ssid uw_ssid_hier DHCP"In een omgeving waar meerdere toegangspunten hetzelfde
SSID hebben (vaak gedaan om roamen eenvoudiger te maken)
kan het nodig zijn om met één specifiek
apparaat te associëren. In dit geval kan ook het
BSSID van het toegangspunt gespecificeerd worden (het SSID
kan ook weggelaten worden):wlans_ath0="wlan0"
ifconfig_wlan0="ssid uw_ssid_hier bssid xx:xx:xx:xx:xx:xx DHCPEr zijn andere manieren om de keuze van een
toegangspunt te beperken zoals het beperken van het aantal
frequenties waarop het systeem scant. Dit kan handig zijn
bij multi-band-netwerkkaarten aangezien het scannen van
alle mogelijke kanalen tijdrovend kan zijn. Om de werking
tot een specifieke band te beperken kan de parameter
gebruikt worden; bijvoorbeeld:wlans_ath0="wlan0"
ifconfig_wlan0="mode 11g ssid uw_ssid_hier DHCP"zal de kaart forceren om te werken in 802.11g welke
alleen voor 2,4GHz frequenties is gedefinieerd dus de 5GHz
kanalen blijven buiten beschouwing. Andere manieren om
dit te doen zijn de parameter ,
om bewerkingen op één specifieke frequentie
vast te zetten, en de parameter ,
om een lijst van te scannen kanalen te specificeren. Meer
informatie over deze parameters kan in de hulppagina
&man.ifconfig.8; gevonden worden.AuthenticatieNadat er een toegangspunt is gekozen moet het station
zich authenticeren voordat het gegevens kan versturen.
Authenticatie kan op verschillende manieren gebeuren. Het
meest gebruikte schema wordt open authenticatie genoemd en
staat doe dat elk station aan het netwerk deelneemt en
communiceert. Deze manier van authenticatie dient
gebruikt te worden voor testdoeleinden tijdens het voor de
eerste keer opzetten van een draadloos netwerk. Andere
schema's vereisen dat cryptografische overeenkomsten
voltooid worden voordat gegevensverkeer kan stromen; ofwel
door vooraf gedeelde sleutels of geheimen te gebruiken, of
door complexere schema's te gebruiken welke achterliggende
diensten zoals RADIUS betrekken. De meeste gebruikers
zullen open authenticatie gebruiken welke de
standaardinstelling is. De dan meest voorkomende
opstelling is WPA-PSK, ook bekend als WPA Personal, welke
hieronder
beschreven is.Indien er een &apple; &airport; Extreme basisstation
als toegangspunt wordt gebruikt kan het nodig zijn om
gedeelde-sleutel-authenticatie samen met een WEP-sleutel
in te stellen. Dit kan gedaan worden in het bestand
/etc/rc.conf of door het programma
&man.wpa.supplicant.8; te gebruiken. Indien er een
enkel &airport; basisstation wordt gebruikt kan de
toegang met zoiets als het volgende worden
ingesteld:wlans_ath0="wlan0"
ifconfig_wlan0="authmode shared wepmode on weptxkey 1 wepkey 01234567 DHCP"Over het algemeen dient authenticatie via gedeelde
sleutels worden voorkomen omdat het materiaal van de
WEP-sleutel op een zeer afgedwongen manier gebruikt wordt wat
het zelfs gemakkelijker maakt om de sleutel te kraken.
Indien WEP gebruikt moet worden (bijvoorbeeld voor
compatibiliteit met verouderde apparaten) is het beter
om WEP met open authenticatie te
gebruiken. Meer informatie met betrekking tot WEP kan
gevonden worden in .Een IP-adres verkrijgen met DHCPNadat het toegangspunt is gekozen en de parameters
voor de authenticatie zijn ingesteld, dient er een
IP-adres ter communicatie verkregen worden. In de meeste
gevallen wordt het draadloze IP-adres verkregen via DHCP.
Om dat te bereiken, dient
/etc/rc.conf bewerkt te worden en
DHCP aan de instellingen voor het
apparaat toegevoegd te worden zoals in de verschillende
bovenstaande voorbeelden is laten zien:wlans_ath0="wlan0"
ifconfig_wlan0="DHCP"Op dit moment kan de draadloze interface geactiveerd
worden:&prompt.root; /etc/rc.d/netif startWanneer de interface draait, kan
ifconfig gebruikt worden om de status
van de interface ath0 te
zien:&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.1.00 netmask 0xffffff00 broadcast 192.168.1.255
media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g
status: associated
ssid dlinkap channel 11 (2462 Mhz 11g) bssid 00:13:46:49:41:76
country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7
scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7
roam:rate 5 protmode CTS wme burstHet status: associated betekent
dat er verbinding is met een draadloos netwerk (in dit
geval met het netwerk dlinkap). Het
gedeelte bssid 00:13:46:49:41:76 is het
MAC-adres van het toegangspunt; de gedeelte met
authmode vertelt dat de communicatie
niet versleuteld is.Statisch IP-adresIn het geval dat het niet mogelijk is om een IP-adres
van een DHCP-server te krijgen, kan er een vast IP-adres
worden ingesteld. Vervang het sleutelwoord
DHCP van hierboven met de
adresinformatie. Zorg ervoor dat de andere parameters
voor het selecteren van een toegangspunt behouden
blijven:wlans_ath0="wlan0"
ifconfig_wlan0="inet 192.168.1.100 netmask 255.255.255.0 ssid uw_ssid_hier"WPAWPA (Wi-Fi Protected Access) is een beveiligingsprotocol
dat samen met 802.11-netwerken wordt gebruikt om het gebrek
aan degelijke authenticatie en de zwakte van WEP te benadrukken.
WPA verbetert het 802.1X-authenticatieprotocol en gebruikt
een sleutel gekozen uit meerdere in plaats van WEP voor
gegevensintegriteit. De enige sleutel welke WPA vereist is
TKIP (Temporary Key Integrity Protocol). TKIP is een sleutel dat de
basis-RC4-sleutel welke door WEP wordt gebruikt uitbreidt
door integriteitscontroles, knoeidetectie, en maatregelen om
op elke gedetecteerde inbraak te reageren toe te voegen.
TKIP is ontworpen om op verouderde hardware met enkel
wijzigingen in software te draaien; het representeert een
compromis dat de veiligheid verbetert maar nog steeds niet
geheel immuun is tegen aanvallen. WPA specificeert ook de
sleutel AES-CCMP als een alternatief voor TKIP welke te
verkiezen is indien mogelijk; voor deze specificatie wordt
gewoonlijk de term WPA2 (of RSN) gebruikt.WPA definieert protocollen voor authenticatie en
versleuteling. Authenticatie gebeurt het meeste door
één van deze twee technieken te gebruiken:
door 802.1X en een achterliggende authenticatiedienst zoals
RADIUS, of door een minimale overeenkomst tussen het station
en het toegangspunt door een van te voren gedeeld geheim te
gebruiken. Het eerste wordt vaak WPA Enterprise genoemd en
het laatste staat bekend als WPA Personal. Aangezien de
meeste mensen geen achterliggende RADIUS-server voor hun
draadloos netwerk zullen opzetten, is WPA-PSK veruit de
meest gebruikte configuratie voor WPA.Het beheer van de draadloze verbinding en de
authenticatie (sleutelonderhandeling of authenticatie met
een server) gebeurt met het gereedschap
&man.wpa.supplicant.8;. Dit programma vereist dat er een
instellingenbestand,
/etc/wpa_supplicant.conf, draait.
Meer informatie over dit bestand kan in de hulppagina
&man.wpa.supplicant.conf.5; worden gevonden.WPA-PSKWPA-PSK, ook bekend als WPA-Personal, is gebaseerd op
een vooraf gedeelde sleutel (PSK) gegenereerd vanuit een
gegeven wachtwoord die gebruikt zal worden als de
hoofdsleutel in het draadloze netwerk. Dit betekent dat
alle draadloze gebruikers dezelfde sleutel zullen delen.
WPA-PSK is bedoeld voor kleine netwerken waar het gebruik
van een authenticatieserver niet mogelijk of gewenst
is.Gebruik altijd sterke wachtwoorden welke voldoende
lang zijn en opgebouwd zijn uit een grote
tekenverzameling zodat ze niet gemakkelijk worden
geraden of aangevallen.De eerste stap is het instellen van het bestand
/etc/wpa_supplicant.conf met het SSID
en de vooraf gedeelde sleutel van het netwerk:network={
ssid="freebsdap"
psk="freebsdmall"
}Daarna zal in /etc/rc.conf worden
aangegeven dat de draadloze configuratie met WPA zal
gebeuren en dat het IP-adres met DHCP zal worden
verkregen:wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"Hierna kan de interface geactiveerd worden:&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 5
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 6
DHCPOFFER from 192.168.0.1
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALOok kan gepoogd worden dit handmatig in te stellen
door hetzelfde
/etc/wpa_supplicant.conf als hierboven
te gebruiken, en dit te draaien:&prompt.root; wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:11:95:c3:0d:ac (SSID='freebsdap' freq=2412 MHz)
Associated with 00:11:95:c3:0d:ac
WPA: Key negotiation completed with 00:11:95:c3:0d:ac [PTK=CCMP GTK=CCMP]
CTRL-EVENT-CONNECTED - Connection to 00:11:95:c3:0d:ac completed (auth) [id=0 idstr=]De volgende stap is het lanceren van het commando
dhclient om een IP-adres van de
DHCP-server te krijgen:&prompt.root; dhclient wlan0
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
bound to 192.168.0.254 -- renewal in 300 seconds.
&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON defxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUAL/etc/rc.conf heeft een regel
ifconfig_wlan0 met de tekst
DHCP (zoals
ifconfig_wlan0="DHCP"),
dhclient zal automatisch gestart worden nadat
wpa_supplicant geassocieerd is met het
toegangspunt.Als DHCP niet mogelijk of gewenst is, kan een statisch
IP-adres worden ingesteld nadat wpa_supplicant
het station heeft geauthenticeerd:&prompt.root; ifconfig wlan0 inet 192.168.0.100 netmask 255.255.255.0
&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/36Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALIndien DHCP niet wordt gebruikt, dienen ook de
standaard gateway en de naamserver handmatig ingesteld te
worden:&prompt.root; route add default uw_standaard_router
&prompt.root; echo "nameserver uw_DNS_server" >> /etc/resolv.confWPA met EAP-TLSDe tweede manier om WPA te gebruiken is met een
achterliggende 802.1X-authenticatieserver. In dit geval
wordt het WPA-Enterprise genoemd om het verschil met het
minder veilige WPA-Personal met de vooraf gedeelde sleutel
aan te duiden. Authenticatie is in WPA-Enterprise gebaseerd op
EAP (Extensible Authentication Protocol).EAP wordt niet met een encryptiemethode geleverd. In plaats
daarvan was het besloten om EAP in een versleutelde tunnel te
omsluiten. Er bestaan vele EAP-authenticatiemethodes, de meest
voorkomende zijn EAP-TLS, EAP-TTLS, en EAP-PEAP.EAP-TLS (EAP met Transport Layer Security) is een zeer
goed ondersteund authenticatieprotocol in de draadloze
wereld aangezien het de eerste EAP-methode was die
gecertificeerd werd door de Wi-Fi alliantie.
EAP-TLS vereist dat er drie certificaten draaien: het
CA-certificaat (geïnstalleerd op alle machines), het
servercertificaat voor de authenticatieserver, en een
cliëntcertificaat voor elke draadloze cliënt.
Bij deze EAP-methode authenticeren zowel de
authenticatieserver als de draadloze cliënt elkaar
door hun respectievelijke certificaten te laten zien, en
ze controleren dat deze certificaten zijn getekend door de
certificatenauthoriteit (CA) van de organisatie.Zoals voorheen gebeurt het instellen via
/etc/wpa_supplicant.conf:network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TLS
identity="loader"
ca_cert="/etc/certs/cacert.pem"
client_cert="/etc/certs/clientcert.pem"
private_key="/etc/certs/clientkey.pem"
private_key_passwd="freebsdmallclient"
}Dit veld geeft de naam van het netwerk (SSID) aan.Hier wordt het RSN (&ieee; 802.11i) protocol
gebruikt, ofwel WPA2.De regel key_mgmt verwijst naar
het gebruikte sleutelbeheerprotocol. In dit geval is
het WPA dat EAP-authenticatie gebruikt:
WPA-EAP.In dit veld wordt de EAP-methode voor de
verbinding genoemd.Het veld identity bevat de
identiteitsstring voor EAP.Het veld ca_cert geeft de
padnaam van het CA-certificaatbestand aan. Dit
bestand is nodig om het servercertificaat te
controleren.De regel client_cert geeft de
padnaam van het cliëntcertificaatbestand aan.
Dit certificaat is uniek voor elke draadloze
cliënt van het netwerk.Het veld private_key is de
padnaam naar het bestand dat de privésleutel
van het cliëntcertificaat bevat.Het veld private_key_passwd
bevat het wachtwoord voor de privésleutel.Voeg vervolgens de volgende regels toe aan
/etc/rc.conf:wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"De volgende stap is het activeren van de interface met
behulp van de faciliteit rc.c:&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALZoals eerder is laten zien, is het ook mogelijk om de
interface handmatig te activeren met zowel de commando's
wpa_supplicant en
ifconfig.WPA met EAP-TTLSBij EAP-TLS hebben zowel de authenticatieserver als de
cliënt een certificaat nodig, met EAP-TTLS
(EAP-Tunneled Transport Layer Security) is een
cliëntcertificaat optioneel. Deze methode komt in de
buurt van wat sommige beveiligde websites doen, waar de
webserver een veilige SSL-tunnel kan aanmaken zelfs als de
bezoekers geen certificaten aan de cliëntkant hebben.
EAP-TTLS zal de versleutelde TLS-tunnel gebruiken voor het
veilig transporteren van de authenticatiegegevens.De instellingen worden gedaan via het bestand
/etc/wpa_supplicant.conf:network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=TTLS
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase2="auth=MD5"
}Dit veld noemt de EAP-methode voor de
verbinding.Het veld identity bevat de
identiteitsstring voor EAP-authenticatie binnen de
versleutelde TLS-tunnel.Het veld password bevat het
wachtwoord voor de EAP-authenticatie.Het veld ca_cert wijst naar de
padnaam van het CA-certificaatbestand. Dit bestand is
nodig om het servercertificaat te controleren.Dit veld noemt de gebruikte authenticatiemethode
in de versleutelde TLS-tunnel. In dit geval is EAP
met MD5-Challenge gebruikt. De binnenste
authenticatie-fase wordt vaak
phase2 genoemd.Ook dienen de volgende regels toegevoegd te worden aan
/etc/rc.conf:wlans_ath0="wlan0"
ifconfig_ath0="WPA DHCP"De volgende stap is het activeren van de interface:&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALWPA met EAP-PEAPPEAPv0/EAP-MSCHAPv2 is de meest gebruikelijke PEAP-methode.
In de rest van dit document wordt de term PEAP gebruikt om naar
die methode te verwijzen.PEAP (Beveiligd EAP) is ontworpen als een alternatief
voor EAP-TTLS, en is de meest gebruikte EAP-standaard na EAP-TLS.
Met andere woorden, als u een netwerk met verschillende
besturingssystemen heeft, zou PEAP de meest ondersteunde standaard
moeten zijn na EAP-TLS.PEAP is soortgelijk aan EAP-TTLS: het gebruikt een
server-side certificaat om de cliënten te
authenticeren door een beveiligde TLS-tunnel tussen de
cliënt en de authenticatieserver aan te maken, welke
de uitwisseling van de authenticatie-informatie beschermt.
Vanuit een beveiligingsoogpunt gezien is het verschil
tussen EAP-TTLS en PEAP dat PEAP-authenticatie de
gebruikersnaam onversleuteld uitzendt, alleen het
wachtwoord wordt in de beveiligde TLS-tunnel verzonden.
EAP-TTLS gebruikt de TLS-tunnel voor zowel de
gebruikersnaam als het wachtwoord.Het bestand
/etc/wpa_supplicant.conf dient
gewijzigd te worden om de EAP-PEAP-gerelateerde
instellingen toe te voegen:network={
ssid="freebsdap"
proto=RSN
key_mgmt=WPA-EAP
eap=PEAP
identity="test"
password="test"
ca_cert="/etc/certs/cacert.pem"
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
}Dit veld noemt de EAP-methode voor de
verbinding.Het veld identity bevat de
identiteitsstring voor EAP-authenticatie binnen de
versleutelde TLS-tunnel.Het veld password bevat het
wachtwoord voor de EAP-authenticatie.Het veld ca_cert wijst naar de
padnaam van het CA-certificaatbestand. Dit bestand is
nodig om het servercertificaat te controleren.Dit veld bevat de parameters voor de eerste fase
van authenticatie (de TLS-tunnel). Afhankelijk van
de gebruikte authenticatieserver moet er een specifiek
label voor authenticatie worden opgegeven. In de
meeste gevallen zal het label client EAP
encryption zijn welke ingesteld is door
peaplabel=0 te gebruiken. Meer
informatie kan in de hulppagina
&man.wpa.supplicant.conf.5; gevonden worden.Dit veld noemt het authenticatieprotocol dat in de
versleutelde TLS-tunnel gebruikt wordt. In het geval
van PEAP is dit auth=MSCHAPV2.Het volgende dient te worden toegevoegd aan
/etc/rc.conf:wlans_ath0="wlan0"
ifconfig_wlan0="WPA DHCP"Hierna kan de interface worden geactiveerd:&prompt.root; /etc/rc.d/netif start
Starting wpa_supplicant.
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 15
DHCPREQUEST on wlan0 to 255.255.255.255 port 67 interval 21
DHCPACK from 192.168.0.20
bound to 192.168.0.254 -- renewal in 300 seconds.
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect DS/11Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz) bssid 00:11:95:c3:0d:ac
country US ecm authmode WPA2/802.11i privacy ON deftxkey UNDEF
AES-CCM 3:128-bit txpower 21.5 bmiss 7 scanvalid 450 bgscan
bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5 protmode CTS
wme burst roaming MANUALWEPWEP (Wired Equivalent Privacy) maakt deel uit van de
oorspronkelijke 802.11 standaard. Er is geen
authenticatiemechanisme, slechts een zwakke vorm van
toegangscontrole, en het is gemakkelijk te kraken.WEP kan worden opgezet met
ifconfig:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 inet 192.168.1.100 netmask 255.255.255.0 \
ssid mijn_net wepmode on weptxkey 3 wepkey 3:0x3456789012De weptxkey geeft aan welke
WEP-sleutel zal worden gebruikt tijdens het verzenden.
Hier wordt de derde sleutel gebruikt. Dit dient
overeen te komen met de instelling in het toegangspunt.
Probeer, indien onbekend is welke sleutel door het toegangspunt
wordt gebruikt, 1 (i.e., de eerste sleutel)
voor deze waarde te gebruiken.De wepkey selecteert één
van de WEP-sleutels in. Het dient in het formaat
index:sleutel te zijn. Sleutel
1 wordt als standaard gebruikt; de index
hoeft alleen ingesteld te worden als we een andere dan de
eerste sleutel gebruiken.De 0x3456789012 dient vervangen
te worden door de sleutel die ingesteld is voor
gebruik met het toegangspunt.Het wordt aangeraden om de hulppagina &man.ifconfig.8;
te lezen voor verdere informatie.De faciliteit wpa_supplicant kan ook
gebruikt worden om de draadloze interface in te stellen voor
WEP. Het bovenstaande voorbeeld kan worden ingesteld door
de volgende regels toe te voegen aan
/etc/wpa_supplicant.conf:network={
ssid="mijn_net"
key_mgmt=NONE
wep_key3=3456789012
wep_tx_keyidx=3
}Daarna:&prompt.root; wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz)
Associated with 00:13:46:49:41:76Ad-hoc-modusIBSS-modus, ook ad-hoc-modus genoemd, is ontworpen voor
point-to-point-verbindingen. Om bijvoorbeeld een ad-hoc-netwerk
tussen de machine A en de machine
B op te zetten, is het slechts nodig om twee
IP-adressen en een SSID te kiezen.Op machine A:&prompt.root; ifconfig wlan0 create wlandev ath0 wlanmode adhoc
&prompt.root; ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:c3:0d:ac
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>
status: running
ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
protmode CTS wme burstDe parameter adhoc geeft aan dat de
interface in de IBSS-modus draait.Op B zal het mogelijk moeten zijn om
A te detecteren:&prompt.root; ifconfig wlan0 create wlandev ath0 wlanmode adhoc
&prompt.root; ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
reebsdap 02:11:95:c3:0d:ac 2 54M -64:-96 100 IS WMEDe I in de uitvoer bevestigt dat machine
A in ad-hoc-modus verkeert. Het is slechts
nodig om B met een ander IP-adres in te
stellen:&prompt.root; ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdap
&prompt.root; ifconfig wlan0 ssid freebsdap mediaopt adhoc inet 192.168.0.2 netmask 255.255.255.0
&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>
status: running
ssid freebsdap channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
protmode CTS wme burstZowel A als B zijn nu
klaar om informatie uit te wisselen.&os; Host Toegangspunten&os; kan als toegangspunt (AP) functioneren wat de noodzaak
om een hardwarematig AP te kopen of een ad-hoc-netwerk te
draaien wegneemt. Dit kan bijzonder nuttig zijn indien de
&os;-machine als gateway naar een ander netwerk (bijvoorbeeld
het Internet) functioneert.BasisinstellingenVoordat de &os;-machine als een AP wordt ingesteld, dient
de kernel te worden ingesteld met de juiste ondersteuning voor
draadloos netwerken voor de draadloze kaart. Ook dient er
ondersteuning voor de te gebruiken beveiligingsprotocollen te
worden toegevoegd. Meer details staan in .Momenteel staan de NDIS-stuurprogrammawrapper en de
stuurprogramma's van &windows; het werken als AP niet toe.
Alleen originele draadloze &os;-stuurprogramma's
ondersteunen AP-modus.Wanneer de ondersteuning voor draadloos netwerken is
geladen, kan gecontroleerd worden of het draadloze apparaat
de hostgebaseerde toegangspuntmodus ondersteunt (ook bekend
als hostap-modus):&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 list caps
drivercaps=6f85edc1<STA,FF,TURBOP,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,BGSCAN,TXFRAG>
cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC>Deze uitvoer geeft de mogelijkheden van de kaart weer, het
woord HOSTAP bevestigt dat deze draadloze
kaart als toegangspunt kan functioneren. Ook worden
verschillende ondersteunde versleutelmethoden genoemd: WEP,
TKIP, AES, enzovoorts. Deze informatie is belangrijk om te weten
welke beveiligingsprotocollen gebruikt kunnen worden op het
toegangspunt.Het draadloze apparaat kan enkel in hostap-modus worden
gezet tijdens het creeëren van het netwerk pseudo-device
dus een vooraf aangemaakt apparaat moet eerst verwijderd
worden:&prompt.root; ifconfig wlan0 destroywaarna deze opnieuw aangemaakt kan worden met de juiste
parameters:&prompt.root; ifconfig wlan0 create wlandev ath0 wlanmode hostap
&prompt.root; ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1Gebruik nogmaals ifconfig om de status van
de interface wlan0 te zien:&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:c3:0d:ac
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
status: running
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
protmode CTS wme burst dtimperiod 1 -dfsDe parameter hostap geeft aan dat de
interface in hostgebaseerde toegangspuntmodus draait.Het instellen van de interface kan automatisch tijdens het
opstarten gedaan worden door de volgende regels aan
/etc/rc.conf toe te voegen:wlans_ath0="wlan0"
create_args_wlan0="wlanmode hostap"
ifconfig_wlan0="inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdap mode 11g channel 1"Hostgebaseerde toegangspunt zonder authenticatie of
versleutelingHoewel het niet aangeraden wordt om een AP zonder enige
vorm van authenticatie of encryptie te draaien, is dit een
eenvoudige manier om te controleren of het AP werkt. Deze
configuratie is ook belangrijk voor het debuggen van problemen
met cliënten.Nadat het AP is ingesteld als eerder is laten zien, is het
mogelijk om van een andere draadloze machine een scan te
beginnen om het AP te vinden:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 up scan
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
freebsdap 00:11:95:c3:0d:ac 1 54M -66:-96 100 ES WMEDe cliëntmachine heeft het AP gevonden en kan ermee
geassocieerd worden:&prompt.root; ifconfig ath0 ssid freebsdap inet 192.168.0.2 netmask 255.255.255.0ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:d5:43:62
inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet OFDM/54Mbps mode 11g
status: associated
ssid freebsdap channel 1 (2412 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode OPEN privacy OFF txpower 21.5 bmiss 7
scanvalid 60 bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7
roam:rate 5 protmode CTS wme burstWPA hostgebaseerde toegangspuntDeze sectie zal zich richten op opzetten van een &os;
toegangspunt dat het beveiligingsprotocol WPA gebruikt. Meer
details over WPA en het instellen van op WPA gebaseerde
draadloze cliënten kan gevonden worden in .De daemon hostapd wordt
gebruikt om cliëntauthenticatie en sleutelbeheer op het
toegangspunt met WPA af te handelen.In het volgende zullen alle instellingsbewerkingen worden
uitgevoerd op de &os;-machine die als AP dienst doet. Wanneer
het AP correct werkt, zou hostapd
automatisch tijdens het opstarten aangezet moeten worden met
de volgende regel in /etc/rc.conf:hostapd_enable="YES"Zorg ervoor dat voordat geprobeerd wordt om
hostapd in te stellen, de
basisinstellingen die in zijn geïntroduceerd
zijn uitgevoerd.WPA-PSKWPA-PSK is bedoeld voor kleine netwerken waar het
gebruik van een achterliggende authenticatieserver niet
mogelijk of gewenst is.Het instellen wordt gedaan in het bestand
/etc/hostapd.conf:interface=wlan0
debug=1
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
ssid=freebsdap
wpa=1
wpa_passphrase=freebsdmall
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP TKIP Dit veld geeft aan welke draadloze interface voor
het toegangspunt wordt gebruikt.Dit veld stelt het verbositeitsniveau in dat tijdens
het draaien van hostapd wordt
gebruikt. Een waarde van 1
vertegenwoordigt het minimale niveau.Het veld ctrl_interface geeft de
padnaam van de door hostapd
gebruikte map om de domeinsocketbestanden voor
communicatie met externe programma's zoals
&man.hostapd.cli.8; in op te slaan. Hier wordt de
standaardwaarde gebruikt.De regel ctrl_interface_group
stelt de groep in (hier is het de groep
wheel) die toegang heeft tot de
controle interfacebestanden.Het veld wpa maakt WPA mogelijk
en specificeert welk WPA-authenticatieprotocol nodig zal
zijn. De waarde 1 stelt het AP in op
WPA-PSK.Het veld wpa_passphrase bevat het
ASCII-wachtwoord voor de WPA-authenticatie.Gebruik altijd sterke wachtwoorden welke voldoende
lang zijn en opgebouwd zijn uit een grote
tekenverzameling zodat ze niet gemakkelijk worden
geraden of aangevallen.De regel wpa_key_mgmt verwijst
naar het gebruikte sleutelbeheerprotocol. In dit geval
is dat WPA-PSK.Het veld wpa_pairwise geeft aan
welke versleutelingsalgoritmes door het toegangspunt
worden geaccepteerd. Hier worden zowel de versleuteling
TKIP (WPA) en CCMP (WPA2) geaccepteerd. De
versleuteling CCMP is een alternatief voor TKIP en wordt
sterk aangeraden indien mogelijk; TKIP dient alleen
gebruikt te worden voor stations die geen CCMP
aankunnen.De volgende stap is het starten van
hostapd:&prompt.root /etc/rc.d/hostapd forcestart&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2290
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255dddd
inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4
ether 00:11:95:c3:0d:ac
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: associated
ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
authmode WPA2/802.11i privacy MIXED deftxkey 2 TKIP 2:128-bit txpowmax 36 protmode CTS dtimperiod 1 bintval 100Het toegangspunt draait nu, de cliënten kunnen er
nu mee worden geassocieerd, zie voor meer details. Het is
mogelijk om de stations die met het AP geassocieerd zijn te
zien door het commando ifconfig
wlan0 list te
gebruiken.WEP hostgebaseerd toegangspuntHet wordt niet aangeraden om WEP te gebruiken om een
toegangspunt op te zetten aangezien er geen
authenticatiemechanisme is en het gemakkelijk is te kraken.
Sommige verouderde draadloze kaarten ondersteunen alleen WEP
als een beveiligingsprotocol, met deze kaarten is het alleen
mogelijk om een AP zonder authenticatie of encryptie of een AP
dat het WEP-protocol gebruikt op te zetten.Het draadloze apparaat kan nu in hostap-modus worden
gezet en ingesteld worden met het juiste SSID en
IP-adres:&prompt.root; ifconfig wlan0 create wlandev ath0 wlanmode hostap
&prompt.root; ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 \
ssid freebsdap wepmode on weptxkey 3 wepkey 3:0x3456789012 mode 11gHet weptxkey geeft aan welke
WEP-sleutel tijdens het zenden zal worden gebruikt. Hier
wordt de derde sleutel gebruikt (merk op dat de nummering
van de sleutels bij 1 begint). Deze
parameter moet gespecificeerd worden om de gegevens
daadwerkelijk te versleutelen.Het wepkey geeft aan dat de
geselecteerde WEP-sleutel wordt ingesteld. Het dient in
het formaat index:key te zijn,
indien de index niet is gegeven, wordt sleutel
1 gebruikt. Dus indien een andere
sleutel dan de eerste wordt gebruikt dient de index te
worden ingesteld.Weer wordt ifconfig gebruikt om de
status van de interface wlan0 te
zien:&prompt.root; ifconfig wlan0
wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 00:11:95:c3:0d:ac
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
status: running
ssid freebsdap channel 4 (2427 Mhz 11g) bssid 00:11:95:c3:0d:ac
country US ecm authmode OPEN privacy ON deftxkey 3 wepkey 3:40-bit
txpower 21.5 scanvalid 60 protmode CTS wme burst dtimperiod 1 -dfsVanaf een andere draadloze machine is het mogelijk om een
scan te beginnen om het AP te vinden:&prompt.root; ifconfig wlan0 create wlandev ath0
&prompt.root; ifconfig wlan0 up scan
SSID BSSID CHAN RATE S:N INT CAPS
freebsdap 00:11:95:c3:0d:ac 1 54M 22:1 100 EPSDe cliëntmachine heeft het toegangspunt gevonden en
kan ermee geassocieerd worden door de juiste parameters
(sleutel, enz.) te gebruiken, zie voor meer details.Zowel de bekabelde als de draadloze verbinding gebruikenEen bekabelde verbinding biedt betere prestaties en betrouwbaarheid,
terwijl een draadloze verbinding meer flexibiliteit en mobiliteit
biedt; laptop-gebruikers zullen dit willen combineren en naadloos tussen
de twee overschakelen.In &os; is het mogelijk om twee of meer netwerkinterfaces te
combineren in een failover-opstelling, dit houdt in dat
de meest geprefereerde en best beschikbare verbinding van een groep van
netwerkinterfaces wordt gebruikt, en het besturingssysteem automatisch
te laten overschakelen wanneer de status van de verbinding
verandert.Link-aggregatie en failover worden behandeld in , een voorbeeld voor het gebruik van
zowel een bekabelde als een draadloze verbinding wordt gegeven in
.Problemen verhelpenIndien er problemen met het draadloos netwerk zijn, zijn er
een aantal stappen die genomen kunnen worden om het probleem te
helpen verhelpen.Indien het toegangspunt niet vermeld wordt tijdens het
scannen, controleer dan of het draadloze apparaat niet is
ingesteld op een beperkt aantal kanalen.Indien het niet mogelijk is om met een toegangspunt te
associëren, controleer dan of de instellingen van het
station overeenkomen met die van het toegangspunt. Dit
omvat het authenticatieschema en de beveiligingsprotocollen.
Versimpel de configuratie zoveel mogelijk. Indien een
beveiligingsprotocol als WPA of WEP wordt gebruikt, stel het
toegangspunt dan in voor open authenticatie en geen
beveiliging en kijk of er verkeer door kan.Wanneer er met het toegangspunt geassocieerd kan worden,
stel dan een diagnose over alle beveiligingsinstellingen met
eenvoudige gereedschappen zoals &man.ping.8;.wpa_supplicant biedt veel
ondersteuning voor debuggen; probeer het handmatig te
draaien met de optie en controleer de
systeemlogs.Er zijn ook veel debug-gereedschappen op lagere niveaus.
Het is mogelijk om debugberichten in de laag die het 802.11
protocol ondersteunt aan te zetten door het programma
wlandebug te gebruiken dat gevonden wordt
in /usr/src/tools/tools/net80211.
Bijvoorbeeld:&prompt.root; wlandebug -i ath0 +scan+auth+debug+assoc
net.wlan.0.debug: 0 => 0xc80000<assoc,auth,scan>kan worden gebruikt om consoleberichten aan te zetten
die te maken hebben met het scannen van toegangspunten en
het uitvoeren van 802.11 handshakes die nodig zijn om
communicatie te regelen.Er worden ook veel nuttige statistieken door de 802.11
laag bijgehouden; het gereedschap
wlanstats geeft deze informatie weer.
Deze statistieken zouden alle fouten die door de 802.11 laag
zijn geïdentificeerd moeten identificeren. Let erop
dat sommige fouten worden geïdentificeerd in de
apparaatstuurprogramma's die onder de 802.11 laag liggen
zodat ze niet verschijnen. Voor het diagnosticeren van
apparaatspecifieke problemen dient de documentatie van het
stuurprogramma geraadpleegd te worden.Indien de bovenstaande informatie niet helpt om het probleem
te verhelderen, stuur dan een probleemrapport op inclusief de
uitvoer van de bovenstaande gereedschappen.PavLucistnikGeschreven door pav@FreeBSD.orgBluetoothBluetoothIntroductieBluetooth is een draadloze technologie om persoonlijke
netwerken aan te maken die in de vrije 2,4GHz-band werken binnen
een straal van 10 meter. Deze netwerken worden gewoonlijk
ad-hoc gevormd en bestaan uit draagbare apparaten zoals mobiele
telefoons, handhelds en laptops. In tegenstelling tot die
andere populaire draadloze techniek, Wi-Fi, biedt Bluetooth een
hoger niveau van serviceprofielen, zoals FTP-achtige
bestandsservers, pushing van bestanden, stemtransport, emulatie
van seriële lijnen, en meer.De Bluetooth stack is in &os; geïmplementeerd door
gebruik te maken van het Netgraph-raamwerk (zie
&man.netgraph.4;). Veel van de Bluetooth USB-dongles worden
ondersteund door het stuurprogramma &man.ng.ubt.4;. Apparaten
gebaseerd op de Broadcom BCM2033 chip worden ondersteund door de
stuurprogramma's &man.ubtbcmfw.4; en &man.ng.ubt.4;. De 3Com
Bluetooth PC Card 3CRWB60-A wordt ondersteund door het
stuurprogramma &man.ng.bt3c.4;. Seriële en op UART
gebaseerde Bluetooth-apparaten worden ondersteund via
&man.sio.4;, &man.ng.h4.4;, en &man.hcseriald.8;. Deze sectie
beschrijft het gebruik van de USB Bluetooth-dongle.Het apparaat inprikkenStandaard zijn stuurprogramma's voor Bluetooth-apparaten
beschikbaar als kernelmodules. Voordat een apparaat wordt
aangekoppeld, dient het stuurprogramma in de kernel geladen te
worden:&prompt.root; kldload ng_ubtIndien het Bluetooth-apparaat tijdens het opstarten van het
systeem in het systeem aanwezig is, kan de module vanuit
/boot/loader.conf geladen worden:ng_ubt_load="YES"Prik de USB-dongle in. Uitvoer vergelijkbaar aan de
onderstaande zal op de console (of in syslog) verschijnen:ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2
ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,
wMaxPacketSize=49, nframes=6, buffer size=294Het script /etc/rc.d/bluetooth wordt
gebruikt om de Bluetooth-stack te starten en te stoppen. Het is
een goed idee om de stack te stoppen voordat het apparaat wordt
losgekoppeld, maar het is (gewoonlijk) niet fataal. Tijdens het
starten van de stack verschijnt er uitvoer vergelijkbaar met de
onderstaande:&prompt.root; /etc/rc.d/bluetooth start ubt0
BD_ADDR: 00:02:72:00:d4:1a
Features: 0xff 0xff 0xf 00 00 00 00 00
<3-Slot> <5-Slot> <Encryption> <Slot offset>
<Timing accuracy> <Switch> <Hold mode> <Sniff mode>
<Park mode> <RSSI> <Channel quality> <SCO link>
<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>
<Paging scheme> <Power control> <Transparent SCO data>
Max. ACL packet size: 192 bytes
Number of ACL packets: 8
Max. SCO packet size: 64 bytes
Number of SCO packets: 8Host Controller Interface (HCI)HCIHet Host Controller Interface (HCI) biedt een
opdrachtinterface naar de controller van de basisband en de
verbindingsbeheerder, en toegang tot hardwarestatus en
controleregisters. Deze interface biedt een uniforme manier
om de mogelijkheden van de basisband van Bluetooth te benaderen.
De HCI-laag op de gastheer wisselt gegevens en opdrachten uit
met de HCI-firmware in de Bluetooth-hardware. Het
stuurprogramma voor de Host Controller Transport Layer (i.e., de
fysieke bus) biedt aan beide HCI-lagen de mogelijkheid om
informatie met elkaar uit te wisselen.Voor een enkel Bluetooth-apparaat wordt een enkele Netgraph
knoop van het type hci aangemaakt. De
HCI-knoop is normaliter verbonden met de knoop van het
Bluetooth-apparaatstuurprogramma (naar beneden toe) en de
L2CAP-knoop (naar boven toe). Alle HCI-bewerkingen dienen te
worden uitgevoerd op de HCI-knoop en niet op de knoop van het
apparaatstuurprogramma. De standaardnaam voor de HCI-knoop is
devicehci. Kijk voor meer details in de
hulppagina &man.ng.hci.4;.Eén van de meest voorkomende taken is het ontdekken
van Bluetooth-apparaten binnen radiobereik. Deze bewerking
wordt ondervragen genoemd. Ondervragen en
andere HCI-gerelateerde bewerkingen worden uitgevoerd met het
programma &man.hccontrol.8;. Het onderstaande voorbeeld laat
zien hoe kan worden uitgezocht welke Bluetooth-apparaten zich
binnen het bereik bevinden. De lijst met apparaten zou binnen
enkele seconden moeten binnenkomen. Bedenk dat een apparaat op
afstand alleen antwoord op de ondervraging zal geven indien het
in ontdekbare modus staat.&prompt.user; hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:80:37:29:19:a4
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 00
Page Scan Mode: 00
Class: 52:02:04
Clock offset: 0x78ef
Inquiry complete. Status: No error [00]BD_ADDR is een uniek adres van een
Bluetooth-apparaat, vergelijkbaar met een MAC-adres van een
netwerkkaart. Dit adres is nodig voor verdere communicatie met
een apparaat. Het is mogelijk om een menselijk leesbare naam
aan een BD_ADDR toe te kennen. Het bestand
/etc/bluetooth/hosts bevat informatie over
de bekende Bluetooth-gastheren. Het volgende voorbeeld laat
zien hoe de menselijk leesbare naam dat aan het apparaat op
afstand was toegekend te verkrijgen is:&prompt.user; hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4
BD_ADDR: 00:80:37:29:19:a4
Name: Pav's T39Tijdens het uitvoeren van een ondervraging op een
Bluetooth-apparaat op afstand zal het de computer als
uw.gastheer.naam (ubt0) vinden. De naam die aan
het lokale apparaat is toegekend, kan altijd gewijzigd
worden.Het Bluetooth-systeem biedt een punt-naar-punt-verbinding
(slechts twee Bluetooth-eenheden betrokken), of een
punt-naar-veelpunt-verbinding. Bij een
punt-naar-veelpunt-verbinding wordt de verbinding met meerdere
Bluetooth-apparaten gedeeld. Het volgende voorbeeld laat zien
hoe de lijst met actieve basisbandverbindingen voor het lokale
apparaat te verkrijgen is:&prompt.user; hccontrol -n ubt0hci read_connection_list
Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State
00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPENEen verbindingshandvat is nuttig indien
het beëindigen van de basisbandverbinding noodzakelijk is.
Normaalgesproken is het niet nodig om dit handmatig te doen. De
stack zal automatisch niet-actieve basisbandverbindingen
beëindigen.&prompt.root; hccontrol -n ubt0hci disconnect 41
Connection handle: 41
Reason: Connection terminated by local host [0x16]Raadpleeg hccontrol help voor een
volledige lijst van beschikbare HCI-opdrachten. Voor de meeste
HCI-opdrachten zijn geen beheerdersrechten nodig.Logical Link Control and Adaptation
Protocol (L2CAP)L2CAPHet Logical Link Control and Adaptation Protocol (L2CAP)
biedt verbindingsgeoriënteerde en verbindingsloze
gegevensdiensten met mogelijkheden om protocollen te multiplexen
en mogelijkheden voor segmentatie/herassemblage voor protocollen
in hogere lagen. L2CAP staat toe dat protocollen en
toepassingen in hogere lagen L2CAP-gegevenspakketten met een
maximale lengte van 64 kB te verzenden en ontvangen.L2CAP is op het concept van kanalen
gebaseerd. Een kanaal is een logische verbinding bovenop een
basisbandverbinding. Elk kanaal is op een
veel-op-één manier aan een enkel protocol
gebonden. Aan hetzelfde protocol kunnen meerdere kanalen worden
gebonden, maar één kanaal kan niet aan meerdere
protocollen worden gebonden. Elk L2CAP-pakket dat op een kanaal
wordt ontvangen, wordt naar het juiste hogere protocol
doorgestuurd. Meerdere kanalen kunnen dezelfde
basisbandverbinding delen.Voor elk Bluetooth-apparaat wordt een enkele Netgraph-knoop
van het soort l2cap aangemaakt. De
L2CAP-knoop is normaalgesproken verbonden met de Bluetooth
HCI-knoop (naar beneden toe) en de knopen van de stopcontacten
voor Bluetooth (naar boven toe). De standaardnaam voor de
L2CAP-knoop is devicel2cap. Zie voor meer
details de hulppagina &man.ng.l2cap.4;.Een nuttig commando is &man.l2ping.8;, dat gebruikt kan
worden om andere apparaten te pingen. Sommige
Bluetooth-implementaties geven niet alle verzonden gegevens
terug, dus is 0 bytes normaal in het volgende
voorbeeld.&prompt.root; l2ping -a 00:80:37:29:19:a4
0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0Met het programma &man.l2control.8; kunnen verschillende
bewerkingen op L2CAP-knopen worden uitgevoerd. Dit voorbeeld
laat zien hoe de lijst met logische verbindingen (kanalen)
en de lijst met basisbandverbindingen voor het lokale apparaat
verkregen kunnen worden:&prompt.user; l2control -a 00:02:72:00:d4:1a read_channel_list
L2CAP channels:
Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State
00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN
&prompt.user; l2control -a 00:02:72:00:d4:1a read_connection_list
L2CAP connections:
Remote BD_ADDR Handle Flags Pending State
00:07:e0:00:0b:ca 41 O 0 OPENEen ander diagnostisch programma is &man.btsockstat.1;. Het
heeft ongeveer hetzelfde doel als &man.netstat.1;, maar dan voor
Bluetooth-netwerkgerelateerde gegevensstructuren. Het
onderstaande voorbeeld laat dezelfde logische verbinding zien
als die van &man.l2control.8; hierboven.&prompt.user; btsockstat
Active L2CAP sockets
PCB Recv-Q Send-Q Local address/PSM Foreign address CID State
c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN
Active RFCOMM sessions
L2PCB PCB Flag MTU Out-Q DLCs State
c2afe900 c2b53380 1 127 0 Yes OPEN
Active RFCOMM sockets
PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State
c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPENHet RFCOMM-protocolRFCOMMHet RFCOMM-protocol biedt emulatie van seriële poorten
over het L2CAP-protocol. Het protocol is gebaseerd op de
ETSI-standaard TS 07.10. RFCOMM is een eenvoudig
transportprotocol, met aanvullende voorzieningen om de 9
circuits van RS-232- (EIATIA-232-E-) seriële poorten te
emuleren. Het RFCOMM-protocol ondersteunt tot 60 gelijktijdige
verbindingen (RFCOMM-kanalen) tussen twee
Bluetooth-apparaten.Het is de bedoeling van RFCOMM dat in een volledig
communicatiepad twee toepassingen op verschillende apparaten
draaien (de eindpunten van de communicatie) met daartussen een
communicatiesegment. RFCOMM is bedoeld om de toepassingen te
beheren die gebruik maken van de seriële poorten van de
apparaten waarop ze zijn geïnstalleerd. Het
communicatiesegment is een directe Bluetooth-verbinding van het
ene apparaat naar het andere.RFCOMM houdt zich alleen bezig met de verbinding tussen twee
apparaten bij directe verbindingen, of tussen het apparaat en
een modem in het geval van een netwerk. RFCOMM kan andere
opstellingen ondersteunen, zoals modules die via draadloze
Bluetooth-technologie communiceren aan de ene kant, en een
draadinterface aanbieden aan de andere kant.In &os; is het RFCOMM-protocol in de laag van de
Bluetooth-stopcontacten geïmplementeerd.Het paren van apparatenparenStandaard is Bluetooth-communicatie niet geauthenticeerd en
kan elk apparaat met elk ander apparaat praten. Een
Bluetooth-apparaat (bijvoorbeeld een mobiele telefoon) kan
ervoor kiezen dat voor bepaalde diensten authenticatie nodig is
(bijvoorbeeld voor de inbeldienst). Bluetooth-authenticatie
geschied normaalgesproken met PIN-codes.
Een PIN-code is een ACII-reeks van maximaal 16 tekens lang. De
gebruiker dient dezelfde PIN-code op beide apparaten in te
voeren. Nadat de gebruiker de PIN-code heeft ingevoerd, zullen
beide apparaten een verbindingssleutel
aanmaken. Hierna kan de verbindingssleutel òfwel in de
apparaten zelf, òfwel in een permanente opslag worden
opgeslagen. De volgende keer zullen beide apparaten de van
tevoren aangemaakte verbindingssleutel gebruiken. Bovenstaande
procedure wordt paren genoemd. Merk op dat
indien een apparaat de verbindingssleutel verliest, het paren
moet worden herhaald.De daemon &man.hcsecd.8; is verantwoordelijk voor het
behandelen van alle verzoeken voor Bluetooth-authenticatie. Het
standaard instellingenbestand is
/etc/bluetooth/hcsecd.conf. Een
voorbeeldsectie voor een mobiele telefoon waarvan de PIN-code
willekeurig op 1234 is hieronder
beschreven:device {
bgaddr 00:80:37:29:19:a4;
name "Pav's T39";
key nokey;
pin "1234";
}Er is geen limiet voor PIN-codes (behalve de lengte). Voor
sommige apparaten (bijvoorbeeld Bluetooth-headsets) kan de
PIN-code vast zijn ingebouwd. De schakelaar
dwingt de daemon &man.hcsecd.8; om op de voorgrond te blijven,
zodat het gemakkelijk is om te zien wat er gebeurt. Stel het
andere apparaat in om paarverzoeken te ontvangen en initialiseer
de Bluetooth-verbinding naar het andere apparaat. Het apparaat
moet zeggen dat het paarverzoek geaccepteerd is en om de
PIN-code vragen. Geef dezelfde PIN-code op als in
hcsecd.conf. Nu zijn de PC en het andere
apparaat gepaard. Als alternatief kan paren op het andere
apparaat worden geïnitialiseerd.De volgende regel kan aan
het bestand /etc/rc.conf worden toegevoegd
om hcsecd automatisch met het
systeem op te starten:hcsecd_enable="YES"Het volgende is een voorbeeld van de uitvoer van de daemon
hcsecd:hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist
hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists
hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4Service Discovery Protocol (SDP)SDPHet Service Discovery Protocol (SDP) biedt voor
cliënttoepassingen de mogelijkheid om diensten te ontdekken
die door servertoepassingen worden aangeboden alsook de
kenmerken van deze diensten. De kenmerken van een dienst
omvatten de soort of klasse van de aangeboden dienst en de
informatie over het mechanisme of protocol dat nodig is om de
dienst te gebruiken.SDP omvat communicatie tussen een SDP-server en een
SDP-cliënt. De server houdt een lijst van
dienstenregistraties bij die de eigenschappen van de diensten
beschrijven die met de server geassocieerd zijn. Elke
dienstregistratie bevat informatie over een enkele dienst. Een
cliënt kan informatie over een dienstregistratie opvragen
die door de SDP-server wordt bijgehouden door een SDP-verzoek in
te dienen. Indien de cliënt, of een toepassing die met de
cliënt geassocieerd is, besluit om de dienst te gebruiken,
moet het een aparte verbinding naar de aanbieder van de dienst
openen om de dienst te gebruiken. SDP biedt een mechanisme om
diensten en hun attributen te ontdekken, maar het biedt geen
mechanisme om die diensten te gebruiken.Normaalgesproken zoekt een SDP-cliënt naar diensten
naar aanleiding van enkele gewenste eigenschappen van die
diensten. Soms is het echter wenselijk om te ontdekken welke
soorten diensten door de dienstregistraties van een SDP-server
worden beschreven zonder enige voorkennis van deze diensten.
Dit kijken naar alle aangeboden diensten wordt
browsen genoemd.De Bluetooth SDP-server &man.sdpd.8; en de
opdrachtregelcliënt &man.sdpcontrol.8; zitten in de
standaard &os;-installatie. Het volgende voorbeeld laat zien
hoe een SDP-browse query uit te voeren.&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec browse
Record Handle: 00000000
Service Class ID List:
Service Discovery Server (0x1000)
Protocol Descriptor List:
L2CAP (0x0100)
Protocol specific parameter #1: u/int/uuid16 1
Protocol specific parameter #2: u/int/uuid16 1
Record Handle: 0x00000001
Service Class ID List:
Browse Group Descriptor (0x1001)
Record Handle: 0x00000002
Service Class ID List:
LAN Access Using PPP (0x1102)
Protocol Descriptor List:
L2CAP (0x0100)
RFCOMM (0x0003)
Protocol specific parameter #1: u/int8/bool 1
Bluetooth Profile Descriptor List:
LAN Access Using PPP (0x1102) ver. 1.0... enzovoorts. Merk op dat elke dienst een lijst met
attributen heeft (bijvoorbeeld een RFCOMM-kanaal). Afhankelijk
van de dienst kan het nodig zijn om een aantekening van sommige
attributen te maken. Sommige Bluetooth-implementaties
ondersteunen dienst-browsen niet en zullen een lege lijst
teruggeven. In dit geval is het mogelijk om naar de specifieke
dienst te zoeken. Het onderstaande voorbeeld laat zien hoe naar
de dienst OBEX Object Push (OPUSH) gezocht kan worden:&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec search OPUSHHet aanbieden van diensten op &os; aan
Bluetooth-cliënten wordt gedaan met de server &man.sdpd.8;.
De volgende regel kan aan het
bestand /etc/rc.conf worden
toegevoegd:sdpd_enable="YES"Het daemon sdpd kan worden
gestart met:&prompt.root; /etc/rc.d/sdpd startDe plaatselijke servertoepassing die Bluetooth-diensten wil
aanbieden aan verre cliënten zal de dienst registreren bij
de plaatselijke SDP-daemon. Een voorbeeld van zo'n toepassing
is &man.rfcomm.pppd.8;. Nadat het gestart is zal het de
Bluetooth LAN-dienst bij de plaatselijke SDP-daemon
registreren.De lijst met diensten die bij de plaatselijke SDP-server
zijn geregistreerd kan worden opgevraagd door te SDP-browsen
via het plaatselijke controlekanaal:&prompt.root; sdpcontrol -l browseDial-Up Networking (DUN) en netwerktoegang met PPP (LAN)
profielenHet inbelnetwerk (DUN) profiel wordt het meeste gebruikt met
modems en mobiele telefoons. De volgende scenario's worden in
dit profiel behandeld:het gebruik van een mobiele telefoon of modem door een
computer als een draadloze modem voor het verbinden met een
inbelserver voor Internet-toegang, of voor andere
inbeldiensten;het gebruik van een mobiele telefoon of modem door een
computer om gegevensoproepen te ontvangen.Het profiel voor netwerktoegang met PPP (LAN) kan in de
volgende situaties gebruikt worden:LAN-toegang voor een enkel Bluetooth-apparaat;LAN-toegang voor meerdere Bluetooth-apparaten;PC naar PC (door PPP-netwerken over een seriële
kabel te emuleren).Op &os; zijn beide profielen geïmplementeerd met
&man.ppp.8; en &man.rfcomm.pppd.8; - een wrapper die een RFCOMM
Bluetooth-verbinding omzet in iets waar PPP mee overweg kan.
Voordat een profiel gebruikt kan worden, dient een nieuw
PPP-label in het bestand /etc/ppp/ppp.conf
te worden aangemaakt. Raadpleeg de hulppagina
&man.rfcomm.pppd.8; voor voorbeelden.In het volgende voorbeeld zal &man.rfcomm.pppd.8; gebruikt
worden om RFCOMM-verbinding met een ver apparaat met BD_ADDR
00:80:37:29:19:a4 op een DUN RFCOMM-kanaal te maken. Het
eigenlijke RFCOMM-kanaalnummer wordt via SDP van het verre
apparaat verkregen. Het is mogelijk om het RFCOMM-kanaal
handmatig op te geven, en in dat geval zal &man.rfcomm.pppd.8;
het SDP-verzoek niet uitvoeren. Gebruik &man.sdpcontrol.8; om
het RFCOMM-kanaal op het verre apparaat te achterhalen.&prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialupOm netwerktoegang met PPP (LAN) aan te bieden moet de server
&man.sdpd.8; draaien. Er dient een nieuwe regel voor
LAN-cliënten in het bestand
/etc/ppp/ppp.conf aangemaakt te worden.
Raadpleeg de hulppagina &man.rfcomm.pppd.8; voor voorbeelden.
Tenslotte dient de RFCOMM PPP-server op een geldig RFCOMM-kanaal
gestart te worden. De RFCOMM PPP-server zal automatisch de
Bluetooth LAN-dienst bij de plaatselijke SDP-daemon registreren.
Het volgende voorbeeld laat zien hoe een RFCOMM PPP-server te
starten:&prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-serverHet OBEX Object Push (OPUSH) profielOBEXOBEX is een veelgebruikt protocol voor eenvoudige
bestandsoverdrachten tussen mobiele apparaten. Het primaire
gebruik is infraroodcommunicatie, waar het wordt gebruikt voor
generieke bestandsoverdrachten tussen notebooks of PDA's, en
om visitekaarten en kalenderregels tussen mobiele telefoons en
andere apparaten met PIM-toepassingen over te dragen.De OBEX-server en clieënt zijn geïmplenteerd als
een pakket van derde partij, obexapp,
dat beschikbaar is als de port
comms/obexapp.De OBEX-cliënt wordt gebruikt om objecten naar en/of
van de OBEX-server te duwen/trekken. Een object kan
bijvoorbeeld een visitekaart of een afspraak zijn. De
OBEX-cliënt kan het RFCOMM-kanaalnummer van het verre
apparaat via SDP opvragen. Dit kan gedaan worden door de
dienstnaam in plaats van het RFCOMM-kanaalnummer op te geven.
De ondersteunde dienstnamen zijn: IrMC, FTRN, en OPUSH. Het is
mogelijk om het RFCOMM-kanaal als een nummer op te geven. Het
onderstaande is een voorbeeld van een OBEX-sessie, waar een
apparaatinformatie-object van de mobiele telefoon wordt
getrokken, en een nieuw object (een visitekaart) in de gids van
de telefoon wordt geduwd:&prompt.user; obexapp -a 00:80:37:29:19:a4 -C IrMC
obex> get telecom/devinfo.txt devinfo-t39.txt
Success, response: OK, Success (0x20)
obex> put new.vcf
Success, response: OK, Success (0x20)
obex> di
Success, response: OK, Success (0x20)Om de dienst OBEX Object Push aan te bieden, moet de server
&man.sdpd.8; draaien. Er moet een hoofdmap worden aangemaakt
waarin alle binnenkomende objecten worden opgeslagen. Het
standaardpad naar de hoofdmap is
/var/spool/obex. Tenslotte moet de
OBEX-server op een geldig RFCOMM-kanaal worden gestart. De
OBEX-server zal automatisch de dienst OBEX Object Push bij de
plaatselijke SDP-daemon registeren. Het onderstaande voorbeeld
laat zien hoe de OBEX-server gestart wordt:&prompt.root; obexapp -s -C 10Serial Port Profile (SPP)Het Seriële Poort Profiel (SPP) zorgt ervoor dat
Bluetooth-apparaten RS232 (of gelijkwaardige) seriële
kabels kunnen emuleren. Het scenario dat dit profiel behandelt
zorgt ervoor dat oude toepassingen Bluetooth kunnen gebruiken
als vervanging van kabels, door gebruik te maken van een
virtuele seriële poort.Het programma &man.rfcomm.sppd.1; implementeert het
Seriële Poort profiel. Een pseudo-tty wordt gebruikt als
abstractie voor een virtuele seriële poort. Onderstaand
voorbeeld laat zien hoe met een Seriële Poortdienst voor
verre apparaten te verbinden. Merk op dat het niet nodig is om
een RFCOMM-kanaal te kiezen - &man.rfcomm.sppd.1; kan het via
SDP van het verre apparaat verkrijgen. Dit kan worden overruled
door een RFCOMM-kanaal op de opdrachtregel te specificeren.&prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6
rfcomm_sppd[94692]: Starting on /dev/ttyp6...Als er een verbinding is, kan de pseudo-tty als seriële
poort worden gebruikt:&prompt.root; cu -l ttyp6Problemen oplossenEen apparaat op afstand kan geen verbinding makenSommige oudere Bluetooth-apparaten ondersteunen het
wisselen van rol niet. Standaard probeert &os;, wanneer het
een nieuwe verbinding accepteert, een rolwisseling uit te
voeren en meester te worden. Apparaten die dit niet
ondersteunen zullen niet kunnen verbinden. Merk op dat van
rol wordt gewisseld wanneer een nieuwe verbinding wordt
gemaakt, dus het is niet mogelijk om het verre apparaat te
vragen of het rolwisseling ondersteunt. Er is een HCI-optie
om rolwisselen aan de plaatselijke kant uit te zetten:&prompt.root; hccontrol -n ubt0hci write_node_role_switch 0Er gaat iets mis, kan ik precies zien wat er gebeurt?Ja, dit is mogelijk. Gebruik het pakket
hcidump, dat beschikbaar is als de
port comms/hcidump. Het
gereedschap hcidump is
vergelijkbaar met &man.tcpdump.1;. Het kan gebruikt worden om
de inhoud van Bluetooth-pakketten op de terminal te laten zien
en om de Bluetooth-pakketten naar een bestand te schrijven.AndrewThompsonGeschreven door BridgingIntroductieIP-subnetbridgeSoms is het handig om één fysiek netwerk
(zoals een Ethernet-segment) in twee gescheiden netwerksegmenten
te verdelen zonder de noodzaak om een IP-subnet aan te maken en
een router te gebruiken om de segmenten met elkaar te verbinden.
Een apparaat dat twee netwerken op deze manier met elkaar
verbindt wordt een bridge (brug) genoemd. Een
&os;-systeem met twee netwerkkaarten kan als bridge
dienen.De bridge werkt door de adressen van de MAC-laag
(Ethernetadressen) van de apparaten op elke netwerkinterface
te leren. Het stuurt alleen verkeer tussen twee netwerken door
indien de bron en het doel zich op verschillende netwerken
bevinden.In vele opzichten is een bridge als een Ethernet-switch met
erg weinig poorten.Situaties waarin bridging juist isEr zijn vandaag de dag veel situaties waarin een bridge
gebruikt wordt.Netwerken verbindenHet basisgebruik van een bridge is het met elkaar
verbinden van twee of meer netwerksegmenten. Er zijn vele
redenen om een hostgebaseerde bridge te gebruiken in plaats
van simpele netwerkapparaten zoals kabelbeperkingen,
firewalling of het verbinden van pseudonetwerken zoals een
interface van een virtuële machine. Een bridge kan ook
een draadloze interface die in hostap-modus draait met een
bedraad netwerk verbinden en als een toegangspunt
dienen.Filtering/Bandbreedtebeheersende firewallfirewallNATEen gebruikelijke situatie dient zich voor wanneer de
functionaliteit van een firewall nodig is zonder routing of
network address translation (NAT).Een voorbeeld is een klein bedrijf dat via DSL of ISDN met
hun internetprovider verbonden is. Dit bedrijf heeft 13
wereldwijd bereikbare IP-adressen van de internetprovider en
10 PC's op hun netwerk. In deze situatie is een firewall die
op een router gebaseerd is lastig wegens
subnet-problemen.routerDSLISDNEen firewall die op een bridge gebaseerd is kan ingesteld
en net na de DSL- of ISDN-router geplaatst worden zonder dat
er problemen met IP-nummers optreden.NetwerktapEen bridge kan twee netwerksegmenten verbinden en kan
gebruikt worden om alle Ethernetframes die tussen dezen
voorbijkomen te inspecteren. Dit kan òfwel vanuit het
gebruik van &man.bpf.4;/&man.tcpdump.1; op de bridge-interface
òfwel door een kopie van alle frames naar een extra
interface (overspanpoort) te versturen.Laag 2 VPNTwee Ethernetnetwerken kunnen over een IP-verbinding
verbonden worden door de netwerken naar een EtherIP-tunnel te
bridgen of met een oplossing gebaseerd po &man.tap.4; zoals
OpenVPN.Laag 2 RedundancyEen netwerk kan met meerdere verbindingen verbonden worden
en het Spanning Tree Protocol gebruiken om overbodige paden te
blokkeren. Een Ethernetnetwerk kan alleen juist functioneren
indien er slechts één actief pad bestaat tussen
twee apparaten, Spanning Tree zal lussen detecteren en de
overbodige verbindingen in een geblokkeerde toestand zetten.
Indien een van de actieve verbindingen faalt zal het protocol
een andere boom berekenen en een van de geblokkeerde paden
weer activeren om de verbindingen naar alle punten in het
netwerk te herstellen.De kernel instellenDeze sectie behandelt de bridges geïmplementeerd met
&man.if.bridge.4;, een stuurprogramma dat bridges met netgraph
implementeert is ook beschikbaar, zie voor meer informatie de
hulppagina &man.ng.bridge.4;.Het bridge-stuurprogramma is een kernelmodule en zal
automatisch door &man.ifconfig.8; worden geladen wanneer er een
bridge-interface wordt aangemaakt. Het is mogelijk om de bridge
in de kernel te compileren door
device if_bridge aan het
kernelinstellingenbestand toe te voegen.Pakketfiltering kan met elk firewall-pakket worden gebruikt
dat via het raamwerk &man.pfil.9; aankoppelt. De firewall kan
als een module worden geladen of in de kernel worden
gecompileerd.De bridge kan als met &man.altq.4; of &man.dummynet.4; als
een verkeersregelaar worden gebruikt.De bridge inschakelenDe bridge wordt aangemaakt door interfaces te klonen. Om
een bridge aan te maken wordt &man.ifconfig.8; gebruikt, indien
het bridge-stuurprogramma niet in de kernel aanwezig is zal het
automatisch worden geladen.&prompt.root; ifconfig bridge create
&prompt.root; ifconfig bridge0
bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0Een bridge-interface is aangemaakt en er is automatisch een
random gegenereerd Ethernetadres aan toegekend. De parameters
maxaddr en timeout bepalen
hoeveel MAC-adressen de bridge in de doorstuurtabel houdt en
hoeveel seconden voordat elke regel wordt verwijderd nadat het
voor het laatst gezien is. De andere parameters bepalen hoe
Spanning Tree werkt.Voeg de netwerkinterfaces die lid zijn aan de bridge toe.
Om de bridge pakketten te laten doorsturen dienen alle
lidinterfaces en de bridge actief te zijn:&prompt.root; ifconfig bridge0 addm fxp0 addm fxp1 up
&prompt.root; ifconfig fxp0 up
&prompt.root; ifconfig fxp1 upDe bridge stuurt nu Ethernet-frames door tussen
fxp0 en fxp1.
De overeenkomstige configuratie in
/etc/rc.conf zodat de bridge tijdens het
opstarten wordt aangemaakt is:cloned_interfaces="bridge0"
ifconfig_bridge0="addm fxp0 addm fxp1 up"
ifconfig_fxp0="up"
ifconfig_fxp1="up"Indien de bridge-gastheer een IP-adres nodig heeft dan is de
juiste plaats om dit in te stellen op de bridge-interface zelf
in plaats van op een van de lidinterfaces. Dit kan statisch of
via DHCP worden ingesteld:&prompt.root; ifconfig bridge0 inet 192.168.0.1/24Het is ook mogelijk om een IPv6-adres aan een
bridge-interface toe te kennen.Firewalls gebruikenfirewallWanneer pakketten worden gefilterd, zullen gebridgede
pakketten het filter inbound op de vertrekkende interface
passeren, op de bridge-interface en outbound op de bestemde
interface. Elke stap kan uitgezet worden. Wanneer de richting
van het pakketverkeer belangrijk is, kan de firewall het beste
op de lidinterfaces draaien en niet op de bridge zelf.De bridge heeft verschillende aanpasbare instellingen voor
het doorlaten van non-IP- en ARP-pakketten, en een laag 2
firewall met IPFW. Zie &man.if.bridge.4; voor meer
informatie.Opspannende boomHet bridge-stuurprogramma implementeert het Rapid Spanning
Tree Protocol (RSTP of 802.1w) met terugwaartse compatibiliteit
met het verouderde Spanning Tree Protocol (STP). Spanning Tree
wordt gebruikt om lussen in een netwerktopologie te detecteren
en verwijderen. RSTP biedt snellere convergentie naar een
opspannende boom dan het verouderde STP, het protocol wisselt
informatie met naburige switches uit om snel naar forwarding
over te gaan zonder lussen te creëren. &os; ondersteunt
RSTP en STP als opties, waarbij RSTP de standaard is.Spanning Tree kan op lidinterfaces worden geactiveerd met
het commando stp. Voor een bridge met
fxp0 en fxp1
alle huidige interfaces, wordt STP met het volgende
geactiveerd:&prompt.root; ifconfig bridge0 stp fxp0 stp fxp1
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether d6:cf:d5:a0:94:6d
id 00:01:02:4b:d4:50 priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 0 port 0
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 3 priority 128 path cost 200000 proto rstp
role designated state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role designated state forwardingDe bridge heeft spanning tree ID
00:01:02:4b:d4:50 en prioriteit
32768. Aangezien het
root id hetzelfde is geeft dit aan dat dit de
hoofdbridge voor de boom is.Een andere bridge in het netwerk heeft spanning tree ook
geactiveerd:bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
ether 96:3d:4b:f1:79:7a
id 00:13:d4:9a:06:7a priority 32768 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 100 timeout 1200
root id 00:01:02:4b:d4:50 priority 32768 ifcost 400000 port 4
member: fxp0 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 4 priority 128 path cost 200000 proto rstp
role root state forwarding
member: fxp1 flags=1c7<LEARNING,DISCOVER,STP,AUTOEDGE,PTP,AUTOPTP>
port 5 priority 128 path cost 200000 proto rstp
role designated state forwardingDe reegl root id 00:01:02:4b:d4:50 priority 32768
ifcost 400000 port 4 geeft aan dat de hoofdbridge
00:01:02:4b:d4:50 is zoals boven en dat de
padkosten 400000 zijn vanaf deze bridge, het
pad naar de hoofdbridge gaat via port 4
welke fxp0 is.Geavanceerd bridgenVerkeersstromen reconstruerenDe bridge ondersteunt monitormodus, waarin de pakketten
worden verwijderd nadat ze door &man.bpf.4; zijn verwerkt,
en ze niet verder verwerkt of doorgestuurd worden. Dit kan
worden gebruikt om de invoer van twee of meer interfaces naar
een enkele &man.bpf.4;-stroom te multiplexen. Dit is nuttig
voor het reconstrueren van het verkeer voor netwerktaps welke
de RX/TX-signalen over twee verschillende interfaces
uitzenden.Om de invoer van vier netwerkinterfaces als
één stroom te lezen:&prompt.root; ifconfig bridge0 addm fxp0 addmfxp1 addm fxp2 addm fxp3 monitor up
&prompt.root; tcpdump -i bridge0SPAN poortenVan elk Ethernet-frame dat door de bridge wordt ontvangen
wordt er een kopie naar de aangewezen SPAN-poort verstuurd.
Het aantal geconfigureerde SPAN-poorten op een bridge is
onbeperkt, indien een interface aangewezen is als SPAN-poort
kan het niet ook als gewone bridgepoort gebruikt worden. Dit
is het nuttigste voor het passief afluisteren van een
gebridged netwerk op een andere host die met een van de
SPAN-poorten van de bridge verbonden is.Om een kopie van alle frames naar de interface
fxp4 te versturen:&prompt.root; ifconfig bridge0 span fxp4Privé-interfacesEen privé-interface stuurt geen verkeer door naar
poorten die niet ook een privé-interface zijn. Het
verkeer wordt onvoorwaardelijk geblokkeerd, dus worden er
geen Ethernetframes doorgestuurd, inclusief ARP. Indien
verkeer selectief dient te worden geblokkeerd dient er in
plaats hiervan een firewall gebruikt te worden.Klevende interfacesIndien een lidinterface van een bridge als klevend is
gemarkeerd worden dynamisch geleerde adresregels als statisch
behandelt wanneer ze in de doorstuurcache komen. Klevende
interfaces vallen nooit uit de cache en worden nooit vervangen,
zelfs niet als het adres op een andere interface wordt gezien.
Dit biedt het voordeel van statische adresregels zonder dat de
doorstuurtabel van te voren gevuld hoeft te worden,
cliënten die geleerd zijn op een bepaald segment van de
bridge kunnen niet roamen naar een ander segment.Een ander voorbeeld voor het gebruik van klevende adressen
zou het combineren van de bridge met VLANs zijn om een router
te creëren waar klantnetwerken geïsoleerd zijn
zonder dat IP-adresruimte verspild wordt. Neem aan dat
KlantA op
vlan100 zit en KlantB op
vlan101. De bridge heeft het adres
192.168.0.1 en is tevens een
internet-router.&prompt.root; ifconfig bridge0 addm vlan100 sticky vlan100 addm vlan101 sticky vlan101
&prompt.root; ifconfig bridge0 inet 192.168.0.1/24Beide cliënten zien 192.168.0.1 als hun standaard gateway
en aangezien de bridge-cache kleverig is kunnen ze niet het
MAC-adres van de andere klant spoofen om hun verkeer op te
vangen.Alle communicatie tussen de VLANs kan geblokkeerd worden
door het gebruik van privé-interfaces (of een firewall):&prompt.root; ifconfig bridge0 private vlan100 private vlan101De klanten zijn compleet geïsoleerd van elkaar, het
volledige /24 adresruimte kan
zonder subnetten toegewezen worden.AdresbeperkingenHet aantal unieke bron-MAC-adressen achter een interface
kan beperkt zijn. Wanneer de limiet bereikt is worden
pakketten met een onbekend bronadres gedropt totdat een
bestaande ingang in de host-cache vervalt of wordt
verwijderd.Het volgende voorbeeld stelt het maximum aantal
Ethernetapparaten voor KlantA op
vlan100 in op 10.&prompt.root; ifconfig bridge0 ifmaxaddr vlan100 10SNMP-monitoringDe bridge-interface en STP-parameters kunnen gemonitord
worden via het SNMP-daemon dat met het basis &os;-systeem
wordt meegeleverd. De geëxporteerde bridge-MIBs houden
zich aan de standaarden van de IETF zodat elke
SNMP-cliënt of monitorpakket kan worden gebruikt om de
gegevens te verzamelen.Op de bridge-machine dient de regel
begemotSnmpdModulePath."bridge" =
"/usr/lib/snmp_bridge.so" van
/etc/snmp.config geactiveerd te worden en
het daemon bsnmpd gestart te worden.
Andere instellingen zoals gemeenschapsnamen en toegangslijsten
dienen eventueel aangepast te worden. Zie &man.bsnmpd.1; en
&man.snmp.bridge.3; voor meer informatie.Het volgende voorbeeld gebruikt de software
Net-SNMP (net-mgmt/net-snmp om een bridge te
ondervragen, de port net-mgmt/bsnmptools kan ook worden
gebruikt. Voeg de volgende regels toe aan
$HOME/.snmp/snmp.conf op de
SNMP-cliënt-host om de MIB-definities van de bridge in
Net-SNMP te importeren:mibdirs +/usr/share/snmp/mibs
mibs +BRIDGE-MIB:RSTP-MIB:BEGEMOT-MIB:BEGEMOT-BRIDGE-MIBOm een enkele bridge via de IETF BRIDGE-MIB (RFC4188) te
monitoren:&prompt.user; snmpwalk -v 2c -c public bridge1.example.com mib-2.dot1dBridge
BRIDGE-MIB::dot1dBaseBridgeAddress.0 = STRING: 66:fb:9b:6e:5c:44
BRIDGE-MIB::dot1dBaseNumPorts.0 = INTEGER: 1 ports
BRIDGE-MIB::dot1dStpTimeSinceTopologyChange.0 = Timeticks: (189959) 0:31:39.59 centi-seconds
BRIDGE-MIB::dot1dStpTopChanges.0 = Counter32: 2
BRIDGE-MIB::dot1dStpDesignatedRoot.0 = Hex-STRING: 80 00 00 01 02 4B D4 50
...
BRIDGE-MIB::dot1dStpPortState.3 = INTEGER: forwarding(5)
BRIDGE-MIB::dot1dStpPortEnable.3 = INTEGER: enabled(1)
BRIDGE-MIB::dot1dStpPortPathCost.3 = INTEGER: 200000
BRIDGE-MIB::dot1dStpPortDesignatedRoot.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
BRIDGE-MIB::dot1dStpPortDesignatedCost.3 = INTEGER: 0
BRIDGE-MIB::dot1dStpPortDesignatedBridge.3 = Hex-STRING: 80 00 00 01 02 4B D4 50
BRIDGE-MIB::dot1dStpPortDesignatedPort.3 = Hex-STRING: 03 80
BRIDGE-MIB::dot1dStpPortForwardTransitions.3 = Counter32: 1
RSTP-MIB::dot1dStpVersion.0 = INTEGER: rstp(2)De waarde dot1dStpTopChanges.0 is twee
wat betekent dat de topologie van de STP-bridge twee maal
veranderd is, een topologieverandering houdt in dat
één of meerdere links in het netwerk zijn
veranderd of hebben gefaald en dat er een nieuwe boom is
berekend. De waarde
dot1dStpTimeSinceTopologyChange.0 laat zien
wanneer dit gebeurde.Om meerdere bridge-interfaces te monitoren kan men het
privé BEGEMOT-BRIDGE-MIB gebruiken:&prompt.user; snmpwalk -v 2c -c public bridge1.example.com
enterprises.fokus.begemot.begemotBridge
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge0" = STRING: bridge0
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseName."bridge2" = STRING: bridge2
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge0" = STRING: e:ce:3b:5a:9e:13
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseAddress."bridge2" = STRING: 12:5e:4d:74:d:fc
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge0" = INTEGER: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeBaseNumPorts."bridge2" = INTEGER: 1
...
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge0" = Timeticks: (116927) 0:19:29.27 centi-seconds
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTimeSinceTopologyChange."bridge2" = Timeticks: (82773) 0:13:47.73 centi-seconds
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge0" = Counter32: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeStpTopChanges."bridge2" = Counter32: 1
BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge0" = Hex-STRING: 80 00 00 40 95 30 5E 31
BEGEMOT-BRIDGE-MIB::begemotBridgeStpDesignatedRoot."bridge2" = Hex-STRING: 80 00 00 50 8B B8 C6 A9Om de bridge-interface die via de subboom
mib-2.dot1dBridge wordt gemonitord te
veranderen:&prompt.user; snmpset -v 2c -c private bridge1.example.com
BEGEMOT-BRIDGE-MIB::begemotBridgeDefaultBridgeIf.0 s bridge2AndrewThompsonGeschreven door Verbindingsaggregatie en failoverlaggfailoverfeclacploadbalanceroundrobinIntroductieDe interface &man.lagg.4; maakt het mogelijk om meerdere
netwerkinterfaces te aggregeren in één virtueel
interface voor het bieden van fout-tolerante en zeer snelle
verbindingen.WerkmodiFailoverZendt en ontvangt verkeer alleen door de meesterpoort.
Wanneer de meesterpoort niet beschikbaar is, wordt de
volgende actieve poort gebruikt. De eerste toegevoegde
interface is de meesterpoort; alle interfaces die hierna
zijn toegevoegd worden gebruikt als failover-apparaten. Als
failover naar een niet-meesterpoort plaatsvindt, dan wordt de
originele poort de meester wanneer deze weer beschikbaar
wordt.&cisco; Fast ðerchannel;&cisco; Fast ðerchannel; (FEC), is een statische
installatie en onderhandelt niet over aggregatie met de
peer noch wisselt het frames uit om de verbinding te
monitoren. Indien de switch LACP ondersteunt dient dat
gebruikt te worden.FEC balanceert uitgaand verkeer
over de actieve poorten gebaseerd op gehashde informatie
over protocolheaders en accepteert inkomend verkeer van
elke actieve poort. De hash bevat het Ethernet bron- en
doeladres, en indien beschikbaar, de VLAN-tag, en de
IPv4/IPv6 bron- en doeladressen.LACPHet &ieee; 802.3ad Link Aggregation Control Protocol
(LACP) en het Marker Protocol. LACP onderhandelt met de
peer over een verzameling aggregeerbare verbindingen in
één of meerdere Link Aggregated Groups
(LAG). Elke LAG is opgebouwd uit poorten die dezelfde
snelheid hebben, ingesteld op full-duplex werking. Het
verkeer zal over de poorten in de LAG gebalanceerd worden
met de hoogste totaalsnelheid, in de meeste gevallen zal
er slechts één LAG zijn die alle poorten
bevat. Wanneer er fysieke verbindingen veranderen, zal
Link Aggregation snel naar een nieuwe opstelling
convergeren.LACP balanceert uitgaand verkeer
over de actieve poorten gebaseerd op gehashde informatie
over protocolheaders en accepteert inkomend verkeer van
elke actieve poort. De hash bevat het Ethernet bron- en
doeladres, en indien beschikbaar, de VLAN-tag, en de
IPv4/IPv6 bron- en doeladressen.LoadbalanceDit is een alias van de FEC
modus.Round-RobinDistribueert uitgaand verkeer door middel van een
round-robin scheduler over alle actieve poorten en
accepteert inkomend verkeer van elke actieve poort. Deze
modus schendt Ethernet frame-ordering en dient met zorg
gebruikt te worden.VoorbeeldenLACP-aggregatie met een &cisco; switchDit voorbeeld verbindt twee interfaces op een &os;-machine
met de switch als een enkele loadgebalanceerde en
fout-tolerante verbinding. Er kunnen meer interfaces worden
toegevoegd om de doorvoer en fouttolerantie te verhogen.
Aangezien frame-ordering verplicht is op Ethernetverbindingen
stroomt al het verkeer tussen twee stations altijd over
dezelfde fysieke verbinding zodat de maximum snelheid beperkt
wordt tot die van één interface. Het
verzendalgoritme probeert zoveel mogelijk informatie te
gebruiken voor het onderscheiden van verschillende
verkeersstromen en deze over de beschikbare interfaces te
balanceren.Voeg op de &cisco; switch de interfaces
FastEthernet0/1 en
FastEthernet0/2 aan de kanaalgroep
1 toe:interface FastEthernet0/1
channel-group 1 mode active
channel-protocol lacp
!
interface FastEthernet0/2
channel-group 1 mode active
channel-protocol lacpMaak de &man.lagg.4;-interface aan met
fxp0 en fxp1 en
activeer de interface met IP-adres
10.0.0.3/24:&prompt.root; ifconfig fxp0 up
&prompt.root; ifconfig fxp1 up
&prompt.root; ifconfig lagg0 create
&prompt.root; ifconfig lagg0 up laggproto lacp laggport fxp0 laggport fxp110.0.0.3/24Bekijk de interfacestatus van ifconfig:&prompt.root; ifconfig lagg0Poorten die als ACTIVE zijn
gemarkeerd zijn lid van de actieve aggregatiegroep waarover
onderhandeld is met de verre switch en waarover verkeer zal
worden verzonden en ontvangen. Gebruik de uitgebreide uitvoer
van &man.ifconfig.8; om de LAG-identifiers te bekijken.lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
media: Ethernet autoselect
status: active
laggproto lacp
laggport: fxp1 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>
laggport: fxp0 flags=1c<ACTIVE,COLLECTING,DISTRIBUTING>Gebruik, om de toestand van de poorten op de switch te
bekijken, show lacp neighbor.switch# show lacp neighbor
Flags: S - Device is requesting Slow LACPDUs
F - Device is requesting Fast LACPDUs
A - Device is in Active mode P - Device is in Passive mode
Channel group 1 neighbors
Partner's information:
LACP port Oper Port Port
Port Flags Priority Dev ID Age Key Number State
Fa0/1 SA 32768 0005.5d71.8db8 29s 0x146 0x3 0x3D
Fa0/2 SA 32768 0005.5d71.8db8 29s 0x146 0x4 0x3DGebruik voor meer detail het commando show lacp
neighbor detail.Voeg de volgende regels aan /etc/rc.conf toe
om deze informatie na het opnieuw starten te behouden:ifconfig_fxp0="up"
ifconfig_fxp1="up"
cloned_interfaces="lagg0"
ifconfig_lagg0="laggproto lacp laggport fxp0 laggport fxp110.0.0.3/24"Failover-modusFailover-modus kan worden gebruikt om op een secondaire
interface over te schakelen wanneer de verbinding op de
meesterinterface verloren is. Activeer de onderliggende fysieke
interface. Creëer de
interface lagg0, met
fxp0 als de meesterinterface en
fxp1 als de secondaire
interface en ken er IP-adres 10.0.0.15/24
aan toe:&prompt.root; ifconfig fxp0 up
&prompt.root; ifconfig fxp1 up
&prompt.root; ifconfig lagg0 create
&prompt.root; ifconfig lagg0 up laggproto failover laggport fxp0 laggport fxp110.0.0.15/24De interface zal er ongeveer als volgt uitzien, de grote
verschillen zullen het MAC-adres en de
apparaatnamen zijn:&prompt.root; ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:05:5d:71:8d:b8
inet 10.0.0.15 netmask 0xffffff00 broadcast 10.0.0.255
media: Ethernet autoselect
status: active
laggproto failover
laggport: fxp1 flags=0<>
laggport: fxp0 flags=5<MASTER,ACTIVE>Het verkeer zal worden verzonden en ontvangen op
fxp0. Indien de verbinding op
fxp0 verloren is, zal
fxp1 de actieve verbinding worden.
Indien de verbinding op de meesterinterface hersteld is, zal
het weer de actieve verbinding worden.Voeg de volgende regels aan /etc/rc.conf toe
om deze informatie na het opnieuw starten te behouden:ifconfig_fxp0="up"
ifconfig_fxp1="up"
cloned_interfaces="lagg0"
ifconfig_lagg0="laggproto lacp laggport fxp0 laggport fxp110.0.0.15/24"Failover-modus tussen bekabelde en draadloze interfacesVoor laptop-gebruikers is het normaliter wenselijk om het
draadloze interface als secundair interface te gebruiken indien het
bekabelde interface niet beschikbaar is. Met &man.lagg.4; is het
mogelijk om één IP-adres te gebruiken en het bekabelde
interface voor zowel prestatie als veiligheid te prefereren terwijl de
mogelijkheid behouden blijft om de draadloze verbinding te
gebruiken.In deze opstelling dient het MAC-adres van het onderliggende
draadloze interface overschreven te worden om met dat van &man.lagg.4;
overeen te komen, welke afkomstig is van het primaire interface dat
wordt gebruikt, het bekabelde interface.In deze opstelling wordt het bekabelde interface,
bge0 als meester gebruikt, en het draadloze
interface, wlan0, als het
failover-interface. wlan0 was aangemaakt
vanuit iwn0 voor welke het
MAC-adres van de bekabelde verbinding zal worden
gebruikt. De eerste stap is om het MAC-adres van
het bekabelde interface te verkrijgen:&prompt.root; ifconfig bge0
bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
ether 00:21:70:da:ae:37
inet6 fe80::221:70ff:feda:ae37%bge0 prefixlen 64 scopeid 0x2
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT <full-duplex>)
status: activebge0 kan vervangen worden door het
eigenlijke interface, er zal een andere regel met
ether verschijnen, dit is het
MAC-adres van het bekabelde interface. Om het
onderliggende draadloze interface, iwn0 te
wijzigen:&prompt.root; ifconfig iwn0 ether 00:21:70:da:ae:37Activeer het draadloze interface maar geef er nog geen IP-adres
aan:&prompt.root; ifconfig wlan0 create wlandev iwn0 ssid mijn_router upActiveer de interface bge0. Maak het
&man.lagg.4;-interface aan met bge0 als
meester, en met failover naar wlan0 indien
nodig:&prompt.root; ifconfig bge0 up
&prompt.root; ifconfig lagg0 create
&prompt.root; ifconfig lagg0 up laggproto failover laggport bge0 laggport wlan0Het interface zal er ongeveer als volgt uitzien, de grootste
verschillen zullen het MAC-adres en de
apparaatnamen zijn:&prompt.root; ifconfig lagg0
lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=8<VLAN_MTU>
ether 00:21:70:da:ae:37
media: Ethernet autoselect
status: active
laggproto failover
laggport: wlan0 flags=0<>
laggport: bge0 flags=5<MASTER,ACTIVE>Start vervolgens de DHCP-cliënt om een IP-adres te
verkrijgen:&prompt.root; dhclient lagg0Om deze configuratie bij het opstarten te behouden, kan het
volgende aan /etc/rc.conf worden
toegevoegd:ifconfig_bge0="up"
ifconfig_iwn0="ether 00:21:70:da:ae:37"
wlans_iwn0="wlan0"
ifconfig_wlan0="WPA"
cloned_interfaces="lagg0"
ifconfig_lagg0="laggproto failover laggport bge0 laggport wlan0 DHCP"Jean-FrançoisDockèsBijgewerkt door AlexDupreGereorganiseerd en uitgebreid door Schijfloos werkenschijfloos werkstationschijfloos werkenEen &os;-machine kan over het netwerk opstarten en zonder een
plaatselijke schijf werken, door gebruik te maken van
bestandssystemen die van een NFS-server
aangekoppeld worden. Er zijn geen systeemwijzigingen nodig anders
dan de standaard instellingenbestanden. Dit soort systemen is
relatief eenvoudig op te zetten omdat alle noodzakelijke elementen
al aanwezig zijn:Er zijn minstens twee manieren om de kernel over het
netwerk te laden:PXE: De &intel; Preboot eXecution
Environment is een vorm een smart boot ROM dat in sommige
netwerkkaarten en moederborden is ingebouwd. Bekijk de
hulppagina &man.pxeboot.8; voor meer informatie.De poort Etherboot
(net/etherboot) maakt
code aan dat naar een ROM geschreven kan worden en dat
kernels over het netwerk opstart. De code kan
òfwel naar een opstart-PROM op een netwerkkaart
geflashed worden, òfwel van een floppy (of harde)
schijf geladen worden, òfwel van een draaiend
&ms-dos; systeem geladen worden. Vele netwerkkaarten
worden ondersteund.Een voorbeeldscript
(/usr/share/examples/diskless/clone_root)
vergemakkelijkt het aanmaken en beheren van het root
bestandssysteem van het werkstation op de server. Het kan
nodig zijn dat het script wat aangepast moet worden, maar het
zorgt voor een snelle start.Er bestaan standaardbestanden voor het opstarten van het
systeem in /etc om een systeemstart
zonder schijf te detecteren en te ondersteunen.Het gebruik van een wisselbestand, indien nodig, kan
worden gedaan naar òfwel een NFS
bestand òfwel naar een plaatselijke schijf.Er zijn vele manieren om een schijfloos werkstation op te
zetten. Hierbij zijn veel elementen betrokken, en vele kunnen aan
de eigen smaak worden aangepast. Het volgende beschrijft
variaties met betrekking tot het installeren van een compleet
systeem, waarbij de nadruk ligt op de eenvoud en de
compatibiliteit met de standaard opstartscripts van &os;. Het
beschreven systeem heeft de volgende eigenschappen:De schijfloze werkstations gebruiken een gedeeld
bestandssysteem voor /, dat alleen
gelezen kan worden, en een gedeeld bestandssysteem voor
/usr, dat eveneens alleen gelezen kan
worden.Het root-bestandssysteem is een kopie van een standaard
root-bestandssysteem voor &os; (typisch van een server),
waarbij enkele instellingenbestanden zijn overschreven door
versies die specifiek zijn voor een schijfloos systeem of,
mogelijk, door het werkstation horen waar ze bij horen.De delen van het root-bestandssysteem die beschrijfbaar
moeten zijn, zijn overdekt met &man.md.4; bestandssystemen.
Alle veranderingen gaan verloren indien het systeem opnieuw
wordt opgestart.De kernel is overgedragen en òfwel met
Etherboot òfwel met
PXE geladen, aangezien sommige situaties
het gebruik van één van de methodes kan eisen.Het systeem zoals hierboven beschreven is onveilig. Het
dient in een beschermd gebied van een netwerk te functioneren, en
niet vertrouwd te worden door andere hosts.Alle informatie in deze sectie is getest met
&os; 5.2.1-RELEASE.AchtergrondinformatieHet installeren van schijfloze werkstations is zowel vrij
rechttoe-rechtaan als foutgevoelig. Deze fouten zijn soms
moeilijk vast te stellen wegens een aantal redenen.
Bijvoorbeeld:Opties die tijdens het compileren zijn opgegeven kunnen
verschillend gedrag tonen tijdens het draaien.Foutmeldingen zijn vaak cryptisch of geheel afwezig.Op dit gebied is het bezit van wat achtergrondkennis over de
gebruikte mechanismen zeer nuttig om mogelijke problemen op te
lossen.Voor een succesvol opstarten dienen verschillende
handelingen uitgevoerd te worden:De machine moet een aantal initiële parameters
zoals het IP-adres, de bestandsnaam van de executable, de
naam van de server, en het root-pad verkrijgen. Dit wordt
gedaan door gebruik te maken van de DHCP
of BOOTP protocollen. DHCP is een
compatible uitbreiding van BOOTP, het gebruikt dezelfde
poorten en het pakketformaat heeft dezelfde basis.Het is mogelijk om een systeem in te stellen zodat het
alleen BOOTP gebruikt. Het serverprogramma &man.bootpd.8;
wordt met het basissysteem van &os; meegeleverd.DHCP biedt echter een aantal
voordelen boven BOOTP (fijnere instellingenbestanden,
mogelijkheid om PXE te gebruiken, en vele
anderen die niet direct verband houden met schijfloos
werken), er zal hoofdzakelijk een opstelling met
DHCP worden beschreven, met analoge
voorbeelden voor &man.bootpd.8; indien mogelijk. De
voorbeeldopstelling zal het softwarepakket van
ISC DHCP gebruiken (versie
3.0.1.r12 was geïnstalleerd op de testserver).De machine moet één of meerdere
programma's naar het plaatselijke geheugen versturen.
Eén van TFTP of
NFS wordt gebruikt. De keuze tussen
TFTP en NFS is op
verschillende plaatsen een optie tijdens het compileren.
Een veelgemaakte fout is het opgeven van bestandsnamen voor
het verkeerde protocol: TFTP verstuurd
typisch alle bestanden vanuit één map op de
server, en verwacht dat alle bestandsnamen relatief aan
deze map zijn; NFS verwacht absolute
bestandspaden.De mogelijke tussentijdse opstartprogramma's en de
kernel dienen geïnitialiseerd en uitgevoerd te worden.
Er zijn enkele belangrijke variaties op dit gebied:PXE zal &man.pxeboot.8; laden,
wat een aangepaste versie is van de lader voor stage
drie van &os;. &man.loader.8; zal de meeste parameters
verkrijgen die noodzakelijk zijn om het systeem op te
starten, en zal ze in de kernelomgeving laten staan
voordat het de controle overdraagt. Het is in dit geval
mogelijk om een GENERIC kernel te
gebruiken.Etherboot zal met minder
voorbereiding direct de kernel laden. Hiervoor is het
noodzakelijk om een kernel met specifieke opties te
bouwen.PXE en
Etherboot werken beide even goed;
echter, omdat kernels normaalgesproken meer werk overlaten
aan &man.loader.8;, is PXE de te
verkiezen methode.Indien het BIOS en de netwerkkaarten
PXE ondersteunen, dient dat
waarschijnlijk gebruikt te worden.Tenslotte: de machine heeft toegang tot de
bestandssystemen nodig. NFS wordt in
alle gevallen gebruikt.Zie ook de hulppagina &man.diskless.8;.Installatie-instructiesInstellen met behulp van
ISC DHCPDHCPschijfloos werkenDe ISC DHCP server kan zowel
verzoeken voor BOOTP als DHCP
beantwoorden.ISC DHCP 4.2 maakt geen deel
uit van het basissysteem. Eerst dient de poort net/isc-dhcp42-server of het
corresponderende pakket geïnstalleerd te worden.Wanneer ISC DHCP is
geïnstalleerd, heeft het een instellingenbestand nodig om
te draaien (normaliter
/usr/local/etc/dhcpd.conf genoemd).
Hieronder volgt een voorbeeld met commentaar, waarbij host
margaux gebruik maakt van
Etherboot en
corbieres gebruik maakt van
PXE:default-lease-time 600;
max-lease-time 7200;
authoritative;
option domain-name "example.com";
option domain-name-servers 192.168.4.1;
option routers 192.168.4.1;
subnet 192.168.4.0 netmask 255.255.255.0 {
use-host-decl-names on;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.4.255;
host margaux {
hardware ethernet 01:23:45:67:89:ab;
fixed-address margaux.example.com;
next-server 192.168.4.4;
filename "/data/misc/kernel.diskless";
option root-path "192.168.4.4:/data/misc/diskless";
}
host corbieres {
hardware ethernet 00:02:b3:27:62:df;
fixed-address corbieres.example.com;
next-server 192.168.4.4;
filename "pxeboot";
option root-path "192.168.4.4:/data/misc/diskless";
}
}Deze optie vertelt dhcpd
om de waarde die in de verklaringen voor
host staan te versturen als de hostnaam
voor de schijfloze host. Een andere mogelijkheid is om
option
host-name margaux
binnen de verklaringen voor host op te
nemen.De aanwijzing next-server bepaalt
de TFTP of NFS
server die gebruikt moet worden voor het laden van het
lader- of kernelbestand (standaard wordt dezelfde host als
voor de DHCP-server gebruikt).De aanwijzing filename bepaalt het
bestand dat Etherboot of
PXE gebruikt voor de volgende
uitvoerstap. Het dient gespecificeerd te worden volgens
de gebruikte verzendmethode. Voor
Etherboot kan tijdens het
compileren worden opgegeven of het NFS
of TFTP moet gebruiken. De &os;-poort
stelt standaard NFS in.
PXE gebruikt TFTP,
vandaar dat hier een relatieve bestandsnaam wordt gebruikt
(dit kan afhangen van de instellingen van de
TFTP-server, maar het is de gewoonte).
Verder geldt dat PXE
pxeboot en niet de kernel laadt. Er
zijn andere interessante mogelijkheden, zoals het laden
van pxeboot vanuit de map /boot van een &os; CD-ROM
(aangezien &man.pxeboot.8; de GENERIC
kernel kan laden, bestaat de mogelijkheid om
PXE te gebruiken om van een CDROM op
afstand op te starten.De optie root-path definieert het
pad naar het root-bestandssysteem, in de gebruikelijke
notatie van NFS. Indien
PXE gebruikt wordt, is het mogelijk om
het IP-adres van de host weg te laten zolang de
kerneloptie BOOTP niet geactiveerd is. De
NFS-server is dan dezelfde als die van
TFTP.Configuratie door gebruik van BOOTPBOOTPschijfloos werkenHieronder staan de equivalente instellingen voor
bootpd (gereduceerd tot
één cliënt). Dit staat in
/etc/bootptab.Merk op dat Etherboot
gecompileerd dient te worden met de afwijkende optie
NO_DHCP_SUPPORT om BOOTP te gebruiken, en
dat PXE DHCP
nodig heeft. Het enige duidelijke
voordeel van bootpd is dat het in
het basissysteem zit..def100:\
:hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
:sm=255.255.255.0:\
:ds=192.168.4.1:\
:gw=192.168.4.1:\
:hd="/tftpboot":\
:bf="/kernel.diskless":\
:rp="192.168.4.4:/data/misc/diskless":
margaux:ha=0123456789ab:tc=.def100Een opstartprogramma voorbereiden met
EtherbootEtherbootDe website
van Etherboot bevat
uitgebreide documentatie die over het algemeen is
bedoeld voor Linux-systemen, maar die desalniettemin bruikbare
informatie bevat. Het volgende geeft een samenvatting over
hoe Etherboot op een &os;-systeem
te gebruiken.Ten eerste dient het pakket of de poort net/etherboot geïnstalleerd
te worden.De instellingen van Etherboot
(i.e., om TFTP in plaats van
NFS te gebruiken) kunnen gewijzigd worden
door het bestand Config in de bronmap van
Etherboot te bewerken.Hieronder zal een opstartdiskette gebruikt worden.
Raadpleeg voor andere methoden (PROM, of een
&ms-dos;-programma) de documentatie van
Etherboot.Om een opstartdiskette te maken, dient er een diskette in
het diskettestation van de machine aanwezig te zijn waarop
Etherboot is geïnstalleerd,
daarna dient er naar de map src in de
mapboom van Etherboot gegaan te
worden, en het volgende ingetypt te worden:&prompt.root; gmake bin32/apparaatsoort.fd0apparaatsoort hangt af van het
soort Ethernetkaart dat in het schijfloze werkstation
aanwezig is. Raadpleeg het bestand NIC
in dezelfde map om het juiste
apparaatsoort te bepalen.Opstarten met PXEStandaard laadt de lader &man.pxeboot.8; de kernel via
NFS. Het kan zodanig gecompileerd worden
dat het TFTP gebruikt door de optie
LOADER_TFTP_SUPPORT in
/etc/make.conf te specificeren.
Raadpleeg het commentaar in
/usr/share/examples/etc/make.conf
voor instructies.Er zijn nog twee andere opties voor
make.conf die nuttig kunnen zijn bij het
opzetten van een schijfloze machine die als seriële
console gebruikt wordt:
BOOT_PXELDR_PROBE_KEYBOARD, en
BOOT_PXELDR_ALWAYS_SERIAL.Om PXE bij het opstarten van de machine
te gebruiken, is het gewoonlijk nodig om de optie
Boot from network in het
BIOS te selecteren, of om een functietoets
tijdens de initialisatie van de PC in te typen.De TFTP en NFS
servers instellenTFTPschijfloos werkenNFSschijfloos werkenIndien PXE of
Etherboot gebruikt wordt, welke is
ingesteld om TFTP te gebruiken, is het
nodig om tftpd op de
bestandsserver aan te zetten:Maak een map aan van waaruit
tftpd de bestanden serveert,
bijvoorbeeld /tftpboot.Voeg deze regel toe aan
/etc/inetd.conf:tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpbootHet schijnt dat sommige versies van
PXE de TCP-versie
van TFTP vereisen. In dit geval
dient een tweede regel toegevoegd te worden, waarbij
dgram udp door
stream tcp vervangen wordt.inetd dient de
instellingenbestanden opnieuw te lezen. De regel
dient in het bestand
/etc/rc.conf aanwezig te zijn voor de
juiste werking van deze opdracht:&prompt.root; /etc/rc.d/inetd restartDe map tftpboot kan overal op de
server geplaatst worden. De plaats dient zowel in
inetd.conf als in
dhcpd.conf ingesteld te worden.In alle gevallen dient er ook voor gezorgd te worden dat
NFS aanstaat en dat het juiste
bestandssysteem op de NFS-server
geëxporteerd wordt.Voeg het volgende toe aan
/etc/rc.conf:nfs_server_enable="YES"Exporteer het bestandssysteem waar de schijfloze
root-map zich bevindt door het volgende aan
/etc/exports toe te voegen (pas het
aankoppelpunt van het volume aan en vervang
margaux corbieres door de namen
van de schijfloze werkstations):/data/misc -alldirs -ro margaux corbieresmountd dient het
instellingenbestand opnieuw te lezen. Indien het nodig
was om NFS in
/etc/rc.conf
tijdens de eerste stap aan te zetten, is het
waarschijnlijk gewenst om in plaats hiervan opnieuw op te
starten.&prompt.root; /etc/rc.d/mountd restartEen schijfloze kernel bouwenschijfloos werkenkernelinstellingenIndien Etherboot gebruikt wordt,
is het nodig om een kernelinstellingenbestand voor de
schijfloze cliënt met de volgende opties (naast de
gebruikelijke) aan te maken:options BOOTP # Gebruik BOOTP om het IP-adres en de hostnaam te verkrijgen
options BOOTP_NFSROOT # NFS-mount het root-bestandssysteem door gebruik te maken van de informatie van BOOTPHet kan ook gewenst zijn om BOOTP_NFSV3,
BOOT_COMPAT, en
BOOTP_WIRED_TO te gebruiken (raadpleeg
hiervoor NOTES).De namen van deze opties zijn historisch en enigszins
misleidend aangezien ze eigenlijk onverschillig gebruik van
DHCP en BOOTP in de kernel mogelijk maken
(het is ook mogelijk om strikt gebruik van BOOTP of
DHCP te forceren).De kernel dient gebouwd te worden (zie ) en gekopieerd te worden naar de
plaats die in dhcpd.conf is
aangegeven.Indien PXE gebruikt wordt, is het
bouwen van een kernel met bovenstaande opties niet strikt
noodzakelijk (maar wel aangeraden). Door deze opties aan te
zetten zullen er meer verzoeken voor DHCP
tijdens het opstarten van de kernel verstuurd worden, met in
sommige speciale gevallen een klein risico op inconsistentie
tussen de nieuwe waarden en degenen die door &man.pxeboot.8;
zijn ontvangen. Het voordeel van het gebruik van deze
opties is dat de hostnaam als een bijverschijnsel wordt
ingesteld. In de andere gevallen dient de hostnaam op een
andere manier ingesteld te worden, bijvoorbeeld in een
cliënt-specifiek bestand
rc.conf.Om laadbaar te zijn met
Etherboot, dienen de
apparaataanwijzingen in de kernel gecompileerd te worden.
Normaalgesproken wordt hiervoor de volgende optie in het
instellingenbestand gebruikt (zie het
instellingencommentaarbestand
NOTES):hints "GENERIC.hints"Het root-bestandssysteem voorbereidenroot-bestandssysteemschijfloos werkenEr dient een root-bestandssysteem voor de schijfloze
werkstations op de plaats die als root-path
in dhcpd.conf staat aangegeven aangemaakt
te worden.make world gebruiken om het
root-bestandssysteem te bevolkenDeze methode is snel en installeert een compleet
maagdelijk systeem (niet alleen het root-bestandssysteem) in
DESTDIR. Hiervoor dient slechts het volgende
script uitgevoerd te worden:#!/bin/sh
export DESTDIR=/data/misc/diskless
mkdir -p ${DESTDIR}
cd /usr/src; make buildworld && make buildkernel
make installworld && make installkernel
cd /usr/src/etc; make distributionNadat dit gedaan is, kunnen
/etc/rc.conf en
/etc/fstab die in
DESTDIR geplaatst zijn naar behoefte worden
aangepast.Swapruimte instellenIndien nodig kan een wisselbestand dat zich op de server
bevindt via NFS worden benaderd.Swapruimte via NFSDe kernel biedt geen ondersteuning om swapruimte via
NFS tijdens het opstarten aan te zetten.
De swapruimte moet door de opstartscripts worden aangezet,
door een beschrijfbaar bestandssysteem aan te koppelen en
een wisselbestand aan te maken en aan te zetten. De
volgende opdracht maakt een wisselbestand van de juiste
grootte aan:&prompt.root; dd if=/dev/zero of=/pad/naar/wisselbestand bs=1k count=1 oseek=100000Om het aan te zetten dient de volgende regel aan
/etc/rc.conf te worden
toegevoegd:swapfile=/pad/naar/wisselbestandDiverse problemenDraaien met een alleen-lezen
/usrschijfloos werken/usr alleen-lezenIndien het schijfloze werkstation is ingesteld om X te
draaien, is het nodig om het instellingenbestand van
XDM te wijzigen, dat standaard
het foutenlogboek in /usr
plaatst.Gebruik maken van een niet-&os;-serverIndien de server voor het root-bestandssysteem geen &os;
draait, is het nodig om het root-bestandssysteem op een
&os;-machine aan te maken, en het daarna naar de bestemming
te kopiëren, door gebruik te maken van
tar of cpio.In deze situatie zijn er af en toe problemen met de
speciale bestanden in /dev, vanwege
verschillen in de groottes van grote/kleine integers. Een
oplossing voor dit probleem is om een map van de
niet-&os;-server te exporteren, deze map op een &os;-machine
aan te koppelen, en &man.devfs.5; te gebruiken om de
apparaatknooppunten transparant voor de gebruiker toe te
wijzen.CraigRodrigues
rodrigc@FreeBSD.org
Geschreven door Met PXE en een NFS-root-bestandssysteem opstartenHet Preboot eXecution Environment (PXE) van &intel;
maakt het mogelijk om het besturingssysteem over het netwerk op te
starten. Ondersteuning voor PXE wordt normaliter
aangeboden in het BIOS van moderne moederborden, waar
het kan worden aangezet in de instellingen van het BIOS
wat opstarten over het netwerk mogelijk maakt. Een volledig werkende
PXE-opstelling vereist ook correct geconfigureerde
DHCP- en TFTP-servers.Wanneer de gastheercomputer opstart, krijgt het informatie over
DHCP over waar de intiële bootloader staat via
TFTP. Nadat de gastheercomputer deze informatie heeft ontvangen,
downloadt het de bootloader via TFTP en voert
het vervolgens de bootloader uit. Dit is gedocumenteerd in sectie 2.2.1
van de Preboot
Execution Environment (PXE) Specification. In &os; is de
bootloader die tijdens het PXE-proces wordt opgehaald
/boot/pxeboot. Terwijl
/boot/pxeboot wordt uitgevoerd, wordt de kernel van
&os; geladen en wordt er verder gegaan met de rest van de opstartprocedure
van &os;. Kijk voor meer informatie over het opstartproces van &os; in
.De chroot-omgeving voor het
NFS-root-bestandssysteem instellenKies een map uit voor een installatie van &os; die over NFS
aangekoppeld kan worden. Bijvoorbeeld een map als
/b/tftpboot/FreeBSD/install.&prompt.root; export NFSROOTDIR=/b/tftpboot/FreeBSD/install
&prompt.root; mkdir -p ${NFSROOTDIR}Stel de NFS-server in door de instructies in op te volgen.Exporteer de map via NFS door het volgende aan
/etc/exports toe te voegen:/b -ro -alldirsHerstart de NFS-server:&prompt.root; /etc/rc.d/nfsd restartStel &man.inetd.8; in door de stappen zoals in beschreven op te volgen.Voeg de volgende regel toe aan
/etc/inetd.conf:tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /b/tftpbootHerstart inetd:&prompt.root; /etc/rc.d/inetd restartHerbouw de kernel en userland van
&os;:&prompt.root; cd /usr/src
&prompt.root; make buildworld
&prompt.root; make buildkernelInstalleer &os; in de map die over NFS is
aangekoppeld:&prompt.root; make installworld DESTDIR=${NFSROOTDIR}
&prompt.root; make installkernel DESTDIR=${NFSROOTDIR}
&prompt.root; make distribution DESTDIR=${NFSROOTDIR}Test dat de TFTP-server werkt en dat het de
bootloader dat via PXE verkregen zal worden kan downloaden:&prompt.root; tftp localhost
tftp> get FreeBSD/install/boot/pxeboot
Received 264951 bytes in 0.1 secondsVoeg een regel aan ${NFSROOTDIR}/etc/fstab
toe om het root-bestandssysteem over NFS aan te koppelen:# Device Mountpoint FSType Options Dump Pass
-mijnhost.voorbeeld.com:/b/tftpboot/FreeBSD/install / nfs ro 0 0
+mijnhost.example.com:/b/tftpboot/FreeBSD/install / nfs ro 0 0
- Vervang mijnhost.voorbeeld.com door
+ Vervang mijnhost.example.com door
de hostnaam of het IP-adres van uw NFS-server.
In dit voorbeeld wordt het root-bestandssysteem als alleen-lezen
aangekoppeld om te voorkomen dat
NFS-cliënten per ongeluk de inhoud van het
root-bestandssysteem wissen.Stel het root-wachtwoord in voor de
&man.chroot.8;-omgeving.&prompt.root; chroot ${NFSROOTDIR}
&prompt.root; passwdDit stelt het root-wachtwoord in voor cliëntmachines die
over PXE opstarten.Maak root-logins over SSH mogelijk voor cliëntmachines die
met PXE opstarten door
${NFSROOTDIR}/etc/ssh/sshd_config te bewerken
en de optie PermitRootLogin aan te zetten. Dit
is gedocumenteerd in &man.sshd.config.5;.Pas andere wijzigingen toe aan de &man.chroot.8;-omgeving in
${NFSROOTDIR}. Deze wijzigingen zouden het toevoegen van pakketten
met &man.pkg.add.1;, het bewerken van het wachtwoordbestand met
&man.vipw.8; of het bewerken van &man.amd.conf.5;-projecties voor
automatisch aankoppelen kunnen zijn. Bijvoorbeeld:&prompt.root; chroot ${NFSROOTDIR}
&prompt.root; pkg_add -r bashGeheugenbestandssystemen die gebruikt worden door
/etc/rc.initdiskless configurerenAls u vanaf een NFS-rootvolume opstart, detecteert
/etc/rc dat u over NFS opstartte en draait het het
script /etc/rc.initdiskless. Lees het commentaar
in dit script om te begrijpen wat er gebeurt. Het is nodig om
/etc en /var geheugen-backed
te maken omdat deze mappen schrijfbaar moeten zijn, maar de NFS-rootmap
is alleen-lezen.&prompt.root; chroot ${NFSROOTDIR}
&prompt.root; mkdir -p conf/base
&prompt.root; tar -c -v -f conf/base/etc.cpio.gz --format cpio --gzip etc
&prompt.root; tar -c -v -f conf/base/var.cpio.gz --format cpio --gzip varWanneer het systeem opstart, zullen er geheugen-bestandssystemen
voor /etc en /var worden
aangemaakt en aangekoppeld, en zal de inhoud van de
cpio.gz-bestanden er naartoe worden
gekopieerd.Een DHCP-server preparerenPXE heeft een geprepareerde TFTP-server en
DHCP-server nodig. De DHCP-server
hoeft niet per së dezelfde machine te zijn als de
TFTP-server, maar het dient bereikbaar te zijn in uw
netwerk.Installeer de DHCP-server door de instructies
op te volgen zoals beschreven in . Zorg ervoor dat
/etc/rc.conf en
/usr/local/etc/dhcpd.conf correct zijn
geconfigureerd.Stel in /usr/local/etc/dhcpd.confnext-server, filename en
option root-path in om het IP-adres van uw
TFTP-server, het pad naar
/boot/pxeboot en het pad naar het
NFS-root-bestandssysteem op te geven. Hier is
een voorbeeld van de instellingen voor
dhcpd.conf:subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.2 192.168.0.3 ;
option subnet-mask 255.255.255.0 ;
option routers 192.168.0.1 ;
option broadcast-address 192.168.0.255 ;
option domain-name-server 192.168.35.35, 192.168.35.36 ;
- option domain-name "voorbeeld.com";
+ option domain-name "example.com";
# IP-adres van TFTP server
next-server 192.168.0.1 ;
# pad van bootloader verkregen via TFTP
filename "FreeBSD/install/boot/pxeboot" ;
# pxeboot bootloader zal proberen om deze map te NFS-mounten voor root-FS
option root-path "192.168.0.1:/b/tftpboot/FreeBSD/install/" ;
}De PXE-cliënt configureren en verbindingsproblemen
opsporenGa naar het BIOS-configuratiemenu wanneer de
cliëntmachine opstart. Stel het BIOS zo in
dat het van het netwerk opstart. Indien alle vorige
configuratiestappen correct zijn, zou alles "gewoon"
moeten werken.Gebruik de poort net/wireshark om netwerkverkeer met
betrekking tot het PXE-opstartproces te
debuggen, wat geïllustreerd is in onderstaand diagram. In
is een
voorbeeldconfiguratie gegeven waarbij de DHCP-,
TFTP- en NFS-servers op
dezelfde machine staan. Deze servers kunnen echter op verschillende
machines staan.PXE-opstartproces met NFS-root-mountCliënt zendt DHCPDISCOVER uit.DHCP-server antwoordt met IP-adres,
next-server,
filename en
root-path.Cliënt verstuurt TFTP-verzoek
naar next-server om
filename op te vragen.TFTP-server antwoordt en verstuurt
filename naar cliënt.Cliënt voert filename uit
welke &man.pxeboot.8; is. &man.pxeboot.8; laadt de
kernel. Wanneer de kernel draait, wordt het
root-bestandssysteem gespecificeerd door
root-path over
NFS aangekoppeld.Controleer dat het bestand pxeboot via
TFTP kan worden verkregen. Kijk op uw
TFTP-server in
/var/log/xferlog om er zeker van de zijn dat
het bestand pxeboot van de juiste locatie is
opgehaald. Om de configuratie met bovenstaande
dhcpd.conf te testen:&prompt.root; tftp 192.168.0.1
tftp> get FreeBSD/install/boot/pxeboot
Received 264951 bytes in 0.1 secondsLees &man.tftpd.8; en &man.tftp.1;. De BUGS
secties in deze pagina's documenteren enkele beperkingen van
TFTP.Controleer dat het root-bestandssysteem via
NFS kan worden aangekoppeld. Om de configuratie
met bovenstaande dhcpd.conf te testen:&prompt.root; mount -t nfs 192.168.0.1:/b/tftpboot/FreeBSD/install /mntLees de code in
src/sys/boot/i386/libi386/pxe.c
om te begrijpen hoe de pxeboot-lader variabelen
als boot.nfsroot.server en
boot.nfsroot.path instelt. Deze variabelen
worden vervolgens gebruikt in de root-aankoppelcode voor diskvrij
NFS in src/sys/nfsclient/nfs_diskless.c.Lees &man.pxeboot.8; en &man.loader.8;.ISDNISDNEen goede bron voor informatie over de technologie van en
hardware over ISDN is
Dan Kegel's
ISDN Page.Hieronder staat een snelle eenvoudige handleiding voor
ISDN:Indien u in Europa leeft is het raadzaam om de sectie over
ISDN-kaarten te bestuderen.Indien het plan is om ISDN hoofdzakelijk te gebruiken om
via een niet-toegewijde inbellijn een verbinding met het
Internet te maken, zijn Terminal Adapters wellicht een optie.
Dit biedt de meeste flexibiliteit, en de minste problemen bij
het wisselen van providers.Indien twee LANs met elkaar verbonden worden, of indien er
een toegewijde ISDN-verbinding wordt gebruikt om met het
Internet te verbinden, is het gebruik van een zelfstandige
router/bridge te overwegen.Financiële kosten zijn een belangrijke factor in de
uiteindelijke oplossing. De volgende opties zijn gesorteerd in
volgorde van oplopende kosten.HellmuthMichaelisBijgedragen door ISDN-kaartenISDNkaartenDe ISDN-implementatie in &os; biedt alleen ondersteuning
voor de DSS1/Q.931 (of Euro-ISDN) standaard indien passieve
kaarten gebruikt worden. Sommige actieve kaarten worden
ondersteund indien de firmware ook ondersteuning voor andere
signaleringsprotocollen biedt; dit omvat ook de eerst
ondersteunde Primary Rate (PRI) ISDN-kaart.De isdn4bsd-software biedt de
mogelijkheid om met andere ISDN-routers te verbinden door
òfwel IP over rauwe HDLC òfwel synchrone PPP te
gebruiken: òfwel via kernel-PPP met
isppp, een aangepast stuurprogramma voor
&man.sppp.4;, òfwel via het gebruikersprogramma
&man.ppp.8;. Door het gebruikersprogramma &man.ppp.8; te
gebruiken, is het combineren van twee of meer ISDN B-kanalen
mogelijk. Ook zijn een toepassing die de telefoon beantwoordt
en vele gereedschappen zoals een 300 Baud-modem in software
beschikbaar.Een groeiend aantal ISDN-kaarten voor de PC wordt door &os;
ondersteund en volgens de rapportages wordt het succesvol in
heel Europa en in vele andere delen van de wereld
gebruikt.De ondersteunde passieve ISDN-kaarten zijn meestal uitgerust
met de Infineon (voormalig Siemens) ISAC/HSCX/IPAC ISDN-chipsets,
maar ook worden ISDN-kaarten ondersteund met chips van Cologne
Chip (alleen ISA-bus), PCI-kaarten met Winbond W6692-chips,
enkele kaarten met combinaties van Tiger300/320/ISAC chipsets en
enkele kaarten die gebaseerd zijn op fabrikantspecifieke
chipsets zoals de AVM Fritz!Card PCI V.1.0 en de AVM Fritz!Card
PnP.Momenteel zijn de actieve ISDN-kaarten die ondersteund
worden de AVM B1 (ISA en PCI) BRI-kaarten en de AVM T1 PCI
PRI-kaarten.Kijk voor documentatie over
isdn4bsd op de homepage van
isdn4bsd, welke ook verwijzingen naar tips, errata, en
veel meer documentatie zoals het isdn4bsd handboek
bevat.Indien er interesse is om ondersteuning voor een ander
ISDN-protocol, een momenteel niet-ondersteunde ISDN-kaart voor
de PC, of een andere verbetering voor
isdn4bsd toe te voegen, dient er
contact opgenomen te worden met &a.hm;.Voor vragen over het installeren, instellen, en problemen
met isdn4bsd oplossen is er een
mailinglijst, &a.isdn.name;, beschikbaar.ISDN Terminal AdaptersTerminal adapters (TA) zijn voor ISDN wat modems voor gewone
telefoonlijnen zijn.modemDe meeste TA's gebruiken de standaard opdrachtenverzameling
van de Hayes-modem, en kunnen direct als vervanging van een
modem gebruikt worden.Een TA zal als een gewoon modem werken behalve dat de
verbindings- en doorvoersnelheden veel hoger zullen zijn dan van
het oude modem. Het is noodzakelijk om PPP precies hetzelfde als voor het modem
in te stellen. Zorg ervoor dat de seriële snelheid zo hoog
mogelijk wordt ingesteld.PPPHet grootste voordeel van met een TA met een
internetprovider te verbinden is de mogelijkheid tot dynamisch
PPP. Aangezien IP-adresruimte steeds schaarser wordt, zijn de
meeste providers niet meer bereid om een statisch IP te geven.
De meeste zelfstandige routers zijn niet in staat tot dynamische
IP-toewijzing.TA's zijn geheel afhankelijk van het PPP-daemon dat gedraaid
wordt voor hun mogelijkheden en stabiliteit van de verbinding.
Dit maakt het mogelijk om gemakkelijk om op een &os;-machine van
een modem naar ISDN over te gaan, indien PPP reeds is ingesteld.
Echter, dezelfde problemen die er waren met het PPP-programma
zullen blijven voorkomen.Indien maximale stabiliteit gewenst is, dient de kernel
PPP-, niet de gebruikers-PPP-optie gebruikt te
worden.Van de volgende TA's is bekend dat ze met &os; werken:Motorola BitSurfer en BitSurfer ProAdtranDe meeste andere TA's zullen waarschijnlijk ook werken,
TA-verkopers proberen er zeker van te zijn dat hun product het
meeste van de AT-opdrachtverzameling van het standaardmodem
accepteert.Het echte probleem met externe TA's is dat, net zoals bij
modems, een goede seriële kaart in de computer nodig
is.Voor een goed begrip van seriële apparaten dient de
tutorial &os;
Serial Hardware en de verschillen tussen asynchrone en
synchrone seriële poorten gelezen te worden.Een TA die op een standaard seriële poort (asynchroon)
van een PC draait beperkt de snelheid tot 115.2 Kbps, zelfs
als er een 128 Kbps-verbinding beschikbaar is. Om de
volledige 128 Kbps waartoe ISDN in staat is te gebruiken,
dient de TA op een synchrone seriële kaart overgeplaatst te
worden.Het kopen van een interne TA voorkomt het probleem van
synchroon/asynchroon niet. Interne TA's hebben simpelweg een
seriële poortchip van een standaard PC ingebouwd. Dit
ontlast de gebruiker alleen van het kopen van nog een
seriële kabel en het vinden van nog een leeg elektronisch
uitbreidingsslot.Een synchrone kaart met een TA is minstens zo snel als een
zelfstandige router, en wanneer het door een eenvoudige
386 met &os; erop wordt aangestuurd, waarschijnlijk
flexibeler.De keuze tussen synchrone kaart/TA en zelfstandige router is
grotendeels religieus. Hierover zijn wat discussies in de
mailinglijsten gevoerd. Het wordt aangeraden om de archieven te
doorzoeken voor de volledige discussie.Zelfstandige ISDN bridges/routersISDNzelfstandige bridges/routersISDN-bridges of -routers zijn in het geheel niet specifiek
voor &os; of enig ander besturingssysteem. Raadpleeg voor een
volledigere beschrijving van de technologie van routing en
bridging een referentieboek over netwerken.In deze sectie zullen de termen router en bridge door elkaar
worden gebruikt.Aangezien de prijzen van eenvoudige ISDN-routers/-bridges
zakken, zal dit waarschijnlijk een steeds populairdere keuze
worden. Een ISDN-router is en kleine doos die direct in het
plaatselijke Ethernetnetwerk geprikt wordt, en zijn eigen
verbinding met de andere bridge/router beheert. Het heeft
ingebouwde software om via PPP en andere populaire protocollen
te communiceren.Een router staat veel snellere doorvoer dan een standaard-TA
toe, aangezien het een volledig synchrone ISDN-verbinding zal
gebruiken.Het grootste probleem met ISDN-routers en -bridges is dat
samenwerking tussen fabrikanten nog steeds een probleem kan zijn.
Indien er plannen zijn om met een internetprovider te verbinden,
is het raadzaam de wensen met hen te bespreken.Indien er gepland is om twee LAN-segmenten met elkaar te
verbinden, zoals het thuis-LAN en het kantoor-LAN, is dit de
eenvoudigste en onderhoudarmste oplossing. Aangezien de
apparatuur voor beide kanten van de verbinding wordt gekocht is
het zeker dat de verbinding zal werken.De volgende installatie kan worden gebruikt om bijvoorbeeld
een thuiscomputer of een netwerk van een afdelingskantoor met
een netwerk van het hoofdkantoor te verbinden:Netwerk van afdelingskantoor of thuis10 base 2Het netwerk gebruikt een topologie gebaseerd op een bus
met een 10 base 2 Ethernet (thinnet). Verbind
indien nodig de router met de netwerkkabel met een AUI/10BT
transceiver.---Sun werkstation
|
---FreeBSD computer
|
---Windows 95
|
Zelfstandige router
|
ISDN BRI lijn10 Base 2 EthernetWanneer het thuis-/afdelingskantoornetwerk uit slechts
één computer bestaat kan een twisted-pair
crossover-kabel gebruikt worden om direct met de zelfstandige
router te verbinden.Hoofdkantoor- of ander LAN10 base THet netwerk gebruikt een stertopologie met 10 base T
Ethernet (Twisted Pair). -------Novell Server
| H |
| ---Sun
| |
| U ---FreeBSD
| |
| ---Windows 95
| B |
|___---Zelfstandige router
|
ISDN BRI lijnISDN NetwerkdiagramEen groot voordeel van de meeste routers/bridges is dat ze
gelijktijdig 2 gescheiden
onafhankelijke PPP-verbindingen met 2 gescheiden
sites toestaan. Dit wordt door de meeste TA's niet ondersteund,
behalve voor specifieke (gewoonlijk dure) modellen die twee
seriële poorten hebben. Dit dient niet met kanaalbinding,
MPP, etcetera verward te worden.Dit kan een erg handige eigenschap zijn indien, bijvoorbeeld,
er een toegewijde ISDN-verbinding op kantoor is en het gewenst
is om deze af te tappen, maar een andere ISDN-lijn op het werk
ongewenst is. Een router op kantoor kan een toegewijde B-kanaal
verbinding (64 Kbps) met het Internet beheren en het andere
B-kanaal voor een gescheiden gegevensverbinding gebruiken. Het
tweede B-kanaal kan voor inbellen, uitbellen, of dynamisch
binden (MPP, etcetera) gebruikt worden met het eerste B-kanaal voor
meer bandbreedte.IPX/SPXEen Ethernet-bridge staat ook toe om meer dan alleen
IP-verkeer te verzenden. Het is ook mogelijk om IPX/SPX of
enig ander protocol te gebruiken.ChernLeeBijgedragen door Network Address TranslationOverzichtnatdHet Network Address Translation daemon van &os;, in het
algemeen bekend als &man.natd.8;, is een daemon dat rauwe
binnenkomende IP-pakketten accepteert, de bron naar die van de
plaatselijke machine verandert en de pakketten terug in de
uitgaande IP-pakketstroom injecteert. &man.natd.8; doet dit
door het IP-adres en de poort van de bron zo te veranderen dat
wanneer de gegevens weer ontvangen worden, het in staat is om
de originele plaats van de gegevens te achterhalen en ze door
te sturen naar de originele aanvrager.Internetverbinding delenNATNAT wordt het meest gebruikt wat in het algemeen bekend is
als het delen van een Internetverbinding.InstallatieWegens de krimpende IP-ruimte in IPv4, en het groeiend
aantal gebruikers van consumentenlijnen op hoge snelheid zoals
kabel of DSL, hebben steeds meer mensen een oplossing als het
delen van een Internetverbinding nodig. Vanwege de mogelijkheid
om meerdere computers online te verbinden door één
verbinding en IP-adres is &man.natd.8; een redelijke keuze.In de meeste gevallen heeft een gebruiker een machine
verbonden met een kabel- of DSL-lijn met één
IP-adres en is het gewenst om deze ene verbonden computer te
gebruiken om Internettoegang aan meerdere computers over een LAN
te geven.Hiervoor dient de &os;-machine op het Internet dienst doen
als gateway. Deze gateway-machine heeft twee NICs nodig —
één voor de verbinding met de Internetrouter, de
andere voor de verbinding met het LAN. Alle machines op het LAN
zijn verbonden door een hub of switch.Er zijn vele manieren om een LAN via een &os;-gateway met
het Internet te verbinden. Dit voorbeeld behandelt slechts
een gateway met tenminste twee NICs. _______ __________ ________
| | | | | |
| Hub |-----| Client B |-----| Router |----- Internet
|_______| |__________| |________|
|
____|_____
| |
| Client A |
|__________|NetwerkschemaDit soort installaties wordt in het algemeen gebruikt om een
Internetverbinding te delen. Eén van de
LAN-machines is verbonden met het Internet.
De rest van de machines hebben internettoegang via die
gateway-machine.Bootloader-configuratiebootloaderconfiguratieDe mogelijkheden van de kernel voor network address translation met
&man.natd.8; staan niet aan in GENERIC, maar ze
kunnen worden voorgeladen tijdens het opstarten door enkele opties aan
/boot/loader.conf toe te voegen:ipfw_load="YES"
ipdivert_load="YES"Ook moet de tunable
net.inet.ip.fw.default_to_accept op
1 worden gezet:net.inet.ip.fw.default_to_accept="1"Het is een goed idee om deze optie aan te zetten tijdens de
eerste pogingen om een firewall en NAT gateway te installeren. Op
deze manier zal het standaardbeleid van &man.ipfw.8;
allow ip from any to any zijn in plaats van het
minder vrije deny ip from any to any, en zal het
iets moeilijker zijn om buitengesloten te worden net na het opnieuw
opstarten van het systeem.KernelconfiguratiekernelinstellingenWanneer modules geen optie zijn of wanneer het gewenst is om alle
benodigde mogelijkheden in de draaiende kernel te bouwen, dienen de
volgende opties in het kernelinstellingenbestand aanwezig te
zijn:options IPFIREWALL
options IPDIVERTDe volgende opties kunnen ook van pas komen:options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSESysteeminstellingen voor het opstartenOm de firewall en NAT tijdens het opstarten aan te zetten, moet
het volgende in /etc/rc.conf staan:gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="fxp0"
natd_flags="" Stelt de machine in om dienst te doen als gateway. Het
draaien van
sysctl net.inet.ip.forwarding=1 heeft
hetzelfde effect.Activeert de firewall-regels in
/etc/rc.firewall tijdens het opstarten.Dit specificeert een vooraf gedefinieerde verzameling
van firewall-regels die alles binnenlaat. Raadpleeg
/etc/rc.firewall voor aanvullende
types.Geeft aan welke interface te gebruiken om pakketten naar
door te sturen (de interface die met het Internet verbonden
is).Alle aanvullende instelopties die tijdens het opstarten
aan &man.natd.8; worden doorgegeven.Het gedefinieerd hebben van de bovenstaande opties in
/etc/rc.conf zal natd -interface
fxp0 draaien tijdens het opstarten. Dit kan ook
handmatig worden gedraaid.Het is ook mogelijk om een instellingenbestand voor
&man.natd.8; te gebruiken als er teveel opties zijn om door te
geven. In dit geval dient het instellingenbestand te worden
gedefinieerd door de volgende regel aan
/etc/rc.conf toe te voegen:natd_flags="-f /etc/natd.conf"Het bestand /etc/natd.conf zal een
lijst met instelopties bevatten, één per regel.
Het geval in de volgende sectie bijvoorbeeld zal het volgende
bestand gebruiken:redirect_port tcp 192.168.0.2:6667 6667
redirect_port tcpc 192.168.0.3:80 80Raadpleeg voor meer informatie over het
instellingenbestand het gedeelte over de optie
van de hulppagina &man.natd.8;.Elke machine en interface achter het LAN dient een IP-adres
in de privé-netwerkruimte toegewezen te krijgen zoals
gedefinieerd in RFC 1918
en een standaard gateway van het interne IP-adres van de
natd-machine hebben.Bijvoorbeeld, cliënt A en
B achter het LAN hebben IP-adressen 192.168.0.2 en 192.168.0.3, terwijl de LAN-interface
van de natd-machine IP-adres 192.168.0.1 heeft. De standaard
gateway van cliënt A en
B dient ingesteld te worden op die van de
natd-machine, 192.168.0.1. Voor de externe, of
Internet-interface van de
natd-machine zijn geen speciale
wijzigingen nodig om &man.natd.8; te laten werken.Poorten omleidenHet nadeel van &man.natd.8; is dat de LAN-cliënten
niet vanaf het Internet toegankelijk zijn. Cliënten op het
LAN kunnen uitgaande verbinden naar de wereld maken maar kunnen
geen inkomende verbindingen ontvangen. Dit vormt een probleem
wanneer geprobeerd wordt om Internetdiensten op een van de
LAN-cliëntmachines te draaien. Een eenvoudige om dit te
omzeilen is om bepaalde Internetpoorten op de
natd-machine om te leiden naar een
LAN-cliënt.Bijvoorbeeld, er draait een IRC-server op cliënt
A, en er draait een webserver op cliënt
B. Om dit goed te laten werken, dienen
verbindingen die worden ontvangen op poorten 6667 (IRC) en 80
(web) te worden omgeleid naar de respectievelijke
machines.De optie dient aan
&man.natd.8; met de juiste opties te worden doorgegeven. De
syntaxis is als volgt: -redirect_port proto doelIP:doelPOORT[-doelPOORT]
[aliasIP:]aliasPOORT[-aliasPOORT]
[verIP[:verrePOORT[-verrePOORT]]]In het bovenstaand voorbeeld dienen de argumenten te
zijn: -redirect_port tcp 192.168.0.2:6667 6667
-redirectport tcp 192.168.0.3:80 80Dit zal de juiste tcp-poorten naar de
LAN-cliënt-machines omleiden.Het argument kan worden
gebruikt om poortbereiken over individuele poorten aan te geven.
Bijvoorbeeld, tcp 192.168.0.2:2000-3000
2000-3000 zal alle verbindingen die op poorten
2000 tot 3000 worden ontvangen omleiden naar poorten 2000 tot
3000 op cliënt A.Deze opties kunnen worden gebruikt wanneer &man.natd.8;
direct wordt gedraaid, wanneer ze zijn geplaatst in de optie
natd_flags="" van
/etc/rc.conf, of wanneer ze via een
instellingenbestand worden doorgegeven.Raadpleeg voor meer instelopties &man.natd.8;.Adressen omleidenadressen omleidenAdressen omleiden is handig wanneer er verschillende
IP-adressen beschikbaar zijn, maar ze op één
machine moeten zitten. Hiermee kan &man.natd.8; aan elke
LAN-cliënt een eigen extern IP-adres toewijzen. Vervolgens
overschrijft &man.natd.8; de uitgaande pakketten van de
LAN-cliënten met het juiste IP-adres en leidt het al het
binnenkomende verkeer op dat ene IP-adres terug naar de
specifieke LAN-cliënt. Dit staat ook bekend als statisch
NAT. Bijvoorbeeld, de IP-adressen 128.1.1.1, 128.1.1.2, en 1281.2..3 behoren toe aan de
natd gateway-machine. 128.1.1.1 kan gebruikt worden als het
externe IP-adres van de natd
gateway-machine, terwijl 128.1.1.2 en 128.1.1.3 terug worden gestuurd naar
de LAN-cliënten A en
B.De syntaxis van is als
volgt:-redirect_address lokaalIP publiekIPlokaalIPHet interne IP-adres van de LAN-cliënt.publiekIPHet externe IP-adres overeenkomend met de
LAN-cliënt.In het voorbeeld zou dit argument zijn:-redirect_address 192.168.0.2 128.1.1.2
-redirect_address 192.168.0.3 128.1.1.3Net zoals worden ook deze
argumenten geplaatst in de optie
natd_flags="" van
/etc/rc.conf, of doorgegeven via een
instellingenbestand. Met adresomleiding is het omleiden van
poorten niet nodig aangezien alle gegevens die op een bepaald
IP-adres worden ontvangen worden omgeleidt.Het externe IP-adres op de natd
machine dient actief en naar een externe interface gealiased te
zijn. In &man.rc.conf.5; staat hoe dit te doen.Parallel Line IP (PLIP)PLIPParallel Line IPPLIPPLIP maakt het mogelijk om TCP/IP tussen parallelle poorten te
draaien. Het is nuttig op machines zonder netwerkkaarten, of om
op laptops te installeren. In deze sectie wordt besproken:Het maken van een parallelle (laplink) kabel.Twee computers met PLIP verbinden.Een parallelle kabel makenEen parallelle is te koop in de meeste computerwinkels.
Wanneer dit niet mogelijk is, of indien de het gewenst is om te
weten hoe ze worden gemaakt, laat de volgende tabel zien hoe ze
met een gewone parallelle printerkabel gemaakt kunnen
worden.
PLIP opzettenAls eerste dient er een laplink-kabel aanwezig te zijn.
Controleer vervolgens dat beide computers een kernel hebben met
ondersteuning voor het stuurprogramma &man.lpt.4;:&prompt.root; grep lp /var/run/dmesg.boot
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven portDe parallelle poort dient een interrupt-gestuurde poort te
zijn, regels zoals de volgende dienen in het bestand
/boot/device.hints aanwezig te zijn:hint.ppc0.at="isa"
hint.ppc0.irq="7"Controleer vervolgens dat het kernelinstellingenbestand een
regel device plip bevat of dat de
kernelmodule plip.ko is geladen. In beide
gevallen dienen de parallelle netwerkinterfaces te verschijnen
wanneer het commando &man.ifconfig.8; gebruikt wordt om het weer
te geven:&prompt.root; ifconfig plip0
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500Steek de laplink-kabel in de parallelle interface op beide
computers.Stel als root op beide sites de
parameters voor de netwerkinterface in. Bijvoorbeeld, indien
het gewenst is om host host1 met een andere
machine host2 te verbinden: host1 <-----> host2
IP Address 10.0.0.1 10.0.0.2Stel de interface op host1 in met:&prompt.root; ifconfig plip0 10.0.0.1 10.0.0.2Stel de interface op host2 in met:&prompt.root; ifconfig plip0 10.0.0.2 10.0.0.1Er dient nu een werkende verbinding te zijn. Lees voor meer
details de hulppagina's &man.lp.4; en &man.lpt.4;.Ook dienen beide hosts aan /etc/hosts
toegevoegd te worden:127.0.0.1 localhost.mijn.domein localhost
10.0.0.1 host1.mijn.domein host1
10.0.0.2 host2.mijn.domein host2Ga naar elke host en ping de andere om te bevestigen dat de
verbinding werkt. Bijvoorbeeld, op
host1:&prompt.root; ifconfig plip0
plip0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
&prompt.root; netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
host2 host1 UH 0 0 plip0
&prompt.root; ping -c 4 host2
PING host2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
--- host2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 msAaronKaplanOrigineel geschreven door TomRhodesGeherstructureerd en toegevoegd door BradDavisUitgebreid door IPv6IPv6 (ook bekend als IPng IP next generation)
is de nieuwe versie van het welbekende IP-protocol (ook bekend als
IPv4). Net zoals de andere huidige
*BSD-systemen, bevat &os; de referentie-implementatie van KAME
IPv6. Het &os;-systeem wordt dus geleverd met alles wat nodig is
om met IPv6 te experimenteren. Deze sectie richt zich op het
ingesteld en draaiend krijgen van IPv6.In de vroege jaren 1990 werden mensen zich bewust van de snel
krimpende adresruimte van IPv4. De uitbreidingssnelheid van het
Internet baarde twee grote zorgen:Geen adresruimte meer. Tegenwoordig is dit niet zo'n
probleem meer aangezien RFC1918 voor privé-adresruimte
(10.0.0.0/8,
172.16.0.0/12, en
192.168.0.0/16) en Network
Address Translation (NAT) worden gebruikt.De regels in de routeertabellen werden te groot. Dit is
tegenwoordig nog steeds een probleem.IPv6 behandelt deze en vele andere zaken:128-bits adresruimte. Met andere woorden, er zijn
theoretisch
340.282.366.920.938.463.463.374.607.431.768.211.456 adressen
beschikbaar. Dit betekent dat er ongeveer 6,67 * 10^27
IPv6-adressen per vierkante meter op onze planeet beschikbaar
zijn.Routers zullen alleen netwerkaggregatie-adressen in hun
routeertabellen opslaan en dus de gemiddelde ruimte van een
routeertabel verkleinen tot 8192 regels.IPv6 heeft ook vele andere nuttige eigenschappen zoals:Automatische adresconfiguratie (RFC2462)Anycast-adressen
(ééen-van-velen)Verplichte multicast-adressenIPsec (IP security)Versimpelde structuur van de headersMobiele IPOvergangsmechanismen voor IPv6 naar IPv4Bekijk voor meer informatie:IPv6-overzicht op playground.sun.comKAME.netAchtergrond over IPv6 adressenEr zijn verschillende soorten IPv6-adressen: unicast,
anycast, en multicast.Unicast-adressen zijn de bekende adressen. Een pakket dat
naar een unicast-adres wordt verzonden arriveert precies op de
interface dat bij dat adres hoort.Anycast-adressen zijn syntactisch niet van unicast-adressen
te onderscheiden maar ze adresseren een groep interfaces. Een
pakket dat bestemd is voor een anycast-adres zal bij de
dichtstbijzijnde interface arriveren (in router-metrieken).
Anycast-adressen mogen alleen door routers worden
gebruikt.Multicast-adressen identificeren een groep interfaces. Een
pakket dat bestemd is voor en multicast-adres zal bij alle
interfaces die bij de multicast-groep horen arriveren.Het broadcast-adres van IPv4 (gewoonlijk xxx.xxx.xxx.255) wordt in IPv6 met
multicast-adressen uitgedrukt.
Gereserveerde IPv6-adressenIPv6-adresPrefixlengte (bits)BeschrijvingOpmerkingen::128 bitsniet gespecificeerdcf. 0.0.0.0 in IPv4::1128 bitsteruglusadrescf. 127.0.0.1 in
IPv4::00:xx:xx:xx:xx96 bitsingebouwd IPv4De laagste 32 bits zijn het IPv4-adres. Ook
IPv4 compatibel IPv6-adres genoemd.::ff:xx:xx:xx:xx96 bitsIPv4-afgebeeld IPv6-adresDe laagste 32 bits zijn het IPv4-adres. Voor hosts
die geen IPv6 ondersteunen.fe80:: -
feb::10 bitslink-lokaalcf. teruglusadres in IPv4fec0:: -
fef::10 bitssite-lokaalff::8 bitsmulticast001 (base 2)3 bitsglobale unicastAlle globale unicast-adressen worden vanuit deze
pool toegewezen. De eerste 3 bits zijn
001.
IPv6-adressen lezenDe canonieke vorm wordt weergegeven als: x:x:x:x:x:x:x:x, waarbij elke
x een 16-bits hexadecimale waarde is.
Bijvoorbeeld FEBC:A574:382B:23C1:AA49:4592:4EFE:9982Vaak bevat een adres lange deelstrings van allen nullen,
daarom kan per adres één zo'n deelstring worden
afgekort als ::. Ook kunnen maximaal drie
voorlopende 0's per hexadecimaal viertal worden
weggelaten. Bijvoorbeeld, fe80::1 komt overeen met de canonieke
vorm fe80:0000:0000:0000:0000:0000:0000:0001.Een derde vorm is het schrijven van de laatste 32 bits in de
bekende (decimale) IPv4-stijl met punten . als
scheidingstekens. Bijvoorbeeld, 2002::10.0.0.1 komt overeen met de
(hexadecimale) canonieke representatie 2002:0000:0000:0000:0000:0000:0a00:0001
wat weer hetzelfde is als 2002::a00:1.Op dit punt dient de lezer het volgende te begrijpen:&prompt.root; ifconfigrl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
ether 00:00:21:03:08:e1
media: Ethernet autoselect (100baseTX )
status: activefe80::200:21ff:fe03:8e1%rl0
is een automatisch ingesteld link-lokaal adres. Het is als deel
van de automatische instelling vanuit het MAC-adres
aangemaakt.Kijk voor verdere informatie over de structuur van
IPv6-adressen op RFC3513.Verbinding krijgenEr zijn momenteel vier manieren om met andere IPv6-hosts en
-netwerken te verbinden:Neem contact op met de Internetprovider om te zien of ze
al IPv6 aanbieden.SixXS biedt
wereldwijd tunnels met eindpunten aan.Tunnelen via 6-naar-4 (RFC3068)Gebruik de poort net/freenet6 indien er een
inbelverbinding wordt gebruikt.DNS in de IPv6-wereldEr waren twee soorten DNS-records voor IPv6. De IETF heeft
A6-records overbodig verklaard. AAAA-records zijn nu de
standaard.AAAA-records gebruiken gaat rechttoe-rechtaan. Wijs de
hostnaam toe aan het nieuwe IPv6-adres dat net ontvangen is door
het volgende aan de DNS-bestand voor primaire zones toe te
voegen:MIJNHOSTNAAM AAAA MIJNIPv6ADRESVraag het aan de DNS-provider indien de
DNS-zones niet zelf worden geserveerd. De
huidige versies van bind (versie 8.3
en 9) en dns/djbdns (met de
IPv6-patch) ondersteunen AAAA-records.De benodigde wijzigingen doorvoeren in
/etc/rc.confIPv6-cliëntinstellingenDeze instellingen helpen bij het configureren van een
machine in het LAN die als cliënt in plaats van router
dienst zal doen. Om &man.rtsol.8; automatisch de interface
tijdens het opstarten te laten configureren op
&os; 9.X en nieuwer dient het volgende
aan rc.conf toegevoegd te worden:ipv6_prefer="YES"Voeg voor &os; 8.X en ouder het
volgende toe:ipv6_enable="YES"Voeg het volgende toe om statisch een IP-adres zoals
2001:471:1f11:251:290:27ff:fee0:2093
aan de interface fxp0 toe te
voegen voor &os; 9.X:ifconfig_fxp0_ipv6="2001:471:1f11:251:290:27ff:fee0:2093 prefixlen 64"Zorg ervoor dat prefixlen 64 wordt
vervangen door de juiste waarde voor het subnet van de
computer.Voeg voor &os; 8.X het volgende
toe:ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"Voeg het volgende aan /etc/rc.conf
toe om een standaardrouter 2001:471:1f11:251::1 toe te
wijzen:ipv6_defaultrouter="2001:471:1f11:251::1"IPv6 router/gateway instellingenDeze paragraaf helpt bij het opvolgen van de aanwijzingen
die de tunnelprovider heeft gegeven en ze om te zetten in
instellingen die blijven na een herstart. Om de tunnel
tijdens het opstarten te herstellen kan het volgende in
/etc/rc.conf gebruikt worden:Noem de generieke tunnelinterfaces die zullen worden
ingesteld, bijvoorbeeld gif0:gif_interfaces="gif0"Om de interface met een lokaal eindpunt
MIJN_IPv4_ADRES in te stellen naar
een ver eindpunt
VER_IPv4_ADRES:gifconfig_gif0="MIJN_IPv4_ADRES VER_IPv4_ADRES"Voeg het volgende toe om het IPv6-adres dat is toegewezen
als het eindpunt van de IPv6-tunnel te gebruiken voor
&os; 9.X en nieuwer:ifconfig_gif0_ipv6="inet6 MIJN_TOEGEWEZEN_IPv6_TUNNEL_EINDPUNT_ADRES"Voeg voor &os; 8.X en eerder het
volgende toe:ipv6_ifconfig_gif0="MIJN_TOEGEWEZEN_IPv6_TUNNEL_EINDPUNT_ADRES"Nu hoeft alleen de standaardroute voor IPv6 ingesteld te
worden. Dit is de andere kant van de IPv6-tunnel:ipv6_defaultrouter="MIJN_IPv6_VER_TUNNEL_EINDPUNT_ADRES"IPv6-tunnelinstellingenIndien de server gebruikt wordt om IPv6 tussen de rest van
het netwerk en de wereld te routen, is ook de volgende
instelling in /etc/rc.conf nodig:ipv6_gateway_enable="YES"Routeradvertentie en automatische hostconfiguratieDeze sectie helpt bij het instellen van &man.rtadvd.8; om de
standaard IPv6-route te adverteren.Het volgende is nodig in /etc/rc.conf
om &man.rtadvd.8; aan te zetten:rtadvd_enable="YES"Het is belangrijk om de interface te specificeren waarop het
IPv6-routerverzoek plaatsvindt. Om bijvoorbeeld &man.rtadvd.8;
te vertellen om fxp0 te
gebruiken:rtadvd_interfaces="fxp0"Nu dient het instellingenbestand
/etc/rtadvd.conf aangemaakt te worden.
Hier is een voorbeeld:fxp0:\
:addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:Vervang fxp0 door de interface die
gebruikt gaat worden.Vervang vervolgens 2001:471:1f11:246:: met de prefix van uw
toewijzing.Indien een /64 subnet is
toegewezen, hoeft er verder niets veranderd te worden. In
andere gevallen dient de juiste waarde voor
prefixlen# gebruikt te worden.HartiBrandtBijgedragen door Asynchronous Transfer Mode (ATM)Klassiek IP configureren over ATM (PVCs)Klassiek IP over ATM (CLIP) is de
eenvoudigste methode om Asynchronous Transfer Mode (ATM) met IP
te gebruiken. Het kan met geswitchte verbindingen (SVCs) en met
permanente verbindingen (PVCs) gebruikt worden. Deze sectie
beschrijft hoe een netwerk gebaseerd op PVCs op te zetten.Volledig geschakelde configuratiesDe eerste methode om een CLIP met PVCs
op te zetten is om elke machine met elke andere machine in het
netwerk te verbinden via een toegewijde PVC. Hoewel dit
eenvoudig te configureren is, wordt het onpraktisch voor een
groter aantal machines. Dit netwerk gaat ervan uit dat er
vier machines in het netwerk zijn, allen verbonden met het
ATM
netwerk met een
ATM
adapterkaart. De eerste stap is het plannen van de
IP-adressen en de
ATM
verbindingen tussen de machines. Het volgende wordt
gebruikt:HostIP-adreshostA192.168.173.1hostB192.168.173.2hostC192.168.173.3hostD192.168.173.4Om een volledig geschakeld net te bouwen is er een
ATM-verbinding nodig tussen elk paar machines:MachinesVPI.VCI koppelhostA - hostB0.100hostA - hostC0.101hostA - hostD0.102hostB - hostC0.103hostB - hostD0.104hostC - hostD0.105De VPI- en VCI-waarde kunnen aan beide kanten van de
verbinding verschillen, maar voor de eenvoud wordt aangenomen
dat ze hetzelfde zijn. Vervolgens dienen de ATM-interfaces op
elke host geconfigureerd te worden:hostA&prompt.root; ifconfig hatm0 192.168.173.1 up
hostB&prompt.root; ifconfig hatm0 192.168.173.2 up
hostC&prompt.root; ifconfig hatm0 192.168.173.3 up
hostD&prompt.root; ifconfig hatm0 192.168.173.4 upaannemende dat de ATM-interface op alle hosts
hatm0 is. Nu dienen de PVCs op
hostA geconfigureerd te worden (er wordt
aangenomen dat ze reeds op de ATM-switches zijn geconfigureerd,
raadpleeg de handleiding van de switch hoe dit te doen).hostA&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubrUiteraard kunnen ook andere verkeerscontracten dan UBR
worden gebruikt indien de ATM-adapter die ondersteunt. In dit
geval wordt de naam van het verkeerscontract gevolgd door de
parameters van het verkeer. Hulp voor het gereedschap
&man.atmconfig.8; kan verkregen worden met:&prompt.root; atmconfig help natm addof in de hulppagina &man.atmconfig.8;.Dezelfde configuratie kan ook bereikt worden via
/etc/rc.conf. Voor
hostA wordt dit:network_interfaces="lo0 hatm0"
ifconfig_hatm0="inet 192.168.173.1 up"
natm_static_routes="hostB hostC hostD"
route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr"
route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr"
route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"De huidige toestand van alle CLIP
routes kan worden verkregen met:hostA&prompt.root; atmconfig natm showTomRhodesBijgedragen door Common Address Redundancy Protocol (CARP)CARPCommon Address Redundancy ProtocolHet Common Address Redundancy Protocol, of
CARP, staat toe dat meerdere hosts hetzelfde
IP-adres gebruiken. In sommige opstellingen
wordt dit gebruikt voor beschikbaarheid of loadbalancing. Hosts
kunnen ook gescheiden IP-adressen gebruiken,
zoals in het voorbeeld dat hier is gegeven.Om ondersteuning voor CARP aan te zetten,
dient de &os;-kernel herbouwd zoals beschreven in
met de volgende
optie:device carpAls alternatief kan de if_carp.ko
module geladen worden tijdens het opstarten. Voeg de volgende
regel toe aan /boot/loader.conf:if_carp_load="YES"De functionaliteit van CARP zou nu
beschikbaar moeten zijn en kan met verschillende
sysctl-OIDs worden
bijgesteld:OIDBeschrijvingnet.inet.carp.allowAccepteer inkomende CARP pakketten.
Staat standaard aan.net.inet.carp.preemptDeze optie zet alle CARP
interfaces down op de host wanneer er een down gaat.
Staat standaard uit.net.inet.carp.logDe waarde 0 zet alle logging uit.
De waarde 1 zet het loggen van slechte
CARP-pakketten aan. Waardes hoger dan
1 zet het loggen van
toestandsveranderingen van de CARP
interfaces aan. De standaardwaarde is
1.net.inet.carp.arpbalanceBalanceer lokaal netwerkverkeer met
ARP. Staat standaard uit.net.inet.carp.suppress_preemptEen alleen-lezen OID die de
toestand van preëmptie-onderdrukking weergeeft.
Preëmptie kan worden onderdrukt wanneer de verbinding
op een interface afwezig is. De waarde
0 betekent dat preëmptie niet
onderdrukt is. Elk probleem verhoogt deze
OID.De CARP-apparaten zelf kunnen met het
commando ifconfig worden aangemaakt:&prompt.root; ifconfig carp0 createIn een echte omgeving hebben deze interfaces unieke
identificatienummers, bekend als een VHID,
nodig. Dit VHID of Virtual Host Identification
zal worden gebruikt om de hosts op het netwerk te
onderscheiden.CARP gebruiken voor serverbeschikbaarheidEén gebruik van CARP, zoals boven
aangegeven, is serverbeschikbaarheid. Dit voorbeeld geeft
failover-ondersteuning voor drie hosts, met allemaal een uniek
IP-adres en dezelfde webinhoud. Deze
machines zullen samen met een Round Robin DNS
configuratie dienst doen. De failover-machine zal twee
aanvullende CARP-interfaces hebben,
één voor elk van de IP's van de
contentservers. Wanneer er een storing optreedt, zou de
failover-server het IP-adres van de falende
machine moeten oppikken. Dit betekent dat de storing geheel
onmerkbaar zou moeten zijn voor de gebruiker. De
failover-server heeft dezelfde inhoud en diensten nodig als de
andere contentservers waarvoor het moet invallen.De twee machines dienen identiek geconfigureerd te worden
op de gegeven hostnamen en VHIDs na. Dit
voorbeeld noemt deze machines respectievelijk
hosta.example.org en
hostb.example.org. Ten eerste dienen de
benodigde regels voor een CARP-configuratie
aan rc.conf te worden toegevoegd. Voor
hosta.example.org dient het bestand
rc.conf de volgende regels te bevatten:hostname="hosta.example.org"
ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 1 pass testpass 192.168.1.50/24"Op hostb.example.org dienen de volgende
regels in rc.conf te staan:hostname="hostb.example.org"
ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0"
cloned_interfaces="carp0"
ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24"Het is erg belangrijk dat de wachtwoorden die met de optie
aan ifconfig gegeven
zijn, identiek zijn. De carp
apparaten zullen alleen luisteren naar en advertenties
accepteren van machines met het juiste wachtwoord. Het
VHID dient ook verschillend te zijn voor
elke machine.De derde machine,
provider.example.org, dient voorbereidt te
worden op het afhandelen van failover van beide hosts. Deze
machine heeft twee carp apparaten nodig,
één om elke host af te handelen. De juiste
instelregels voor rc.conf zullen ongeveer
gelijk zijn aan de volgende:hostname="provider.example.org"
ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0"
cloned_interfaces="carp0 carp1"
ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.50/24"
ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24"Met twee carp apparaten is
provider.example.org in staat om het
IP-adres van de andere machine op te pikken
wanneer de ene niet meer antwoordt.De standaard &os;-kernel kan
preëmptie geactiveerd hebben. In dat geval hoeft
provider.example.org het
IP-adres niet terug te geven aan de
originele contentserver. In dit geval kan het nodig zijn dat
een beheerder handmatig het IP terug aan de meester moet geven.
Het volgende commando dient op
provider.example.org gegeven te worden:&prompt.root; ifconfig carp0 down && ifconfig carp0 upDit dient gedaan te worden op de
carp interface die met de juiste
host overeenkomt.Op dit moment dient CARP volledig actief
en beschikbaar voor testen te zijn. Voor het testen dienen
òfwel het netwerken herstart te worden, òf de
machines dienen opnieuw opgestart te worden.Meer informatie is altijd beschikbaar in de hulppagina
&man.carp.4;
Index: translations/nl_NL.ISO8859-1/books/handbook/basics/chapter.xml
===================================================================
--- translations/nl_NL.ISO8859-1/books/handbook/basics/chapter.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/handbook/basics/chapter.xml (revision 40367)
@@ -1,3016 +1,3007 @@
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 gekoppeld en ontkoppeld
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 apparaatkoppelpunten 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.Het wijzigen van de console video modeDe &os; standaard video mode kan worden gewijzigd in
1024x768, 1280x1024, of een van de vele andere formaten die
ondersteund worden door de grafische kaart en monitor. Om
gebruik te maken van de verschillende video modes, moet eerst
de kernel opnieuw gecompileerd worden met twee extra opties:options VESA
options SC_PIXEL_MODEZodra de kernel opnieuw gecompileerd is met deze twee opties
kan gekeken worden welke video modes er ondersteund worden door
de hardware door gebruik te maken van de &man.vidcontrol.1;
applicatie. Om een overzicht te krijgen van de ondersteunde
video modes moet het volgende ingevoerd worden:&prompt.root; vidcontrol -i modeHet resultaat van dit commando is een lijst van video modes
welke ondersteund worden door de hardware. Hierna kan de nieuwe
video mode gekozen worden door dit aan te geven aan
&man.vidcontrol.1;:&prompt.root; vidcontrol MODE_279Als de nieuwe video mode acceptabel is, kan dit permanent
ingesteld worden door het volgende in
/etc/rc.conf te zetten:allscreens_flags="MODE_279"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 alle overige gebruikers. 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 alle overige
gebruikers kunnen ook het bestand 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 commando met no voor
worden uitgevoerd:&prompt.root; chflags nosunlink file1Om de vlaggen op een bestand te bekijken, kan het &man.ls.1;
commando 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;.TomRhodesBijgedragen door De setuid-, setgid-, en klevende toestemmingenBuiten de toestemmingen die reeds besproken zijn, zijn er
nog drie specifieke instellingen waarvan alle beheerders kennis
dienen te hebben. Dit zijn de setuid-,
setgid-, en sticky
toestemmingen.Deze instellingen zijn belangrijk voor sommige
&unix;-bewerkingen omdat ze functionaliteit bieden die
normaliter niet aan normale gebruikers wordt gegeven. Om ze te
begrijpen, dient ook het verschil tussen de echte gebruikers-ID
en de effectieve gebruikers-ID opgemerkt te worden.De echte gebruikers-ID is de UID die het
proces start of bezit. De effectieve UID is
de gebruikers-ID waaronder het proces draait. Bijvoorbeeld, het
gereedschap &man.passwd.1; draait met de echte gebruikers-ID van
de gebruiker die het wachtwoord verandert; echter, om de
database met wachtwoorden te manipuleren, draait het met de
effectieve ID van de gebruiker root. Dit
is wat normale gebruikers in staat stelt om hun wachtwoorden te
veranderen zonder een fout Permission
Denied te zien.De &man.mount.8;-optie nosuid zorgt
ervoor dat deze binairen zwijgend falen. Dit houdt in dat ze
niet worden uitgevoerd zonder ooit de gebruiker op de hoogte
te stellen. Deze optie is ook niet geheel betrouwbaar
aangezien een nosuid-wrapper dit volgens de
handleidingpagina &man.mount.8; kan omzeilen.De setuid-toestemming kan aangezet worden door het cijfer
vier (4) voor een toestemmingenverzameling te plaatsen zoals te
zien is in het volgende voorbeeld:&prompt.root; chmod 4755 suidvoorbeeld.shDe toestemmingen op het bestand
suidvoorbeeld.sh dienen er nu als volgt uit
te zien:-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidvoorbeeld.shHet zou in dit voorbeeld te zien moeten zijn dat een
s nu deel is van de toestemmingenverzameling
bestemd voor de bestandseigenaar, en de uitvoerbare bit
vervangt. Dit staat gereedschappen toe die verhoogde
toestemmingen nodig hebben, zoals passwd.Open twee terminals om dit in real-time te zien. Start op
het ene het proces passwd als een normale
gebruiker. Controleer de procestabel terwijl het op een nieuw
wachtwoord wacht en kijk naar de gebruikersinformatie van het
commando passwd.In terminal A:Changing local password for trhodes
Old Password:In terminal B:&prompt.root; ps aux | grep passwdtrhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd
root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01Zoals boven vermeld, wordt passwd door
een normale gebruiker gedraaid, maar gebruikt het de effectieve
UID van root.De setgid-toestemming voert dezelfde
functie uit als de setuid-toestemming;
behalve dat het de groepsinstellingen verandert. Wanneer een
applicatie of gereedschap met deze instelling wordt gedraaid,
krijgt het de toestemmingen gebaseerd op de groep die het
bestand bezit, niet op de gebruiker die het proces startte.Om de setgid-toestemming op een bestand
aan te zetten, dient een voorlopende twee (2) aan het commando
chmod gegeven te worden zoals in het volgende
voorbeeld:&prompt.root; chmod 2755 sgidvoorbeeld.shDe nieuwe instelling kan zoals hierboven bekeken worden,
merk op dat de s nu in het veld bestemd voor
de instellingen van de groepstoestemmingen staat:-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidvoorbeeld.shIn deze voorbeelden zal het shellscript niet met een
andere EUID of effectief gebruikers-ID
draaien, zelfs al is het shellscript uitvoerbaar. Dit is
omdat shellscripts geen toegang hebben tot de
&man.setuid.2;-systeemaanroepen.De eerste twee speciale toestemmingsbits die we besproken
hebben (de toestemmingsbits setuid en
setgid) kunnen de systeemveiligheid verlagen,
door verhoogde toestemmingen toe te staan. Er is een derde bit
voor speciale toestemmingen die de veiligheid van een systeem
kan verhogen: de klevende bit.De klevende bit, wanneer deze op een map
is ingesteld, staat alleen het verwijderen van bestanden toe
door de eigenaar van die bestanden. Deze
toestemmingenverzameling is nuttig om het verwijderen van
bestanden in publieke mappen, zoals /tmp, door gebruikers die het
bestand niet bezitten te voorkomen. Zet een één
(1) voor de toestemming om deze toestemming te gebruiken.
Bijvoorbeeld:&prompt.root; chmod 1777 /tmpHet effect kan nu met het commando ls
bekeken worden:&prompt.root; ls -al / | grep tmpdrwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmpDe toestemming klevende bit is te
onderscheiden met de t aan het einde van de
verzameling.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 gekoppeld 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 koppelpunten
voor elk ander bestandssysteem dat misschien gekoppeld
wordt.Een koppelpunt is een map waar extra bestandssystemen aan het
een bestandssysteem gekoppeld kunnen worden (meestal het root
bestandssysteem). Dit wordt beschreven
in . Standaard koppelpunten
zijn /usr, /var,
/tmp, /mnt en
/cdrom. Naar deze mappen wordt meestal
verwezen in /etc/fstab, een tabel met
bestandssystemen en koppelpunten ter referentie voor het systeem.
De meeste bestandssystemen in /etc/fstab
worden automatisch gekoppeld tijdens het opstarten door het script
&man.rc.8;, behalve als de optie
gedefinieerd is. 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 koppelpunt 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./tmp/Tijdelijke bestanden. De inhoud van /tmp blijft meestal NIET
bewaard na een herstart. Er wordt vaak een
geheugengebaseerd bestandssysteem gekoppeld 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;./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/ports/De &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/yp/NIS 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 gekoppeld 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 gekoppeld worden in een map op een
ander bestandssysteem. Als nu bestandssysteem
B wordt gekoppeld onder de map
A1 vervangt BA1 en zien de koppelingen 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
ontkoppeldvan A.Als B gekoppeld 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 gekoppeld. Doorgaand
op het vorige voorbeeld kan het bestandssysteem
C gekoppeld 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 gekoppeld 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 gekoppeld 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 gekoppeld 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
koppelen. 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 deze
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 back-up
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 back-up, het
opnieuw maken van het bestandssysteem met gewijzigde grootte
en het terugzetten van de geback-upte gegevens.&os; heeft &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 koppelpunt 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.
d zou nu kunnen werken als een normale
partitie.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
de slice en schijf refereert naar die partitie 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 gekoppeld 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
: : |
| | |
:=================: ==: --.
| | | Partitie a, gekoppeld als / |
| | > gerefereerd als ad0s2a |
| | | |
:-----------------: ==: |
| | | Partitie b, gebruikt als swap |
| | > gerefereerd als ad0s2b |
| | | |
:-----------------: ==: | Partitie c, geen
| | | Partition e, gebruikt als /var > bestandssysteem, bevat
| | > gerefereerd als ad0s2e | alle &os; slices,
| | | | ad0s2c
:-----------------: ==: |
| | | |
: : | Partitie f, gebruikt als /usr |
: : > gerefereerd als ad0s2f |
: : | |
| | | |
| | --' |
`-----------------' --'Het koppelen en ontkoppelen 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 fstabbestandssystemengekoppeld met fstabTijdens het opstartproces,
worden bestandssystemen die vermeld staan in
/etc/fstab automatisch gekoppeld
(tenzij ze vermeld staan met )./etc/fstab bevat een lijst van regels
die aan het volgende formaat voldoen:apparaat/koppelpuntfstypeoptiesdumpfreqpassnoapparaatEen apparaatnaam (die moet bestaan) zoals uitgelegd
in .koppelpuntEen map (die moet bestaan) waarop het bestandssysteem
gekoppeld 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 gekoppeld
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 mountbestandssystemenkoppelen&man.mount.8; wordt gebruikt om bestandsystemen te
koppelen.De meest eenvoudige vorm is:&prompt.root; mount apparaatkoppelpuntAlle 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
gekoppeld zijn.Doe alles behalve het echt aanroepen van de systeemopdracht
mount. Deze optie is handig in samen met de
optie om te bepalen wat &man.mount.8;
eigenlijk probeert te doen.Forceert het koppelen van een niet schoon
bestandssysteem (gevaarlijk) of forceert het innemen van
schrijftoegang als de koppelstatus van een bestandssysteem
wijzigt van lezen en schrijven naar alleen lezen.Mount het bestandssysteem alleen lezen. Dit is
identiek aan de optie
voor de optie .fstypeMount het opgegeven bestandssysteem als het opgegeven
type bestandssysteem of koppelt alleen bestandssystemen
van het aangegeven type als ook de optie
is opgegeven.ufs is het standaard
bestandssysteem.Werk koppel opties 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: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 umountbestandssystemenontkoppelen&man.umount.8; heeft een koppelpunt, een apparaatnaam,
of als
parameter.Alle vormen kunnen de optie hebben om
een bestandsysteem te forceren te ontkoppelen en de optie
voor uitgebreide informatie. De optie
is meestal geen goed idee. Forceren dat
een bestandssysteem ontkoppeld 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 ontkoppelen.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.
(een PID wordt niet hergebruikt als deze reeds in gebruik is). 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 voor elk proces, 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
Domain (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. Een manier om dit te
doen is het versturen van een signaal (signals).
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.
+ &man.pgrep.1; te gebruiken.
- &prompt.user; ps -ax | grep inetd
- 198 ?? IWs 0:00.00 inetd -wW
+ &prompt.user; pgrep -l inetd
+198 inetd -wW
- Dus 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.
+ Dus het PID van &man.inetd.8; is 198.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/bashDe 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.Veel applicaties die bestanden wijzigen of getypte invoer
nodig hebben zullen automatisch een tekstverwerker openen. Om de
tekstverwerker te wijzigen die standaard wordt gebruikt, stelt u
de omgevingsvariabele EDITOR in. Zie de sectie
shells voor meer details.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 er misschien nieuwe apparaat nodes aangemaakt worden.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.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 hoe 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 kort
commando–overzicht.
Index: translations/nl_NL.ISO8859-1/books/handbook/config/chapter.xml
===================================================================
--- translations/nl_NL.ISO8859-1/books/handbook/config/chapter.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/handbook/config/chapter.xml (revision 40367)
@@ -1,3692 +1,3692 @@
ChernLeeGeschreven door MikeSmithNaar een tutorial van MattDillonTevens gebaseerd op tuning(7) door DannyPanstersVertaald door RenéLadanInstellingen 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 grondbeginselen van &unix; en &os; () begrijpen;Bekend zijn met de grondbeginselen van kernelinstellingen
en compilatie ().Initiële instellingenPartitionerenpartitioneren/etc/var/usrBasispartitiesBij het aanmaken van bestandssystemen met &man.bsdlabel.8;
of &man.sysinstall.8; is het van belang dat op een harde
schijf de gegevensoverdracht het snelst is aan de buitenste
sporen en het langzaamst aan de binnenste. Kleinere en
veelgebruikte bestandssystemen kunnen daarom het beste aan de
buitenkant van de schijf geplaatst worden, terwijl grotere
partities als /usr meer naar de
binnenkant 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 de partitie /var hangt
af van de wijze waarop de machine gebruikt gaat worden. Het
bestandssysteem /var wordt
gebruikt voor onder meer postbussen, logbestanden en printergegevens
en -wachtrijen. Postbussen en logbestanden kunnen onverwacht
groot worden, afhankelijk van het aantal systeemgebruikers en
de bewaarduur van logbestanden. De meeste gebruikers zullen
zelden meer dan ongeveer een gigabyte aan vrije schijfruimte
op /var nodig hebben.Er zijn een aantal gevallen waar een grote hoeveelheid
ruimte in /var/tmp nodig is.
Wanneer er nieuwe software wordt geïnstalleerd met
&man.pkg.add.1; pakken de pakketprogramma's een tijdelijke
kopie van de pakketten uit in /var/tmp. Grote softwarepakketten,
zoals Firefox,
OpenOffice of
LibreOffice kunnen lastig zijn om
te installeren wanneer er onvoldoende vrije schijfruimte
beschikbaar is onder /var/tmp.De partitie /usr bevat veel
van de benodigde systeembestanden, waaronder de &man.ports.7;
collectie (aanbevolen) en de broncode (optioneel). Beide zijn
optioneel tijdens de installatie, maar we raden voor deze
partitie tenminste 2 gigabyte aan.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 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 systeem-specifieke
instellingen in /etc/rc.conf.local te
plaatsen. Een voorbeeld:/etc/rc.conf:sshd_enable="YES"
keyrate="fast"
defaultrouter="10.1.1.254"/etc/rc.conf.local:
- hostname="node1.voorbeeld.org"
+ hostname="node1.example.org"
ifconfig_fxp0="inet 10.1.1.1/8"
- rc.conf kan naar elk systeem
+ rc.conf kan vervolgens naar elk systeem
gedistribueerd worden met rsync of een
gelijksoortig programma, terwijl rc.conf.local
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.Het instellingenbestand /etc/rc.conf wordt
gelezen door &man.sh.1;. Dit stelt systeembeheerders in staat om een
zekere hoeveelheid logica aan dit bestand toe te voegen, dat kan helpen
in het creëren van zeer ingewikkelde configuratiescenario's.
Bekijk &man.rc.conf.5; voor meer informatie over dit onderwerp.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 verzameling bestanden voor instellingen heeft, wordt
er een submap voor aangemaakt.Bij de installatie van een port of pakket, 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 port
Apache 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 opstarten van de computer. Diensten
zoals mail/postfix of
www/apache22 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.Uitgebreide applicatieinstellingenNu &os; rc.d heeft, zijn de
instellingen van applicaties die mee moeten opstarten
versimpeld en rijker aan mogelijkheden. Door gebruik te maken
van de sleutelwoorden die in de paragraaf rc.d
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
# KEYWORD: shutdown
. /etc/rc.subr
name=utility
rcvar=utility_enable
command="/usr/local/sbin/utility"
load_rc_config $name
#
# VERANDER DE STANDAARDWAARDEN HIER NIET
# STEL ZE IN HET BESTAND /etc/rc.conf IN
#
utility_enable=${utility_enable-"NO"}
pidfile=${utility_pidfile-"/var/run/utility.pid"}
run_rc_command "$1"Dit script zorgt ervoor dat
utility wordt gestart na de pseudodienst
DAEMON. Het biedt ook de mogelijkheid voor
het instellingen en volgen van het PID of
het proces-ID bestand.Voor deze applicatie kan dan de volgende regel in
/etc/rc.conf geplaatst worden:utility_enable="YES"Deze methode maakt het volgende mogelijk: makkelijker
commandoregelopties manipuleren, importeren van
standaardfuncties uit /etc/rc.subr,
compatibiliteit met het gereedschap &man.rcorder.8; en het levert
makkelijkere configuratie via rc.conf.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: in 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
daemon cron 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. Deze
formaten verschillen alleen in het zesde en verdere velden. In de
systeemcrontab zal cron het commando draaien als de
gebruiker die in het zesde veld is opgegeven. In een gebruikerscrontab
draaien alle commando's onder de gebruiker die de crontab heeft
aangemaakt, dus is het zesde veld het laatste veld; dit is een belangrijk
beveiligingsaspect. Het laatste veld is altijd het commando dat gedraaid
wordt.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 net als elke andere gebruiker. Dit is niet dezelfde als
- /etc/crontab (de systeemcrontab). Omdat de
+ /etc/crontab, de systeemcrontab. Omdat de
systeemcrontab in de praktijk de commando's als root uitvoert, 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.
+ Zoals in de meeste instellingenbestanden van &os; zijn regels die
+ met het karakter # beginnen 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 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: minuut
is het aantal minuten van het tijdstip waarop het commando
moet worden uitgevoerd; uur 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. Het laatste veld
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 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 de systeemversie van /etc/crontab. Voor
crontab-bestanden van individuele gebruikers
moet dit veld worden weggelaten.Een crontab installerenDe onderstaande procedure moet niet gebruikt worden om de
systeemcrontab /etc/crontab 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 commando
crontab:&prompt.root; crontab crontabbestandIn dit voorbeeld is crontabbestand de
naam van een eerder gemaakt
crontab-bestand.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;rc.dSinds 2002 gebruikt &os; 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 pakket 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 tijdens het
opstarten van de computer 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 dienst
gestart, gestopt of herstart moet worden, ongeacht de definities
in /etc/rc.conf, moet het commando
voorafgegaan worden door one. Dus om
sshd te herstarten ongeacht
de instellingen in /etc/rc.conf, voldoet het
volgende commando:&prompt.root; /etc/rc.d/sshd onerestartHet 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.In sommige gevallen is het ook mogelijk om een dienst te
herstarten 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. Deze optie wordt niet door alle
diensten ondersteund.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 dienst
rpcbind (portmapper) nog niet draait. Om dit
te stroomlijnen wordt informatie over afhankelijkheden en andere
metagegevens 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 woorden moeten in alle opstartscripts staan (ze
zijn benodigd door &man.rc.subr.8; om het opstartscript te
activeren):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.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;. Als u geïnteresseerd
bent in het schrijven van uw eigen
rc.d-script of om de huidige scripts te
verbeteren is wellicht dit
artikel interessant.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 uitgave 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 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.Als een veelgebruikte kaart gebruikt wordt, hoeft meestal
niet ver gezocht te worden. Stuurprogramma's voor
veelvoorkomende netwerkinterfaces zijn al aanwezig in de
algemene kernel GENERIC. In dat geval
wordt zo'n kaart al gevonden 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
miibus0: <MII bus> on dc0
bmtphy0: <BCM5201 10/100baseTX PHY> PHY 1 on miibus0
bmtphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc0: Ethernet address: 00:a0:cc:da:da:da
dc0: [ITHREAD]
dc1: <82c169 PNIC 10/100BaseTX> port 0x9800-0x98ff mem 0xd3000000-0xd30
000ff irq 11 at device 12.0 on pci0
miibus1: <MII bus> on dc1
bmtphy1: <BCM5201 10/100baseTX PHY> PHY 1 on miibus1
bmtphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
dc1: Ethernet address: 00:a0:cc:da:da:db
dc1: [ITHREAD]In 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
kernel GENERIC, 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; of
automatisch tijdens het opstarten van het systeem door de
benodigde regel toe te voegen aan
/boot/loader.conf. 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 kernel
GENERIC, is er geen reden om een andere
kernel te bouwen.Gebruik maken van &windows;
NDIS-stuurprogramma'sNDISNDISulator&windows; driversMicrosoft WindowsMicrosoft Windowsdevice driversKLD (kernel loadable object)Helaas zijn er nog steeds veel leveranciers die geen
schema's leveren voor stuurprogramma's aan de open-source
gemeenschap, omdat ze deze informatie beschouwen als
handelsgeheimen. Als gevolg daarvan hebben de ontwikkelaars
van &os; en andere projecten twee keuzes: zelf de
stuurprogramma's ontwikkelen door een langdurig en pijnlijk
proces van de huidige stuurprogramma's te ontcijferen, of door
gebruik te maken van de huidige binaire bestanden voor het
µsoft.windows; platform. De meeste ontwikkelaars,
inclusief diegeen die gekoppeld zijn aan &os;, hebben voor het
laatste gekozen.Dankzij de bijdragen van Bill Paul (wpaul) is er
native ondersteuning
voor de Network Driver Interface Specification (NDIS). De
&os; NDISulator (ook wel bekend als Project Evil) neemt een
binair &windows; stuurprogramma en doet net alsof deze in een
&windows; systeem draait. Omdat het stuurprogramma
&man.ndis.4; een &windows; binary gebruikt; draait het alleen
op &i386;- en amd64-systemen. PCI, CardBus, PCMCIA (PC-Card) en
USB-apparaten worden ondersteund.Om de NDISulator te gebruiken zijn drie dingen nodig:De bronbestanden van de kernelEen &windowsxp; stuurprogramma (met de extensie
.SYS)Een instellingenbestand van het &windowsxp;
stuurprogramma (met de extensie
.INF)Lokaliseer de bestanden voor uw specifieke kaart. Over
het algemeen kunnen deze gevonden worden op de bijgeleverde
CD's of op de website van de leverancier. In de volgende
voorbeelden maken we gebruik van
W32DRIVER.SYS en
W32DRIVER.INF.De bit-breedte van het stuurprogramma moet overeenkomen met die
van het stuurprogramma. Gebruik voor &os;/i386 een 32-bits &windows;
stuurprogramma. Voor &os;/amd64 is een 64-bits &windows;
stuurprogramma nodig.De volgende stap is het compileren van het binaire
stuurprogramma in een laadbare kernelmodule. Gebruik &man.ndisgen.8;
als root:&prompt.root; ndisgen /pad/naar/W32DRIVER.INF/pad/naar/W32DRIVER.SYS&man.ndisgen.8; is interactief en vraagt om extra informatie als
het dat nodig heeft. Een nieuwe kernel-module wordt in de huidige map
geschreven. Gebruik &man.kldload.8; om de nieuwe module te
laden:&prompt.root; kldload ./W32DRIVER_SYS.koNaast de gegenereerde kernelmodule, moeten ook de modules
ndis.ko en
if_ndis.ko geladen worden. Dit zou
automatisch moeten gebeuren als er een module geladen wordt
dit afhankelijk is van &man.ndis.4;. Als ze handmatig
ingeladen moeten worden gebruik dan de volgende
commando's:&prompt.root; kldload ndis
&prompt.root; kldload if_ndisHet eerste commando laadt de stuurprogrammawrapper voor de
NDIS miniport, de tweede laadt de daadwerkelijke
netwerkinterface.Controleer nu &man.dmesg.8; om te zien of er ergens fouten
voorkomen. Als alles goed gegaan is ziet u ongeveer het
volgende:ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
ndis0: NDIS API version: 5.0
ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54MbpsVanaf dit moment kan de ndis0
net zo gebruikt worden als elke andere netwerkkaart (bv.
dc0).Het systeem kan geconfigureerd worden zodat de
NDIS-modules automatisch gestart worden tijdens het opstarten
van het systeem, net zoals bij andere modules. Kopieer eerst
de gegenereerde module W32DRIVER_SYS.ko naar
de map /boot/modules.
Voeg daarna de volgende regel toe aan
/boot/loader.conf:W32DRIVER_SYS_load="YES"De netwerkkaart instellennetwerkkaarteninstellenNadat een geschikt stuurprogramma geladen is, moet de kaart
nog ingesteld worden. Mogelijk is dit al gebeurd door
sysinstall tijdens de
installatie.Om de instellen van de netwerkkaarten weer te geven:&prompt.user; ifconfig
dc0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80008<VLAN_MTU,LINKSTATE>
ether 00:a0:cc:da:da:da
inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
dc1: flags=8802<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80008<VLAN_MTU,LINKSTATE>
ether 00:a0:cc:da:da:db
inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
media: Ethernet 10baseT/UTP
status: no carrier
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> metric 0 mtu 1500
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
options=3<RXCSUM,TXCSUM>
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
inet6 ::1 prefixlen 128
nd6 options=3<PERFORMNUD,ACCEPT_RTADV>In dit voorbeeld werden de volgende apparaten
weergegeven:dc0: de eerste
Ethernet-interface;dc1: de tweede
Ethernet-interface;plip0: De parallele poort-interface
(mits er een parallele poort aanwezig is op de machine)lo0: het
loopback-apparaat;&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 is 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. Meer
informatie over de mogelijke mediatypes staan in de
hulppagina's voor het betreffende stuurprogramma.De status van de verbinding (status)
is active, dat wil zeggen dat de drager
is gevonden. Bij dc1staat echter
status: no carrier. Dit is normaal als
er geen Ethernetkabel in de kaart gestoken is.Als de uitvoer &man.ifconfig.8; er ongeveer zoals hieronder
uitziet, dan is de netwerkkaart nog niet ingesteld:dc0: flags=8843<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=80008<VLAN_MTU,LINKSTATE>
ether 00:a0:cc:da:da:da
media: Ethernet autoselect (100baseTX <full-duplex>)
status: activeOm de kaart in te stellen zijn
root-rechten nodig. De netwerkkaart kan
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.Als internettoegang nodig is met dit apparaat, kan
het zijn dat de default gateway en de naamserver handmatig
moeten worden ingesteld:&prompt.root; echo 'defaultrouter="your_default_router"' >> /etc/rc.conf
&prompt.root; echo 'nameserver your_DNS_server' >> /etc/resolv.confTesten 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 alternatief kan ook het netwerk systeem
herstart worden:&prompt.root; /etc/rc.d/netif restartAls er ook een default gateway ingesteld is in het
/etc/rc.conf bestand, moet ook onderstaand
command worden gegeven:&prompt.root; /etc/rc.d/routing restartZodra het netwerk systeem is herstart, moeten de netwerk
interfaces opnieuw getest worden.Testen van de netwerkkaartnetwerk kaartentestenOm te controleren of een ethernet kaart goed geconfigureerd
is, moeten er twee dingen gedaan worden. Allereerst, ping de
interface zelf, en daarna een andere machine op het LAN.Test eerst de lokale interface:&prompt.user; ping -c5 192.168.1.3
PING 192.168.1.3 (192.168.1.3): 56 data bytes
64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms
64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms
64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms
64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms
--- 192.168.1.3 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 msNu kan er een andere machine op het LAN gepinged worden:&prompt.user; ping -c5 192.168.1.2
PING 192.168.1.2 (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms
--- 192.168.1.2 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 msDit kan ook worden geprobeerd met de machine naam in plaats
van met 192.168.1.2 als dit
geconfigureerd is in /etc/hosts.Problemen oplossennetwerk kaartenprobleem oplossingHet testen en zoeken van problemen is altijd een
pijnpunt, welke verminderd kan worden door een aantal
simpele dingen eerst te controleren. Is de netwerkkabel
ingestoken? Zijn de netwerk instellingen correct opgegeven?
Is de firewall goed geconfigureerd? Is de netwerkkaart
ondersteund door &os;? Controleer altijd de hardware notities
voordat er een probleem rapport wordt verstuurd. Update naar
de laatste -STABLE versie, en controleer de mailing lijsten en
misschien zelfs het internet.Als de kaart werkt, maar de prestaties zijn 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 gebeurt 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 gecontroleerd 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 gecontroleerd 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 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
instelling van de mediaselectie 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 interface
fxp0 is verbonden met twee netwerken, het
netwerk 10.1.1.0 met masker
255.255.255.0 en het netwerk
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"NiclasZeisingBijgedragen door De systeemlogger syslogd
configurerensysteemloggingsyslogsyslogdSysteemlogging is een belangrijk aspect van systeembeheer. Het wordt
zowel gebruikt voor het opsporen van hardware-problemen als voor
software-problemen in het systeem. Het speelt ook zeer belangrijke rol bij
het controleren van de beveiliging en het reageren op incidenten.
Systeem-daemons die niet in een terminal beheerd worden, loggen gewoonlijk
informatie naar een systeemlogfaciliteit of een ander logbestand.Deze sectie beschrijft hoe de &os; systeemlogger, &man.syslogd.8;, te
configureren en te gebruiken, en behandelt logrotatie en logbeheer met
&man.newsyslog.8;. De focus ligt bij het opzetten en gebruiken van
syslogd op een lokale machine. Meer geavanceerdere
opstellingen die een aparte loghost gebruiken staan in .syslogd gebruikenIn de standaardconfiguratie van &os; wordt &man.syslogd.8; gestart
tijdens het opstarten. Dit wordt bepaald door de variabele
syslogd_enable in /etc/rc.conf.
Er zijn vele toepassingsargumenten die het gedrag van &man.syslogd.8;
beïnvloeden. Gebruik syslogd_flags in
/etc/rc.conf om ze te veranderen. Bekijk
&man.syslogd.8; voor meer informatie over de argumenten, en
&man.rc.conf.5;, en
voor meer informatie over
/etc/rc.conf en het deelsysteem &man.rc.8;.syslogd configurerensyslog.confHet configuratiebestand, standaard
/etc/syslog.conf, bepaalt wat &man.syslogd.8; doet
met de logregels nadat ze eenmaal ontvangen zijn. Er zijn verschillende
parameters om de afhandeling van binnenkomende gebeurtenissen te
beheren, waarvan de twee basaalste faciliteit en
niveau zijn. De faciliteit beschrijft welk
deelsysteem het bericht genereerde, zoals de kernel of een daemon, het
niveau beschrijft de ernst van de opgetreden gebeurtenis. Dit maakt het
mogelijk om het bericht naar verschillende logbestanden te loggen, of
het weg te gooien, afhankelijk van de faciliteit en het niveau. Het is
ook mogelijk om actie te nemen afhankelijk van de toepassing dat het
bericht verstuurde, en in het geval van loggen op afstand, ook de
hostnaam van de machine dat het logbericht genereerde.Het configureren van &man.syslogd.8; is vrij rechttoe-rechtaan. Het
configuratiebestand bevat één regel per actie, de syntaxis
van elke regel is een selecteerderveld gevolgd door een actieveld. De
syntaxis van het selecteerderveld is
faciliteit.niveau dat overeenkomt met
logberichten van faciliteit op niveau
niveau of hoger. Het is ook mogelijk om een
optionele vergelijkingsvlag voor het niveau toe te voegen om meer
precies te specificeren wat er gelogd wordt. Er kunnen meerdere
selecteerdervelden worden gebruikt voor dezelfde actie, ze worden
gescheiden door een puntkomma (;). Het gebruik van
* zal met alles overeenkomen. Het actieveld bepaalt
waar het logbericht naar toe wordt gezonden, zoals een bestand of een
loghost op afstand. Als voorbeeld is hier de standaard
syslog.conf van &os;:# $&os;$
#
# Spaces ARE valid field separators in this file. However,
# other *nix-like systems still insist on using tabs as field
# separators. If you are sharing this file between systems, you
# may want to use only tabs as field separators here.
# Consult the &man.syslog.conf.5; manpage.
*.err;kern.warning;auth.notice;mail.crit /dev/console
*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
security.* /var/log/security
auth.info;authpriv.info /var/log/auth.log
mail.info /var/log/maillog
lpr.info /var/log/lpd-errs
ftp.info /var/log/xferlog
cron.* /var/log/cron
*.=debug /var/log/debug.log
*.emerg *
# uncomment this to log all writes to /dev/console to /var/log/console.log
#console.info /var/log/console.log
# uncomment this to enable logging of all log messages to /var/log/all.log
# touch /var/log/all.log and chmod it to mode 600 before it will work
#*.* /var/log/all.log
# uncomment this to enable logging to a remote loghost named loghost
#*.* @loghost
# uncomment these if you're running inn
# news.crit /var/log/news/news.crit
# news.err /var/log/news/news.err
# news.notice /var/log/news/news.notice
!ppp
*.* /var/log/ppp.log
!*Komt overeen met alle berichten met een err
of hoger, alsook met kern.warning,
auth.notice en mail.crit, en
stuur deze logberichten naar de console (
/dev/console).Komt overeen met alle berichten van de faciliteit
mail op niveau info of hoger,
en logt de berichten in
/var/log/maillog.Deze regel gebruikt een vergelijkingsvlag, =
om alleen met de berichten op niveau debug
overeen te komen en ze op te slaan in
/var/log/debug.log.Hier volgt een gebruiksvoorbeeld van een
programmaspecificatie. Dit zorgt ervoor dat de
regels alleen geldig zijn voor het programma in de
programmaspecificatie. In dit geval zorgen deze en de volgende
regel ervoor dat alle berichten van ppp, maar
niet van andere programma's, in
/var/log/ppp.log terechtkomen.Dit voorbeeld toont dat er vele niveaus en deelsystemen zijn. De
niveaus zijn, in volgorde van meest naar minst kritisch:
emerg, alert,
crit, err,
warning, notice,
info en debug.De faciliteiten zijn, in geen specifieke volgorde:
auth, authpriv,
console, cron,
daemon, ftp,
kern, lpr,
mail, mark,
news, security,
syslog, user,
uucp en local0 tot en met
local7. Let erop dat andere besturingssystemen
andere faciliteiten kunnen hebben.Met deze kennis is het eenvoudig om een nieuwe regel aan
/etc/syslog.conf toe te voegen om alles van de
verschillende daemons op niveau notice en hoger naar
/var/log/daemon.log te loggen:daemon.notice /var/log/daemon.logBekijk &man.syslog.3; en &man.syslogd.8; voor meer informatie over
de verschillende niveaus en faciliteiten. Zie &man.syslog.conf.5; en
voor meer informatie over
syslog.conf, de syntaxis, en geavanceerdere
gebruiksvoorbeelden.Logbeheer en -rotatie met
newsyslognewsyslognewsyslog.conflogrotatielogbeheerLogbestanden hebben de neiging om snel te groeien en gestadig
opgehoopt te raken. Dit leidt tot bestanden die vol zitten met minder
direct bruikbare informatie en de harde schijf volmaken. Logbeheer
kan gebruikt worden om dit te beheersen. In &os; wordt
&man.newsyslog.8; gebruikt om logbestanden te beheren. Dit programma
wordt gebruikt om periodiek logbestanden te roteren en te comprimeren
en om optioneel ontbrekende logbestanden aan te maken en programma's
te signaleren dat logbestanden zijn verplaatst. De logbestanden hoeven
niet per sé van syslog afkomstig te zijn; &man.newsyslog.8;
werkt met elke log van elk programma. Het is belangrijk om op te
merken dat newsyslog normaliter vanuit &man.cron.8;
wordt gedraaid en niet een systeem-daemon is. In de
standaardconfiguratie wordt het elk uur gedraaid.newsyslog configurerenOm te weten wat het moet doen leest &man.newsyslog.8; zijn
configuratiebestand, standaard is dit
/etc/newsyslog.conf. Dit configuratiebestand
bevat één regel voor elk bestand dat &man.newsyslog.8;
beheert. Elke regel noemt de eigenaar van het bestand, rechten, en
wanneer dat bestand te roteren, alsook optionele vlaggen die de
logrotatie beïnvloeden (zoals compressie) en naar welke
programma's een signaal te sturen wanner de log is geroteerd. Als
voorbeeld is hier de standaard configuratie in &os;:# configuration file for newsyslog
# $&os;$
#
# Entries which do not specify the '/pid_file' field will cause the
# syslogd process to be signalled when that log file is rotated. This
# action is only appropriate for log files which are written to by the
# syslogd process (ie, files listed in /etc/syslog.conf). If there
# is no process which needs to be signalled when a given log file is
# rotated, then the entry for that file should include the 'N' flag.
#
# The 'flags' field is one or more of the letters: BCDGJNUXZ or a '-'.
#
# Note: some sites will want to select more restrictive protections than the
# defaults. In particular, it may be desirable to switch many of the 644
# entries to 640 or 600. For example, some sites will consider the
# contents of maillog, messages, and lpd-errs to be confidential. In the
# future, these defaults may change to more conservative ones.
#
# logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
/var/log/all.log 600 7 * @T00 J
/var/log/amd.log 644 7 100 * J
/var/log/auth.log 600 7 100 @0101T JC
/var/log/console.log 600 5 100 * J
/var/log/cron 600 3 100 * JC
/var/log/daily.log 640 7 * @T00 JN
/var/log/debug.log 600 7 100 * JC
/var/log/init.log 644 3 100 * J
/var/log/kerberos.log 600 7 100 * J
/var/log/lpd-errs 644 7 100 * JC
/var/log/maillog 640 7 * @T00 JC
/var/log/messages 644 5 100 @0101T JC
/var/log/monthly.log 640 12 * $M1D0 JN
/var/log/pflog 600 3 100 * JB /var/run/pflogd.pid
/var/log/ppp.log root:network 640 3 100 * JC
/var/log/security 600 10 100 * JC
/var/log/sendmail.st 640 10 * 168 B
/var/log/utx.log 644 3 * @01T05 B
/var/log/weekly.log 640 5 1 $W6D0 JN
/var/log/xferlog 600 7 100 * JCElke regel begint met de naam van het bestand dat geroteerd moet
worden, optioneel gevolgd door een eigenaar en groep voor zowel de
geroteerde als nieuw aangemaakte bestanden. Het volgende veld,
mode is de modus van de bestanden en
count geeft aan hoeveel geroteerde logbestanden
bewaard moeten worden. De velden size en
when vertellen newyslog wanneer
het bestand geroteerd moet worden. Een logbestand wordt geroteerd
wanneer òfwel de grootte meer is dan de waarde in het veld
size, òfwel wanneer de tijd in het veld
when is verstreken. * geeft aan
dat dit veld genegeerd wordt. Het veld
flags geeft &man.newsyslog.8; verdere
instructies, zoals hoe het geroteerde bestand te comprimeren of om het
logbestand aan te maken als het ontbreekt. De laatste twee velden
zijn optioneel en specificeren het PID-bestand van een proces en
een naar dat proces te verzenden signaalnummer wanneer het bestand
wordt geroteerd. Raadpleeg &man.newsyslog.conf.5; voor meer
informatie over alle velden, geldige vlaggen en hoe de rotatietijd te
specificeren. Herinner dat newsyslog wordt
gedraaid vanuit cron en niet vaker bestanden kan
roteren dan dat het gedraaid wordt vanuit &man.cron.8;.Instellingenbestanden/etc layoutInstellingengegevens wordt in een aantal mappen bewaard.
Daar zijn onder andere:/etcGenerieke systeeminstellingenbestanden, specifiek
voor het systeem./etc/defaultsDe standaardversies van
systeeminstellingenbestanden./etc/mailExtra &man.sendmail.8; instellingenbestanden of
instellingenbestanden voor andere MTAs./etc/pppInstellingen voor zowel gebruiker- 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 stopscripts voor geïnstalleerde
diensten./var/dbAutomatisch gemaakte systeemspecifieke
databasebestanden, zoals de pakketdatabase, 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.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.Om te voorkomen dat er logregels geplaatst worden als
processen crashen en om te voorkomen dat andere gebruikers
kunnen zien welke processen er gestart zijn door een andere
gebruiker, kunnen de volgende instellingen worden gezet in
sysctl.conf:#Log exits met fatale signalen niet (bv. sig 11)
kern.logsigexit=0
# Voorkom dat gebruikers informatie zien over processen die
# worden gedraaid onder een ander UID.
security.bsd.see_other_uids=0Optimaliseren 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 systeemvariabelen
opgevraagd en ingesteld worden.In essentie heeft &man.sysctl.8; twee functies: 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 -> 5000Waarden 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 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
/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 paginacache 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 paginagrootte is (typisch 4 K) in plaats van
512 bytes. Het is aan te raden deze optie aan te laten
staan als gebruik gemaakt wordt 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 gegevens 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 sysctl's voor buffercache en
VM-pagecache. Het wordt afgeraden deze te wijzigen. Het
VM-systeem is 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
meergebruikersystemen 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
geheugenpagina's 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 aan 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 uitgave 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, kan het die weer aangezet worden door
hw.ata.wc op 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 kernelinstelling SCSI_DELAY 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 (zeker met
moderne schijven). De kern.cam.scsi_delay
opstart variabele moet hier gebruikt worden. De variabele
en kernelconfiguratie-optie accepteren 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 aangekoppeld is. Softupdates aanzetten wordt dus
in het algemeen gedaan vanuit enkelegebruikermodus, voordat
partities aangekoppeld zijn.Softupdates zorgen voor een drastische verbetering van de
prestaties met betrekking tot metagegevens, 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 garanderen 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 gaat wellicht meer werk verloren dan anders het
geval zou zijn. Daarnaast vertragen softupdates het vrijgeven
van bestandssysteemblokken. Als een bestandssysteem (zoals de
rootpartitie) 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 metagegevens van
een bestandssysteem terug naar de schijf te schrijven. Het
bijwerken van metagegevens houdt het bijwerken van van
niet-inhoudelijke gegevens zoals inodes of mappen in.Historisch gezien was het gebruikelijk om updates aan
metagegevens synchroon weg te schrijven. Als een map
bijvoorbeeld gewijzigd was, wachtte het systeem totdat de
verandering daadwerkelijk naar de schijf geschreven was. De
gegevensbuffers (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, zijn de metagegevens nog altijd
consistent. Een bestand kan volledig gecreëerd zijn of
helemaal niet. Als de gegevensblokken 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 metagegevens een traag proces is. Een
rm -r 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
metagegevens asynchroon weg te schrijven. Dit is standaard in
&linux;/ext2fs en als een *BSD UFS-bestandssysteem met
mount -o async aangekoppeld 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 gegevensblokken 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 back-up.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 gegevensblokken 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 aankoppelen 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 aangekoppeld
worden en het systeem kan gewoon verder opstarten naar
meergebruikermodus. 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 op 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
metagegevens of de bestandsinhoud nooit naar de schijf zijn
geschreven. Schijfruimte wordt pas vrijgegeven als de
bijwerkingen aan metagegevens en inhoudelijke
bestandsgegevens weggeschreven zijn, wat mogelijk pas enige
tijd na het uitvoeren van rm plaatsvindt.
Dit kan problemen veroorzaken als er grote hoeveelheden
gegevens 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 met 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.In oudere versies van &os; werd de standaard waarde van
kern.maxfiles afgeleid van de optie
in het kernelconfiguratiebestand.
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 systeem
(maar niet te laag). Hoewel een produktieserver misschien
niet 256 gelijktijdige gebruikers heeft, kunnen de benodigde
systeembronnen het beste vergeleken worden 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.Vanaf &os; 4.5 wordt kern.maxusers
automatisch ingesteld tijdens het opstarten gebaseerd op de
hoeveelheid beschikbare geheugen in het systeem en kan worden
vastgesteld tijdens het draaien door te kijken naar de
alleen-lezen sysctl kern.maxusers. Sommige
configuraties hebben grotere of kleinere waarden nodig van
kern.maxusers, deze kunnen worden gezet
als een opstartvariabele. Waardes van 64, 128 en 256 zijn
daarin niet ongewoon. We raden aan om niet boven de 256 te
gaan tenzij er heel veel bestandsdescriptors benodigd zijn;
veel van de aanpasbaare waarden die standaard worden bepaald
door kern.maxusers kunnen individueel
worden overschreven tijdens het opstarten en/of tijdens het
draaien van het systeem in
/boot/loader.conf (zie de handleiding
&man.loader.conf.5; of
/boot/defaults/loader.conf voor een paar
aanwijzingen) of zoals elders beschreven in dit document.Voor oudere versies 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.
Als het gewenst is om deze waarde zelf aan te geven, 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 zich 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
webserveromgeving. 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
ontvangstnetwerkbuffers 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 het 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 sysctl-variabelen
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-bandbreedtevertragingsproductlimitatie lijkt op
TCP/Vegas in NetBSD. Het kan aangezet worden door de
sysctl-variabele
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 WAN-verbindingen met hoge snelheid (of elke andere
verbinding 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 verbinding. De mogelijkheid
tot limitering zorgt ervoor dat de hoeveelheid gegevens 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 /
cliëntkant).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.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 schijf-I/O.
Normaliter wordt dit door het besturingssysteem afgehandeld en
hoeft de instelling niet gewijzigd te worden. Im sommige
gevallen kan schijf-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.Kijk voor informatie over het beveiligen van het
wisselbestand, welke opties hiervoor bestaan, en waarom dit gedaan
zou moeten worden in van het
handboek.Swap op een nieuwe of bestaande harde schijfEen nieuwe harde schijf voor swap toevoegen geeft betere prestaties
dan een partitie aan een bestaande schijf toevoegen. Het aanmaken van
partities en harde schijven wordt uitgelegd in .
bespreekt de overwegingen van partitie-indelingen en de grootte van
swap-partities.Gebruik &man.swapon.8; om een swap-partitie aan het systeem toe te
voegen, bijvoorbeeld:&prompt.root; swapon /dev/ada1s1bHet is mogelijk om elke partitie te gebruiken die momenteel niet
aangekoppeld is, zelfs als deze al gegevens bevat. Het gebruik van
&man.swapon.8; op een partitie die gegevens bevat zal deze gegevens
overschrijven en vernietigen. Zorg ervoor dat de partitie die als
swap toegevoegd wordt echt de bedoelde partitie is voordat
&man.swapon.8; gebruikt wordt.Voeg een regel toe aan /etc/fstab voor de
partitie om deze swap-partitie automatisch toe te voegen tijdens het
opstarten:/dev/ada1s1b none swap sw 0 0Raadpleeg &man.fstab.5; voor een uitleg over de regels in
/etc/fstab.Swappen over NFSIn het algemeen wordt swappen over NFS niet aangeraden
behalve als het onmogelijk is om naar een lokale schijf te
swappen. NFS-swappen wordt gelimiteerd door de hoeveelheid
beschikbare bandbreedte 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 bestand van 64 MB gebruikt,
/usr/swap0. Uiteraard kan een willekeurige
naam gebruikt worden.Een wisselbestand aanmaken op &os;De kernel GENERIC bevat reeds het
stuurprogramma voor geheugenschijven (&man.md.4;) dat nodig is
voor deze bewerking. Zorg ervoor dat tijdens het bouwen van een
eigen kernel de volgende regel in uw configuratiebestand
zit:device mdKijk voor meer informatie over het bouwen van een eigen kernel
in .Het wisselbestand /usr/swap0
aanmaken:&prompt.root; dd if=/dev/zero of=/usr/swap0 bs=1024k count=64De correcte rechten op /usr/swap0
instellen:&prompt.root; chmod 0600 /usr/swap0Het wisselbestand opnemen in
/etc/rc.conf:swapfile="/usr/swap0" # Instellen op naam van wisselbestand als hulpwisselbestand gewenst isDe 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/md0HitenPandyaGeschreven door TomRhodesEnergie- en bronnenbeheerHet is belangrijk om hardwarebronnen op een efficiënte
wijze te benutten. Voordat ACPI
geïntroduceerd werd was het lastig en onflexibel om het
energieverbruik en de thermische eigenschappen van een systeem te
beheersen. De hardware werd beheerst de BIOS
en dus had de gebruiker minder controle en zichtbaarheid in de
energiebeheerinstellingen. Enige gelimiteerde configuratie was
mogelijk via Advanced Power Management (APM).
Energie- en bronnenbeheer is een belangrijk onderdeel van moderne
machines. 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 worden
referenties geleverd naar meer leesmateriaal.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 standaardinterface voor hardwarebronnen- 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 hardwareplatform. Een
APM-stuurprogramma in het besturingssysteem regelt vervolgens de
toegang tot de APM Software Interface, die
het besturen van vermogensniveau mogelijk maakt. APM dient nog
steeds gebruikt te worden met systemen die gefabriceerd zijn
voor het jaar 2000.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
situaties onbetrouwbaar. PNPBIOS is 16-bitstechnologie, 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 meestal niet goed
werkt. Mocht er hinder ondervonden worden, dan 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 door
het instellen van hint.acpi.0.disabled="1" in
/boot/loader.conf of in de &man.loader.8;
prompt.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
&man.acpiconf.8; met de vlag en een optie
1-5. De meeste gebruikers hebben alleen
1 of 3 nodig. De optie
5 verricht een soft-off, wat
hetzelfde is als:&prompt.root; halt -pAndere opties zijn mogelijk via &man.sysctl.8;. Zie de
handleidingen van &man.acpi.4; en &man.acpiconf.8; voor 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 de subsystemen van de kernel van &os; en bugs
in de &intel; ACPI-CA interpreter blijven
opduiken.Deze tekst is bedoeld om u te helpen met het bijstaan van de
&os; ACPI beheerders met het vinden van de
hoofdoorzaken van problemen die u opmerkt en met het debuggen en
het vinden van een oplossing.Debuginformatie aanleverenVoordat een probleem wordt gemeld, 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 uitvoer van &man.dmesg.8; van boot
-v, inclusief foutmeldingen die gegenereerd
worden als de fout optreedt.De uitvoer van &man.dmesg.8; 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 -dt > naam-systeem.asl(Vervang uw aanmeldnaam door
$NAME en producent/model door
$SYSTEM. Bijvoorbeeld:
njl-FooCo6000.asl)De meeste &os;-programmeurs lezen de &a.current;, 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 volledige 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 van bestaande problemen, niet als
rapportagesysteem. Mogelijk is een probleem al eens door iemand
anders gemeld.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- en
chipsetverkopers bieden verscheidene vaste tabellen aan zoals
FADT in het geheugen die zaken als de
APIC-afbeelding (gebruikt voor
SMP), configuratieregisters, en eenvoudige
configuratiewaarden specificeren. Ook wordt er een tabel van
bytecode (de Differentiated System
Description Table of DSDT)
geleverd die een op een boomstructuur lijkende namespace biedt
voor apparaten en methoden.Het stuurprogramma ACPI moet de
voorgedefinieerde tabellen verwerken, een interpreter voor de
bytecode implementeren en apparaatstuurprogramma's en de kernel
aanpassen om informatie van het
ACPI-subsysteem te 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 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
/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 geïmplenteerd.als eerste dienen de sysctl hw.acpi
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,
S4OS 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.Een veelvoorkomend probleem met suspend/resume is dat veel
apparaatstuurprogramma's hun firmware, registers of apparaatgeheugen
niet fatsoenlijk opslaan, herstellen, of herinitialiseren. Een
eerste poging om het probleem te vinden omvat:&prompt.root; sysctl debug.bootverbose=1
&prompt.root; sysctl debug.acpi.suspend_bounce=1
&prompt.root; acpiconf -s 3Deze test emuleert de suspend/resume-cyclus van alle
apparaten zonder daadwerkelijk naar de toestand S3
te gaan. In sommige gevallen kunt u zo eenvoudig problemen
vaststellen (bijvoorbeeld het verliezen van de firmware-toestand,
timeout van de apparaatwaakhond, en steeds opnieuw iets proberen).
Merk op dat het systeem niet werkelijk naar de toestand
S3 gaat, wat inhoudt dat apparaten geen spanning
verliezen waardoor velen prima zullen werken zelfs als de
suspend/resume-methoden geheel ontbreken, dit in tegenstelling tot de
echte toestand S3.Moeilijkere gevallen vereisen aanvullende hardware, dat is een
serieële poort/kabel voor de serieële console of een
Firewire poort/kabel voor &man.dcons.4;, en vaardigheden in het
debuggen van de kernel.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 het stuurprogramma dat
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 stuurprogramma. Als het beeldscherm er na
wakker worden vreemd uitziet, kan geprobeerd worden
op nul 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 welk stuurprogramma het gaat,
kan dat bijdragen aan het oplossen van het probleem.
ACPI houdt zich in het algemeen niet bezig
met andere stuurprogramma's zoals geluid,
ATA, enzovoort. Als er dus een echt
probleem met een stuurprogramma 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).interruptstormsInterruptstorms 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) en
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 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 en de bereidheid om eventuele
patches uit te proberen hebben.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.ACPIfoutmeldingenHieronder 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
expliciete 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 worden:&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 verzameling 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 standaard 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 module
acpi.ko 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).
Index: translations/nl_NL.ISO8859-1/books/handbook/disks/chapter.xml
===================================================================
--- translations/nl_NL.ISO8859-1/books/handbook/disks/chapter.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/handbook/disks/chapter.xml (revision 40367)
@@ -1,5185 +1,5185 @@
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 bestandssysteem 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 en
scd voor Sony CD-ROM apparaten.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 toevoegenschijventoevoegenDe volgende sectie beschrijft hoe 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 aangekoppeld op
/1 (als er een IDE-schijf wordt toegevoegd,
is de apparaatnaam ad1).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;
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.gpart.8; worden gebruikt om GPT-partities aan te
maken. GPT heeft het bijkomende voordeel dat het niet
tot 4 slices beperkt is.&man.sysinstall.8; gebruikensysinstallschijven toevoegensuNavigeren door
sysinstallsysinstall
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 op
A gedrukt 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 op Q te drukken.
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 op C te drukken. Kies
FS wanneer gevraagd wordt of dit een FS
(file system) of swap wordt, en geef een koppelpunt 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
koppelpunt 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 op W te
drukken. Fouten van sysinstall
dat de nieuwe partitie niet aankoppeld 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; bsdlabel -B -w da1s1 auto # Label de schijf.
&prompt.root; bsdlabel -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.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; bsdlabel -Bw da1 auto
&prompt.root; bsdlabel -e da1 # Maak de `e'-partitie aan.
&prompt.root; newfs /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; bsdlabel /dev/da1 | bsdlabel -BR da1 /dev/stdin
&prompt.root; newfs /dev/da1e
&prompt.root; mkdir -p /1 # Voeg een regel voor /dev/da1e toe.
&prompt.root; mount /1RAIDSoftware RAIDChristopherShumwayOrigineel werk van JimBrownHerzien door Concatenated Disk Driver (CCD) instellingenRAIDsoftwarematigRAIDCCDBij 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.4; () 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:device ccdOm &man.ccd.4; te installeren dient eerst
&man.bsdlabel.8; gebruikt te worden om de schijven te
labelen:bsdlabel -w -ad1 auto
bsdlabel -w ad2 auto
bsdlabel -w ad3 autoBovenstaande maakt een schijflabel aan voor
ad1c,
ad2c en
ad3c die de gehele schijf
beslaat.Vervolgens dient het labeltype van de schijf veranderd
te worden. Voor het bewerken van de schijven kan
&man.bsdlabel.8; gebruikt worden:bsdlabel -e ad1
bsdlabel -e ad2
bsdlabel -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 aanmakenNu 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
aangekoppeld.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; aangekoppeld kan
worden:ccdconfig -COm de &man.ccd.4; automatisch aan te koppelen, kan er
een regel voor de &man.ccd.4; in
/etc/fstab geplaatst worden, zodat die
tijdens het opstarten aangekoppeld 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.4; implementeert de modellen
RAID-0, RAID-1 en RAID-5, zowel individueel als als
combinatie.In staat meer informatie
over &man.vinum.4;.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 ehci
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 voor ondersteuning van USB 1.X.
Het kan echter geen kwaad om ze beiden in het kernelinstellingenbestand
te hebben. Ondersteuning voor USB 2.0 wordt geleverd door het
stuurprogramma &man.ehci.4; (de regel met
device ehci). 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.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 aangekoppeld worden. biedt
indien nodig hulp bij het formatteren en aanmaken van partities
op de USB-drive.Door het toestaan dat gewone gebruikers verschillende
media kunnen koppelen door bijvoorbeeld het aanzetten van
vfs.usermount zoals hieronder beschreven,
zou niet als veilig beschoud moeten worden uit een
beveiligings oogpunt. Veel bestandssystemen in &os; zijn
niet geschreven om beveiliging te bieden tegen kwaadaardige
apparaten.Om het apparaat koppelbaar te maken voor de gewone gebruiker
moeten er een aantal stappen ondernomen worden. Als eerste
moeten de apparaten die gecreeerd worden wanneer het USB opslag-
medium wordt toegevoegd toegankelijk zijn voor de gebruiker.
Een oplossing is om alle gebruikers die deze rechten nodig hebben
toe te voegen aan de operator groep. Dit
kan gedaan worden met &man.pw.8;. Daarna moet het voor de
operator groep mogelijk zijn te lezen en
te schrijven naar de gecreeerde apparaten. Dit kan bewerkstelligd
worden door de volgende regels toe te voegen aan
/etc/devfs.rules:[localrules=5]
add path 'da*' mode 0660 group operatorAls er SCSI schijven in het systeem aanwezig zijn moet dit
anders aangepakt worden. Stel dat het systeem reeds over de
volgende schijven beschikt da0 tot
en met da2, verander de regel dan
in het volgende:add path 'da[3-9]*' mode 0660 group operatorDit sluit de reeds bestaande schijven buiten van toegang
door de operator groep.Erna moet ook de nieuwe ruleset voor &man.devfs.rules.5;
ingeschakeld worden door middel van
/etc/rc.conf:devfs_system_ruleset="localrules"Hierna moet de kernel worden geconfigureerd zodat gewone
gebruikers rechten krijgen om bestandssystemen te koppelen.
De makkelijkste manier is door de volgende regel toe te voegen
aan /etc/sysctl.conf:vfs.usermount=1Let op, deze wijziging wordt pas actief na de volgende
start van het systeem. Als alternatief kan ook &man.sysctl.8;
gebruikt worden om deze variabele te zetten.De laatste stap is het creëeren van de map waar het
bestandssysteem gekoppeld wordt. Deze map moet eigendom zijn
van de gebruiker die het bestandssysteem gaat koppelen. Een
manier om dat te bewerkstelligen is door met de gebruiker
root een submap aan te maken die eigendom
is van de gebruiker als
/mntgebruikersnaam
(verander gebruikersnaam door de
loginnaam van de daadwerkelijke gebruiker en
gebruikersgroep door de primaire
groep van de gebruiker):&prompt.root; mkdir /mnt/gebruikersnaam
&prompt.root; chown gebruikersnaam:gebruikersgroep /mnt/gebruikersnaamStel dat er vervolgens een USB-stick ingeplugged wordt en er
een /dev/da0s1 aangemaakt wordt. Omdat
deze apparaten meestal voorgeformatteerd met een
FAT-bestandssysteem komen, kan deze als volgende gekoppeld
worden:&prompt.user; mount -t msdosfs -o -m=644,-M=755 /dev/da0s1 /mnt/gebruikersnaamIndien het apparaat losgekoppeld wordt (nadat de schijf
afgekoppeld 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 aan- en
afkoppelen, kunnen de volgende hulppagina's ook nuttig
zijn: &man.umass.4;, &man.camcontrol.8; en &man.usbconfig.8; voor
&os; 8.X of &man.usbdevs.8; voor eerdere versies van &os;.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. Het is ook 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 md in de
kernel is ingesteld, kan het bestandssysteem gekoppeld
worden:&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. 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-Clone 2.01 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 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 -vall -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-drivesMet behulp van de ATAPI/CAM module kan
cdda2wav ook gebruikt worden voor ATAPI-drives.
Dit gereedschap is vaak een betere keuze voor de meeste gebruikers
(jitter-correctie, endianness-zaken, etc.) dan de methode die
hieronder wordt voorgesteld.Het ATAPI CD-stuurprogramma maakt elke track
beschikbaar als
/dev/acddtnn,
waarin d het stationsnummer is
en nn het tracknummer is in twee
decimale cijfers, dat indien nodig vooraf wordt gegaan door
een nul. Dus is de eerste track op de eerste schijf
/dev/acd0t01, de tweede
/dev/acd0t02, de derde
/dev/acd0t03, enzovoort.Controleer of de juiste bestanden in
/dev bestaan. Als de benodigde
namen er niet bijstaan, forceer het systeem dan om opnieuw
te kijken:&prompt.root; dd if=/dev/acd0 of=/dev/null count=1De 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.&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 aangekoppeld 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 wordt er
niet aangekoppeld:&prompt.root; mount /dev/cd0 /mntDe CD-ROM bevat geen
UFS-bestandssysteem, dus pogingen om zo aan
te koppelen 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 aankoppelen 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 geen Unicode, maar het &os; CD9660
stuurprogramma is in staat om Unicode karakters direct te
converteren. Als er niet-Engelse karakters verschijnen als
vraagtekens, moet de lokale karakterset gedefinieerd worden
met de optie. Zie de &man.mount.cd9660.8;
handleiding voor meer informatie.Om in staat te zijn om de karakter conversie te doen met
behulp van de optie, heeft de kernel de
cd9660_iconv.ko module nodig. Deze kan
ingeladen worden door het volgende toe te voegen aan
/boot/loader.conf:cd9660_iconv_load="YES"en daarna de machine te herstarten of door de module direct
in te laden met &man.kldload.8;.Zo nu en dan kan Device not
configured verschijnen als geprobeerd wordt om een
CD-ROM aan te koppelen. 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 aan te koppelen 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 aan te kunnen koppelen of gegevens te delen met een
ander besturingssysteem, dient &man.mkisofs.8; gebruikt te
worden, zoals boven beschreven is.MarcFonvieilleBijgedragen door Het ATAPI/CAM-stuurprogramma gebruikenCD-branderATAPI/CAM-stuurprogrammaDit 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 /boot/loader.conf
bestand toe te voegen:atapicam_load="YES"om daarna de machine opnieuw op te starten.Als het noodzakelijk is om &man.atapicam.4; statisch toe
te voegen aan de kernel moet de volgende regel worden
toegevoegd aan het kernelinstellingenbestand: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 aan te koppelen:&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. Lees
voor meer informatie
over het gebruik van DVD-RAM.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).
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;.Om bestanden groter dan 4,38GB in de compilatie op te nemen dient
een UDF/ISO-9660 hybride bestandssysteem aangemaakt te worden door de
aanvullende parameter aan
&man.mkisofs.8; en alle gerelateerde programma's (i.e.
&man.growisofs.1;) door te geven. Dit is alleen nodig als een ISO
beeldbestand wordt aangemaakt, of als bestanden direct naar een schijf
worden geschreven. Schijven die op deze manier zijn aangemaakt moeten
als een UDF-bestandssysteem worden aangekoppeld met het hulpmiddel
&man.mount.udf.8;, zodat het alleen bruikbaar is op een
besturingssysteem dat zich van UDF bewust is, anders zal het lijken of
er corrupte bestanden op staan.Om zo'n ISO-bestand aan te maken:&prompt.user; mkisofs -R -J -udf -iso-level 3 -o beeldbestand.iso/pad/naar/gegevensOm de bestanden direct naar een schijf te schrijven:&prompt.root; growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /pad/naar/gegevensWanneer u een ISO-beeld heeft dat al grote bestanden bevat, zijn
er geen extra opties nodig om met &man.growisofs.1; het beeld naar een
schijf te schrijven.Zorg er ook voor dat u een actuele versie van sysutils/cdrtools heeft (welke
&man.mkisofs.8; bevat), aangezien oudere versies geen ondersteuning
voor grote bestanden bieden. Als u problemen tegenkomt, gebruik dan
de ontwikkelversie, sysutils/cdrtools-devel en lees de
handleidingpagina &man.mkisofs.8;.DVD-Video brandenDVDDVD-VideoEen 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;.DVD+RW gebruikenDVDDVD+RWIn 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/zeroDVD-RW gebruikenDVDDVD-RWEen 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.DVD-RAM gebruikenDVDDVD-RAMConfiguratieDVD-RAM schrijvers komen met of een SCSI of een ATAPI
interface. DMA toegang voor ATAPI apparaten moet worden
ingeschakeld, wat gedaan kan worden door de volgende regel
toe te voegen aan
/boot/loader.conf:hw.ata.atapi_dma="1"Voorbereiden van het mediumZoals vermeld in de introductie van dit hoofdstuk kan
DVD-RAM gezien worden als een verwijderbare harde schijf.
Zoals elke andere harde schijf moet de DVD-RAM
voorbereid worden voor het eerste gebruik.
In het voorbeeld wordt alle beschikbare ruimte gebruikt voor
een standaard UFS2 bestandssysteem:&prompt.root; dd if=/dev/zero of=/dev/acd0 bs=2k count=1
&prompt.root; bsdlabel -Bw acd0
&prompt.root; newfs /dev/acd0Het DVD apparaat, acd0 moet worden
gewijzigd naar gelang de configuratie.Het medium gebruikenZodra de voorgaande operaties uitgevoerd zijn op de DVD-RAM
kan het gekoppeld worden net als een normale harde schijf:&prompt.root; mount /dev/acd0/mntHierna zal de DVD-RAM zowel lees- als beschrijfbaar zijn.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
een rauwe floppy te benaderen gebruikt u
/dev/fdN.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 van floppiesVoor 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.bsdlabel.8; als volgt gedraaid worden:&prompt.root; /sbin/bsdlabel -B -w /dev/fd0 fd1440BestandssystemenNu 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.msdosfs.8;
gebruikt worden om het medium aan te koppelen. 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 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 &man.rsync.1; 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. In tegenstelling tot andere
back-upprogramma's, verzorgt dump 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. Het commando
dump schrijft geen bestanden en
mappen naar band, maar de rauwe gegevensblokken waaruit de
bestanden en mappen bestaan. Wanneer het gebruikt wordt om
gegevens te extraheren, slaat restore
tijdelijke bestanden standaard op in /tmp/
— als u werkt vanaf een herstelschijf met een kleine map
/tmp, moet u wellicht de
omgevingsvariabele TMPDIR op een map met meer
vrije ruimte instellen zodat de restore kan slagen.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 koppelpunten 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.gz
+ doelgebruiker@doelmachine.example.com dd of=/mijngrotebestanden/dump-usr-10.gz
Ook kan de ingebouwde manier van dump
gebruikt worden, door de omgevingsvariabele RSH
in te stellen:Het gebruik van dump via
ssh met ingestelde
RSH
- &prompt.root; env RSH=/usr/bin/ssh /sbin/dump -0uan -f doelgebruiker@doelmachine.voorbeeld.com:/dev/sa0 /usr
+ &prompt.root; env RSH=/usr/bin/ssh /sbin/dump -0uan -f doelgebruiker@doelmachine.example.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.tarOm tar toe te passen op een Exabyte-bandstation
die met een Sun genaamd komodo verbonden
is:&prompt.root; tar cf - . | rsh komodo dd of=tape-device 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; dofind $f >> back-up.lijstdone
&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
XML-invoerbestanden aangemaakt. Het back-uppen van de HTML-
of &postscript; bestanden is niet nodig. Van de XML-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.bsdlabelHet schijflabel van elke schijf dient afgedrukt te worden
(bijvoorbeeld met bsdlabel da0 | lpr), de
bestandssysteemtabel (/etc/fstab) en
alle opstartboodschappen, alles in tweevoud.livefs CDTen tweede dient een livefs CD-ROM gebrandt te
worden. Deze CD-ROM biedt ondersteuning voor het opstarten in een
&os; livefs reddingsmodus die gebruiker in staat stelt
om vele taken uit te voeren zoals het draaien van &man.dump.8;,
&man.restore.8;, &man.fdisk.8;, &man.bsdlabel.8;, &man.newfs.8; en
meer. Een livefs CD-beeld voor
&os;/&arch.i386; &rel2.current;-RELEASE is beschikbaar op .Livefs CD-beelden zijn niet beschikbaar voor
&os; &rel.current;-RELEASE en nieuwer. Naast de beelden voor
CDROM-installaties kunnen ook beelden voor flash-drive-installaties
gebruikt worden om een systeem te redden. Het
memstick-beelden voor
&os;/&arch.i386; &rel.current;-RELEASE is beschikbaar op .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 livefs CD-ROM die in stap twee
gemaakt is en de back-upbanden getest te worden. Van de handelingen
dienen aantekeningen gemaakt te worden. De aantekeningen, de
CD-ROM, de afdrukken en de back-upbanden dienen
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 telkens een
livefs CD-ROM en 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.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.Plaats de livefs CD-ROM in de CD-ROM drive indien
de hardware in orde is en start de computer op. Het originele
installatiemenu wordt op het scherm getoond. Kies het land van
toepassing en kies daarna Fixit -- Repair mode with
CDROM/DVD/floppy en kies het item
CDROM/DVD -- Use the live filesystem
CDROM/DVD. restore en de andere
benodigde programma's staan in /mnt2/rescue.Herstel elk bestandssysteem apart.mountrootpartitiebsdlabelnewfsProbeer de rootpartitie van de eerste schijf aan te
koppelen (bijvoorbeeld mount /dev/da0a
/mnt). Als het schijflabel beschadigd is, gebruik
dan bsdlabel 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.
Koppel de rootpartitie van de schijf opnieuw aan 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).
Koppel nu het bestandssysteem af (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.Gebruik &man.devfs.8; om de apparaatnodes transparant voor
de gebruiker toe te wijzen.Bestandsgebaseerd bestandssysteemschijvenbestandsgebaseerdMet &man.mdconfig.8; kunnen geheugenschijven, &man.md.4;,
ingesteld worden en aangezet worden. 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 aankoppelen
van een beeld van een diskette of CD dat in een bestand bewaard
wordt.Om een bestaand beeld van een bestandssysteem aan te
koppelen:mdconfig gebruiken om een bestaand
beeld van een bestandssysteem aan te koppelen&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; bsdlabel -w md0 auto
&prompt.root; newfs md0a
/dev/md0a: 5.0MB (10240 sectors) block size 16384, fragment size 2048
using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.
super-block backups (for fsck -b #) at:
160, 2720, 5280, 7840
&prompt.root; mount /dev/md0a /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0a 4710 4 4330 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;.Het commando &man.mdconfig.8; is erg nuttig, hoewel het
veel opdrachten vergt om een bestandsgebaseerd bestandssysteem
aan te maken. &os; wordt met &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 koppel het aan door gebruik te
maken van &man.mount.8;. Om hetzelfde bestandssysteembeeld als
hierboven aan te maken en aan te koppelen:Instellen en aankoppelen 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 4718 4 4338 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;.Geheugengebaseerd bestandssysteemschijvengeheugenbestandssysteemVoor een geheugen gebaseerd bestands systeem moet normaal
gesproken wisselbestand geheugen gebruikt worden.
Gebruik maken van wisselbestand geheugen wil niet perse zeggen
dat de geheugen schijf direct in het wisselbestand gezet wordt,
maar dat het bestand naar het wisselbestand geschreven kan worden
indien nodig. Het is ook mogelijk om &man.malloc.9; gebaseerde
geheugen schijven te maken, maar door hiervan gebruik te maken
kan het gebeuren dat het systeem crashed als de kernel uit het
geheugen loopt.Nieuwe geheugengebaseerde schijf aanmaken met
mdconfig&prompt.root; mdconfig -a -t swap -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, 192 inodes.
with soft updates
super-block backups (for fsck -b #) at:
160, 2752, 5344, 7936
&prompt.root; mount /dev/md1/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md1 4718 4 4338 0% /mntNieuwe geheugengebaseerde schijf aanmaken met
mdmfs&prompt.root; mdmfs -s 5m md2/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md2 4846 2 4458 0% /mntGeheugenschijf van het systeem afkoppelenschijvengeheugenschijf afkoppelenAls een geheugen- of bestandsgebaseerd bestandssysteem
niet gebruikt wordt, dienen alle bronnen aan het systeem
vrijgegeven te worden. Koppel als eerste het bestandssysteem
af, 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.TomRhodesBijgedragen door Snapshots van bestandssystemenbestandssystemensnapshots&os; biedt een mogelijkheid om 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 afkoppel- en heraankoppelbewerkingen 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;De bestandssysteem integriteit controle, &man.fsck.8;
kan gebruikt worden op het snapshot. Ervan uitgaande dat het
bestandssysteem schoon was toen het werd aangekoppeld, 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 aangekoppeld. Om het snapshot
/var/snapshot/snap aan te koppelen:&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
aangekoppeld 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 afgekoppeld
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. Op &os; 7.X en eerder wordt
deze regel toegevoegd:enable_quotas="YES"Voeg op &os; 8.0-RELEASE en nieuwer in plaats daarvan deze
regel toe:quota_enable="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; /etc/rc.d/inetd restartLuckyGreenBijgedragen 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.Schijven versleutelen met
gbdeWord rootHet instellen van gbde
vereist beheerdersrechten.&prompt.user; su -
Password:Voeg ondersteuning voor &man.gbde.4; aan het
kernelinstellingenbestand toeVoeg de volgende regel toe aan het
kernelinstellingenbestand:options GEOM_BDEHerbouw de kernel opnieuw zoals beschreven in .Start op met de nieuwe kernel.Een alternatief voor het hercompileren van de kernel
is door gebruik te maken van &man.kldload.8; om
&man.gbde.4; te laden:&prompt.root; kldload geom_bdeVersleutelde harde schijf voorbereidenIn 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 aangekoppeld 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 toeVoeg 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/ad4Maak een map aan voor gbde lockbestanden&prompt.root; mkdir /etc/gbdeHet lockbestand voor gbde
bevat informatie die gbde
nodig heeft om toegang te krijgen tot versleutelde
partities. Zonder toegang tot de lockbestand is
gbde niet in staat om de
gegevens die op de versleutelde partitie staan te
ontsleutelen zonder aanzienlijke handmatige tussenkomst die
niet door de software ondersteund wordt. Elke versleutelde
partitie gebruikt een ander lockbestand.Initialiseer de gbde-partitieEen gbde-partitie dient
geïnitialiseerd te worden voordat deze kan worden
gebruikt. Deze initialisatie dient slechts eenmalig
uitgevoerd te worden:&prompt.root; gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c.lock&man.gbde.8; opent een tekstverwerker om verschillende
instellingen in een sjabloon te kunnen instellen. Stel de
sector_size in op 2048 als UFS of UFS2 wordt
gebruikt:# $FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $
#
# Sector size is the smallest unit of data which can be read or written.
# Making it too small decreases performance and decreases available space.
# Making it too large may prevent filesystems from working. 512 is the
# minimum and always safe. For UFS, use the fragment size
#
sector_size = 2048
[...]&man.gbde.8; vraagt twee keer om de wachtwoordzin
voor het beveiligen van de gegevens. De wachtwoordzin
dient beide keren hetzelfde te zijn. De mogelijkheid van
gbde om de gegevens te
beveiligen is geheel afhankelijk de gekozen
wachtwoordzin.
Tips met betrekking tot het kiezen van veilige
wachtwoordzinnen die gemakkelijk te onthouden zijn
staan op de website
Diceware Passphrase.Het commando gbde init maakt een
lockbestand aan voor de
gbde-partitie die in dit
voorbeeld is opgeslagen als
/etc/gbde/ad4s1c.lock.
gdbde slotbestanden moeten
eindigen op .lock om correct door het
opstartscript /etc/rc.d/gbde
gedetecteerd te worden.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.lockEr 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.bdeMaak een bestandssysteem op het versleutelde
apparaatNu 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.bdeVoer &man.newfs.8; uit op een aangekoppelde
gbde-partitie die
geïndificeerd wordt door de uitbreiding
*.bde op
de apparaatnaam.Mount de versleutelde partitieMaak een koppelpunt voor het versleutelde
bestandssysteem aan:&prompt.root; mkdir /privateMount het versleutelde bestandssysteem:&prompt.root; mount /dev/ad4s1c.bde /privateControleer of het versleutelde bestandssysteem
beschikbaar isHet versleutelde bestandssysteem is nu zichtbaar
met &man.df.1; en gebruiksklaar:&prompt.user; df -H
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 1037M 72M 883M 8% /
/devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1f 8.1G 55K 7.5G 0% /home
/dev/ad0s1e 1037M 1.1M 953M 0% /tmp
/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr
/dev/ad4s1c.bde 150G 4.1K 138G 0% /privateBestaande versleutelde bestandssystemen aankoppelenElke 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.lockEr wordt om de wachtwoordzin gevraagd die gekozen is
tijdens de initialisatie van de versleutelde
gbde-partitie.Controleer het bestandssysteem op foutenAangezien het nog niet mogelijk is om versleutelde
bestandssystemen op te nemen in
/etc/fstab voor automatische controle,
dienen de bestandssystemen voordat ze aangekoppeld worden
handmatig op fouten gecontroleerd te worden door
&man.fsck.8; uit te voeren:&prompt.root; fsck -p -t ffs /dev/ad4s1c.bdeMount het versleutelde bestandssysteem&prompt.root; mount /dev/ad4s1c.bde /privateHet versleutelde bestandssysteem is nu klaar voor
gebruik.Versleutelde partities automatisch aankoppelenHet is mogelijk om een script aan te maken om
automatisch een versleutelde partitie aan te koppelen, op
fouten te controleren en aan te koppelen, 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.Als alternatief, wordt er een rc.d
script bijgeleverd. De argumenten kunnen via &man.rc.conf.5;
doorgegeven worden. Bijvoorbeeld:gbde_autoattach_all="YES"
gbde_devices="ad4s1c"
gbde_lockdir="/etc/gbde"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 aangekoppeld. 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/ad4s1cgbde kan niet met
vinum volumes gebruikt worden,
omdat &man.vinum.4; geen gebruik maakt van het subsysteem
&man.geom.4;.DanielGerzoBijgedragen door Schijfversleuteling met geliEen alternatieve cryptografische GEOM klassie is 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 handleiding van &man.geli.8;.De volgende stappen beschrijven hoe ondersteuning voor
geli in de &os;-kernel ingeschakeld kan
worden en hoe een nieuwe geli
versleutelingsvoorziening gemaakt kan worden.Het is noodzakelijk super-user rechten te hebben omdat
de kernel wordt aangepast.Toevoegen van geli-ondersteuningVoeg de volgende regels toe aan het bestand met
kernelinstellingen:options GEOM_ELI
device cryptoHerbouw 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 genererenHet volgende voorbeeld beschrijft hoe een
sleutelbestand te maken, dat wordt gebruikt als onderdeel
van de Master Key voor de versleutelde dienst die wordt
aangekoppeld 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 aan te koppelen, 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/da2De dienst koppelen met de gemaakte sleutel&prompt.root; geli attach -k /root/da2.key /dev/da2
Enter passphrase:Het nieuwe platte tekst-apparaat wordt
/dev/da2.eli
genoemd.&prompt.root; ls /dev/da2*
/dev/da2 /dev/da2.eliHet 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 /privateHet 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% /privateDe dienst afkoppelenAls het werk met de versleutelde partitie is
afgehandeld en de /private-partitie niet langer
nodig is, dan is het verstandig te overwegen de met
geli versleutelde partitie af te koppelen
van het bestandssysteem en de kernel.&prompt.root; umount /private
&prompt.root; geli detach da2.eliMeer informatie over &man.geli.8; staat in de
handleiding.Gebruik maken van het gelirc.d script.Bij geli hoort een rc.d
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 is meegegeven
tijdens de geli init fase van
geli). Een systeem ontkoppelt de
geli-dienst van de kernel voordat het
afsluit.Meer informatie over het instellen van rc.d staat in
het onderdeel over rc.d.ChristianBrüfferGeschreven door RemkoLodderVertaald door Het versleutelen van de wisselbestand ruimteswapencryptingHet versleutelen van de wisselbestand ruimte is gemakkelijk
met &os; te configureren.
Afhankelijk van welke versie er gebruikt wordt zijn er verschillende
configuratie opties en instellingen mogelijk. De &man.gbde.8; en
&man.geli.8; programma's kunnen gebruikt worden voor het versleutelen
van het wisselbestand. Beide systemen maken gebruik van het
encswap
rc.d script.De vorige sectie, Schijfpartities
versleutelen, biedt een korte discussie over de verschillende
versleutel systemen.Waarom moet het wisselbestand versleuteld worden?Net als met het versleutelen van harde schijven, wordt het
versleutelen van het wisselbestand gebruikt om gevoelige data
te beschermen. Stelt u eens een applicatie voor dat omgaat het
wachtwoorden. Zolang deze wachtwoorden in het fysieke geheugen
blijven is er niets aan de hand. Echter zodra deze verplaatst
worden naar het wisselbestand om ruimte te maken voor andere
applicaties, kan het gebeuren dat de wachtwoorden onbeschermd
op de harde schijf geschreven worden, waardoor het makkelijk
te achterhalen is voor iemand die kwaad wilt. Het versleutelen
van het wisselbestand biedt hierin een mogelijke uitkomst.VoorbereidingTot het einde van deze sectie zal ad0s1b
het wisselbestand bevatten.Tot op dit moment is het wisselbestand niet versleuteld. Het
is mogelijk dat er reeds wachtwoorden of andere gevoelige data
onbeschermd op de harde schijf geschreven zijn. Om dit te
corrigeren, moet de data op de swap partitie overschreven worden
met willekeurige data:&prompt.root; dd if=/dev/random of=/dev/ad0s1b bs=1mVersleutelen van het wisselbestand met &man.gbde.8;Er moet gebruik gemaakt worden van het .bde
achtervoegsel aan het apparaat in de respectievelijke
/etc/fstab-regel betreffende het
wisselbestand:# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b.bde none swap sw 0 0Versleutelen van het wisselbestand met &man.geli.8;Het opzetten van &man.geli.8; voor het versleutelen van het
wisselbestand is hetzelfde als dat van &man.gbde.8;. Hier moet
echter gebruik gemaakt worden van het .eli
achtervoegsel aan het apparaat in de respectievelijke
/etc/fstab wisselbestand regel:# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b.eli none swap sw 0 0&man.geli.8; maakt standaard gebruik van het AES
algoritme met een sleutellengte van 128 bits.Optioneel kunnen deze standaardwaarden worden aangepast door
gebruik te maken van de geli_swap_flags optie
in /etc/rc.conf. De volgende regel verteld
het encswap rc.d bestand om een &man.geli.8;
wisselbestand te maken met het Blowfish algoritme met een sleutel
lengte van 128 bit, een sectorgrootte van 4 kilobytes en met de
optie ontkoppelen nadat de laatste afsluiting
gezet:geli_swap_flags="-e blowfish -l 128 -s 4096 -d"Zie de uitleg over het onetime commando in
de &man.geli.8; handleiding voor een lijst van mogelijke opties.Controleren of het werktZodra het systeem opnieuw opgestart is kan gekeken worden
of alles nog goed werkt door gebruik te maken van het
swapinfo commando.Als gebruik gemaakt wordt van &man.gbde.8;:&prompt.user; swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b.bde 542720 0 542720 0%Als gebruik gemaakt wordt van &man.geli.8;:&prompt.user; swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b.eli 542720 0 542720 0%DanielGerzoBijgedragen door FreddieCashMet informatie van Pawel JakubDawidekMichael W.LucasViktorPeterssonHighly Available Storage (HAST)HASThoge beschikbaarheidOverzichtHoge beschikbaarheid is een van de hoofdzaken in serieuze zakelijke
toepassingen en hoog beschikbare opslag is een sleutelonderdeel in zulke
omgevingen. Hoog beschikbare opslag, of HASTHighly Available STorage, werd
ontwikkeld door &a.pjd; als een raamwerk dat transparante opslag van
dezelfde gegevens toestaat over fysiek gescheiden machines die verbonden
zijn door een TCP/IP-netwerk. HAST kan gezien worden
als een netwerkgebaseerde RAID1 (spiegel) en is vergelijkbaar met het
DRBD® opslagsysteem bekend van het GNU/&linux; platform. In
combinatie met andere eigenschappen voor hoge beschikbaarheid van &os;
zoals CARP maakt HAST het mogelijk
om een opslagcluster met hoge beschikbaarheid te bouwen dat resistent is
tegen falende hardware.Na het lezen van deze sectie weet u:Wat HAST is, hoe het werkt en welke
mogelijkheden het biedt.Hoe HAST op &os; te op te zetten en te
gebruiken.Hoe CARP en &man.devd.8; te integreren om een
robuust opslagsysteem te bouwen.Voor het lezen van deze sectie dient u:De beginselen van &unix; en &os; te begrijpen ().Te weten hoe de netwerkinterfaces en andere kerndeelsystemen van
&os; in te stellen ().Netwerken op &os; goed te begrijpen ().&os; 8.1-RELEASE of nieuwer te gebruiken.Het HAST-project werd gesponsord door The &os;
Foundation met ondersteuning van
OMCnet Internet Service GmbH en TransIP BV.Eigenschappen van HASTDe belangrijkste eigenschappen van HAST
zijn:Het kan gebruikt worden om I/O-fouten op lokale harde schijven
te maskeren.Agnostisch qua bestandssysteem, dus het werkt met elk
bestandssysteem dat door &os; wordt ondersteund.Efficiënte en snelle hersynchronisatie, alleen de blokken
die zijn veranderd toen een knooppunt uitstond worden
gesynchroniseerd.Het kan gebruikt worden in reeds uitgerolde omgevingen om
aanvullende redundantie toe te voegen.Samen met CARP,
Heartbeat of andere gereedschappen kan
het worden gebruikt om een robuust en duurzaam opslagsysteem te
bouwen.Werking van HASTOmdat HAST synchrone replicatie op blokniveau
van elk opslagmedium naar verscheidene machines biedt, heeft het
tenminste twee knooppunten (fysieke machines) nodig — het
primaire (ook bekend als meester)
knooppunt en het secundaire
(slaaf) knooppunt. Tezamen worden deze twee
machines een cluster genoemd.HAST is momenteel beperkt tot een totaal van twee
clusterknooppunten.Aangezien HAST in een primaire-secundaire
configuratie werkt, kan er op elk moment slechts één van
de clusterknooppunten actief zijn. Het primaire
knooppunt, ookwel actief, is degene die alle
I/O-verzoeken aan apparaten die door HAST worden
beheerd afhandelt. Het secundaire knooppunt wordt
dan automatisch gesynchroniseerd vanuit het primaire
knooppunt.De fysieke componenten van het HAST-systeem
zijn:lokale schijf (op primair knooppunt)schijf op verre machine (secundair knooppunt)HAST werkt synchroon op blokniveau, wat het
transparant maakt voor bestandssystemen en toepassingen.
HAST biedt reguliere GEOM-aanbieders aan in /dev/hast/ voor zowel andere
gereedschappen als toepassingen, er is dus geen verschil tussen het
gebruik van apparaten die door HAST worden geleverd
en rauwe schijven, partities, etc.Elke bewerking met betrekking tot schrijven, verwijderen of spoelen
wordt naar de plaatselijke schijf en over TCP/IP naar de verre schijf
gestuurd. Elke leesbewerking wordt gedaan door de plaatselijke schijf,
tenzij de plaatselijke schijf niet actueel is of er een I/O-fout
optreed. In zulke gevallen wordt de leesbewerking naar het secundaire
knooppunt gestuurd.Synchronisatie- en replicatiemodiHAST probeert om een snel herstel van fouten
te leveren. Om deze reden is het heel belangrijk om de
synchronisatietijd te verkorten nadat een knooppunt is hersteld van
een uitval. Om een snelle synchronisatie te leveren, beheert
HAST op de schijf een bitmap van gebruikte extents
en synchroniseert het die alleen tijdens een reguliere synchronisatie
(met uitzondering van de initiëe synchronisatie).Er zijn vele manieren om synchronisatie af te handelen.
HAST implementeert meerdere replicatiemodi om
verschillende synchronisatiemethodes af te handelen:memsync: rapporteer een schrijfbewerking
als voltooid wanneer de plaatselijke schrijfbewerking klaar is en
wanneer het verre knooppunt de gegevensaankomst bevestigt, maar
voordat het de gegevens daadwerkelijk heeft opgeslagen. De
gegevens op het verre knooppunt zullen meteen na het versturen van
de bevestiging worden opgeslagen. Deze modus is bedoeld om
latency te verminderen en nog steeds een zeer goede
betrouwbaarheid te bieden. De replicatiemodus
memsync is momenteel niet
geïmplementeerd.fullsync: rapporteer een schrijfbewerking
als voltooid wanneer zowel de plaatselijke en de verre
schrijfbewerking voltooid zijn. Dit is de veiligste en traagste
replicatiemodus. Dit is de standaardmodus.async: rapporteer de schrijfbewerking als
voltooid wanneer de plaatselijke schrijfbewerking klaar is. Dit
is de snelste en gevaarlijkste replicatiemodus. Het dient
gebruikt te worden wanneer er naar een ver knooppunt wordt
gerepliceerd en de latency te hoog is voor andere modi. De
replicatiemodus async is momenteel niet
geïmplementeerd.Momenteel wordt alleen de replicatiemodus
fullsync ondersteund.HAST-configuratieHAST heeft ondersteuning voor
GEOM_GATE nodig om te kunnen functioneren. De kernel
GENERIC bevat standaard geenGEOM_GATE, de laadbare module
geom_gate.ko is echter beschikbaar in de
standaardinstallatie van &os;. Zorg ervoor dat deze module beschikbaar
is voor afgeslankte systemen. Het is ook mogelijk om ondersteuning voor
GEOM_GATE statisch in de kernel te bouwen, door deze
regel aan het kernelconfiguratiebestand toe te voegen:options GEOM_GATEHet HAST-raamwerk bestaat vanuit het
besturingssysteem gezien uit verschillende delen:het daemon &man.hastd.8; dat verantwoordelijk is voor de
gegevenssynchronisatie,het beheerprogramma &man.hastctl.8; voor de gebruikers,het configuratiebestand &man.hast.conf.5;.Het volgende voorbeeld beschrijft hoe twee knooppunten in een
meester-slaaf /
primaire-secundaire opstelling te
configureren door HAST te gebruiken om de gegevens
tussen de twee te repliceren. De knooppunten worden
hasta met IP-adres
172.16.0.1 en
hastb met IP-adres
172.16.0.2 genoemd. Beide knooppunten hebben
een toegewijde harde schijf
/dev/ad6 van
dezelfde grootte om met HAST te werken. De
HAST-pool (soms ook een hulpbron genoemd, i.e., de
GEOM-aanbieder in /dev/hast/)
wordt test
genoemd.Het bestand /etc/hast.conf regelt de
configuratie van HAST. Dit bestand dient hetzelfde
te zijn op beide knooppunten. Het volgende is de eenvoudigste
configuratie die mogelijk is:resource test {
on hasta {
local /dev/ad6
remote 172.16.0.2
}
on hastb {
local /dev/ad6
remote 172.16.0.1
}
}Raadpleeg voor geavanceerdere configuraties de handleidingpagina
&man.hast.conf.5;.Het is ook mogelijk om hostnamen in de regels met
remote te gebruiken. Zorg er in dat geval voor dat
deze hosts vindbaar zijn, bijvoorbeeld doordat ze zijn gedefinieerd in
het bestand /etc/hosts of anders in het
plaatselijke DNS.Nu de configuratie op beide knooppunten aanwezig is, kan de
HAST-pool aangemaakt worden . Voer deze commando's
op beide knooppunten uit om de initiële metagegevens op de
plaatselijke schijf te plaatsen en het &man.hastd.8;-daemon te
starten:&prompt.root; hastctl create test
&prompt.root; /etc/rc.d/hastd onestartHet is niet mogelijk om GEOM-aanbieders met
een bestaand bestandssysteem te gebruiken (i.e., een bestaande opslag
omzetten naar een door HAST beheerde pool), omdat
deze procedure wat metagegevens op de aanbieder moet opslaan en er
daarvoor niet genoeg beschikbare ruimte is.De rol van een HAST-knooppunt (primair of
secundair) wordt uitgekozen door een beheerder of
software zoals Heartbeat dat het gereedschap
&man.hastctl.8; gebruikt. Voer het volgende commando uit op het
primaire knooppunt (
hasta):&prompt.root; hastctl role primary testVoer dit soortgelijke commando uit op het secundaire knooppunt (
hastb):&prompt.root; hastctl role secondary testDe situatie dat de knooppunten niet met elkaar kunnen
communiceren en beide geconfigureerd zijn als primaire knooppunten;
wordt split-brain genoemd. Volg de stappen zoals
beschreven in om deze situatie op te
lossen.Verifieer met het gereedschap &man.hastctl.8; het resultaat
op elk knooppunt:&prompt.root; hastctl status testDe belangrijke tekst is de regel met status dat
voor alle knooppunten complete dient te bevatten.
Als het degraded bevat, is er iets verkeerd gegaan.
Op dat moment is de synchronisatie tussen de knooppunten al begonnen.
De synchronisatie is compleet wanneer hastctl status
0 bytes aan dirty extents rapporteert.De volgende stap is het aanmaken van een bestandssysteem op de
GEOM-aanbieder
/dev/hast/test en
het aan te koppelen. Dit moet op het primaire
knooppunt gebeuren, aangezien
/dev/hast/test alleen
op het primaire knooppunt verschijnt. Het aanmaken
van het bestandssysteem kan afhankelijk van de grootte van de harde
schijf enkele minuten duren:&prompt.root; newfs -U /dev/hast/test
&prompt.root; mkdir /hast/test
&prompt.root; mount /dev/hast/test /hast/testWanneer het HAST-raamwerk correct is
geconfigureerd, betreft de laatste stap het ervoor zorgen dat
HAST automatisch tijdens het opstarten wordt gestart.
Voeg deze regel toe aan het bestand
/etc/rc.conf:hastd_enable="YES"Failover-configuratieHet doel van dit voorbeeld is om een robuust opslagsysteem te
bouwen dat resistent is tegen het falen van alle knooppunten. Het
scenario is dat een primair knooppunt van het
cluster faalt. Als dit gebeurt, dan neemt het
secundaire knooppunt het feilloos over, controleert
het het bestandssysteem en koppelt het het bestandssysteem aan, en
gaat het verder zonder dat er een bit aan gegevens ontbreekt.Om dit voor elkaar te krijgen, is er een andere eigenschap die
beschikbaar is op &os; dat voorziet in automatische failover van de
IP-laag — CARP.
CARP (Common Address Redundancy Protocol)
maakt het mogelijk dat meerdere hosts in hetzelfde netwerksegment
een IP-adres delen. Stel CARP in op beide
knooppunten van het cluster volgens de documentatie die beschikbaar is
in . Nadat de opzet voltooid is, heeft elk
knooppunt een eigen interface carp0 met een
gedeeld IP-adres 172.16.0.254. Het
primaire HAST-knooppunt van het
cluster moet het meester-CARP-knooppunt
zijn.De HAST-pool die in de vorige sectie is gemaakt
is nu klaar om geëxporteerd te worden naar de andere hosts op het
netwerk. Dit kan gedaan worden door het te exporteren over
NFS, Samba, etc., door
gebruik te maken van het gedeelde IP-adres
172.16.0.254. Het enige overgebleven
probleem is een automatische failover in het geval dat het primaire
knooppunt het begeeft.Als een CARP-interface aan- of uitgaat,
genereert &os; een &man.devd.8;-gebeurtenis, wat het mogelijk maakt om
toestandsveranderingen op de CARP-interfaces in de
gaten te houden. Een toestandsverandering op het
CARP-interface geeft aan dat een van de knooppunten
het begaf of weer online kwam. Deze toestandsveranderingen maken het
mogelijk om een script te draaien dat automatisch de HAST-failover
afhandelt.Voeg, om toestandsverandering op de
CARP-interfaces af te vangen, het volgende
toe aan het bestand
/etc/devd.conf op elk knooppunt:notify 30 {
match "system" "IFNET";
match "subsystem" "carp0";
match "type" "LINK_UP";
action "/usr/local/sbin/carp-hast-switch master";
};
notify 30 {
match "system" "IFNET";
match "subsystem" "carp0";
match "type" "LINK_DOWN";
action "/usr/local/sbin/carp-hast-switch slave";
};Herstart &man.devd.8; op beide knooppunten om de nieuwe
configuratie te laten gelden:&prompt.root; /etc/rc.d/devd restartAls het interface carp0 aan of uit gaat
(i.e., de toestand van het interface verandert), genereert het systeem
een notificatie wat het subsysteem &man.devd.8; in staat stelt om een
willekeurig script te draaien, in dit geval
/usr/local/sbin/carp-hast-switch. Dit is het
script dat de automatische failover afhandelt. Raadpleeg de
handleidingpagina &man.devd.conf.5; voor verdere uitleg over de
bovenstaande configuratie van &man.devd.8;.Dit zou een voorbeeld van zo'n script kunnen zijn:#!/bin/sh
# Origineel script door Freddie Cash <fjwcash@gmail.com>
# Gewijzigd door Michael W. Lucas <mwlucas@BlackHelicopters.org>
# en Viktor Petersson <vpetersson@wireload.net>
# De namen van de HAST-hulpbronnen, zoals vermeld in /etc/hast.conf
resources="test"
# vertraging voor het aankoppelen van de HAST-hulpbron na het worden van meester
# doe een gok
delay=3
# logging
log="local0.debug"
name="carp-hast"
# einde van gebruiker-instelbare dingen
case "$1" in
master)
logger -p $log -t $name "Omschakelen naar primaire aanbieder voor ${resources}."
sleep ${delay}
# Wacht totdat de "hastd secondary" processen zijn gestopt
for disk in ${resources}; do
while $( pgrep -lf "hastd: ${disk} \(secondary\)" > /dev/null 2>&1 ); do
sleep 1
done
# Verwissel de rol voor elke schijf
hastctl role primary ${disk}
if [ $? -ne 0 ]; then
logger -p $log -t $name "Omschakelen van rol naar primair voor hulpbron ${disk} mislukt."
exit 1
fi
done
# Wacht totdat de apparaten /dev/hast/* verschijnen
for disk in ${resources}; do
for I in $( jot 60 ); do
[ -c "/dev/hast/${disk}" ] && break
sleep 0.5
done
if [ ! -c "/dev/hast/${disk}" ]; then
logger -p $log -t $name "GEOM-aanbieder /dev/hast/${disk} is niet verschenen."
exit 1
fi
done
logger -p $log -t $name "Rollen van HAST-hulpbronnen ${resources} omgeschakeld naar primair."
logger -p $log -t $name "Schijven aankoppelen."
for disk in ${resources}; do
mkdir -p /hast/${disk}
fsck -p -y -t ufs /dev/hast/${disk}
mount /dev/hast/${disk} /hast/${disk}
done
;;
slave)
logger -p $log -t $name "Omschakelen naar secundaire aanbieder voor ${resources}."
# Schakel de rollen van de HAST-hulpbronnen om
for disk in ${resources}; do
if ! mount | grep -q "^/dev/hast/${disk} on "
then
else
umount -f /hast/${disk}
fi
sleep $delay
hastctl role secondary ${disk} 2>&1
if [ $? -ne 0 ]; then
logger -p $log -t $name "Omschakelen van rol naar secundair voor hulpbron ${disk} mislukt."
exit 1
fi
logger -p $log -t $name "Rol van hulpbron ${disk} omgeschakeld naar secundair."
done
;;
esacIn een notendop neemt het script deze acties wanneer een knooppunt
meester / primair wordt:De HAST-pools opwaarderen naar primair op
een gegeven knooppunt.Het bestandssysteem onder de HAST-pool
controleren.De pools op een juiste plaats aankoppelen.Wanneer een knooppunt back-up /
secundair wordt:De HAST-pools afkoppelen.De HAST-pools degraderen naar
secundair.Houd in gedachte dat dit slechts een voorbeeldscript is om aan
te tonen dat alles werkt. Het behandeld niet alle mogelijke
situaties en kan op elke manier worden uitgebreid of veranderd, het
kan bijvoorbeeld benodigde diensten starten en stoppen.Voor dit voorbeeld hebben we een standaard UFS-bestandssysteem
gebruikt. Om de tijd die nodig is voor herstel te verkorten, kan
een bestandssysteem met UFS-journalling of ZFS worden
gebruikt.Meer gedetailleerde informatie met aanvullende voorbeelden kunnen
gevonden worden op de HAST Wiki-pagina.Problemen oplossenAlgemene tips om problemen op te lossenHAST zou over het algemeen zonder problemen
moeten werken. Net als met elk ander software-product zijn er
momenten waarop het anders werkt dan het zou moeten. De oorzaken van
de problemen kunnen verschillen, maar de vuistregel is om ervoor te
zorgen dat de klokken zijn gesynchroniseerd op alle knooppunten in het
cluster.Wanneer problemen met HAST worden verholpen,
dient het debug-niveau van &man.hastd.8; verhoogd te worden door het
daemon &man.hastd.8; met het argument -d op te
starten. Merk op dat dit argument meerdere malen kan worden opgegeven
om het debug-niveau nog verder op te hogen. Op deze manier kan veel
nuttige informatie worden vergaard. Overweeg ook om het argument
-F te gebruiken, dat het daemon &man.hastd.8; in
de voorgrond zal starten.Herstellen van de Split-brain-conditieSplit-brain treedt op waneer de knooppunten van
het cluster niet met elkaar kunnen communiceren, en beide als primair
zijn geconfigureerd. Dit is een gevaarlijke situatie omdat het beide
knooppunten in staat stelt om incompatibele veranderingen aan de
gegevens te maken. Dit probleem dient handmatig door de
systeembeheerder te worden gecorrigeerd.De beheerder moet besluiten welk knooppunt de belangrijkere
veranderingen bevat (of ze handmatig samenvoegen) en
HAST een volledige synchronisatie op het knooppunt
dat de kapotte gegevens heeft laten uitvoeren. Voer hiervoor deze
commando's uit op het knooppunt dat opnieuw gesynchroniseerd moet
worden:&prompt.root; hastctl role init <resource>
&prompt.root; hastctl create <resource>
&prompt.root; hastctl role secondary <resource>
Index: translations/nl_NL.ISO8859-1/books/handbook/dtrace/chapter.xml
===================================================================
--- translations/nl_NL.ISO8859-1/books/handbook/dtrace/chapter.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/handbook/dtrace/chapter.xml (revision 40367)
@@ -1,413 +1,413 @@
TomRhodesGeschreven door RenéLadanVertaald door &dtrace;Overzicht&dtrace;&dtrace;-ondersteuning&dtrace;&dtrace;, ook bekend als Dynamic Tracing, was ontwikkeld door
&sun; als een gereedschap om prestatie-bottlenecks in productie-
en preproductiesystemen op te sporen. Het is in geen enkel opzicht
een debug-gereedschap, maar een gereedschap voor real-time analyse
om prestatie- en andere zaken op te sporen.&dtrace; is een opmerkelijk profileringsgereedschap, met een
indrukwekkende verzameling mogelijkheden om systeemzaken te
diagnosticeren. Het kan ook worden gebruikt om vooraf geschreven
scripts te draaien om zo voordeel te halen uit de mogelijkheden.
Gebruikers kunnen zelfs hun eigen middelen schrijven door gebruik
te maken van de &dtrace; D Language, wat ze in staat stelt om hun
profilering aan te passen aan hun specifieke behoeften.Na het lezen van dit hoofdstuk weet u:Wat &dtrace; is en welke mogelijkheden het biedt.De verschillen tussen de &dtrace;-implementatie van
&solaris; en degene die door &os; wordt aangeboden.Hoe &dtrace; op &os; aan te zetten en te gebruiken.Voordat u dit hoofdstuk leest, dient u:De beginselen van &unix; en &os; te begrijpen
().Bekend te zijn met de beginselen van kernelconfiguratie en
-compilatie ().Wat bekendheid te hebben met beveiliging en hoe het zich
verhoudt tot &os; ().Te begrijpen hoe de broncode van &os; te verkrijgen en te
herbouwen ().Deze mogelijkheid wordt als experimenteel beschouwd. Van
sommige opties kan er functionaliteit ontbreken, andere delen
kunnen in het geheel niet werken. In de loop der tijd zal deze
mogelijkheid als productierijp worden beschouwd en zal deze
documentatie worden aangepast om die situatie te
representeren.ImplementatieverschillenHoewel &dtrace; in &os; erg lijkt op degene die in &solaris;
zit, zijn er verschillen die uitgelegd moeten worden voordat er
verder wordt gegaan. Het primaire verschil dat gebruikers zullen
zien is dat &dtrace; specifiek moet worden aangezet op &os;. Er
zijn kernelopties en modulen die aangezet moeten worden om
&dtrace; juist te laten werken. Deze zullen later worden
uitgelegd.Er is een kerneloptie DDB_CTF die gebruikt
wordt om ondersteuning voor het laden van
CTF-gegevens van kernelmodulen en de kernel
zelf. CTF is het Compact C Type Format van
&solaris; welke een beperkte vorm van debuginformatie bevat
die vergelijkbaar is met DWARF en de befaamde
stabs. Deze CTF-gegevens worden door de
bouwmiddelen ctfconvert en
ctfmerge aan de binairen toegevoegd. Het
hulpmiddel ctfconvert parseert
DWARF ELF-debug-secties die
door de compiler zijn aangemaakt en ctfmerge
voegt CTF ELF-secties van
objecten samen in hun executables of gedeelde bibliotheken. Meer
informatie over hoe dit voor de bouw van de kernel en &os; aan te
zetten komt eraan.Sommige aanbieders voor &os; verschillen van die voor
&solaris;. De meest opmerkelijke is de aanbieder
dtmalloc, welke het volgen van
malloc() op soort in de &os;-kernel
toestaat.Alleen root mag &dtrace; op &os;
gebruiken. Dit heeft te maken met beveiligingsverschillen,
&solaris; heeft enkele beveiligingscontroles op laag niveau die
nog niet bestaan in &os;. Hierom is
/dev/dtrace/dtrace strikt beperkt tot
root.Tenslotte valt de &dtrace;-software onder de
CDDL-licentie van &sun;. De Common
Development and Distribution License wordt bij &os;
geleverd, zie
/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE
of bekijk het online op
.Deze licentie houdt in dat een &os;-kernel met de
&dtrace;-opties nog steeds onder de
BSD-licentie valt; de CDDL
komt echter op de proppen wanneer de modulen in binaire vorm
worden verspreid, of wanneer de binairen zijn geladen.Ondersteuning voor &dtrace; aanzettenVoeg de volgende regels toe aan het kernelinstellingenbestand
om ondersteuning voor &dtrace; aan te zetten:options KDTRACE_HOOKS
options DDB_CTFGebruikers van de AMD64-architectuur zullen de volgende
regel aan hun kernelinstellingenbestand willen toevoegen:options KDTRACE_FRAMEDeze optie biedt ondersteuning voor de mogelijkheid
FBT. &dtrace; zal zonder deze optie werken;
er zal echter beperkte ondersteuning zijn voor het volgen van
functiegrenzen.Alle broncode moet herbouwd en geherinstalleerd worden met de
CTF-opties. Om deze taak te volbrengen, wordt
de &os;-broncode herbouwd met:&prompt.root; cd /usr/src
&prompt.root; make WITH_CTF=1 kernelHet systeem moet opnieuw gestart worden.Nadat opnieuw is opgestart en de nieuwe kernel in het geheugen
is geladen, dient ondersteuning voor de Korn-shell te worden
toegevoegd. Dit is nodig omdat de verschillende hulpmiddelen van
- &dtrace; in ksh zijn geschreven. Installeer
+ &dtrace;Toolkit in ksh zijn geschreven. Installeer
shells/ksh93. Het is ook
mogelijk om deze hulpmiddelen in shells/pdksh of shells/mksh te draaien.
- Als laatste dient de huidige &dtrace;-gereedschapskist
- verkregen te worden. De huidige versie is beschikbaar op .
- Het bevat een installatiemechanisme; om gebruik te maken van de
- bijgeleverde hulpmiddelen is installatie echter niet nodig.
+ Als laatste dient de huidige &dtrace;Toolkit verkregen te worden.
+ Indien u &os; 10 draait, vindt u de &dtrace;Toolkit in
+ /usr/share/dtrace. In andere gevallen kunt u de
+ &dtrace;Toolkit installeren via de port sysutils/DTraceToolkit.&dtrace; gebruikenVoordat er gebruik wordt gemaakt van de functionaliteit van
&dtrace;, moet het &dtrace;-apparaat bestaan. Geef het volgende
commando om het apparaat te laten:&prompt.root; kldload dtraceallOndersteuning van &dtrace; zou nu beschikbaar moeten zijn. De
beheerder kan het volgende commando uitvoeren om alle sondes te
bekijken:&prompt.root; dtrace -l | moreAlle uitvoer wordt aan het hulpmiddel more
doorgegeven omdat het snel de schermbuffer zal laten overstromen.
&dtrace; kan nu als werkend worden beschouwd. Het is nu tijd om
de gereedschapskist te bekijken.De gereedschapskist is een verzameling van kant-en-klare
scripts die met &dtrace; gedraaid kunnen worden om informatie over
het systeem te verzamelen. Er zijn scripts om open bestanden,
geheugen, CPU-gebruik, en nog veel meer te
controleren. Pak de scripts uit met het volgende commando:&prompt.root; gunzip -c DTraceToolkit* | tar xvf -Ga naar die map met cd en zet de
uitvoerpermissies voor alle bestanden waarvan de naam uit kleine
letters bestaat, op 755.De inhoud van al deze scripts moet veranderd worden. Degenen
die naar /usr/bin/ksh verwijzen dienen naar
/usr/local/bin/ksh te verwijzen, de anderen
die /usr/bin/sh gebruiken dienen gewijzigd te
worden om /bin/sh te gebruiken, en tenslotte
dienen degenen die /usr/bin/perl gebruiken
veranderd te worden om /usr/local/bin/perl te
gebruiken.Op dit moment is het voorzichtig om de lezer eraan te
herinneren dat de ondersteuning voor &dtrace; in &os;
niet compleet en
experimenteel is. Veel van deze scripts
zullen niet werken omdat ze of te &solaris;-specifiek zijn of
omdat ze sondes gebruiken die momenteel niet ondersteund
worden.Op het moment van schrijven worden slechts twee scripts van de
&dtrace; Toolkit volledig ondersteund in &os;: de scripts
hotkernel en
procsystime. Dit zijn de twee die we in de
volgende gedeelten van deze sectie zullen bekijken.De hotkernel is ontworpen om te
identificeren welke functie de meeste kerneltijd gebruikt. Als
het normaal gedraaid wordt, zal het uitvoer die op de volgende
lijkt produceren:
- &prompt.root; ./hotkernel
+ &prompt.root; cd /usr/share/dtrace/toolkit
+&prompt.root; ./hotkernel
Sampling... Hit Ctrl-C to end.De systeembeheerder moet de toetsencombinatie CtrlC
gebruiken om het proces te stoppen. Nadat het gestopt is, zal het
script een lijst van kernelfuncties en timinginformatie weergeven,
waarbij de uitvoer in volgorde van toenemende tijd is
gesorteerd:kernel`_thread_lock_flags 2 0.0%
0xc1097063 2 0.0%
kernel`sched_userret 2 0.0%
kernel`kern_select 2 0.0%
kernel`generic_copyin 3 0.0%
kernel`_mtx_assert 3 0.0%
kernel`vm_fault 3 0.0%
kernel`sopoll_generic 3 0.0%
kernel`fixup_filename 4 0.0%
kernel`_isitmyx 4 0.0%
kernel`find_instance 4 0.0%
kernel`_mtx_unlock_flags 5 0.0%
kernel`syscall 5 0.0%
kernel`DELAY 5 0.0%
0xc108a253 6 0.0%
kernel`witness_lock 7 0.0%
kernel`read_aux_data_no_wait 7 0.0%
kernel`Xint0x80_syscall 7 0.0%
kernel`witness_checkorder 7 0.0%
kernel`sse2_pagezero 8 0.0%
kernel`strncmp 9 0.0%
kernel`spinlock_exit 10 0.0%
kernel`_mtx_lock_flags 11 0.0%
kernel`witness_unlock 15 0.0%
kernel`sched_idletd 137 0.3%
0xc10981a5 42139 99.3%Het script werkt ook met kernelmodules. Draai het script met
de vlag om deze mogelijkheid te
gebruiken:&prompt.root; ./hotkernel -m
Sampling... Hit Ctrl-C to end.
^C
MODULE COUNT PCNT
0xc107882e 1 0.0%
0xc10e6aa4 1 0.0%
0xc1076983 1 0.0%
0xc109708a 1 0.0%
0xc1075a5d 1 0.0%
0xc1077325 1 0.0%
0xc108a245 1 0.0%
0xc107730d 1 0.0%
0xc1097063 2 0.0%
0xc108a253 73 0.0%
kernel 874 0.4%
0xc10981a5 213781 99.6%Het script procsystime vangt en beeldt
het tijdsgebruik van systeemaanroepen af voor een gegeven
PID of procesnaam. In het volgende voorbeeld
wordt er een nieuwe instantie van /bin/csh
gedraaid. Het procsystime werd uitgevoerd en
bleef wachten terwijl er enkele commando's op de andere instantie
van csh werden getypt. Dit zijn de resultaten
van deze test:&prompt.root; ./procsystime -n csh
Tracing... Hit Ctrl-C to end...
^C
Elapsed Times for processes csh,
SYSCALL TIME (ns)
getpid 6131
sigreturn 8121
close 19127
fcntl 19959
dup 26955
setpgid 28070
stat 31899
setitimer 40938
wait4 62717
sigaction 67372
sigprocmask 119091
gettimeofday 183710
write 263242
execve 492547
ioctl 770073
vfork 3258923
sigsuspend 6985124
read 3988049784Zoals te zien is, lijkt de systeemaanroep
read() de meeste tijd in nanoseconden te
gebruiken en gebruikte de systeemaanroep
getpid() de minste hoeveelheid tijd.De taal DDe &dtrace;-gereedschapskist bevat vele scripts in de speciale
taal van &dtrace;. Deze taal wordt de taal D
genoemd door de documentatie van &sun;, en lijkt sterk op C++.
Een diepgaande discussie over de taal valt buiten het bereik van
dit document. Het wordt uitgebreid behandeld op .
Index: translations/nl_NL.ISO8859-1/books/handbook/eresources/chapter.xml
===================================================================
--- translations/nl_NL.ISO8859-1/books/handbook/eresources/chapter.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/handbook/eresources/chapter.xml (revision 40367)
@@ -1,2368 +1,2375 @@
Bronnen op InternetDoor de snelle ontwikkeling van &os; zijn gedrukte media niet zo
praktisch om de laatste ontwikkelingen te volgen. Elektronische
bronnen zijn de beste, en vaak de enige, om op de hoogte te blijven
van de laatste ontwikkelingen. Omdat &os; draait op de inzet van
vrijwilligers, is de gebruikersgemeenschap vaak een soort
technische ondersteuningsgroep, die heeft ontdekt dat
email, webfora, en USENET de meeste effectieve manieren zijn om de
gebruikersgemeenschap te bereiken.Hieronder staan de meest belangrijke contactmogelijkheden met de
&os; gebruikersgemeenschap beschreven. Mochten er andere bronnen
zijn die hier niet beschreven zijn, laat die dan weten aan de
&a.doc;, zodat ze hier ook beschreven kunnen worden.MailinglijstenDe mailinglijsten zijn de meest directe manier om vragen te
stellen aan of een technische discussie te beginnen met een
geconcentreerd &os;-publiek. Er is een grote verscheidenheid aan
lijsten met betrekking tot verschillende &os;-onderwerpen. Door
uw vragen aan de meest geschikte mailinglijst te stellen bent u
ongetwijfeld verzekerd van een sneller en accurater
antwoord.De doelstellingen van de verschillende lijsten staan onderaan
dit document. Lees alstublieft de doelstellingen
alvorens lid te worden of mail te sturen. De meeste
leden ontvangen tegenwoordig vaak honderden &os;-gerelateerde
berichten per dag, en door de doelstellingen en gebruiksregels op
te stellen wordt gestreefd om zo min mogelijk ruis op de lijn te
krijgen. Door de voorgaande adviezen te negeren zouden de
mailinglijsten op termijn falen als een effectief
communicatiemedium over het project.Als u wilt testen of u naar de &os; lijsten email
kunt versturen, stuur dan een bericht naar
&a.test.name;. Stuur alstublieft geen testberichten
naar andere lijsten.Bij twijfel over naar welke lijst te posten, kan de pagina
Hoe de beste
resultaten uit de &os;-vragen mailinglijst te halen
wellicht helpen.Alvorens naar enige lijst te posten, is het verstandig te
leren hoe de mailinglijsten het beste gebruikt kunnen worden. Hoe
bijvoorbeeld zich vaak herhalende discussies voorkomen kunnen
worden door het document Veel Gestelde
Mailinglijstvragen (FAQ) te lezen.Voor alle mailinglijsten worden archieven bijgehouden die
doorzocht kunnen worden op de &os; World Wide Web
server. De met sleutelwoorden te doorzoeken archieven
bieden een voortreffelijke methode om antwoorden te vinden op vaak
gestelde vragen en horen geraadpleegd te worden voordat er vragen
op een lijst worden gesteld. Merk op dat dit ook betekent dat
berichten die naar de mailinglijsten van &os; worden verzonden tot
in de oneindigheid worden gearchiveerd. Overweeg, wanneer het
beschermen van privacy belangrijk is, om een tweede emailadres dat
weggegooid kan worden te gebruiken en om alleen publieke
informatie te posten.LijstsamenvattingAlgemene lijsten: De volgende zijn
algemene lijsten waarop vrijelijk (en aangemoedigd) geabonneerd
kan worden:LijstDoel&a.advocacy.name;&os; Evangelisatie&a.announce.name;Belangrijke gebeurtenissen en projectdoelen&a.arch.name;Architectuur en ontwerp discussies&a.bugbusters.name;Discussie over het onderhoud van de &os;
probleemrapportendatabase en aanverwante zaken&a.bugs.name;Bugbeschrijvingen&a.chat.name;Niet-technische onderwerpen met betrekking tot de
&os;-gemeenschap&a.chromium.name;&os; specifieke Chromium problemen&a.current.name;Discussie over het gebruik van &os.current;&a.isp.name;Zaken voor Internet Service Providers die &os;
gebruiken&a.jobs.name;Werk en mogelijkheden voor het geven van advies met
betrekking tot &os;&a.questions.name;Gebruikersvragen en technische ondersteuning&a.security-notifications.name;Beveiligingswaarschuwingen&a.stable.name;Discussies over het gebruik van &os.stable;&a.test.name;Hier kunnen testberichten heengestuurd worden in
plaats van naar de eigenlijke lijstenTechnische lijsten: De volgende lijsten
zijn voor technische discussie. Het is van belang de
doelstellingen te lezen alvorens lid te worden of mail te sturen
omdat de richlijnen voor het gebruik en de inhoud erg strikt
zijn.LijstDoel&a.acpi.name;Ontwikkeling van ACPI en energiebeheer&a.afs.name;Porten van AFS naar &os;&a.aic7xxx.name;Ontwikkeling van stuurprogramma's voor de &adaptec;
AIC 7xxx&a.amd64.name;Porten van &os; naar AMD64-systemen&a.apache.name;Discussie over ports met betrekking tot
Apache&a.arm.name;Porten van &os; naar &arm;-processors&a.atm.name;Het gebruik van ATM-netwerken met &os;&a.bluetooth.name;&bluetooth; technologie gebruiken in &os;&a.cluster.name;&os; gebruiken in een geclusterde omgeving&a.cvsweb.name;CVSweb onderhoud&a.database.name;Discussie over het gebruik en de ontwikkeling van
databases met &os;&a.desktop.name;&os; gebruiken op en verbeteren voor bureaubladen&a.doc.name;Het maken van &os;-gerelateerde documenten&a.drivers.name;Apparaatstuurprogramma's schrijven voor &os;&a.eclipse.name;Gebruikers van Eclipse IDE, hulpprogramma's,
cliëntapplicaties en ports&a.eol.name;Ondersteuning voor &os;-gerelateerde software welke
niet langer ondersteund worden door het &os;-project.&a.embedded.name;&os; gebruiken in embedded applicaties.&a.emulation.name;Emulatie van andere systemen zoals &linux;,
&ms-dos;, en &windows;&a.firewire.name;&os; &firewire; (iLink, IEEE 1394) technische
discussie&a.fs.name;Bestandssystemen&a.gecko.name;Discussies over de Gecko Rendering
Engine&a.geom.name;GEOM-specifieke discussies en implementaties&a.gnome.name;Porten van GNOME en
GNOME applicaties&a.hackers.name;Algemene technische discussies&a.hardware.name;Algemene discussies over hardware voor het draaien
van &os;&a.i18n.name;&os; Internationalisatie&a.ia32.name;&os; op het IA-32 (&intel; x86) platform&a.ia64.name;Porten van &os; naar &intel;'s IA64 systemen
+ &a.infiniband.name;
+
+ Infiniband op &os;
+
+
+ &a.ipfw.name;Technische discussie over het herontwerp van de
IP-firewallcode&a.isdn.name;ISDN-ontwikkelaars&a.jail.name;Discussies over de &man.jail.8;-faciliteiten.&a.java.name;&java; ontwikkelaars en mensen die &jdk;s porten
naar &os;&a.kde.name;Porten van KDE en
KDE applicaties&a.lfs.name;Porten van LFS naar &os;&a.mips.name;Porten van &os; naar &mips;&a.mobile.name;Discussie over mobiel computeren&a.mono.name;Mono en C# applicaties op &os;&a.mozilla.name;Porten van Mozilla naar
&os;&a.multimedia.name;Multimedia-applicaties&a.newbus.name;Technische discussies over busarchitecturen&a.net.name;Discussies over netwerken en TCP/IP-broncode&a.numerics.name;Discussies over implementaties van hoge kwaliteit van
functies in libm&a.office.name;Kantoortoepassingen op &os;&a.performance.name;Optimalisatie van prestaties voor installaties met
hoge prestaties en/of load&a.perl.name;Onderhoud van een aantal ports met betrekking tot
Perl&a.pf.name;Discussies en vragen voor het pakketfilter
firewallsysteem&a.platforms.name;Ports naar niet &intel;-architectuurplatformen&a.ports.name;Discussie over de Portscollectie&a.ports-announce.name;Belangrijk nieuws en belangrijke instructies over de
Portscollectie&a.ports-bugs.name;Discussie over bugs in ports en PR's&a.ppc.name;Porten van &os; naar de &powerpc;&a.proliant.name;Technische discussie over &os; op HP Proliant
serverplatforms&a.python.name;&os;-specifieke zaken over Python&a.realtime.name;Ontwikkeling van realtime-uitbreidingen voor
&os;&a.rc.name;Discussie over het
rc.d-systeem en de ontwikkeling
daarvan&a.ruby.name;&os;-specifieke discussies over Ruby&a.scsi.name;Het SCSI-subsysteem&a.security.name;Beveiligingsonderwerpen betreffende &os;&a.small.name;&os; gebruiken in embedded toepassingen, verouderd,
gebruik in plaats hiervan &a.embedded.name;&a.sparc.name;Porten van &os; naar op &sparc; gebaseerde
systemen&a.standards.name;Volgen van de C99- en de &posix; standaarden door
&os;&a.sysinstall.name;Ontwikkeling van &man.sysinstall.8;
+ &a.tcltk.name;
+
+ &os;-specifieke discussies over Tcl/Tk
+
+
+ &a.threads.name;Threading in &os;&a.tilera.name;&os; porteren naar de Tilera CPU-familie&a.tokenring.name;Ondersteuning voor Token Ring in &os;&a.toolchain.name;Onderhoud van de ingebouwde toolchain van &os;&a.usb.name;Discussie over &os;-ondersteuning voor USB&a.virtualization.name;Discussies over verscheidene
virtualisatietechnieken ondersteund door &os;&a.vuxml.name;Discussie over VuXML-infrastructuur&a.x11.name;Onderhoud en ondersteuning voor X11 op &os;&a.xen.name;Discussies over het overbrengen van &os; naar &xen;
— implementatie en gebruik&a.xfce.name;Overbrengen en onderhouden van
XFCE voor &os;&a.zope.name;Zope voor &os; —
overbrengen en onderhoudenBeperkte lijsten: De volgende lijsten
zijn voor meer gespecialiseerd publiek en algemene gebruikers
hebben er waarschijnlijk niets aan. Het is verstandig om eerst
naam te maken in de technische lijsten alvorens lid te worden
van een van de onderstaande beperkte lijsten, zodat de gebruiken
op die lijst bekend zijn.LijstDoel&a.hubs.name;Mensen die mirrorsites draaien (infrastructurele
ondersteuning)&a.usergroups.name;Gebruikersgroepcoördinatie&a.vendors.name;Coördinatie van vooruitgaven met
wederverkopers&a.wip-status.name;&os; Werk-In-Uitvoering status&a.wireless.name;Discussies over de ontwikkeling van de 802.11-stack,
gereedschappen en stuurprogramma's.&a.www.name;Beheerders van www.FreeBSD.orgVerkorte versie van lijsten (digest):
Alle hierboven beschreven lijsten zijn beschikbaar in verkorte
vorm. Na het lid worden van een lijst zijn de digest opties te
wijzigen bij de accountopties.SVN-lijsten: De volgende
lijsten zijn voor mensen met interesse in het zien van
logboekberichten voor wijzigingen in verschillende onderdelen
van de broncodeboom. Het zijn
Alleen-lezen-lijsten waar geen email heen
gezonden hoort te worden.LijstBroncodegebiedBroncodebeschrijving&a.svn-doc-all.name;/usr/docAlle wijzigingen aan het doc-Subversion-reservoir (behalve
user, projects en
translations)&a.svn-doc-head.name;/usr/docAlle wijzigingen aan de tak head van het
doc-Subversion-reservoir&a.svn-doc-projects.name;/usr/doc/projectsAlle wijzigingen in het projects-gebied van het
doc-Subversion-reservoir&a.svn-doc-svnadmin.name;/usr/docAlle wijzigingen aan de administratieve scripts, haken en
andere configuratiegegevens van het
doc-Subversion-reservoir&a.svn-ports-all.name;/usr/portsAlle wijzigingen aan het ports-Subversion-reservoir&a.svn-ports-head.name;/usr/portsAlle wijzigingen aan de tak head van het
ports-Subversion-reservoir&a.svn-ports-svnadmin.name;/usr/portsAlle wijzigingen aan de administratieve scripts, haken en
andere configuratiegegevens van het
ports-Subversion-reservoir&a.svn-src-all.name;/usr/srcAlle wijzigingen in het src-Subversion-repository
(behalve user en
projects)&a.svn-src-head.name;/usr/srcAlle wijzigingen aan de head-tak van
het src-Subversion-repository (de tak &os;-CURRENT)&a.svn-src-projects.name;/usr/projectsAlle wijzigingen aan het gebied
projects van het
src-Subversion-repository&a.svn-src-release.name;/usr/srcAlle veranderingen aan het gebied
releases van het
src-Subversion-repository&a.svn-src-releng.name;/usr/srcAlle veranderingen aan de takken
releng van het
src-Subversion-repository (de beveiligings- /
uitgavetakken)&a.svn-src-stable.name;/usr/srcAlle veranderingen aan alle stable-takken van het
src-Subversion-repository&a.svn-src-stable-6.name;/usr/srcAlle veranderingen aan de
stable/6-tak van het
src-Subversion-repository&a.svn-src-stable-7.name;/usr/srcAlle veranderingen aan de
stable/7-tak van het
src-Subversion-repository&a.svn-src-stable-8.name;/usr/srcAlle veranderingen aan de
stable/8-tak van het
src-Subversion-repository&a.svn-src-stable-9.name;/usr/srcAlle veranderingen aan de
stable/9-tak van het
src-Subversion-repository&a.svn-src-stable-other.name;/usr/srcAlle veranderingen aan de oudere
stable-takken van het
src-Subversion-repository&a.svn-src-svnadmin.name;/usr/srcAlle veranderingen aan de administratieve scripts,
haken, en andere configuratiegegevens van het
src-Subversion-repository&a.svn-src-user.name;/usr/srcAlle veranderingen aan het experimentele gebied
user van het
src-Subversion-repository&a.svn-src-vendor.name;/usr/srcAlle wijzigingen aan het verkoperswerkgebied van
het src-Subversion-repositoryHoe abonnerenOm te abonneren op een lijst kan geklikt worden op de naam
van de lijst hierboven of kan op &a.mailman.lists.link; geklikt
worden op de lijst waarin interesse bestaat. De pagina waarop
de lijsten staan beschreven bevat alle informatie die nodig is
om te abonneren.Om te posten op een lijst kan een email gestuurd worden naar
lijstnaam@FreeBSD.org.
Daarna wordt die doorgestuurd aan leden van de lijst in de hele
wereld.Om het abonnement op een lijst op te zeggen kan op de URL
die onderaan iedere email van een lijst staat geklikt worden.
Het is ook mogelijk om een email te sturen naar
lijstnaam-unsubscribe@FreeBSD.org
om een abonnement op te zeggen.Hierbij nogmaals het advies om discussies op de technische
mailinglijsten technisch te houden. Als er alleen interesse
bestaat in belangrijke mededelingen dan wordt aangeraden te
abonnneren op &a.announce;, waarop zelden verkeer
voorkomt.LijstdoelstellingenAlle &os;-mailinglijsten hebben eigen
regels waaraan voldaan dient te worden bij gebruik. Als daaraan
niet wordt voldaan, resulteert dat in maximaal twee (2)
schriftelijke waarschuwingen van de &os; Postmaster
postmaster@FreeBSD.org, waarna na de derde
overtreding de poster verwijderd wordt van alle
&os;-mailinglijsten en alle toekomstige mail van het adres van
de verzender wordt uitgefilterd. Helaas zijn deze regels nodig,
omdat het Internet van vandaag de dag een onvriendelijke
omgeving is en slechts weinigen zich bewust zijn van hoe fragiel
sommige mechanismen zijn.Standaardregels:Het onderwerp van iedere mail dient te voldoen aan de
basisdoelstellingen van de lijst waarnaar wordt gepost. Als
de lijst bijvoorbeeld over technische onderwerpen gaat, dan
hoort een post ook over iets technisch te gaan. Ruis en
flaming doen alleen af aan de waarde van een mailinglijst
voor alle leden en dat wordt niet getolereerd. Voor vrije
discussie dient de &a.chat; gebruikt te worden die daar
speciaal voor is ingesteld.Bijdragen horen niet naar meer dan twee mailinglijsten
verzonden te worden en alleen dan naar twee als het helder
en duidelijk is dat daarvoor de noodzaak bestaat. Voor de
meeste lijsten bestaat er al veel overlap in de leden en
met uitzondering van de meer esoterische lijsten, zoals
bijvoorbeeld -stable & -scsi, is er
eigenlijk slechts zelden aanleiding om naar meer dan een
lijst te posten. Als een bericht zo is verzonden dat er
meerdere mailinglijsten op de regel Cc
staan, dan hoort de regel Cc weer
ingekort te worden in een eventueel antwoord. De
verzender is verantwoordelijk voor zijn eigen kruisposten,
wie ook een eerdere zender was.Persoonlijke aanvallen en profane taal (in de context
van een geschil) zijn niet toegestaan. Dit geldt zowel voor
gebruikers als ontwikkelaars. Grove schending van de
netiquette, zoals kopiëren uit of het volledig
doorsturen van persoonlijke email zonder dat daarvoor
toestemming is gegeven, wordt niet op prijs gesteld. Er
zijn hoe dan ook zeer weinig gevallen waarin zoiets
dergelijks wel binnen de doelstelling van een lijst valt,
waardoor dat soort emails op grond van de inhoud alleen al
vaak reden zijn voor een waarschuwing (of ban).Adverteren voor niet-&os;-gerelateerde producten is
streng verboden en heeft direct een ban tot gevolg als
helder is dat de overtreder adverteert door middel van
spam.Individuele lijstdoelstellingen:&a.acpi.name;ACPI en
energiebeheerontwikkeling&a.afs.name;Andrew Bestandssysteem (Andrew File
System)Deze lijst is voor onderwerpen over het porten en
gebruik van AFS van CMU/Transarc&a.announce.name;Belangrijke gebeurtenissen en
projectdoelenDit is de mailinglijst voor hen die alleen interesse
hebben in gelegenheidsmededelingen of belangrijke
&os;-gebeurtenissen. Hieronder vallen aankondigingen over
snapshots en andere uitgaven. De lijst omvat ook
aankondigingen over nieuwe mogelijkheden binnen &os;. Er
kunnen ook oproepen gedaan worden voor vrijwilligers,
enzovoort. Deze lijst kent een laag volume en is volledig
gemodereerd.&a.arch.name;Discussie van architectuur en
ontwerpDeze lijst is bedoeld voor het bespreken van de
&os;-architectuur. Berichten zijn in het algemeen strikt
technisch van aard. Voorbeelden van geschikte onderwerpen
zijn:Hoe het buildsysteem bijgewerkt kan worden zodat
meerdere aanpaste builds tegelijkertijd kunnen
lopen.Wat moet er aan VPS aangepast worden om
Heidemann-lagen te laten werken.Hoe kan de apparataatstuurprogramma interface
aangepast worden zodat dezelfde stuurprogramma's
netjes op vele bussen en architecturen gebruikt kunnen
worden.Hoe een netwerkstuurprogramma geschreven kan
worden.&a.bluetooth.name;&bluetooth; in &os;Dit is het forum waar gebruikers van &bluetooth; op
&os; samenkomen. Gespreksstof op het gebied van ontwerp,
implementatiedetails, patches, probleemrapportages,
statusrapportages, verzoeken voor nieuwe mogelijkheden en
al het andere dat met &bluetooth; te maken heeft is
geschikt materiaal.&a.bugbusters.name;Coördinatie afhandeling Problem
ReportsHet doel van deze lijst is een platform zijn voor de
coördinatie en discussie voor de Bugmeister, zijn
Bugbusters en anderen die interesse hebben in de
PR-database. Deze lijst is niet bedoeld voor discussies
over specifieke bugs, patches of PR's.&a.bugs.name;Bug reportsDit is de mailinglijst voor het rapporteren van bugs
in &os;. Waar mogelijk dienen bugs ingezonden te worden
via &man.send-pr.1; of via de Webinterface
daarvan.&a.chat.name;Niet-technische onderwerpen met betrekking
tot de &os;-gemeenschapDeze lijst bevat alle onderwerpen waar op andere
lijsten geen ruimte voor is wat betreft niet-technische en
sociale informatie. Er wordt gesproken over de moord op
Van Gogh, of er in onderkast of kapitalen geschreven dient
te worden, wie er te veel koffie drinkt, waar het beste
bier vandaan komt, enzovoort. Belangrijke gebeurtenissen
(zoals feestjes, bruiloften, geboorten, nieuwe banen,
enzovoort) kunnen op de technische lijsten aangekondigd
worden, maar antwoorden dienen naar deze -chat lijst te
gaan.&a.chromium.name;&os; specifieke Chromium problemenDit is een lijst voor het bespreken van Chromium
ondersteuning voor &os;. Dit is een technische lijst om de
ontwikkelingen en installatie van Chromium te bespreken.&a.core.name;&os; KernteamDit is een interne mailinglijst die wordt gebruikt
door de kernleden. Er kunnen berichten naar gestuurd
worden als een belangrijke &os;-gerelateerde zaak
arbitrage nodig heeft of een onderzoekende blik op hoog
niveau nodig is.&a.current.name;Discussie over het gebruikt van
&os.current;Dit is de mailinglijst voor gebruikers van
&os.current;. Er staan waarschuwingen op over nieuwe
mogelijkheden in -CURRENT die impact hebben op gebruikers
en instructies over de te nemen stappen om -CURRENT te
blijven. Iedereen die CURRENT draait, zou
zich moeten abonneren. Dit is een technische mailinglijst
waarop strikt technische berichten worden verwacht.&a.cvsweb.name;&os; CVSweb ProjectTechnische discussie over het gebruik, de ontwikkeling
en het beheer van &os;-CVSweb.&a.desktop.name;&os; gebruiken op en verbeteren voor
bureaubladenDit is een forum voor het bespreken van &os; op desktops. Het
is vooral een plaats voor porters en gebruikers van
bureaubladomgevingen om zaken te bespreken en de ondersteuning van
&os; op het bureaublad te verbeteren.&a.doc.name;DocumentatieprojectDit is de mailinglijst voor het bespreken van
onderwerpen en projecten die te maken hebben met het maken
van documentatie voor &os;. De leden van deze
mailinglijst worden samen The &os; Documentation
Project genoemd. Het is een open lijst waarop
zonder problemen een abonnement genomen kan worden en
bijdragen zeer op prijs worden gesteld!&a.drivers.name;Apparaatstuurprogramma's schrijven voor
&os;Dit is een forum voor technische discussie met
betrekking tot apparaatstuurprogramma's op &os;. Het is
vooral een plaats voor schrijvers van
apparaatstuurprogramma's om vragen te stellen over hoe
apparaatstuurprogramma's te schrijven met de API's in de
kernel van &os;.&a.eclipse.name;Gebruikers van Eclipse IDE, hulpprogramma's,
cliëntapplicaties en portsDe doelstelling van deze lijst is wederzijdse
ondersteuning bieden voor alles dat te maken heeft met het
kiezen, installeren, gebruiken, ontwikkelen, en
onderhouden van Eclipse IDE, hulpprogramma's en
cliëntapplicaties op het &os;-platform en te
ondersteunen bij het porten van Eclipse IDE en plugins
naar de &os;-omgeving.Het is ook de bedoeling om het uitwisselen van
informatie tussen de Eclipse gemeenschap en de
&os;-gemeenschap te bevorderen zodat beiden ervan kunnen
profiteren.Hoewel deze lijst voornamelijk is gericht op de
behoeften van gebruikers van Eclipse, wordt ook een forum
geboden voor hen die &os;-specifieke applicaties willen
ontwikkelen met het Eclipse raamwerk.&a.eol.name;Ondersteuning van &os; gerelateerde software
welke niet meer ondersteund wordt door het
&os;-project.Deze lijst is voor degenen die geïnteresseerd zijn in
het leveren of gebruiken van ondersteuning voor
&os;-gerelateerde software voor welke het &os;-project
geen ondersteuning meer biedt (in de vorm van
beveiligingsadviezen en patches).&a.embedded.name;&os; gebruiken in embedded
applicatiesDeze lijst heeft tot doel om te discussieren over &os;
in embedded systemen. Dit is een technische mailinglijst
waarbij men alleen technische inhoud verwacht. Voor het
belang van deze lijst definiëren we embedded systemen
als computersystemen die geen desktop-systemen zijn en
meestal slechts één doel hebben ten opzichte
van gewone systemen. Voorbeelden bevatten onder andere:
diverse soorten telefoonsets, netwerkapparatuur zoals
routers, switches en PBX'en, op afstand bestuurbare
meetapparatuur, PDA's, Point of Sale systemen etc.&a.emulation.name;Emulatie van andere systemen zoals &linux;,
&ms-dos; en &windows;Dit is een forum voor technische discussie met
betrekking tot het draaien van programma's op &os; die
zijn geschreven voor andere besturingssystemen.&a.firewire.name;&firewire; (iLink, IEEE 1394)Dit is de mailinglijst voor het bespreken van het
ontwerp en de implementatie van een &firewire; (ook wel
IEEE 1394 of iLink) subsysteem voor &os;. Relevante
onderwerpen omvatten de standaarden, busapparaten en hun
protocollen, adapter boards/kaarten/chipssets en de
architectuur en implementatie van code voor een juiste
ondersteuning.&a.fs.name;BestandssystemenDiscussie over &os;-bestandssystemen. Dit is een
technische mailinglijst waarop slechts strikt technische
bijdragen worden verwacht.&a.gecko.name;Gecko Rendering EngineDit is een forum over Gecko
applicaties die &os; gebruiken.De discussie concentreert zich op toepassingen van
Gecko Ports, hun installatie, hun ontwikkeling en hun
ondersteuning binnen &os;.&a.geom.name;GEOMDiscussie specifiek over GEOM en gerelateerde
implementaties. Dit is een technische mailinglijst waarop
slechts strikt technische bijdragen worden verwacht.&a.gnome.name;GNOMEDiscussie over de bureaubladomgeving
GNOME voor &os;. Dit is een
technische mailinglijst waarop slechts strikt technische
bijdragen worden verwacht.
+ &a.infiniband.name;
+
+
+ Infiniband op &os;
+
+ Technische mailinglijst over Infiniband, OFED en OpenSM op
+ &os;.
+
+
+
+ &a.ipfw.name;IP FirewallDit is het forum voor technische bespreking van het
herontwerp van de IP-firewallcode in &os;. Dit is een
technische mailinglijst waarop slechts strikt technische
bijdragen worden verwacht.&a.ia64.name;Porten van &os; naar IA64Dit is een technische mailinglijst voor individuen die
actief werken aan het porten van &os; naar het platform
IA-64 van &intel;, om problemen op tafel te leggen of
alternatieve oplossingen te bespreken.
Geïnteresseerden die alleen de technische bespreking
willen volgen zijn ook welkom.&a.isdn.name;ISDN-communicatieDit is de mailinglijst voor discussie over de
ontwikkeling van ISDN-ondersteuning voor &os;.&a.java.name;&java; OntwikkelingDit is de mailinglijst voor het bespreken van de
ontwikkeling van significante &java; applicaties voor &os;
en het porten en het beheer van &jdk;'s.&a.jobs.name;Banen in de aanbieding en
gezochtDit is een forum voor vacatures en CV's specifiek
gerelateerd aan &os;, bijvoorbeeld als er
&os;-gerelateerd werk wordt gezocht of in de aanbieding
is. Dit is geen mailinglijst voor
algemene werkonderwerpen omdat daarvoor al elders ruimte
staat.Ook deze lijst wordt net als alle andere FreeBSD.org mailinglijsten
wereldwijd verspreid. Daarom dient duidelijk vermeld te
worden om welke locatie het gaat en onder welke
voorwaarden telewerken of bijdragen in huisvesting
mogelijk zijn.Email dient alleen open formaten te bevatten. Bij
voorkeur platte tekst, maar standaard Portable Document
Format (PDF), HTML, en een aantal
andere, zijn acceptabel voor lezers. Gesloten formaten,
zoals µsoft; Word (.doc), worden
door de mailinglijstserver geweigerd.&a.kde.name;KDEDiscussie over KDE op
&os;-systemen. Dit is een technische mailinglijst waarop
slechts strikt technische bijdragen worden verwacht.&a.hackers.name;Technische discussiesDit is een forum voor technische discussie met
betrekking tot &os;. Dit is de leidende technische
mailinglijst die is bestemd voor mensen die actief aan
&os; werken om problemen aan het voetlicht te brengen of
alternatieve oplossingen te bespreken.
Geïnteresseerden die alleen de technische bespreking
willen volgen zijn ook welkom. Dit is een technische
mailinglijst waarop slechts strikt technische bijdragen
worden verwacht.&a.hardware.name;Algemene discussie over
&os;-hardwareAlgemene discussie over de typen hardware waar &os; op
draait en problemen en oplossingen over wat te kopen en
wat vooral niet.&a.hubs.name;MirrorsitesAankondigingen en discussie voor beheerders van
&os;-mirrorsites.&a.isp.name;Onderwerpen voor Internet Service
ProvidersDeze mailinglijst is voor het bespreken van relevante
onderwerpen voor Internet Service Providers (ISP's) die
&os; gebruiken. Dit is een technische mailinglijst waarop
slechts strikt technische bijdragen worden verwacht.&a.mono.name;Mono en C# applicaties op
&os;Dit is een lijst voor discussies met betrekking tot
het Mono-ontwikkelraamwerk op &os;. Dit is een technische
mailinglijst. Het is bedoeld voor individuen die actief
werken aan het overbrengen van Mono of C# applicaties naar
&os;, om problemen naar voren te brengen of alternatieve
oplossingen te bespreken. Individuen die
geïnteresseerd zijn in het volgen van de technische
discussie zijn ook welkom.&a.office.name;Kantoortoepassingen op &os;De discussie richt zich op kantoortoepassingen, hun
installatie, hun ontwikkeling en hun ondersteuning binnen
&os;.&a.performance.name;Discussie over het optimaliseren of
versnellen van &os;Deze mailinglijst is een platform voor hackers,
beheerders en/of andere belanghebbenden om &os;- en
prestatiegerelateerde onderwerpen te bespreken. De
onderwerpen die besproken kunnen worden omvatten
&os;-installaties met een hoge load, systemen met
prestatieproblemen of systemen die tegen de limieten van
&os; aan zitten. Zij die willen meewerken om de
prestaties van &os; te verbeteren worden sterk
aangemoedigd zich op deze lijst te abonneren. Deze lijst
is bijzonder technisch en bijzonder geschikt voor ervaren
&os;-gebruikers, hackers en beheerders die &os; snel,
robuust, en schaalbaar willen houden. Deze lijst is geen
vraag-en-antwoord lijst die dient als vervanging voor het
lezen van documentatie, maar hier worden bijdragen
geleverd of vragen gesteld over nog niet eerder beschreven
prestatiegerelateerde onderwerpen.&a.pf.name;Discussie en vragen over het pakketfilter
firewallsysteemDiscussie over het pakketfilter (pf) firewallsysteem
met betrekking tot &os;. Technische discussie en
gebruikersvragen zijn beiden welkom. Deze lijst is ook de
plaats om het raamwerk ALTQ QoS te bespreken.&a.platforms.name;Porten van niet-&intel;
platformsCross-platform &os;-zaken, algemene discussie en
voorstellen voor niet-&intel; &os; ports. Dit is een
technische mailinglijst waarop slechts strikt technische
bijdragen worden verwacht.&a.ports.name;Discussie over
portsDiscussie over de Portscollectie
(/usr/ports) van &os;, de Ports
infrastructuur en algemene coördinatie aangaande
ports. Dit is een technische mailinglijst waarop slechts
strikt technische bijdragen worden verwacht.&a.ports-announce.name;Belangrijk nieuws en belangrijke instructies over
&os; PortscollectieBelangrijk nieuws voor ontwikkelaars, porters en gebruikers
van de Portscollectie (/usr/ports), waaronder veranderingen
aan de architectuur/infrastructuur, nieuwe mogelijkheden,
kritische opwaardeerinstructies, en uitgave-informatie. Dit is
een mailinglijst met een laag volume, bedoeld voor
aankondigingen.&a.ports-bugs.name;Discussie over ports
bugsDiscussie over probleemrapportages voor de &os;
Portscollectie
(/usr/ports), voorgestelde ports of
aanpassingen aan ports. Dit is een technische
mailinglijst waarop slechts strikt technische bijdragen
worden verwacht.&a.proliant.name;Technische discussie over &os; op HP
Proliant serverplatformsDeze mailinglijst wordt gebruikt voor technische
discussie over het gebruik van &os; op HP ProLiant
servers, inclusief het bespreken van ProLiant-specifieke
stuurprogramma's, beheersoftware, gereedschappen voor
instellingen en BIOS-updates. Dit is daaarom ook de
uitgesproken plaats voor het bespreken van de modules
hpasmd, hpasmcli, en hpacucli.&a.python.name;Python op &os;Dit is een lijst voor discussie gerelateerd aan het
verbeteren van ondersteuning voor Python op &os;. Dit is
een technische mailinglijst voor mensen die aan het porten
van Python, aanverwante modules en
Zope-dingen naar &os;
werken.&a.questions.name;GebruikersvragenDit is de mailinglijst voor vragen over &os;. Er
horen geen how to vragen op de technische
mailinglijsten thuis, tenzij een vraag erg technisch van
aard is.&a.ruby.name;&os;-specifieke discussies over
RubyDit is een lijst voor discussies gerelateerd aan de
Ruby-ondersteuning op &os;. Dit is een technische
mailinglijst. Het is bedoeld voor individuen die aan
Ruby-ports, bibliotheken van derde partijen, en raamwerken
werken.Individuen die geïnteresseerd zijn in de
technische discussie zijn ook welkom.&a.scsi.name;SCSI-subsysteemDit is de mailinglijst voor mensen die aan het
SCSI-subsysteem voor &os; werken. Dit is een technische
mailinglijst waarop slechts strikt technische bijdragen
worden verwacht.&a.security.name;Beveiligingsonderwerpen&os;-computerbeveiligingsonderwerpen (DES, Kerberos,
bekende beveiligingsgaten, oplossingen, enzovoort). Dit
is een technische mailinglijst waarop slechts strikt
technische bijdragen worden verwacht. Dit is zeker geen
vraag-en-antwoord lijst, maar bijdragen voor de FAQ (zowel
vraag als
antwoord) zijn welkom.&a.security-notifications.name;BeveiligingswaarschuwingenWaarschuwingen voor &os; beveiligingsproblemen en
oplossingen. Dit is geen discussielijst. De
discussielijst is &a.security.name;.&a.small.name;&os; gebruiken in embedded
toepassingenOp deze lijst worden onderwerpen gerelateerd aan
ongebruikelijk kleine en embedded &os;-installaties
besproken. Dit is een technische mailinglijst waarop
slechts strikt technische bijdragen worden verwacht.Deze lijst is vervangen door &a.embedded.name;&a.stable.name;Discussie over het gebruik van
&os.stable;Dit is de mailinglijst voor gebruikers van
&os.stable;. Er worden ook waarschuwingen op gepost over
nieuwe opties in -STABLE die invloed op de systemen van
gebruikers kunnen hebben en instructies over de te nemen
stappen om -STABLE te blijven. Iedereen die
STABLE draait hoort zich op deze lijst
te abonneren. Dit is een technische mailinglijst waarop
slechts strikt technische bijdragen worden verwacht.&a.standards.name;Conformeren C99 &
POSIXDit is een forum voor technische bespreking
gerelateerd aan het conformeren van &os; aan de C99- en de
POSIX-standaarden.&a.toolchain.name;Onderhoud van de ingebouwde toolchain van
&os;Dit is de mailinglijst bedoeld voor discussies over het
onderhoud van de toolchain die met &os; wordt geleverd. Dit zou
de toestand van Clang en GCC kunnen omvatten, maar ook software
als assemblers, linkers en debuggers.&a.usb.name;Discussie over &os; ondersteuning voor
USBDit is de mailinglijst voor technische bespreking van
onderwerpen gerelateerd aan &os; ondersteuning voor
USB.&a.usergroups.name;Gebruikersgroep Coördinatie
LijstDit is de mailinglijst voor coördinatoren voor
alle lokale gebruikersgroepen, zodat ze met elkaar en een
lid van het Kernteam zaken kunnen bespreken. Deze lijst
hoort beperkt te blijven tot een overzicht van overleggen
en de coördinatie van projecten waarbij meerdere
gebruikersgroepen betrokken zijn.&a.vendors.name;VerkopersCoördinatie en discussie tussen het &os;-project
en verkopers van software en hardware voor &os;.&a.virtualization.name;Discussies over verscheidene
virtualisatietechnieken ondersteund door &os;Een lijst om de verscheidene virtualisatietechnieken
die door &os; worden ondersteund te bespreken. Aan de ene
kant zal de nadruk liggen op de implementatie van de
basale functionaliteit alsook op het toevoegen van nieuwe
mogelijkheden. Aan de andere kant zullen gebruikers een
forum hebben om om hulp te vragen bij problemen of om hun
usecases te bespreken.&a.wip-status.name;&os; Werk-In-Uitvoering statusDeze mailinglijst kan gebruikt worden om de schepping
en voortgang van uw &os;-gerelateerd werk aan te kondigen.
Berichten zullen gemodereerd worden. Het wordt
gesuggereerd om het bericht "Aan:" een &os;-mailinglijst
dat het onderwerp beter dekt te sturen en deze lijst
alleen te "BCC:"-en. Op deze manier kan uw
werk-in-uitvoering ook op de onderwerpslijst worden
bediscussieerd, aangezien discussies op deze lijst niet
zijn toegestaan.Kijk in de archieven voor voorbeelden van geschikte
berichten.Een redactioneel overzicht van de berichten aan deze lijst
kan om de paar maanden naar de &os;-website gezonden worden als
deel van de Status Reports .
Meer voorbeelden en oude rapportages zijn daar ook te
vinden.&a.wireless.name;Discussies over de 802.11-stack, de ontwikkeling
van gereedschappen voor stuurprogramma'sDe &os;-wireless lijst richt zich op de 802.11-stack
(sys/net80211) en de ontwikkeling van stuurprogramma's en
gereedschappen. Dit omvat bugs, nieuwe eigenschappen en
onderhoud.&a.xen.name;Discussies over het porteren van &os; naar
&xen; — implementatie en gebruikEen lijst die zich richt op de &os; &xen; port. De
verwachte hoeveelheid verkeer is laag genoeg zodat het
voor zowel technische discussies over de implementatie- en
ontwerpdetails als voor zaken over administratief gebruik
bedoeld is.&a.xfce.name;XFCEDit is een forum voor discussies gerelateerd aan de
XFCE-omgeving voor &os;. Dit is een
technische mailinglijst. Het is bedoeld voor degenen die actief
werken aan het porten van XFCE naar
&os;, om problemen naar voren te brengen of alternatieve
oplossingen te bespreken. Personen die geïnteresseerd zijn
in het volgen van de technische discussie zijn ook welkom.&a.zope.name;ZopeDit is een forum voor discussies die verwant zijn aan het
brengen van de Zope-omgeving naar &os;.
Dit is een technische mailinglijst. Het is bedoeld voor
individuen die actief werken aan het overbrengen van
Zope naar &os;, om problemen aan te
dragen of alternatieve oplossingen te bespreken. Individuen die
geïnteresseerd zijn in het volgen van de technische discussie
zijn ook welkom.Filters op de mailinglijstenDe &os;-mailinglijsten worden op verschillende manieren
gefilterd om het doorsturen van spam, virussen, en andere
ongewenste email te beperken. De hieronder beschreven
filteracties bevatten niet alle genomen acties voor de
beveiliging van de mailinglijsten.Er is een beperkt aantal typen bijlagen toegestaan op de
mailinglijsten. Alle bijlagen met een MIME-inhoudtype dat
niet in de onderstaande lijst staat worden verwijderd voordat
de mail wordt doorgestuurd naar de mailinglijsten.application/octet-streamapplication/pdfapplication/pgp-signatureapplication/x-pkcs7-signaturemessage/rfc822multipart/alternativemultipart/relatedmultipart/signedtext/htmltext/plaintext/x-difftext/x-patchSommige mailinglijsten staan wellicht bijlagen toe met
andere MIME-inhoudtypen, maar de bovenstaande lijst zal gelden
voor de meeste mailinglijsten.Als een email zowel een HTML- als een platte tekstversie
bevat, dan wordt de HTML-versie verwijderd. Als een mail alleen
een HTML-versie bevat, dan wordt die omgezet naar platte
tekst.Usenet-nieuwsgroepenNaast de twee specifieke &os;-nieuwsgroepen zijn er nog vele
andere waarin &os; wordt besproken of die anderszins relevant zijn
voor gebruikers van &os;.Specifieke BSD nieuwsgroepencomp.unix.bsd.freebsd.announcecomp.unix.bsd.freebsd.miscde.comp.os.unix.bsd
(Duits)fr.comp.os.bsd
(Frans)it.comp.os.freebsd
(Italiaans)
-
-
- tw.bbs.comp.386bsd
- (Traditioneel Chinees)
- Overige interessante &unix;-nieuwsgroepencomp.unixcomp.unix.questionscomp.unix.admincomp.unix.programmercomp.unix.shellcomp.unix.user-friendlycomp.security.unixcomp.sources.unixcomp.unix.advocacycomp.unix.misc
-
-
-
- comp.bugs.4bsd
-
-
-
- comp.bugs.4bsd.ucb-fixescomp.unix.bsdX Window systeemcomp.windows.x.i386unixcomp.windows.xcomp.windows.x.appscomp.windows.x.announcecomp.windows.x.intrinsicscomp.windows.x.motifcomp.windows.x.pexcomp.emulators.ms-windows.wineWorld wide webserversFora, blogs, en sociale netwerkenThe &os;
Forums bieden een webgebaseerd discussieforum voor
vragen en technische discussies over &os;.Planet
&os; biedt een samengestelde feed van tientallen
blogs geschreven door &os;-ontwikkelaars. Vele
ontwikkelaars gebruiken dit om korte notities te posten over
waaraan ze werken, nieuwe patches, en ander werk in
uitvoering.Het BSDConferences
YouTube Channel biedt een verzameling van video's
van hoge kwaliteit van wereldwijde BSD-conferenties. Dit is
een prima manier om presentaties van hoofdontwikkelaars over
nieuw werk in &os; te zien.Officiële spiegels
&chap.eresources.www.inc;
Email-adressenDe onderstaande gebruikersgroepen bieden &os;-gerelateerde
email-adressen aan voor hun leden. De aangegeven beheerders
behouden zich het recht voor om een account te verwijderen als die
op enigerlei wijze wordt misbruikt.DomeinFaciliteitenGebruikersgroepBeheerderukug.uk.FreeBSD.orgAlleen forwardenukfreebsd@uk.FreeBSD.orgLee Johnston
lee@uk.FreeBSD.org
Index: translations/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.xml
===================================================================
--- translations/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/handbook/filesystems/chapter.xml (revision 40367)
@@ -1,913 +1,913 @@
TomRhodesGeschreven door WouterReckmanVertaald door RenéLadanOndersteuning van bestandssystemenOverzichtBestandssystemenOndersteuning bestandssystemenBestandssystemenBestandssystemen zijn een integraal onderdeel van ieder
besturingssysteem. Ze stellen gebruikers in de gelegenheid om
bestanden te uploaden en op te slaan, geven toegang tot gegevens
en maken natuurlijk harde schijven bruikbaar. Verschillende
besturingssystemen hebben gewoonlijk één
gezamenlijk aspect, namelijk het bestandssysteem. Op &os; staat
dit bestandssysteem bekend onder de naam Fast File System ofwel
FFS, dat is gebaseerd op het oorspronkelijke
Unix™ File System, ook bekend als UFS.
Dit is het oorspronkelijke bestandssysteem van &os; dat op
harde schijven wordt geplaatst voor gegevenstoegang.&os; ondersteunt daarnaast ook een groot aantal andere
bestandssystemen om lokaal toegang tot gegevens van andere
besturingssystemen te bewerkstelligen; dat wil zeggen: gegevens
opgeslagen op lokaal aangesloten USB
opslagapparaten, flash drives, en harde schijven. Verder is er
ook ondersteuning voor vreemde bestandssystemen. Dit zijn
bestandssystemen ontwikkeld voor andere besturingssystemen
zoals het &linux; Extended File System (EXT)
en het &sun; Z File System (ZFS).Er zijn verschillende gradaties van ondersteuning voor de
verschillende bestandssystemen op &os;. Sommigen vereisen het
laden van een kernelmodule, voor anderen moet een toolset
worden geïnstalleerd. Dit hoofdstuk is geschreven om
gebruikers van &os; te helpen om op hun systeem toegang te
verkrijgen tot andere bestandssystemen, te beginnen met het
&sun; Z File System.Na het lezen van dit hoofstuk weet de lezer:Het verschil tussen eigen en ondersteunde
bestandssystemen.Welke bestandssystemen zijn ondersteund in &os;.Hoe niet-eigen bestandssystemen geactiveerd,
geconfigureerd, benaderd en gebruikt kunnen worden.Voorafgaand aan het lezen van dit hoofdstuk dient de
lezer:Begrip te hebben van de beginselen van &unix; en &os;
().Bekend te zijn met de beginselen van
kernelconfiguratie en -compilatie
().Vertrouwd te zijn met installatie van software van
derden in &os; ().Enigszins bekend te zijn met schijven, opslag en
apparaatnamen in &os; ().Het Z File System (ZFS)Het Z File System, ontwikkeld door &sun;, is een
nieuwe technologie ontwikkeld om gebruik te maken van een
pool-gebaseerde opslagmethode. Dit houdt in dat ruimte pas
wordt gebruikt wanneer het nodig is voor dataopslag. Verder is
het ontworpen voor maximale integriteit van gegevens,
ondersteuning van gegevens-snapshots, meerdere kopieën, en
gegevenschecksums. Ook is een nieuw gegevensreplicatiemodel,
bekend als RAID-Z, toegevoegd;
RAID-Z lijkt op RAID5,
maar is ontworpen om corruptie tijdens het schrijven van
gegevens te voorkomen.ZFS tuningHet ZFS subsysteem maakt gebruik van
veel systeembronnen waardoor het nodig kan zijn een en ander
af te stellen, zodat voor het dagelijks gebruik maximale
efficiëntie wordt behaald. Doordat het een
experimentele eigenschap van &os; is, kan dit in de nabije
toekomst veranderen; op dit moment echter, worden de volgende
stappen aangeraden.GeheugenDe totale hoeveelheid systeemgeheugen dient minstens
één gigabyte te zijn, maar twee gigabytes of meer
wordt aanbevolen. In alle voorbeelden hier heeft het systeem
één gigabyte geheugen, met verschillende andere
afstelmechanismen in werking.Sommigen hebben succes gehad met minder dan een
gigabyte geheugen, maar met een dergelijke, beperkte
hoeveelheid geheugen is de kans groot dat onder zware
belasting een kernelpanic in &os; op zal treden door uitputting
van het geheugen.KernelconfiguratieHet wordt aangeraden om ongebruikte
stuurprogramma's en opties te verwijderen uit het
kernelconfiguratiebestand. Omdat de meeste
stuurprogramma's beschikbaar zijn als modules kunnen ze
alsnog worden geladen door middel van het bestand
/boot/loader.conf.Gebruikers van de &i386;-architectuur dienen de volgende
optie aan hun kernelconfiguratiebestand toe te voegen, de
kernel opnieuw te compileren, en opnieuw op te
starten:options KVA_PAGES=512Deze optie vergroot de kerneladresruimte, waarmee het
mogelijk wordt gemaakt om de vm.kvm_size
afstelling hoger dan de huidige limiet van 1 GB
(2 GB voor PAE) in te stellen.
Deel, om de meest geschikte waarde voor deze optie te
vinden, de gewenste hoeveelheid adresruimte door vier (4).
In dit geval is dat 512 voor
2 GB.Loader tunablesDe kmem adresruimte dient te
worden vergroot op alle &os; architecturen. Op het
testsysteem met één gigabyte fysiek geheugen werd
succes behaald met de volgende opties, die in het bestand
/boot/loader.conf geplaatst dienen te
worden, waarna het systeem opnieuw moet worden
opgestart:vm.kmem_size="330M"
vm.kmem_size_max="330M"
vfs.zfs.arc_max="40M"
vfs.zfs.vdev.cache.size="5M"Zie voor een meer gedetailleerde lijst van aanbevelingen
aangaande ZFS-afstelling:
.Gebruik maken van ZFSEr is een opstartmechanisme dat &os; in staat stelt om
ZFS pools te mounten tijdens initialisatie van
het systeem. Voer de volgende commando's uit om dit in te
stellen:&prompt.root; echo 'zfs_enable="YES"' >> /etc/rc.conf
&prompt.root; /etc/rc.d/zfs startIn het resterende deel van dit document wordt aangenomen
dat er drie SCSI-schijven beschikbaar zijn,
en dat hun apparaatnamen respectievelijk
da0,
da1 en
da2 zijn.
Gebruikers van IDE-hardware kunnen de
ad
apparaten gebruiken in plaats van
SCSI-apparaten.Een pool op een enkele schijfVoer het commando zpool uit om een simpele,
niet-redundante ZFS-pool op een enkele schijf aan
te maken:&prompt.root; zpool create example /dev/da0Bestudeer de uitvoer van het commando
df om de nieuwe pool te zien:&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235230 1628718 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032846 48737598 2% /usr
example 17547136 0 17547136 0% /exampleIn deze uitvoer wordt duidelijk dat de
example-pool niet alleen is aangemaakt,
maar ook direct gemount is. Hij is ook
toegankelijk, net als een gewoon bestandssysteem; er kunnen
bestanden op worden aangemaakt en gebruikers kunnen er op
rondkijken zoals in het volgende voorbeeld:&prompt.root cd /example
&prompt.root; ls
&prompt.root; touch testfile
&prompt.root; ls -al
total 4
drwxr-xr-x 2 root wheel 3 Aug 29 23:15 .
drwxr-xr-x 21 root wheel 512 Aug 29 23:12 ..
-rw-r--r-- 1 root wheel 0 Aug 29 23:15 testfileHelaas benut deze pool nog geen
ZFS-mogelijkheden. Maak een bestandssysteem
aan op deze pool en activeer er compressie op:&prompt.root; zfs create example/compressed
&prompt.root; zfs set compression=gzip example/compressedexample/compressed is nu een
gecomprimeerd ZFS-bestandssysteem. Probeer
er een paar grote bestanden naartoe te kopiëren door ze
naar /example/compressed
te kopiëren.De compressie kan nu worden uitgeschakeld met:&prompt.root; zfs set compression=off example/compressedVoer het volgende commando uit om het bestandssysteem te
unmounten, en controleer dat daarna met
df:&prompt.root; zfs umount example/compressed
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235232 1628716 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
example 17547008 0 17547008 0% /exampleMount het bestandssysteem opnieuw om het weer
toegankelijk te maken en controleer met
df:&prompt.root; zfs mount example/compressed
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235234 1628714 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
example 17547008 0 17547008 0% /example
example/compressed 17547008 0 17547008 0% /example/compressedDe pool en het bestandssysteem zijn ook zichtbaar in de
uitvoer van mount:&prompt.root; mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1d on /usr (ufs, local, soft-updates)
example on /example (zfs, local)
example/data on /example/data (zfs, local)
example/compressed on /example/compressed (zfs, local)Zoals is te zien kunnen
ZFS-bestandssystemen, nadat ze zijn
gecreëerd, net als gewone bestandssystemen worden
gebruikt; er zijn echter ook vele andere mogelijkheden
beschikbaar. In het volgende voorbeeld wordt er een nieuw
bestandssysteem data gecreëerd.
Er zullen belangrijke bestanden op worden bewaard, dus het
bestandssysteem wordt zodanig ingesteld dat het twee
kopieën van ieder gegevensblok opslaat:&prompt.root; zfs create example/data
&prompt.root; zfs set copies=2 example/dataHet is nu mogelijk om het gegevens- en ruimtegebruik te
bekijken door df opnieuw te
draaien:&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235234 1628714 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032864 48737580 2% /usr
example 17547008 0 17547008 0% /example
example/compressed 17547008 0 17547008 0% /example/compressed
example/data 17547008 0 17547008 0% /example/dataMerk op dat ieder bestandssysteem in de pool dezelfde
hoeveelheid vrije ruimte heeft. Dit is de reden dat
df steeds wordt gebruikt tussen de
voorbeelden door, om te laten zien dat de bestandssystemen
slechts zoveel ruimte gebruiken als ze nodig hebben en
allemaal putten uit dezelfde pool.
Het ZFS bestandssysteem elimineert
concepten als volumes en partities, en staat verschillende
bestandssystemen toe om in dezelfde pool te bestaan.
Verwijder nu de bestandssystemen en verwijder daarna de pool,
omdat deze niet meer nodig zijn:&prompt.root; zfs destroy example/compressed
&prompt.root; zfs destroy example/data
&prompt.root; zpool destroy exampleSchijven gaan slechter werken en begeven het, een
onvermijdelijke eigenschap. Wanneer de schijf stukgaat
zullen de gegevens verloren gaan. Een methode om
gegevensverlies ten gevolge van een kapotte harde schijf te
vermijden is het implementeren van RAID.
ZFS ondersteunt deze mogelijkheid in zijn
pool-ontwerp en wordt beschreven in de volgende
sectie.ZFS RAID-ZZoals eerder opgemerkt wordt in deze sectie aangenomen
dat er drie SCSI-schijven bestaan als de
apparaten da0, da1
en da2 (of ad0 en
hoger als IDE-schijven worden gebruikt). Voer het volgende commando
uit om een RAID-Z-pool te creëren:&prompt.root; zpool create storage raidz da0 da1 da2&sun; raadt aan om tussen de drie en negen schijven te gebruiken
voor een RAID-Z-configuratie. Overweeg, als u
een enkele pool met 10 of meer schijven nodig heeft, om deze te
splitsen in kleine RAID-Z-groepen. Overweeg, als
u slechts twee schijven heeft en nog steeds redundantie nodig heeft,
om in plaats hiervan een ZFS-spiegel te
gebruiken. Bekijk de handleidingpagina &man.zpool.8; voor meer
details.De storage zpool zou gecreëerd
moeten zijn. Dit kan worden geverifieerd met de
&man.mount.8; en &man.df.1; commando's zoals eerder. Er
kunnen meer schijfapparaten worden toegewezen door ze aan het
einde van de bovenstaande lijst toe te voegen.
Maak een nieuw bestandssysteem in de pool, genaamd
home, waar op den duur de
gebruikersbestanden geplaatst zullen worden:&prompt.root; zfs create storage/homeHet is nu mogelijk om compressie in te schakelen en extra
kopieën te bewaren van de gebruikersmappen en
-bestanden. Dit kan net als eerder worden bewerkstelligd
door de volgende commando's uit te voeren:&prompt.root; zfs set copies=2 storage/home
&prompt.root; zfs set compression=gzip storage/homeKopieer, om dit als de nieuwe home-map voor gebruikers in
te stellen, de gebruikersgegevens naar deze map en
creëer de benodigde links:&prompt.root; cp -rp /home/* /storage/home
&prompt.root; rm -rf /home /usr/home
&prompt.root; ln -s /storage/home /home
&prompt.root; ln -s /storage/home /usr/homeDe gebruikersgegevens zouden nu op het nieuw aangemaakte
/storage/home
bestandssysteem moeten staan. Test dit door een nieuwe
gebruiker aan te maken en daarmee in te loggen.Probeer een snapshot te maken dat later weer hersteld kan
worden:&prompt.root; zfs snapshot storage/home@08-30-08Merk op dat de snapshot-optie alleen een echt
bestandssysteem vastlegt, geen mappen of bestanden. Het
@-karakter wordt gebruikt als
scheidingsteken tussen de naam van het bestandssysteem of de
naam van het volume. Wanneer de home-map van een gebruiker
wordt weggegooid, kan deze worden hersteld met:&prompt.root; zfs rollback storage/home@08-30-08Voer ls in de
.zfs/snapshot
directory van het bestandssysteem uit om een lijst van alle
beschikbare snapshots te krijgen. Voer, om bijvoorbeeld
het zojuist gemaakte snapshot te zien, het volgende commando
uit:&prompt.root; ls /storage/home/.zfs/snapshotHet is mogelijk om een script te schrijven dat
maandelijks een snapshot van de gebruikersgegevens maakt; na
verloop van tijd kunnen snapshots echter een grote
hoeveelheid schrijfruimte in beslag nemen. Het vorige
snapshot kan worden verwijderd met het volgende
commando:&prompt.root; zfs destroy storage/home@08-30-08Na al dit testen is er geen reden om
/storage/home in zijn
huidige staat nog te bewaren. Maak er het echte
/home
bestandssysteem van:&prompt.root; zfs set mountpoint=/home storage/homeHet uitvoeren van de commando's df en
mount laat zien dat het systeem ons
bestandssysteem nu als de echte /home behandelt:&prompt.root; mount
/dev/ad0s1a on / (ufs, local)
devfs on /dev (devfs, local)
/dev/ad0s1d on /usr (ufs, local, soft-updates)
storage on /storage (zfs, local)
storage/home on /home (zfs, local)
&prompt.root; df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s1a 2026030 235240 1628708 13% /
devfs 1 1 0 100% /dev
/dev/ad0s1d 54098308 1032826 48737618 2% /usr
storage 26320512 0 26320512 0% /storage
storage/home 26320512 0 26320512 0% /homeHiermee is de RAID-Z configuratie
compleet. Voer het volgende commando uit om status-updates
van de gecreëerde bestandssystemen te krijgen tijdens
het draaien van de nachtelijke &man.periodic.8;:&prompt.root; echo 'daily_status_zfs_enable="YES"' >> /etc/periodic.confHet herstellen van RAID-ZIedere software-RAID heeft een methode
om zijn status te inspecteren.
ZFS is geen uitzondering. De status van
RAID-Z-apparaten kan worden
geïnspecteerd met het volgende commando:&prompt.root; zpool status -xAls alle pools in orde zijn en alles is normaal, dan
wordt het volgende bericht weergegeven:all pools are healthyAls er een probleem is, misschien een schijf die offine
is gegaan, dan wordt de status van de pool weergegeven en dat
zal er als volgt uitzien: pool: storage
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
storage DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
da0 ONLINE 0 0 0
da1 OFFLINE 0 0 0
da2 ONLINE 0 0 0
errors: No known data errorsHier staat dat het apparaat offline is gezet door de
beheerder. Dat is waar voor dit specifieke voorbeeld. Om de
schijf offline te zetten werd het volgende commando
gebruikt:&prompt.root; zpool offline storage da1Het is nu mogelijk om de schijf
da1 te vervangen nadat het systeem
uitgeschakeld is. Zodra het systeem weer opgestart is, kan
het volgende commando worden uitgevoerd om de schijf te
vervangen:&prompt.root; zpool replace storage da1Nu kan de status opnieuw geïnspecteerd worden,
dit keer zonder de vlag, om de
statusinformatie op te vragen:&prompt.root; zpool status storage
pool: storage
state: ONLINE
scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1 ONLINE 0 0 0
da0 ONLINE 0 0 0
da1 ONLINE 0 0 0
da2 ONLINE 0 0 0
errors: No known data errorsZoals te zien in dit voorbeeld lijkt alles normaal te
zijn.GegevensverificatieZoals eerder opgemerkt gebruikt ZFS
checksums om de integriteit van opgeslagen
gegevens te verifiëren. Ze worden automatisch
ingeschakeld bij het creëeren van bestandssystemen en
kunnen worden uitgeschakeld door middel van het volgende
commando:&prompt.root; zfs set checksum=off storage/homeDit is echter geen verstandig idee, omdat checksums zeer
weinig opslagruimte innemen en nuttiger zijn wanneer ze zijn
ingeschakeld. Het lijkt daarnaast ook geen merkbare invloed
op de prestaties te hebben wanneer ze zijn ingeschakeld.
Wanneer ze aanstaan is het mogelijk om ZFS
gegevensintegriteit te laten controleren door middel van
checksum-verificatie. Dit proces staat bekend als
scrubbing. Voer het volgende commando uit om
de gegevensintegriteit van de storage-pool
te controleren:&prompt.root; zpool scrub storageDit proces kan, afhankelijk van de hoeveelheid opgeslagen
gegevens, een aanzienlijke hoeveelheid tijd in beslag nemen.
Het is daarnaast ook zeer I/O-intensief,
zozeer dat slechts één van deze operaties
tegelijkertijd uitgevoerd kan worden. Nadat de scrub is
voltooid wordt de status bijgewerkt en kan deze worden
bekeken door een statusaanvraag te doen:&prompt.root; zpool status storage
pool: storage
state: ONLINE
scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008
config:
NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz1 ONLINE 0 0 0
da0 ONLINE 0 0 0
da1 ONLINE 0 0 0
da2 ONLINE 0 0 0
errors: No known data errorsDe voltooiingstijd is in dit voorbeeld duidelijk
zichtbaar. Deze eigenschap helpt om gegevensintegriteit te
garanderen gedurende een langere tijdsperiode.Er zijn vele andere opties voor het Z-bestandssysteem, zie
de handleidingpagina's &man.zfs.8; en &man.zpool.8;.ZFS quotaZFS ondersteunt verschillende soorten quota: de refquota, de
algemene quota, de gebruikersquota en de groepsquota. Deze sectie
legt de beginselen van ieder van deze uit en bevat wat instructies
voor gebruik.Quota beperken de hoeveelheid ruimte die een gegevensverzameling
en zijn afstammelingen kunnen gebruiken en dwingen een limiet af op de
hoeveelheid ruimte dat gebruikt wordt door bestandssystemen en
snapshots voor deze afstammelingen. Vanuit gebruikers zijn quota
handig om de hoeveelheid ruimte die een bepaalde gebruiker kan
gebruiken te beperken.Quota kunnen niet op volumes worden ingesteld, aangezien de
eigenschap volsize als een impliciet quotum
optreedt.De refquota,
refquota=grootte,
beperkt de hoeveelheid ruimte die een gegevensverzameling in beslag
kan nemen door een harde grens aan de gebruikte ruimte te stellen.
Deze harde grens bevat echter niet de ruimte gebruikt door
afstammelingen, zoals bestandssystemen of snapshots.Gebruik het volgende om een algemeen quotum van 10 GB voor
/home/storage/bob af te dwingen:&prompt.root; zfs set quota=10G storage/home/bobGebruikersquota beperken de hoeveelheid ruimte die door de
aangegeven gebruiker kan worden gebruikt. Het algemene formaat is
userquota@gebruiker=grootte
waarbij de gebruikersnaam in één van de volgende
formaten dient te zijn:Naam compatibel met POSIX
(bijvoorbeeld jan).Numeriek POSIX-ID
(bijvoorbeeld 789).SID-naam
(bijvoorbeeld
- jan.bloggs@voorbeeld.com).
+ jan.bloggs@example.com).
Numeriek SID-ID
(bijvoorbeeld S-1-123-456-789).Gebruik het volgende om bijvoorbeeld een een quotum van 50 GB
voor een gebruiker jan af te
dwingen:&prompt.root; zfs set userquota@jan=50GGebruik in plaats hiervan, om het quotum te verwijderen of er
zeker van te zijn dat er geen is ingesteld:&prompt.root; zfs set userquota@jan=noneEigenschappen van gebruikersquota worden niet weergegeven door
zfs get all. Niet-root
gebruikers kunnen alleen hun eigen quota zien tenzij het privilege
userquota aan ze is gegeven. Gebruikers met dit
privilege kunnen ieders quota bekijken en instellen.Groepsquota beperken de hoeveelheid ruimte die de gespecificeerde
gebruikersgroep in beslag kan nemen. Het algemene formaat is
groupquota@groep=grootte.Gebruik om het quotum voor de groep
eerstegroep op 50 GB in te
stellen:&prompt.root; zfs set groupquota@eerstegroep=50GGebruik in plaats hiervan, om het quotum voor de groep
eerstegroep te verwijderen of om er voor te
zorgen dat deze niet is ingesteld:&prompt.root; zfs set groupquota@eerstegroep=noneNet zoals bij de eigenschappen van gebruikersquota kunnen
niet-root-gebruikers alleen de quota zien die
geassocieerd zijn met de gebruikersgroepen waar ze bij horen, een
root-gebruiker of een gebruiker met het privilege
groupquota kan alle quota voor alle groepen
bekijken en instellen.Het deelcommando zfs userspace geeft de
hoeveelheid ruimte weer die door elke gebruiker op de snapshot van het
gespecificeerde bestandssysteem in beslag wordt genomen, tezamen met
alle ingestelde quota. Het deelcommando zfs
groupspace doet hetzelfde voor groepen. Bekijk
&man.zfs.1; voor meer informatie over ondersteunde opties of het
weergegeven van specifieke opties.Gebruik het volgende om de quota voor
storage/home/bob weer te geven, als u de juiste
privileges heeft of root bent:&prompt.root; zfs get quota storage/home/bobReserveringen in ZFSZFS ondersteunt twee soorten van ruimtereserveringen. Deze sectie
legt de beginselen van elk van de twee uit en bevat enkele instructies
voor gebruik.De eigenschap reservation maakt het mogelijk om
een gegarandeerde minimale hoeveelheid ruimte voor een
gegevensverzameling en zijn afstammelingen te reserveren.
Dit betekent dat als er een reservering van 10 GB is ingesteld
voor storage/home/bob en de schijfruimte op
raakt, er tenminste 10 GB aan ruimte is gereserveerd voor deze
gegevensverzameling. De eigenschap reservation
stelt de minimale hoeveelheid ruimte in die gegarandeerd is voor een
gegevensverzameling exclusief afstammelingen zoals snapshots, of geeft
deze aan. Als er bijvoorbeeld een snapshot is genomen van
storage/home/bob moet er genoeg schijfruimte zijn
buiten de refreservation hoeveelheid om de operatie
te laten slagen omdat afstammelingen van de hoofdgegevensverzameling
niet worden meegeteld in de refreservation
hoeveelheid en dus niet stiekem de vastgestelde ruimte
wijzigen.Reserveringen kunnen in allerlei situaties nuttig zijn,
bijvoorbeeld voor het plannen en testen van de geschiktheid van het
toewijzen van schijfruimte in een nieuw systeem, of om ervoor te
zorgen dat er genoeg schijfruimte beschikbaar is op bestandsssystemen
voor systeemherstelprocedures en bestanden.Het algemene formaat van de eigenschap
reservation is
reservation=grootte, dus
gebruik het onderstaande commando om een reservering van 10 GB op
storage/home/bob te plaatsen:&prompt.root; zfs set reservation=10G storage/home/bobGebruik, om te controleren of er geen reservatie is geplaatst of
om een reservatie te verwijderen:&prompt.root; zfs set reservation=none storage/home/bobHet zelfde principe kan worden toegepast op de eigenschap
refreservation om een refreservation in te stellen,
met het algemene formaat
refreservation=grootte.Gebruik één van de volgende commando's om te kijken
of er een reservatie of refreservation bestaat op
storage/home/bob:&prompt.root; zfs get reservation storage/home/bob
&prompt.root; zfs get refreservation storage/home/bob&linux; bestandssystemenDeze sectie beschrijft enkele van de &linux; bestandssystemen die door
&os; worden ondersteund.Ext2FSDe kernelimplementatie van het &man.ext2fs.5; bestandssysteem was
geschreven door Godmar Back, het eerste stuurprogramma verscheen in
&os; 2.2. In &os; 8 en eerder is de code gelicenseerd onder
de GNU Public License, onder &os; 9 is de code
echter herschreven en nu beschikbaar onder de
BSD-licentie.Het stuurprogramma &man.ext2fs.5; stelt de &os;-kernel in staat om
ext2 bestandssystemen te lezen en er naar te
schrijven.Laad ten eerste de kernelmodule:&prompt.root; kldload ext2fsKoppel daarna een &man.ext2fs.5;-volume aan dat zich op
/dev/ad1s1 bevindt:&prompt.root; mount -t ext2fs /dev/ad1s1 /mntXFSHet X-bestandssysteem, XFS, is origineel
geschreven door SGI voor het besturingssysteem
IRIX, ze hebben het overgebracht naar &linux;. De
broncode is vrijgegeven onder de GNU Public License.
Kijk op deze
pagina voor meer details. De &os;-port werd gestart door
Russel Cattelan, &a.kan; en &a.rodrigc;.Om XFS als een kernelmodule te laden:&prompt.root; kldload xfsHet stuurprogramma &man.xfs.5; stelt de &os;-kernel in staat om
XFS-bestandssystemen te benaderen. Momenteel is echter alleen
ondersteuning voor lezen aanwezig. Schrijven naar een volume is niet
mogelijk.Om een &man.xfs.5;-volume wat op /dev/ad1s1 aan
te koppelen:&prompt.root; mount -t xfs /dev/ad1s1 /mntMerk op dat de port sysutils/xfsprogs het gereedschap
mkfs.xfs bevat wat het mogelijk maakt om
XFS-bestandssystemen aan te maken, en verder
gereedschappen om ze te analyseren en repareren.De vlag -p van mkfs.xfs kan
worden gebruikt om een &man.xfs.5;-bestandssysteem aan te maken welke
bevolkt wordt met bestanden en andere meta-gegevens. Dit kan worden
gebruikt om snel een alleen-lezen bestandssysteem aan te maken welke op
&os; getest kan worden.ReiserFSHet Reiser bestandssysteem, ReiserFS, was overgebracht naar &os;
door &a.dumbbell; en is vrijgegeven onder de GNU
Public License.Het stuurprogramma voor ReiserFS stelt de &os;-kernel momenteel in
staat om ReiserFS bestandssystemen te benaderen en hun inhoud te lezen,
maar het kan ze momenteel niet beschrijven.Laad ten eerste eerst de kernelmodule:&prompt.root; kldload reiserfsOm ten tweede een ReiserFS-volume dat zich op
/dev/ad1s1 aan te koppelen:&prompt.root; mount -t reiserfs /dev/ad1s1 /mnt
Index: translations/nl_NL.ISO8859-1/books/handbook/geom/chapter.xml
===================================================================
--- translations/nl_NL.ISO8859-1/books/handbook/geom/chapter.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/handbook/geom/chapter.xml (revision 40367)
@@ -1,998 +1,1364 @@
TomRhodesGeschreven door SiebrandMazelandVertaald door GEOM: Modulair schijftransformatie raamwerkOverzichtGEOMGEOM schijf raamwerkGEOMDit hoofdstuk beschrijft het gebruik van schijven in het
GEOM raamwerk in &os;. Hieronder vallen de belangrijkste
RAID
besturingsprogramma's die het raamwerk 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-niveaus 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
raamwerk 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.ko:&prompt.root; kldload geom_stripeZorg ervoor dat er een koppelpunt beschikbaar is. Als dit
volume een rootpartitie wordt, gebruikt dan tijdelijk een
ander koppelpunt zoals /mnt:&prompt.root; mkdir /mntStel de apparaatnamen voor de schijven vast die aaneen
worden geschakeld en maak het nieuwe apparaat aan. Om twee
ongebruikte, ongepartitioneerde ATA
schijven aaneen te schakelen (/dev/ad2
en /dev/ad3):&prompt.root; gstripe label -v st0 /dev/ad2 /dev/ad3
Metadata value stored on /dev/ad2.
Metadata value stored on /dev/ad3.
Done.Schrijf een standaard label naar de nieuwe partitie, ook
wel bekend als een partitietabel en installeer de standaard
opstart code:&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. Vanaf nu kan er een
bestandssysteem op st0a worden
gezet met behulp van de newfs applicatie:&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
aangekoppeld te worden.Om de nieuwe aaneengeschakelde schijf handmatig te koppelen
moet het volgende gedaan worden:&prompt.root; mount /dev/stripe/st0a /mntOm dit aaneengeschakelde bestandssysteem automatisch aan te
koppelen bij het opstarten wordt de volume-informatie in
/etc/fstab gezet. Voor dit doel wordt een
permanent koppelpunt, genaamd stripe, aangemaakt:&prompt.root; mkdir /stripe
&prompt.root; echo "/dev/stripe/st0a /mnt ufs rw 2 2" \>> /etc/fstabLaadt de module geom_stripe.ko 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 spiegelen
- Spiegelen (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.
+ RAID1
- Begin met een systeem dat twee schijven heeft van gelijke
- grootte. Deze oefeningen stellen dat het directe-toegang
- (&man.da.4;) SCSI-schijven zijn.
+ RAID1, of spiegelen, is de
+ techniek om dezelfde gegevens naar meer dan één schijf te schrijven.
+ Spiegels worden normaliter gebruikt om tegen gegevensverlies te beschermen
+ indien een schijf kapot gaat. Elke schijf in een spiegel bevat een
+ identieke kopie van de gegevens. Wanneer een individuele schijf het
+ begeeft, blijft de spiegel functioneren, en levert het gegevens van de
+ schijven die nog wel functioneren. De computer blijft draaien en de
+ beheerder heeft tijd om de kapotte schijf te vervangen zonder onderbreking
+ voor de gebruikers.
-
- Primaire schijven spiegelen
+ Twee veelvoorkomende situaties worden in deze voorbeelden getoond.
+ Het eerste is het maken van een spiegel van twee nieuwe schijven en het
+ als vervanging voor een bestaande enkele schijf te gebruiken. Het tweede
+ voorbeeld maakt een spiegel op een enkele nieuwe schijf aan, kopieert de
+ gegevens van de oude schijf er naar toe, en plaatst daarna de oude schijf
+ in de spiegel. Hoewel deze procedure iets moeilijker is, is er maar één
+ nieuwe schijf nodig.
- Aannemende dat &os; op het eerste
- da0-schijfapparaat is
- geïnstalleerd, dient er aan &man.gmirror.8; verteld te
- worden om daar de primaire gegevens op te slaan.
+ Traditioneel zijn de twee schijven in een spiegel van hetzelfde model
+ en hebben ze dezelfde capaciteit, maar &man.gmirror.8; verplicht dit niet.
+ Spiegels die met ongelijke schijven zijn gemaakt zullen de capaciteit van
+ de kleinste schijf in de spiegel aannemen. Extra schijfruimte op grotere
+ schijven zal ongebruikt blijven. Schijven die later in de spiegel worden
+ geplaatst moeten tenminste evenveel capaciteit hebben als de kleinste
+ schijf die reeds in de spiegel zit.
- Voordat de mirror gebouwd wordt, dient aanvullende
- debuginformatie en openingstoegang tot het apparaat aangezet te
- worden door de &man.sysctl.8;-optie
- kern.geom.debugflags op de volgende waarde in
- te stellen:
+
+ De procedures voor het spiegelen die hier getoond worden zijn
+ niet-destructief, maar maak zoals bij elke grote schijfoperatie eerst
+ een volledige back-up.
+
- &prompt.root; sysctl kern.geom.debugflags=17
+
+ Kwesties met meta-gegevens
- Maak nu de mirror aan. Begin het proces door informatie
- over metagegevens op het primaire schijfapparaat op te slaan,
- waardoor effectief het apparaat /dev/mirror/gm aangemaakt
- wordt met het volgende commando:
+ Veel schijfsystemen slaan meta-gegevens op aan het einde van elke
+ schijf. Oude meta-gegevens dienen gewist te worden voordat de schijf
+ herbruikt wordt voor een spiegel. De meeste problemen worden
+ veroorzaakt door twee soorten van achtergebleven meta-gegevens:
+ GPT-partitietabellen en oude meta-gegevens van &man.gmirror.8; van een
+ vorige spiegel.
-
- Het creëeren van een mirror buiten de opstartschijf
- kan resulteren in gegevensverlies als er enige gegevens zijn
- opgeslagen op de laatste sector van de schijf. Dit gevaar
- wordt verminderd als het creëeren van de mirror direct na
- een verse installatie van &os; wordt gedaan. De volgende procedure
- werkt ook niet samen met de instellingen van de standaardinstallatie
- van &os; 9.X dat het nieuwe
- partitieschema GPT gebruikt. GEOM zal de
- metagegevens van GPT overschrijven, wat'
- gegevensverlies en mogelijk een onstartbaar systeem tot gevolg
- heeft.
-
+ GPT-meta-gegevens kunnen gewist worden met &man.gpart.8;. Dit
+ voorbeeld wist zowel de primaire als de back-up GPT-partitietabellen van
+ schijf ada8:
- &prompt.root; gmirror label -vb round-robin gm0 /dev/da0
+ &prompt.root; gpart destroy -F ada8
+ &man.gmirror.8; kan in één stap een schijf uit een actieve spiegel
+ halen en de meta-gegevens wissen. Hier wordt de voorbeeldschijf
+ ada8 uit de actieve spiegel
+ gm4 gehaald:
- Het systeem hoort te antwoorden met:
+ &prompt.root; gmirror remove gm4 ada8
- Metadata value stored on /dev/da0.
-Done.
+ Gebruik, als de spiegel niet draait maar er nog oude meta-gegevens
+ van de spiegel op de schijf staan, gmirror clear om
+ deze te verwijderen:
- Initialiseer GEOM, dit zal de kernelmodule
- /boot/kernel/geom_mirror.ko laden:
+ &prompt.root; gmirror clear ada8
+ &man.gmirror.8; slaat één blok aan meta-gegevens aan het einde van
+ de schijf op. Omdat GPT-partitieschema's ook meta-gegevens aan het
+ einde van de schijf opslaan, wordt het spiegelen van volledige
+ GPT-schijven met &man.gmirror.8; niet aangeraden. Hier wordt
+ MBR-partitionering gebruikt omdat het alleen een partitietabel aan het
+ begin van de schijf opslaat en niet conflicteert met
+ &man.gmirror.8;.
+
+
+
+ Een spiegel met twee nieuwe schijven maken
+
+ In dit voorbeeld is &os; reeds op een enkele schijf
+ ada0 geïnstalleerd. Twee nieuwe schijven,
+ ada1 en ada2 zijn met
+ het systeem verbonden. Er zal een nieuwe spiegel op deze twee schijven
+ aangemaakt worden die de oude enkele schijf zal vervangen.
+
+ &man.gmirror.8; heeft een kernelmodule
+ geom_mirror.ko nodig, ingebouwd in de kernel of
+ geladen tijdens het opstarten of draaien. Laadt nu handmatig de
+ kernelmodule:
+
&prompt.root; gmirror load
-
- Wanneer dit commando succesvol verloopt, maakt het het
- apparaatknooppunt gm0 aan onder de
- map /dev/mirror.
-
+ Maak de spiegel aan met de twee nieuwe schijven:
- Maak het mogelijk om de kernelmodule
- geom_mirror.ko tijdens systeeminitialisatie
- te laden:
+ &prompt.root; gmirror label -v gm0 /dev/ada1 /dev/ada2
- &prompt.root; echo 'geom_mirror_load="YES"' >> /boot/loader.conf
+ gm0 is een door de gebruiker gekozen
+ apparaatnaam die aan de nieuwe spiegel wordt toegekend. Nadat de
+ spiegel is gestart, zal deze apparaatnaam verschijnen in de map
+ /dev/mirror/.
- Bewerk het bestand /etc/fstab, waarbij
- verwijzingen naar het oude da0 worden
- vervangen door de nieuwe apparaatknooppunten van het
- mirrorapparaat gm0.
+ Nu kunnen er met &man.gpart.8; MBR- en bsdlabel-partitietabellen op
+ de spiegel worden aangemaakt. Hier wordt er een traditioneel schema
+ van een gesplitst bestandssysteem getoond, met partities voor
+ /, swap, /var,
+ /tmp en /usr. Dit werkt ook
+ voor een enkel bestandssysteem met enkel / en
+ een wisselpartitie.
-
- Indien &man.vi.1; de geprefereerde tekstverwerker is, is
- het volgende een gemakkelijke manier om deze taak te
- volbrengen:
+ Partities op de spiegel hoeven niet dezelfde grootte te hebben als
+ die op de bestaande schijf, maar moeten groot genoeg zijn om alle
+ gegevens die reeds op ada0 staan te kunnen
+ bevatten.
- &prompt.root; vi /etc/fstab
+ &prompt.root; gpart create -s MBR mirror/gm0
+&prompt.root; gpart add -t freebsd -a 4k mirror/gm0
+&prompt.root; gpart show mirror/gm0
+=> 63 156301423 mirror/gm0 MBR (74G)
+ 63 63 - free - (31k)
+ 126 156301299 1 freebsd (74G)
+ 156301425 61 - free - (30k)
- Maak een reservekopie van de huidige gegevens van
- fstab in &man.vi.1; door :w
- /etc/fstab.bak in te typen. Vervang daarna alle
- oude verwijzingen naar da0 door
- gm0 door
- :%s/da/mirror\/gm/g in te typen.
-
+ &prompt.root; gpart create -s BSD mirror/gm0s1
+&prompt.root; gpart add -t freebsd-ufs -a 4k -s 2g mirror/gm0s1
+&prompt.root; gpart add -t freebsd-swap -a 4k -s 4g mirror/gm0s1
+&prompt.root; gpart add -t freebsd-ufs -a 4k -s 2g mirror/gm0s1
+&prompt.root; gpart add -t freebsd-ufs -a 4k -s 1g mirror/gm0s1
+&prompt.root; gpart add -t freebsd-ufs -a 4k mirror/gm0s1
+&prompt.root; gpart show mirror/gm0s1
+=> 0 156301299 mirror/gm0s1 BSD (74G)
+ 0 2 - free - (1.0k)
+ 2 4194304 1 freebsd-ufs (2.0G)
+ 4194306 8388608 2 freebsd-swap (4.0G)
+ 12582914 4194304 4 freebsd-ufs (2.0G)
+ 16777218 2097152 5 freebsd-ufs (1.0G)
+ 18874370 137426928 6 freebsd-ufs (65G)
+ 156301298 1 - free - (512B)
- Het resulterende fstab zou er ongeveer
- hetzelfde als het volgende uit moeten zien. Het maakt niet uit
- of de schijfstations SCSI of
- RAID zijn, het
- RAID-apparaat zal ongeacht hiervan
- gm zijn.
+ Maak de spiegel opstartbaar door opstartcode in het MBR en bsdlabel
+ te installeren en de actieve slice in te stellen:
- # Device Mountpoint FStype Options Dump Pass#
-/dev/mirror/gm0s1b none swap sw 0 0
-/dev/mirror/gm0s1a / ufs rw 1 1
-/dev/mirror/gm0s1d /usr ufs rw 0 0
-/dev/mirror/gm0s1f /home ufs rw 2 2
-#/dev/mirror/gm0s2d /store ufs rw 2 2
-/dev/mirror/gm0s1e /var ufs rw 2 2
-/dev/acd0 /cdrom cd9660 ro,noauto 0 0
+ &prompt.root; gpart bootcode -b /boot/mbr mirror/gm0
+&prompt.root; gpart set -a active -i 1 mirror/gm0
+&prompt.root; gpart bootcode -b /boot/boot mirror/gm0s1
- Start het systeem opnieuw op:
+ Formatteer de bestandssystemen op de nieuwe spiegel en zet daarbij
+ soft-updates aan.
- &prompt.root; shutdown -r now
+ &prompt.root; newfs -U /dev/mirror/gm0s1a
+&prompt.root; newfs -U /dev/mirror/gm0s1d
+&prompt.root; newfs -U /dev/mirror/gm0s1e
+&prompt.root; newfs -U /dev/mirror/gm0s1f
- Tijdens de systeeminitialisatie dient het apparaat
- gm0 in plaats van
- da0 gebruikt te worden. Als het
- systeem volledig is geïnitialiseerd, kan dit gecontroleerd
- worden door de uitvoer van het commando mount
- te inspecteren:
+ Bestandssystemen van de originele schijf
+ (ada0) kunnen nu met &man.dump.8; en
+ &man.restore.8; naar de spiegel gekopieerd worden:
- &prompt.root; mount
-Filesystem 1K-blocks Used Avail Capacity Mounted on
-/dev/mirror/gm0s1a 1012974 224604 707334 24% /
-devfs 1 1 0 100% /dev
-/dev/mirror/gm0s1f 45970182 28596 42263972 0% /home
-/dev/mirror/gm0s1d 6090094 1348356 4254532 24% /usr
-/dev/mirror/gm0s1e 3045006 2241420 559986 80% /var
-devfs 1 1 0 100% /var/named/dev
+ &prompt.root; mount /dev/mirror/gm0s1a /mnt
+&prompt.root; dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)
+&prompt.root; mount /dev/mirror/gm0s1d /mnt/var
+&prompt.root; mount /dev/mirror/gm0s1e /mnt/tmp
+&prompt.root; mount /dev/mirror/gm0s1f /mnt/usr
+&prompt.root; dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)
+&prompt.root; dump -C16 -b64 -0aL -f - /tmp | (cd /mnt/tmp && restore -rf -)
+&prompt.root; dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)
- De uitvoer ziet er als verwacht uit. Plaats als laatste
- stap, om synchronisatie te beginnen, de schijf
- da1 in de mirror met het volgende
- commando:
+ /mnt/etc/fstab moet bewerkt worden om naar de
+ nieuwe bestandssystemen op de spiegel te wijzen:
- &prompt.root; gmirror insert gm0 /dev/da1
+ # Device Mountpoint FStype Options Dump Pass#
+/dev/mirror/gm0s1a / ufs rw 1 1
+/dev/mirror/gm0s1b none swap sw 0 0
+/dev/mirror/gm0s1d /var ufs rw 2 2
+/dev/mirror/gm0s1e /tmp ufs rw 2 2
+/dev/mirror/gm0s1f /usr ufs rw 2 2
- De status kan gecontroleerd worden tijdens het bouwen van de
- mirror met het volgende commando:
+ Als de kernelmodule &man.gmirror.8; niet in de kernel is ingebouwd,
+ wordt /mnt/boot/loader.conf bewerkt om de module
+ tijdens het opstarten te laden:
- &prompt.root; gmirror status
+ geom_mirror_load="YES"
- Wanneer de mirror gebouwd is en alle huidige gegevens zijn
- gesynchroniseerd, dient de uitvoer van het bovenstaande commando
- er als volgt uit te zien:
+ Herstart het systeem om de nieuwe spiegel te testen en te verifiëren
+ dat alle gegevens zijn gekopieerd. Het BIOS zal de spiegel als twee
+ individuele schijven zien in plaats van als een spiegel. Omdat de
+ schijven identiek zijn, maakt het niet uit vanaf welke schijf wordt
+ opgestart.
- Name Status Components
-mirror/gm0 COMPLETE da0
- da1
+ Bekijk de sectie Problemen
+ oplossen als er problemen zijn tijdens het opstarten. Door de
+ originele ada0 uit te schakelen en los te
+ koppelen kan het als offline back-up bewaard worden.
- Als er problemen zijn, of als de mirror nog bezig is om het
- bouwproces te voltooien, zal het voorbeeld
- DEGRADED in plaats van
- COMPLETE laten zien.
+ Tijdens het gebruik zal de spiegel zich net zoals de originele
+ enkele schijf gedragen.
+ Een spiegel met een bestaande schijf aanmaken
+
+ In dit voorbeeld is &os; reeds geïnstalleerd op een enkele schijf,
+ ada0. Een nieuwe schijf,
+ ada1, is met het systeem verbonden. Er zal
+ een spiegel van één schijf worden aangemaakt op de nieuwe schijf, het
+ bestaande systeem zal ernaar worden gekopieerd, en daarna zal de oude
+ schijf in de spiegel worden geplaatst. Deze enigszins complexe
+ procedure is nodig omdat &man.gmirror.8; een blok van 512 bytes aan
+ meta-gegevens aan het einde van elke schijf moet plaatsen en de
+ bestaande ada0 meestal alle ruimte reeds heeft
+ toegewezen.
+
+ Laadt de kernelmodule &man.gmirror.8;:
+
+ &prompt.root; gmirror load
+
+ Controleer de mediagrootte van de originele schijf met
+ &man.diskinfo.8;:
+
+ &prompt.root; diskinfo -v ada0 | head -n3
+/dev/ada0
+ 512 # sectorsize
+ 1000204821504 # mediasize in bytes (931G)
+
+ Maak een spiegel aan op de nieuwe schijf. Om er zeker van te zijn
+ dat de capaciteit van de spiegel niet groter is dan die van de originele
+ schijf, wordt &man.gnop.8; gebruikt om een nepschijf van precies
+ dezelfde grootte aan te maken. Deze schijf slaat geen gegevens op, maar
+ wordt alleen gebruikt om de grootte van de spiegel te begrenzen.
+ Wanneer &man.gmirror.8; de spiegel aanmaakt, zal het de capaciteit
+ beperken tot de grootte van gzero.nop zelfs
+ als de nieuwe schijf (ada1) meer ruimte heeft.
+ Merk op dat de 1000204821504 op de tweede
+ regel gelijk moet zijn aan de mediagrootte van
+ ada0 zoals hierboven door &man.diskinfo.8; is
+ getoond.
+
+ &prompt.root; geom zero load
+&prompt.root; gnop create -s 1000204821504 gzero
+&prompt.root; gmirror label -v gm0 gzero.nop ada1
+&prompt.root; gmirror forget gm0
+
+ gzero.nop slaat geen gegevens op, dus ziet
+ de spiegel het niet als verbonden. De spiegel wordt verteld om
+ componenten die niet verbonden zijn te vergeten, waarbij
+ referenties naar gzero.nop worden verwijderd.
+ Het resultaat is een spiegelapparaat dat slechts één enkele schijf,
+ ada1, bevat.
+
+ Bekijk de partitietabel van ada0 nadat
+ gm0 is aangemaakt.
+
+ Deze uitvoer komt van een schijf van 1 TB. Als er wat
+ niet-toegewezen ruimte aanwezig is aan het einde van de schijf, kan de
+ inhoud direct van ada0 naar de nieuwe spiegel
+ worden gekopieerd.
+
+ Als de uitvoer echter toont dat alle ruimte op de schijf is
+ toegewezen zoals in de volgende lijst, is er geen ruimte over voor de
+ 512 bytes aan meta-gegevens van &man.gmirror.8; aan het einde van de
+ schijf.
+
+ &prompt.root; gpart show ada0
+=> 63 1953525105 ada0 MBR (931G)
+ 63 1953525105 1 freebsd [active] (931G)
+
+ In dit geval moet de partitietabel worden bewerkt om de capaciteit
+ op mirror/gm0 met één sector te verminderen.
+ De procedure hiervoor wordt later uitgelegd.
+
+ In beide gevallen dienen de partitietabellen op de primaire schijf
+ eerst gekopieerd te worden. Dit kan gedaan worden met de subcommando's
+ backup en restore van
+ &man.gpart.8;.
+
+ &prompt.root; gpart backup ada0 > table.ada0
+&prompt.root; gpart backup ada0s1 > table.ada0s1
+
+ Deze subcommando's maken twee bestanden aan,
+ table.ada0 en table.ada0s1.
+ Dit voorbeeld komt van een schijf van 1 TB af:
+
+ &prompt.root; cat table.ada0
+MBR 4
+1 freebsd 63 1953525105 [active]
+
+ &prompt.root; cat table.ada0s1
+BSD 8
+1 freebsd-ufs 0 4194304
+2 freebsd-swap 4194304 33554432
+4 freebsd-ufs 37748736 50331648
+5 freebsd-ufs 88080384 41943040
+6 freebsd-ufs 130023424 838860800
+7 freebsd-ufs 968884224 984640881
+
+ Als de gehele schijf was gebruikt in de uitvoer van &man.gpart.8;
+ show, dan moet de capaciteit in deze partitietabellen
+ met één sector verminderd worden. Bewerk de twee bestanden zodat de
+ grootte van zowel de slice als de laatste partitie met één verminderd
+ wordt. Dit zijn de laatste getallen in elke lijst.
+
+ &prompt.root; cat table.ada0
+MBR 4
+1 freebsd 63 1953525104 [active]
+
+ &prompt.root; cat table.ada0s1
+BSD 8
+1 freebsd-ufs 0 4194304
+2 freebsd-swap 4194304 33554432
+4 freebsd-ufs 37748736 50331648
+5 freebsd-ufs 88080384 41943040
+6 freebsd-ufs 130023424 838860800
+7 freebsd-ufs 968884224 984640880
+
+ Als er tenminste één sector aan het einde van de schijf niet was
+ toegewezen, kunnen deze twee bestanden ongewijzigd gebruikt worden.
+ Herstel nu de partitietabel naar
+ mirror/gm0.
+
+ &prompt.root; gpart restore mirror/gm0 < table.ada0
+&prompt.root; gpart restore mirror/gm0s1 < table.ada0s1
+
+ Controleer de partitietabel met &man.gpart.8;
+ show. Dit voorbeeld heeft
+ gm0s1a voor /,
+ gm0s1d voor /var,
+ gm0s1e voor /usr,
+ gm0s1f voor /data1 en
+ gm0s1g voor /data2.
+
+ &prompt.root; gpart show mirror/gm0
+=> 63 1953525104 mirror/gm0 MBR (931G)
+ 63 1953525042 1 freebsd [active] (931G)
+ 1953525105 62 - free - (31k)
+
+&prompt.root; gpart show mirror/gm0s1
+=> 0 1953525042 mirror/gm0s1 BSD (931G)
+ 0 2097152 1 freebsd-ufs (1.0G)
+ 2097152 16777216 2 freebsd-swap (8.0G)
+ 18874368 41943040 4 freebsd-ufs (20G)
+ 60817408 20971520 5 freebsd-ufs (10G)
+ 81788928 629145600 6 freebsd-ufs (300G)
+ 710934528 1242590514 7 freebsd-ufs (592G)
+ 1953525042 63 - free - (31k)
+
+ Zowel de slice als de laatste partitie dienen wat vrije ruimte aan
+ het einde van elke schijf te hebben.
+
+ Maak bestandssystemen aan op deze nieuwe partities. Het aantal
+ partities zal variëren, overeenkomend met de partities op de originele
+ schijf, ada0.
+
+ &prompt.root; newfs -U /dev/mirror/gm0s1a
+&prompt.root; newfs -U /dev/mirror/gm0s1d
+&prompt.root; newfs -U /dev/mirror/gm0s1e
+&prompt.root; newfs -U /dev/mirror/gm0s1f
+&prompt.root; newfs -U /dev/mirror/gm0s1g
+
+ Maak de spiegel opstartbaar door opstartcode in het MBR en bsdlabel
+ te installeren en de actieve slice in te stellen:
+
+ &prompt.root; gpart bootcode -b /boot/mbr mirror/gm0
+&prompt.root; gpart set -a active -i 1 mirror/gm0
+&prompt.root; gpart bootcode -b /boot/boot mirror/gm0s1
+
+ Pas /etc/fstab aan zodat het de nieuwe
+ partities op de spiegel gebruikt. Maak eerst een kopie van dit bestand
+ als /etc/fstab.orig.
+
+ &prompt.root; cp /etc/fstab /etc/fstab.orig
+
+ Wijzig /etc/fstab door
+ /dev/ada0 door
+ mirror/gm0 te vervangen.
+
+ # Device Mountpoint FStype Options Dump Pass#
+/dev/mirror/gm0s1a / ufs rw 1 1
+/dev/mirror/gm0s1b none swap sw 0 0
+/dev/mirror/gm0s1d /var ufs rw 2 2
+/dev/mirror/gm0s1e /usr ufs rw 2 2
+/dev/mirror/gm0s1f /data1 ufs rw 2 2
+/dev/mirror/gm0s1g /data2 ufs rw 2 2
+
+ Als de kernelmodule &man.gmirror.8; niet in de kernel is gebouwd,
+ wijzig dan /boot/loader.conf om het te
+ laden:
+
+ geom_mirror_load="YES"
+
+ Bestandssystemen van de originele schijf kunnen nu met &man.dump.8;
+ en &man.restore.8; naar de spiegel gekopieerd worden. Merk op dat het
+ maken van een snapshot voor elk bestandssysteem dat met dump
+ -L gedumpt is even kan duren.
+
+ &prompt.root; mount /dev/mirror/gm0s1a /mnt
+&prompt.root; dump -C16 -b64 -0aL -f - / | (cd /mnt && restore -rf -)
+&prompt.root; mount /dev/mirror/gm0s1d /mnt/var
+&prompt.root; mount /dev/mirror/gm0s1e /mnt/usr
+&prompt.root; mount /dev/mirror/gm0s1f /mnt/data1
+&prompt.root; mount /dev/mirror/gm0s1g /mnt/data2
+&prompt.root; dump -C16 -b64 -0aL -f - /usr | (cd /mnt/usr && restore -rf -)
+&prompt.root; dump -C16 -b64 -0aL -f - /var | (cd /mnt/var && restore -rf -)
+&prompt.root; dump -C16 -b64 -0aL -f - /data1 | (cd /mnt/data1 && restore -rf -)
+&prompt.root; dump -C16 -b64 -0aL -f - /data2 | (cd /mnt/data2 && restore -rf -)
+
+ Start het systeem opnieuw op vanaf ada1.
+ Als alles werkt, zal het systeem opstarten vanaf
+ mirror/gm0, wat nu dezelfde gegevens bevat die
+ ada0 eerder bevatte. Zie de sectie Problemen oplossen als er
+ problemen zijn met het opstarten.
+
+ Op dit moment bestaat de spiegel nog steeds alleen uit de enkele
+ schijf ada1.
+
+ Nadat er succesvol van mirror/gm0 is
+ opgestart, is de laatste stap het plaatsen van
+ ada0 in de spiegel.
+
+
+ Als ada0 in de spiegel wordt geplaatst,
+ zal de vorige inhoud worden overschreven door gegevens in de spiegel.
+ Ben er zeker van dat mirror/gm0 dezelfde
+ gegevens bevat als ada0 voordat
+ ada0 aan de spiegel wordt toegevoegd. Als
+ er iets mis is met de gegevens die door &man.dump.8; en
+ &man.restore.8; gekopieerd zijn, draai dan
+ /etc/fstab terug om de bestandssystemen op
+ ada0 aan te koppelen, start opnieuw op, en
+ probeer de hele procedure nogmaals.
+
+
+ &prompt.root; gmirror insert gm0 ada0
+GEOM_MIRROR: Device gm0: rebuilding provider ada0
+
+ De synchronisatie tussen de twee schijven zal onmiddellijk beginnen.
+ &man.gmirror.8; status toont de voortgang.
+
+ &prompt.root; gmirror status
+ Name Status Components
+mirror/gm0 DEGRADED ada1 (ACTIVE)
+ ada0 (SYNCHRONIZING, 64%)
+
+ Na een tijd zal de synchronisatie voltooid zijn.
+
+ GEOM_MIRROR: Device gm0: rebuilding provider ada0 finished.
+&prompt.root; gmirror status
+ Name Status Components
+mirror/gm0 COMPLETE ada1 (ACTIVE)
+ ada0 (ACTIVE)
+
+ mirror/gm0 bestaat nu uit de twee schijven
+ ada0 en ada1, en de
+ inhoud wordt automatisch met elkaar gesynchroniseerd. In het gebruik
+ zal mirror/gm0 zich net zo gedragen als de
+ originele enkele schijf.
+
+
+ Problemen oplossen
- Systeem weigert op te starten
+ Problemen met opstarten
- Als een systeem opstart in een prompt dat op het volgende
- lijkt:
+
+ BIOS-instellingen
- ffs_mountroot: can't find rootvp
-Root mount failed: 6
-mountroot>
+ Mogelijk is het nodig om de BIOS-instellingen te wijzigen om
+ van één van de nieuwe gespiegelde schijven op te starten. Beide
+ spiegelschijven kunnen gebruikt worden voor het opstarten. Als
+ componenten van een spiegel bevatten ze identieke gegevens.
+
- 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:
+
+ Opstartproblemen
- OK? load geom_mirror
-OK? boot
+ Als het opstarten met dit bericht stopt, is er iets mis met het
+ spiegelapparaat:
- Als dit werkt werd de module om welke reden dan ook niet
- juist geladen. Controleer of de relevante regel in
- /boot/loader.conf correct is. Als het
- probleem aanhoudt, zet dan de onderstaande regel in het
- bestand met kernelinstellingen en herbouw en installeer de
- kernel.
+ Mounting from ufs:/dev/mirror/gm0s1a failed with error 19.
- options GEOM_MIRROR
+Loader variables:
+ vfs.root.mountfrom=ufs:/dev/mirror/gm0s1a
+ vfs.root.mountfrom.options=rw
- Hiermee moet het probleem opgelost zijn.
+Manual root filesystem specification:
+ <fstype>:<device> [options]
+ Mount <device> using filesystem <fstype>
+ and with the specified (optional) option list.
+
+ eg. ufs:/dev/da0s1a
+ zfs:tank
+ cd9660:/dev/acd0 ro
+ (which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /)
+
+ ? List valid disk boot devices
+ . Yield 1 second (for background tasks)
+ <empty line> Abort manual input
+
+mountroot>
+
+ Het vergeten om de module geom_mirror in
+ /boot/loader.conf te laden kan dit probleem
+ veroorzaken. Start op vanaf een &os;-9 of nieuwere CD of USB-stick
+ en kies Shell op de eerste prompt om dit op te
+ lossen. Laadt daarna de spiegelmodule en en koppel het
+ spiegelapparaat aan:
+
+ &prompt.root; gmirror load
+&prompt.root; mount /dev/mirror/gm0s1a /mnt
+
+ Voeg een regel om de spiegelmodule te laden toe aan
+ /mnt/boot/loader.conf:
+
+ geom_mirror_load="YES"
+
+ Sla het bestand op en start opnieuw op.
+
+ Andere problemen die error 19 veroorzaken
+ zijn lastiger om op te lossen. Typ
+ ufs:/dev/ada0s1a in op de prompt. Hoewel het
+ systeem van ada0 zou moeten opstarten,
+ verschijnt er een andere prompt om een shell uit te kiezen omdat
+ /etc/fstab onjuist is. Druk op de prompt op
+ de Enter-toets. Draai de wijzigingen tot nu toe terug door
+ /etc/fstab terug te draaien, waardoor de
+ bestandssystemen vanaf de originele schijf (
+ ada0) in plaats vanaf de spiegel worden
+ aangekoppeld. Start het systeem opnieuw op en probeer de procedure
+ nogmaals.
+
+ Enter full pathname of shell or RETURN for /bin/sh:
+&prompt.root; cp /etc/fstab.orig /etc/fstab
+&prompt.root; reboot
+ Herstellen van falende schijven
- Het mooie aan het spiegelen van schijven is dat als een
- schijf faalt, deze vervangen kan worden, aangenomen zonder
- gegevensverlies.
+ Het mooie aan het spiegelen van schijven is dat een individuele
+ schijf kan falen zonder dat de spiegel gegevens verliest.
- Neem met betrekking tot de vorige
- RAID1-configuratie aan dat
- da1 het geeft begeven en vervangen moet
- worden. Bepaal, om het te vervangen, welke schijf het heeft
- begeven en schakel het systeem uit. Op dit moment kan de schijf
- worden verwisseld door een nieuwe en kan het systeem weer worden
- opgestart. Nadat het systeem is herstart, kunnen de volgende
- commando's worden gebruikt om de schijf te vervangen:
+ ada0 is één van de twee schijven die de
+ spiegel in het vorige voorbeeld vormen. Als
+ ada0 faalt zal de spiegel blijven werken en
+ gegevens leveren van de overgebleven werkende schijf,
+ ada1.
+ Om de kapotte schijf te vervangen wordt de computer uitgezet en de
+ kapotte schijf fysiek vervangen door een nieuwe schijf van gelijke of
+ grotere capaciteit. Fabrikanten passen enigszins willekeurige waarden
+ toe om schijven in gigabytes aan te duiden, de enige manier om er echt
+ zeker van te zijn is om de totale hoeveelheid aan sectors aangegeven
+ door diskinfo -v te vergelijken. Een schijf met een
+ grotere capaciteit dan in de spiegel zal werken, alhoewel de extra
+ ruimte op de nieuwe schijf niet gebruikt zal worden.
+
+ Nadat de computer opnieuw is aangezet, zal de spiegel in een
+ degraded toestand met slechts één schijf draaien. De
+ spiegel wordt verteld om schijven die momenteel niet verbonden zijn te
+ vergeten:
+
&prompt.root; gmirror forget gm0
- &prompt.root; gmirror insert gm0 /dev/da1
+ Alle oude meta-gegevens zouden van de vervangende schijf gewist
+ moeten zijn. Daarna wordt de schijf, in dit voorbeeld
+ ada4, in de spiegel geplaatst:
- Gebruik het commando gmirror status om de
- voortgang van het herbouwen te bekijken. Zo eenvoudig is het.
+ &prompt.root; gmirror insert gm0 /dev/ada4
+
+ De hersynchronisatie begint wanneer de nieuwe schijf in de spiegel
+ wordt geplaatst. Het kopiëren van gegevens van de spiegel naar een
+ nieuwe schijf kan een tijd duren. De prestaties van de spiegel zullen
+ tijdens het kopiëren sterk verminderd zijn, dus is het het beste om
+ nieuwe schijven in te voegen wanneer de vraag op de computer laag
+ is.
+
+ De voortgang kan met gmirror status gevolgd
+ worden, wat de schijven die gesynchroniseerd en het percentage van de
+ voltooiing laat zien. Tijdens de hersynchronisatie zal de status
+ DEGRADED zijn en veranderen in
+ COMPLETE wanneer het proces is
+ voltooid.MarkGladmanGeschreven door DanielGerzoTomRhodesGebaseerd op documentatie van MurrayStokelyRAID3 - Striping op byte-niveau met toegewijde
pariteitGEOMRAID3RAID3 is een methode om verschillende schijven te
combineren in een enkel volume met een toegewijde schijf voor de pariteit.
In een RAID3-systeem worden de gegevens opgesplitst in
een aantal bytes die over alle schijven in de rij worden geschreven,
behalve naar één schijf die als een toegewijde schijf voor
de pariteit dient. Dit betekent dat het lezen van 1024 kB van een
RAID3-implementatie alle schijven in de rij zal
benaderen. De prestatie kan worden verhoogd door meerdere
schijfcontrollers te gebruiken. De RAID3-rij biedt een
fouttolerantie van 1 schijf, terwijl het een capaciteit van 1 - 1/n maal
de totale capaciteit biedt van alle schijven in de rij, waarbij n het
aantal harde schijven in de rij is. Zulke configuraties zijn meestal
geschikt voor het opslaan van gegevens van grotere groottes, bijvoorbeeld
multimedia-bestanden.Er zijn minstens 3 fysieke harde schijven nodig om een
RAID3-rij te bouwen. Elke schijf moet van dezelfde
grootte zijn, aangezien I/O-verzoeken worden verweven om parallel naar
meerdere schijven te lezen of schrijven. Bovendien moet vanwege de aard
van RAID3 het aantal schijven gelijk zijn aan 3, 5, 9,
17, enzovoorts (dus 2^n + 1).Een toegewijde RAID3-rij aanmaken.In &os; is ondersteuning voor RAID3
geïmplementeerd in de GEOM-klasse
&man.graid3.8;. Voor het aanmaken van een toegewijde
RAID3-rij op &os; zijn deze stappen nodig.Hoewel het theoretisch mogelijk is om op &os; van een
RAID3-rij op te starten, is deze configuratie
ongebruikelijk en niet aangeraden.Laad ten eerste de kernelmodule
geom_raid3.ko door de volgende opdracht uit te
voeren:&prompt.root; graid3 loadHet is ook mogelijk om handmatig de module
geom_raid3.ko te laden:&prompt.root; kldload geom_raid3.koZorg ervoor dat er een geschikt aankoppelpunt bestaat of maak
het aan:&prompt.root; mkdir /multimedia/Bepaal de apparaatnamen voor de schijven die aan de rij worden
toegevoegd en maak het nieuwe RAID3-apparaat
aan. Het laatst vermelde apparaat zal dienst doen als de toegewijde
schijf voor de pariteit. Dit voorbeeld gebruikt drie
ongepartitioneerde ATA-schijven:
ada1 en
ada2 voor
gegevens en ada3
voor pariteit.&prompt.root; graid3 label -v gr0 /dev/ada1 /dev/ada2 /dev/ada3
Metadata value stored on /dev/ada1.
Metadata value stored on /dev/ada2.
Metadata value stored on /dev/ada3.
Done.Partitioneer het nieuw aangemaakte apparaat
gr0 en zet er een UFS-bestandssysteem
op:&prompt.root; gpart create -s GPT /dev/raid3/gr0
&prompt.root; gpart add -t freebsd-ufs /dev/raid3/gr0
&prompt.root; newfs -j /dev/raid3/gr0p1Vele getallen zullen over het scherm lopen, en na wat tijd zal
het proces voltooid zijn. Het volume is aangemaakt en is klaar om
aangekoppeld te worden.De laatste stap is het aankoppelen van het
bestandssysteem:&prompt.root; mount /dev/raid3/gr0p1 /multimedia/De RAID3-rij is nu klaar voor gebruik.Aanvullende configuratie is nodig om de bovenstaande opstelling te
behouden tussen het opnieuw starten van het systeem.De module geom_raid3.ko moet geladen zijn
voordat de rij kan worden aangekoppeld. Voeg de volgende regel toe
aan /boot/loader.conf om de kernelmodule
automatisch tijdens de initialisatie van het systeem te
laden:geom_raid3_load="YES"De volgende volume-informatie moet aan het bestand
/etc/fstab worden toegevoegd om het
bestandssysteem van de rij automatisch aan de koppelen tijdens het
opstarten van het systeem:/dev/raid3/gr0p1 /multimedia ufs rw 2 2GEOM Gate netwerk apparatenGEOM ondersteund het op afstand gebruiken van apparaten, zoals
schijven, CD-ROMs, bestanden, etcetera door het gebruik van de
gate-applicaties. Dit is vergelijkbaar met NFS.Om te beginnen moet er een exports bestand gemaakt worden.
Dit bestand specificeert wie de geëxporteerde bron mag
benaderen en welke rechten er op dat moment verleend worden.
Bijvoorbeeld om de vierde slice te exporteren van de eerste
SCSI schijf, moet het volgende in
/etc/gg.exports gezet worden:192.168.1.0/24 RW /dev/da0s4dDit staat alle machines in het privé netwerk toe om het
bestandssysteem op da0s4d te benaderen.Om dit apparaat te kunnen exporteren is het van belang dat de
schijf nog niet gekoppeld is en moet de &man.ggated.8; dienst
gestart worden.&prompt.root; ggatedOm vervolgens het apparaat aan een client machine te koppelen
moet het volgende gedaan worden:&prompt.root; ggatec create -o rw 192.168.1.1 /dev/da0s4d
ggate0
&prompt.root; mount /dev/ggate0 /mntVanaf dit moment kan de schijf benaderd worden via het
koppelpunt /mnt.Let op, dit mislukt als de schijf reeds gekoppeld is op
de server machine of als deze reeds gekoppeld is aan een andere
machine op het netwerk.Zodra het apparaat niet langer nodig is, kan het veilig
ontkoppeld worden met behulp van &man.umount.8; net zoals met
elke andere schijf.Het labelen van schijvenGEOMDisk LabelsTijdens het initialiseren van het systeem zal de &os; kernel
apparaatknooppunten creëren nadat het een apparaat gevonden
heeft. Deze manier om te zoeken naar apparaten levert wat
problemen op bijvoorbeeld wanneer er een nieuwe schijf wordt
toegevoegd via USB. Het is hoogst
waarschijnlijk dat een flash apparaat een apparaatknooppunt
krijgt van da0, waarna de originele
da0 op schuift naar
da1. Dit levert problemen op als
bestandssystemen worden gekoppeld als ze gedefinieerd zijn in
/etc/fstab, dit kan zelfs ertoe leiden dat
het systeem niet opstart.Een mogelijke oplossing hiervoor is om de
SCSI schijven een vaste plek te geven op
een bepaalde volgorde, zodat zodra er een nieuwe schijf
geplaatst wordt, deze een ongebruikt apparaatknooppunt
toegewezen krijgt. Maar wat als er USB
apparaten zijn die de primaire SCSI schijf
vervangt? Dit gebeurd omdat USB apparaten
meestal eerder gevonden worden dan een SCSI
kaart. Een oplossing hiervoor is om de apparaten pas toe te
voegen als het systeem reeds gestart is, een andere methode kan
zijn om alleen een enkele ATA schijf te
koppelen en nooit SCSI schijven door middel
van /etc/fstab.Maar er is een betere oplossing beschikbaar. Door het gebruik
van glabel kunnen beheerders en gebruikers een
label toevoegen aan een schijf, en deze labels gebruiken in
/etc/fstab. Omdat glabel
het label bewaard in de laatste sector van de schijf, kan het
label bewaard blijven ook na een reboot en kan het
bestandssysteem altijd gekoppeld worden ongeacht welk
apparaatknooppunt toegekend is aan het apparaat.Uiteraard hoeft een label niet permanent te zijn, het
glabel programma kan zowel tijdelijke als
permanente labels aanmaken. Alleen een permanent label blijft
beschikbaar ook na een reboot. Zie de &man.glabel.8;
handleiding voor meer informatie over de verschillen tussen de
labeltypes.Label types en voorbeeldenEr zijn twee type labels: een generiek label en een
bestandssysteemlabel. Labels kunnen permanent of tijdelijk
zijn. Permanente labels kunnen met de commando's &man.tunefs.8;
of &man.newfs.8; aangemaakt worden. Ze zullen vervolgens worden
aangemaakt in een submap van
/dev, welke genoemd wordt
naar het bestandssysteemtype. Bijvoorbeeld
UFS2 labels worden geplaatst in de map
/dev/ufs. Permanente
labels kunnen ook worden aangemaakt met het commando
glabel label. Deze zijn niet specifiek voor
het bestandssysteem, en zullen in de map /dev/label aangemaakt
worden.Een tijdelijk label verdwijnt na een herstart van het
systeem. Deze labels worden gecreëerd in
/dev/label en zijn
perfect voor experimenten. Een tijdelijk kan met het commando
glabel create worden aangemaakt. Lees voor
meer informatie de handleidingpagina van &man.glabel.8;.Om een permanent label te schrijven voor een
UFS2-bestandssysteem zonder de huidige data
te vernietigen:&prompt.root; tunefs -L home/dev/da3Als het bestandssyteem vol is kan dit leiden tot data
corruptie; echter als het bestandssysteem vol is zou het
hoofddoel moeten zijn om oude achtergebleven bestanden weg
te halen in plaats van het toevoegen van labels.Er zou nu een label moeten bestaan in
/dev/ufs, welke
toegevoegd kan worden aan het /etc/fstab
bestand:/dev/ufs/home /home ufs rw 2 2Het bestandssysteem mag niet aangekoppeld zijn op het
moment dat tunefs gebruikt wordt.Nu kan het bestandssysteem net als normaal worden gekoppeld:&prompt.root; mount /homeVanaf dit moment is het mogelijk om, zolang de
geom_label.ko geladen wordt tijdens het
opstarten van het systeem, of als deze is meegecompileerd door
middel van de GEOM_LABEL optie in de kernel,
het apparaatknooppunt te wijzigen zonder ernstige gevolgen voor
het systeem.Bestandssystemen kunnen ook een standaard label mee krijgen
door gebruik te maken van de optie met het
newfs commando. Zie de &man.newfs.8;
handleiding voor meer informatie.Het volgende commando kan worden gebruikt om een label te
verwijderen:&prompt.root; glabel destroy homeHet volgende voorbeeld laat zien hoe de partities van een
opstartschijf gelabeld worden.Partities op de opstartschijf labelenDoor de partities op de opstartschijf permanent te labelen
zou het systeem in staat moeten zijn om normaal door te gaan
met opstarten, zelfs als de schijf verplaatst is naar een
andere controller of is overgeplaatst naar een ander systeem.
In dit voorbeeld wordt aangenomen dat er een enkele
ATA-schijf wordt gebruikt, die momenteel
als ad0 door het systeem wordt
herkend. Het wordt ook aangenomen dat het standaard
partitieschema van &os; wordt gebruikt, met de
bestandssystemen /,
/var,
/usr, en
/tmp, alsmede een
wisselpartitie.Start het systeem opnieuw op, en druk bij de
&man.loader.8;-prompt op 4 om in enkele gebruikersmodus op te
starten. Geef dan de volgende commando's:&prompt.root; glabel label rootfs /dev/ad0s1a
GEOM_LABEL: Label for provider /dev/ad0s1a is label/rootfs
&prompt.root; glabel label var /dev/ad0s1d
GEOM_LABEL: Label for provider /dev/ad0s1d is label/var
&prompt.root; glabel label usr /dev/ad0s1f
GEOM_LABEL: Label for provider /dev/ad0s1f is label/usr
&prompt.root; glabel label tmp /dev/ad0s1e
GEOM_LABEL: Label for provider /dev/ad0s1e is label/tmp
&prompt.root; glabel label swap /dev/ad0s1b
GEOM_LABEL: Label for provider /dev/ad0s1b is label/swap
&prompt.root; exitHet systeem zal doorgaan met opstarten in
meergebruikersmodus. Bewerk, nadat het opstarten is voltooid,
/etc/fstab en vervang de conventionele
namen door de respectievelijke labels. Het uiteindelijke
bestand /etc/fstab zal er als volgt
uitzien:# Device Mountpoint FStype Options Dump Pass#
/dev/label/swap none swap sw 0 0
/dev/label/rootfs / ufs rw 1 1
/dev/label/tmp /tmp ufs rw 2 2
/dev/label/usr /usr ufs rw 2 2
/dev/label/var /var ufs rw 2 2Het systeem kan nu worden herstart. Als alles goed ging,
zal het normaal opstarten en zal mount dit
laten zien:&prompt.root; mount
/dev/label/rootfs on / (ufs, local)
devfs on /dev (devfs, local)
/dev/label/tmp on /tmp (ufs, local, soft-updates)
/dev/label/usr on /usr (ufs, local, soft-updates)
/dev/label/var on /var (ufs, local, soft-updates)Beginnend met &os; 7.2 ondersteunt de klasse &man.glabel.8;
een nieuw labeltype voor UFS-bestandssystemen,
gebaseerd op het unieke id van het bestandssysteem,
ufsid. Deze labels kunnen in de map /dev/ufsid gevonden worden en
worden automatisch tijdens het opstarten aangemaakt. Het is
mogelijk om de ufsid-labels te gebruiken om
partities aan te koppelen door middel van de faciliteit
/etc/fstab. Gebruik glabel
status om een lijst van bestandssystemen en hun
overeenkomende ufsid-labels te ontvangen:&prompt.user; glabel status
Name Status Components
ufsid/486b6fc38d330916 N/A ad4s1d
ufsid/486b6fc16926168e N/A ad4s1fIn het bovenstaande voorbeeld representeert
ad4s1d het bestandssysteem /var, terwijl
ad4s1f het bestandssysteem /usr representeert. Door gebruik
te maken van de gegeven ufsid-waarden kunnen
deze partities nu aangekoppeld worden met de volgende regels in
/etc/fstab:/dev/ufsid/486b6fc38d330916 /var ufs rw 2 2
/dev/ufsid/486b6fc16926168e /usr ufs rw 2 2Elke partitie met een ufsid-label kan op
deze manier worden aangekoppeld, waardoor het niet meer nodig is
om handmatig permanente labels voor ze aan te maken, terwijl er
nog steeds van de voordelen van apparaatnaam-onafhankelijk
aankoppelen genoten kan worden.UFS logboeken door middel van GEOMGEOMJournalingMet de komst van &os; 7.0 komt ook de langverwachte
optie van UFS logboeken. De implementatie
zelf is gedaan door middel van het GEOM subsysteem, welke
makkelijk geconfigureerd kan worden met behulp van de
&man.gjournal.8; applicatie.Wat is logboeken? Logboek mogelijkheden betekend het opslaan
van bestandssysteem transacties, zoals wijzigingen die een
complete schrijfactie zijn, voor er meta-data wordt toegevoegd
en voor de wijzigingen op schijf worden gezet. Deze transactie
log kan later opnieuw afgespeeld worden om te voorkomen dat er
bestandssysteem inconsistenties voorkomen.Deze methode is een extra manier om te beschermen tegen
gegevensverlies en inconsistenties van het bestandssysteem. In
tegenstelling tot Soft Updates, welke bijhoud welke meta-data
wijzigingen er worden uitgevoerd en Snapshots, wat een beeld
bestand is van het bestandssysteem, wordt er een complete log
bewaard in de schijfruimte die speciaal voor deze taak is
gereserveerd, en in sommige gevallen op een compleet andere
schijf.In tegenstelling tot andere logboek implementaties is de
gjournal methode blok gebaseerd en niet
geïmplementeerd als onderdeel van het bestandssysteem maar
als uitbreiding op GEOM.Om ondersteuning in te schakelen voor
gjournal, moet de kernel over de volgende optie
beschikken, welke standaard is op &os; 7.X-systemen:options UFS_GJOURNALIndien gejournalde volumes tijdens het opstarten aangekoppeld
moeten worden, moet de kernelmodule
geom_journal.ko ook geladen zijn, door de
volgende regel aan /boot/loader.conf toe te
voegen:geom_journal_load="YES"Ook kan deze functie in een eigen kernel worden ingebouwd,
door de volgende regel aan het kernelinstellingenbestand toe te
voegen:options GEOM_JOURNALHet creëren van een logboek op een vrij en beschikbaar
bestandssysteem kan nu gedaan worden met behulp van de volgende
stappen, ervan uitgaande dat da4 de
nieuwe beschikbare SCSI schijf is:&prompt.root; gjournal load
&prompt.root; gjournal label /dev/da4Op dit moment zou er een ad4
apparaatknooppunt en een ad4.journal
apparaatknooppunt moeten zijn. Nu kan er een bestandssysteem op
gezet worden:&prompt.root; newfs -O 2 -J /dev/da4.journalHet hiervoor ingevoerde commando zal een
UFS2 bestandssysteem met logboek
ondersteuning aanmaken.Koppel het apparaat op een gewenst koppelpunt met:&prompt.root; mount /dev/da4.journal /mntIn het geval dat er meerdere slices zijn, zal er een logboek
voor elke slice gecreëerd worden. Bijvoorbeeld, als
ad4s1 en ad4s2
allebei slices zijn, dan zal gjournal een
ad4s1.journal en een
ad4s2.journal creëeren.Voor performance doeleinden is het gewenst om het logboek op een
andere schijf te bewaren. Voor deze gevallen moet de
logboekleverancier of het opslagapparaat gespecificeerd worden
achter het apparaat waarop de logboek functionaliteit aangebracht
moet worden. De logboekfunctionaliteit kan ook worden
ingeschakeld op een reeds bestaand systeem met behulp van
tunefs. Maak echter altijd een back-up voor dat
dit soort dingen uitgeprobeerd worden. In de meeste gevallen zal
gjournal falen als het geen actueel logboek
kan maken, maar het voorkomt geen dataverlies als gevolg van
verkeerd gebruik van tunefs.Het is ook mogelijk om een journal van de opstartschijf van
een &os;-systeem bij te houden. Voor gedetailleerde instructies
over deze taak wordt naar het artikel Implementing UFS
Journaling on a Desktop PC verwezen.
Index: translations/nl_NL.ISO8859-1/books/handbook/jails/Makefile
===================================================================
--- translations/nl_NL.ISO8859-1/books/handbook/jails/Makefile (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/handbook/jails/Makefile (revision 40367)
@@ -1,19 +1,19 @@
#
# Build the Handbook with just the content from this chapter.
#
# $FreeBSD$
#
# %SOURCE% en_US.ISO8859-1/books/handbook/jails/Makefile
-# %SRCID% 39631
+# %SRCID% 39829
#
#
CHAPTERS= jails/chapter.xml
VPATH= ..
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
DOC_PREFIX?= ${.CURDIR}/../../../..
.include "../Makefile"
Index: translations/nl_NL.ISO8859-1/books/handbook/mac/chapter.xml
===================================================================
--- translations/nl_NL.ISO8859-1/books/handbook/mac/chapter.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/handbook/mac/chapter.xml (revision 40367)
@@ -1,2180 +1,2180 @@
TomRhodesGeschreven door SiebrandMazelandVertaald door RenéLadanVertaling voortgezet door Verplichte Toegangscontrole (MAC)OverzichtMACverplichte toegangscontroleMACmandatory access controlIn &os; 5.X werden nieuwe beveiligingsuitbreidingen
geïntroduceerd uit het TrustedBSD project, dat is gebaseerd
op de &posix;.1e draft. Twee van de meest significante nieuwe
beveiligingsmechanismen zijn faciliteiten voor
Toegangscontrolelijsten voor bestandssystemen
(ACLs) en Verplichte Toegangscontrole
(Mandatory Access Control of MAC). Met
Verplichte Toegangscontrole kunnen nieuwe toegangscontrolemodules
geladen worden, waarmee nieuw beveiligingsbeleid opgelegd kan
worden. Een aantal daarvan bieden beveiliging aan hele kleine
onderdelen van het systeem, waardoor een bepaalde dienst
weerbaarder wordt. Andere bieden allesomvattende gelabelde
beveiliging op alle vlakken en objecten. Het verplichte deel van
de definitie komt van het feit dat het opleggen van de controle
wordt gedaan door beheerders en het systeem en niet wordt
overgelaten aan de nukken van gebruikers, zoals wel wordt gedaan
met toegangscontrole naar goeddunken (discretionary access control
of DAC, de standaardrechten voor bestanden en
System V IPC rechten in &os;).In dit hoofdstuk wordt de nadruk gelegd op het
Verplichte Toegangscontrole Raamwerk (MAC
Framework) en een verzameling van te activeren
beveiligingsbeleidsmodules waarmee verschillende soorten
beveiligingsmechanismen wordt ingeschakeld.Na het lezen van dit hoofdstuk weet u:Welke MAC beveiligingsbeleidsmodules
op dit moment in &os; beschikbaar zijn en welke mechanismen
daarbij horen.Wat MAC beveiligingsbeleidsmodules
implementeren en het verschil tussen gelabeld en
niet-gelabeld beleid.Hoe een systeem efficiënt ingesteld kan worden om
met het MAC-raamwerk te werken.Hoe het beleid van de verschillende
beveiligingsbeleidsmodules die in het
MAC-raamwerk zitten ingesteld kunnen
worden.Hoe een veiligere omgeving gemaakt kan worden met het
MAC-raamwerk en de getoonde voorbeelden;Hoe de MAC-instellingen getest
kunnen worden om er zeker van te zijn dat het raamwerk juist
is geïmplementeerd.Aangeraden voorkennis:Begrip van &unix; en &os; basiskennis ();Bekend zijn met de beginselen van het instellen en
compileren van de kernel ();Enigszins bekend zijn met beveiliging en wat dat te maken
heeft met &os; ().Het verkeerd gebruiken van de informatie die hierin staat
kan leiden tot het niet langer toegang hebben tot een systeem,
ergernis bij gebruikers, of het niet langer kunnen gebruiken van
de mogelijkheden die X11 biedt. Nog belangrijker is dat niet
alleen op MAC vertrouwd moet worden voor de
beveiliging van een systeem. Het
MAC-raamwerk vergroot alleen het bestaande
beveiligingsbeleid; zonder goede beveiligingsprocedures en
regelmatige beveiligingscontroles is een systeem nooit helemaal
veilig.Het is ook van belang op te merken dat de voorbeelden in
dit hoofdstuk alleen voorbeelden zijn. Het is niet aan te
raden ze uit te rollen op een productiesysteem. Het
implementeren van de verschillende beveiligingsbeleidsmodules
dient goed overdacht en getest te worden. Iemand die niet
helemaal begrijpt hoe alles werkt, komt er waarschijnlijk achter
dat die het complete systeem van voor naar achter en weer terug
doorloopt en vele bestanden en mappen opnieuw moet instellen.Wat niet wordt behandeldIn dit hoofdstuk wordt een brede reeks
beveiligingsonderwerpen met betrekking tot het
MAC-raamwerk behandeld. De ontwikkeling
van nieuwe MAC-beveiligingsbeleidsmodules
wordt niet behandeld. Een aantal modules die bij het
MAC-raamwerk zitten hebben specifieke
eigenschappen voor het testen en ontwikkelen van nieuwe modules.
Daaronder vallen &man.mac.test.4;, &man.mac.stub.4; en
&man.mac.none.4;. Meer informatie over deze
beveiligingsbeleidsmodules en de mogelijkheden die ze bieden
staan in de hulppagina's.Sleuteltermen in dit hoofdstukVoordat dit hoofdstuk gelezen wordt, moeten er een aantal
sleuteltermen toegelicht worden. Hiermee wordt hopelijk mogelijke
verwarring en de abrupte introductie van nieuwe termen en
informatie voorkomen.compartiment: een compartiment is een
verzameling van programma's en gegevens die gepartitioneerd of
gescheiden dient te worden en waartoe gebruikers expliciet
toegang moeten krijgen op een systeem. Een compartiment staat
ook voor een groep, zoals een werkgroep, afdeling, project, of
onderwerp. Door gebruik te maken van compartimenten is het
mogelijk om een need-to-know beveiligingsbeleid
in te stellen.hoogwatermarkering: Een
hoogwatermarkeringsbeleid is een beleid dat toestaat om
beveiligingsniveaus te verhogen met het doel informatie dat op
een hoger niveau aanwezig is te benaderen. In de meeste
gevallen wordt het originele niveau hersteld nadat het proces
voltooid is. Momenteel heeft het
MAC-raamwerk van &os; hier geen beleid
voor, maar de definitie is voor de volledigheid opgenomen.integriteit: integriteit, als
sleutelconcept, is het niveau van vertrouwen dat in gegevens
gesteld kan worden. Als de integriteit van gegevens wordt
vergroot, dan geldt dat ook voor het vertrouwen dat in die
gegevens gesteld kan worden.label: een label is een
beveiligingsattribuut dat toegepast kan worden op bestanden,
mappen of andere onderdelen van een systeem. Het kan gezien
worden als een vertrouwelijkheidsstempel: als er een label op
een bestand is geplaatst, beschrijft dat de
beveiligingseigenschappen voor dat specifieke bestand en is
daarop alleen toegang voor bestanden, gebruikers, bronnen,
enzovoort, met gelijke beveiligingsinstellingen. De betekenis
en interpretatie van labelwaarden hangt af van de
beleidsinstellingen: hoewel sommige
beleidseenheden een label beschouwen als representatie van de
integriteit of het geheimhoudingsniveau van een object, kunnen
andere beleidseenheden labels gebruiken om regels voor toegang
in op te slaan.niveau: de verhoogde of verlaagde
instelling van een beveiligingsattribuut. Met het stijgen
van het niveau wordt ook aangenomen dat de veiligheid
stijgt.laagwatermarkering: Een
laagwatermarkeringsbeleid is een beleid dat toestaat om de
beveiligingsniveaus te verlagen met het doel informatie te
benaderen die minder veilig is. In de meeste gevallen wordt
het originele beveiligingsniveau van de gebruiker hersteld
nadat het proces voltooid is. De enige
beveiligingsbeleidsmodule in &os; die dit gebruikt is
&man.mac.lomac.4;.meervoudig label: de eigenschap
is een optie van het
bestandssysteem die in enkelegebruikersmodus met
&man.tunefs.8;, tijdens het opstarten via het bestand
&man.fstab.5; of tijdens het maken van een nieuw
bestandssysteem ingesteld kan worden. Met deze optie wordt
het voor een beheerder mogelijk om verschillende
MAC-labels op verschillende objecten toe te
passen. Deze optie is alleen van toepassing op
beveiligingsbeleidsmodules die labels ondersteunen.object: een object of systeemobject
is een entiteit waar informatie doorheen stroomt op
aanwijzing van een subject. Hieronder
vallen mappen, bestanden, velden, schermen, toetsenborden,
geheugen, magnetische opslag, printers en alle andere
denkbare apparaten waarmee gegevens kunnen worden vervoerd of
kunnen worden opgeslagen. In de basis is een object een
opslageenheid voor gegevens of een systeembron; toegang tot
een object betekent in feite toegang tot
de gegevens.beleidseenheid: een verzameling van
regels die aangeven hoe doelstellingen bereikt moeten worden.
In een beleidseenheid staat meestal
beschreven hoe bepaalde eenheden behandeld dienen te worden.
In dit hoofdstuk wordt de term
beleidseenheid in deze context gezien
als een beveiligingsbeleidseenheid, wat
zoveel wil zeggen als een verzameling regels die bepaalt hoe
gegevens en informatie stroomt en aangeeft wie toegang tot
welke gegevens en informatie heeft.gevoeligheid: meestal gebruikt bij
het bespreken van MLS. Een
gevoeligheidsniveau is een term die gebruikt wordt om te
beschrijven hoe belangrijk of geheim de gegevens horen te
zijn. Met het stijgen van het gevoeligheidsniveau stijgt ook
het belang van de geheimhouding of de vertrouwelijkheid van de
gegevens.enkelvoudig label: een enkelvoudig
label wordt gebruikt als een heel bestandssysteem gebruik
maakt van één label om het toegangsbeleid over
de gegevensstromen af te dwingen. Als dit voor een
bestandssysteem is ingesteld, wat geldt als er geen gebruik
gemaakt wordt van de optie , dan
gehoorzamen alle bestanden aan dezelfde labelinstelling.subject: een subject is een gegeven
actieve entiteit die het stromen van informatie tussen
objecten veroorzaakt, bijvoorbeeld een
gebruiker, gebruikersprocessor, systeemproces, enzovoort. Op
&os; is dit bijna altijd een thread die in een proces namens
een gebruiker optreedt.Uitleg over MACMet al deze nieuwe termen in gedachten, kan overdacht worden
hoe het MAC-raamwerk de complete beveiliging
van een systeem kan vergroten. De verschillende
beveiligingsbeleidsmodules die het MAC-raamwerk
biedt zouden gebruikt kunnen worden om het netwerk en
bestandssystemen te beschermen, gebruikers toegang tot bepaalde
poorten en sockets kunnen ontzeggen, en nog veel meer. Misschien
kunnen de beleidsmodules het beste gebruikt worden door ze samen
in te zetten, door meerdere beveiligingsbeleidsmodules te laden om
te komen tot een omgeving waarin de beveiliging uit meerdere lagen
is opgebouwd. In een omgeving waarin de beveiliging uit meerdere
lagen is opgebouwd zijn meerdere beleidsmodules actief om de
beveiliging in de hand te houden. Deze aanpak is anders dan een
beleid om de beveiliging sec beter te maken, omdat daarmee in het
algemeen elementen in een systeem beveiligd worden dat voor een
specifiek doel wordt gebruikt. Het enige nadeel is het benodigde
beheer in het geval van meervoudige bestandssysteemlabels, het
instellen van toegang tot het netwerk per gebruiker, enzovoort.De nadelen zijn wel minimaal als ze worden vergeleken met het
immer durende effect van het raamwerk. Zo zorgt bijvoorbeeld de
mogelijkheid om te kiezen welke beleidseenheden voor een specifiek
gebruik nodig zijn voor het zo laag mogelijk houden van de
beheerslast. Het terugdringen van ondersteuning voor onnodige
beleidseenheden kan de beschikbaarheid van systemen verhogen en
ook de keuzevrijheid vergroten. Voor een goede implementatie
worden alle beveiligingseisen in beschouwing genomen en daarna
worden de verschillende beveiligingsbeleidsmodules effectief door
het raamwerk geïmplementeerd.Een systeem dat gebruik maakt van de mogelijkheden van
MAC dient dus tenminste de garantie te bieden
dat een gebruiker niet de mogelijkheid heeft naar eigen inzicht
beveiligingsattributen te wijzigen. Alle gebruikersprogramma's en
scripts moeten werken binnen de beperkingen die de toegangsregels
voorschrijven volgens de geselecteerde beveiligingsbeleidsmodules.
Het voorgaande impliceert ook dat de volledige controle over de
MAC-toegangsregels bij de systeembeheerder
ligt.Het is de taak van de systeembeheerder om zorgvuldig de juiste
beveiligingsbeleidsmodules te kiezen. Voor sommige omgevingen kan
het nodig zijn dat de toegang tot het netwerk wordt beperkt. In
dat soort gevallen zijn de beleidsmodules &man.mac.portacl.4;,
&man.mac.ifoff.4; en zelfs &man.mac.biba.4; goede startpunten. In
andere gevallen kan de strikte vertrouwelijkheid van
bestandssysteemobjecten van belang zijn. Dan zijn beleidsmodules
zoals &man.mac.bsdextended.4; en &man.mac.mls.4; voor dit doel
gemaakt.Beslissingen over beleid zouden gemaakt kunnen worden op basis
van het netwerkontwerp. Wellicht wordt alleen bepaalde gebruikers
toegestaan gebruik te maken van de mogelijkheden van &man.ssh.1;
om toegang te krijgen tot het netwerk of Internet. In dat geval
is de juiste beleidsmodule &man.mac.portacl.4;. Maar wat te doen
voor bestandssystemen? Moet alle toegang tot bepaalde mappen
worden afgesneden van andere gebruikersgroepen of specifieke
gebruikers, of moeten de toegang voor gebruikers of programma's
tot bepaalde bestanden worden ingesteld door bepaalde objecten
als geheim te bestempelen?In het geval van het bestandssysteem, kan ervoor gekozen
worden om de toegang voor sommige objecten voor bepaalde
gebruikers als geheim te bestempelen, maar voor andere niet.
Bijvoorbeeld: een groot ontwikkelteam wordt opgedeeld in kleinere
eenheden van individuen. Ontwikkelaars in project A horen geen
toegang te hebben tot objecten die zijn geschreven door
ontwikkelaars in project B. Maar misschien moeten ze wel toegang
hebben tot objecten die zijn geschreven door ontwikkelaars in
project C. Dat is nogal wat. Door gebruik te maken van de
verschillende beveiligingsbeleidsmodules in het
MAC-raamwerk kunnen gebruikers in hun groepen
worden opgedeeld en kan ze toegang gegeven worden tot de juiste
locaties zonder dat er angst hoeft te zijn voor het lekken van
informatie.Zo heeft dus iedere beveiligingsbeleidsmodule een unieke wijze
om om te gaan met de totale beveiliging van een systeem. Het
kiezen van modules hoort gebaseerd te zijn op een zorgvuldig
uitgedacht beveiligingsbeleid. In veel gevallen wordt het totale
beveiligingsbeleid aangepast en opnieuw toegepast op het systeem.
Een goed begrip van de verschillende beveiligingsbeleidsmodules
die het MAC-raamwerk biedt helpt beheerders bij
het kiezen van de juiste beleidseenheden voor hun situatie.De standaard &os;-kernel kent geen ondersteuning voor het
MAC-raamwerk en daarom dient de volgende
kerneloptie toegevoegd te worden voordat op basis van de
voorbeelden of informatie uit dit hoofdstuk wijzigen worden
gemaakt:options MACHierna dient de kernel herbouwd en opnieuw geïnstalleerd
te worden.Hoewel in de verschillende hulppagina's voor
MAC-beleidsmodules staat dat ze in de kernel
gebouwd kunnen worden, is het mogelijk het systeem van het
netwerk af te sluiten en meer. Het implementeren van
MAC is net zoiets als het implementeren van
een firewall en er moet opgepast worden dat een systeem niet
totaal op slot gaat. Er dient rekening gehouden te worden met
het teruggaan naar een vorige instelling en het op afstand
implementeren van MAC dient bijzonder
voorzichtig te gebeuren.MAC-labels begrijpenEen MAC-label is een beveiligingsattribuut
dat toegepast kan worden op subjecten en objecten die door het
systeem gaan.Bij het instellen van een label moet de gebruiker in staat
zijn om precies te begrijpen wat er gebeurt. De attributen die
voor een object beschikbaar zijn hangen af van de geladen
beleidsmodule en die interpreteren hun attributen op nogal
verschillende manieren. Het resultaat kan resulteren in
onverwacht en wellicht ongewenst gedrag van een systeem als het
beleid door een gebrek aan begrip verkeerd is ingesteld.Het beveiligingslabel op een object wordt gebruikt als
onderdeel van een beveiligingstoegangscontrolebeslissing door een
beleidseenheid. Voor sommige beleidseenheden bevat het label zelf
alle informatie die nodig is voor het maken van een beslissing;
in andere modellen kunnen de labels als onderdeel van een grotere
verzameling verwerkt worden, enzovoort.Zo staat bijvoorbeeld het instellen van het label
biba/low op een bestand voor een label dat
wordt beheerd door de beveiligingsbeleidsmodule Biba, met een
waarde van low.Een aantal beleidsmodules die in &os; de mogelijkheid voor
labelen ondersteunen, bieden drie specifieke voorgedefinieerde
labels: low, high en equal. Hoewel ze in verschillende
beleidsmodules op een andere manier toegangscontrole afdwingen,
is er de garantie dat het label low de laagst
mogelijke instelling is, het label equal het
subject of object uitschakelt of ongemoeid laat en het label
high de hoogst mogelijk instelling afdwingt
die beschikbaar is in de beleidsmodules Biba en
MLS.Binnen een bestandssysteemomgeving met een enkelvoudig label
kan er maar één label gebruikt worden op objecten.
Hiermee wordt een verzameling van toegangsrechten op het hele
systeem opgelegd en dat is voor veel omgevingen voldoende. Er
zijn echter een aantal gevallen waarin het wenselijk is
meervoudige labels in te stellen op subjecten of objecten in het
bestandssysteem. In die gevallen kan de optie
meegegeven worden aan
&man.tunefs.8;.In het geval van Biba en MLS kan er een
numeriek label gezet worden om het precieze niveau van de
hiërarchische controle aan te geven. Dit numerieke niveau
wordt gebruikt om informatie in verschillende groepen te
partitioneren of te sorteren voor het classificeren voor het geven
van toegang voor een bepaalde groep of een groep van een hoger
niveau.In de meeste gevallen stelt een beheerder alleen maar een
enkelvoudig label in dat door het hele bestandssysteem wordt
gebruikt.Wacht eens, dat klinkt net als
DAC! MAC gaf de controle
toch strikt aan de beheerder? Dat klopt nog steeds,
root heeft nog steeds de controle in handen
en is degene die het beleid instelt zodat gebruikers in de juiste
categorie en/of toegangsniveaus worden geplaatst. Daarnaast
kunnen veel beleidsmodules ook de gebruiker
root beperkingen opleggen. Dan wordt de
controle overgedragen aan een groep, maar kan
root de instellingen op ieder gewenst moment
intrekken of wijzigen. Dit is het hiërarchische of
toegangsmodel dat wordt afgedekt door beleidseenheden zoals Biba
en MLS.LabelinstellingenVrijwel alle aspecten voor het instellen van labelbeleid
worden uitgevoerd met basissysteemprogramma's. Die commando's
bieden een eenvoudige interface voor object- of
subjectinstellingen of de manipulatie en verificatie van de
instellingen.Alle instellingen kunnen gemaakt worden met de
hulpprogramma's &man.setfmac.8; en &man.setpmac.8;.
Het commando setfmac wordt gebruikt om
MAC labels op systeemobjecten in te stellen
en setpmac voor het instellen van de labels
op systeemsubjecten:&prompt.root; setfmac biba/high testAls het bovenstaande commando geen foutmeldingen heeft
veroorzaakt, dan komt er een prompt terug. Deze commando's
geven nooit uitvoer, tenzij er een fout is opgetreden; net als
bij de commando's &man.chmod.1; en &man.chown.8;. In sommige
gevallen kan de foutmelding Permission
denied zijn en deze treedt meestal op als het label
wordt ingesteld of gewijzigd op een object dat is beperkt.
Andere condities kunnen andere foutmeldingen
veroorzaken. De gebruiker die het object probeert te
herlabelen kan bijvoorbeeld niet de eigenaar zijn van het
bestand, het object kan niet bestaan of alleen-lezen zijn.
Een verplichte beleidsinstelling zal het proces niet
toestaan om een bestand te herlabelen, misschien om een
eigenschap van het bestand, een eigenschap van het proces
of een eigenschap van de voorgestelde nieuwe waarde van het
label. Een gebruiker die met een lage integriteit draait,
probeert bijvoorbeeld het label van een bestand met een hoge
integriteit te veranderen of zo'n zelfde gebruiker kan
proberen het label van een bestand met lage integriteit te
wijzigen in een label van een hoge integriteit.
De systeembeheerder kan de volgende commando's gebruiken om dit
probleem te voorkomen:&prompt.root; setfmac biba/high testPermission denied
&prompt.root; setpmac biba/low setfmac biba/high test
&prompt.root; getfmac test
test: biba/highHierboven is te zien dat setpmac gebruikt
kan worden om aan de instellingen van een beleidsmodules voorbij
te gaan door een ander label toe te wijzen aan het aangeroepen
proces. Het hulpprogramma getpmac wordt
meestal toegepast op processen die al draaien, zoals
sendmail: hoewel er een proces-ID
nodig is in plaats van een commando, is de logica gelijk. Als
gebruikers proberen een bestand te manipuleren waar ze geen
toegang tot hebben, onderhevig aan de regels van de geladen
beleidsmodules, dan wordt de foutmelding Operation
not permitted weergegeven door de functie
mac_set_link.LabeltypenMet de beleidsmodules &man.mac.biba.4;, &man.mac.mls.4; en
&man.mac.lomac.4; is het mogelijk eenvoudige labels toe te
wijzen. Die kunnen hoog, gelijk aan en laag zijn. Hieronder
een beschrijving van wat die labels betekenen:Het label low is de laagst
mogelijke labelinstelling die een object of subject kan
hebben. Deze instelling op objecten of subjecten
blokkeert hun toegang tot objecten of subjecten met de
markering hoog.Het label equal hoort alleen
ingesteld te worden op objecten die uitgesloten moeten
worden van een beleidsinstelling.Het label high geeft een object of
subject de hoogst mogelijke instelling.Afhankelijke van iedere beleidsmodule heeft iedere
instelling een ander informatiestroomdirectief tot gevolg.
Het lezen van de hulppagina's die van toepassing zijn geeft
inzicht in de precieze eigenschappen van de standaard
labelinstellingen.Gevorderde labelinstellingenDit zijn de labels met numerieke graden die gebruikt
worden voor
vergelijking:afdeling+afdeling.biba/10:2+3+6(5:2+3-20:2+3+4+5+6)Het bovenstaande kan dus geïnterpreteerd worden
als:Biba-beleidslabel/Graad
10:Afdelingen 2, 3 en 6:
(graad 5 ...)In dit voorbeeld is de eerste graad de
effectieve graad met de effectieve
afdelingen, de tweede graad is de lage graad en de
laatste is de hoge graad. In de meeste instellingen worden
deze instellingen niet gebruikt. Ze zijn inderdaad
instellingen voor gevorderden.Als ze worden toegepast op systeemobjecten, hebben ze
alleen een huidige graad/afdeling in vergelijking met
systeemsubjecten, omdat ze de reikwijdte van rechten in het
systeem en op netwerkinterfaces aangeven, waar ze gebruikt
worden voor toegangscontrole.De graad en afdelingen in een subject en object paar
wordt gebruikt om een relatie te construeren die
dominantie heet, waar een subject een object
domineert, geen van beiden domineert, of beiden elkaar
domineren. Het geval beiden domineren komt
voor als de twee labels gelijk zijn. Vanwege de natuur van
de informatiestroom van Biba, heeft een gebruiker rechten
op een verzameling van afdelingen, need to
know, die overeen zouden kunnen komen met projecten,
maar objecten hebben ook een verzameling van afdelingen.
Gebruikers dienen wellicht hun rechten onder te verdelen met
su of setpmac om
toegang te krijgen tot objecten in een afdeling die geen
verboden terrein voor ze zijn.Gebruikers en labelinstellingenGebruikers moeten zelf labels hebben, zodat hun bestanden
en processen juist kunnen samenwerken met het
beveiligingsbeleid dat op een systeem is ingesteld. Dit wordt
ingesteld via het bestand login.conf door
gebruik te maken van aanmeldklassen. Iedere beleidsmodule die
labels gebruikt implementeert ook de instelling van de
gebruikersklasse.Een voorbeeld dat iedere instelling uit de beleidsmodule
bevat is hieronder te zien:default:\
:copyright=/etc/COPYRIGHT:\
:welcome=/etc/motd:\
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\
:manpath=/usr/share/man /usr/local/man:\
:nologin=/usr/sbin/nologin:\
:cputime=1h30m:\
:datasize=8M:\
:vmemoryuse=100M:\
:stacksize=2M:\
:memorylocked=4M:\
:memoryuse=8M:\
:filesize=8M:\
:coredumpsize=8M:\
:openfiles=24:\
:maxproc=32:\
:priority=0:\
:requirehome:\
:passwordtime=91d:\
:umask=022:\
:ignoretime@:\
:label=partition/13,mls/5,biba/10(5-15),lomac/10[2]:De optie label wordt gebruikt om het
standaardlabel voor aanmeldklasse in te stellen dat door
MAC wordt afgedwongen. Het wordt
gebruikers nooit toegestaan deze waarde te wijzigen, dus kan
het gezien worden als niet optioneel vanuit het perspectief
van de gebruiker. In de echte wereld besluit een beheerder
echter nooit iedere beleidsmodule te activeren. Het wordt
sterk aangeraden de rest van die hoofdstuk te lezen alvorens
(een deel van) de bovenstaande instellingen te
implementeren.Gebruikers kunnen hun label wijzigen na het
initiële aanmelden, maar dit is wel afhankelijk van de
beperkingen van een beleidsinstelling. Het bovenstaande
voorbeeld vertelt de beleidseenheid Biba dat de minimale
integriteit van een proces 5 en het maximum 15, maar dat het
effectieve label standaard 10 is. Het proces draait op
niveau 10, totdat het proces het label wijzigt, misschien door een
gebruiker die setpmac gebruikt, bij het
aanmelden beperkt tot de door Biba ingestelde reeks.In alle gevallen dient de database met
aanmeldklassemogelijkheden opnieuw gebouwd te worden met
cap_mkdb na het wijzigen van
login.conf. Dit wordt ook in alle
komende voorbeelden en beschrijvingen gedaan.Het is belangrijk op te merken dat in veel gevallen sites
te maken hebben met bijzonder grote aantallen gebruikers
waardoor er een aantal verschillende aanmeldklassen nodig
zijn. Het is dan nodig gedetailleerd te plannen omdat dit
anders bijzonder complex wordt om te onderhouden.Netwerkinterfaces en labelinstellingenLabels kunnen ook ingesteld worden op netwerkinterfaces om
te assisteren bij het controleren van het stromen van gegevens
over het netwerk. In alle gevallen werken ze op dezelfde
wijze als het beleid werkt ten aanzien van objecten.
Gebruikers met bijvoorbeeld een hoge instelling in
biba krijgen geen toegang tot interfaces
met een laag label.Het kan meegegeven worden aan
ifconfig als het
MAC-label op netwerkinterfaces wordt
ingesteld:&prompt.root; ifconfig bge0 maclabel biba/equalIn het bovenstaande voorbeeld wordt het
MAC-label biba/equal
ingesteld op de interface &man.bge.4;. Als er een instelling
wordt gebruikt die gelijkvormig is aan
biba/high(low-high), dan moet het volledige
label worden ingegeven, anders treedt er een fout op.Iedere beleidsmodule die labels ondersteunt een instelling
waarmee het MAC-label op netwerkinterfaces
kan worden uitgeschakeld. Het label instellen op
heeft hetzelfde effect. Deze
instellingen zijn na te kijken in de uitvoer van
sysctl, de hulppagina van het beleid en
zelfs later in dit hoofdstuk.Enkelvoudig label of meervoudig label?Standaard gebruikt een systeem de optie
. Wat betekent dit voor een
beheerder? Er zijn een aantal verschillen die allemaal hun
eigen voor- en nadelen hebben voor de flexibiliteit in het
beveiligingsmodel voor een systeem.Bij gebruik van kan er maar
één label, bijvoorbeeld
biba/high, gebruikt worden voor ieder subject
of object. Hierdoor is er minder beheer nodig, maar de
flexibiliteit voor beleid dat labels ondersteunt daalt erdoor.
Veel beheerders willen de optie
gebruiken in hun beveiligingsmodel.De optie staat ieder subject of
object toe om zijn eigen onafhankelijke
MAC-label te hebben in plaats van de
standaardoptie , die maar
één label toestaat op een hele partitie. De
labelopties en
zijn alleen verplicht voor de
beleidseenheden die de mogelijkheid bieden om te labelen,
waaronder de beleidsmogelijkheden van Biba, Lomac,
MLS en SEBSD.In veel gevallen hoeft niet eens
ingesteld te worden. Stel er is de volgende situatie en
beveiligingsmodel:&os;-webserver die gebruik maakt van het
MAC-raamwerk en een mengeling van
verschillende beleidseenheden.De webserver heeft maar één label nodig,
biba/high, voor alles in het systeem.
Hier is de optie voor het
bestandssysteem niet nodig, omdat een enkelvoudig label
altijd van toepassing is.Maar omdat de machine als webserver dienst gaat doen,
dient de webserver te draaien als
biba/low om administratiemogelijkheden te
voorkomen. Later wordt beschreven hoe de beleidseenheid
Biba werkt, dus als de voorgaande opmerking wat lastig te
begrijpen is, lees dan verder en kom later nog een keer
terug. De server zou een aparte partitie kunnen gebruiken
waarop biba/low van toepassing kan zijn
voor de meeste, zo niet alle, runtime-statussen. Er
ontbreekt veel in dit voorbeeld, bijvoorbeeld de restricties
op gegevens en (gebruikers)instellingen. Dit was slechts
een snel voorbeeld om de hiervoor aangehaalde stelling te
ondersteunen.Als er een niet-labelende beleidseenheid wordt gebruikt, dan
is de optie nooit verplicht.
Hieronder vallen de beleidseenheden
seeotheruids, portacl en
partition.Bij gebruik van voor een
partitie en het neerzetten van een beveiligingsmodel gebaseerd
op functionaliteit gaat de deur open
voor hogere administratieve rompslomp, omdat alles in een
bestandssysteem een label krijgt. Hieronder vallen mappen,
bestanden en zelfs apparaatknooppunten.Het volgende commando stelt in
op de bestandssystemen om meerdere labels te kunnen krijgen.
Dit kan alleen uitgevoerd worden in enkele gebruikersmodus:&prompt.root; tunefs -l enable /Dit is geen criterium voor het wisselbestandssysteem.Sommige gebruikers hebben problemen ondervonden met het
instellen van de vlag op de
rootpartitie. Als dit het geval is, kijk dan naar van dit hoofdstuk.De beveiligingsconfiguratie plannenWanneer een nieuwe technologie wordt geïmplementeerd is
een planningsfase altijd een goed idee. Tijdens de planningsfases
zou een beheerder in het algemeen naar de big
picture moeten kijken, en daarbij minstens het volgende
in de gaten proberen te houden:De implementatiebenodigdheden;De implementatiedoelen;Voor MAC-installaties houden deze in:Hoe de beschikbare informatie en bronnen die op het
doelsysteem aanwezig zijn te classificeren.Voor wat voor soort informatie of bronnen de toegang te
beperken samen met het type van de beperkingen die dienen te
worden toegepast.Welke MAC-module(s) nodig zullen zijn
om dit doel te bereiken.Het is altijd mogelijk om de systeembronnen en de
beveiligingsinstellingen te veranderen en te herconfigureren, het
komt vaak erg ongelegen om het systeem te doorzoeken en bestaande
bestanden en gebruikersaccounts te repareren. Plannen helpt om
zeker te zijn van een probleemloze en efficiënte
systeemimplementatie. Het is vaak vitaal en zeker in uw voordeel
om een proefronde van het vertrouwde systeem, inclusief de
configuratie, te draaien
vóórdat een
MAC-implementatie wordt gebruikt op
productiesystemen. Het idee om een systeem met
MAC gewoon los te laten is als het plannen van
mislukkingen.Verschillende omgevingen kunnen verschillende behoeften en
benodigdheden nodig hebben. Het opzetten van een diepgaand en
compleet beveiligingsprofiel zal de noodzaak van verandering
verminderen wanneer het systeem in gebruik wordt genomen.
Zodoende zullen de toekomstige secties de verschillende modules
die beschikbaar zijn voor beheerders behandelen; hun gebruik en
configuratie beschrijven; en in sommige gevallen inzicht bieden in
welke situaties ze het beste tot hun recht komen. Een webserver
bijvoorbeeld zou de beleiden &man.mac.biba.4; en
&man.mac.bsdextended.4; in gebruik nemen. In andere gevallen kan
voor een machine met erg weinig lokale gebruikers
&man.mac.partition.4; een goede keuze zijn.Module-instellingenIedere module uit het MAC-raamwerk kan
zoals zojuist aangegeven in de kernel worden gecompileerd of als
runtime-kernelmodule geladen worden. De geadviseerde methode is
de naam van een module toevoegen aan het bestand
/boot/loader.conf zodat die wordt geladen
tijdens de eerste fase van het starten van een systeem.In de volgende onderdelen worden de verschillende
MAC-modules en hun mogelijkheden beschreven.
De implementatie in een specifieke omgeving wordt ook in dit
hoofdstuk beschreven. Een aantal modules ondersteunt het gebruik
van labelen, wat het beperken van toegang is door een label als
dit is toegestaan en dat niet af te dwingen. Een
labelinstellingenbestand kan bepalen hoe bestanden kunnen worden
benaderd, hoe netwerkcommunicatie wordt uitgewisseld, en meer. In
het vorige onderdeel is beschreven hoe de vlag
ingesteld kon worden op
bestandssystemen om per bestand of per partitie toegangscontrole
in te schakelen.Een instelling met een enkelvoudig label zou maar
één label over een heel systeem afdwingen, daarom
wordt de optie tunefs
genoemd.MAC-module seeotheruidsMAC zie andere UID's
beleidsinstellingModulenaam: mac_seeotheruids.koKernelinstelling: options MAC_SEEOTHERUIDSOpstartoptie: mac_seeotheruids_load="YES"De module &man.mac.seeotheruids.4; imiteert de
sysctl-tunables
security.bsd.see_other_uids en
security.bsd.see_other_gids en breidt deze
uit. Voor deze optie hoeven geen labels ingesteld te worden voor
de instelling en hij werkt transparant met de andere modules.Na het laden van de module kunnen de volgende
sysctl-tunables gebruikt worden om de opties te
beheren:security.mac.seeotheruids.enabled
schakelt de opties van de module in en gebruikt de
standaardinstellingen. Deze standaardinstellingen ontzeggen
gebruikt de mogelijkheid processen en sockets te zien die
eigendom zijn van andere gebruikers.security.mac.seeotheruids.specificgid_enabled
staat toe dat een bepaalde groep niet onder dit beleid valt.
Om bepaalde groepen van dit beleid uit te sluiten, kan de
sysctl-tunable
security.mac.seeotheruids.specificgid=XXX
gebruikt worden. In het bovenstaande voorbeeld dient
XXX vervangen te worden door het
numerieke ID van een groep die uitgesloten moet worden van de
beleidsinstelling.security.mac.seeotheruids.primarygroup_enabled
wordt gebruikt om specifieke primaire groepen uit te sluiten
van dit beleid. Als deze tunable wordt gebruikt, mag
security.mac.seeotheruids.specificgid_enabled
niet gebruikt worden.MAC-module bsdextendedMACbestandssysteemfirewall beleidsinstellingModulenaam: mac_bsdextended.koKernelinstelling:
options MAC_BSDEXTENDEDOpstartoptie:
mac_bsdextended_load="YES"De module &man.mac.bsdextended.4; dwingt de
bestandssysteemfirewall af. Het beleid van deze module biedt een
uitbreiding van het standaard rechtenmodel voor bestandssystemen,
waardoor een beheerder een firewallachtige verzameling met regels
kan maken om bestanden, programma's en mappen in de
bestandssysteemhiërarchie te beschermen. Wanneer geprobeerd
wordt om toegang tot een object in het bestandssysteem te krijgen,
wordt de lijst met regels afgelopen totdat er òf een
overeenkomstige regel is gevonden òf het einde van de lijst
is bereikt. Dit gedrag kan veranderd worden door het gebruik van
de &man.sysctl.8;-parameter
security.mac.bsdextended.firstmatch_enabled. Net zoals andere
firewall-modules in &os; kan een bestand dat regels voor
toegangscontrole bevat tijdens het opstarten door het systeem
worden aangemaakt en gelezen door een &man.rc.conf.5;-variabele te
gebruiken.De lijst met regels kan ingevoerd worden met het hulpprogramma
&man.ugidfw.8;, dat een syntaxis heeft die lijkt op die van
&man.ipfw.8;. Meer hulpprogramma's kunnen geschreven worden met
de functies in de bibliotheek &man.libugidfw.3;.Bij het werken met deze module dient bijzondere
voorzichtigheid in acht te worden genomen. Verkeerd gebruik kan
toegang tot bepaalde delen van het bestandssysteem blokkeren.VoorbeeldenNadat de module &man.mac.bsdextended.4; is geladen, kan met
het volgende commando de huidige regels getoond worden:&prompt.root; ugidfw list
0 slots, 0 rulesZoals verwacht zijn er geen regels ingesteld. Dit betekent
dat alles nog steeds volledig toegankelijk is. Om een regel te
maken die alle toegang voor alle gebruikers behalve
root ontzegt:&prompt.root; ugidfw add subject not uid root new object not uid root mode nDit is een slecht idee, omdat het voorkomt dat alle
gebruikers ook maar het meest eenvoudige commando kunnen
uitvoeren, zoals ls. Een betere lijst met
regels zou kunnen zijn:&prompt.root; ugidfw set 2 subject uid gebruiker1 object uid gebruiker2 mode n
&prompt.root; ugidfw set 3 subject uid gebruiker1 object gid gebruiker2 mode nHiermee wordt alle toegang, inclusief het tonen van
mapinhoud, tot de thuismap van
gebruiker2
ontzegd voor de gebruikersnaam gebruiker1.In plaats van gebruiker1, zou
kunnen worden opgegeven. Hierdoor worden dezelfde restricties
als hierboven actief voor alle gebruikers in plaats van voor
slechts één gebruiker.De gebruiker root blijft onaangetast
door deze wijzigingen.Met deze informatie zou een basisbegrip moeten zijn ontstaan
over hoe de module &man.mac.bsdextended.4; gebruikt kan worden
om een bestandssysteem te beschermen. Meer informatie staat in
de hulppagina's van &man.mac.bsdextended.4; en &man.ugidfw.8;.MAC-module ifoffMAC Interface Silencing
beleidsinstellingModulenaam: mac_ifoff.koKernelinstelling:
options MAC_IFOFFOpstartoptie: mac_ifoff_load="YES"De module &man.mac.ifoff.4; bestaat alleen om
netwerkinterfaces tijdens het draaien uit te schakelen en om te
verhinderen dat netwerkinterfaces tijdens het initiële
opstarten worden geactiveerd. Er hoeven geen labels ingesteld te
worden, noch is deze module afhankelijk van andere
MAC-modules.Het meeste beheer wordt gedaan met de
sysctl-tunables die hieronder zijn vermeld.security.mac.ifoff.lo_enabled schakelt
alle verkeer op het teruglusinterface (&man.lo.4;) in of uit.security.mac.ifoff.bpfrecv_enabled
schakelt alle verkeer op het Berkeley Packet Filterinterface
(&man.bpf.4;) in of uit.security.mac.ifoff.other_enabled
schakelt alle verkeer op alle andere interfaces in of uit.&man.mac.ifoff.4; wordt het meest gebruikt om netwerken te
monitoren in een omgeving waar netwerkverkeer niet toegestaan zou
moeten zijn tijdens het opstarten. Een ander voorgesteld gebruik
zou het schrijven van een script zijn dat security/aide gebruikt om automatisch
netwerkverkeer te blokkeren wanneer het nieuwe of veranderde
bestanden in beschermde mappen vindt.MAC-module portaclMAC poorttoegangscontrolelijst
beleidsinstellingModulenaam: mac_portacl.koKernelinstelling:
MAC_PORTACLOpstartoptie: mac_portacl_load="YES"De module &man.mac.portacl.4; wordt gebruikt om het binden aan
lokale TCP- en UDP-poorten
te begrenzen door een waaier aan
sysctl-variabelen te gebruiken. In essentie
maakt &man.mac.portacl.4; het mogelijk om
niet-root-gebruikers in staat te stellen om
aan gespecificeerde geprivilegieerde poorten te binden, dus
poorten lager dan 1024.Eenmaal geladen zal deze module het
MAC-beleid op alle sockets aanzetten. De
volgende tunables zijn beschikbaar:security.mac.portacl.enabled schakelt
het beleid volledig in of uit.security.mac.portacl.port_high stelt
het hoogste poortnummer in waarvoor &man.mac.portacl.4;
bescherming biedt.security.mac.portacl.suser_exempt sluit
de gebruiker root uit van dit beleid
wanneer het op een waarde anders dan nul wordt ingesteld.security.mac.portacl.rules specificeert
het eigenlijke beleid van mac_portacl; zie onder.Het eigenlijke beleid van mac_portacl,
zoals gespecificeerd in de sysctl
security.mac.portacl.rules, is een tekststring
van de vorm: regel[,regel,...] met zoveel
regels als nodig. Elke regel heeft de vorm:
idtype:id:protocol:poort. De parameter
idtype kan uid of
gid zijn en wordt gebruikt om de parameter
id als respectievelijk een gebruikers-id of
groeps-id te interpreteren. De parameter
protocol wordt gebruikt om te bepalen of de
regel op TCP of UDP moet
worden toegepast door de parameter op tcp of
udp in te stellen. De laatste parameter
poort is het poortnummer waaraan de
gespecificeerde gebruiker of groep zich mag binden.Aangezien de regelverzameling direct door de kernel wordt
geïnterpreteerd kunnen alleen numerieke waarden voor de
parameters voor de gebruikers-ID, groeps-ID, en de poort
gebruikt worden. Voor gebruikers, groepen, en
poortdiensten kunnen dus geen namen gebruikt worden.Standaard kunnen op &unix;-achtige systemen poorten lager dan
1024 alleen aan geprivilegieerde processen gebonden worden, dus
diegenen die als root draaien. Om
&man.mac.portacl.4; toe te laten staan om ongeprivilegieerde
processen aan poorten lager dan 1024 te laten binden moet deze
standaard &unix;-beperking uitgezet worden. Dit kan bereikt
worden door de &man.sysctl.8;-variabelen
net.inet.ip.portange.reservedlow en
net.inet.ip.portrange.reservedhigh op nul te
zetten.Zie de onderstaande voorbeelden of bekijk de handleidingpagina
voor &man.mac.portacl.4; voor meer informatie.VoorbeeldenDe volgende voorbeelden zouden de bovenstaande discussie wat
moeten toelichten:&prompt.root; sysctl security.mac.portacl.port_high=1023
&prompt.root; sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0Eerst wordt &man.mac.portacl.4; ingesteld om de standaard
geprivilegieerde poorten te dekken en worden de normale
bindbeperkingen van &unix; uitgeschakeld.&prompt.root; sysctl security.mac.portacl.suser_exempt=1De gebruiker root zou niet beperkt
moeten worden door dit beleid, stel
security.mac.portacl.suser_exempt dus in op
een waarde anders dan nul. De module &man.mac.portacl.4; is nu
ingesteld om zich op de zelfde manier te gedragen als
&unix;-achtige systemen zich standaard gedragen.&prompt.root; sysctl security.mac.portacl.rules=uid:80:tcp:80Sta de gebruiker met UID 80 (normaliter
de gebruiker www) toe om zich aan poort 80
te binden. Dit kan gebruikt worden om de gebruiker
www toe te staan een webserver te draaien
zonder ooit root-rechten te hebben.&prompt.root; sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995Sta de gebruiker met UID 1001 om zich aan
de TCP-poorten 110 (pop3) en
995 (pop3s) te binden. Dit staat deze gebruiker
toe om een server te starten die verbindingen accepteert op
poorten 110 en 995.MAC-module partitionMAC procespartitionering
beleidsinstellingModulenaam: mac_partition.koKernelinstelling:
options MAC_PARTITIONOpstartoptie:
mac_partition_load="YES"Het beleid &man.mac.partition.4; plaatst processen in
specifieke partities gebaseerd op hun
MAC-label. Zie dit als een speciaal soort
&man.jail.8;, hoewel dit nauwelijks een waardige vergelijking is.Dit is één module die aan het bestand
&man.loader.conf.5; dient te worden toegevoegd zodat het het
beleid tijdens het opstartproces laadt en aanzet.De meeste configuratie van dit beleid wordt gedaan met het
gereedschap &man.setpmac.8;, wat hieronder zal worden uitgelegd.
De volgende sysctl-tunable is beschikbaar voor
dit beleid:security.mac.partition.enabled zet het
afdwingen van MAC-procespartities aan.Wanneer dit beleid aanstaat, mogen gebruikers alleen hun eigen
processen zien, en elke andere in hun partitie, maar mogen niet
met gereedschappen buiten deze partitie werken. Bijvoorbeeld, een
gebruiker in de klasse insecure heeft geen
toegang tot het commando top noch tot vele
andere commando's die een proces moeten draaien.Gebruik het gereedschap setpmac om
gereedschappen in te stellen of ze in een partitielabel te
plaatsen:&prompt.root; setpmac partition/13 topDit zal het commando top toevoegen aan het
label dat voor gebruikers in de klasse insecure
gebruikt wordt. Merk op dat alle processen gestart door
gebruikers in de klasse insecure in het label
partition/13 zullen blijven.VoorbeeldenHet volgende commando laat de partitielabel en de
proceslijst zien:&prompt.root; ps ZaxHet volgende commando staat toe om het procespartitielabel
van een andere gebruiker en de momenteel draaiende processen van
die gebruiker te zien:&prompt.root; ps -ZU trhodesGebruikers kunnen processen in het label van
root zien tenzij het beleid
&man.mac.seeotheruids.4; is geladen.Een echte vakmansimplementatie zou alle diensten in
/etc/rc.conf uitzetten en deze door een
script met de juiste labeling laten starten.De volgende beleiden ondersteunen integerinstellingen in
plaats van de drie standaardlabels die aangeboden worden.
Deze opties, inclusief hun beperkingen, worden verder
uitgelegd in de handleidingpagina's van de modules.MAC-module Multi-Level SecurityMAC meerlaagse beveiliging
beleidsinstellingModulenaam: mac_mls.koKernelinstelling:
options MAC_MLSOpstartoptie: mac_mls_load="YES"Het beleid &man.mac.mls.4; beheert toegang tussen subjecten en
objecten in het systeem door een strikt beleid voor
informatiestromen af te dwingen.In MLS-omgevingen wordt een
toestemming-niveau ingesteld in het label van elk
subject of object, samen met compartimenten. Aangezien deze
toestemmings- of zinnigheidsniveaus getallen groter dan zesduizend
kunnen bereiken; zou het voor elke systeembeheerder een
afschrikwekkende taak zijn om elk subject of object grondig te
configureren. Gelukkig worden er al drie
kant-en-klare bij dit beleid geleverd.Deze labels zijn mls/low,
mls/equal en mls/high.
Aangezien deze labels uitgebreid in de handleidingpagina worden
beschreven, worden ze hier slechts kort beschreven:Het label mls/low bevat een lage
configuratie welke het toestaat om door alle andere objecten
te worden gedomineerd. Alles dat met
mls/low is gelabeld heeft een laag
toestemmingsniveau en heeft geen toegang tot informatie van
een hoger niveau. Ook voorkomt dit label dat objecten van een
hoger toestemmingsniveau informatie naar hen schrijven of aan
hen doorgeven.Het label mls/equal dient geplaatst te
worden op objecten die geacht te zijn uitgesloten van het
beleid.Het label mls/high is het hoogst
mogelijke toestemmingsniveau. Objecten waaraan dit label is
toegekend zijn dominant over alle andere objecten in het
systeem; ze mogen echter geen informatie lekken naar objecten
van een lagere klasse.MLS biedt:Een hiërarchisch beveiligingsniveau met een
verzameling niet-hiërarchische categoriën;Vaste regels: niet naar boven lezen, niet naar beneden
schrijven (een subject kan leestoegang hebben naar objecten op
zijn eigen niveau of daaronder, maar niet daarboven. Evenzo
kan een subject schrijftoegang hebben naar objecten op zijn
eigen niveau of daarboven maar niet daaronder.);Geheimhouding (voorkomt ongeschikte openbaarmaking van
gegevens);Een basis voor het ontwerp van systemen die gelijktijdig
gegevens op verschillende gevoeligheidsniveaus behandelen
(zonder informatie tussen geheim en vertrouwelijk te lekken).De volgende sysctl-tunables zijn
beschikbaar voor de configuratie van speciale diensten en
interfaces:security.mac.mls.enabled wordt gebruikt
om het MLS-beleid in en uit te schakelen.security.mac.mls.ptys_equal labelt alle
&man.pty.4;-apparaten als mls/equal wanneer
ze worden aangemaakt.security.mac.mls.revocation_enabled
wordt gebruikt om toegang tot objecten in te trekken nadat hun
label in die van een lagere graad verandert.security.mac.mls.max_compartments wordt
gebruikt om het maximaal aantal compartimentniveaus met
objecten in te stellen; in feite het maximale
compartimentnummer dat op een systeem is toegestaan.Het commando &man.setfmac.8; kan gebruikt worden om de
MLS-labels te manipuleren. Gebruik het
volgende commando om een label aan een object toe te kennen:&prompt.root; setfmac mls/5 testGebruik het volgende commando om het
MLS-label voor het bestand
test te verkrijgen:&prompt.root; getfmac testDit is een samenvatting van de mogelijkheden van het beleid
MLS. Een andere manier is om een
meesterbeleidsbestand in /etc aan te maken dat de
MLS-informatie bevat en om dat bestand aan het
commando setfmac te geven. Deze methode wordt
uitgelegd nadat alle beleiden zijn behandeld.Verplichte Gevoeligheid plannenMet de beleidsmodule voor meerlaagse beveiliging plant een
beheerder het beheren van gevoelige informatiestromen.
Standaard zet het systeem met zijn natuur van lezen naar boven
blokkeren en schrijven naar beneden blokkeren alles in een lage
toestand. Alles is beschikbaar en een beheerder verandert dit
langzaam tijdens de configuratiefase; waarbij de
vertrouwelijkheid van de informatie toeneemt.Buiten de bovengenoemde drie basisopties voor labels, kan
een beheerder gebruikers en groepen indelen als nodig om de
informatiestroom tussen hun te blokkeren. Het is misschien
gemakkelijker om naar de informatie te kijken in
toestemmingsniveaus waarvoor bekende woorden bestaan, zoals
Vertrouwelijk, Geheim en
Strikt Geheim. Sommige beheerders zullen
verschillende groepen aanmaken gebaseerd op verschillende
projecten. Ongeacht de classificatiemethode moet er een goed
overwogen plan bestaan voordat zo'n berperkend beleid wordt
geïmplementeerd.Wat voorbeeldsituaties voor deze beveiligingsbeleidsmodule
kunnen een e-commerce webserver, een bestandsserver die kritieke
bedrijfsinformatie, en omgevingen van financiële
instellingen zijn. De meest onwaarschijnlijke plaats zou een
persoonlijk werkstation met slechts twee of drie gebruikers
zijn.MAC-module BibaMAC Biba integriteit
beleidsinstellingModulenaam: mac_biba.koKernelinstelling: options MAC_BIBAOpstartoptie: mac_biba_load="YES"De module &man.mac.biba.4; laadt het beleid
MAC Biba. Dit beleid werkt vaak zoals dat van
MLS behalve dat de regels voor de
informatiestroom lichtelijk zijn omgedraaid. Dit is gezegd om de
neerwaartse stroom van gevoelige informatie te voorkomen terwijl
het beleid MLS de opwaartse stroom van
gevoelige informatie voorkomt; veel van deze sectie is dus op
beide beleiden toepasbaar.In Biba-omgevingen wordt een integriteits-label
op elk subject of object ingesteld. Deze labels bestaan uit
hiërarchische graden, en niet-hiërarchische componenten.
Een graad van een object of subject stijgt samen met de
integriteit.Ondersteunde labels zijn biba/low,
biba/equal, en biba/high;
zoals hieronder uitgelegd:Het label biba/low wordt gezien als de
laagste integriteit die een object of subject kan hebben. Dit
instellen op objecten of subjecten zal hun schrijftoegang tot
objecten of subjecten die als hoog zijn gemarkeerd blokkeren.
Ze hebben echter nog steeds leestoegang.Het label biba/equal dient alleen
geplaatst te worden op objecten die geacht te zijn uitgesloten
van het beleid.Het label biba/high staat schrijven
naar objecten met een lager label toe maar sluit het lezen van
dat object uit. Het wordt aangeraden om dit label te plaatsen
op objecten die de integriteit van het gehele systeem
beïnvloeden.Biba biedt:Hiërarchische integriteitsniveaus met een verzameling
niet-hiërarchische integriteitscategoriën;Vaste regels: niet naar boven schrijven, niet naar beneden
lezen (tegenovergestelde van MLS). Een
subject kan schrijftoegang hebben naar objecten op hetzelfde
niveau of daaronder, maar niet daarboven. Evenzo kan een
subject leestoegang naar objecten op hetzelfde niveau of
daarboven hebben, maar niet daaronder;Integriteit (voorkomt oneigenlijk wijzigen van gegevens);Integriteitsniveaus (in plaats van de gevoeligheidsniveaus
van MLS)De volgende sysctl-tunables kunnen gebruikt
worden om het Biba-beleid te manipuleren.security.mac.biba.enabled kan gebruikt
worden om het afdwingen van het Biba-beleid op de doelmachine
aan en uit te zetten.security.mac.biba.ptys_equal kan
gebruikt worden om het Biba-beleid op &man.pty.4;-apparaten
uit te zetten.security.mac.biba.revocation_enabled
dwingt het herroepen van toegang tot objecten af als het label
is veranderd om het subject te domineren.Gebruik de commando's setfmac en
getfmac om de instellingen van het Biba-beleid
op systeemobjecten te benaderen:&prompt.root; setfmac biba/low test
&prompt.root; getfmac test
test: biba/lowVerplichte Integriteit plannenIntegriteit, anders dan gevoeligheid, garandeert dat de
informatie nooit door onvertrouwde gebruikers zal worden
gemanipuleerd. Dit geldt ook voor informatie die tussen
subjecten, objecten, of beiden wordt doorgegeven. Het verzekert
dat gebruikers alleen de informatie kunnen wijzigen en in
sommige gevallen zelfs benaderen die ze expliciet nodig hebben.De beveiligingsbeleidsmodule &man.mac.biba.4; staat een
beheerder in staat om te bepalen welke bestanden en programma's
een gebruiker of gebruikers mogen zien en draaien terwijl het
verzekert dat de programma's en bestanden vrij zijn van
dreigingen en vertrouwt zijn door het systeem voor die gebruiker
of groep van gebruikers.Tijdens de initiële planningsfase moet een beheerder
bereid zijn om gebruikers in gradaties, niveaus, en gebieden in
te delen. Gebruikers zal toegang tot niet alleen gegevens maar
ook tot programma's en hulpmiddelen ontzegt worden zowel voordat
en nadat ze beginnen. Het systeem zal standaard een hoog label
instellen nadat deze beleidsmodule is ingeschakeld, en het is
aan de beheerder om de verschillende gradaties en niveaus voor
gebruikers in te stellen. In plaats van toestemmingsniveaus
zoals boven beschreven te gebruiken, kan een goede
planningsmethode onderwerpen bevatten. Bijvoorbeeld, geef
alleen ontwikkelaars veranderingstoegang tot het
broncoderepository, de broncodecompiler, en andere
ontwikkelgereedschappen. Andere gebruikers zouden in andere
groepen zoals testers, ontwerpers, of gewone gebruikers worden
ingedeeld en zouden alleen leestoegang hebben.Met zijn natuurlijke beveiligingsbeheer kan een subject van
lagere integriteit niet schijven naar een subject van hogere
integriteit; een subject van hogere integriteit kan geen subject
van lagere integriteit observeren of lezen. Een label op de
laagst mogelijke graad instellen kan het ontoegankelijk voor
subjecten maken. Sommige succesvolle omgevingen voor deze
beveiligingsbeheermodule zijn een beperkte webserver, een
ontwikkel- en testmachine, en broncoderepositories. Minder
nuttige implementaties zouden een persoonlijk werkstation, een
machine gebruikt als router, of een netwerkfirewall zijn.MAC-module LOMACMAC LOMACModulenaam: mac_lomac.koKernelinstelling: options MAC_LOMACOpstartoptie: mac_lomac_load="YES"In tegenstelling tot het beleid MAC Biba,
staat het beleid &man.mac.lomac.4; toegang tot objecten van lagere
integriteit slechts toe nadat het integriteitsniveau is verlaagt
om de integriteitsregels niet te verstoren.De MAC-versie van het
laagwatermarkeringsintegreitsbeleid, niet te verwarren met de
oudere implementatie van &man.lomac.4;, werkt bijna hetzelfde als
Biba maar met de uitzondering dat er drijvende labels worden
gebruikt om subjectdegradatie via een hulpcompartiment met graden
te ondersteunen. Dit tweede compartiment heeft de vorm
[hulpgraad]. Wanneer een lomac-beleid met een
hulpgraad wordt toegekend, dient het er ongeveer uit te zien als:
lomac/10[2] waar het getal twee (2) de
hulpgraad is.Het beleid MAC LOMAC berust op het overal
labelen van alle systeemobjecten met integriteitslabels, waardoor
subjecten wordt toegestaan om te lezen van objecten van lage
integriteit en om daarna het label op subject te degraderen om
toekomstig schrijven naar objecten van hoge integriteit te
voorkomen. Dit is de hierboven besproken optie
[hulpgraad], dus biedt het beleid grotere
compatibiliteit en vereist het minder initiële configuratie
dan Biba.VoorbeeldenNet zoals bij de beleiden Biba en MLS
kunnen de commando's setfmac en
setpmac gebruikt worden om labels op
systeemobjecten te plaatsen:&prompt.root; setfmac /usr/home/trhodes lomac/high[low]
&prompt.root; getfmac /usr/home/trhodes lomac/high[low]Merk op dat de hulpgraad hier low is, dit
is een mogelijkheid die alleen door het beleid
MAC LOMAC wordt geboden.Nagios in een MAC-jailNagios in een MAC-jailDe volgende demonstratie zal een veilige omgeving
implementeren door verschillende MAC-modules te
gebruiken met juist ingestelde beleiden. Dit is slechts een
test en dient niet gezien te worden als het volledige antwoord op
de beveiligingszorgen van iedereen. Gewoon een beleid
implementeren en het verder negeren werkt nooit en kan rampzalig
zijn in een productieomgeving.Voordat met dit proces wordt begonnen, moet de optie
multilabel zijn geactiveerd op elk
bestandssysteem zoals vermeld aan het begin van dit hoofdstuk.
Nalatigheid zal in fouten resulteren. Zorg er ook voor dat de
ports net-mgmt/nagios-plugins,
net-mgmt/nagios, en www/apache22 allemaal
geïnstalleerde en geconfigureerd zijn en correct werken.Gebruikersklasse insecure makenBegin de procedure door de volgende gebruikersklasse toe te
voegen aan het bestand /etc/login.conf:insecure:\
:copyright=/etc/COPYRIGHT:\
:welcome=/etc/motd:\
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
:manpath=/usr/share/man /usr/local/man:\
:nologin=/usr/sbin/nologin:\
:cputime=1h30m:\
:datasize=8M:\
:vmemoryuse=100M:\
:stacksize=2M:\
:memorylocked=4M:\
:memoryuse=8M:\
:filesize=8M:\
:coredumpsize=8M:\
:openfiles=24:\
:maxproc=32:\
:priority=0:\
:requirehome:\
:passwordtime=91d:\
:umask=022:\
:ignoretime@:\
:label=biba/10(10-10):Voeg de volgende regel toe aan de standaard
gebruikersklasse::label=biba/high:Wanneer dit voltooid is, moet het volgende commando gedraaid
worden om de database te herbouwen:&prompt.root; cap_mkdb /etc/login.confOpstartinstellingenStart nog niet opnieuw op, voeg alleen de volgende regels
toe aan /boot/loader.conf zodat de
benodigde modules worden geladen tijdens systeeminitialisatie:mac_biba_load="YES"
mac_seeotheruids_load="YES"Gebruikers instellenStel de gebruiker root in op de
standaardklasse met:&prompt.root; pw usermod root -L defaultAlle gebruikersaccounts die geen root
of systeemgebruikers zijn hebben nu een aanmeldklasse nodig. De
aanmeldklasse is nodig om te voorkomen dat gebruikers geen
toegang hebben tot gewone commando's als &man.vi.1;. Het
volgende sh-script zou moeten werken:&prompt.root; for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \/etc/passwd`; do pw usermod $x -L default; done;Laat de gebruikers nagios en
www in de klasse insecure vallen:&prompt.root; pw usermod nagios -L insecure&prompt.root; pw usermod www -L insecureHet contextbestand aanmakenNu dient een contextbestand aangemaakt te worden; het
volgende voorbeeld dient geplaatst te worden in
/etc/policy.contexts.# Dit is het standaard-BIBA-beleid voor dit systeem.
# Systeem:
/var/run biba/equal
/var/run/* biba/equal
/dev biba/equal
/dev/* biba/equal
/var biba/equal
/var/spool biba/equal
/var/spool/* biba/equal
/var/log biba/equal
/var/log/* biba/equal
/tmp biba/equal
/tmp/* biba/equal
/var/tmp biba/equal
/var/tmp/* biba/equal
/var/spool/mqueue biba/equal
/var/spool/clientmqueue biba/equal
#Voor Nagios:
/usr/local/etc/nagios
/usr/local/etc/nagios/* biba/10
/var/spool/nagios biba/10
/var/spool/nagios/* biba/10
#Voor Apache:
/usr/local/etc/apache biba/10
/usr/local/etc/apache/* biba/10Dit beleid zal beveiliging afdwingen door beperkingen aan de
informatiestroom te stellen. In deze specifieke configuratie
mogen gebruikers, inclusief root, nooit
toegang hebben tot Nagios.
Instellingenbestanden en processen die deel zijn van
Nagios zullen geheel in zichzelf
of in een jail zitten.Dit bestand kan nu in ons systeem worden gelezen door ons
systeem door het volgende commando uit te voeren:&prompt.root; setfsmac -ef /etc/policy.contexts /
&prompt.root; setfsmac -ef /etc/policy.contexts /De bovenstaande indeling van het bestandssysteem kan
afhankelijk van de omgeving verschillen; het moet echter op
elk bestandssysteem gedraaid worden.Het bestand /etc/mac.conf dient als
volgt in de hoofdsectie gewijzigd te worden:default_labels file ?biba
default_labels ifnet ?biba
default_labels process ?biba
default_labels socket ?bibaHet netwerk activerenVoeg de volgende regel toe aan
/boot/loader.conf:security.mac.biba.trust_all_interfaces=1En voeg het volgende toe aan de instellingen van de
netwerkkaart opgeslagen in rc.conf. Als de
primaire Internetconfiguratie via DHCP wordt
gedaan, kan het nodig zijn om dit handmatig te configureren
telkens nadat het systeem is opgestart:maclabel biba/equalDe configuratie testenMAC-configuratie testenControleer dat de webserver en
Nagios niet tijdens de
systeeminitialisatie worden gestart, en start opnieuw op.
Controleer dat de gebruiker root geen enkel
bestand in de instellingenmap van
Nagios kan benaderen. Als
root het commando &man.ls.1; op
/var/spool/nagios kan uitvoeren, is er iets
verkeerd. Anders zou er een fout Permission
denied teruggegeven moeten worden.Als alles er goed uitziet, kunnen
Nagios,
Apache, en
Sendmail nu gestart worden op een
manier die past in het beveiligingsbeleid. De volgende
commando's zorgen hiervoor:&prompt.root; cd /etc/mail &↦ make stop && \
setpmac biba/equal make start && setpmac biba/10\(10-10\) apachectl start && \
setpmac biba/10\(10-10\) /usr/local/etc/rc.d/nagios.sh forcestartControleer nogmaals om er zeker van te zijn dat alles juist
werkt. Indien niet, controleer dan de logbestanden of de
foutmeldingen. Gebruik het hulpprogramma &man.sysctl.8; om de
beveiligingsbeleidsmodule &man.mac.biba.4; uit te schakelen en
probeer om alles opnieuw op te starten, zoals gewoonlijk.De gebruiker root kan zonder angst de
afgedwongen beveiliging veranderen en de instellingenbestanden
bewerken. Het volgende commando staat toe om het
beveiligingsbeleid naar een lagere graad te degraderen voor
een nieuw voortgebrachte shell:&prompt.root; setpmac biba/10 cshOm te voorkomen dat dit gebeurt, kan de gebruiker via
&man.login.conf.5; in een bereik worden gedwongen. Als
&man.setpmac.8; probeert om een commando buiten het bereik van
het compartiment te draaien, zal er een fout worden
teruggegeven en wordt het commando niet uitgevoerd. Zet in
dit geval root op biba/high(high-high).Gebruikers afsluitenDit voorbeeld gaat over een relatief klein opslagsysteem met
minder dan vijftig gebruikers. Gebruikers kunnen zich aanmelden,
en mogen zowel gegevens opslaan als bronnen benaderen.Voor dit scenario kunnen &man.mac.bsdextended.4; gecombineerd
met &man.mac.seeotheruids.4; naast elkaar bestaan en zowel toegang
tot systeemobjecten als tot gebruikersprocessen ontzeggen.Begin door de volgende regel aan
/boot/loader.conf toe te voegen:mac_seeotheruids_load="YES"Het beveiligingsbeleidsmodule &man.mac.bsdextended.4; kan door
volgende variabele in rc.conf geactiveerd worden:ugidfw_enable="YES"De standaardregels in /etc/rc.bsdextended
zullen tijdens de systeeminitialisatie worden geladen; het kan
echter nodig zijn om de standaardregels te wijzigen. Aangezien
van deze machine alleen verwacht wordt dat het gebruikers bedient,
kunnen alle regels uitgecommentarieerd blijven behalve de laatste
twee. Deze forceren het standaard laden van systeemobjecten die
eigendom zijn van gebruikers.Voeg de benodigde gebruikers toe aan deze machine en start
opnieuw op. Probeer, voor testdoeleinden, u aan te melden als een
andere gebruiker over twee consoles. Draai het commando
ps aux om te zien of processen van andere
gebruikers zichtbaar zijn. Probeer om &man.ls.1; te draaien op de
thuismap van een andere gebruiker, dit zou moeten mislukken.Probeer niet te testen met de gebruiker
root tenzij de specifieke
sysctl's om supergebruikertoegang te blokkeren
zijn aangepast.Wanneer een nieuwe gebruiker is toegevoegd, zit de
&man.mac.bsdextended.4;-regel van die gebruiker niet in de lijst
van regelverzamelingen. Om de regelverzameling snel bij te
werken, kan simpelweg de beveiligingsbeleidsmodule worden
herladen met de gereedschappen &man.kldunload.8; en
&man.kldload.8;.Problemen oplossen met het MAC-raamwerkMAC-problemen oplossenTijdens de ontwikkeling hebben een aantal gebruikers problemen
aangegeven met normale instellingen. Hieronder worden een aantal
van die problemen beschreven:De optie kan niet ingeschakeld
worden op /De vlag blijft niet ingeschakeld
op de rootpartitie (/)!Het lijkt er inderdaad op dat een paar procent van de
gebruikers dit probleem heeft. Nadere analyse van het probleem
doet vermoeden dat deze zogenaamde bug het
resultaat is van òfwel onjuiste documentatie òfwel
verkeerde interpretatie van de documentatie. Hoe het probleem
ook is ontstaan, met de volgende stappen is het te verhelpen:Wijzig /etc/fstab en stel de
rootpartitie in op voor alleen-lezen.Herstart in enkele-gebruikersmodus.Draai tunefs op
/.Herstart in normale modus.Draai mount/ en wijzig terug
in in /etc/fstab en
start het systeem opnieuw.Controleer de uitvoer van mount om
zeker te zijn dat juist is
ingesteld op het rootbestandssysteem.X11-server start niet na MACNa het instellen van een beveiligde omgeving met
MAC start X niet meer!Dit kan komen door de MAC-beleidseenheid
partition of door een verkeerde labeling van
een van de MAC-labeling beleidseenheden.
Probeer als volgt te debuggen:Controleer de foutmelding. Als de gebruiker in de
klasse insecure zit, kan de
beleidseenheid partition het probleem
zijn. Zet de klasse voor de gebruiker terug naar de klasse
default en herbouw de database met het
commando cap_mkdb. Ga naar stap twee als
hiermee het probleem niet is opgelost.Controleer de labelbeleidseenheden nog een keer. Stel
zeker dat het beleid voor de bewuste gebruiker, de
X11-applicatie, en de onderdelen van /dev juist zijn ingesteld.Als geen van beide methodes het probleem oplossen, stuur
dan de foutmelding en een beschrijving van de omgeving naar
de TrustedBSD-discussielijsten van de TrustedBSD
website of naar de &a.questions; mailinglijst.Error: &man..secure.path.3; cannot stat
.login_confBij het wisselen van de gebruiker root
naar een andere gebruiker in het systeem, verschijnt de
foutmelding
_secure_path: unable to state .login_conf.Deze melding komt meestal voor als de gebruiker een hogere
labelinstelling heeft dan de gebruiker waarnaar wordt
gewisseld. Als bijvoorbeeld gebruiker joe
een standaardlabel heeft, dan kan
gebruiker root, die een label
heeft, de thuismap van
joe niet zien. Dit gebeurt zonder
rekening te houden met de mogelijkheid dat
root met su de
identiteit van joe heeft aangenomen. In
dit scenario staat het integriteitsmodel van Biba niet toe dat
root objecten kan zien van een lager
integriteitsniveau.De gebruikersnaam root is
stuk!In normale, of zelfs in enkelegebruikersmodus, wordt
root niet herkend. Het commando
whoami geeft 0 (nul) terug en
su heeft als resultaat who are
you?. Wat is er aan de hand?Dit kan gebeuren als een labelbeleid is uitgeschakeld,
òfwel door &man.sysctl.8; òf doordat de
beleidsmodule niet meer is geladen. Als de beleidseenheid
(tijdelijk) is uitgeschakeld dan moet de database met
aanmeldmogelijkheden opnieuw worden ingesteld, waarbij de optie
wordt verwijderd. Er dient voor te
worden zorggedragen dat het bestand
login.conf wordt ontdaan van alle opties
met , waarna de database opnieuw gebouwd
kan worden met cap_mkdb.Dit kan ook gebeuren als een beleid toegang verhinderd tot
het bestand of de database master.passwd.
Meestal wordt dit veroorzaakt door een beheerder die het bestand
veranderd onder een label welke conflicteert met het globale
beleid dat gebruikt wordt op het systeem. In deze gevallen
wordt de gebruikersinformatie gelezen door het systeem en wordt
de toegang geblokkeerd omdat het bestand het nieuwe label erft.
Zet het beleid uit door middel van &man.sysctl.8; en alles zou
weer normaal moeten zijn.
Index: translations/nl_NL.ISO8859-1/books/handbook/mail/chapter.xml
===================================================================
--- translations/nl_NL.ISO8859-1/books/handbook/mail/chapter.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/handbook/mail/chapter.xml (revision 40367)
@@ -1,2307 +1,2303 @@
BillLloydOrigineel werk van JimMockHerschreven door TomLeetersVertaald door FredericVan AsscheVertaling voortgezet door RenéLadanVertaling voortgezet door Elektronische mailOverzichtemailElektronische Mail, beter bekend als email, is
tegenwoordig een van de meest gebruikte vormen van communicatie.
Dit hoofdstuk geeft een algemene inleiding in het opzetten van een
mailserver op &os;, alsmede een introductie in het verzenden en
ontvangen van email op &os;; het is echter geen complete
referentie en veel belangrijke overwegingen zullen buiten
beschouwing worden gelaten. Voor een completere behandeling
wordt de lezer gewezen op de vele uitstekende boeken welke
worden vermeld in .In dit hoofdstuk wordt behandeld:Welke software (componenten) gebruikt wordt(en) bij het
verzenden en ontvangen van email.Waar algemene sendmail
instellingsbestanden worden opgeslagen in &os;.Het verschil tussen lokale en postbussen op-afstand.Hoe spammers te verhinderen dat ze de mailserver illegaal
gebruiken als "relay".Hoe een andere MTA (Mail Transfer Agent) te installeren en
configureren op het systeem, ter vervanging van
sendmail.Hoe veel voorkomende problemen met mail servers worden
opgelost.Hoe SMTP met UUCP te gebruiken.Hoe een systeem in te stellen om alleen mail te verzenden.Hoe email te gebruiken met een inbelverbinding.Hoe SMTP Authenticatie in te stellen voor verhoogde
beveiliging.Hoe een Mail User Agent zoals mutt te
installeren om email te verzenden en te ontvangen.Hoe mail te downloaden van een POP of
IMAP server op afstand.Hoe automatisch filters en sorteerregels op inkomende
email toe te passen.Voordat dit hoofdstuk gelezen wordt, dienen:De netwerkverbindingen correct ingesteld te zijn ().De juiste DNS-informatie ingesteld te zijn voor de
mailserver ().Bekend te zijn hoe software van derde partijen te
installeren ().Gebruik maken van elektronische mailPOPIMAPDNSEr zijn vijf belangrijke componenten betrokken bij het
uitwisselen van email. Dit zijn: het
gebruikersprogramma, de
serverdaemon, DNS,
een postbus, lokaal of op afstand
, en natuurlijk de mailhost
zelf.Het gebruikersprogrammaDit omvat opdrachtregelprogramma's zoals
mutt, alpine,
elm, en mail, en
GUI programma's zoals
balsa, xfmail, en
iets geavanceerders zoals een webbrowser. Deze
programma's doen niets anders dan de mail bezorgen bij de lokale mailhost, door deze
af te leveren of bij een van de beschikbare serverdiensten, of via
TCP.Mailhost Server Daemonmailserver daemonssendmailmailserver daemonspostfixmailserver daemonsqmailmailserver daemonsexim&os; wordt standaard geleverd met de
sendmail, maar ondersteunt meerdere andere
mailserver daemons, zoals:exim;postfix;qmail.De server daemon heeft meestal twee functies—het is
verantwoordelijk voor het ontvangen van inkomende mail en het
bezorgen van uitgaande mail. Het is niet
verantwoordelijk voor het verzamelen van mail door gebruik te
maken van protocollen zoals POP of
IMAP om mail te lezen, noch staat het toe om
een verbinding te maken met een lokale mbox
of Maildir postbus. Het is mogelijk dat daarvoor een extra
daemon voor nodig is.Oudere versies van sendmail
hebben serieuze beveiligingslekken welke kunnen leiden tot een
situatie waarbij een aanvaller lokale of toegang van afstand
tot de machine kan verkrijgen. Draai een actuele versie om
deze problemen te voorkomen. Optioneel kan een alternatieve
MTA van de &os;
Portscollectie geïnstalleerd worden.Email en DNSHet Domein Naam Systeem (DNS) en de daemon named
spelen een grote rol in het bezorgen van email. Om
het mogelijk te maken email van de deze lokatie naar een andere
lokatie te bezorgen, zal de serverdaemon de andere lokatie
opzoeken in het DNS om zo de host te bepalen die de email voor
de bestemming in ontvangst zal nemen. Dit gebeurt ook als
email verzonden wordt vanaf een andere host naar de lokale
mailserver.MX recordDNS is verantwoordelijk voor het koppelen
van hostnamen aan IP-adressen, en voor het opslaan van
specifieke informatie voor het bezorgen van mail, bekend als
MX-regels. De MX-regel (Mail eXchanger) specificeert welke
host(s) mail zullen ontvangen voor een specifiek domein. Als er
geen MX-regel is voor deze hostnaam of dit domein, dan zal de
mail direct bij de host worden afgeleverd, mits er een A-regel
is die deze hostnaam aan dit IP-adres koppelt.De MX-regels van een willekeurig domein kunnen worden
bekeken door gebruik te maken van het commando &man.host.1;,
zoals te zien is in het onderstaande voorbeeld:&prompt.user; host -t mx FreeBSD.org
FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.orgMail ontvangenemailontvangenDe mailhost verzorgt het ontvangen van mail voor het domein.
Deze zal alle mail verzonden aan het domein verzamelen en deze
afhankelijk van de configuratie opslaan in òf
mbox (de standaardmanier om mail op te slaan)
òf in Maildir-formaat. Wanneer de mail eenmaal is
opgeslagen, kan het òf lokaal gelezen worden door
toepassingen als &man.mail.1; of mutt
, of op afstand bekeken en verzameld worden middels protocollen
als POP of IMAP.
Dit betekent, dat als mail alleen lokaal wordt gelezen, er geen
POP- of IMAP-server
geïnstalleerd hoeft te worden.Op afstand toegang tot de postbus krijgen door gebruik te
maken van POP en IMAPPOPIMAPOm op afstand toegang te krijgen tot postbussen is het nodig
toegang te hebben tot een POP- of IMAP
-server. Deze protocollen stellen gebruikers in
staat hun postbus gemakkelijk op afstand te benaderen. Hoewel
zowel POP als IMAP
gebruikers in staat stellen op afstand een postbus te bereiken,
biedt IMAP veel voordelen, waaronder:IMAP kan berichten zowel op de
server op afstand opslaan als ze ophalen.IMAP ondersteunt gelijktijdig
actualiseren.IMAP kan uitstekend worden gebruikt
over langzame verbindingen omdat het gebruikers in staat
stelt de structuur van berichten te bekijken zonder deze
binnen te halen; het kan ook worden gebruikt om te zoeken
op de server om zo de gegevensoverdracht tussen client en
server te minimaliseren.Om een POP- of IMAP-
server te installeren, zijn de volgende stappen nodig:Kies een IMAP- of POP
-server die het beste aan de eisen voldoet.
De volgende POP- en IMAP
-servers zijn zeer bekend en zijn goede
voorbeelden:qpopper;teapop;imap-uw;courier-imap;dovecot;Installeer de gewenste POP- of
IMAP-daemon vanuit de Portscollectie.Wijzig indien nodig /etc/inetd.conf
om de POP- of IMAP
- server te laden.Let er wel op dat zowel POP en
IMAP informatie, waaronder gegevens over
gebruikersnaam en wachtwoord, onversleuteld versturen. Dit
betekent, dat wanneer het gewenst is dat de uitwisseling van
gegevens over deze protocollen versleuteld is, het
verstandig is om te overwegen de sessies over &man.ssh.1;
te tunnelen of SSL te gebruiken. Het tunnelen van sessies wordt
beschreven in en SSL in
.Toegang tot lokale postbussenPostbussen kunnen lokaal benaderd worden door direct op de
server waarop de postbus wordt bewaard MUAs
te gebruiken. Dit kan gedaan worden door programma's zoals
mutt of &man.mail.1; te gebruiken.De mailhostmailhostDe mailhost is de naam van de server welke verantwoordelijk
is voor het afleveren en ontvangen van mail voor de server en
mogelijk voor het netwerk.ChristopherShumwayBijgedragen door sendmail instellensendmail&man.sendmail.8; is de standaard Mail Transfer Agent (MTA) in
&os;. sendmail's taak is het
accepteren van mail van gebruikersprogramma's (MUA
) en deze te bezorgen bij de juiste mailer zoals
gedefinieerd in het betreffende configuratiebestand.
sendmail kan ook netwerkverbindingen
accepteren en mail in lokale postbussen afleveren of bezorgen
bij een ander programma.sendmail gebruikt de volgende
configuratiebestanden:/etc/mail/access/etc/mail/aliases/etc/mail/local-host-names/etc/mail/mailer.conf/etc/mail/mailertable/etc/mail/sendmail.cf/etc/mail/virtusertableBestandsnaamFunctie/etc/mail/accessbestand met de toegangsdatabase van
sendmail/etc/mail/aliasesAliases voor postbussen/etc/mail/local-host-namesLijst van servers waarvoor
sendmail mail accepteert/etc/mail/mailer.confConfiguratie voor het mailerprogramma/etc/mail/mailertableAflevertabel voor de mailer/etc/mail/sendmail.cfHoofdconfiguratiebestand van
sendmail/etc/mail/virtusertableTabellen voor virtuele gebruikers en domeinen/etc/mail/accessDe toegangsdatabase definieert welke host(s) of IP-adressen
toegang hebben tot de lokale mailserver en wat voor soort toegang
ze hebben. Hosts kunnen in de lijst als ,
, of staan, of
worden doorgevoerd naar de foutafhandelingsprocedure van
sendmail met een bepaalde mailerfout.
Hosts welke vermeld staan als , wat de
standaard is, kunnen mail versturen naar deze host zolang de
eindbestemming van de mail de lokale machine is. Hosts welke
vermeld staan als worden voor alle
verbindingen geweigerd. Hosts met een
vermelding wordt toegestaan om via deze server mail naar elke
bestemming te sturen.Configureren van de sendmail
toegangsdatabasecyberspammer.com 550 We accepteren geen mail van spammers
FREE.STEALTH.MAILER@ 550 We accepteren geen mail van spammers
another.source.of.spam REJECT
okay.cyberspammer.com OK
128.32 RELAYIn dit voorbeeld staan vijf vermeldingen. Mailafzenders die
overeenkomen met de linkerzijde van de tabel worden beïnvloed
door de actie die vermeld staan aan de rechterzijde van de tabel.
De eerste twee voorbeelden geven een foutcode af aan de
foutafhandelingsroutine van sendmail.
Het bericht wordt bij de externe host bekend gemaakt wanneer een
mail voldoet aan de linkerzijde van de tabel. De volgende regel
weigert mail van een specifieke host op het Internet,
another.source.of.spam. De volgende regel accepteert
mailverbindingen van een host
okay.cyberspammer.com, welke nauwkeuriger is dan de
regel met cyberspammer.com
erboven. Specifiekere regels vervangen minder specifieke. De
laatste regel staat het doorsturen van elektronische mail toe
vanaf hosts waarvan de IP-adressen beginnen met 128.32.
Deze hosts zijn dan in staat om via deze mailserver naar een andere
bestemming mail te versturen.Wanneer dit bestand is bijgewerkt, dient make
in /etc/mail/ te gedraaid te
worden om de database bij te werken./etc/mail/aliasesDe aliasdatabase bevat een lijst met virtuele postbussen die
verwijzen naar andere gebruiker(s), bestand(en), programma('s) of
andere aliassen. Hier zijn een paar voorbeelden die gebruikt
kunnen worden in /etc/mail/aliases:Mailaliassenroot: localuser
ftp-bugs: joe,eric,paul
bit.bucket: /dev/null
procmail: "|/usr/local/bin/procmail"Het bestandsformaat is simpel; de postbusnaam aan de
linkerzijde van de dubbele punt wordt verder uitgewerkt naar de
doel(en) aan de rechterzijde. Het eerste voorbeeld breidt de
postbus van root uit naar de postbus
localuser, welke dan vervolgens weer wordt
opgezocht in de aliasdatabase. Als er geen verdere overeenkomst
wordt gevonden, dan wordt het bericht afgeleverd bij de lokale
gebruiker localuser. Het volgende
voorbeeld toont een mailinglijst. Mail voor de postbus
ftp-bugs wordt doorverwezen naar de drie
lokale postbussen joe, eric
en paul. Merk op dat een
externe postbus gespecificeerd kan worden als
user@example.com. Het volgende voorbeeld toont het
schrijven van mail naar een bestand, in dit geval
/dev/null. Het laatste voorbeeld toont het sturen
van mail naar een programma, in dit geval wordt het mailbericht
doorgestuurd naar de standaard invoer van
/usr/local/bin/procmail via een &unix; pijp.Wanneer dit bestand is bijgewerkt, dient make
in /etc/mail/ gedraaid te worden
om de database bij te werken./etc/mail/local-host-namesDit is een lijst van hostnamen die &man.sendmail.8; moet
accepteren als de lokale hostnaam. Hierin dienen alle hostnamen
geplaatst te worden waarvoor sendmail
mail moet ontvangen. Als deze mailserver mail moet ontvangen
voor het domein example.com
en de hostnaam is mail.example.com,
dan ziet local-host-names er ongeveer zo
uit:example.com
mail.example.comWanneer dit bestand is bijgewerkt, dient &man.sendmail.8;
opnieuw gestart te worden zodat het de veranderingen kan lezen./etc/mail/sendmail.cfHet hoofdinstellingenbestand van sendmail
, sendmail.cf controleert het
algemene gedrag van sendmail,
inclusief alles van het herschrijven van emailadressen tot het
sturen van weigeringsberichten naar externe mailservers. Met
zo'n diverse rol is dit instellingenbestand redelijk complex en
vallen de details buiten het bereik van dit hoofdstuk. Gelukkig
hoeft dit bestand maar zelden aangepast te worden voor standaard
mailservers.Het hoofdinstellingenbestand van sendmail
kan gebouwd worden met &man.m4.1; macro's die het
gedrag en de mogelijkheden van sendmail
specificeren. Lees
/usr/src/contrib/sendmail/cf/README voor meer
details.Wanneer dit bestand is bijgewerkt, dient &man.sendmail.8;
opnieuw gestart te worden om de wijzigingen door te voeren./etc/mail/virtusertableDe virtusertable verbindt mailadressen
voor virtuele domeinen en postbussen met echte postbussen. Deze
postbussen kunnen lokaal, op afstand, aliassen gedefinieerd in
/etc/mail/aliases, of bestanden zijn.Voorbeeld van een mailtabel voor een virtueel domeinroot@example.com root
postmaster@example.com postmaster@noc.example.net
@example.com joeIn het voorbeeld hierboven staat een tabel voor een domein
example.com. Dit bestand
wordt van boven naar beneden verwerkt, en de eerste
overeenkomende regel wordt gebruikt. De eerste regel verbindt
root@example.com met de lokale postbus
root. De volgende regel verbindt
postmaster@example.com met de postbus
postmaster op de host
noc.example.net. Als geen van de vorige regels van
example.com overeenkomen, zal
de laatste regel gebruikt worden, die alle andere post
geadresseerd aan iemand bij
example.com opvangt en naar de lokale postbus
joe stuurt.AndrewBoothmanGeschreven door GregoryNeil ShapiroInformatie genomen uit emails geschreven door De Mail Transfer Agent vervangenemailmta veranderenZoals eerder vermeld wordt &os; geleverd met
sendmail voorgeïnstalleerd als MTA (Mail
Transfer Agent). Daarom regelt het standaard uitgaande en
binnenkomende mail.In sommige gevallen willen systeembeheerders wegens
uiteenlopende redenen hun MTA vervangen. Deze redenen
variëren van het uitproberen van een andere MTA tot het
installeren van een bepaalde functionaliteit of pakket dat
afhankelijk is van een andere MTA.Een nieuwe MTA installerenEr is een waaier van MTA's beschikbaar. Een goed startpunt
is de &os; Ports Collectie waar er
veel gevonden kunnen worden. Het is natuurlijk mogelijk iedere
MTA te gebruiken vanaf iedere locatie, zolang het draait op &os;.Begin met het installeren van de nieuwe MTA. Als de MTA
eenmaal geïnstalleerd is wordt er de kans gegeven te
beslissen of de nieuwe MTA echt voldoet aan de eisen, en is het
mogelijk de nieuwe software te configureren voordat deze het werk
van sendmail overneemt. Bevestig
voordat de MTA geïnstalleerd wordt dat de nieuwe software
geen poging onderneemt systeemtoepassingen zoals
/usr/bin/sendmail te overschrijven, anders wordt
de nieuwe software onmiddellijk in gebruik genomen voordat het
is geconfigureerd.Neem de documentatie van de gekozen MTA door voor meer
informatie over het configureren van de software.sendmail uitschakelenAls sendmail's uitgaande
emaildienst uitgeschakeld wordt, is het belangrijk dat het
vervangen wordt door een alternatief systeem. Als ervoor
gekozen wordt dit niet te doen, zullen
systeemfunctionaliteiten zoals &man.periodic.8; niet in staat
zijn hun resultaten te bezorgen per email, zoals ze normaliter
verwachten te kunnen doen. Vele delen van het systeem zullen
verwachten een werkend systeem aan te treffen dat compatibel
is met sendmail. Als toepassingen
binaries van sendmail blijven
gebruiken om mail te versturen nadat deze uitgeschakeld werden,
kan de mail in een inactieve sendmail
wachtrij geplaatst worden, en nooit bezorgd worden.Om sendmail volledig uit te
schakelen, inclusief de uitgaande emaildienst, dientsendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"toegevoegd te worden aan /etc/rc.conf.Als enkel sendmail's ingaande
emaildienst uitgeschakeld dient te worden, dientsendmail_enable="NO"toegevoegd te worden aan /etc/rc.conf.
Meer informatie over de opstartopties van
sendmail is beschikbaar in de hulppagina
&man.rc.sendmail.8;.De nieuwe MTA starten tijdens het opstartenDe nieuwe MTA kan gestart worden door deze instellingsregel
toe te voegen aan /etc/rc.conf, zoals het
volgende voorbeeld voor postfix:&prompt.root; echo 'postfix_enable=YES' >> /etc/rc.confDe MTA zal nu automatisch tijdens het opstarten worden
gestart.sendmail vervangen als de
standaard systeemmailerHet programma sendmail is zo
vanzelfsprekend als standaard software op &unix; systemen dat
sommige softwarepakketten ervan uitgaan dat
sendmail reeds geïnstalleerd en
geconfigureerd is. Daarom voorzien vele alternatieve MTA's in
compatibele implementaties van de opdrachtregelinterface van
sendmail; dit vergemakkelijkt het
gebruik van alternatieve MTA's als vervanging voor
sendmail.Bij het gebruiken van een alternatieve MTA moet men er zeker
van zijn dat software die probeert de standaardtoepassingen van
sendmail zoals
/usr/bin/sendmail te gebruiken, ook daadwerkelijk
de gekozen alternatieve mailer gebruikt. Gelukkig heeft &os;
hiervoor een systeem, &man.mailwrapper.8;, dat deze taak van de
systeembeheerder overneemt.Als sendmail werkt zoals
origineel geïnstalleerd, bevat
/etc/mail/mailer.conf bij benadering het volgende:sendmail /usr/libexec/sendmail/sendmail
send-mail /usr/libexec/sendmail/sendmail
mailq /usr/libexec/sendmail/sendmail
newaliases /usr/libexec/sendmail/sendmail
hoststat /usr/libexec/sendmail/sendmail
purgestat /usr/libexec/sendmail/sendmailDit wil zeggen dat wanneer een van deze algemene opdrachten
(zoals sendmail zelf) uitgevoerd wordt, het
systeem in werkelijkheid een kopie van de mailwrapper genaamd
sendmail uitvoert, dat
mailer.conf controleert en
/usr/libexec/sendmail/sendmail uitvoert. Dit
systeem maakt het eenvoudiger te specificeren welke toepassingen
daadwerkelijk uitgevoerd worden wanneer deze standaard
sendmail functies aangeroepen worden.Als men bijvoorbeeld wil dat
/usr/local/supermailer/bin/sendmail-compat uitgevoerd
wordt in plaats van sendmail, kan
men /etc/mail/mailer.conf als volgt
aanpassen:sendmail /usr/local/supermailer/bin/sendmail-compat
send-mail /usr/local/supermailer/bin/sendmail-compat
mailq /usr/local/supermailer/bin/mailq-compat
newaliases /usr/local/supermailer/bin/newaliases-compat
hoststat /usr/local/supermailer/bin/hoststat-compat
purgestat /usr/local/supermailer/bin/purgestat-compatAfwerkingWanneer alles correct geconfigureerd is, dienen ofwel alle
ongebruikte sendmail processen
gestopt te worden en de processen behorend aan de nieuwe
software gestart te worden, ofwel dient het systeem opnieuw
gestart te worden. Herstarten geeft ook de mogelijkheid te
controleren of de nieuwe MTA correct geconfigureerd is om
tijdens het opstartproces gestart te worden.Problemen oplossenemailproblemen oplossenWaarom is het nodig om de FQDN te gebruiken voor hosts
op de site?Het is waarschijnlijk dat de host zich in een ander
domein bevindt; bijvoorbeeld als het gewenst is om host
mompel in het domein bar.edu vanuit domein foo.bar.edu te bereiken, is het nodig
om er met de volledig gekwalificeerde domeinnaam naar te
verwijzen, mompel.bar.edu, in
plaats van slechts mompel.BINDTraditioneel werd dit door BSD BIND resolvers toegestaan
. De huidige versie van BIND die
met &os; wordt geleverd levert niet langer standaard
afkortingen voor onvolledig gekwalificeerde domeinnamen
anders dan het huidige domein. Dus moet een
ongekwalificeerde host mompel òf als
mompel.foo.bar.edu gevonden
worden, òf wordt er naar gezocht in het root-domein.Dit verschilt van het vorige gedrag, waar de zoektocht
- doorging over mompel.bar.edu
- , en bar.edu.
+ doorging over mompel.bar.edu,
+ en bar.edu.
Zie RFC 1535 voor de redenen waarom dit als een slechte
gewoonte en zelfs als beveiligingslek werd beschouwd.
- Als een goede tussenoplossing kan deze regel:
+ Als een goede tussenoplossing kan deze regel:
- search foo.bar.edu bar.edu
+ search foo.bar.edu bar.edu
- in plaats van het voorgaande:
+ in plaats van het voorgaande:
- domain foo.bar.edu
+ domain foo.bar.edu
- in /etc/resolv.conf geplaatst worden.
+ in /etc/resolv.conf geplaatst worden.
Ben er echter zeker van dat de zoekvolgorde niet verder gaat
- dan de grens tussen lokale en publieke regelgeving
- , zoals RFC 1535 het noemt.
+ dan de grens tussen lokale en publieke regelgeving,
+ zoals RFC 1535 het noemt.
- MX-regel
-
sendmail zegt mail
loops back to myselfDit wordt in de FAQ van sendmail
als volgt beantwoord:Deze foutmeldingen verschijnen:
553 MX list for domain.net points back to relay.domain.net
554 <user@domain.net>... Local configuration error
Hoe kan dit probleem worden opgelost?
Er is gevraagd om mail van het domein (bijvoorbeeld domain.net) naar een
specifieke host door te sturen (in dit geval relay.domain.net) door
gebruik te maken van een MX-regel, maar de machine die het door moet
sturen herkent zichzelf niet als domain.net. Voeg domain.net toe aan
/etc/mail/local-host-names [bekend als /etc/sendmail.cw voor versies
eerder dan 8.10] (als FEATURE(use_cw_file) gebruikt wordt) of voeg
Cw domain.net toe aan /etc/mail/sendmail.cf.De FAQ van sendmail is te
vinden op
en wordt aangeraden om te lezen indien enig tweaken
van de mailinstallatie gewenst is.
- PPP
-
Hoe kan een mailserver op een inbel-PPP-host gedraaid
worden?Het is gewenst om een &os;-computer in een LAN met het
Internet te verbinden. De &os;-computer zal en mail-gateway
voor het LAN zijn. De PPP-verbinding is niet toegewijd.UUCPMX-regelEr zijn minstens twee manieren om dit te doen.
Eén manier is om UUCP te gebruiken.Een andere manier is ervoor te zorgen dat een server die
altijd met het Internet verbonden is secundaire MX-diensten
voor het domein biedt. Als het domein bijvoorbeeld example.com is en de
internetprovider example.net
heeft ingesteld om secundaire MX-diensten voor het
domein te bieden:example.com. MX 10 example.com.
MX 20 example.net.Er dient slechts één host als de
uiteindelijke ontvanger gespecificeerd te worden (voeg
CW example.com toe aan
/etc/mail/sendmail.cf op example.com>).Wanneer de verzendende sendmail
probeert om mail af te leveren zal het proberen met example.com te verbinden via de
modemverbinding. Waarschijnlijk zal dit een time-out geven
omdat de computer niet online is. Het programma
sendmail zal het automatisch aan
de secundaire MX-site, de internetprovider (example.net) afleveren. De
secundaire MX zal dan periodiek proberen om een verbinding te
maken met de computer en de mail aan de primaire MX-host
leveren (example.com).Het kan wenselijk zijn om iets als het onderstaande als
inlogscript te gebruiken:#!/bin/sh
# Zet mij in /usr/local/bin/pppmyisp
( sleep 60 ; /usr/sbin/sendmail -q ) &
/usr/sbin/ppp -direct pppmyispIndien er een apart inlogscript voor een gebruiker wordt
aangemaakt, kan sendmail -qRexample.com
gebruikt worden in plaats van het bovenstaande script. Dit
zorgt ervoor dat alle mail in de mailrij voor example.com onmiddellijk
verwerkt wordt.Een verdere verfijning van de situatie is deze:Bericht gestolen van de &a.isp;.> we bieden de secundaire MX voor een klant.
> De klant maakt automatisch verschillende keren per dag een verbinding
> met onze diensten om de mailberichten naar zijn primaire MX te
> sturen (we bellen zijn site niet indien er een mail voor zijn
> domein arriveert). Onze sendmail verstuurt de mailrij om de 30
> minuten. Op het moment moet de klant 30 minuten online blijven om
> er zeker van te zijn dat alle mail naar de primaire MX is gegaan.
>
> Is er een commando dat sendmail er toe aanzet om alle mailberichten
> nu te versturen? De gebruiker heeft uiteraard geen root-rechten op
> onze machine.
In de sectie privacy flags van sendmail.cf staat een
definitie Opgoaway,restrictqrun
Verwijder restrictqrun om niet-root-gebruikers toe te staan te beginnen
de rij te verwerken. Het kan ook wenselijk zijn om de MXs opnieuw te
rangschikken. Wij zijn zo de eerste MX voor onze klanten, en we hebben
dit gedefinieerd:
# Als we de beste MX voor een host zijn, probeer direct in plaats van
# een lokale configuratiefout te genereren.
OwTrue
Op deze manier zal een site op afstand rechtstreeks hier afleveren,
zonder de verbinding van de klant te proberen. Vervolgens wordt er naar
de klant verstuurd. Dit werkt alleen voor hosts, dus
dient de klant hun mailcomputer customer.com te noemen en
hostname.customer.com in de DNS de plaatsen. Plaats een
A-regel in de DNS voor customer.com.Waarom blijven er fouten als Relaying Denied
verchijnen wanneer er mail van andere hosts
wordt verstuurd?In standaard &os;-installaties is sendmail
geconfigureerd om alleen mail te versturen
van de host waarop het draait. Als bijvoorbeeld een
POP-server beschikbaar is, kunnen
gebruikers mail controleren vanuit school, werk, of andere
lokaties op afstand, maar zullen ze nog steeds niet in staat
zijn om uitgaande emails van lokaties van buitenaf te
versturen. Gewoonlijk zal er na enkele ogenblikken na de
poging een email van MAILER-DAEMON
worden verzonden met een foutbericht
5.7 Relaying Denied.Er zijn verschillende manieren om dit te omzeilen. De
oplossing die het meest voor de hand ligt, is om het adres
van de internetprovider in een bestand relay-domains op
/etc/mail/relay-domains te zetten.
Een snelle manier om dit te doen is:&prompt.root; echo "your.isp.example.com" > /etc/mail/relay-domainsNadat dit bestand is aangemaakt of bewerkt dient
sendmail opnieuw gestart te
worden. Dit werkt prima indien u een serverbeheerder bent
en het niet wenselijk is om mail lokaal te verzenden, of
indien het gewenst is om een point-en-click client/systeem
op een andere machine of zelfs bij een andere
internetprovider te gebruiken. Het is ook erg bruikbaar
indien er slechts enkele email-accounts zijn aangemaakt.
Als er een groot aantal adressen dient te worden toegevoegd,
kan dit bestand in een tekstverwerker worden geopend en de
domeinen worden toegevoegd, één per regel:your.isp.example.com
other.isp.example.net
users-isp.example.org
www.example.orgNu zal het verzenden van elke mail door dit systeem,
verstuurd door elke host in deze lijst, lukken (aangenomen
dat de gebruiker een account op het systeem heeft). Dit is
een aardige manier om gebruikers toe te staan op afstand mail
vanaf het systeem te verzenden zonder dat mensen wordt
toegestaan om spam vanaf het systeem te verzenden.Geavanceerde onderwerpenDe volgende sectie behandelt meer ervaren onderwerpen zoals
mailinstellingen en het instellen van mail voor het gehele domein.BasisinstellingenemailinstellingenHet verzenden van email naar externe hosts zou onmiddellijk
moeten werken, zolang /etc/resolv.conf is
aangemaakt of zolang er een nameserver wordt gedraaid. Indien
het gewenst is dat mail voor de host aan de MTA (bijvoorbeeld
sendmail) geleverd dient te worden op
de &os;-host, zijn er twee methoden:Draai een eigen nameserver op een eigen domein,
bijvoorbeeld FreeBSD.orgZorg ervoor dat mail direct aan de host geleverd wordt.
Dit wordt gedaan door mail direct aan de huidige DNS-naam
voor de machine, bijvoorbeeld
example.FreeBSD.org, te leveren.SMTPOnafhankelijk van de hierboven gekozen methode, dient de
host, om er direct mail aan geleverd te krijgen, een permanent
statisch IP-adres te hebben (niet een dynamisch adres, zoals dat
bij de meeste PPP-inbelverbindingen het geval is). Indien er
een firewall actief is, dient het SMTP-verkeer naar de host door
te geven. Indien het gewenst is dat de host direct mail
ontvangt, dient één van de twee onderstaande
dingen geregeld te zijn:MX-regelZorg ervoor dat de (laagstgenummerde) MX-regel in het
DNS naar het IP-adres van de host wijst.Zorg ervoor dat er geen MX-regel in het DNS is voor de
host.Met elk van de bovenstaanden kan mail direct op de host
ontvangen worden.Probeer dit:&prompt.root; hostname
example.FreeBSD.org
&prompt.root; host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XXIndien dit verschijnt, zal mail die direct naar
yourlogin@example.FreeBSD.org zonder
problemen moeten werken (aangenomen dat
sendmail correct werkt op
example.FreeBSD.org).Indien in plaats daarvan zoiets als dit verschijnt:&prompt.root; host example.FreeBSD.org
example.FreeBSD.org has address 204.216.27.XX
example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.orgzal alle mail die naar de host (
example.FreeBSD.org) verzameld worden op hub
onder dezelfde gebruikersnaam in plaats van direct
naar de host verstuurd te worden.Bovenstaande informatie wordt door de DNS-server afgehandeld. De
DNS-regel die informatie over het routen van mail bevat is de
Mail eXchange regel. Indien
er geen MX-regel is, zal mail direct aan de host worden afgeleverd door
middel van het IP-adres.De MX-regel voor freefall.FreeBSD.org
zag er eens als volgt uit:freefall MX 30 mail.crl.net
freefall MX 40 agora.rdrop.com
freefall MX 10 freefall.FreeBSD.org
freefall MX 20 who.cdrom.comTe zien is dat freefall vele MX-regels had.
Het laagste MX-getal hoort bij de host die de mail direct
ontvangt indien beschikbaar; indien het om een of andere reden
niet beschikbaar is, accepteren de anderen (soms
reserve-MXs genoemd) tijdelijk berichten en geven ze
die door wanneer een lager-genummerde host beschikbaar is, om
uiteindelijk aan de laagstgenummerde host af te leveren.Alternatieve MX-sites zouden andere Internetverbindingen dan
die van de host moeten hebben om het nuttigst te zijn. De
internetprovider of een andere vriendelijke site zouden geen
problemen moeten hebben met het leveren van deze dienst.Mail voor het domeinOm een mailhost (ook bekend als een
mailserver) te installeren, is het nodig om mail die verzonden
wordt naar de verschillende werkstations ernaar toe te leiden.
In principe dient alle mail voor elke hostnaam in het domein (in
dit geval *.FreeBSD.org) geclaimd
te worden en naar de mailserver omgeleid te worden zodat
gebruikers hun mail op de hoofdmailserver kunnen ontvangen.DNSHet gemakkelijkste is het indien er een gebruikersaccount
met dezelfde gebruikersnaam op beide
machines bestaat. Hiervoor dient &man.adduser.8; gebruikt te
worden.De mailhost die het meest gebruikt zal worden is de
toegewezen mailuitwisselaar voor elk werkstation in het netwerk.
Dit wordt in de DNS-instellingen als volgt gedaan:example.FreeBSD.org A 204.216.27.XX ; werkstation
MX 10 hub.FreeBSD.org ; mailhostDit zal mail voor het werkstation naar de mailhost leiden
onafhankelijk van waar de A-regel naar toe wijst. De mail wordt
naar de MX-host verzonden.Om dit te doen is het nodig om een eigen DNS-server te
draaien. Neem, indien dit niet het geval is of het niet
mogelijk is om een eigen DNS-server te draaien, contact op met
degene die de DNS levert.De volgende informatie is nuttig indien email virtueel gehost
wordt. In dit voorbeeld wordt aangenomen dat er een klant is
met een eigen domein, in dit geval
customer1.org, en dat alle mail voor customer1.org naar de mailhost
mail.myhost.com verzonden dient te
worden. De regel in het DNS dient er als volgt uit te zien:customer1.org MX 10 mail.myhost.comHet is niet nodig om een A-regel voor
customer1.org te hebben als
er voor dat domein alleen email afgehandeld dient te worden.Let erop dat customer1.org
pingen niet werkt tenzij er een A-regel voor bestaat.Als laatste dient sendmail op de
mailhost te weten voor welke domeinen en/of hostnamen het mail
dient te accepteren. Er bestaan enkele verschillende manieren
om dit te doen. Elk van de volgende manieren zal werken:Voeg de hosts toe aan het bestand
/etc/mail/local-host-names indien
FEATURE(use_cw_literal). Indien er een versie
van sendmail wordt gebruikt die
ouder is dan 8.10, is het te gebruiken bestand
/etc/sendmail.cw.Voeg een regel met Cwyour.host.com
toe aan /etc/sendmail.cf of aan
/etc/mail/sendmail.cf indien versie
8.10 of nieuwer van sendmail
wordt gebruikt.SMTP met UUCPDe instellingen van sendmail die
met &os; worden geleverd zijn ontworpen voor sites die een directe
verbinding met het Internet hebben. Sites waarvoor de mail via
UUCP willen uitwisselen dienen een ander instellingenbestand voor
sendmail te installeren.Het handmatig bijstellen van
/etc/mail/sendmail.cf is een geavanceerd onderwerp.
Versie 8 van sendmail genereert
instellingenbestanden via &man.m4.1; preprocessing, waarbij het
eigenlijke instellen op een hoger abstractieniveau plaatsvindt.
De instellingenbestanden voor &man.m4.1; kunnen onder
/usr/share/sendmail/cf gevonden worden. Het bestand
README in de map cf kan
dienen als een basisintroductie tot het instellen van &man.m4.1;.De beste manier om UUCP te ondersteunen is het gebruiken van
de eigenschap mailertable. Dit maakt een
database aan die sendmail kan gebruiken
om beslissingen over routes te nemen.Als eerste dient het .mc-bestand
aangemaakt te worden. De map
/usr/share/sendmail/cf/cf bevat enkele
voorbeelden. Indien het bestand foo.mc heet,
hoeft slechts het volgende gedaan te worden om het in een geldig
sendmail.cf om te zetten:&prompt.root; cd /etc/mail
&prompt.root; make foo.cf
&prompt.root; cp foo.cf /etc/mail/sendmail.cfEen typisch .mc-bestand kan er als volgt
uitzien:VERSIONID(`Uw versienummer') OSTYPE(bsd4.4)
FEATURE(accept_unresolvable_domains)
FEATURE(nocanonify)
FEATURE(mailertable, `hash -o /etc/mail/mailertable')
define(`UUCP_RELAY', uw.uucp.relay)
define(`UUCP_MAX_SIZE', 200000)
define(`confDONT_PROBE_INTERFACES')
MAILER(local)
MAILER(smtp)
MAILER(uucp)
Cw uw.alias.host.naam
Cw uwuucpnodenaam.UUCPDe regels die de eigenschappen
accept_unresolvable_domains,
nocanonify, en
confDONT_PROBE_INTERFACES bevatten zorgen
ervoor dat er geen gebruik wordt gemaakt van het DNS tijdens het
afleveren van mail. De clausule UUCP_REPLAY is
nodig om UUCP-aflevering te ondersteunen. Hier dient een hostnaam
op het Internet ingevuld te worden die .UUCP pseudo-domeinadressen
kan afhandelen, waarschijnlijk zal dit de mailrelay van de
Internetprovider zijn.Nadat dit gedaan is, is er een bestand
/etc/mail/mailertable nodig. Indien er slechts
één verbinding naar buiten is die voor alle mails
gebruikt wordt, zal het volgende bestand volstaan:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
. uucp-dom:uw.uucp.relayEen complexer voorbeeld kan er als volgt uitzien:#
# makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
#
horus.interface-business.de uucp-dom:horus
.interface-business.de uucp-dom:if-bus
interface-business.de uucp-dom:if-bus
.heep.sax.de smtp8:%1
horus.UUCP uucp-dom:horus
if-bus.UUCP uucp-dom:if-bus
. uucp-dom:De eerste drie regels behandelen speciale gevallen waarbij
domein-geadresseerde mail niet naar de standaardroute verzonden
dient te worden, maar in plaats daarvan naar een UUCP-buur om het
afleverpad af te snijden. De volgende regel
handelt mail naar het lokale Ethernetdomein die met SMTP
afgeleverd kan worden af. Als laatste worden UUCP-buren in de
.UUCP-pseudodomeinnotatie genoemd, om een
uucp-buur!ontvanger-overname toe te staan. De laatste regel bestaat altijd
uit een enkele punt, dat met al het andere matcht, met
UUCP-aflevering naar een UUCP-buur die als universele mail-gateway
naar de wereld dient. Alle nodenamen achter het sleutelwoord
uucp-dom: dienen geldige UUCP-buren te zijn,
dat met het commando uuname gecontroleerd kan
worden.Dit bestand dient naar een DBM-database omgezet te worden voor
gebruik. De opdrachtregel om dit te doen kan het beste als
commentaar bovenaan het bestand mailertable
gezet worden. Deze opdracht dient telkens wanneer het bestand
mailertable wordt gewijzigd uitgevoerd te
worden.Laatste tip: indien de werking van een zekere mailroute niet
zeker is, kan de optie van
sendmail gebruikt worden. Het start
sendmail in adrestestmodus
op; voer 3,0 gevolgd door het adres dat voor de
mailrouting getest dient te worden in. De laatste regel bevat de
gebruikte interne mailagent, de bestemmingshost waarmee deze agent
aangeroepen wordt, en het (mogelijk vertaalde) adres. Deze modus
kan door het typen van CtrlD
verlaten worden.&prompt.user; sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
>3,0 foo@example.com
canonify input: foo @ example . com
...
parse returns: $# uucp-dom $@ uw.uucp.relay $: foo < @ example . com . >
>^DBillMoranBijgedragen door Instellen om alleen te versturenEr zijn veel gevallen waarbij het gewenst is om enkel mail te
verzenden via een relay. Voorbeelden hiervan zijn:De computer is een desktop, maar het is gewenst om
programma's als &man.send-pr.1; te gebruiken. Hiervoor dient
de mailrelay van de internetprovider gebruikt te worden.De computer is een server welke mail niet lokaal verwerkt,
maar alle mail voor verwerking doorstuurt.Zowat elke MTA kan deze specifieke taak
vervullen. Helaas kan het erg moeilijk zijn om een MTA
met alle mogelijkheden correct in te stellen om alleen
uitgaande mail te behandelen. Programma's als
sendmail en postfix
zijn hiervoor grotendeels overbodig.Ook kan het zijn dat de overeenkomst van een typisch
internetabonnement het draaien van een mail server
verbiedt.De gemakkelijkste manier om aan deze behoeften te voldoen is
door de port mail/ssmtp te
installeren. Voer als root de volgende
opdrachten uit:&prompt.root; cd /usr/ports/mail/ssmtp
&prompt.root; make install replace cleanEenmaal geïnstalleerd kan
mail/ssmtp door middel van het
vier-regelige bestand
/usr/local/etc/ssmtp/ssmtp.conf ingesteld
worden:root=uwechteemail@example.com
mailhub=mail.example.com
rewriteDomain=example.com
hostname=_HOSTNAME_Let erop dat het echte emailadres voor root
gebruikt wordt. Vervang
mail.example.com door de uitgaande mail relay van de
internetprovider (ook wel de uitgaande mailserver
of SMTP-server genoemd).Let erop dat sendmail uitgeschakeld
wordt, inclusief de uitgaande maildienst. Raadpleeg voor details.mail/ssmtp heeft nog meer
mogelijkheden. Raadpleeg het voorbeeldinstelbestand
/usr/local/etc/ssmtp of de hulppagina van
ssmtp voor enkele voorbeelden en meer
informatie.Door ssmtp op deze manier in te
stellen kan alle software op de computer welke mail dient te
versturen correct functioneren, zonder dat het beleid van de
internetprovider geschonden wordt of dat de computer gekaapt kan
worden om spam mee te versturen.Mail gebruiken met een inbelverbindingIndien het IP-adres statisch is, is het niet nodig om de
standaardwaarden aan te passen. De toegewezen Internetnaam dient
als hostnaam gebruikt te worden waarna sendmail
de rest kan doen.Indien het IP-adres dynamisch is en er een inbelverbinding
naar het Internet gebruikt wordt, is de postbus waarschijnlijk op
de mailserver van de Internetprovider geplaatst. Stel dat het
domein van de Internetprovider
example.net is, dat de gebruikersnaam
gebruiker is, dat de machine
bsd.home is, en dat volgens de Internetprovider relay.example.net als mailrelay gebruikt
kan worden.Om mail van de postbus te ontvangen, dient er een
ontvangstagent geïnstalleerd te worden. Het gereedschap
fetchmail is een goede keuze omdat het
veel verschillende protocollen ondersteunt. Dit programma is als
pakket of vanuit de Portscollectie (
mail/fetchmail) beschikbaar.
Normaliter levert de Internetprovider POP.
Indien gebruikers-PPP gebruikt wordt, kan de
mail automatisch worden opgehaald wanneer er een verbinding met
Internet tot stand is gebracht door middel van de volgende regel
in /etc/ppp/ppp.linkup:MYADDR:
!bg su gebruiker -c fetchmailIndien sendmail gebruikt wordt (
zoals hieronder te zien is) om mail aan niet-lokale accounts af te
leveren, is het waarschijnlijk gewenst dat sendmail
de mailrij verwerkt zodra er een Internetverbinding
tot stand is gebracht. Hiervoor dient de volgende opdracht na de
fetchmail-opdracht in
/etc/ppp/ppp.linkup geplaatst te worden: !bg su gebruiker -c "sendmail -q"Aangenomen wordt dat er een account voor gebruiker
op bsd.home aanwezig is.
In de thuismap van gebruiker op bsd.home dient een bestand
.fetchmailrc aangemaakt te worden:poll example.net protocol pop3 fetchall pass MijnGeheimDit bestand dient alleen voor gebruiker
leesbaar te zijn aangezien dit bestand het wachtwoord
MijnGeheim bevat.Om mail met de correcte from:-header te
versturen, dient sendmail
gebruiker@example.net in plaats van
gebruiker@bsd.home te gebruiken. Het kan ook wenselijk
zijn om sendmail alle mail via relay.example.net te versturen, om sneller
mail te verzenden.Het volgende .mc zou voldoende moeten
zijn:VERSIONID(`bsd.home.mc version 1.0')
OSTYPE(bsd4.4)dnl
FEATURE(nouucp)dnl
MAILER(local)dnl
MAILER(smtp)dnl
Cwlocalhost
Cwbsd.home
MASQUERADE_AS(`example.net')dnl
FEATURE(allmasquerade)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(nocanonify)dnl
FEATURE(nodns)dnl
define(`SMART_HOST', `relay.example.net')
Dmbsd.home
define(`confDOMAIN_NAME', `bsd.home')dnl
define(`confDELIVERY_MODE', `deferred')dnlIn de vorige sectie staan de details over het omzetten van een
.mc-bestand in bestand sendmail.cf
. Ook dient sendmail
herstart te worden na het wijzigen van sendmail.cf
.JamesGorhamGeschreven door SMTP-authenticatieHet hebben van SMTP-authenticatie op een
mailserver heeft een aantal voordelen. SMTP-
authenticatie kan een extra beveiligingslaag toevoegen aan
sendmail, en het geeft mobiele
gebruikers die van hosts wisselen de mogelijkheid om dezelfde
mailserver te gebruiken zonder dat ze telkens de instellingen van
hun mailclient moeten veranderen.Installeer security/cyrus-sasl2
vanuit de ports. Deze port is te vinden in
security/cyrus-sasl2. De
port security/cyrus-sasl2
ondersteund een aantal opties tijdens de compilatie. Voor de
SMTP-authenticatiemethode die hier gebruikt wordt, dient de
optie te zijn uitgezet.Voeg nadat security/cyrus-sasl2
is geïnstalleerd deze regel toe aan
/usr/local/lib/sasl2/Sendmail.conf:pwcheck_method: saslauthdInstalleer vervolgens
security/cyrus-sasl2-saslauthd,
en voeg de volgende regel toe aan
/etc/rc.conf:saslauthd_enable="YES"en start vervolgens het saslauthd-daemon op:&prompt.root; /usr/local/etc/rc.d/saslauthd startDeze daemon fungeert als een onderhandelaar voor
sendmail die zich tegen de &os;
passwd-database authenticeert. Dit
bespaart de moeite van het opnieuw creëren van een nieuwe
verzameling gebruikersnamen en wachtwoorden voor elke
gebruiker die SMTP-authenticatie nodig
heeft, en het houdt de wachtwoorden voor het inloggen en de
mail hetzelfde.Voeg de volgende regels toe aan /etc/make.conf
:SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
SENDMAIL_LDFLAGS=-L/usr/local/lib
SENDMAIL_LDADD=-lsasl2Deze regels geven sendmail de
juiste instelopties om tijdens het compileren met cyrus-sal2 te linken. Zorg ervoor
dat cyrus-sasl2 is
geïnstalleerd voordat sendmail
wordt gehercompileerd.Hercompileer sendmail door de
volgende opdrachten uit te voeren:&prompt.root; cd /usr/src/lib/libsmutil
&prompt.root; make cleandir && make obj && make
&prompt.root; cd /usr/src/lib/libsm
&prompt.root; make cleandir && make obj && make
&prompt.root; cd /usr/src/usr.sbin/sendmail
&prompt.root; make cleandir && make obj && make && make installHet compileren van sendmail zou
geen problemen moeten geven indien /usr/src
niet veel veranderd is en dat de benodigde
gedeelde bibliotheken aanwezig zijn.Nadat sendmail is gecompileerd
en opnieuw is gecompileerd, dient
/etc/mail/freebsd.mc (of het plaatselijke
.mc-bestand) gewijzigd te worden. Veel
beheerders kiezen ervoor om de uitvoer van &man.hostname.1;
als .mc-bestandsnaam te gebruiken vanwege
de uniciteit. Voeg deze regels toe:dnl set SASL options
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnlDeze opties stellen de verschillende beschikbare methoden
voor sendmail in om gebruikers te
authenticeren. Gebruik de bijgeleverde documentatie indien
een andere methode dan pwcheck
gewenst is.Voer als laatste &man.make.1; in /etc/mail
uit. Hierdoor wordt het nieuwe .mc
-bestand uitgevoerd en wordt een bestand
freebsd.cf (of de plaatselijke variant ervan)
aangemaakt. Voer hierna de opdracht make install
restart uit, wat het bestand naar
sendmail.cf kopieert en sendmail
op de juiste manier herstart. In
/etc/mail/Makefile staat meer informatie over dit
proces.Indien alles goed is gegaan, moet het mogelijk zijn om de
inloginformatie in de mailclient in te voeren en een testbericht
te versturen. Zet voor verdere onderzoekingen de van sendmail op 13 en houdt
/var/log/maillog in de gaten voor
foutmeldingen.Refereer naar de sendmail-pagina
betreffende
SMTP-authenticatie voor meer
informatie.MarcSilverBijgedragen door Mail User AgentsMail User AgentsEen mail user agent (MUA) is een toepassing
die wordt gebruikt om email te versturen en te ontvangen.
Bovendien, omdat email evolueert en steeds
complexer wordt, worden MUAs steeds krachtiger
in de manier waarop ze met email omgaan; dit biedt gebruikers
verhoogde functionaliteit en flexibiliteit. &os; ondersteunt
verschillende mail user agents die allemaal eenvoudig
geïnstalleerd kunnen worden door de
&os; Ports Collectie te gebruiken. Gebruikers kunnen
kiezen tussen grafische emailclients zoals evolution
of balsa, op de console
gebaseerde clients zoals mutt,
alpine of mail, of de
webinterface die door sommige grote organisaties wordt gebruikt.mail&man.mail.1; is de standaard mail user agent
(MUA) in &os;. Het is een consolegebaseerde
MUA die alle basisfunctionaliteit biedt die
nodig is om tekstgebaseerde email te verzenden en te ontvangen,
maar het is beperkt in de mogelijkheden om met bijlagen om te
gaan en het ondersteunt alleen plaatselijke postbussen.Hoewel mail van huis uit geen
ondersteuning voor POP- of IMAP
-servers biedt, kunnen deze postbussen gedownload
worden naar een lokaal mbox-bestand door
een toepassing als fetchmail te
gebruiken, welke later in dit hoofdstuk behandeld wordt ().Draai mail om email te versturen en te
ontvangen:&prompt.user; mailDe inhoud van de gebruikerspostbus in /var/mail wordt automatisch gelezen
door het programma mail. Indien de postbus
leeg is, eindigt het programma het een melding dat er geen mail
gevonden kon worden. Wanneer de postbus is gelezen, wordt de
applicatie-interface gestart, en wordt er een berichtenlijst
weergegeven. Berichten worden automatisch genummerd, zoals in
het volgende voorbeeld te zien is:Mail version 8.1 6/6/93. Type ? for help.
"/var/mail/marcs": 3 messages 3 new
>N 1 root@localhost Mon Mar 8 14:05 14/510 "test"
N 2 root@localhost Mon Mar 8 14:05 14/509 "user account"
N 3 root@localhost Mon Mar 8 14:05 14/509 "sample"Berichten kunnen nu worden gelezen door middel van het
commando t van mail, gevolgd
door het gewenste berichtnummer. In dit voorbeeld wordt de
eerste email gelezen:& t 1
Message 1:
From root@localhost Mon Mar 8 14:05:52 2004
X-Original-To: marcs@localhost
Delivered-To: marcs@localhost
To: marcs@localhost
Subject: test
Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST)
From: root@localhost (Charlie Root)
This is a test message, please reply if you receive it.Zoals in bovenstaand voorbeeld te zien is, zorgt de toets
t ervoor dat het bericht met volledige headers
wordt getoond. Om de berichtenlijst nogmaals weer te geven,
dient de toets h gebruikt te worden.Er kan met mail op een email gereageerd
worden, door gebruik te maken één van de toetsen
R of r. De toets
R vertelt mail dat er alleen
aan de verzender van het bericht geantwoord dient te worden,
terwijl de toets r niet alleen aan de verzender
antwoordt, maar ook aan andere ontvangers van het bericht. Het
is ook mogelijk om achter deze commando's het berichtnummer te
plaatsen waarop gereageerd dient te worden. Nadat dit gedaan is
, dient het antwoord gegeven te worden, en dient het einde van
het bericht aangegeven te worden met een enkele
. op een nieuwe regel. Een voorbeeld staat
hieronder:& R 1
To: root@localhost
Subject: Re: test
Thank you, I did get your email.
.
EOTOm een nieuwe email te verzenden, dient de toets
m gebruikt te worden, gevolgd door het adres
van de ontvanger. Er kunnen meerdere ontvangers gespecificeerd
worden door ze met een , te scheiden. Hierna
kan het onderwerp van het bericht worden gegeven, gevolgd door
de inhoud van het bericht. Het einde van het bericht dient te
worden aangegeven door een enkele . op een
nieuwe regel te plaatsen.& mail root@localhost
Subject: I mastered mail
Now I can send and receive email using mail ... :)
.
EOTBinnen het programma mail kan op elk
moment de opdracht ? gebruikt worden om hulp
weer te geven, hiervoor kan ook de hulppagina &man.mail.1;
worden geraadpleegd.Zoals eerder is aangegeven, is het programma &man.mail.1;
van origine niet ontworpen om met bijlagen om te gaan, dus
behandelt het deze slecht. Nieuwere MUAs
zoals mutt gaan veel intelligenter
met bijlagen om. Maar indien het programma mail
nog steeds geprefereerd wordt, kan de port
converters/mpack van
aanzienlijk nut zijn.muttmutt is een kleine doch zeer
krachtige mail user agent, met uitstekende mogelijkheden,
waaronder:De mogelijkheid om berichten te threaden;PGP-ondersteuning voor het digitaal ondertekenen en
versleutelen van email;MIME-ondersteuning;Maildir-ondersteuning;Erg goed aan te passen.Al deze eigenschappen zorgen ervoor dat mutt
een van de meest geavanceerde beschikbare mail
user agents is. Op
staat meer informatie.De stabiele versie van mutt kan
geïnstalleerd worden door de port mail/mutt te gebruiken, terwijl de
huidige ontwikkelaarsversie geïnstalleerd kan worden via de
port mail/mutt-devel. Nadat
de port is geïnstalleerd, kan
mutt gestart worden met het volgende
commando:&prompt.user; muttmutt zal automatisch de inhoud
van de gebruikerspostbus in /var/mail lezen en de inhoud
weergeven indien van toepassing. Indien er geen mails gevonden
zijn in de gebruikerspostbus, zal mutt
wachten voor opdrachten van de gebruiker. Het
onderstaande voorbeeld laat zien hoe mutt
een lijst berichten weergeeft:Selecteer om een email te lezen deze met de cursortoetsen, en sla de
toets Enter aan. Een voorbeeld waarbij
mutt email laat zien staat hieronder:Net zoals het commando &man.mail.1; staat mutt
gebruikers toe om alleen de afzender alsook alle
ontvangers te beantwoorden. Om alleen de afzender van de email
te antwoorden, wordt de toets r gebruikt. Om
aan een groep te antwoorden, welke aan zowel de originele
afzender als aan alle berichtontvangers wordt gestuurd, wordt de
toets g gebruikt.mutt maakt gebruikt van het
programma &man.vi.1; als tekstverwerker voor het aanmaken en
beantwoorden van emails. De gebruiker kan dit aanpassen door
een eigen .muttrc aan te maken in hun
thuismap en de variabele editor of de
omgevingsvariabele EDITOR aan te passen. Zie
voor meer
informatie over het instellen van
mutt.Voor het opstellen van een nieuw mailbericht wordt de toets
m gebruikt. Nadat er een geldig bericht is
gegeven, start mutt &man.vi.1; op en
kan de mail geschreven worden. Nadat de inhoud van de mail is
geschreven, zal mutt nadat
vi verlaten is, zichzelf hervatten en een
overzichtsscherm van de te verzenden mail afbeelden. Om de mail
te versturen wordt de toets y gebruikt. Een
voorbeeld van het overzichtsscherm is hieronder te zien:mutt bevat ook uitgebreide hulp,
welke in de meeste menu's geactiveerd kan worden door de toets
? aan te slaan. De bovenste regel geeft ook
de relevante toetsen aan.alpinealpine richt zich op de beginnende
gebruiker, maar bevat ook geavanceerde mogelijkheden.Er zijn in het verleden verschillende kwetsbaarheden voor
alpine ontdekt, welke aanvallers op
afstand in staat stelden om willekeurige code als gebruikers
op het lokale systeem uit te voeren, door een speciaal
voorbereide email te versturen. Alle
bekende problemen van dit type zijn
gerepareerd, maar de code van alpine
is op een zeer onveilige manier geschreven en de
beveiligingsofficier van &os; gelooft dat het waarschijnlijk
is dat er nog meer onontdekte kwetsbaarheden zijn. Installeer
alpine op eigen risico.De huidige versie van alpine kan
door middel van de port
mail/alpine
geïnstalleerd worden. Wanneer de port geïnstalleerd
is, kan alpine met het volgende
commando gestart worden:&prompt.user; alpineDe eerste keer dat alpine wordt
gedraaid geeft het een welkomstpagina met een korte introductie
weer, alsmede een verzoek van het ontwikkelteam van
alpine om een anoniem emailbericht te
versturen wat ze in staat stelt om te beoordelen hoeveel
gebruikers hun client gebruiken. Druk op Enter
om dit anonieme bericht te versturen, of druk op
E om het welkomstscherm te verlaten zonder een
anoniem bericht te versturen. Een voorbeeld van het
welkomstscherm is hieronder te zien:Vervolgens wordt het hoofdmenu getoond, waarin gemakkelijk
met de cursortoetsen kan worden genavigeerd. Dit hoofdmenu
biedt afkortingen voor het schrijven van nieuwe mail, het
doorbladeren van mailmappen, en zelfs het beheren van het
adresboek. Onder het hoofdmenu worden relevante
toetscombinaties voor de huidige taak getoond.De standaardmap die door alpine
wordt geopend is de inbox.
Gebruik de toets I om de berichtenindex te
zien, of selecteer de optie MESSAGE
INDEX zoals hieronder te zien is:De berichtenindex geeft de berichten in de huidige map weer,
en kan met de cursortoetsen worden genavigeerd. Gemarkeerde
berichten kunnen worden gelezen door op Enter
te drukken.In onderstaand screenshot wordt een voorbeeldbericht door
alpine weergegeven. Toetsencombinaties
worden ter referentie aan de onderkant van het scherm
weergegeven. Een voorbeeld van een van deze combinaties is de
toets r, welke de MUA
vertelt op het huidige bericht te antwoorden.Voor het beantwoorden van een bericht wordt in
alpine gebruikt gemaakt van de
tekstverwerker pico, welke standaard
bij alpine wordt geïnstalleerd.
Het programma pico maakt het
gemakkelijk om in het bericht te navigeren en is meer
vergevingsgezind voor nieuwe gebruikers dan &man.vi.1; of
&man.mail.1;. Wanneer het antwoord voltooid is, kan het bericht
worden verzonden door CtrlX
te gebruiken. Het programma alpine zal
om bevestiging vragen.Het programma alpine kan worden
aangepast door de optie SETUP van het
hoofdmenu te gebruiken. Raadpleeg voor meer
informatie.MarcSilverBijgedragen door fetchmail gebruikenfetchmailfetchmail is een volwaardige
client voor IMAP en POP
welke gebruikers in staat stelt om automatisch mail van
IMAP- en POP-servers op afstand
naar plaatselijke postbussen te downloaden; daar kan het
gemakkelijker worden benaderd. fetchmail
kan met de port mail/fetchmail worden
geïnstalleerd, en biedt verschillende mogelijkheden,
waaronder:Ondersteuning voor POP3,
APOP, KPOP,
IMAP, ETRN, en
ODMR protocollen.De mogelijkheid om mail via SMTP door
te sturen, wat filteren, doorsturen, en aliassen toestaat om
normaal te functioneren.Kan in daemon-modus gedraaid worden om periodiek op
nieuwe berichten te controleren.Kan verschillende postbussen ophalen en ze afhankelijk
van de instellingen naar verschillende plaatselijke
gebruikers doorsturen.Hoewel het niet de bedoeling van dit document is om alle
mogelijkheden van fetchmail uit te
leggen, zullen sommige basismogelijkheden worden uitgelegd. Het
gereedschap fetchmail heeft een
instellingenbestand .fetchmailrc nodig om
correct te kunnen werken. Dit bestand bevat zowel informatie
over de server als de inloggegevens. Vanwege de gevoelige aard
van de inhoud van dit bestand is het aan te raden om het met het
volgende commando alleen leesbaar te maken voor de eigenaar ervan
:&prompt.user; chmod 600 .fetchmailrcHet volgende .fetchmailrc dient als een
voorbeeld voor het downloaden van een postbus van een enkele
gebruiker via POP. Het vertelt
fetchmail om met example.com te verbinden als gebruiker
joesoap met wachtwoord XXX
. Dit voorbeeld gaat ervan uit dat de gebruiker
joesoap ook een gebruiker is op het
plaatselijke systeem.poll example.com protocol pop3 username "joesoap" password "XXX"Het volgende voorbeeld legt verbinding met meerdere
POP- en IMAP-servers en stuurt de
mail door naar verschillende plaatselijke gebruikers indien van
toepassing:poll example.com proto pop3:
user "joesoap", with password "XXX", is "jsoap" here;
user "andrea", with password "XXXX";
poll example2.net proto imap:
user "john", with password "XXXXX", is "myth" here;Het gereedschap fetchmail kan in
daemon-modus worden gedraaid met de vlag
gevolgd door het interval (in seconden) waarmee
fetchmail de servers die in het bestand
.fetchmailrc vermeld staan dient te vragen.
Het volgende voorbeeld zorgt ervoor dat fetchmail
elke 600 seconden vraagt:&prompt.user; fetchmail -d 600Meer informatie over fetchmail is
te vinden op .MarcSilverBijgedragen door procmail gebruikenprocmailHet gereedschap procmail is een
zeer krachtig gereedschap voor het filteren van binnenkomende
mail. Het stelt gebruikers in staat om regels te
definiëren welke aan binnenkomende mail gekoppeld kunnen
worden om specifieke taken uit te voeren of om de mail naar
alternatieve postbussen en/of emailadressen door te sturen.
procmail kan met de port mail/procmail geïnstalleerd
worden. Eenmaal geïnstalleerd kan het direct met de meeste
MTAs geïntegreerd worden; raadpleeg de
documentatie van de MTA voor meer informatie.
Als alternatief kan procmail
geïntegreerd worden door de volgende regel aan het bestand
.forward in de thuismap van de gebruiker
die procmail gebruikt toe te voegen:"|exec /usr/local/bin/procmail || exit 75"De volgende sectie geeft wat basisregels van
procmailmet een korte beschrijving ervan. Deze,
en andere, regels dienen in het bestand
.procmailrc geplaatst te worden, welke zich
in de thuismap van de gebruiker dient te bevinden.De meerderheid van deze regels kan ook in de hulppagina
&man.procmailex.5; gevonden worden.Stuur alle mail van user@example.com door naar
het externe adres goodmail@example2.com::0
* ^From.*user@example.com
! goodmail@example2.comStuur alle mails korten dan 1000 bytes door naar het externe
adres goodmail@example2.com::0
* < 1000
! goodmail@example2.comStuur alle mail verzonden aan
alternate@example.com door naar een postbus
alternate::0
* ^TOalternate@example.com
alternateStuur alle mail met het onderwerp Spam door
naar /dev/null::0
^Subject:.*Spam
/dev/nullEen handig recept dat binnenkomende &os;.org mailinglijsten parseert en
elke lijst in en eigen postbus plaatst::0
* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
{
LISTNAME=${MATCH}
:0
* LISTNAME??^\/[^@]+
FreeBSD-${MATCH}
}
Index: translations/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.xml
===================================================================
--- translations/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.xml (revision 40367)
@@ -1,6179 +1,6181 @@
MurrayStokelyGereorganiseerd door SiebrandMazelandVertaald door RenéLadanNetwerkdienstenOverzichtDit 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 bestand-- en printserver voor &windows;
cliënten opgezet kan worden met
Samba;Hoe datum en tijd gesynchroniseerd kunnen worden en hoe
een tijdserver opgezet kan worden met het NTP-protocol.Hoe het standaard log-daemon syslogd in
te stellen om logs van hosts op afstand te accepteren.Veronderstelde voorkennis:Basisbegrip van de scripts in
/etc/rc;Bekend zijn met basis netwerkterminologie;Kennis van de installatie van software van derde partijen
().ChernLeeBijgedragen door Bijgewerkt door The &os; Documentation ProjectDe inetdSuper-ServerOverzicht&man.inetd.8; wordt soms de
Internet Super-Server genoemd, omdat het
verbindingen voor meerdere diensten beheert. Als door
inetd een verbinding wordt ontvangen,
bepaalt die voor welk programma de verbinding bedoeld is,
splitst het dat proces af en delegeert de socket (het programma
wordt gestart met de socket van de dienst als zijn
standaardinvoer, -uitvoer en -foutbeschrijvingen). Het draaien
van inetd voor servers die niet veel
gebruikt worden kan de algehele werklast verminderen in
vergelijking met het draaien van elke daemon individueel in
stand-alone modus.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
&man.rc.8;-systeem. De
optie inetd_enable staat standaard op
NO, maar kan tijdens de installatie door
sysinstall worden aangezet. Door het
plaatsen vaninetd_enable="YES"ofinetd_enable="NO"in /etc/rc.conf wordt
inetd bij het opstarten van een
systeem wel of niet ingeschakeld. Het commando:&prompt.root; /etc/rc.d/inetd rcvarkan gedraaid worden om de huidige effectieve instellingen
weer te geven.Dan kunnen er ook nog een aantal commandoregelopties aan
inetd meegegeven worden met de optie
inetd_flags.CommandoregeloptiesZoals de meeste serverdaemons heeft
inetd een aantal opties die
doorgegeven kunnen worden om het gedrag aan te passen. Zie de
handleidingpagina &man.inetd.8; voor een volledige lijst van de
opties.Opties kunnen door middel van de optie
inetd_flags in
/etc/rc.conf aan
inetd worden doorgegeven. Standaard
staat inetd_flags ingesteld op
-wW -C 60, dat TCP-wrapping aanzet voor de
diensten van inetd, en voorkomt dat
elk enkelvoudig IP-adres enige dienst meer dan 60 keer per
minuut opvraagt.Ook al worden er hieronder rate-limiting opties besproken,
beginnende gebruikers kunnen blij zijn met het feit dat deze
parameters gewoonlijk niet hoeven te worden aangepast. Deze
opties kunnen interessant zijn wanneer er een buitensporige
hoeveelheid verbindingen worden opgezet. Een volledige lijst
van opties staat in de hulppagina &man.inetd.8;.-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.-s maximumSpecificeert het maximaal aantal keer per minuut dat
een dienst aangeroepen kan worden vanuit een enkelvoudig
IP-adres; de standaard is onbeperkt. Kan worden
overstemd op een per-dienst-basis met de parameter
.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 dit commando te draaien:Het instellingenbestand van inetd
herladen&prompt.root; /etc/rc.d/inetd reloadIedere regel in het bestand met instellingen heeft
betrekking op een individuele daemon. Commentaar wordt vooraf
gegaan door een #. De opmaak van elke regel
van /etc/inetd.conf is als volgt:service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
user[:group][/login-class]
server-program
server-program-argumentsEen voorbeeldregel voor de daemon &man.ftpd.8; met IPv4 kan
eruit zien als: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 verbindingsgebaseerde
TCP-daemons, terwijl dgram wordt
gebruikt voor daemons die gebruik maken van het
transportprotocol UDP.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[/max-child-per-ip]]] 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 kinddaemon
draait voor iedere nieuwe socket.Het maximum aantal kinddaemons dat
inetd mag voortbrengen 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. Door
/0 wordt een onbeperkt aantal kinderen
toegestaan.Naast zijn er nog twee
andere opties waarmee het maximale aantal verbindingen van
een bepaalde plaats naar een daemon ingesteld kan worden.
beperkt
het aantal verbindingen per minuut voor enig IP-adres, een
waarde van tien betekent hier dat er van ieder IP-adres
maximaal tien verbindingen naar een bepaalde dienst tot
stand gebracht kunnen worden.
beperkt het aantal
kindprocessen dat namens enig IP-adres op enig moment
gestart kan worden. Deze opties kunnen zijn nuttig om
bedoeld en onbedoeld buitensporig bronnengebruik van en
Denial of Service (DoS) aanvallen op een machine te
voorkomen.In dit veld is één van
of
verplicht. ,
en
zijn optioneel.Een stream-type multi-threaded daemon zonder
één van de limieten
,
of
is eenvoudigweg:
nowait.Dezelfde daemon met een maximale limiet van tien
daemons zou zijn: nowait/10.Dezelfde instellingen met een limiet van twintig
verbindingen per IP-adres per minuut en een totaal maximum
van tien kinddaemons zou zijn:
nowait/10/20.Deze opties worden allemaal gebruikt door de
standaardinstellingen van de daemon &man.fingerd.8;:finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -sAls afsluiting, een voorbeeld in dit veld met een
maximum van 100 kinderen in totaal, met een maximum van 5
voor enig IP-adres zou zijn:
nowait/100/0/5.userDit 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 keuzes gemaakt tijdens de installatie,
kunnen veel van de diensten van inetd
standaard ingeschakeld zijn. Het is verstandig te overwegen om
een daemon dat niet noodzakelijk is uit te schakelen. Plaats
een # voor de daemon in
/etc/inetd.conf en herlaad vervolgens de
instellingen van inetd. Sommige daemons, zoals
fingerd, zijn wellicht helemaal niet
gewenst omdat ze informatie geven die nuttig kan zijn voor een
aanvaller.Sommige daemons zijn zich niet echt bewust van beveiliging
en hebben lange of niet bestaande timeouts 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
,
of
te gebruiken als ze naar uw smaak teveel verbindingen hebben.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 en is tot op een bepaald niveau
instelbaar, terwijl de anderen eenvoudigweg aan of uit staan.Meer diepgaande informatie staat 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 cliënten. De
cliënt benadert de gegevens die op een servermachine zijn
opgeslagen via een netwerk. Om dit mogelijk te maken moeten er
een aantal processen ingesteld en gestart worden.Op de server moeten de volgende daemons draaien:NFSserverbestandsserverUNIX cliëntenrpcbindmountdnfsdDaemonBeschrijvingnfsdDe NFS-daemon die verzoeken van
de NFS cliënten afhandelt.mountdDe NFS koppeldaemon die
doorgestuurde verzoeken van &man.nfsd.8;
uitvoert.rpcbindDeze daemon geeft voor
NFS-cliënten aan welke poort de
NFS-server gebruikt.Op de cliënt kan ook een daemon draaien:
nfsiod. De daemon
nfsiod 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 cliënt 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:NFSexportvoorbeeldenHet 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 koppelpunten zijn. De submap wordt dan niet
feitelijk aangekoppeld, maar de cliënt koppelt dan alleen
de submappen aan 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 cliënten 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 cliënt toegang te geven tot een
geëxporteerd bestandssysteem, moet die cliënt daar
rechten voor hebben. De cliënt 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 geldig:># 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 cliënt
wordt aangegeven worden behandeld als een enkele host. Dit
beperkt hoe bestandssysteem geëxporteerd kunnen worden,
maar dat blijkt meestal geen probleem te zijn.Het volgende voorbeeld is een geldige exportlijst waar
/usr en /exports
lokale bestandssystemen zijn:# Exporteer src en ports naar client01 en client02,
# maar alleen client01 heeft er rootprivileges
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# De cliëntmachines hebben rootrechten en kunnen overal aankoppelen
# op /exports. Iedereen in de wereld kan /exports/obj als alleen-lezen aankoppelen.
/exports -alldirs -maproot=root client01 client02
/exports/obj -roDe daemon mountd moet gedwongen
worden om het bestand /etc/exports te
controleren steeds wanneer het is aangepast, zodat de
veranderingen effectief kunnen worden. Dit kan worden bereikt
door òfwel een HUP-signaal naar de draaiende daemon te
sturen:&prompt.root; kill -HUP `cat /var/run/mountd.pid`of door het &man.rc.8; script mountd met
de juiste parameter aan te roepen:&prompt.root; /etc/rc.d/mountd onereloadRaadpleeg voor meer
informatie over het gebruik van rc-scripts.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 hetzelfde resultaat te
hebben.Op de NFS server:&prompt.root; rpcbind
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -rOp de NFS cliënt:&prompt.root; nfsiod -n 4Nu is alles klaar om feitelijk het netwerkbestandssysteem
aan te koppelen. In de volgende voorbeelden is de naam van de
server server en de naam van de cliënt is
client. Om een netwerkbestandssysteem slechts
tijdelijk aan te koppelen of om alleen te testen, kan een
commando als het onderstaande als root op
de cliënt uitgevoerd worden:NFSaankoppelen&prompt.root; mount server:/home /mntHiermee wordt de map /home op de server
aangekoppeld op /mnt op de cliënt.
Als alles juist is ingesteld, zijn nu in
/mnt op de cliënt de bestanden van de
server zichtbaar.Om een netwerkbestandssysteem iedere keer als een computer
opstart aan te koppelen, kan het bestandssysteem worden
toegevoegd aan het bestand /etc/fstab:server:/home /mnt nfs rw 0 0Alle beschikbare opties staan in &man.fstab.5;.Op slot zettenVoor sommige applicaties (b.v.
mutt) is het nodig dat bestanden op
slot staan om correct te werken. In het geval van
NFS, kan rpc.lockd
worden gebruikt voor het op slot zetten van bestanden. Voeg het
volgende toe aan het bestand /etc/rc.conf
op zowel de cliënt als de server om het aan te zetten (het
wordt aangenomen dat de NFS-cliënt en
-server reeds zijn geconfigureerd):rpc_lockd_enable="YES"
rpc_statd_enable="YES"Start de applicatie met:&prompt.root; /etc/rc.d/lockd start
&prompt.root; /etc/rc.d/statd startAls echt op slot zetten tussen de
NFS-cliënten en de
NFS-server niet nodig is, is het mogelijk om
de NFS-cliënt bestanden lokaal op slot
te laten zetten door aan &man.mount.nfs.8;
door te geven. In de handleidingpagina &man.mount.nfs.8; staan
verdere details.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 aankoppelen met
amdamdautomatic mounter daemon&man.amd.8; (de automatic mounter daemon) koppelt
automatisch netwerkbestandssystemen aan als er aan een bestand
of map binnen dat bestandssysteem wordt gerefereerd.
amd ontkoppelt ook bestandssystemen
die een bepaalde tijd niet gebruikt worden. Het gebruikt van
amd is een aantrekkelijk en eenvoudig
alternatief ten opzichte van permanente koppelingen, 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 netwerkkoppeling op en koppelt die automatisch aan.
/net wordt gebruikt om een
geëxporteerd bestandssysteem van een IP-adres aan te
koppelen, terwijl /host wordt gebruikt om
een geëxporteerd bestandssysteem van een hostnaam aan te
koppelen.Het raadplegen van een bestand in
/host/foobar/usr geeft
amd aan dat die moet proberen de
/usr export op de host
foobar aan te koppelen.Een export aankoppelen met
amdDe beschikbare koppelingen van een netwerkhost zijn te
bekijken met showmount. Om bijvoorbeeld
de koppelingen 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 aan te koppelen.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 aangekoppeld 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 hoog presterende werkstations, zoals van Silicon
Graphics, Inc. en Sun Microsystems, Inc. De NFS-koppeling werkt
prima en wellicht lukken een aantal acties ook, maar dan ineens
lijkt de server niet meer te reageren voor de cliënt,
hoewel verzoeken van en naar andere systemen gewoon verwerkt
worden. Dit gebeurt op een cliëntsysteem, of de
cliënt nu het &os; systeem is of het werkstation. Op veel
systemen is er geen manier om de cliënt netjes af te
sluiten als dit probleem is ontstaan. Vaak is de enige
mogelijkheid een reset van de cliënt, 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
aankoppelen door de cliënt. Als het &os; systeem de
cliënt is, dan dient het
NFS-bestandssysteem aangekoppeld te worden met de optie
. Deze opties kunnen het vierde
veld zijn in een regel in fstab voor
automatische aankoppelingen en bij handmatige aankoppelingen met
&man.mount.8; kan de parameter gebruikt
worden.Soms wordt een ander probleem voor dit probleem versleten,
als servers en cliënten 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 hoog presterend werkstation en
freebox is de host(interface)naam van een &os;
systeem met een Ethernet adapter die mindere prestaties levert.
/sharedfs wordt het geëxporteerde
NFS-bestandssysteem (zie &man.exports.5;) en
/project wordt het koppelpunt voor het
geëxporteerde bestandssysteem op de cliënt.In sommige gevallen kunnen applicaties beter draaien als
extra opties als of
en gebruikt
worden.Voorbeelden voor het &os; systeem (freebox)
als de cliënt in /etc/fstab op
freebox:fastws:/sharedfs /project nfs rw,-r=1024 0 0Als een handmatig aankoppelcommando 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 aankoppelcommando 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
Ethernetpakketten, hoewel het hoger in de code nog steeds
één eenheid is, en wordt ontvangen, samengevoegd en
bevestigd als een eenheid. De hoog
presterende 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 timeout 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
Ethernetpakket dat compleet is aangekomen bevestigd kan worden,
zodat de deadlock niet ontstaat.Toch kan een PC systeem nog wel overrompeld worden als hoog
presterende 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 cliënt/serversysteem
waarmee een groep machines binnen een NIS-domein een
gezamenlijke verzameling 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-cliënt is:rpcbindportmapTermBeschrijvingNIS-domeinnaamEen NIS-masterserver en al zijn cliënten
(inclusief zijn slave master) hebben een NIS-domeinnaam.
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
er geen NIS-server draaien en kan een machine ook geen
NIS-cliënt zijn.ypbindVerbindt een NIS-cliënt 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
cliënt-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-serverproces zelf. Als &man.ypserv.8; stopt,
dan kan de server niet langer reageren op NIS-verzoeken
(hopelijk is er dan een slaveserver 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 serverproces herstarten (of
zelfs de hele server) of het
ypbind-proces op de
cliënt.rpc.yppasswddNog een proces dat alleen op NIS-masterservers
hoort te draaien. Dit is een daemon waarbij
NIS-cliënten hun NIS-wachtwoorden kunnen wijzigen.
Als deze daemon niet draait, moeten gebruikers zich
aanmelden op de NIS-masterserver en daar hun wachtwoord
wijzigen.Hoe werkt het?Er zijn drie typen hosts in een NIS-omgeving: master
servers, slaveservers en cliënten. Servers zijn het
centrale depot voor instellingen voor een host. Masterservers
bevatten de geautoriseerd kopie van die informatie, terwijl
slaveservers die informatie spiegelen voor redundantie.
Cliënten 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
cliënt 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 machinesNISmasterserverEen NIS-masterserver. Deze
server onderhoudt, analoog aan een &windowsnt; primaire
domeincontroller, de bestanden die door alle
NIS-cliënten gebruikt worden. De bestanden
passwd, group en
andere bestanden die door de NIS-cliënten gebruikt
worden staan op de masterserver.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.NISslaveserverNIS-slaveservers. Deze zijn
te vergelijken met &windowsnt; backup domain controllers.
NIS-slaveservers beheren een kopie van de bestanden met
gegevens op de NIS-master. NIS-slaveservers bieden
redundantie, die nodig is in belangrijke omgevingen. Ze
helpen ook om de belasting te verdelen met de master
server: NIS-cliënten maken altijd een verbinding met
de NIS-server die het eerst reageert en dat geldt ook voor
antwoorden van slaveservers.NIScliëntNIS-cliënten.
NIS-cliënten 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.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.5Cliënt machinecli[1-11]10.0.0.[6-17]Andere cliënt 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 cliënt 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 kan voorgesteld worden als de naam van een
groep hosts die 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-domeinnaam 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
cliënten van de server. Als een cliënt 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-cliënten.NIS-serversDe hoofdversies van alle NIS-informatie staan opgeslagen
op één machine die de NIS-masterserver heet. De
databases waarin de informatie wordt opgeslagen heten
NIS-afbeeldingen. In &os; worden die afbeeldingen opgeslagen
in /var/yp/[domeinnaam] 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 verzameling afbeeldingen.In NIS-master- en -slaveservers worden alle NIS-verzoeken
door de daemon ypserv afgehandeld.
ypserv is verantwoordelijk voor het
ontvangen van inkomende verzoeken van NIS-cliënten, het
vertalen van de gevraagde domeinnaam en mapnaam naar een pad
naar het corresponderende databasebestand en het terugsturen
van de database naar de cliënten.Een NIS-masterserver 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-domeinnaam in op
test-domain bij het instellen van het
netwerk (bij het opstarten).nis_server_enable="YES"
Dit geeft &os; aan de NIS-serverprocessen te starten
als het netwerk de volgende keer wordt opgestart.nis_yppasswdd_enable="YES"
Dit schakelt de daemon rpc.yppasswdd
in die, zoals al eerder aangegeven, cliënten
toestaat om hun NIS-wachtwoord vanaf een
cliënt-machine te wijzigen.Afhankelijk van de inrichting van NIS, kunnen er nog
meer instellingen nodig zijn. In het onderdeel NIS-servers die
ook NIS-cliënten zijn staan meer details.Draai na het instellen van bovenstaande regels het commando
/etc/netstart als supergebruiker. Het zal alles
voor u instellen, gebruikmakende van de waarden die u in
/etc/rc.conf heeft ingesteld. Start als
laatste stap, voor het initialiseren van de NIS-afbeeldingen, de
daemon ypserv handmatig:&prompt.root; /etc/rc.d/ypserv startNIS-afbeeldingen initialiserenNISafbeeldingenDie NIS-afbeeldingen 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-afbeeldingen 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-cliënten terecht komen
(bijvoorbeeld root en alle andere UID 0
(supergebruiker) 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-afbeeldingen
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 afbeeldingen voor een
NIS-master worden gemaakt, wordt de optie
meegegeven aan
ypinit. Aangenomen dat de voorgaande
stappen zijn uitgevoerd, kunnen de NIS-afbeeldingen 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 afbeeldingen..]
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
slaveserver 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-slaveserver opzettenNISslaveserverHet opzetten van een NIS-slaveserver is nog makkelijker
dan het opzetten van de master. Dit kan door aan te melden
op de slaveserver en net als voor de masterserver
/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
meegegeven 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-masterserver afbeeldingen staan. Die
moeten bijgewerkt blijven. De volgende regel in
/etc/crontab op de slaveservers 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
afbeeldingen met de afbeeldingen op de masterserver te
synchroniseren. Dit is niet verplicht omdat de masterserver
automatisch probeert veranderingen aan de NIS-afbeeldingen door te
geven aan zijn slaves. Echter, vanwege het belang van correcte
wachtwoordinformatie op andere cliënten die van de slaveserver
afhankelijk zijn, is het aanbevolen om specifiek de
wachtwoordafbeeldingen vaak tot bijwerken te dwingen. Dit is des
te belangrijker op drukke netwerken, omdat daar het bijwerken van
afbeeldingen niet altijd compleet afgehandeld hoeft te
worden.Nu kan ook op de slaveserver het commando
/etc/netstart uitgevoerd worden, dat op
zijn beurt de NIS-server start.NIS-cliëntenEen NIS-cliënt maakt wat heet een verbinding
(binding) met een NIS-server met de daemon
ypbind. 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 cliënt 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-cliënt opzettenNIScliënt instellenHet opzetten van een &os; machine als NIS-cliënt 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 wachtwoordafbeelding van de NIS-server toegang
gegeven. Er zijn veel manieren om de NIS-cliënt
in te stellen door deze regel te veranderen. In het
onderdeel netgroepen
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:+:*::Voer, om de NIS-cliënt onmiddelijk te starten, de volgende
commando's als supergebruiker uit:&prompt.root; /etc/netstart
&prompt.root; /etc/rc.d/ypbind startNa 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-afbeeldingen 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 geprivilegieerde
poorttest 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-cliënten 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
cliënt aan te passen, zorgen andere problemen voor het
noodgedwongen niet langer kunnen gebruiker van NIS voor die
cliënt 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 pakket TCP
Wrapper leidt tot langere wachttijden op de
NIS-server. De extra vertraging kan net lang genoeg zijn om
een timeout te veroorzaken in cliëntprogramma's, in het
bijzonder als het netwerk druk is of de NIS-server traag is.
Als een of meer cliënten last hebben van dat symptoom,
dan is het verstandig om de cliëntsysteem in kwestie
NIS-slaveserver 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
cliënt 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 gebruikennetgroepenDe 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
netgroepen. 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 netgroep aan te maken die zowel gebruikers als andere
netgroepen bevat.Netgroepen 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 netgroepen 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 zich 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 productiefase. Murphy was tenslotte een
optimist.Het gebruik van netgroepen 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
netgroepen te worden ingesteld. Als er een nieuwe gebruiker
wordt toegevoegd, dan hoeft die alleen maar aan de juiste
netgroepen 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-afbeelding
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 netgroepen: 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 netgroepen. 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 netgroep hoort.Het NIS-domein voor de account. Er kunnen accounts uit
andere NIS-domeinen geïmporteerd worden in een netgroep
als een beheerder zo ongelukkig is meerdere NIS-domeinen te
hebben.Al deze velden kunnen jokerkarakters bevatten. Details
daarover staan in &man.netgroup.5;.netgroepenDe naam van een netgroep 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 netgroepen is een makkelijke manier om onderscheid
te kunnen maken tussen gebruikers-, machine- en
netgroepnamen.Sommige NIS-cliënten (andere dan die op &os; draaien)
kunnen niet omgaan met netgroepen met veel leden. Sommige
oudere versies van &sunos; gaan bijvoorbeeld lastig doen als
een netgroep meer dan 15 leden heeft.
Dit kan omzeild worden door meerdere subnetgroepen te maken
met 15 gebruikers of minder en een echte netgroep die de
subnetgroepen 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 netgroep 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-afbeeldingen gemaakt:
netgroup,
netgroup.byhost en
netgroup.byuser. Met &man.ypcat.1; kan
bekeken worden op de nieuwe NIS-afbeeldingen 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
netgroepen zijn ingesteld. Het derde commando kan gebruikt
worden om een lijst van netgroepen voor een gebruiker op te
vragen.Het instellen van de cliënt 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 netgroep
IT_MW geïmporteerd in de
wachtwoorddatabase van de host war, zodat
alleen die gebruikers zich 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-afbeelding 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
juniorbeheerders 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 netgroep 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 netgroepen in netgroepen op te
nemen. Het is mogelijk om rolgebaseerde netgroepen te maken.
Er kan bijvoorbeeld een netgroep BIGSRV
gemaakt worden om het aanmelden op de belangrijke servers te
beperken en er kan een andere netgroep
SMALLSRV voor de minder belangrijke servers
zijn en een derde netgroep met de naam
USERBOX voor de normale werkstations. Al die
netgroepen kunnen de netgroepen bevatten die op die machines
mogen aanmelden. De nieuwe regels in de NIS-afbeelding 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 zich wel en wie zich niet mogen
aanmelden.Daarom is het ook mogelijk om via machinespecifieke
netgroepen 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
netgroep 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 netgroep 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-afbeelding te wijzigen. Hieronder
staat een voorbeeld van een mogelijke netgroep 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)
#
# Machinegebaseerde netgroepen
# 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 afbeelding met de
databaserapportagehulpmiddelen 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 machinegebaseerde netgroepen. Als er
tientallen of zelfs honderden gelijke machines voor bijvoorbeeld
studentenruimtes worden uitgerold, dan is het verstandiger
rolgebaseerde netgroepen te gebruiken in plaats van
machinegebaseerde netgroepen om de grootte van de NIS-afbeelding
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-afbeeldingen 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-afbeeldingen gehouden worden. Het is niet
handig als de beheeraccounts en wachtwoorden naar machines
waarop gebruikers zich 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 cliënten. 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 cliëntoproepen aanwezig
is, deze versie van ypserv geen
overdrachtsverzoeken voor v1-afbeeldingen 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-cliënten zijnHet is belangrijk voorzichtig om te gaan met het draaien van
ypserv in een multi-server domein
waar de server machines ook NIS-cliënten 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 cliënten 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 cliënt 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 cliënten die ook DES gebruiken
ondersteund worden. Als er bijvoorbeeld &solaris;
NIS-cliënten in een netwerk zijn, dan moet er vrijwel zeker
gebruik gemaakt worden van met DES gecodeerde wachtwoorden.Van welk formaat cliënten 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 cliënten 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-cliënt, 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 Systems 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; gebruikt de OpenBSD dhclient
welke uit OpenBSD 3.7 komt.
Alle informatie over dhclient kan
zowel voor de ISC als de OpenBSD DHCP-cliënt gebruikt
worden. De DHCP-server zit bij de ISC-distributie.Wat behandeld wordtIn dit onderdeel worden de cliëntcomponenten van de
ISC en OpenBSD DHCP-cliënt en de servercomponenten van het
ISC DHCP-systeem beschreven. Het programma voor de cliënt,
dhclient, zit standaard in &os; en de server
is beschikbaar via de port net/isc-dhcp42-server. 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-cliënt, wordt
uitgevoerd op een cliëntmachine, 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 cliënt 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 cliënten die niet
langer met het netwerk verbonden zijn (stale) automatisch weer
ingenomen worden.DHCP-cliënten kunnen veel informatie van de server
krijgen. Er staat een uitputtende lijst in
&man.dhcp-options.5;.&os; integratie&os; integreert de OpenBSD DHCP-cliënt
dhclient volledig.
Er is ondersteuning voor de
DHCP-cliënt 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.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 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.Standaard draait de DHCP-synchronisatie op &os; in de
achtergrond, of asynchroon. Andere
opstartscripten gaan verder terwijl DHCP wordt voltooid, wat het
opstarten van het systeem versnelt.DHCP in de achtergrond werkt goed als de DHCP-server snel op
verzoeken reageert en het DHCP-configuratieproces snel gaat. Op
sommige systemen kan het lang duren voordat DHCP klaar is. Als
netwerkdiensten proberen te draaien voordat DHCP voltooid is, zullen
ze falen. Door DHCP in synchrone modus te
draaien wordt dit probleem voorkomen en wordt het opstarten
gepauzeerd totdat de DHCP-configuratie voltooid is.Gebruik om in de achtergrond verbinding te maken met een
DHCP-server terwijl andere opstartscripts verder gaan (asynchrone
modus) de waarde DHCP in
/etc/rc.conf:ifconfig_fxp0="DHCP"Gebruik om het opstarten te pauzeren totdat DHCP voltooid is de
synchrone modus met waarde
SYNDHCP:ifconfig_fxp0="SYNDHCP"Vervang fxp0 zoals getoond in deze
voorbeelden met de naam van de interface dat dynamisch
geconfigureerd moet worden, zoals getoond 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:dhclient_program="/sbin/dhclient"
dhclient_flags=""DHCPserverDe DHCP-server, dhcpd, zit bij de
port net/isc-dhcp42-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-cliënt instellingenscript. Het
wordt beschreven in &man.dhclient-script.8;, maar het is
niet nodig het te wijzigen om goed te werken./var/db/dhclient.leases.interfaceDe DHCP-cliënt 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 Systems Consortium)
implementatie van de DHCP-server.De server wordt niet geleverd als deel van &os; en om deze
dienst aan te bieden dient de port net/isc-dhcp42-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 aan het bestand met
kernelinstellingen toegevoegd 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-dhcp42-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
wijzigingen worden gemaakt.De DHCP-server instellenDHCPdhcpd.confdhcpd.conf is opgebouwd uit
declaraties over subnetten en hosts en is wellicht het meest
eenvoudig te beschrijven 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 cliënten
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 cliënt moet
gebruiken.Het netmasker dat aan de cliënten wordt
voorgeschreven.Een cliënt 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 cliënt 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 cliënten. Alle IP-adressen tussen de
aangegeven adressen en die adressen zelf worden aan
cliënten uitgegeven.Geeft de default gateway aan die aan de cliënten
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.Wanneer u klaar bent met het schrijven van uw
dhcpd.conf, dient u de DHCP-server in
/etc/rc.conf aan te zetten, door het
volgende toe te voegen:dhcpd_enable="YES"
dhcpd_ifaces="dc0"Vervang de interfacenaam dc0 door de
interface (of interfaces, gescheiden door witruimtes) waarop
uw DHCP-server moet luisteren naar DHCP-verzoeken van
cliënten.Daarna kunt u doorgaan met het starten van de server door
het volgende commando te geven:&prompt.root; /usr/local/etc/rc.d/isc-dhcpd 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 cliënten kan leveren.
Het bestand moet alle informatie bevatten die aan
cliënten 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 cliënt naar een andere
DHCP-server op een ander netwerk doorstuurt. Als deze
functionaliteit nodig is, kan die beschikbaar komen door
de port net/isc-dhcp42-relay te
installeren. De hulppagina voor &man.dhcrelay.8; die bij
de port zit bevat meer details.ChernLeeGeschreven door TomRhodesDanielGerzoDomeinnaamsysteem (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
IP-adres van de bijbehorende
FTP-machine. Het tegenovergestelde kan ook
gebeuren. Een zoekopdracht voor een IP-adres
kan de bijbehorende hostnaam opleveren. Het is niet nodig om
een naamserver te draaien om op een systeem zoekopdrachten met
DNS uit te voeren.&os; wordt momenteel standaard geleverd met de
BIND9 DNS-serversoftware.
Onze installatie biedt verbeterde beveilingsmogelijkheden, een
nieuwe indeling van het bestandssysteem en geautomatiseerde
configuratie van &man.chroot.8;.DNSDNS wordt op Internet onderhouden door
een enigszins complex systeem van autoritaire root, Top Level
Domain (TLD), en andere kleinschaligere
naamservers die individuele domeininformatie hosten en cachen.Op dit moment wordt BIND beheerd door het Internet Systems
Consortium .TerminologieOm dit document te begrijpen moeten een aantal termen
gerelateerd aan DNS begrepen worden.resolverreverse DNSroot zoneTermDefinitieVoorwaartse DNSHet afbeelden van hostnamen op IP-adressen.Herkomst (origin)Verwijst naar het domein dat door een bepaald
zonebestand wordt gedekt.named, BINDVaak gebruikte namen voor het naamserverpakket BIND
in &os;.ResolverEen systeemproces waarmee een machine
zoekopdrachten om zoneinformatie aan een naamserver
geeft.Reverse DNSHet afbeelden van IP-adressen op
hostnamen.RootzoneHet begin van de Internet zonehiërarchie.
Alle zones vallen onder de rootzone, 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 hoe de rootzone normaliter in de
documentatie genoemd wordt.org. is een Top Level Domain
(TLD) onder de rootzone.example.org. is een
zone onder het TLD
org..1.168.192.in-addr.arpa is een zone die
naar alle IP-adressen verwijst die onder
de IP-adresruimte 192.168.1.* vallen.Zoals te zien is staat het specifiekere deel van een
hostnaam aan de linkerkant. Zo is bijvoorbeeld example.org. specifieker dan
org. en is org.
specifieker dan de rootzone. De indeling van ieder deel van een
hostnaam lijkt veel op een bestandssysteem: de map
/dev valt onder de root, enzovoort.Redenen om een naamserver te draaienNaamservers bestaan in het algemeen in twee smaken: autoratieve
naamservers en caching (ook bekend als resolving) naamservers.Er is een autoratieve naamserver nodig als:Het gewenst is om DNS-informatie aan
te bieden aan de wereld om met autoriteit 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 omgekeerde
DNS-ingangen nodig heeft
(IP naar hostnaam).Een omgekeerde of tweede naamserver, die een slaaf wordt
genoemd, moet antwoorden op verzoeken.Er is een caching naamserver nodig als:Een lokale DNS-server kan cachen en
wellicht sneller kan antwoorden dan een naamserver die
verder weg staat.Als er een verzoek wordt gedaan voor www.FreeBSD.org, dan doet de resolver
meestal een verzoek bij de naamserver van de
ISP die de uplink levert en ontvangt daarop
een antwoord. Met een lokale, caching
DNS-server hoeft het verzoek maar
één keer door de caching
DNS-server naar de buitenwereld gedaan te
worden. Voor aanvullende verzoeken hoeft niet buiten het lokale
netwerk te gaan omdat het al lokaal in de cache staat.Hoe het werktDe daemon BIND heet in &os;
named.BestandBeschrijving&man.named.8;De daemon BIND.&man.rndc.8;Naamserverbeheerprogramma./etc/namedbMap waar zoneinformatie van BIND staat./etc/namedb/named.confInstellingenbestand van de daemon.Afhankelijk van hoe en gegeven zone op de server is
geconfigureerd, staan de bestanden gerelateerd aan die zone in
de submappen master,
slave, of dynamic van de map /etc/namedb. Deze bestanden
bevatten de DNS-informatie die door de
naamserver als antwoord op zoekopdrachten gegeven zal worden.BIND startenBINDstartenOmdat BIND standaard wordt geïnstalleerd, is het
instellen relatief eenvoudig.De standaardconfiguratie van
named is die van een eenvoudige
resolverende naamserver, draaiende in een &man.chroot.8;-omgeving,
en beperkt tot het luisteren op het lokale IPv4-teruglusadres
(127.0.0.1). Gebruik het volgende commando om de server eenmaal
met deze configuratie te starten:&prompt.root; /etc/rc.d/named onestartOm er zeker van te zijn dat de daemon
named elke keer bij het opstarten
gestart wordt, moet de volgende regel in
/etc/rc.conf gezet worden:named_enable="YES"Het is duidelijk dat er vele instelopties voor
/etc/namedb/named.conf zijn die buiten het
bereik van dit document vallen. Als u echter
geïnteresseerd bent in de opstartopties voor
named op &os;, bekijk dan de
named_*-vlaggen in
/etc/defaults/rc.conf en raadpleeg de
handleidingpagina &man.rc.conf.5;. De sectie is ook nuttig om te lezen.InstellingenbestandenBINDinstellingenbestandenInstellingenbestanden voor named
bevinden zich momenteel in /etc/namedb en moeten gewijzigd
worden voor gebruik, tenzij er alleen een eenvoudige resolver
nodig is. Hier vindt de meeste configuratie plaats./etc/namedb/named.conf// $FreeBSD$
//
// In de handleidingpagina's named.conf(5) en named(8), en in de
// documentatie in /usr/share/doc/bind9 zijn meer details te vinden.
//
// Voor het opzetten van een autoratieve server is een grondig begrip
// van de werking van DNS noodzakelijk. Zelfs eenvoudige fouten kunnen // de werking verstoren voor beïnvloede partijen of veel onnodig
// Internetverkeer veroorzaken.
options {
// Alle namen van bestanden en paden zijn relatief aan de chroot-map,
// indien aanwezig, en moeten volledig gekwalificeerd zijn.
directory "/etc/namedb/working";
pid-file "/var/run/named/pid"
dump-file "/var/dump/named_dump.db"
statistics-file "/var/stats/named.stats"
// Als named alleen als een lokale resolver gebruikt wordt, is dit een
// veilige standaardinstelling. Om named toegang tot het netwerk te
// verschaffen, dient deze optie gecommentarieerd te worden, het
// juiste IP-adres opgegeven te worden, of dient deze optie verwijderd
// te worden.
listen-on { 127.0.0.1; };
// Als u IPv6 aan heeft staan op dit systeem, dient deze optie
// uitgecommentarieerd te worden om als lokale resolver te dienen. Om
// toegang tot het netwerk te verschaffen, dient een IPv6-adres of het
// sleutelwoord "any" gegeven te worden.
// listen-on-v6 { ::1; };
// Deze zones zijn reeds opgenomen door de lege zones die hieronder
// staan. Als u de gerelateerde lege zones hieronder verwijdert,
// dienen deze regels uitgecommentarieerd te worden.
disable-empty-zone "255.255.255.255.IN-ADDR.ARPA";
disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
// 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 algehele DNS-verkeer op het Internet vermindert.
/*
forwarders {
127.0.0.1;
};
*/
// Als de 'forwarders'-clausule niet leeg is, is de standaard om "forward
// first" te gebruiken, welke terug zal vallen op het versturen van een
// verzoek naar uw lokale server als de naamservers in 'forwarders' het
// antwoord niet weten. Als alternatief kunt u uw naamserver dwingen om
// nooit zelf verzoeken in te dienen door de volgende regel aan te
// zetten:
// forward only;
// Als u forwarding automatisch wilt configureren gebaseerd op de regels
// in /etc/resolv.conf, verwijder dan het commentaar van de volgende
// regel en stel in /etc/rc.conf named_auto_forward=yes in. U kunt ook
// named_auto_forward_only aanzetten (het effect hiervan is hierboven
// beschreven).
// include "/etc/namedb/auto_forward.conf";Zoals al in het commentaar staat kan van een cache in de
uplink geprofiteerd worden als forwarders
ingeschakeld worden. Onder normale omstandigheden maakt een
naamserver recursief verzoeken tot het Internet op zoek naar
zekere naamservers tot er een antwoord komt waar het naar op
zoek is. Door de bovenstaande optie in te schakelen wordt
eerst de uplink naamserver (of de opgegeven naamserver)
gevraagd, waardoor er gebruik gemaakt kan worden van de cache
van die server. Als die uplink naamserver een drukke,
snelle naamserver is, kan het erg de moeite waard zijn om dit
aan te zetten.127.0.0.1 werkt hier
niet. Verander dit
IP-adres in een naamserver in de
uplink./*
Moderne versies van BIND gebruiken standaard een random
UDP-poort voor elk uitgaand verzoek om de kans op cache
poisoning drastisch te verminderen. Alle gebruikers wordt met
klem verzocht om deze mogelijkheid te gebruiken en hun
firewalls overeenkomstig aan te passen.
ALS EEN LAATSTE UITVLUCHT om een beperkende firewall te
omzeilen kunt u proberen om onderstaande optie aan te zetten.
Het gebruik van deze optie vermindert uw kans om een cache
poisoning aanval te weerstaan aanzienlijk, en dient indien
mogelijk te worden vermeden.
Vervang NNNNN in het voorbeeld door een getal tussen 49160 en
65530.
*/
// query-source address * port NNNNN;
};
// Als er een lokale naamserver wordt gebruikt, vergeet dan niet om
// eerst 127.0.0.1 in /etc/resolv.conf te zetten zodat die gevraagd
// wordt. Controleer ook dat het in /etc/rc.conf is aangezet.
// Het traditionele root-hint-mechanisme. Gebruik dit OF de
// onderstaande slaafzones.
zone "." { type hint; file "/etc/namedb/named.root"; };
/* Het slaaf maken van de volgende zones vanaf de root-naamservers
heeft een aantal aanzienlijke voordelen:
1. Snellere lokale resolutie voor uw gebruikers
2. Geen vals verkeer dat vanaf uw netwerk naar de roots wordt verzonden
3. Betere weerstand tegen elke mogelijk falen van de rootserver/DDoS
Wel is het zo dat deze methode meer toezicht vraagt dan het
hintbestand om er zeker van te zijn dat een onverwachte
faalmodus uw server niet heeft lamgelegd. Naamservers die
veel clienten serveren zullen meer voordeel uit deze aanpak
halen dan individuele hosts. Met zorg gebruiken.
Verwijder het commentaar uit de onderstaande regels en
commentarieer de bovenstaande hintzone om dit mechanisme te
gebruiken.
Zoals gedocumenteerd op http://dns.icann.org/services/axfr/ zijn deze
zones: "." (de root), ARPA, IN-ADDR.ARPA, IP6.ARPA en ROOT-SERVERS.NET
beschikbaar voor AXFR van deze servers op IPv4 en IPv6:
xfr.lax.dns.icann.org, xfr.cjr.dns.icann.org
*/
zone "." {
type slave;
file "/etc/namedb/slave/root.slave";
masters {
192.5.5.241; // F.ROOT-SERVERS.NET.
};
notify no;
};
zone "arpa" {
type slave;
file "/etc/namedb/slave/arpa.slave";
masters {
192.5.5.241; // F.ROOT-SERVERS.NET.
};
notify no;
};
/* Het lokaal serveren van de volgende zones voorkomt dat enig
verzoek voor deze zones uw netwerk verlaat en naar de
root-naamservers gaat. Dit heeft twee aanzienlijke voordelen:
1. Snellere lokale resolutie voor uw gebruikers
2. Er zal geen vals verkeer vanaf uw netwerk naar de roots worden verzonden
*/
// RFCs 1912 en 5735 (en BCP32 voor localhost)
zone "localhost" { type master; file "/etc/namedb/master/localhost-forward.db"; };
zone "127.in-addr.arpa" { type master; file "/etc/namedb/master/localhost-reverse.db"; };
zone "255.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
// RFC 1912-stijl zone voor IPv6 localhost adres
zone "0.ip6.arpa" { type master; file "/etc/namedb/master/localhost-reverse.db"; };
// "Dit" netwerk (RFCs 1912 en 5735)
zone "0.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
// Netwerken voor privaat gebruik (RFC 1918 en 5735)
zone "10.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "16.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "17.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "18.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "19.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "20.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "21.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "22.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "23.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "24.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "25.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "26.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "27.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "28.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "29.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "30.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "31.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "168.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
// Lokale link/APIPA (RFCs 3927 en 5735)
zone "254.169.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
// IETF protocol-toewijzingen (RFCs 5735 en 5736)
zone "0.0.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
// TEST-NET-[1-3] voor documentatie (RFCs 5735 en 5737)
zone "2.0.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "100.51.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "113.0.203.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
// IPv6-bereik voor documentatie (RFC 3849)
zone "8.b.d.0.1.0.0.2.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; };
// Domeinnamen voor documentatie en testen (BCP 32)
zone "test" { type master; file "/etc/namedb/master/empty.db"; };
zone "example" { type master; file "/etc/namedb/master/empty.db"; };
zone "invalid" { type master; file "/etc/namedb/master/empty.db"; };
zone "example.com" { type master; file "/etc/namedb/master/empty.db"; };
zone "example.net" { type master; file "/etc/namedb/master/empty.db"; };
zone "example.org" { type master; file "/etc/namedb/master/empty.db"; };
// Router benchmarken (RFC 2544 en 5735)
zone "18.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "19.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
// Gereserveerd door IANA - oude ruimte van klasse E (RFC 5735)
zone "240.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "241.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "242.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "243.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "244.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "245.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "246.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "247.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "248.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "249.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "250.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "251.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "252.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "253.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "254.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; }
// Niet-toegewezen IPv6-adressen (RFC 4291)
zone "1.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "2.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "3.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "4.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "5.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "6.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "7.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "8.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "9.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "a.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "b.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "c.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "d.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "e.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "0.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "1.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "2.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "3.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "4.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "5.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "6.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "7.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "8.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "9.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "a.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "b.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "0.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "1.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "2.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "3.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "4.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "5.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "6.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "7.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
// IPv6 ULA (RFC 4193)
zone "c.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "d.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
// IPv6 lokale link (RFC 4291)
zone "8.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "9.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "a.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "b.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
// IPv6 verouderde site-lokale adressen (RFC 3879)
zone "c.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "d.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "e.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
zone "f.e.f.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; }
// IP6.INT is verouderd (RFC 4159)
zone "ip6.int" { type master; file "/etc/namedb/master/empty.db"; }
// NB: De IP-adressen hieronder zijn bedoeld als voorbeeld en dienen
// niet gebruikt te worden!
//
// Voorbeeld instellingen voor slaafzones. Het kan handig zijn om
// tenminste slaaf te worden voor de zone waar de host onderdeel van
// uitmaakt. Bij uw netwerkbeheerder kan het IP-adres van de
// verantwoordelijke meester-naamserver nagevraagd worden.
//
// Vergeet niet om de omgekeerde lookup-zone op te nemen!
// Dit is genoemd na de eerste bytes van het IP-adres, in omgekeerde
// volgorde, met daarachter ".IN-ADDR.ARPA", of "IP6.ARPA" voor IPv6.
//
// Het is van groot belang om de werking van DNS en BIND te begrijpen
// voordat er een meester-zone wordt opgezet. Er zijn nogal wat
// onverwachte valkuilen. Het opzetten van een slaafzone is
// gewoonlijk eenvoudiger.
//
// NB: Zet de onderstaande voorbeelden niet blindelings aan. :-)
// Gebruik in plaats hiervan echte namen en adressen.
/* Een voorbeeld van een dynamische zone
key "exampleorgkey" {
algorithm hmac-md5;
secret "sf87HJqjkqh8ac87a02lla==";
};
zone "example.org" {
type master;
allow-update {
key "exampleorgkey";
};
file "/etc/namedb/dynamic/example.org";
};
*/
/* Voorbeeld van een omgekeerde slaafzone
zone "1.168.192.in-addr.arpa" {
type slave;
file "/etc/namedb/slave/1.168.192.in-addr.arpa";
masters {
192.168.1.1;
};
};
*/In named.conf zijn dit voorbeelden
van slaafregels voor een voorwaartse en een omgekeerde
zone.Voor iedere nieuwe zone die wordt aangeboden dient een
nieuwe instelling voor de zone aan
named.conf toegevoegd te worden.De eenvoudigste instelling voor de zone example.org kan er als volgt
uitzien:zone "example.org" {
type master;
file "master/example.org";
};De zone is een master, zoals aangegeven door het statement
, waarvan de zoneinformatie in
/etc/namedb/example.org staat, zoals het
statement aangeeft.zone "example.org" {
type slave;
file "slave/example.org";
};In het geval van de slaaf wordt de zoneinformatie voor een
zone overgedragen van de master naamserver en opgeslagen in
het ingestelde bestand. Als de masterserver het niet meer
doet of niet bereikbaar is, dan heeft de slaveserver de
overgedragen zoneinformatie nog en kan het die aanbieden.ZonebestandenBINDzonebestandenEen voorbeeldbestand voor een masterzone voor example.org (bestaande binnen
/etc/namedb/master/example.org) ziet er
als volgt uit:$TTL 3600 ; 1 uur standaard TTL
example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serienummer
10800 ; Verversen
3600 ; Opnieuw proberen
604800 ; Verlopen
300 ; Negatieve antwoord-TTL
)
; DNS Servers
IN NS ns1.example.org.
IN NS ns2.example.org.
; MX Records
IN MX 10 mx.example.org.
IN MX 20 mail.example.org.
IN A 192.168.1.1
; Machinenamen
localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mail IN A 192.168.1.4
mx IN A 192.168.1.5
; Aliases
www IN CNAME example.org.Iedere hostnaam die eindigt op een . is
een exacte hostnaam, terwijl alles zonder een
. op het einde relatief is aan de oorsprong.
Zo wordt ns1 bijvoorbeeld vertaald naar
ns1.example.org..De regels in een zonebestand volgen de volgende opmaak:recordnaam IN recordtype waardeDNSrecordsDe meest gebruikte DNS-records:SOAbegin van autoriteit (start of
authority)NSeen bevoegde (autoratieve) name
serverAeen hostadresCNAMEde canonieke naam voor een aliasMXmail exchangerPTReen domeinnaam pointer (gebruikt in
omgekeerde DNS)example.org. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serienummer
10800 ; Ververs na 3 uur
3600 ; Opnieuw proberen na 1 uur
604800 ; Verlopen na 1 week
300 ; Negatieve antwoord-TTLexample.org.de domeinnaam, ook de oorsprong voor dit
zonebestand.ns1.example.org.de primaire/bevoegde naamserver voor deze
zone.admin.example.org.de persoon die verantwoordelijk is voor
deze zone, emailadres met @ vervangen.
admin@example.org wordt
admin.example.org.2006051501het 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. 2006051501 betekent
dan dat het voor het laatst is aangepast op
15–05–2006, de laatste
01 betekent dat het zonebestand die
dag voor het eerst is aangepast. Het serienummer is
belangrijk omdat het slaafnaamservers aangeeft dat een
zone is bijgewerkt. IN NS ns1.example.org.Hierboven staat een NS-regel. Voor iedere naamserver die
bevoegde antwoorden moet geven voor de zone hoort er zo'n
regel te zijn.localhost IN A 127.0.0.1
ns1 IN A 192.168.1.2
ns2 IN A 192.168.1.3
mx IN A 192.168.1.4
mail IN A 192.168.1.5Een A-record geeft een machinenaam aan. Hierboven is te
zien dat ns1.example.org zou
resolven naar 192.168.1.2. IN A 192.168.1.1Deze regel kent IP-adres 192.168.1.1 toe aan de huidige
oorsprong, in dit geval example.org.www IN CNAME @Een canoniek naamrecord wordt meestal gebruikt voor het
geven van aliassen aan een machine. In het voorbeeld is
www een alias naar de master
machine waarvan de naam gelijk is aan de domeinnaam example.org (192.168.1.1). CNAME's kunnen
nooit samen met een ander soort record voor dezelfde hostnaam
gebruikt worden.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
van een mailserver en 10 is de prioriteit voor die mailserver.Het is mogelijk meerdere mailservers in te stellen met
prioriteiten 10, 20, enzovoorts. Een mailserver die probeert
mail af te leveren voor example.org probeert dat eerst
bij de MX met de hoogste prioriteit (het record met het
laagste prioriteitsnummer), daarna de tweede hoogste,
enzovoort, totdat de mail afgeleverd kan worden.Voor in-addr.arpa zonebestanden (omgekeerd DNS) wordt
dezelfde opmaak gebruikt, maar dan met PTR-regels in plaats
van A of CNAME.$TTL 3600
1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
2006051501 ; Serienummer
10800 ; Ververs
3600 ; Opnieuw proberen
604800 ; Verlopen
300 ) ; Negatieve antwoord-TTL
IN NS ns1.example.org.
IN NS ns2.example.org.
1 IN PTR example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
4 IN PTR mx.example.org.
5 IN PTR mail.example.org.Dit bestand geeft de juiste IP-adressen voor hostnamen
in het voorbeelddomein hierboven.Het is het vernoemen waard dat alle namen aan de rechterkant
van een PTR-record volledig gekwalificeerd dienen te zijn
(i.e., met een . eindigen).Caching naamserverBINDcaching naamserverEen caching naamserver is een naamserver wiens primaire rol
het oplossen van recursieve verzoeken is. Het dient simpelweg
zelf verzoeken in en onthoudt de antwoorden voor later gebruik.DNSSECBINDDNS veiligheidsuitbreidingenDomain Name Security System Extensions, ofwel DNSSEC, is een
verzameling van specificaties om resolvende naamservers te beschermen
tegen valse DNS-gegevens, zoals vervalste
DNS-records. Door digitale handtekeningen te
gebruiken kan een resolver de integriteit van een record controleren.
Merk op dat DNSSEC
alleen integriteit biedt via het digitaal ondertekenen van het Resource
Record (RRs). Het biedt noch
betrouwbaarheid noch bescherming tegen onjuiste aannames van
eindgebruikers. Dit betekent dat het mensen niet kan beschermen tegen
- het bezoeken van voorbeeld.net in
- plaats van voorbeeld.com. Het enige
+ het bezoeken van example.net in
+ plaats van example.com. Het enige
wat DNSSEC doet is authenticeren dat de gegevens
niet tijdens het transport zijn gecompromitteerd. De beveiliging van
DNSSEC is een belangrijke stap in het beveiligen van
het internet in het algemeen. De relevante RFCs zijn
een goed beginpunt voor meer gedetailleerde gegevens over hoe
DNSSEC werkt. Raadpleeg de lijst in
.De volgende secties laten zien hoe DNSSEC voor
een autoratieve DNS-server en een recursieve (of
caching) DNS-server die BIND 9
draait kan worden bewerkstelligd. Hoewel alle versies van
BIND 9 DNSSEC ondersteunen, is
tenminste versie 9.6.2 nodig om gebruik te kunnen maken van de
ondertekende rootzones tijdens het valideren van
DNS-verzoeken. Dit komt doordat
eerdere versies de benodigde algoritmes om validatie met de sleutel
voor de rootzone te uit te voeren niet hebben. Het wordt sterk
aangeraden om de nieuwste versie van BIND 9.7 te
gebruiken om gebruik te kunnen maken van automatische sleutel-updates
voor de rootsleutel en van andere mogelijkheden om zones ondertekend en
sleutel up-to-date te houden. Wanneer configuraties tussen 9.6.2 en 9.7
en later verschillen, zullen deze worden toegelicht.Configuratie van een recursieve
DNS-serverHet aanzetten van DNSSEC-validatie van
verzoeken die door een recursieve DNS-server worden
uitgevoerd heeft enkele aanpassingen aan
named.conf nodig. Voordat deze wijzigingen
worden gemaakt dient de rootzone-sleutel, of vertrouwensanker, te
worden opgehaald. Momenteel is de rootzone-sleutel niet beschikbaar
in een bestandsformaat dat BIND begrijpt, dus moet
het handmatig in het juiste formaat omgezet worden. De sleutel zelf
kan verkregen worden door de rootzone ervoor met
dig te ondervragen. Door&prompt.user; dig +multi +noall +answer DNSKEY . > root.dnskeyte draaien, wordt de sleutel in root.dnskey
opgeslagen. De inhoud dient er ongeveer als volgt uit te zien:. 93910 IN DNSKEY 257 3 8 (
AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQ
bSEW0O8gcCjFFVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh
/RStIoO8g0NfnfL2MTJRkxoXbfDaUeVPQuYEhg37NZWA
JQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaDX6RS6CXp
oY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3
LQpzW5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGO
Yl7OyQdXfZ57relSQageu+ipAdTTJ25AsRTAoub8ONGc
LmqrAmRLKBP1dfwhYB4N7knNnulqQxA+Uk1ihz0=
) ; key id = 19036
. 93910 IN DNSKEY 256 3 8 (
AwEAAcaGQEA+OJmOzfzVfoYN249JId7gx+OZMbxy69Hf
UyuGBbRN0+HuTOpBxxBCkNOL+EJB9qJxt+0FEY6ZUVjE
g58sRr4ZQ6Iu6b1xTBKgc193zUARk4mmQ/PPGxn7Cn5V
EGJ/1h6dNaiXuRHwR+7oWh7DnzkIJChcTqlFrXDW3tjt
) ; key id = 34525Schrik niet als de verkregen sleutels anders zijn dan in dit
voorbeeld. Ze kunnen zijn veranderd nadat deze instructies voor het
laatst waren bijgewerkt. De uitvoer bevat in feite twee sleutels. De
eerste sleutel, met de waarde 257 na het DNSKEY-recordtype, is degene
die nodig is. Deze waarde geeft aan dat dit een Secure Entry Point (
SEP) is, beter bekend als
een Key Signing Key (KSK).
De tweede sleutel, met de waarde 256, is een deelsleutel, beter bekend
als een Zone Signing Key (ZSK). Meer over de verschillende
soorten sleutels komt aan bod in .Nu moet de sleutel gecontroleerd en geformatteerd worden zodat
BIND deze kan gebruiken. Maak om de sleutel te
controleren een DS -
RR-paar aan. Maak een
bestand aan dat deze RRs
bevat aan met&prompt.user; dnssec-dsfromkey -f root-dnskey . > root.dsDeze records gebruiken respectievelijk SHA-1 en SHA-256, en dienen
er als het volgende voorbeeld uit te zien, waarbij het langere record
SHA-256 gebruikt.. IN DS 19036 8 1 B256BD09DC8DD59F0E0F0D8541B8328DD986DF6E
. IN DS 19036 8 2 49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5Het SHA-256 RR kan nu worden vergeleken met de
digest in https://data.iana.org/root-anchors/root-anchors.xml.
Om er absoluut zeker van te zijn dat er niet geknoeid is met de
sleutel kunnen de gegevens in het XML-bestand
worden gecontroleerd met de PGP-handtekening in
https//data.iana.org/root-anchors/root-anchors.asc.Vervolgens dient de sleutel juist geformateerd te worden. Dit
verschilt een beetje tussen versie 9.6.2 en versie 9.7 en later van
BIND. In versie 9.7 is ondersteuning toegevoegd om
automatisch veranderingen aan de sleutel te volgen en deze bij te
werken indien nodig. Dit wordt gedaan met
managed-keys zoals in het volgende voorbeeld te
zien is. Als de oudere versie gebruikt wordt, wordt de sleutel
toegevoegd met een commando trusted-keys en dient
deze handmatig bijgewerkt te worden. Voor BIND
9.6.2 ziet het formaat er uit als:trusted-keys {
"." 257 3 8
"AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF
FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX
bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD
X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz
W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS
Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq
QxA+Uk1ihz0=";
};Voor versie 9.7 ziet het formaat er echter zo uit:managed-keys {
"." initial-key 257 3 8
"AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF
FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX
bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD
X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz
W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS
Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq
QxA+Uk1ihz0=";
};De rootsleutel kan nu aan named.conf worden
toegevoegd, ofwel direct of door een bestand dat de sleutel bevat te
includen. Stel na deze stappen BIND in zodat het
DNSSEC-validatie uitvoert op verzoeken door
named.conf te bewerken en het volgende aan de
directief options toe te voegen:dnssec-enable yes;
dnssec-validation yes;Om te controleren dat het ook echt werkt, kan
dig gebruikt worden om een verzoek op een
ondertekende zone uit te voeren met de zojuist geconfigureerde
resolver. Een succesvol antwoord zal de vlag AD
bevatten om aan te geven dat de gegevens zijn geautenticeerd. Een
verzoek als&prompt.user; dig @resolver +dnssec se ds zou het DS RR paar voor de
.se-zone moeten teruggeven. In de sectie
flags: moet de vlag AD te zien
zijn, als in:...
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
...De resolver is nu in staat om DNS-verzoeken te
autenticeren.Configuratie van een autoratieve
DNS-serverOm een autoratieve naamserver een met DNSSEC
ondertekende zone te laten serveren is wat meer werk nodig. Een zone
wordt ondertekend met cryptografische sleutels die aangemaakt moeten
worden. Het is mogelijk om hier slechts één sleutel
voor te gebruiken. De methode die de voorkeur verdient is echter om
een sterke, goed beschermde Key Signing Key (KSK) die niet vaak wordt geroteerd
en een Zone Signing Key (ZSK) die vaker wordt geroteerd te
hebben. Informatie over aanbevolen procedures staat in RFC
4641: DNSSEC Operational Practices.
Procedures betreffende de rootzone staan in DNSSEC
Practice Statement for the Root Zone KSK
operator en DNSSEC
Practice Statement for the Root Zone ZSK
operator. De KSK
wordt gebruikt om een autoriteitsketen voor de te valideren gegevens
op te bouwen en wordt daarom ook een Secure Entry Point (SEP)-sleutel genoemd. Een
bericht-digest van deze sleutel, dat Delegation Signer (DS)-record genoemd wordt, moet
gepubliceerd zijn in de ouderzone om een vertrouwensketen op te
bouwen. Hoe dit bereikt wordt hangt af van de eigenaar van de
ouderzone. De ZSK wordt
gebruikt om de zone te ondertekenen, en hoeft alleen daar gepubliceerd
te worden.Om DNSSEC aan te zetten voor de zone voorbeeld.com zoals beschreven in de
+ role="domainname">example.com zoals beschreven in de
voorgaande voorbeelden, dient als eerste
dnssec-keygen gebruikt te worden om het
sleutelpaar met de KSK en ZSK
te genereren. Dit sleutelpaar kan verschillende cryptografische
algoritmes gebruiken. Het wordt aanbevolen om RSA/SHA-256 voor de
sleutels te gebruiken, een sleutellengte van 2048 bits zou voldoende
moeten zijn. Om de KSK voor voorbeeld.com te genereren:
+ role="domainname">example.com te genereren:
- &prompt.user; dnssec-keygen -f KSK -a RSASHA256 -b 2048 -n ZONE voorbeeld.com
+ &prompt.user; dnssec-keygen -f KSK -a RSASHA256 -b 2048 -n ZONE example.comen om de ZSK te genereren:
- &prompt.user; dnssec-keygen -a RSASHA256 -b 2048 -n ZONE voorbeeld.com
+ &prompt.user; dnssec-keygen -a RSASHA256 -b 2048 -n ZONE example.comdnssec-keygen maakt twee bestanden, de
publieke en private sleutels in bestanden met namen als
- Kvoorbeeld.com.+005+nnnnn.key (publiek) en
- Kvoorbeeld.com.+005+nnnnn.private (privaat). Het
+ Kexample.com.+005+nnnnn.key (publiek) en
+ Kexample.com.+005+nnnnn.private (privaat). Het
gedeelte nnnnn van de bestandsnaam is een
sleutel-ID van vijf cijfers. Houd bij welke sleutel-ID bij welke
sleutel hoort. Dit is in het bijzonder van belang wanneer er meerdere
sleutels per zone zijn. Het is ook mogelijk om de sleutels te
hernoemen. Voor elk KSK-bestand:
- &prompt.user; mv Kvoorbeeld.com.+005+nnnnn.key Kvoorbeeld.com.+005+nnnn.KSK.key
-&prompt.user; mv Kvoorbeeld.com.+005+nnnnn.private Kvoorbeeld.com.+005+nnnnn.KSK.private
+ &prompt.user; mv Kexample.com.+005+nnnnn.key Kexample.com.+005+nnnn.KSK.key
+&prompt.user; mv Kexample.com.+005+nnnnn.private Kexample.com.+005+nnnnn.KSK.privateVoor ZSK-bestanden dient KSK
waar nodig door ZSK vervangen te worden. De
bestanden kunnen nu worden opgenomen in het zonebestand, door de
opdracht $include te gebruiken. Het zou er
ongeveer als volgt uit moeten zien:
- $include Kvoorbeeld.com.+005+nnnnn.KSK.key ; KSK
-$include Kvoorbeeld.com.+005+nnnnn.ZSK.key ; ZSK
+ $include Kexample.com.+005+nnnnn.KSK.key ; KSK
+$include Kexample.com.+005+nnnnn.ZSK.key ; ZSKOnderteken tenslotte de zone en vertel BIND om
het ondertekende zonebestand te gebruiken. Voor het ondertekenen van
een zone wordt dnssec-signzone gebruikt.
Het commando om de zone voorbeeld.com, dat zich in
- voorbeeld.com.db bevindt, zou er ongeveer zo
+ role="domainname">example.com, dat zich in
+ example.com.db bevindt, zou er ongeveer zo
uit moeten zien:
- &prompt.user; dnssec-signzone -o voorbeeld.com -k Kvoorbeeld.com.+005+nnnnn.KSK voorbeeld.com.db Kvoorbeeld.com.+005+nnnnn.ZSK.key
+ &prompt.user; dnssec-signzone -o example.com -k Kexample.com.+005+nnnnn.KSK example.com.db Kexample.com.+005+nnnnn.ZSK.keyDe sleutel die aan het argument wordt
meegegeven is de KSK en het andere sleutelbestand
is de ZSK dat bij het ondertekenen gebruikt moet
worden. Het is mogelijk om meer dan één
KSK en ZSK op te geven, wat tot
gevolg heeft dat de zone met alle meegegeven sleutels wordt
ondertekend. Dit kan nodig zijn om zonegegevens aan te leveren die
met meerdere algoritmes zijn ondertekend. De uitvoer van
dnssec-signzone is een zonebestand met
daarin alle RRs ondertekend. Deze uitvoer komt in
een bestand met de extensie .signed terecht, zoals
- voorbeeld.com.db.signed. De example.com.db.signed. De DS-records worden ook naar een
- apart bestand dsset-voorbeeld.com geschreven. Om
+ apart bestand dsset-example.com geschreven. Om
deze ondertekende zone te gebruiken hoeft alleen de zone-directief in
named.conf veranderd te worden om
- voorbeeld.com.db.signed. Standaard zijn de
+ example.com.db.signed. Standaard zijn de
ondertekeningen slechts 30 dagen geldig, wat betekent dat de zone over
ongeveer 15 dagen hertekend moet worden om er zeker van te zijn dat
resolvers geen records met oude ondertekeningen cachen. Het is
mogelijk om hiervoor een script en een crontaak te maken. Bekijk de
relevante handleidingen voor details.Zorg ervoor dat de private sleutels veilig blijven, zoals met alle
cryptografische sleutels. Bij het veranderen van een sleutel kan het
beste de nieuwe sleutel in de zone opgenomen worden, en nog met de
oude sleutel te ondertekenen, en om daarna over te stappen op de
nieuwe sleutel. Nadat deze handelingen zijn voltooid kan de oude
sleutel uit de zone worden verwijderd. Wanneer dit niet wordt gedaan
kunnen de DNS-gegevens tijdelijk onbeschikbaar zijn
totdat de nieuwe sleutel door de
DNS-hiërarchie is gepropageerd. Meer
informatie over sleutelwisselingen en andere
praktijken rondom DNSSEC staan in RFC
4641: DNSSEC Operational
practices.Automatisering met BIND 9.7 of nieuwerIn versie 9.7 van BIND is een nieuwe
mogelijkheid genaamd Smart Signing
geïntroduceerd. Deze mogelijkheid heeft als doel om het
sleutelbeheer en ondertekenproces eenvoudiger te maken door delen van
deze taken te automatiseren. Door de sleutels in een
sleutelreservoir te stoppen en de nieuwe optie
auto-dnssec te gebruiken, is het mogelijk om een
dynamische zone aan te maken welke opnieuw getekend wordt indien dat
nodig is. Gebruik om deze zone bij te werken
nsupdate met de nieuwe .
rndc kan nu ook zones ondertekenen met
sleutels uit het sleutelreservoir door de optie
te gebruiken. Voeg, om BIND dit automatische
ondertekenen en bijwerken van zones te laten gebruiken voor voorbeeld.com, het volgende aan
+ role="domainname">example.com, het volgende aan
named.conf toe:
- zone voorbeeld.com {
+ zone example.com {
type master;
key-directory "/etc/named/keys";
update-policy local;
auto-dnssec maintain;
- file "/etc/named/dynamic/voorbeeld.com.zone";
+ file "/etc/named/dynamic/example.com.zone";
};Nadat deze veranderingen gemaakt zijn, dienen de sleutels voor de
zone aangemaakt te worden zoals uitgelegd in , deze sleutels in het sleutelreservoir
gestopt te worden dat als argument aan de
key-directory in het zoneconfiguratie is
meegegeven, waarna de zone automatisch zal worden ondertekend. Zones
die op deze manier zijn geconfigureerd dienen met
nsupdate te worden gedaan, dat voor het
opnieuw ondertekenen van de zone met de nieuw toegevoegde gegevens zal
zorgen. Zie voor meer details en de
BIND-documentatie.BeveiligingHoewel BIND de meest gebruikte implementatie van DNS is, is
er altijd nog het beveiligingsvraagstuk. Soms worden er
mogelijke en te misbruiken beveiligingsgaten gevonden.Hoewel &os; named automatisch in
een &man.chroot.8;-omgeving plaatst; zijn er verschillende
andere beveiligingsmechanismen actief die zouden kunnen helpen
om mogelijke aanvallen op de DNS-dienst af te
wenden.Het is altijd verstandig om de CERT
beveiligingswaarschuwingen te lezen 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
hulp bieden.Verder lezenBIND/named hulppagina's:
&man.rndc.8; &man.named.8; &man.named.conf.5; &man.nsupdate.8;
&man.dnssec-signzone.8; &man.dnssec-keygen.8;Officiële
ISC BIND paginaOfficieel ISC BIND
ForumO'Reilly DNS en
BIND 5e EditieRoot
DNSSEC
DNSSEC Trust Anchor Publication for the Root
ZoneRFC1034 -
Domain Names - Concepts and FacilititiesRFC1035 -
Domain Names - Implementation and SpecificationRFC4033 -
DNS Security Introduction and RequirementsRFC4034 -
Resource Records for the DNS Security ExtensionsRFC4035 -
Protocol Modifications for the DNS Security
ExtensionsRFC4641 -
DNSSEC Operational PracticesRFC5011 -
Automated Updates of DNS Security (DNSSEC
Trust Anchors)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 softwarepakketten staan op de
&os; installatiemedia. Als Apache
niet bij de oorspronkelijke installatie van &os; is
meegeïnstalleerd, dan kan dat vanuit de port www/apache22.Als Apache succesvol is
geïnstalleerd, moeten er instellingen gemaakt worden.In dit onderdeel wordt versie 2.2.X van de
Apache HTTP Server behandeld omdat
die het meest gebruikt wordt op &os;.
Meer gedetailleerde informatie over
Apache 2.X dat buiten het bereik van
dit document valt is te vinden op .InstellenApacheconfiguratiebestandHet belangrijkste bestand met instellingen voor de
Apache HTTP Server op &os; is
/usr/local/etc/apache22/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
cliënten als de naam van de server anders is dan diegene
is ingesteld (gebruik bijvoorbeeld www in
plaats van de echte hostnaam).DocumentRoot
"/usr/local/www/apache22/data"DocumentRoot: de map waaruit de
documenten worden geserveerd. Standaard worden alle
verzoeken uit deze map gehaald, maar er kunnen symbolische
links en aliassen gebruikt worden om naar andere locaties
te wijzen.Het is altijd een goed idee om reservekopieën 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 stoppenDe port www/apache2 installeert
een &man.rc.8;-script dat helpt met het starten, stoppen en herstarten
van Apache en is te vinden in de map
/usr/local/etc/rc.d/.Om Apache met het systeem mee te
starten kan de volgende regel aan
/etc/rc.conf worden toegevoegd:apache22_enable="YES"Als het nodig is Apache met afwijkende
opties op te starten, kan de volgende regel aan
/etc/rc.conf worden toegevoegd:apache22_flags=""De configuratie van Apache kan worden
getest op fouten voordat het daemon httpd voor de
eerste keer wordt gestart, of na het maken van wijzigingen aan de
instellingen terwijl httpd draait. Dit kan direct
door het &man.rc.8;-script worden gedaan, of door het gereedschap
&man.service.8; door één van de volgende commando's op te
geven:&prompt.root; /usr/local/etc/rc.d/apache22 configtest&prompt.root; service apache22 configtestHet is belangrijk om op te merken dat
configtest geen &man.rc.8;-standaard is, verwacht
niet dat het met alle &man.rc.8;-opstartscripts werkt.Als Apache geen instellingsfouten meldt,
kan Apachehttpd
gestart worden met dezelfde &man.rc.8;- en
&man.service.8;-mechanismen:&prompt.root; /usr/local/etc/rc.d/apache22 start&prompt.root; service apache22 startDe dienst httpd kan getest worden door
http://localhost
in een webbrowser te typen, waarbij localhost
door de volledig gekwalificeerde domeinnaam wordt vervangen van de
machine die httpd draait, als het niet de lokale
machine is. De standaard webpagina die afgebeeld wordt is
/usr/local/www/apache22/data/index.html.Virtuele hostingApache ondersteunt twee
verschillende manieren van Virtuele Hosting. De eerste methode
is Naamgebaseerde Virtuele Hosting. Naamgebaseerde Virtuele
Hosting gebruikt de HTTP/1.1 headers van de cliënten om de
hostnaam uit te zoeken. Hierdoor kunnen meerdere domeinen
hetzelfde IP-adres delen.Om Apache gebruik te laten maken
van Naamgebaseerde 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
bibliotheek OpenSSL 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.De module mod_ssl wordt standaard
gebouwd, maar kan worden aangezet door tijdens het compileren
-DWITH_SSL op te geven.TaalbindingenEr zijn Apache-modules beschikbare voor de meeste grote
scriptingtalen. Deze modules maken het typisch mogelijk om
Apache-modules geheel in een
scriptingtaal te schrijven. Ze worden ook vaak gebruikt als
een persistente interpreter die in de server zit en die de
rompslomp van het starten van een externe interpreter en de
opstartvertraging voor dynamische websites vermijdt, zoals
beschreven in de volgende sectie.Dynamische websiteswebserversdynamischIn het afgelopen decennium 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 webinhoud toegenomen. Hoewel sommige bedrijven
zoals µsoft; oplossingen hebben geïntroduceerd voor
hun eigen (propriëtaire) producten, heeft ook de open
source gemeenschap een antwoord op de vraag gegeven. Moderne
opties voor dynamische webinhoud zijn onder andere Django, Ruby
on Rails, mod_perl2, en
mod_php.DjangoDjango is een BSD-gelicenseerd raamwerk ontworpen om
ontwikkelaars in staat te stellen om snel hoog presterende,
elegante webapplicaties te schrijven. Het biedt een vertaling
van objecten naar relaties zodat datatypes ontwikkeld kunnen
worden als Python-objecten, en er een rijke dynamische
databasetoegang voor die objecten kan worden geboden zonder
dat de ontwikkelaar ooit SQL hoeft te schrijven. Het biedt
ook een uitbreidbaar sjabloonsysteem zodat de applicatielogica
is gescheiden van de HTML-presentatie.Django is afhankelijk van
mod_python,
Apache, en een SQL-database-engine
naar keuze. De &os;-port zal al deze vereisten met de juiste
vlaggen voor u installeren.Django installeren met Apache2,
mod_python3 en
PostgreSQL&prompt.root; cd /usr/ports/www/py-django; make all install clean -DWITH_MOD_PYTHON3 -DWITH_POSTGRESQLAls Django en deze vereisten eenmaal zijn
geïnstalleerd, dient u een Django-projectmap te maken en
vervolgens Apache te configureren om de ingebakken
Python-interpreter te gebruiken om uw applicatie voor
specifieke URL's op uw site aan te roepen.Apache-configuratie voor Django/mod_pythonU moet een regel aan het Apache-bestand
httpd.conf toevoegen om Apache in te
stellen om verzoeken voor bepaalde URL's aan uw
webapplicatie door te geven:<Location "/">
SetHandler python-program
PythonPath "['/map/naar/uw/django-pakketten/'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mijnsite.settings
PythonAutoReload On
PythonDebug On
</Location>Ruby on RailsRuby on RailsRuby on Rails is een ader opensource webraamwerk dat een
volledige ontwikkelstack biedt en geoptimaliseerd is om
webontwikkelaars productiever te maken en snel krachtige
applicaties te laten ontwikkelen. Het kan eenvoudig vanuit
het portssysteem geïnstalleerd worden.&prompt.root; cd /usr/ports/www/rubygem-rails; make all install cleanmod_perl2mod_perl2PerlHet Apache/Perl
integratieproject brengt de volledige kracht van de
programmeertaal Perl en de Apache HTTP
Server samen. Met de module
mod_perl2 is het mogelijk om
Apache-modules volledig in Perl te
schrijven. Daarnaast voorkomt een ingebouwde persistente
interpreter in de server de rompslomp van het starten van een
externe interpreter en de nadelen van de opstarttijd van
Perl.mod_perl2 is beschikbaar in de port
www/mod_perl2.TomRhodesGeschreven door mod_phpmod_phpPHPPHP, ook bekend als PHP:
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 om snel dynamisch
samengestelde pagina's te schrijven.Om ondersteuning voor PHP5 toe te
voegen aan de Apache webserver kan
eerst de port lang/php5
geïnstalleerd worden.Als de port lang/php5
voor het eerst geïnstalleerd wordt, worden automatisch de
beschikbare OPTIONS weergegeven. Als er
geen menu wordt weergegeven, omdat de port lang/php5 reeds in het verleden is
geïnstalleerd, is het altijd mogelijk om het optiedialoog
weer te laten verschijnen door&prompt.root; make configuit te voeren in de map van de port.Controleer in het optiedialoog dat de optie
APACHEmod_php5
als een laadbare module voor de webserver
Apache bouwt.Een heleboel sites draaien nog steeds
PHP4 om verschillende redenen
(compatibiliteitszaken of reeds in gebruik genomen
webapplicaties). Als mod_php4
nodig is in plaats van mod_php5,
gebruik dan de port lang/php4. De port lang/php4 ondersteunt een groot
deel van de configuratie- en bouwopties van de port
lang/php5.Hiermee worden de modules die nodig zijn voor de
ondersteuning van dynamische
PHP-applicaties geïnstalleerd en
ingesteld. Controleer dat de volgende secties aan
/usr/local/etc/apache22/httpd.conf zijn
toegevoegd:LoadModule php5_module libexec/apache/libphp5.soAddModule 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 voltooiing is een eenvoudige aanroep van het commando
apachectl voor een nette herstart nodig om
de module PHP te laden:&prompt.root; apachectl gracefulVoor toekomstig bijwerken van PHP zal
het commando make config niet nodig zijn;
de geselecteerde OPTIONS worden automatisch
bewaard door het &os; Ports raamwerk.De ondersteuning voor PHP in &os; is
extreem modulair waardoor de basisinstallatie zeer beperkt is.
Het is heel gemakkelijk om ondersteuning toe te voegen door de
port lang/php5-extensions
te gebruiken. Deze port biedt een menugestuurde interface voor
de installatie van PHP-uitbreidingen. Als
alternatief kunnen individuele uitbreidingen worden
geïnstalleerd door de juiste port te gebruiken.Om bijvoorbeeld ondersteuning voor de
MySQL databaseserver aan
PHP5 toe te voegen kan gewoonweg de port
databases/php5-mysql
geïnstalleerd worden:Na de installatie van een uitbreiding moet de
Apache-server herladen worden om de
nieuwe veranderingen in de configuratie op te pikken:&prompt.root; apachectl gracefulMurrayStokelyGeschreven 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 emailadres
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-cliënten 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 -lZoals is uitgelegd in ,
moet de configuratie van inetd worden
herladen nadat dit instellingenbestand is gewijzigd. Details
over het aanzetten van inetd op uw
systeem staan in .Als alternatief kan ftpd ook
gestart worden als een op zichzelf staande dienst. In dat geval
volstaat het om de juiste variabele in te stellen in
/etc/rc.conf:ftpd_enable="YES"Na het instellen van de bovenstaande variabele zal de op
zichzelf staande server gestart worden nadat de computer opnieuw
is opgestart, of het kan handmatig worden gestart door het
volgende commando als root uit te
voeren:&prompt.root; /etc/rc.d/ftpd startNu 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;
cliënten (Samba)Samba serverMicrosoft WindowsbestandsserverWindows-cliëntenprintserverWindows-cliëntenOverzichtSamba is een populair open
source softwarepakket dat bestands- en printdiensten voor
µsoft.windows; cliënten biedt. Die cliënten
kunnen dan ruimte op een &os; bestandssysteem gebruiken alsof
het een lokale schijf is en &os; printers gebruiken alsof het
lokale printers zijn.Samba softwarepakketten horen
op de &os; installatiemedia te staan. Als
Samba bij de basisinstallatie niet
mee is geïnstalleerd, dan kan dat alsnog via de net/samba34 port of met het
pakket.InstellenEen standaardbestand met instellingen voor
Samba wordt geïnstalleerd als
/usr/local/share/examples/samba34/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; cliënten. Het pakket
Samba 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
+ vanuit inetd. Daarom dient
+ inetd aangezet te worden zoals
+ beschreven in en 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/swat swatZoals is uitgelegd in , moet de configuratie van
inetd worden herladen nadat dit
instellingenbestand is gewijzigd.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 het 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.netbiosnaamNetBIOSHiermee 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
beschrijvende 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
cliëntgebruikers. Deze worden met de volgende
instellingen gemaakt:securityDe twee meest gebruikte mogelijkheden hier zijn
security = share en
security = user. Als de
cliënten 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 cliënt
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.
Cliënten 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/etc/samba/smbpasswd gemaakt
worden om Samba in staat te stellen
cliënten te authenticeren. Als het gewenst is om uw
&unix; gebruikersaccounts toegang te geven vanaf &windows;
cliënten, gebruik dan het volgende commando:&prompt.root; smbpasswd -a gebruikersnaamDe aanbevolen backend is nu tdbsam,
en het volgende command moet gebruikt worden om
gebruikersaccounts toe te voegen:&prompt.root; pdbedit gebruikersnaamIn de Official
Samba HOWTO staat meer informatie over instelopties.
Met de hier gegeven basisuitleg moet het mogelijk zijn
Samba draaiende te krijgen.Samba startenDe port net/samba34 voegt
een nieuw opstartscript toe, dat gebruikt kan worden om
Samba te beheren. Om dit script te
activeren, zodat het bijvoorbeeld gebruikt kan worden om
Samba te starten, stoppen, of te
herstarten, dient de volgende regel aan
/etc/rc.conf toegevoegd te worden:samba_enable="YES"Of, voor fijnkorrelig beheer:nmbd_enable="YES"smbd_enable="YES"Dit stelt Samba ook in om
automatisch tijdens het opstarten te starten.Vervolgens is het mogelijk om
Samba op elk moment te starten door
dit te typen:&prompt.root; /usr/local/etc/rc.d/samba start
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.Refereer aan voor meer
informatie over het gebruikt van rc-scripts.Samba bestaat feitelijk uit drie
afzonderlijke daemons. Het script
samba start de daemons
nmbd en
smbd. Als de winbind
naamresolutiediensten 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 stopSamba is een complexe
softwaresuite met functionaliteit waarmee verregaande integratie
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 kiezenNTPservers kiezenOm 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 onbetrouwbare 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.Algemene instellingenNTPntp.confNTP 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
tijdbewakingshardware.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 ignoreDit zal ook toegang van uw server naar alle servers die
vermeld staan in uw lokale configuratie verhinderen. Als u
uw NTP-server moet synchroniseren met een externe
NTP-server, dient u deze specifieke server toe te staan.
Lees de handleiding voor &man.ntp.conf.5; voor meer
informatie.Om alleen machines op bijvoorbeeld het lokale 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.pidntpd 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
gebruikers-PPP, kunnen er filter commando's
ingesteld worden in /etc/ppp/ppp.conf.
Bijvoorbeeld: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 sectie PACKET
FILTERING in &man.ppp.8; en in de voorbeelden in
/usr/share/examples/ppp/.Sommige Internetproviders 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/.TomRhodesBijgedragen door Hosts op afstand loggen met
syslogdHet omgaan met systeemlogs is een cruciaal aspect van zowel
beveiligings- als systeembeheer. Het in de gaten houden van
logbestanden van meerdere hosts kan nogal onhandelbaar worden als
deze hosts over (middel)grote netwerken zijn verspreid, of wanneer
ze deel zijn van verschillende soorten netwerken. In deze
gevallen kan het op afstand loggen het gehele proces een stuk
aangenamer maken.Het centraal loggen naar een specifieke loghost kan wat van de
administratieve last van het beheren van logbestanden wegnemen.
Het aggregeren, samenvoegen, en roteren van logbestanden kan op
één enkele plaats worden ingesteld, door gebruik te
maken van de eigen gereedschappen van &os;, zoals &man.syslogd.8;
en &man.newsyslog.8;. In de volgende voorbeeldconfiguratie zal
host A, genaamd logserv.example.com, loginformatie voor het
plaatselijke netwerk verzamelen. Host B, genaamd
logclient.example.com, zal
loginformatie aan het serversysteem doorgeven. In echte
configuraties hebben beide hosts degelijke voor- en terugwaartse
DNS of regels in
/etc/hosts nodig. Anders worden de gegevens
geweigerd door de server.Configuratie van de logserverLogservers zijn machines die zijn geconfigureerd om
loginformatie van hosts op afstand te accepteren. In de meeste
gevallen is dit om de configuratie te vergemakkelijken, in
andere gevallen kan het gewoon een beheersbeslissing zijn.
Ongeacht de reden zijn er enkele eisen voordat er verder wordt
gegaan.Een juist geconfigureerde logserver voldoet aan de volgende
minimale eisen:De regels van de firewall staan toe dat
UDP wordt doorgegeven op poort 514 van
zowel de cliënt als de server;syslogd is ingesteld om berichten op afstand van
cliëntmachines te accepteren;De syslogd-server en alle cliëntmachines moeten
geldige regels hebben voor zowel voorwaartse als
terugwaartse DNS, of correct zijn
geconfigureerd in /etc/hosts.Om de logserver te configureren, moet de cliënt vermeld
zijn in /etc/syslog.conf, en moet de
logfaciliteit zijn gespecificeerd:+logclient.example.com
*.* /var/log/logclient.logMeer informatie over de verschillende ondersteunde en
beschikbare faciliteiten kan gevonden
worden in de handleidingpagina &man.syslog.conf.5;.Eenmaal toegevoegd worden alle
faciliteits-berichten gelogd naar het eerder
gespecificeerde bestand,
/var/log/logclient.log.De servermachine moet ook het volgende in
/etc/rc.conf hebben staan:syslogd_enable="YES"
syslogd_flags="-a logclient.example.com -v -v"De eerste optie zet de daemon syslogd aan
tijdens het opstarten, en de tweede regel staat toe dat gegevens
van de cliënt op deze server worden geaccepteerd. Het
laatste gedeelte, dat gebruikt, verhoogt de
verbositeit van gelogde berichten. Dit is extreem handig voor
het optimaal instellen van faciliteiten aangezien beheerders
kunnen zien welk soort berichten onder welke faciliteit worden
gelogd.Er kunnen meerdere opties worden
gespecificeerd om logging vanuit meerdere cliënten toe te
staan. IP-adressen en hele netblokken mogen
ook worden gespecificeerd, bekijk de hulppagina &man.syslog.3;
voor een volledige lijst van mogelijke opties.Als laatste dient het logbestand gecreëerd te worden.
De gebruikte manier maakt niet uit, maar &man.touch.1; werkt
prima in dit soort situaties:&prompt.root; touch /var/log/logclient.logNu dient het syslogd-daemon herstart en
geverifieerd worden:&prompt.root; /etc/rc.d/syslogd restart
&prompt.root; pgrep syslogAls er een PID wordt teruggegeven, dan is
de server succesvol herstart, en kan er begonnen worden met de
configuratie van de cliënt. Raadpleeg de log
/var/log/messages voor uitvoer als de
server niet is herstart.Configuratie van de logcliëntEen logcliënt is een machine die loginformatie naar een
logserver verstuurt en daarnaast lokale kopieën
bewaart.Net als logservers moeten logcliënten ook aan enkele
minimumeisen voldoen:&man.syslogd.8; moet zijn ingesteld om berichten van
bepaalde soorten naar een logserver te sturen, die ze moet
accepteren;De firewall moet UDP-pakketten
doorlaten op poort 514;Zowel voorwaartse als terugwaartse
DNS moeten geconfigureerd zijn of juiste
regels in /etc/hosts hebben.De configuratie van cliënten is wat soepeler dan die
van servers. De cliëntmachine moet de volgende regels in
/etc/rc.conf hebben:syslogd_enable="YES"
syslogd_flags="-s -v -v"Net als eerder zullen deze regels de daemon
syslogd tijdens het opstarten aanzetten, en
de verbositeit van gelogde berichten verhogen. De optie
voorkomt dat logs van deze cliënt
vanuit andere hosts worden geaccepteerd.Faciliteiten beschrijven het systeemgedeelte waarvoor een
bericht is gegenereerd. ftp en
ipfw bijvoorbeeld zijn beide faciliteiten.
Wanneer er logberichten worden gegenereerd voor deze twee
diensten, zullen ze normaalgesproken deze twee gereedschappen in
elk logbericht opnemen. Faciliteiten worden vergezeld van een
prioriteit of niveau, welke wordt gebruikt om aan te geven hoe
belangrijk een logbericht is. De meest voorkomende zullen
warning en info zijn.
Bekijk de handleidingpagina &man.syslog.3; voor een volledige
lijst van beschikbare faciliteiten en prioriteiten.De logserver moet in /etc/syslog.conf
van de cliënt zijn gedefinieerd. In dit geval wordt het
symbool @ gebruikt om loggegevens naar een
server op afstand te sturen en zou er ongeveer als de volgende
regel uit moeten zien:*.* @logserv.example.comEenmaal toegevoegd moet syslogd worden
herstart zodat de veranderingen effect hebben:&prompt.root; /etc/rc.d/syslogd restartOm te testen of logberichten over het netwerk worden
verzonden, wordt &man.logger.1; op de cliënt gebruikt om
een bericht naar syslogd te sturen:&prompt.root; logger "Testbericht van logclient"Dit bericht dient nu zowel in
/var/log/messages op de cliënt als
/var/log/logclient.log op de logserver te
staan.Logservers debuggenIn bepaalde gevallen kan het nodig zijn om te debuggen als
berichten niet door de logserver worden ontvangen. Er zijn
verschillende redenen waarom dit kan gebeuren; de twee meest
voorkomende zijn echter voorvallen met de netwerkverbinding en
DNS. Om deze gevallen te testen, dient te
worden nagegaan dat beide hosts elkaar kunnen bereiken door
de hostnaam in /etc/rc.conf te gebruiken.
Als dit juist lijkt te werken, dient de optie
syslogd_flags in
/etc/rc.conf te worden veranderd.In het volgende voorbeeld is
/var/log/logclient.log leeg, en noemt
/var/log/messages geen reden waarom het
mislukt. Verander de optie syslogd_flags
zoals in het volgende voorbeeld en herstart om de debuguitvoer
te verhogen:syslogd_flags="-d -a logclien.example.com -v -v"&prompt.root; /etc/rc.d/syslogd restartDebuggegevens zoals de volgende zullen meteen na de herstart
over het scherm vliegen:logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
syslogd: restarted
logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
Logging to FILE /var/log/messages
syslogd: kernel boot file is /boot/kernel/kernel
cvthname(192.168.1.10)
validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;
rejected in rule 0 due to name mismatch.Het is duidelijk dat de berichten worden geweigerd wegens
een niet-overeenkomende naam. Na de configuratie grondig te
hebben herzien, lijkt het of een typefout in de volgende regel
in /etc/rc.conf een probleem heeft:syslogd_flags="-d -a logclien.example.com -v -v"De regel dient logclient, niet
logclien te bevatten. Nadat de juiste
wijzigingen zijn gemaakt, wordt er herstart met de verwachte
resultaten:&prompt.root; /etc/rc.d/syslogd restart
logmsg: pri 56, flags 4, from logserv.example.com, msg syslogd: restart
syslogd: restarted
logmsg: pri 6, flags 4, from logserv.example.com, msg syslogd: kernel boot file is /boot/kernel/kernel
syslogd: kernel boot file is /boot/kernel/kernel
logmsg: pri 166, flags 17, from logserv.example.com,
msg Dec 10 20:55:02 <syslog.err> logserv.example.com syslogd: exiting on signal 2
cvthname(192.168.1.10)
validate: dgram from IP 192.168.1.10, port 514, name logclient.example.com;
accepted in rule 0.
logmsg: pri 15, flags 0, from logclient.example.com, msg Dec 11 02:01:28 trhodes: Test message 2
Logging to FILE /var/log/logclient.log
Logging to FILE /var/log/messagesNu worden de berichten juist ontvangen en in het correcte
bestand geplaatst.BeveiligingsoverwegingenZoals bij alle netwerkdiensten, dienen beveiligingseisen in
acht te worden genomen voordat deze configuratie wordt
geïmplementeerd. Soms kunnen logbestanden gevoelige
gegevens bevatten over diensten die aanstaan op de lokale host,
gebruikersaccounts, en configuratiegegevens. Netwerkgegevens
die van de cliënt naar de server worden verzonden worden
niet versleuteld noch met een wachtwoord beveiligd. Als
versleuteling nodig is, kan security/stunnel worden gebruikt,
wat gegevens over een versleutelde tunnel verstuurt.Aan lokale beveiliging moet ook gedacht worden.
Logbestanden worden niet versleuteld tijdens gebruik of na
logrotatie. Lokale gebruikers kunnen deze bestanden benaderen
om aanvullende inzichten over de systeemconfiguratie op te doen.
In deze gevallen is het van kritiek belang om de juiste rechten
op deze bestanden in te stellen. Het gereedschap
&man.syslogd.8; ondersteunt het instellen van rechten op nieuw
aangemaakte en geroteerde logbestanden. Het instellen van
logbestanden op modus 600 dient al het
ongewenste spieken door lokale gebruikers te verhinderen.
Index: translations/nl_NL.ISO8859-1/books/handbook/virtualization/chapter.xml
===================================================================
--- translations/nl_NL.ISO8859-1/books/handbook/virtualization/chapter.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/books/handbook/virtualization/chapter.xml (revision 40367)
@@ -1,1300 +1,1310 @@
MurrayStokelyBijgedragen door RenéLadanVertaald door VirtualisatieOverzichtVirtualisatiesoftware maakt het mogelijk om meerdere
besturingssystemen gelijktijdig op dezelfde computer te draaien.
Zulke softwaresystemen voor PC's gebruiken vaak een
gastheer-besturingssysteem dat de virtualisatiesoftware draait en
dat elk aantal gast-besturingssystemen ondersteunt.Aan het einde van dit hoofdstuk weet de lezer:Het verschil tussen een gastheer-besturingssysteem en een
gast-besturingssysteem.Hoe &os; op een &intel;-gebaseerde &apple; &macintosh;
computer te installeren.Hoe &os; op µsoft.windows; te installeren met
Virtual PC.Hoe een &os;-systeem in te stellen voor de beste
prestaties tijdens virtualisatie.Voor het lezen van dit hoofdstuk, dient de lezer:De beginselen van &unix; en &os; ()
te begrijpen.Te weten hoe &os; te installeren ().Te weten hoe een netwerkverbinding te installeren ().Te weten hoe aanvullende software van derde partijen te
installeren ().&os; als een gast-besturingssysteemParallels op &macos;Parallels Desktop voor &macos; is
een commercieel softwareprodukt voor &intel;-gebaseerde &apple;
&mac; computers die &macos; 10.4.6 of nieuwer draaien. &os; is
een volledig ondersteund gast-besturingssysteem. Nadat
Parallels is geïnstalleerd op
&macos; X dient de gebruiker een virtuele machine in te stellen
en daarna het gewenste gast-besturingssysteem te installeren.&os; installeren op Parallels/&macos; XDe eerste stap in het installeren van &os; op &macos; X
Parallels is het aanmaken van een
nieuwe virtuele machine voor het installeren van &os;.
Selecteer &os; als het
Guest OS Type wanneer dit gevraagd
wordt:Kies verder een hoeveelheid aan schijf- en geheugenruimte
afhankelijk van de plannen voor deze virtuele instantie van
&os;. 4GB aan schijfruimte en 512MB aan RAM werken goed voor
de meeste gebruikers van &os; onder
Parallels:Selecteer het type netwerk en een netwerkinterface:Bewaar de instellingen en sluit af:Nadat de virtuele &os;-machine is aangemaakt, dient er
&os; op geïnstalleerd te worden. Dit gaat het beste met
een officiële &os; CDROM of met een ISO-beeld dat is
gedownload van een officiële FTP-site. Wanneer het
juiste ISO-beeld op het plaatselijke &mac;-bestandssysteem of
een CDROM in de CD-drive van de &mac; aanwezig is, dient op
het schijfikoon in de rechteronderhoek van het &os;
Parallels-scherm geklikt te worden.
Dit zal een scherm tonen dat het mogelijk maakt om de
CDROM-drive in de virtuele machine te associëren met een
ISO-bestand op schijf of met een echte CDROM-drive.Nadat deze associatie met de CDROM-bron is gemaakt, dient
de virtuele &os;-machine herstart te worden door op het
herstart-icoon te klikken. Parallels
zal herstarten met een speciale BIOS dat eerst
controleert of er een CDROM aanwezig is, net zoals een normale
BIOS zou doen.In dit geval zal het de installatiemedia van &os; vinden
en een normale installatie gebaseerd op
sysinstall beginnen zoals
beschreven in . X11 kan nu
geïnstalleerd, maar nog niet ingesteld, worden.Nadat de installatie is voltooid, kan naar de nieuw
geïnstalleerde virtuele &os;-machine herstart worden.&os; instellen op &macos; X/ParallelsNadat &os; succesvol op &macos; X met
Parallels is geïnstalleerd,
zijn er een aantal instellingen die gewijzigd kunnen worden
om het systeem voor virtuele werking te optimaliseren.De variabelen voor de bootloader instellenDe belangrijkste stap is om de tunable
te verlagen om het CPU-gebruik van &os;
onder de Parallels-omgeving te
verminderen. Dit kan bereikt worden door de volgende
regel aan /boot/loader.conf toe te
voegen:kern.hz=100Zonder deze instelling zal een rustend &os;
Parallels
gast-besturingssysteem ongeveer 15% van de CPU van een
enkele &imac;-processor gebruiken. Na deze wijziging zal
het gebruik slechts ongeveer 5% zijn.Een nieuw instellingenbestand voor de kernel aanmakenAlle stuurprogramma's voor SCSI, FireWire, en USB
kunnen verwijderd worden.
Parallels biedt een virtuele
netwerkadapter die door het stuurpogramma &man.ed.4;
wordt gebruikt, dus kunnen alle andere netwerkapparaten
behalve &man.ed.4; en &man.miibus.4; uit de kernel
verwijderd worden.Het netwerk instellenDe eenvoudigste netwerkinstallatie omvat het gebruik
van DHCP om de virtuele machine met hetzelfde LAN te
verbinden als het &mac;-gastheer. Dit kan bereikt worden
door ifconfig_ed0="DHCP" aan
/etc/rc.conf toe te voegen. Meer
geavanceerde netwerkinstallaties staan beschreven in
.Virtual PC op &windows;Virtual PC voor &windows; is een
softwareprodukt van µsoft; dat gratis gedownload kan worden
. Zie systeemeisen.
Nadat Virtual PC is
geïnstalleerd op µsoft.windows;, dient de gebruiker
een virtuele machine in te stellen en daarna het gewenste
gast-besturingssysteem te installeren.&os; installeren op Virtual PC/µsoft.windows;De eerste stap in het installeren van &os; op
µsoft.windows;/Virtual PC is
het aanmaken van een nieuwe virtuele machine voor het
installeren van &os;. Kies Create a virtual
machine wanneer daarom wordt gevraagd:Selecteer Other als het
Operating system wanneer dat
gevraagd wordt:Kies vervolgens een gepaste hoeveelheid aan schijf- en
geheugenruimte afhankelijk van de plannen voor deze virtuele
instantie van &os;. 4GB aan schijfruimte en 512MB aan RAM
werken goed voor de meeste gebruikers van &os; onder
Virtual PC:Bewaar de instellingen en sluit ze af:Selecteer de virtuele &os;-machine en klik op
Settings, stel daarna het type netwerk en
een netwerkinterface in:Nadat de virtuele &os;-machine is aangemaakt, dient &os;
erop geïnstalleerd te worden. Dit gaat het beste met een
officiële &os;-CDROM of met een ISO-beeld dat van een
officiële FTP-site is gedownload. Wanneer het juiste
ISO-beeld op het lokale bestandssysteem van &windows; staat
of er een CDROM in de CD-drive zit, dubbelklik dan op de
virtuele &os;-machine om op te starten. Klik daarna op
CD en kies Capture ISO Image...
in het venster van Virtual PC
. Dit toont een scherm dat het mogelijk maakt
om de CDROM-drive in de virtuele machine te associëren
met een ISO-bestand op schijf of met een echte CDROM-drive.Start, nadat deze associatie met de CDROM-bron is gemaakt,
de virtuele &os;-machine opnieuw op zoals gewoonlijk door op
Action en Reset te
klikken. Virtual PC zal herstarten
met een speciale BIOS dat eerst controleert of er een CDROM
aanwezig is, net zoals eeen normale BIOS dat zou doen.In dit geval zal het de installatiemedia van &os; vinden
en een normale installatie gebaseerd op
sysinstall beginnen zoals
beschreven in . X11 kan nu
geïnstalleerd, maar nog niet ingesteld, worden.Denk eraan om de CDROM of het ISO-beeld te verwijderen
nadat de installatie voltooid is. Start als laatste op naar
de nieuw geïnstalleerde virtuele &os;-machine.&os; instellen op µsoft.windows;/Virtual PCNadat &os; succesvol is geïnstalleerd op
µsoft.windows; met Virtual PC
zijn er een aantal instellingen die aangepast kunnen worden om
het system te optimaliseren voor virtueel gebruik.De variabelen voor de bootloader instellenDe belangrijkste stap is om de tunable
te verlagen om zo het CPU-gebruik van
&os; in de omgeving van Virtual PC te
verminderen. Dit kan bereikt worden door de volgende
regel aan /boot/loader.conf toe te
voegen:kern.hz=100Zonder deze instelling zal een &os; als
gast-besturingssysteem voor Virtual PC
in rust ongeveer 40% van de CPU van een
computer met een enkele processor gebruiken. Na deze
verandering zal het gebruik slechts rond de 3% liggen.Een nieuw instellingenbestand voor de kernel aanmakenAlle stuurprogramma's voor SCSI, FireWire, en USB
kunnen verwijderd worden. Virtual PC
beidt een virtuele netwerkadapter dat door
het stuurprogramma &man.de.4; gebruikt wordt, dus kunnen
alle netwerkapparaten behalve &man.de.4; en &man.miibus.4;
uit de kernel verwijderd worden.Het netwerk instellenDe eenvoudigste netwerkinstallatie omvat het gebruik
van DHCP om de virtuele machine met het zelfde LAN te
verbinden als de µsoft.windows;-gastheer. Dit kan
bereikt worden door ifconfig_de0="DHCP"
toe te voegen aan /etc/rc.conf.
Geavanceerdere netwerkinstallaties staan beschreven in
.VMware op &macos;VMware Fusion voor &mac; is een
comercieel softwareprodukt beschikbaar voor op &intel;
gebaseeerde &mac;-computers die &macos; 10.4.9 of nieuwer
draaien. &os; is een volledig ondersteund
gast-besturingssysteem. Nadat VMware Fusion
is geïnstalleerd op &macos; X dient de
gebruiker een virtuele machine in te stellen en daarna het
gewenste gast-besturingssysteem te installeren.&os; installeren op VMware/&macos; XDe eerste stap is om VMware Fusion te laden, de Virtual
Machine Library zal geladen worden. Klik op "New" om de
VM aan te maken:Dit laadt de New Virtual Machine Assistant dat helpt om
de VM aan te maken, klik op Continue om verder te gaan:Selecteer Other als het
Operating System en
&os; of &os; 64-bit
, afhankelijk van de wens voor ondersteuning
voor 64-bit, als de Version
wanneer dat gevraagd wordt:Kies de naam van het VM-beeld en de map waarin het bewaard
dient te worden:Kies de grootte van de virtuele harde schijf voor de VM:Kies de manier om de VM te installeren, van een ISO-beeld
of van een CD:Nadat op Finish is geklikt, zal de VM opstarten:Installeer &os; zoals gewoonlijk, of door de aanwijzingen
in op te volgen:Nadat de installatie voltooid is kunnen de instellingen
van de VM aangepast worden, zoals het geheugengebruik:De instellingen van de systeemhardware van de VM kunnen
niet veranderd worden zolang de VM draait.Het aantal CPU's waartoe de VM toegang heeft:De status van het CD-ROM-apparaat. Gewoonlijk kan de
CD-ROM of het ISO-beeld van de VM worden losgekoppeld wanneer
het niet meer nodig is.Het laatste om te veranderen is de manier waarop de VM
verbinding met het netwerk maakt. Indien verbindingen naar de
VM van andere machines naast de gastheer gewenst zijn, dient
Connect directly to the physical network
(Bridged) gekozen te worden. In andere
situaties is Share the host's internet connection
(NAT) te verkiezen, zodat de VM toegang kan
hebben tot het Internet, maar dat het netwerk geen toegang
heeft tot de VM.Herstart de nieuw geïnstalleerde virtuele
&os;-machine nadat alle instellingen zijn aangepast.&os; instellen op &macos; X/VMwareNadat &os; succesvol is geïnstalleerd op &macos; X
met VMware, zijn er een aantal
instellingen die gewijzigd kunnen worden op het systeem te
optimaliseren voor virtueel gebruik.De variabelen voor de bootloader instellenDe belangrijkste stap is het verlagen van de
tunable om het CPU-gebruik van
&os; in de omgeving van VMware
te verminderen. Dit kan bereikt worden door de volgende
regel aan /boot/loader.conf toe te
voegen:kern.hz=100Zonder deze instelling gebruikt &os; als
VMware gast-besturingssysteem ongeveer 15%
van de CPU van een enkele &imac;-processor. Na deze
verandering zal het gebruik dichter bij 5% liggen.Een nieuw instellingenbestand voor de kernel aanmakenAlle stuurprogramma's voor FireWire en USB kunnen
verwijderd worden. VMware
biedt een virtuele netwerkadapter dat door het
stuurpogramma &man.em.4; gebruikt wordt, dus alle
netwerkapparaten behalve &man.em.4; kunnen uit de kernel
verwijderd worden.Het netwerk instellenDe eenvoudigste netwerkinstallatie omvat het gebruik
van DHCP om de virtuele machine met hetzelfde LAN te
verbinden als de &mac;-gastheer. Dit kan bereikt worden
door ifconfig_em0="DHCP" toe te voegen
aan /etc/rc.conf. Geavanceerdere
netwerkinstallaties staan beschreven in .&virtualbox; gasttoevoegingen op een &os;-gastDe gasttoevoegingen van &virtualbox;
bieden ondersteuning voor:Het delen van het prikbordIntegratie van de muiscursorSynchronisatie met de tijd van de gastheerHet schalen van venstersNaadloze modusDe volgende commando's worden gedraaid in de &os;-gast.Installeer ten eerste het pakket emulators/virtualbox-ose-additions in de
&os;-gast.&prompt.root; cd /usr/ports/emulators/virtualbox-ose-additions && make install cleanVoeg deze regels toe aan /etc/rc.conf:vboxguest_enable="YES"
vboxservice_enable="YES"Als &man.ntpd.8; of &man.ntpdate.8; gebruikt, dient de
synchronisatie met de tijd van de gastheer te worden
uitgeschakeld:vboxservice_flags="--disable-timesync"De vboxvideo_drv zou herkend moeten worden door
Xorg -configure. Als dit niet zo is, dient
xorg.conf gewijzigd te worden voor de videokaart
van &virtualbox;:Section "Device"
### Available Driver options are:-
### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
### [arg]: arg optional
Identifier "Card0"
Driver "vboxvideo"
VendorName "InnoTek Systemberatung GmbH"
BoardName "VirtualBox Graphics Adapter"
BusID "PCI:0:2:0"
EndSectionPas het gedeelte over de muis in xorg.conf aan
om vboxmouse_drv te gebruiken:Section "InputDevice"
Identifier "Mouse0"
Driver "vboxmouse"
EndSectionGebruikers van HAL dienen dit bestand aan te
maken als
/usr/local/etc/hal/fdi/policy/90-vboxguest.fdi
of het te kopiëren van
/usr/local/hal/fdi/policy/10osvendor/90-vboxguest.fdi:<?xml version="1.0" encoding="utf-8"?>
<!--
# Sun VirtualBox
# Hal driver description for the vboxmouse driver
# $Id$
Copyright (C) 2008-2009 Sun Microsystems, Inc.
This file is part of VirtualBox Open Source Edition (OSE, as
available from http://www.virtualbox.org. This file is free software;
you can redistribute it and/or modify it under the terms of the GNU
General Public License (GPL) as published by the Free Software
Foundation, in version 2 as it comes in the "COPYING" file of the
VirtualBox OSE distribution. VirtualBox OSE is distributed in the
hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
Clara, CA 95054 USA or visit http://www.sun.com if you need
additional information or have any questions.
-->
<deviceinfo version="0.2">
<device>
<match key="info.subsystem" string="pci">
<match key="info.product" string="VirtualBox guest Service">
<append key="info.capabilities" type="strlist">input</append>
<append key="info.capabilities" type="strlist">input.mouse</append>
<merge key="input.x11_driver" type="string">vboxmouse</merge>
<merge key="input.device" type="string">/dev/vboxguest</merge>
</match>
</match>
</device>
</deviceinfo>&os; als een gastheer-besturingssysteemVoor een aantal jaren werd &os; niet officieel ondersteund als een
gastheer-besturingssysteem door de beschikbare virtualisatiepakketten.
Sommige mensen gebruikten oudere en meestal overbodige versies van
VMware (zoals emulators/vmware3), die gebruik maakten van
de &linux; binaire compatibiliteitslaag. Kort na de uitgave van
&os; 7.2 verscheen Suns &virtualbox; in de
Ports; Collectie als een programma dat voor &os; zelf bedoeld
is.&virtualbox; is een actief ontwikkeld en
compleet virtualisatiepakket dat beschikbaar is voor de meeste
besturingssystemen waaronder &windows;, &macos;, &linux; en &os;. Het kan
evengoed &windows; of &unix; als gast draaien. Het is gerealiseerd als
een open-source pakket met gesloten-source componenten beschikbaar in een
apart uitbreidingspakket. Deze componenten bevatten onder andere
ondersteuning voor USB-2.0-apparaten. Meer informatie kan gevonden worden
op de pagina Downloads van de
&virtualbox;-wiki op . Momenteel zijn
deze uitbreidingen niet beschikbaar voor &os;.&virtualbox; installeren&virtualbox; is beschikbaar als een
&os;-port in emulators/virtualbox-ose. Zorg ervoor,
aangezien &virtualbox; erg actief ontwikkeld wordt, dat
uw ports bijgewerkt is voordat u met de installatie begint. Installeer
het met deze commando's:&prompt.root; cd /usr/ports/emulators/virtualbox-ose
&prompt.root; make install cleanEen nuttige optie in het configuratiescherm is de verzameling
GuestAdditions programma's. Deze bieden een aantal
nuttige mogelijkheden in gastbesturingssystemen, zoals integratie van
de muiscursor (wat het mogelijk maakt om de muis te delen tussen de
gast en de gastheer zonder dat er een speciale toetsencombinatie hoeft
te worden gebruikt voor het omwisselen) en snellere video-rendering,
met name in &windows;-gasten. De gastaanvullingen zijn beschikbaar in
het menu Devices, nadat de installatie van het
gastbesturingssysteem is voltooid.Er zijn enkele aanpassingen aan de instellingen nodig voordat
&virtualbox; voor het eerst wordt gestart.
De port installeert een kernelmodule in /boot/modules welke in de draaiende
kernel geladen moet worden:&prompt.root; kldload vboxdrvVoeg de volgende regel toe aan
/boot/loader.conf om er zeker van te zijn dat de
module altijd na een herstart wordt geladen:vboxdrv_load="YES"Voeg het volgende aan /etc/rc.conf toe en
herstart de computer om de kernelmodules te gebruiken die in gebridgede
of gastheer-only netwerken voorzien:vboxnet_enable="YES"De groep vboxusers wordt tijdens de
installatie van &virtualbox; aangemaakt.
Alle gebruikers die toegang tot &virtualbox;
nodig hebben moeten als lid van deze groep worden toegevoegd. Met het
commando pw kunnen nieuwe leden worden
toegevoegd:&prompt.root; pw groupmod vboxusers -m uwgebruikersnaamDe standaardpermissies voor /dev/vboxnetctl zijn restrictief en
moeten veranderd worden voor gebridged netwerken.Om het tijdelijk te testen:&prompt.root; chown root:vboxusers /dev/vboxnetctl
&prompt.root; chmod 0660 /dev/vboxnetctlVoeg deze regels toe aan /etc/devfs.conf om de
permissiewijziging permanent te maken:own vboxnetctl root:vboxusers
perm vboxnetctl 0660Gebruik de optie Sun VirtualBox van het
menu van de grafische omgeving of typ het volgende in een terminal om
&virtualbox; te starten:&prompt.user; VirtualBoxBezoek de officiële website op voor meer informatie over het
configureren en gebruiken van &virtualbox;.
Aangezien de &os;-port erg nieuw is, wordt het nog volop ontwikkeld.
Kijk voor de laatste informatie en instructies om problemen op te lossen
op de relevantie pagina in de &os;-wiki op .USB-ondersteuning in &virtualbox;Voor deze stappen is VirtualBox 4.0.0 of nieuwer nodig.Om van UBS-apparaten te kunnen lezen en ernaar te kunnen schrijven
dienen gebruikers lid te zijn van de groep operator:&prompt.root; pw groupmod operator -m jerryVoeg vervolgens het volgende toe aan
/etc/devfs.rules (maak het aan als het nog niet
bestaat):[system=10]
add path 'usb/*' mode 0660 group operatorVoeg het volgende aan toe aan /etc/rc.conf om
deze nieuwe regels te laden:devfs_system_ruleset="systemHerstart vervolgens devfs:&prompt.root; /etc/rc.d/devfs restartUSB kan nu in het gast-besturingssysteem worden aangezet.
USB-apparaten zouden zichtbaar moeten zijn in de voorkeuren van
&virtualbox;.DVD/CD-toegang van de gastheer in &virtualbox;
- De kernelmodule atapicam moet geladen zijn door
- de volgende regel toe te voegen aan
- /boot/loader.conf:
+ Toegang tot de CD/DVD-stations van de gastheer wordt bereikt door
+ het delen van de fysieke stations. In de GUI kan dit vanuit het scherm
+ Opslag in de Instellingen van de virtuele machine worden ingesteld.
+ Maak eerst een leeg IDE CD-/DVD-apparaat aan. Kies daarna het
+ Gastheerstation van het popup-menu voor het kiezen van het virtuele
+ CD-/DVD-station. Later zal er een checkbox genaamd
+ Passthrough verschijnen. Dit stelt de virtuele
+ machine in staat om de hardware direct te gebruiken. Audio-CDs en
+ branders bijvoorbeeld werken alleen als deze optie is aangezet.
- atapicam_load="YES"
-
HAL moet draaien om de DVD/CD-functies van
&virtualbox; te laten werken, zet het dus aan
in /etc/rc.conf en start het (als het niet reeds
draait):hald_enable="YES"
- &prompt.root; /usr/local/etc/rc.d/hald start
+ &prompt.root; service hald startOm gebruikers de DVD/CD-functionaliteit van
&virtualbox; te laten gebruiken, dienen ze
toegang te hebben tot /dev/xpt0,
/dev/cdN en
/dev/passN.
- Voeg de volgende regels toe aan
- /etc/devfs.conf:
+ Dit wordt normaliter gedaan door de gebruiker van
+ &virtualbox; lid te maken van de groep
+ operator, wat ook de standaardgroep is voor bovengenoemde apparaten.
+ De rechten van deze apparaten dienen gecorrigeerd te worden door de
+ volgende regels aan /etc/devfs.conf toe te
+ voegen:
- perm cd0 0600
+ perm cd* 0600
perm xpt0 0660
-perm pass0 0660
+perm pass* 0660
+
+ &prompt.root; /etc/rc.d/devfs restart
Index: translations/nl_NL.ISO8859-1/htdocs/administration.xml
===================================================================
--- translations/nl_NL.ISO8859-1/htdocs/administration.xml (revision 40366)
+++ translations/nl_NL.ISO8859-1/htdocs/administration.xml (revision 40367)
@@ -1,510 +1,509 @@
]>
&title;$FreeBSD$
Introductie
Deze pagina geeft de teams, groepen en individuen binnen het
&os; project met toegewezen projectrollen en verantwoordelijke
gebieden, samen met korte beschrijvingen en contactinformatie.
Het &os; Core Team vormt de "Raad van Bestuur" van het project, het
is verantwoordelijk voor het bepalen van de algemene doelen en richting
van het project alsmede het beheer van specifieke gebieden van het
landschap van het &os; project. Het Core Team wordt gekozen door de
actieve ontwikkelaars binnen het project.
Het &os; Documentatiebeheerteam is verantwoordelijk voor het
definiëren en opvolgen van documentatiedoelen voor de committers
in het Documentatieproject. De doceng team richtlijnen
beschrijven de plichten en verantwoordelijkheden van het
Documentatiebeheerteam in meer detail.
De primaire verantwoordelijkheid van het &os; Portbeheerteam is
erop toe te zien dat de ontwikkelaarsgemeenschap van de &os; ports
een Portscollectie levert die functioneel, stabiel, actueel en
volledig is. De secundaire verantwoordelijkheid is het coördineren
van de committers en de ontwikkelaars die eraan werken. De portmgr team richtlijnen geven een
gedetailleerdere beschrijving van de plichten en verantwoordelijkheden
van het Portbeheerteam.
Het Primaire Uitgavebeheerteam is onder andere verantwoordelijk
voor het maken en publiceren van uitgaveschema's voor officiële
projectuitgaven van &os;, het aankondigen van code freezes en het
beheren van RELENG_*-takken. De richtlijnen van het uitgave engineering
team geven een gedetailleerdere beschrijving van de plichten en
verantwoordelijkheden van het Primaire Uitgavebeheerteam.
Het &os; Donatiesteam is verantwoordelijk voor het beantwoorden van
aanbiedingen van donaties, het vaststellen van richtlijnen en procedures
voor donaties, en het coördineren van aanbiedingen van donaties met de
gemeenschap van &os;-ontwikkelaars. Een gedetailleerdere beschrijving
van de plichten van het Donatiesteam is beschikbaar op de &os; Donaties Relatie pagina.
Het &os; Beveiligingsteam (voorgezeten door de Beveiligingsofficier) is
verantwoordelijk voor het op de hoogte houden van de gemeenschap over bugs,
exploits en beveiligingsrisico's die betrekking hebben op de src- en
portsbomen van &os;, en voor het promoten en verspreiden van informatie
die nodig is om &os;-systemen veilig te draaien. Verder is het
verantwoordelijk voor het oplossen van softwarebugs die betrekking hebben
op de beveiliging van &os; en het uitgeven van beveiligingsadviezen.
De &os; Beveiligingsofficier
Richtlijnen geven een gedetailleerdere beschrijving van de plichten
en verantwoordelijkheden van de Beveiligingsofficier.
Verkopersrelaties is verantwoordelijk voor het afhandelen van
e-mail van hardware- en software-verkopers. E-mail die naar
Verkopersrelaties wordt gestuurd, wordt doorgestuurd naar het
&os; Kernteam in aanvulling op de &os; Foundation.
De &os; Core Team Secretaris is een niet-stemmend lid van het Core Team,
verantwoordelijk voor het documenteren van het werk dat door core gedaan
wordt, het bijhouden van de agenda van core, het directe contact met
niet-core leden die mail naar core sturen en het zijn van een tussenpersoon
voor het adminteam voor het goedkeuren van committers en accounts. De
Core Team Secretaris is ook verantwoordelijk voor het schrijven en versturen
van de maandelijkse statusrapporten naar de ontwikkelaarsgemeenschap van
&os;, die een samenvatting bevatten van de meest recente beslissingen en
acties van core.
De &os; Portbeheerteam-secretaris is een niet-stemmend lid van het
Portbeheerteam, verantwoordelijk voor het documenteren van het werk dat
door portmgr gedaan wordt, het bijhouden van stemprocedures, en het zijn
van een tussenpersoon naar de andere teams, in het bijzonder de admin en
Core Teams. De Portbeheerteam-secretaris is ook verantwoordelijk voor het
schrijven en versturen van maandelijkse statusrapporten naar de
ontwikkelaarsgemeenschap van &os;, die een samenvatting van de meest
recente beslissingen en acties van portmgr bevatten.
De &os; Beveiligingsteam-secretaris zorgt ervoor dat iemand antwoord op
binnenkomende emails gericht aan het Beveiligingsteam. Hij zal ontvangst
bevestigen en de voortgang binnen het Beveiligingsteam bijhouden. Indien
nodig zal de Secretaris contact opnemen met leden van het Beveiligingsteam
om hen een update te bieden over lopende zaken. Momenteel behandelt de
Beveiligingsteam-secretaris geen zaken van het Beveiligingsofficierteam.
Het Accountsteam is verantwoordelijk voor het aanmaken van accounts voor
nieuwe committers binnen het project. Op verzoeken voor nieuwe accounts
zal niet worden gereageerd zonder de passende toestemming van de juiste
entiteit.
De Bugmeisters en GNATS Beheerders zijn zorgen ervoor dat er met de
beheer-database gewerkt kan worden, dat de aanmeldingen juist zijn
gecategoriseerd en dat er geen ongeldige aanmeldingen zijn. Ze zijn ook
verantwoordelijk voor de probleemrapportagegroep.
De Clusterbeheerders zijn de mensen die verantwoordelijk zijn voor het
beheren van de machines waarvan het project afhankelijk is voor het
gesynchroniseerd zijn van haar gedistribueerde werk en communicatie. Het
zijn vooral de mensen die fysieke toegang tot de servers hebben. Zaken
aangaande de infrastructuur van het project of het installeren van nieuwe
machines dienen aan de clusterbeheerders te worden gericht.
De CVS ports Reservoir Beheerders mogen direct het reservoir wijzigen
zonder het CVS-gereedschap te gebruiken. Het is hun verantwoordelijkheid
om technische problemen die in het reservoir opduiken snel op te lossen.
De CVS ports Reservoir Beheerders hebben de machtiging om commits
ongedaan te maken als dit nodig is om een technisch probleem met CVS op te
lossen. Verzoeken voor repo-kopiën dienen aan de Reservoir Beheerders
gericht te worden.
De CVS src Reservoir Beheerders mogen direct het reservoir wijzigen
zonder het CVS-gereedschap te gebruiken. Het is hun verantwoordelijkheid
om technische problemen die in het reservoir opduiken snel op te lossen.
De CVS src Reservoir Beheerders hebben de machtiging om commits
ongedaan te maken als dit nodig is om een technisch probleem met CVS op te
lossen. Verzoeken voor repo-kopiën dienen aan de Reservoir Beheerders
gericht te worden.
De CVSup Mirror Site Coördinatoren werken samen met alle beheerders
van de CVSup Mirror Sites om ervoor te zorgen dat ze actuele versies van
de software distribueren en dat ze de capaciteit hebben om zichzelf bij te
werken wanneer er grote updates gaande zijn, en om het gemakkelijk te maken
voor het grote publiek om hun dichtstbijzijnde CVSup-spiegel te vinden.
De FTP/WWW Mirror Site Coördinatoren werken samen met alle beheerders
van de FTP/WWW Mirror Sites om ervoor te zorgen dat ze actuele versies van
de software distribueren en dat ze de capaciteit hebben om zichzelf bij te
werken wanneer er grote updates gaande zijn, en om het gemakkelijk te maken
voor het grote publiek om hun dichtstbijzijnde FTP/WWW-spiegel te
vinden.
De Perforce Reservoir Beheerders zijn verantwoordelijk voor het beheer van
het &os; Perforce broncodereservoir en voor het aanmaken van nieuwe
perforce-accounts. Alle verzoeken aangaande nieuwe perforce-accounts voor
niet-committers dienen aan de perforce-beheerders gericht te worden.
Het Postmeesterteam is ervoor verantwoordelijk dat mail correct wordt
afgeleverd aan het emailadres van de committer, te zorgen dat de
mailinglijsten werken, en ze dienen maatregelen te nemen tegen mogelijke
verstoringen van de maildiensten van het project, zoals het hebben van
trol-, spam- en virusfilters.
Het Webmasterteam van &os; is verantwoordelijk voor het in de lucht houden
van de hoofdwebsites van &os;. Dit omvat webserverconfiguratie,
CGI-scripts, zoeken in volledige teksten en mailinglijsten. Alle technische
dingen die met het web te maken hebben vallen binnen het gebied van het
Webmasterteam, behalve fouten in de documentatie.
Deze pagina bevat verschillende &os; illustraties.
Suggesties voor toevoegingen kunnen gemaild worden aan www@FreeBSD.org. Neem notitie
van het gebruiksbeleid voor deze illustraties.
De bovenstaande Powered by &os; logo's kunnen gedownload worden en mogen
worden weergegeven op persoonlijke en zakelijke webpagina's die
worden geserveerd door &os; machines. Voor het gebruik van
dit logo of de verschijning van de BSD Daemons met winstoogmerk
is toestemming nodig van Brian
Tao (maker van het power logo) en Marshall Kirk McKusick
(houder van het copyright voor de afbeelding van de BSD
Daemon).
&a.phk;'s afbeelding van de BSD Daemon is uitgebracht onder THE
BEER-WARE LICENSE. Zie de README
+ href="http://svnweb.freebsd.org/base/head/share/examples/BSD_daemon/README?view=markup">README
voor meer informatie.
&os;® is een geavanceerd
besturingssystem voor moderne platforms
voor servers, desktop, en embedded computers.
De broncode van &os; heeft meer dan dertig
jaar van continue ontwikkeling, verbetering en
optimalisatie doorgemaakt. Het wordt
ontwikkeld en onderhouden door een groot
team van individuen. &os; biedt
geavanceerd netwerken, indrukwekkende
beveiligingsmogelijkheden en topprestaties en
wordt door sommige van 's werelds drukste
websites en de meest voorkomende
embedded netwerk- en opslagapparaten
gebruikt.
Op zondag 11 september is
+ er een inbraak gedetecteerd op twee machines
+ binnen het FreeBSD.org-cluster. We hebben
+ geen bewijs gevonden van wijzigingen die een
+ risico vormen voor eindgebruikers. Lees
+ alstublieft het
+ verslag voor meer details.
Gedetailleerde beschrijvingen van uitgaven uit het verleden,
heden en de toekomst. Kijk eerst hier om te bepalen wat de meest
recente versie van &os; is.
Er zijn vele opties voor het installeren van &os;, waaronder
installatie van CD-ROM, DVD, floppy disk, een MS-DOS®
partitie, magnetische tape, anonieme FTP en NFS. Lees de
installatiegids
alvorens de hele &os;-distributie te downloaden.
Als u &os; via FTP of HTTP wilt downloaden, bekijk dan de lijst met spiegelsites
- in het handboek om te zien of er een site is die dichterbij u is. Als
- alternatief kunt u &os; via het BitTorrent-protocol downloaden. De
- .torrent-bestanden kunnen van de &os; BitTorrent Tracker
- gedownload worden.
+ in het handboek om te zien of er een site is die dichterbij u is.
Opmerking: Bij twijfel over welk platform of welke
architectuur te gebruiken, is waarschijnlijk i386 van
toepassing voor oudere computers en amd64 van toepassing voor
nieuwere computers.
&beta.desc;
Als u geïnteresseerd bent in een volledig experimentele
snapshot uitgave van &os;-CURRENT (alias
&rel.head;-CURRENT), alleen gericht op ontwikkelaars en testers
met een sterk hart, kijk dan op de pagina &os; Snapshot-uitgaven. Kijk voor
meer informatie over vroegere, huidige en toekomstige uitgaven in
het algemeen op de uitgave-informatiepagina.
Distributies van &os;-afgeleide besturingssystemen
&os; wordt wijdverbreid gebruikt als een bouwsteen voor andere
commerciële en open-source besturingssystemen. De onderstaande
projecten worden wijdverbreid gebruikt en zijn van bijzondere
interesse voor &os;-gebruikers.
FreeNAS is een open-source
platform gebaseerd op &os; en ondersteunt het delen tussen Windows,
Apple, en UNIX-achtige systemen.
PC-BSD is een afgeleide
van &os; met een grafische installer en indrukwekkende
programma's voor het bureaublad en is gericht op het gebruiksgemak
voor de gewone computergebruiker.
pfSense is een gratis,
open-source distributie van &os; aangepast voor gebruik als een firewall
en router.
Applicaties en hulpsoftware
De Portscollectie
De &os; Portscollectie is een diverse collectie met
hulpprogramma's en applicaties die zijn geport naar &os;.