System Administration
original in en Georges Tarbouriech
en to nl Guus Snijders
Georges is een lange-tijd Unix gebruiker. Hij is erg begaan met de vrije versies van dit fantastisch systeem.
Zodra er gesproken wordt over vrije Unixen denkt men in het algemeen aan
Linux. Zeker, Linux is wijdverspreid en iedereen (of bijna iedereen) heeft
er van gehoord. Het aantal nieuwe gebruikers blijft groeien en de media (al
dan niet "gespecialiseerd") maken er veel "herrie" over. Een van de belangrijkste
redenen hiervoor is dat Linux vooral draait op Intel machines, welke de meest
verspreide computerarchitectuur vormt. Het draait natuurlijk ook op vele andere
processoren, daar een van de ideëen achter Unix was "we geven niet om
processoren". Desalniettemin zou Linux waarschijnlijk niet zo succesvol zijn
geworden als het was ontwikkeld voor een meer "betrouwbare" processor, of
het zou op z'n minst veel langer hebben geduurd.
Maar vrij Unix is niet beperkt tot Linux: de BSD "familie" is er ook nog.
Er zijn drie belangrijke smaken: FreeBSD, NetBSD en OpenBSD. BSD staat voor
Berkeley Software Distribution. Voor meer informatie over de geschiedenis
van Unix, lees artikel 176
(Merk op dat in dit artikel niet wordt gesproken over de verschillen tussen
BSD en System V: daar zou een boek voor nodig zijn.)
Iedere smaak heeft zijn eigen specificaties:
Net als de meeste vrije software kan FreeBSD gedownload worden vanaf de
FreeBSD website. Dit vereist natuurlijk wel een snelle verbinding. Geen zorgen:
CD's kun je overal ter wereld aantreffen.
De huidige release (op moment van schrijven) is 4.6. Het artikel gaat over
de i386 release.
Het installeren van FreeBSD vanaf CD-ROM (of anders) is simpel... zelfs al
is er geen grafische interface om dit te doen! In plaats daarvan wordt er
gebruik gemaakt van ncurses. Volg gewoon de instructies en FreeBSD komt terecht
op je harde schijf. Zoals gebruikelijk zul je je harddisk moeten partitioneren,
een paar dingen configureren zoals netwerken of zelfs je kernel (optioneel).
Daarna zul je kennismaken met sysinstall, een zeer goede tool welke, zoals
de naam al aangeeft, het grootste deel van de installatie op zich neemt.
Of je de hele zooi pakketten installeert, of slechts enkele, is jouw keus.
Je kunt ze altijd nog toevoegen.
Het onderhoud van pakketten is ook voor de hand liggend. Je kunt pkg commando's
gebruiken zoals onder Solaris, bijvoorbeeld, of je kunt de voorkeur geven
aan de ports. In het kort, de pkg commando's zijn vergelijkbaar met rpm's
of deb's voor Linux, terwijl de ports archieven zijn om gecompileerd te worden
met make en make install. Met andere woorden: niets complex of moeilijks.
Daar we een vergelijking maken met Linux, is het ook het vermelden waard
dat er een Linux Compatibility pakket is welke je zou moeten installeren:
het staat je toe om Linux applicaties te compileren en uit te voeren.
Wederom, alles is voor de hand liggend en, voor het geval dat, er is een
zeer goed handboek beschikbaar, waarbij iedere stap wordt uitgelegd. Deze
laatste is overigens in meerder talen beschikbaar.
Oftewel, er is geen reden om hieraan veel tijd te verspillen.
Nogmaals, we kunnen niet alles vermelden. Het belangrijkste is om te weten
waar de essentiële bestanden zijn. Zoals gebruikelijk zijn deze te vinden
in de /etc directory. Ze zijn genaamd rc.iets en behelzen veel verschillende
delen: algemene configuratie, firewall, netwerk, sysctl, enz.
Het bestand rc.conf is belangrijk, omdat, de naam zegt het al, de configuratie
hier aangepast kan worden. In dit bestand kun je het systeem vertellen welke
daemons wel of niet te starten (sshd, sendmail, enz), het soort firewall,
of je de kernel secure mode wilt activeren of niet, of je IPv6 wilt activeren
of niet, enz. Er zijn veel opties en ze worden alle vermeld in het defaultsbestand
dat heel verrassend de naam /etc/defaults/rc.conf draagt. Voor alle duidelijkheid:
dit bestand bevat de default instellingen, niet voorbeelden. Dat wil zeggen,
/etc/rc.conf overheerst deze standaardinstellingen. Met andere woorden, kopiëer
niet het /etc/defaults/rc.conf bestand naar /etc/rc.conf en probeer het ook
niet te veranderen. Aanpassingen worden gedaan in /etc/rc.conf.
Ter informatie, de keuzes gemaakt met sysinstall worden automatisch
opgenomen in /etc/rc.conf (netwerkkaartconfiguratie, hostname, secure level,
enz).
Een heel belangrijke opmerking: FreeBSD komt met geen actieve services
in /etc/inetd.conf. Dit betekent dat, bij de eerste start, de daemons die
onder controle staan van inetd standaard uit staan. Naar mijn (nederige)
mening zou dit standaard moeten zijn voor ieder Unix systeem. Goed punt,
echter! De ander rc bestanden staan je toe de firewall in te stellen, sysctl,
en vele anderen. Dit, natuurlijk, brengt ons tot FreeBSD tuning.
Een van de beste tools voor het tunen draagt de naam sysctl (onder Linux
ook!). Je kunt het gebruiken vanaf de prompt om een specifieke waarde aan
te geven of om een sysctl.conf bestand (aan te raden tenzij je de prompt
gebruikt voor test doeleinden) aan te maken.
Stel, je machine wordt gebruikt als gateway, dan kun je met sysctl ip forwarding
activeren met het commando sysctl -w net.inet.ip.forwarding=1. Voor
betere beveiliging kun je laten checken dat pakketten die binnenkomen op
deze interface het ip nummer voor deze interface bevatten met sysctl
-w net.inet.ip.check_interface=1. Je kunt het grootste gedeelte van
het gedrag van je systeem instellen met sysctl: lees de man pagina. Waarschijnlijk
zul je deze in een sysctl.conf bestand willen opslaan, en de argumenten toevoegen
zonder het sysctl commando zelf. Het bestand gebruikt het variabele =
waarde formaat. Bovenstaande voorbeelden worden dan:
net.inet.ip.forwarding=1
net.inet.ip.check_interface=1
Vanzelfsprekend zal je eigen sysctl bestand meer dan deze 2 regels bevatten,
daar je alles op kernel niveau kunt regelen, of in ieder geval, bijna alles!
In het begin van dit artikel werden de secure levels genoemd. Er zijn er vier,
van -1 tot 3. -1 is het onveiligste level en3
is het hoogste veiligheidsniveau. Het is aan te raden eerst te begrijpen
wat ieder level doet alvorens er een te selecteren. Het gebruik van andere
levels dan -1 of 0 kan leiden tot een systeem dat niet werkt zoals je zou
verwachten. Het eerste nadeel duikt op bij level 1, welke juist gebruik van
de X server kan tegengaan. Ook kun je geen kernel modules laden of juist verwijderen.
Je bent gewaarschuwd!
Deze hoge beveiligingslevels kunnen echter van pas komen voor een specifieke
server die een strakke beveiliging vereist. Als thuisgebruiker zou je het
bij level 0 moeten houden, maar dat is aan jou...
Het chflags commando is gerelateerd aan secure levels. Bestudeer
dit commando door de man pagina door te lezen: het is erg krachtig.
Hierover verder doorgaan zou een "FreeBSD beveiligen" artikel opleveren, laten
we dus doorgaan naar het volgende hoofdstuk.
Laten we aannemen dat je juist een FreeBSD 4.5 CD set hebt aangeschaft.
Een paar dagen later verschijnt FreeBSD 4.6. Pech!
Geen zorgen: FreeBSD heeft een upgrade systeem via CVS. Je kunt zowel anonymous
CVS als CVSup gebruiken. De eerste is eenvoudiger te gebruiken terwijl de
tweede efficiënter is. Met deze tools bestaat de job uit het verkrijgen
van een nieuwe source tree en synchronisatie.
Vervolgens is het tijd om het nieuwe spul te compileren met een make buildwork.
Hoe dit in z'n werk gaat is duidelijk uitgelegd in het bijgeleverde handboek.
Het belangrijke punt is dat dit je in staat stelt om je fonkelnieuwe systeem
altijd up-to-date te houden.
Dit is echter nog niet alles. Zoals altijd, wat vrije software betreft, wanneer
zwakke plekken gevonden worden, worden die snel gedicht. In tegenstelling
tot vele gesloten systemen waar een zwakke plek voor altijd (en een dag)
onopgelost kan blijven, reageren de mensen die betrokken zijn bij vrije software
met de snelheid van het licht en leveren patches. Het moge duidelijk zijn
dat het jouw taak is om op de hoogte te blijven van wat er gebeurt. De FreeBSD
website heeft een beveiligingssectie met aanraders per release. Hier kun
je .asc bestanden (tekst bestanden) downloaden welke je vertellen wat je
moet weten: een beschrijving van het probleem en de oplossing. Ook op andere
websites is deze informatie te vinden, zoals linuxsecurity, CERT, enz.
Dit houdt natuurlijk in dat je je systeem moet updaten.
Je wilt waarschijnlijk geen welbekende zwakke plekken in je systeem, of
wel? FreeBSD, net als andere vrije Unixen, biedt je patches aan. Haal deze
patches op en pas ze toe. Voor Linux gebruikers, betreft het belangrijkste
verschil het feit dat je geen gecorrigeerd pakket krijgt maar een bron patch.
Dit betekent, dat je je kernel opnieuw moet compileren na het toepassen van
de patch, ervan uitgaande, natuurlijk, dat je de broncode hebt geïnstalleerd
op je machine. Dit geldt ook voor Linux, maar mensen downloaden vaak de gemodificeerde
RPM (bijvoorbeeld), in ieder geval voor gecorrigeerde applicaties, maar ook
voor een gepatchte kernel.
Een van de belangrijkste verschillen tussen Linux en FreeBSD zit in de kernel.
FreeBSD is gebaseerd op BSD 4.4 en kent geen meerdere kernel versies zoals
de Linux wereld. Dit betekend dat de kernel stabiel is maar ook met de tijd
groeit, en nogal monolitisch is, al kan het profiteren van modules. Aan de
andere kant betekent dit ook dat je de kernel meer zult moeten hercompileren
dan onder Linux het geval is, als je je systeem zo veilig mogelijk wilt houden.
Hoe dan ook, ik geef de voorkeur aan deze filosofie boven die van Linux,
maar dat is slechts mijn mening. Ik denk niet dat, laten we zeggen, 3 verschillende
kernels "op het werk" kunnen leiden tot stabiliteit. Om nog maar niet te
spreken over de applicaties die "geporteerd" moeten worden van de ene versie
naar de andere, vooral degene die gericht zijn op beveiliging. Een ander
voorbeeld zou het packet filtering systeem kunnen zijn: 3 kernel versies,
3 verschillende packet filters! En zo verder.
Ik heb zeer veel respect voor de mensen die dit geweldige werk doen, maar
is het de juiste manier? Verbetering is altijd nodig maar is het coherent
met de hele tijd veranderen? Geen zorgen!
Het ligt natuurlijk voor de hand dat je ook een nieuwe kernel kunt compileren
om het aan jouw eisen te laten voldoen... en in dit geval is het net als
onder Linux. De manier om dit te doen staat goed gedetailleerd in het handboek,
dus laten we doorgaan met iets anders.
Zoals gezegd werken veel van de vrije software applicaties (zo niet alle)
onder FreeBSD. De eerdergenoemde ports of packages zijn niet verplicht. Het
grootste deel van de beschikbare archieven kun je compileren, om wat voor
soort software het ook gaat.
Voor de desktop omgeving verslaafden, Gnome en KDE zijn beschikbaar... en
zijn onderdeel van de distributie. Hetzelfde geldt voor window managers.
Het prachtige GNUstep framework werkt ook goed onder FreeBSD. Om het te compileren
moet je een nieuwere gcc versie gebruiken dan die is meegeleverd: geen probleem!
Download het juiste archief en compileer de nieuwe compiler. Uiteraard, de
GNUStep applicaties zoals GNUMail.app, Gorm.app of ProjectBuilder.app werken
ook goed.
Werkelijk, alle software die je gebruikt onder Linux is beschikbaar voor FreeBSD...
en er zijn nog vele anderen!
Bijvoorbeeld, FreeBSD komt met een hele zwik tools die betrekking hebben
op beveiliging. Monitoring tools, managing tools, enz, zijn onderdeel van
de distro.
Firewalls, proxies, poort scanners, IDS, enz, zijn ook beschikbaar. Zo kun
je kiezen tussen IPsec en ipfw. Je kunt gebruik maken van nessus, nmap, portsentry,
enz. Ook hier geldt dat de meeste deel uitmaken van de distributie en niets
houdt je tegen om de laatste versies op te halen en te compileren.
We hebben het reeds gehad over desktop omgevingen en window managers maar
we hebben het nog niet gehad over wat ze nodig hebben om te kunnen draaien:
het X Window System. XFree 4.* is nu de standaard. Ter informatie, tot FreeBSD
4.5 was XFree3.* de standaard. Dat is, XFree 4.* zat in de distributie maar
de installer koos XFree 3.*. Nu is XFree 4.* de standaard, maar je kunt nog
steeds versie 3.* gebruiken als je daar de voorkeur aan geeft.
Daar we praten over de i386 release, kunnen we zeggen dat de meeste beschikbare
hardware werkt onder FreeBSD, zelfs als het een beetje oud is. Om een voorbeeld
te noemen, een oude 3Com combo netwerk kaart zal goed werken zodra het media
type in het ifconfig commando wordt definiëert. Als je een BNC connectie
gebruikt, is het voldoende om media 10base2/BNC aan het einde van
de ifconfig regel in /etc/rc.conf toe te voegen.
Hetzelfde geldt voor sommige oude grafische kaarten: XFree 4.* zal de meeste
problemen wel oplossen. Dit geldt in het bijzonder voor oude ATI kaarten.
Hoe dan ook, voor alle zekerheid kun je de Hardware notes op de FreeBSD website
er op naslaan.
We hebben reeds een paar tools zoals firewalls, poortscanners, enz, genoemd.
FreeBSD komt met vele andere beveiligingstools. OpenSSH, OpenSSL, Kerberos,
MD5, enz, zijn deel van de distributie. Zoals gebruikelijk kun je niet leven
zonder deze tools, en uiteraard, nogmaals, moet je controleren op eventuele
zwakke plekken.
Een recent voorbeeld laat het belang van voorzichtig zijn zien. Stel dat
je hoort dat er een zwakke plek is ontdekt in OpenSSH. De juiste reactie zou
zijn om naar de thuis website te gaan en de gecorrigeerde versie op te halen.
Ja, maar dit is niet voldoende! Controleer vooral de checksum van het pakket.
Het voorbeeld van OpenSSH is niet zomaar gebruikt: een paar weken geleden,
had iemand het originele archief vervangen door een corrupte. Zoals gebruikelijk
reageerden de mensen van OpenSSH heel snel. Echter, gebruikers die het pakket
in deze korte periode hadden gedownload, en geïnstalleerd zonder de
checksum te controleren, hadden een "slechte" versie geïnstalleerd. Hier
ziet u het belang van het gebruik van de checksum... en de noodzaak van het
controleren.
Zelfs al valt het buiten het bereik van dit artikel, laat ons hameren op
het punt dat beveiliging voor alles een gedrag is.
Netwerken onder FreeBSD zijn nogal geëvolueerd. De IPv6 implementatie
is zeer goed gedaan. De nieuwe betekenissen van communicatie zijn niet links
blijven liggen. Als je gebruik maakt van ADSL of kabelmodems is de configuratie
erg eenvoudig.
Vandaag de dag maken veel providers gebruik van PPPoE. FreeBSD lost dit heel
simpel op: een paar regels in het ppp.conf bestand volstaan. Voor PPPoA (ATM),
wordt momenteel alleen de Alcatel modem ondersteund. Dit zou moeten veranderen
in de nabije toekomst (waarschijnlijk zijn er reeds andere ondersteunde modems).
Het geleverde handboek is niet de enige beschikbare documentatie. Er zijn ook FAQ's, installatiehandleidingen, enz, te vinden op de FreeBSD website. Een andere belangrijke bron van informatie kan gevonden worden op http://www.freebsd-howto.com.
Dit is een zeer kort overzicht van FreeBSD. Dit systeem, net als de andere
vrije Unixen is zeer interessant. Het heeft vele goede features en is zeker
een poging waard. Helaas kan dit artikel geen volledige bespreking zijn en
veel andere belangrijke features zijn nog niet eens aangehaald.
FreeBSD vereist wat meer Unix kennis dan sommige "Windows-achtige" Linux distro's,
maar het blijft relatief eenvoudig te gebruiken.
Natuurlijk zou iemand zonder enige kennis van Unix tegen problemen op kunnen
lopen, vooral omdat het nogal eens voorkomt dat de kernel opnieuw gecompileerd
moet worden na een update van het systeem. Het is echter een goede manier
om het te leren, ook al kan het "enige" tijd kosten. De meeste mensen vandaag
de dag lijken te zijn vergeten dat, in het begin, Unix was gemaakt voor en
door ontwikkelaars, niet voor de thuisgebruiker of de gewone gebruiker.
Gelukkig hebben vrije en gesloten Unixen de oorspronkelijke aanpak gewijzigd.
Met dank aan de vele ontwikkelaars die dit mogelijk hebben gemaakt. In de
jaren 80 zouden de meeste Linuxgebruikers van vandaag zijn weggerend van Unix,
alleen al vanwege het installatieproces. De distributies werden geleverd
op tapes en de installatiefase kon op zijn minst een volledige werkdag in
beslag nemen en de configuratie nog een dag. Om nog maar niet te spreken
over de configuratie van applicaties! En vandaag de dag, kun je Unix gebruiken
zonder het zelfs maar te weten, met systemen als Mac OS X. Dit geldt reeds
sinds begin jaren 90 met het begin van de "vader" van OS X, NeXTstep.
Dit kan off-topic lijken, maar desalniettemin leidde NeXTstep de weg voor
vrije en gesloten Unixen... plus nog een paar andere! Unix bij de thuisgebruiker
brengen was een uitdaging, en, uiteindelijk gebeurde het. Hulde aan alle
mensen die betrokken waren bij deze uitdaging of ze er nu geld voor ontvingen
of niet. Degenen die voor niets werkten verdienen een speciale vermelding
en vele dankbetuigingen ;-)
Het feit dat FreeBSD "deelt" met Apple ziet er volgens mij goed uit. Iedereen
heeft voordeel bij de ander op de juiste manier. Gesloten systemen hebben
altijd vrije software gebruikt... zonder dit al te luid te "roepen". Apple
komt er openlijk voor uit dat ze vrije software zullen gebruiken, net als
SGI. Sommige anderen lijken hetzelfde te doen.. alleen dan heimelijk. Hoe
dan ook, ik denk dat er "ruimte" is voor allen, behalve voor diegenen die
de hele "ruimte" willen hebben.
De "herrie" over Linux houdt de andere vrije Unixen in het donker: so far,
so good. Hier kan ook een goede kant aan zitten... en dit is de belangrijkste
reden waarom ik FreeBSD gebruik. Natuurlijk blijf ik Linux (en vele anderen)
gebruiken: Ik hou van afwisseling!
Als je er over denkt FreeBSD een keer te proberen, dan zal dit artikel niet
onbruikbaar blijken. Test het voor jezelf en je zult veel dingen ontdekken
die hier verder niet genoemd zijn.
Ik zei het reeds: we leven in een fantastische tijd!