FreeBSD, een ander alternatief

ArticleCategory:

System Administration

AuthorImage:

[Georges Tarbouriech]

TranslationInfo:[Author and translation history]

original in en Georges Tarbouriech

en to nl Guus Snijders

AboutTheAuthor

Georges is een lange-tijd Unix gebruiker. Hij is erg begaan met de vrije versies van dit fantastisch systeem.

Abstract:

Ja, je leest LinuxFocus! Er bestaan echter ook andere vrije Unixen en deze zijn zeer interresant en zitten vol mogelijkheden. Dit artikel geeft een overzicht van een andere vrije Unix: FreeBSD.

ArticleIllustration:

FreeBSD

ArticleBody:[The article body]

Waarom FreeBSD ?

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:

  1. NetBSD draait op ieder platform ter wereld (of bijna ieder platform), inclusief zeer oude computers: laten we zeggen iets van 30 of 40 verschillende platformen. NetBSD levert het bewijs van wat eerder genoemd was: Unix geeft niks om processoren. Het is de juiste keus als je een mooi "oud geval" thuis of op het werk staan hebt (maar niet alleen dan, uiteraard!) Ikzelf heb het een paar jaar gebruikt op Amiga en Intel machines en heb er veel plezier mee gehad.
  2. OpenBSD staat bekend als de meest veilige Unix. Het is ideaal voor servers, en, natuurlijk draait het ook op meerdere processoren. Het is waarschijnlijk een van de meest gebruikte systemen voor servers op Internet. Het is niet erg waarschijnlijk om het ergens thuis aan te treffen, iedereen doet echter wat hij/zij wil...
  3. FreeBSD is een "mix" van de twee bovenstaande. Het is speciaal gewijd aan Intel en Alpha processoren en "erft" een deel van de beveiligingsfilosofie van OpenBSD. Net als Linux, heeft het feit dat het draait op Intel processoren er toe bijgedragen dat het een van de meest verspreide BSD's is. Het is een goede keus voor de thuisgebruiker. Dit betekent echter niet dat het op het werk niet gebruikt kan worden!
Er is nog iets anders met betrekking tot FreeBSD: deze mensen "delen" hun werk met Apple voor het vrije software deel van Mac OS X. En, daar ik erg gek ben op OS X... Trouwens, raak niet verward: zelfs al is OS X gebaseerd op BSD, de kernel heeft niks van doen met die van FreeBSD. Het is een Mac kernel, reeds gebruikt voor NeXTstep, "vader" van OS X: sinds de geboorte van NeXTstep, rond eind jaren 80, is deze kernel vanzelfsprekend, verder geëvolueerd.
Nu we kennis hebben gemaakt... laten we iets dieper gaan.

FreeBSD vinden en installeren

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.

FreeBSD configureren

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.

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.

FreeBSD upgraden

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.

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

Applicaties

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.

Hardware

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.

Beveiliging

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.

Communicatie

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

Documentatie

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.

En toen?

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!