FreeBSD – The Power To Serve

Transcription

FreeBSD – The Power To Serve
Universitätsrechenzentrum
Sebastian Benner
AB Virtuelle Uni-Systeme
FreeBSD – The Power To Serve
Eine kurze Einführung in das UNIX-Derivat für x86- und
Alpha-Prozessoren
B/005/0208
© FernUniversität, August 2002
Impressum
Autor:
Sebastian Benner
E-Mail: [email protected]
Universitätsrechenzentrum
Arbeitsbereich Virtuelle Uni-Systeme
FernUniversität Hagen
Universitätsstr. 21
Telefon: +49 2331 987-4027
D - 58084 Hagen
Allgemeines:
Alle in der Broschüre genannten Markennamen sind in der Regel eingetragene
Warenzeichen der entsprechenden Hersteller und Organisationen.
Texte können der Broschüre zur Verwendung für nicht-kommerzielle Zwecke
unter Nennung des Autors und Copyright-Inhabers entnommen werden. Dies
gilt auch für alle Grafiken und Fotos, solange kein anderes Copyright vorliegt.
Download der Broschüre im PDF-Format:
ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0050208.pdf
Neuere Versionen der Broschüre finden sich unter der URL:
http://www.fernuni-hagen.de/URZ/urzbib/
Mitarbeiter und Studierende der FernUniversität können darüber hinaus die
Broschüre in gedruckter Form über den Dispatch – [email protected] – des Universitätsrechenzentrums beziehen.
c
Titelbild: BSD Daemon, 1988
Marshall Kirk McKusick
Inhaltsverzeichnis
1 Einleitung
7
2 Historie
9
2.1
Wie alles anfing – 1965 . . . . . . . . . . . . . . . . .
2.2
Die Berkeley Software Distribution – 1973 . . . . . . 10
2.3
Gründung des FreeBSD-Projekts – 1993 . . . . . . . 10
2.4
Der Rechtsstreit – 1992 - 1994 . . . . . . . . . . . . . 10
2.5
FreeBSD und Apple – 1999 . . . . . . . . . . . . . . 11
3 Installation
9
13
3.1
Allgemeines . . . . . . . . . . . . . . . . . . . . . . . 13
3.2
Sysinstall . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3
Hardwareunterstützung . . . . . . . . . . . . . . . . 14
3.4
FreeBSD parallel zu Windows . . . . . . . . . . . . . 14
3.5
Pakete, Ports-Collection und Installationsmedien . . 15
3.6
make buildworld und make installworld . . . . . . . 17
3.7
Quellen laden – CVS . . . . . . . . . . . . . . . . . . 18
3.8
CURRENT, STABLE und RELEASE . . . . . . . . 18
4 Administration
21
4.1
Allgemeines . . . . . . . . . . . . . . . . . . . . . . . 21
4.2
Leistungsoptimierung . . . . . . . . . . . . . . . . . . 21
4.3
Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . 22
4.4
4.3.1
SSH, VPNs und Periodic . . . . . . . . . . . 22
4.3.2
Script-Kiddies stoppen . . . . . . . . . . . . . 23
4.3.3
Dateisystemerweiterungen anwenden . . . . . 25
Virtuelle Server – Die Jail()-Funktion . . . . . . . . 26
4.4.1
Allgemeines . . . . . . . . . . . . . . . . . . . 26
4.4.2
Jails im Einsatz bei Webhostern . . . . . . . 27
3
4
Inhaltsverzeichnis
4.4.3
Jails zur Server-Konsolidierung . . . . . . . . 27
4.4.4
Jails am URZ – Aufbau einer Schulungsumgebung . . . . . . . . . . . . . . . . . . . . . 27
5 Verfügbare Software
29
5.1
FreeBSD auf dem Desktop . . . . . . . . . . . . . . . 29
5.2
Kompatibel zu GNU/Linux . . . . . . . . . . . . . . 30
6 Die Zukunft FreeBSDs
33
7 Fazit
35
8 Weiterführende Links und Quellen
37
8.1
Verfügbarkeit . . . . . . . . . . . . . . . . . . . . . . 37
8.2
Projekt . . . . . . . . . . . . . . . . . . . . . . . . . 37
8.3
Dokumentationen und Literatur . . . . . . . . . . . . 37
8.4
8.5
8.6
8.3.1
Bücher . . . . . . . . . . . . . . . . . . . . . . 37
8.3.2
Hardwareunterstützung . . . . . . . . . . . . 38
8.3.3
Installation und Upgrade des Systems . . . . 38
8.3.4
Sicherheit . . . . . . . . . . . . . . . . . . . . 38
8.3.5
Tuning . . . . . . . . . . . . . . . . . . . . . . 38
8.3.6
Jails . . . . . . . . . . . . . . . . . . . . . . . 38
Software und Support . . . . . . . . . . . . . . . . . 39
8.4.1
Merchandising . . . . . . . . . . . . . . . . . 39
8.4.2
Software . . . . . . . . . . . . . . . . . . . . . 39
8.4.3
Newsgruppen, Foren und Mailinglisten . . . . 39
8.4.4
Consulting . . . . . . . . . . . . . . . . . . . 40
8.4.5
Tipps, Tricks und Tutorials . . . . . . . . . . 40
Allgemeine Informationen . . . . . . . . . . . . . . . 40
8.5.1
Webhosting . . . . . . . . . . . . . . . . . . . 40
8.5.2
News . . . . . . . . . . . . . . . . . . . . . . . 41
8.5.3
Verschiedene Nutzer FreeBSDs . . . . . . . . 41
Unix, Linux und Open-Source . . . . . . . . . . . . . 42
8.6.1
UNIX-Derivate . . . . . . . . . . . . . . . . . 42
8.6.2
Linux-Distributionen . . . . . . . . . . . . . . 42
Inhaltsverzeichnis
5
8.6.3
Weitere Open-Source-Projekte . . . . . . . . 43
9 Danksagung
45
6
Inhaltsverzeichnis
1
Einleitung
Neben GNU/Linux hat sich in den letzten Jahren noch ein weiteres alternatives Betriebssystem aus dem Open-Source-Umfeld einen
größeren Marktanteil im Bereich der UNIX-Server sichern können
– FreeBSD. Obwohl weniger bekannt als Linux und ohne medienwirksamen Anführer“ wie Linus Torvalds1 , kommt das FreeBSD”
Projekt in letzter Zeit immer mehr in Schwung. Mehrere Millionen
Nutzer wie Internet Service Provider, Universitäten und UNIXFreunde am heimischen PC vertrauen inzwischen auf die hervorragende Performance und Stabilität dieses UNIX-Derivats.
Die folgende Broschüre soll Interessierten eine kurze Einführung in
das Betriebssystem mit dem Daemon als Maskottchen geben und
darüber hinaus auch einige Gründe dafür liefern, warum gerade
FreeBSD bei einer der größten Webseiten der Welt – Yahoo! –
Monat für Monat verantwortlich für die Auslieferung von über 1,6
Milliarden Webseiten an über 237 Millionen Besucher ist (Stand:
12/2001).
1
der Finne Linus Torvalds hat 1991 das Linux-Projekt ins Leben gerufen
7
8
1 Einleitung
2
2.1
Historie
Wie alles anfing – 1965
Selbst wer sich bisher nur recht beiläufig mit der Entstehungsgeschichte der verschiedenen UNIX-Derivate beschäftigt hat, wird
den evolutionären Ursprung der Entwicklung sicher in Amerika
ausgemacht haben können. – Auch FreeBSDs Wurzeln liegen in
den U.S.A.. Verschiedene Firmen beteiligten sich damals Mitte der
sechziger Jahre des vorherigen Jahrhunderts an der Entwicklung
eines neuartigen Betriebssystems namens MULTICS (Multiplexed
Information and Computing Service), welches vielen Benutzern
gleichzeitig Zugang zu einem Computersystem bieten sollte. Eine
der beteiligten Firmen – AT&T – zog sich Ende der sechziger Jahre
aufgrund der schleppenden Entwicklung aus dem Projekt zurück.
Abbildung 2.1: Dennis Ritchie (stehend) und Ken Thompson beginnen mit der Portierung von UNIX auf einen PDP-11 via zweier
Teletype 33 Terminals (Foto: Lucent Technologies)
Daraufhin entwickelten zwei Mitarbeiter der AT&T Bell Laboratories – Ken Thompson und Dennis Ritchie – ein an MULTICS
orientiertes und in der Programmiersprache Assembler geschriebenes, erheblich kleineres System für einen PDP-7-Rechner des Herstellers Digital Equipment, welches sie scherzhaft, in Anlehnung an
9
10
2 Historie
den Namen des Originals, UNIX1 nannten. UNIX wurde dann zunächst auf einen stärkeren Rechner – PDP-11 – portiert und kurze
Zeit später – 1973 – fast vollständig in C umgeschrieben und an
verschiedene Universitäten verteilt.
"...the number of UNIX installations has grown to 10,
with more expected..."
Dennis Ritchie und Ken Thompson, Juni 1972
Zu den Universitäten, die schon damals mit Unix in Berührung
kamen, gehörte auch die University of California, Berkeley. Deren
Computer Science Research Group (CSRG) bildete einen Zweig,
neben AT&T, der von nun an in verschiedene Richtungen strebenden UNIX-Entwicklung.
2.2
Die Berkeley Software Distribution – 1973
Die von der CSRG herausgegebenen UNIX-Distributionen wurden
als BSD-Unix (Berkeley Software Distribution) bezeichnet, deren
Version 4.4BSD-Lite seit 1994 frei verfügbar ist. Die Entwicklung
bei AT&T endete 1988 mit dem Erscheinen des UNIX System
V Release 4 (SVR4), in dem die wichtigsten Eigenschaften von
4.3BSD enthalten waren. Ein wenig später (1993) verkaufte AT&T
ihr UNIX-System an Novell und Novell zwei Jahre später an The
Santa Cruz Operation. Die SCO wurde dann zum Anfang des neuen Jahrtausends (2001) an den aktuellen Eigentümer des aus SVR4
hervorgegangenen SCO OpenServer-UNIX , den Linux-Distributor
Caldera, weiterverkauft.
2.3
Gründung des FreeBSD-Projekts – 1993
Das FreeBSD-Projekt selbst wurde 1993 gegründet. Grundlage von
FreeBSD bildeten 386BSD – einem direkten Nachfolger von 4.3BSD
NET/2 und Teile aus 4.4BSD Lite. Ziel des FreeBSD-Projektes
ist die Entwicklung eines freien UNIX-Systems mit den Schwerpunkten Benutzerfreundlichkeit, Performance und hohe Kompatibilität zu anderen Systemen. Etwa zur gleichen Zeit wurden weitere
Projekte als Abkömmlinge der Berkeley Software Distribution ins
Leben gerufen. Mit BSD/386 (BSDI, Februar 1992) entstand eine kommerzielle Variante BSDs, das NetBSD-Projekt (April 1993)
legt großen Wert auf Portabilität des Systems und OpenBSD (Oktober 1995) auf Sicherheit.
2.4
Der Rechtsstreit – 1992 - 1994
Die Entwicklung der UNIX-Derivate BSDI, FreeBSD und NetBSD
basierend auf der Berkeley Software Distribution wurde von einem
1
UNIX ist ein eingetragenes Warenzeichen von The Open Group in den Vereinigten Staaten und anderen Ländern.
2.5 FreeBSD und Apple – 1999
11
langem Rechtsstreit zwischen AT&T auf der einen Seite und Berkeley Software Design, Incorporated (BSDI) und der University of
California, Berkeley auf der anderen überschattet. BSDI begann
damals im Januar 1992 mit der Auslieferung einer besonders günstigen UNIX-Distribution zu 995 Dollar – ein Bruchteil dessen, was
ein Spin-Off AT&Ts – Unix System Laboratories (USL) – für ihr
UNIX basierend auf System V verlangte. Es kam, was kommen
musste: USL sah sich in Bedrängnis und verklagte kurzerhand BSDI unter anderem wegen Verletzung des Urheberrechts und Preisgabe von Geschäftsgeheimnissen. Kurz danach trat die University
of California, Berkeley ebenfalls in den Rechtsstreit ein. Der Grund
war eine Gegenklage der UCB, die der USL eine Verletzung des
BSD-Copyrights – Nicht-Nennung des Copyright Holders im BSDCode System Vs – zum Vorwurf machte. Nach langem Hin und Her
kam es dann endlich im Januar 1994 zu einer Einigung zwischen
den beiden Parteien. So mussten zum Beispiel einige Änderungen
an den 18.000 Quelldateien des Net/2 vorgenommen werden, die
im Juni 1994 letztendlich zum Erscheinen des freien UNIX-Systems
4.4BSD Lite führten. Dies hatte zur Folge, dass FreeBSD, NetBSD
und BSDI Teile Ihrer Code-Basis anpassen, das heißt von Net/2
auf 4.4BSD-Lite umstellen mussten.
2.5
FreeBSD und Apple – 1999
Im März 1999 erschien Darwin, welches sich aus einem MachKernel (Mach 3.0) und einem BSD (4.4 BSD-Lite2) zusammensetzte und die Grundlage für Apples kommerzielles Mac OS X bildete. In diesem Zusammenhang spielt auch FreeBSD eine größere
Rolle: Jordan Hubbard, lange Jahre Mitglied des FreeBSD CoreTeams, ehemaliger RELEASE-Engineer und einer der Mitgründer
des Projektes, arbeitet seit Juni 2001 für Apple – die aktuelle Version von Mac OS X basiert zu einem Teil auf FreeBSD 4.4-4.5. So ist
FreeBSD seit Mac OS X auch besonders stark im Desktop-Bereich
vertreten – Apples Verkaufszahlen zur Folge sogar mehr als dreimal
so stark wie GNU/Linux zurzeit2 . Darüber hinaus existieren heute
viele kommerzielle Unix-Derivate wie AIX, Compaq Tru64 UNIX,
HP/UX, IRIX, SCO UNIX, Solaris/SunOS und UNICOS. Hinzu
kommen Unix-ähnliche System wie zum Beispiel GNU/Linux.
Zum Abschluss dieses kurzen Rückblicks in die Vergangenheit von
UNIX, sollte noch festgehalten werden, dass sich in heutigen UNIXDerivaten Teile beider ursprünglichen Entwicklungsstränge wiederfinden, je nach System mal mehr SVR4 oder mal mehr 4.4BSD.
2
http://www.theregister.co.uk/content/4/24060.html
12
2 Historie
Abbildung 2.2: UNIX heute: Der komplette Stammbaum, welcher
zumindest die populärsten UNIX-Derivate berücksichtigt, kann von
Éric Lévénezs Webseite (http://www.levenez.com/unix/) in verschiedenen Formaten geladen werden.
3
3.1
Installation
Allgemeines
Trotz Ähnlichkeiten in Aufbau und Organisation der verschiedenen
UNIX-Derivate, unterscheiden sich die Systeme bei der Installation
doch gravierend. Jeder Hersteller kocht hier sein eigenes Süppchen.
So bieten Linux-Distributionen wie Mandrake und S.u.S.E. komfortable, grafische Installations-Routinen, die auch von WindowsUsern mit geringen Vorkenntnissen sicher gehandhabt werden können. Vergleichbare Tools zum Setup des Systems finden sich auch
bei anderen GNU/Linux-Distributionen, *BSDs und kommerziellen UNIX-Derivaten – je nach Produkt mal mehr oder weniger komfortabel, aber in der Regel leider immer inkompatibel zur Konkurrenz. FreeBSD geht bei der Installation einen Mittelweg zwischen
einer spartanischen, rein Text-basierenden Installation des Systems
und einer Windows-orientierten Installation mit viel Maus-Einsatz.
3.2
Sysinstall
Das Standard-Installationsprogramm FreeBSDs sysinstall verfügt über ein Menüsystem, das an grafische Oberflächen aus der
DOS-Zeit erinnert. Windows-verwöhnten Usern mag dies zunächst
Abbildung 3.1: Installation via Sysinstall: Einfache Grafik, aber
funktionell und durchdacht
wie ein Schritt zurück in die Steinzeit anmuten, ganz so schlimm
13
14
3 Installation
ist es bei näherem Hinsehen dann aber doch nicht: Jeder MenüPunkt ist gut erklärt und die Menüstruktur schlüssig und durchdacht. Eine Online-Hilfe ist nahezu jederzeit verfügbar und dank
des umfangreichen Handbuchs mitsamt F.A.Q.s, Mailinglisten auf
der Projekt-Seite und Newsgruppen sollten sich auch knifflige Fragen schnell beantworten lassen. Am besten hält man sich zur Installation das Online-Handbuch auf einem weiteren PC parat, druckt
es sich zuvor aus oder bestellt das Handbuch zum ansonsten ja
kostenlosen System dazu.
Die Installation kann nun wahlweise per bootbarer CD-ROM/DVD
oder mithilfe zweier Disketten1 gestartet werden. Zuvor sollte man
sich aber darüber im Klaren sein, welche Hardware-Komponenten
im System vorhanden sind. Wie nahezu jedes moderne Betriebssystem verfügt zwar auch FreeBSD inzwischen über eine automatische
Hardware-Erkennung, die erfahrungsgemäß auch sehr zuverlässig
arbeitet, aber auch in seltenen Fällen versagen kann. Da ist es hilfreich, wenn man sich ein wenig mit seiner Hardware auskennt, um
zum Beispiel weitere Treiber laden zu können.
3.3
Hardwareunterstützung
Mittlerweile wird ein breites Spektrum an Hardwarekomponenten unterstützt, so dass FreeBSD nicht nur auf Systemen älterer Bauart, sondern auch auf einem aktuellen Supermarkt-PC mit
USB-Schnittstellen, OnBoard-Sound- und Grafik-Karten, EIDERaid oder einem Server mit mehreren Prozessoren einschließlich
SCSI-Raid und Gigabit-Ethernet-Karte lauffähig ist. Dabei kann
das UNIX-Derivat nicht nur auf PCs mit x86-Prozessoren, sondern
auch auf Systemen mit Alpha-CPUs eingesetzt werden. Portierungen auf weitere Plattformen sind in Arbeit.
Eine vollständige Liste der unterstützten Hardware kann auf der
Webseite des Projektes eingesehen werden.
3.4
FreeBSD parallel zu Windows
Möchte man FreeBSD erst einmal testen und parallel zu einer bestehende Windows-Installation einrichten, so lohnt sich ein Blick
in das Handbuch. Die Vorgehensweise bei dieser Installations-Art
wird hier genau anhand zahlreicher Bildschirmfotos und Illustrationen erklärt. FreeBSD verfügt zudem über einen integrierten Bootmanager, so dass beim Start des Rechners bequem zwischen den
verschiedenen Betriebssystemen gewählt werden kann.
1
Weitere benötigte Dateien und Pakete werden bei dieser Installationsart später einfach per FTP aus dem Internet nachgeladen, der Download mehrerer
hundert Megabyte großer ISO-Images kann daher wegfallen.
3.5 Pakete, Ports-Collection und Installationsmedien
3.5
15
Pakete, Ports-Collection und Installationsmedien
Die weiteren Installationsschritte dürften auch Windows-Nutzern
bekannt vorkommen: Nach einer Grundkonfiguration des Systems
bietet das UNIX-Derivat die Möglichkeit, wie viele andere Systeme auch, je nach Einsatzzweck verschiedene Paketsammlungen zu
installieren. In diesem Zusammenhang hat sich die Installation des
Abbildung 3.2: Alles oder nur das Nötigste: Paketsammlungen auswählen
Minimalsystems bewährt, das nach und nach um benötigte Pakete ergänzt wird. So gelangt man schnell zu einer optimal auf den
jeweiligen Verwendungszweck abgestimmten FreeBSD-Installation.
Abgeschlossen wird die Installation in der Regel mit der Auswahl
des Installationsmedium. Hier hat man die Qual der Wahl: Gewählt
werden darf zwischen CD/DVD, FTP, DOS-Dateisystem, NFS, Tape und Floppy – Hauptsache FreeBSD findet dort letztendlich alle
zur Installation benötigten Dateien.
Ist das System einmal komplett eingerichtet und installiert, so
möchte man natürlich hin und wieder neue Software einspielen oder
entfernen. Wie so oft führen hier mehrere Wege zum Ziel: FreeBSDUser können neue Software-Pakete in Form von sofort lauffähigen
Binärpaketen einspielen oder über die sogenannte Ports-Collection
automatisch aus dem Internet laden und übersetzen. Die PortsCollection bietet zurzeit über 7.400 aktuelle Softwarepakete aus
allen Bereichen, die jeweils über zwei Befehle
make install und make clean
installiert werden können. Auf dem eigenen System muss dazu lediglich ein großer Verzeichnissbaum (einfach die Ports-Collection
bei der System-Installation mit einrichten) mit den notwendigen
Info-Dateien für die einzelnen Softwarepakete aufgespielt werden.
16
3 Installation
Diese Info-Dateien enthalten unter anderem einen Verweis auf das
zu übersetzende Archiv mit Quelldateien (lokal oder im Internet)
und noch eventuell Verweise auf notwendige Patches speziell für
FreeBSD, falls die Software sich sonst nicht übersetzen ließe.
Abbildung 3.3: Webseite Freshports.org: In mehr als 7.400 Softwarepaketen stöbern
Die Installation eines Apache-Webservers mit SSL-Unterstützung2
über die Ports-Collection schaut dann wie folgt aus: Zunächst muss
in das entsprechende Verzeichniss der Ports-Collection gewechselt
werden:
$ cd /usr/ports/www/apache13-modssl
Anschließend kann das Paket (auch Port genannt) übersetzt und
installiert werden:
$ make install
Zu guter Letzt sollten noch temporäre Daten aus Platzgründen
gelöscht werden:
$ make clean
Eventuell vorhandene Abhängigkeiten – Paket X erfordert Paket
A,D und E–werden automatisch aufgelöst. Dabei führt die Installation letztendlich immer zur Registrierung eines Paketes in der zentralen Datenbank zur Paketverwaltung. Die Verwaltung der über
die Ports-Collection oder als Binär-Pakete installierten Pakete lässt
sich bequem mithilfe des grafischen Tools sysinstall oder mithilfe
2
SSL ist eine Abkürzung für Secure Socket Layer und ermöglicht die verschlüsselte Datenübertragung im lokalen Netz oder Internet.
3.6 make buildworld und make installworld
17
– sicher auch Solaris-Administratoren bekannten – Tools wie pkg*
bewerkstelligen. Als recht nützlich haben sich in diesem Zusammenhang auch Tools wie portupgrade 3 und porteasy 4 erwiesen,
mit deren Hilfe die Pflege und das Aktualisieren von Ports ein Kinderspiel ist.
Während die Installation von Paketen im Binär-Format von allen UNIX-Derivaten geboten wird, so ist das Installationsverfahren über die Ports-Collection im UNIX-Bereich nahezu einzigartig
– allenfalls die Linux-Distribution Gentoo bietet außerhalb *BSDs
ein vergleichbares Verfahren, wenn auch die Anzahl der verfügbaren Pakete mit aktuell knapp 2.200 Paketen nicht gerade so üppig
ist.
3.6
make buildworld und make installworld
Für ein komplettes System-Upgrade eignen sich die üblichen Tools
zur Paket-Verwaltung eher weniger – hier bietet FreeBSD andere
Möglichkeiten. Neben dem üblichen Upgrade-Verfahren via Binärdateien hat sich besonders unter FreeBSD ein Verfahren mithilfe
der Quelldateien des System und dem make buildworld und ma”
ke installworld“-Mechanismus bewährt. So lässt sich das komplette System mit wenigen Befehlen aus den Quellen optimiert für
die eigene Prozessor-Architektur übersetzen und auf den neuesten
Stand bringen – eine optimale Betriebssystem-Performance ist die
Folge. Dieses Verfahren ist auch besonders hilfreich zum Update
des Systems im Falle von bekannt gewordenen Sicherheitslücken.
Im diesem Zusammenhang sollte noch erwähnt werden, dass sich
das mitgelieferte Script mergemaster als Update-Hilfe zum automatischen oder interaktiven Abgleich von Konfigurationsdateien
zum Beispiel unter /etc/ als recht nützlich erwiesen hat und daher unbedingt genutzt werden sollte.
Wer sein FreeBSD-System auf den aktuellen Stand bringen möchte, der sollte sich auch gleich noch den Kernel vornehmen und
neu übersetzen. Obwohl sehr selten zwingend erforderlich, lohnt
es sich, hier ein wenig Zeit zu investieren. Ein optimierter Kernel
hilft Arbeitsspeicher sparen und lässt Sie zudem weitere Funktionen wie eine Firewall oder zusätzliche Hardware wie zum Beispiel
eine Soundkarte nutzen. Viele Treiber lassen sich wie von anderen UNIX-Derivaten bekannt zwar auch zur Laufzeit via Kernel
Modules nachrüsten, die permanente Integration von gewünschten
Treibern in den Kernel führt aber in der Regel zu einer höheren
Performance und ist auch aus Sicherheitsgründen zu empfehlen. Da
potentielle Angreifer den KLD-Mechanismus5 ausnutzen könnten,
3
Ports-Collection: /usr/ports/sysutils/portupgrade
Ports-Collection: /usr/ports/misc/porteasy
5
Die Verwaltung der Kernel Modules übernimmt unter FreeBSD die KLD
(dynamic kernel linker facility)
4
18
3 Installation
um eigene, gefährliche Module einzuspielen, sollte dieser zumindest
im Serverbetrieb abgeschaltet werden4.3.2.
Das Procedere der Kernel-Übersetzung ist mit ein wenig Kenntnis
der eigenen Hardware und genauem Studium der entsprechenden
Handbuchseiten schnell erledigt. Lediglich eine Konfigurationsdatei muss zur Kernel-Konfiguration angefasst werden. Dank einer
mitgelieferten Beispieldatei mit allen möglichen Optionen und ausführlichen Kommentaren zur Konfiguration sollten auch weniger
versierte UNIX-Freunde zum Erfolg kommen. Wie immer ist der
gesamte Vorgang vom Upgrade des Systems bis hin zur KernelÜbersetzung Schritt für Schritt im Handbuch erklärt.
3.7
Quellen laden – CVS
Nun, wie gelangen eigentlich die erforderlichen Quelldateien zum
Upgrade des Systems auf den heimischen PC oder Server? Ein regelmäßiger Datentransfer via FTP scheidet aus–wer möchte schon
bei jedem Upgrade mehrere hundert Megabyte an Quelldateien
aus dem Internet laden? Genau zu diesem Zweck haben sich die
FreeBSD-Entwickler das Tool cvsup6 ausgesucht. Die Software lädt
nur relevante Daten von einem der zahlreichen, weltweit frei verfügbaren CVSUP-Server7 und drückt so das zu übertragende Datenvolumen auf ein Minimum. Nur so ist auch ein Abgleich per
Concurrent Version System8 der Sourcen auf dem heimischen System mit dem Quelldateibaum der FreeBSD-Entwicklergemeinde
mit vertretbarem Aufwand auch per Modem möglich. Über das
CVS-Repository9 der FreeBSD-Entwickler kann jeder Nutzer weltweit beliebige Versionen des FreeBSD-Quellcodes laden und sich
ein entsprechendes System zusammen stellen.
3.8
CURRENT, STABLE und RELEASE
Die weltweite Entwicklergemeinde FreeBSDs pflegt zwei Entwicklunsglinien ihres Betriebssystems: STABLE und CURRENT. RELEASES erscheinen drei- bis viermal im Jahr und werden nach
Erscheinen auf CDROM oder zum Download als ISO-Image beziehungsweise zur Installation via FTP angeboten. Diese FreeBSDVersion wird zu einem festgelegtem Zeitpunkt dem STABLE-Zweig
entnommen, ausführlich in einem längerem RELEASE-Prozess getestet und Endanwendern zum Download bereitgestellt. In STABLE fließen wichtige Sicherheits-Patches und für stabil befundener Code aus dem CURRENT-Zweig ein. STABLE ist für alle
Nutzer interessant, die mit einem aktuellen, stabilen FreeBSDSystem arbeiten möchten, ohne ein großes Risiko eingehen zu müs6
Ports-Collection: /usr/ports/net/cvsup
CVSUP-Server stellen Sourcen FreeBSDs über das Internet bereit.
8
CVS ist ein System zur kontrollierten, verteilten Entwicklung insbesondere
größerer Softwareprojekte.
9
Ein CVS-Repository ist unter anderem eine Datenbank mit Quelldateien.
7
3.8 CURRENT, STABLE und RELEASE
19
sen. In CURRENT spiegelt sich dagegen die aktuelle Entwicklung
des UNIX-Derivats wieder, hier wird viel neuer Code ausprobiert
und getestet, so dass nicht garantiert werden kann, dass sich jedes
FreeBSD-CURRENT übersetzen lässt. Der CURRENT-Zweig ist
daher hauptsächlich für Entwickler interessant, die sich aktiv am
Projekt beteiligen möchten.
Als Entwickler hat man zunächst die Möglichkeit, sich als Contributor in das Projekt einzubringen. Code-Teile und Dokumentationen
wandern dann vorerst einmal zu den so genannten Committern,
FreeBSD-Entwicklern mit Schreibberechtigung auf klar abgegrenzte Bereiche des Quelldateibaumes. Hat man als Contributor durch
regelmäßige Beiträge auf sich aufmerksam gemacht, so wird man
– oft von einem erfahrenen Committer – vielleicht gefragt, ob man
nicht selbst als Committer tätig werden möchte. Hat man Spaß an
der Sache gefunden und möchte mitmachen, so bekommt man einen
Mentor zugewiesen, der einem hilfreich und überwachend zur Seite
steht. Alle zwei Jahre werden neun Committer in das Core-Team
FreeBSDs gewählt, welches das gesamte Projekt koordiniert und
dessen zukünftige Richtung bestimmt. Ein zusätzliches RELEASEEngineering-Team begleitet und überwacht zudem aktiv die letzten
Wochen bis zum Erscheinen eines neuen RELEASEs. Aufgrund dieses sehr strengen Freigabe-Modells bei der Entwicklung FreeBSDs
wird eine hohe Software-Qualität erzielt.
20
3 Installation
4
4.1
Administration
Allgemeines
FreeBSD ist nahezu vollständig kompatibel zum POSIX-Standard1 ,
je nachdem welche Version des Standards man zu Grunde legt, das
heißt, dass alle beliebten GNU-Tools, Shells wie Bash, Korn und
Tcsh zur Verfügung stehen und nahezu alle UNIX-Programme, die
sich an diesen Standard halten ohne Änderungen unter FreeBSD
übersetzt werden können. Der Aufbau des Systems (Verzeichnisstruktur) unterscheidet sich darüber hinaus nicht gravierend von
dem anderer UNIX-Systeme, so dass sich Administratoren anderer
UNIX-Derivate aufgrund der Ähnlichkeit der Systeme schon nach
kurzer Einarbeitungszeit schnell zurecht finden sollten. Im weiteren Verlauf dieses Kapitels wird daher hauptsächlich auf einige interessante Besonderheiten und zusätzlichen Funktionen FreeBSDs
eingegangen.
4.2
Leistungsoptimierung
Ziel des FreeBSD-Projektes ist, wie schon zu Anfang der Broschüre erwähnt, unter anderem die Bereitstellung eines UNIX-Systems,
das auf eine hohe Performance und Benutzerfreundlichkeit getrimmt
ist. Dabei gehen diesen Bestrebungen aber niemals so weit, dass das
System auf Rechnern älterer Bauart nur schlecht oder gar nicht
lauffähig ist oder sogar die Kompatibilität zu anderen Systemen
wie etwa GNU/Linux leidet. Allgemein kann gesagt werden, dass
viele der Untersysteme FreeBSDs wie die virtuelle Speicherverwaltung, der TCP/IP-Stack und weitere entweder selbstoptimierend
sind oder in der Grundkonfiguration schon hervorragende Leistungen für die meisten Einsatzzwecke bieten. Auf Hochlast-Systemen
wie zum Beispiel Webservern, die mehrere Terabyte an Daten pro
Monat übertragen müssen, kann aber ein zusätzliches Tuning erforderlich sein.
Viele Tuning-Maßnahmen lassen sich über zahlreiche Systemvariablen (man sysctl, über 500 vorhanden) oder mithilfe zusätzlicher Funktionen verwirklichen. So ermöglichen zum Beispiel Soft
Updates eingesetzt in Kombination mit dem Berkeley Fast File
System die Nutzung eines journaling-ähnlichen Dateisystem unter
FreeBSD. Dabei können es Soft Updates mit aus dem GNU/LinuxBereich bekannten Dateisystemen wie ReiserFS in Punkte Performance und Sicherheit sehr gut aufnehmen. – Wer auch das letzte Quäntchen an Leistung aus seinem UNIX-System herauskitzeln
1
http://www.FreeBSD.org/projects/c99/index.html
21
22
4 Administration
möchte, der sollte sich unter anderem die UNIX-Hilfeseiten zur
Performance-Optimierung (man tuning) und die entsprechenden
Seiten im Online-Handbuch FreeBSDs anschauen.
4.3
4.3.1
Sicherheit
SSH, VPNs und Periodic
Das Thema Sicherheit wird unter FreeBSD groß geschrieben: Schon
in der Grundinstallation werden nur sehr wenig Dienste, die über
das Netzwerk erreichbar sind, aktiviert. Mit dieser konservativen
Abbildung 4.1: Portscan mit Nmap: Standardmäßig sind nur wenige Dienste aktiviert
Grundeinstellung wird der großen Anzahl an in letzter Zeit bekannt
gewordenen Sicherheitslücken in vielen beliebten Internet-Diensten
Rechnung getragen. Einer der wenigen standardmäßig eingerichteten Dienste ist die SSH (Secure Shell), welche eine sichere, da
verschlüsselte Fernwartung des Systems ermöglicht. In diesem Zusammenhang können zum Beispiel auch weitergehende Dienste wie
VPNs 2 eingerichtet werden. Die dazu benötigte Software wird bereits mitgeliefert3 4 . Seit vor einigen Jahren die U.S.A. die Exportbeschränkungen für starke Kryptografie gelockert haben, können
FreeBSD-User zudem auf nahezu alle gängigen Verschlüsselungsund damit verbundene Authentisierungsverfahren zurückgreifen.
Darüber hinaus fördert ein Blick in die Kategorie Security der
Ports-Collection eine große Auswahl verschiedener Software-Pakete
2
Abkürzung für Virtual Private Network, Internet-Dienste über einen sicheren
Kanal über das Internet oder lokale Netzwerke nutzen
3
Ports-Collection: /usr/ports/security/openvpn/
4
Ports-Collection: /usr/ports/security/vpnd/
4.3 Sicherheit
23
zum Erkennen von Angriffen, Viren, Root-Kits5 und Sicherheitslücken wie zum Beispiel nessus, chkrootkit, nmap, snort und
scanssh zu Tage. Zur weiteren Erhöhung der Sicherheit tragen
im Wesentlichen auch Erleichterungen bei der Administration des
Systems bei, die unter anderem über ein Scheduler-System (Periodic) realisiert werden. Wer sich als UNIX-Administrator nicht immer allmorgendlich durch ellenlange Logdateien kämpfen möchte,
der sollte die entsprechenden Funktionen unter FreeBSD aktivieren und so verschiedene Routine-Aufgaben automatisch erledigen
lassen. Hierzu gehört zum Beispiel auch der automatische, tägliche
Mailversand wichtiger System-Informationen.
4.3.2
Script-Kiddies stoppen
Zusätzlich zu dem sonst unter UNIX üblichem Rechtesystem verfügt FreeBSD über wirkungsvolle Mechanismen zum Beispiel zur
Abwehr von Angreifern wie Script-Kiddies6 . Wird die Systemvariable Securelevel auf einen Wert >= 1 gesetzt, so werden System-weit
sicherheitsrelevante Einschränkungen wirksam, die auch durch den
Root-User nicht außer Kraft gesetzt werden können.
Mit am interessantesten sind in diesem Zusammenhang sicherlich
die Erweiterungen des Standarddateisystems UFS7 , die bei höheren Secureleveln greifen. Eine der Erweiterungen – schg (Immutable Flag) – kann zum Beispiel dazu verwendet werden, um sensible
Verzeichnisbäume oder Dateien des Systems so zu schützen, dass
selbst der Administrator (Root-User) diese Bereiche nicht löschen
beziehungsweise modifizieren kann. Eine Änderung dieser Bereiche
ist bei gesetztem Securelevel >= 1 dann nur im Single-User-Mode
(im Server-Raum, am Rechner), also nicht über das Netz möglich. Hat nun ein Angreifer durch eine wie auch immer geartete
Sicherheitslücke Root-Rechte erlangt, so ist sein oder ihr Bestreben weitere Software (Root-Kits, Trojaner) zu installieren trotzdem zum Scheitern verurteilt, da wichtige Systemdateien – etwa
zur Schaffung einer Hintertür in das System – nicht ausgetauscht
oder verändert werden können.
Darüber hinaus ermöglicht die Anwendung weiterer Dateisystemerweiterungen, dass nur das System selbst zum Beispiel wichtige LogDateien ergänzen kann (Flag sappnd). Ein erfolgreicher Angreifer
hat so nicht die Möglichkeit, Spuren seines Angriffs durch das Löschen entsprechender Einträge in den relevanten Dateien zu beseitigen.
5
Root-Kits werden nach dem Einbruch in ein Rechner-System vom Angreifer installiert, um unter anderem Hintertüren im System einzurichten und
Angriffspuren zu verwischen.
6
Script-Kiddies sind Jugendliche und Schüler mit häufig zu viel Freizeit, die
sich mit vorgefertigten Tools und Scripten in fremde Rechner-Systeme hacken.
7
UFS=UNIX filesystem, UNIX-Dateisystem
24
4 Administration
Securelevel
-1
Dauerhaft unsicherer Modus – das System sollte immer mit
Securelevel=0 laufen; -1 ist zunächst der Standardwert.
0
Unsicherer Modus – Dateisystemerweiterungen können zurück genommen werden. Alle Geräte lassen sich entsprechend der vergebenen Rechte lesen und beschreiben.
1
Sicherer Modus – Dateisystemerweiterungen können nicht
zurückgenommen, Loadable Kernel Modules nicht mehr geladen oder entladen werden; Festplatten für bereits gemountete Dateisysteme, /dev/mem, /dev/kmem lassen sich nicht
mehr beschreiben.
2
Hochsicherer Modus – wie sicherer Modus, nur mit folgenden Erweiterungen: Festplatten lassen sich nur noch über
mount (man mount) nutzen, egal, ob per mount eingebunden
oder nicht; eine Neuformatierung der Festplatten etwa via
newfs (man newfs) wird verhindert; Zeitänderungen größer
als 1 Sekunde sind nicht mehr möglich, der Versuch wird
mit der Meldung: Time adjustment clamped to +1 second“
”
gelogged.
3
Netzwerksicherheits-Modus – zusätzlich zu 2 lassen sich
Regeln zur Filterung von IP-Paketen nicht mehr ändern
(man ipfilter, man ipfirewall).
Tabelle 4.1: Securelevel unter FreeBSD: Je höher, desto sicherer
Abschließend sollte noch erwähnt werden, dass, wie so oft, mit Maßnahmen zur Erhöhung der Sicherheit eines Systems auch gewisse
Einschränkungen verbunden sind. So greift zum Beispiel ein XServer in der Regel direkt auf die Hardware zu, bei höheren Secureleveln ist das allerdings nur bedingt möglich und der X-Server kann
daher nicht gestartet werden. Zwar könnte der X-Server auch vor
einer Erhöhung der Securelevel schon während des Boot-Vorgangs
ausgeführt werden (grafisches Login via XDM/KDM8 ), nach einem Crash ließe sich dieser aber nicht wieder im laufenden Betrieb
starten9 . Letztendlich sollte aber darüber nachgedacht werden, ob
es überhaupt notwendig ist, höhere Securelevel im WorkstationBetrieb zu aktivieren, da ja in der Regel nur Netzdienste genutzt,
aber nicht angeboten werden beziehungsweise in den seltensten Fällen mehrere Personen mit dem System arbeiten. Das Risiko von
Angriffen kann daher im Workstation-Betrieb im Vergleich zum
Serverbetrieb FreeBSDs als wesentlich geringer eingestuft werden.
Darüber hinaus ist zu beachten, dass das Flag sappnd nur zum
Schutz von Logdateien eingesetzt werden sollte, wenn diese nicht
8
9
X Display Manager, KDE Display Manager
http://www.FreeBSD.org/doc/faq/x.html#RUNNING-X-SECURELEVELS
4.3 Sicherheit
25
zu stark anwachsen. Eine automatische Rotation von Logdateien
im laufendem Betrieb durch das System ist nämlich bei gesetztem
Flag zurzeit nicht möglich.
4.3.3
Dateisystemerweiterungen anwenden
Das folgende Beispiel soll zeigen, wie wichtige Systemverzeichnisse
mithilfe von Dateisystemerweiterungen geschützt werden können.
Als Root-User muss zunächst das gewünschte Verzeichnis mit dem
Immutable-Flag (schg) versehen werden, welches Änderungen jeglicher Art an Verzeichnissen und Dateien verhindert. Dabei werden
alle Dateien und Verzeichnisse rekursiv unterhalb des ausgewählten
Verzeichnisses mit diesem Flag markiert.
$ su # chflags -R schg /sbin
Mithilfe des Parameters o lassen sich Dateisystemerweiterungen im
Zusammenhang mit dem Befehl ls anzeigen.
# ls -laFo
Anschließend muss das Securelevel auf einen Wert >= 1 (3 ist der
Höchstwert) gesetzt werden, so dass die Dateisystemerweiterungen
greifen:
# sysctl -w kern.securelevel=3
Das Securelevel sollte sofort bei jedem Systemstart gesetzt werden.
Ein Eintrag in die Datei /etc/sysctl.conf genügt.
# echo kern.securelevel=3 >> /etc/sysctl.conf
Das Löschen und Ändern des ausgewählten Verzeichnisbaumes ist
nun selbst mit Root-Rechten nicht mehr möglich.
# rm -rf /sbin
rm: /sbin/adjkerntz: Operation not permitted
rm: /sbin/atacontrol: Operation not permitted
rm: /sbin/atm: Operation not permitted
...
Erst der direkte Zugriff auf das System im Single-User-Mode (im
Server-Raum, am Rechner) erlaubt wieder die Deaktivierung der
Dateisystemerweiterungen.
Letztendlich ist zu beachten, dass alle Verzeichnisse, in denen Dateien, die beim Start des Systems ausgeführt werden können wie
/boot, /usr/local/etc/rc.d, /etc vor Modifikationen mithilfe
des Flags schg geschützt werden müssen. Ein Angreifer mit RootRechten hätte sonst die Möglichkeit, eine Datei, die das Securelevel beim Start des Systems auf einen unsicheren Wert setzt
26
4 Administration
(zum Beispiel -1), in die zuvor benannten Verzeichnisse einzubringen. Ein einfacher Neustart des Systems würde dann genügen, um
den Schutz durch Securelevel und Dateisystemerweiterungen außer
Kraft zu setzen.
4.4
4.4.1
Virtuelle Server – Die Jail()-Funktion
Allgemeines
Während in realen Jails Kriminelle zum Zwecke der Resozialisierung hinter Gitter gebracht werden, so lassen sich in virtuellen
Gefängnissen unter FreeBSD einzelne Prozesse bis hin zu vollständigen Systemen einsperren. Jail bedient sich dazu unter anderem
FreeBSD
/bin
/boot
/dev
/etc
...
Hauptsystem
IP: 132.176.218.10
Ssh2-Daemon
Autarke Benutzerverwaltung
...
/usr/jails/Jail-1/ →
/bin
/boot
/dev
/etc
...
Jail-1
IP: 132.176.218.11
Ssh2-Daemon
Autarke Benutzerverwaltung
...
/usr/jails/Jail-2/ →
/bin
/boot
/dev
/etc
...
Jail-2
IP: 132.176.218.12
Ssh2-Daemon
Autarke Benutzerverwaltung
...
/usr/jails/Jail-3/ →
/bin
/boot
/dev
/etc
...
Jail-3
IP: 132.176.218.13
Ssh2-Daemon
Autarke Benutzerverwaltung
...
Tabelle 4.2: Eingesperrt: Jails unter FreeBSD werden einfach in
einzelnen Verzeichnissen angelegt
des Chroot-Mechanismuses, der es dem Administrator eines UNIXSystems erlaubt, Dienste aus Sicherheitsgründen in einen bestimmten Verzeichnissbaum innerhalb eines Systems einzusperren. Dieser Mechanismus ist nicht absolut sicher und mit entsprechenden Kenntnissen leicht zu umgehen. Jail beseitigt die SicherheitsProbleme Chroots und geht noch einen Schritt weiter und erlaubt
das Anlegen mehrerer von einander unabhängiger Systeme, die
über eine eigene IP-Adresse erreichbar sind, über eine eigene Benutzerverwaltung, eigene Tools und Softwarepakete, kurz gesagt über
4.4 Virtuelle Server – Die Jail()-Funktion
27
eine vollständige Systeminstallation verfügen. Die autarke Benutzerverwaltung der virtuellen Systeme erlaubt es sogar, dass Nutzer
mit vollen Root-Rechten (Administrator-Rechten) innerhalb der
virtuellen Server arbeiten können.
Die Möglichkeiten der Jail()-Funktion sollen im Folgenden anhand
dreier Anwendungsbeispiele aufgezeigt werden.
4.4.2
Jails im Einsatz bei Webhostern
Viele Webhoster machen sich FreeBSDs Jail()-Funktion zu Nutze und bieten sogenannte virtuelle Root-Server kostengünstig an.
Hierbei handelt es sich um zahlreiche Jail-Systeme untergebracht
auf einem FreeBSD-Server. Kunden können einen virtuellen RootServer günstig mieten und dann Software wie Webserver und Datenbanken nach Belieben nutzen oder installieren. Für den Kunden
hat das den Vorteil, dass bei maximaler Freiheit (Root-Rechte)
kein eigener Server gemietet oder angeschafft werden muss und
so die Hosting-Kosten gering ausfallen. Der Betreiber (Webhoster)
des FreeBSD-Servers kann zudem bei den Wartungs- und Anschaffungskosten sparen, da diese nur für einen Server anfallen.
4.4.3
Jails zur Server-Konsolidierung
Die Konsolidierung von Servern wird in der Regel vogenommen, um
Kosten im Betrieb und in der Wartung von Servern zu senken. Sehr
oft kommt es aber vor, dass Projekte zur Server-Konsolidierung
scheitern, da sich Applikationen nicht ohne Weiteres auf einem Server zusammen fassen lassen: Installationen überschneiden sich, eine
Applikationen erwartet eine ältere Version einer Systembibliothek
als eine andere, Portnummern werden mehrfach verwendet und so
weiter. Sollte die Konsolidierung dennoch gelingen, so steigt der
notwendige Testaufwand vor dem Einspielen neuer Programmversionen und Bibliotheken einer Applikation erheblich an, da zuvor
umfassend geprüft werden muss, ob nicht Inkompatibilitäten und
Unverträglichkeiten mit anderen Applikationen auf dem System
bestehen. Mithilfe von Jails lassen sich diese Probleme geschickt
lösen, da jede Applikation in ihrem eigenen virtuellen System vollständig getrennt von anderen Applikationen untergebracht werden
kann.
4.4.4
Jails am URZ – Aufbau einer Schulungsumgebung
Auch am Universitätsrechenzentrum der FernUniversität Hagen
werden Jails regelmäßig im Rahmen von Seminaren eingesetzt. Für
das im vergangenen Juni angebotene Apache Webserver Seminar
wurde zum Beispiel eine Schulungsumgebung unter FreeBSD auf
einem Server aufgesetzt.
Die Umgebung bot für jeden der Seminarteilnehmer einen virtuellen Server, welcher via SSH über das Netz angesprochen wer-
28
4 Administration
den konnte. Jeder Seminarteilnehmer hatte so dank der Jail()Funktion die Möglichkeit, den Webserver unter Real-Bedingungen
(Port 80/443, Installation unter /usr/local/apache, Root-Rechte)
einzurichten. Ein Umdenken (Schulungsumgebung ↔ Produktionsbetrieb) war daher nicht erforderlich. Die Seminarteilnehmer konnten das Gelernte gleich am heimischen PC, in der Firma oder am
Lehrgebiet umsetzen.
Alternativ zur Jail-Lösung hätte jeder der 18 Schulungs-PCs auch
mit einer GNU/Linux-Installation versehen werden können. Die
Administration der Schulungsumgebung wäre dann aber ungleich
aufwändiger gewesen. Eine defekte oder unbeabsichtigt zerstörte
Schulungsumgebung hätte darüber hinaus nicht so leicht ersetzt
werden können. Mithilfe der Jail-Lösung hätte sich ein defektes
Jail dagegen leicht innerhalb von Sekunden durch ein Standby-Jail
ersetzen lassen können, so dass der betroffene Schulungsteilnehmer
keine wertvolle Übungszeit verloren hätte.
5
5.1
Verfügbare Software
FreeBSD auf dem Desktop
Nachdem hier recht viele Anwendungsmöglichkeiten FreeBSDs im
Serverbereich genannt wurden, stellt sich sicher der ein oder andere Leser die Frage, ob sich das UNIX-Derivat mit dem Daemon als
Maskottchen auch für anderen Zwecke als nur den Serverbetrieb
eignet. Wie schaut es eigentlich mit der Unterstützung beliebter
grafischer Benutzeroberflächen, Programmiersprachen, Multimediaund Office-Anwendungen aus? Nun, wie schon im Verlauf der Bro-
Abbildung 5.1: KDE3: Auch unter unter FreeBSD heimisch
schüre erwähnt, lassen sich über die Ports-Collection aktuell über
7.400 Softwarepakete optimiert für das eigene System installieren.
Und hier ist wirklich für jeden Geschmack etwas dabei: Entwickler
finden hier gängige, aber auch ausgefallenere Programmiersprachen
wie C, C++, PHP, Perl, FORTRAN, Pascal, Ruby, Java1 , Python,
Cobol. Hinzu kommen unter anderem alle bekannten GNU-Tools,
Shells, Editoren und Pakete für LATEX, XSLT und XML.
Darüber hinaus bietet FreeBSD standardmäßig auch den X-Server
XFree86 in der Version 4.2.x zusammen mit zahlreichen Fenstermanagern und X-Anwendungen – KDE3 und Gnome2 sind natür1
Java unter FreeBSD: http://www.FreeBSD.org/java/newsflash.html
29
30
5 Verfügbare Software
lich auch mit von der Partie. Aktuelle Office-Pakete wie zum Beispiel Koffice und OpenOffice.org mit Tabellenkalkulation, Präsentations- und Textverarbeitungs-Programm, Formeleditor und Unterstützung aller Office-Formate von Microsoft lassen sich ebenfalls
installieren. Im Internet gesurft werden darf zum Beispiel mit dem
Abbildung 5.2: Kostenlos, kompatibel und gut: Die vollständige
Office-Suite OpenOffice.Org schickt sich an, Microsofts Office Konkurrenz zu machen
Mozilla, Opera, Galeon oder dem Text-basierenden Browser Lynx
– selbst der ist mit dabei. Musik-Freunde finden sicher am AudioPlayer Xmms gefallen, der seinem populärem Windows-Pendant
WinAMP in Qualität und Funktionsumfang in nichts nachsteht.
MP3-Sammlungen lassen sich zum Beispiel bequem mit KOnCD
auf CD sichern.
Wer sich im Internet über aktuell verfügbare Softwarepakete für
FreeBSD informieren möchte, dem sei die Webseite Freshports.org
ans Herz gelegt. Hier kann man unter anderem in zahlreichen Kategorien nach Software stöbern und die Updates der letzten Zeit
einsehen. Darüber hinaus kann auch eine Liste der eigenen, installierten Software-Pakete zur Webseite Freshports.org hochgeladen
werden. Wird nun eines der Pakete aktualisiert, so erhält man automatisch eine Benachrichtigung per E-Mail zugestellt.
5.2
Kompatibel zu GNU/Linux
Zu guter Letzt sollte noch erwähnt werden, dass sich nahezu alle
GNU/Linux-Programme dank eines hervorragenden GNU/LinuxEmulators – enthält ein komplettes RedHat 7.2-GNU/Linux – auch
5.2 Kompatibel zu GNU/Linux
31
unter FreeBSD ohne Performance-Verluste nutzen lassen. Tests am
Lehrgebiet Allgemeine und Theoretische Elektrotechnik der FernUniversität Hagen haben sogar ergeben, dass manche Programme
wie zum Beispiel Matlab (Mathematik-Programm) unter FreeBSD
um knapp 30 Prozent schneller in der GNU/Linux-Emulation ablaufen als unter GNU/Linux selbst. Getestet wurde unter FreeBSD
4.3 und S.u.S.E. 7.2 auf ein und demselben Rechner, wobei von
beiden Systemen eine Grundinstallation eingerichtet und unnötige
Dienste deaktiviert wurden.
Abbildung 5.3: Multimedia-Station: Der Audio-Player Xmms unter
KDE3 und FreeBSD
32
5 Verfügbare Software
6
Die Zukunft FreeBSDs
Für die Zukunft hält die Entwicklergemeinde einige interessante Neuerungen parat, die teilweise schon in den nächsten Monaten im RELEASE/STABLE-Zweig in Produktionsumgebungen genutzt werden können oder spätestens mit Erscheinen von FreeBSD
5.0 zum Jahresende der Allgemeinheit zur Verfügung stehen werden.
So ist zum Beispiel eine Neuentwicklung der Jail()-Funktion mit
verschiedenen Erweiterungen und optimierten Management-Möglichkeiten namens JailNG (NG=Next Generation) geplant. Ebenfalls interessant ist ein Projekt, das sich der Verbesserung des Symmetric-Multiprocessing (SMP) unter FreeBSD angenommen hat.
SMPng1 soll unter anderem sehr gut skalieren und mehr Performance bieten. Die Ergebnisse des Projektes sollen mit Erscheinen
der 5er-Version FreeBSDs Einzug in Produktionssysteme halten.
Ein weiteres vielversprechendes Projekt ist sicher TrustedBSD2 ,
deren Entwickler sich mit der Integration fein granulierter Zugriffskontrollen (MAC/ACL/FGC) in FreeBSD beschäftigen.
Wer sich regelmäßig über neue Entwicklungen informieren möchte,
der sollte sich den alle zwei bis drei Monate erscheinenden StatusReport auf der Webseite FreeBSDs zu Gemüte führen 3 . Eine Liste4
aktueller Projekte rund um FreeBSD ist ebenfalls auf der Webseite
verfügbar.
1
http://www.FreeBSD.org/smp/
http://www.TrustedBSD.org
3
http://www.FreeBSD.org/news/status/status.html
4
http://www.FreeBSD.org/projects/
2
33
34
6 Die Zukunft FreeBSDs
7
Fazit
Noch bietet FreeBSD nicht die von einigen Linux-Distributionen
bekannten, Windows-ähnlichen Oberflächen zur Einrichtung des
Systems – viele neue User mag das zunächst abschrecken. Aber
wenn man sich erst einmal ein wenig mit dem System beschäftigt
hat, wird man diese Tatsache eher als Vorteil, denn als Nachteil
empfinden. FreeBSD-User wissen oft eher was zu tun ist, wenn es
mal im System kracht, woran gedreht werden muss, damit es wieder rund läuft. Hier ist zwangsläufig ein Blick unter die Haube des
Systems erforderlich – und da lernt man bei FreeBSD am Original,
wie die Historie zeigt.
Überhaupt liegen die Stärken FreeBSDs eher im Verborgenen: Securelevel, Dateisystemflags, Jails, eine einfache Administration –
diese und noch weitere Punkte stellen einen echten Mehrwert im
Serverbetrieb gegenüber vielen anderen UNIX-Derivaten dar. Aber
auch dem Desktop hat sich FreeBSD nicht verschlossen, wie die
große Anzahl der hierfür erhältlichen Softwarepakete einschließlich
des Quasi-Standards KDE zeigt. – Ob auf dem Server oder Desktop
– FreeBSD ist allemal einen Versuch wert!
35
36
7 Fazit
8
8.1
Weiterführende Links und Quellen
Verfügbarkeit
FreeBSD kann über die Webseite http://www.FreeBSD.org kostenlos bezogen werden. Mitarbeiter der FernUniversität haben darüber hinaus noch die Möglichkeit, FreeBSD in der sechs CDs umfassenden Lehmanns CD-ROM Edition mit deutschen Hilfetexten
über den Dispatch – [email protected] – des Universitätsrechenzentrums – wie auch bei Linux üblich ohne Support
des URZs – ebenfalls kostenlos anzufordern.
8.2
Projekt
http://www.FreeBSD.org
Download des Betriebssystems, umfangreiche Online-Dokumentationen, Man-Pages, verschiedene Suchmaschinen, FAQs, allgemeine
Projekt-Infos (RELEASES, News, Presse, Entwickler, The FreeBSD
Gallery, Sicherheit)
8.3
8.3.1
Dokumentationen und Literatur
Bücher
FreeBSD Unleashed (Mit CD-ROM)
von Michael Urban, Brian Tiemann
Taschenbuch – 1024 Seiten – Sams
Erscheinungsdatum: 15. Januar 2002
ISBN: 0672322064
Absolute BSD: The Ultimate Guide to FreeBSD
von Michael Lucas
Taschenbuch – 612 Seiten – No Starch Press
Erscheinungsdatum: Juli 2002
ISBN: 1886411743
The FreeBSD Corporate Networker’s Guide
von Ted Mittelstaedt
Taschenbuch – 432 Seiten – Addison Wesley
Erscheinungsdatum: 28 Dezember 2000
ISBN: 0201704811
37
38
8.3.2
8 Weiterführende Links und Quellen
Hardwareunterstützung
http://www.FreeBSD.org/platforms/
Von FreeBSD unterstützte Plattformen
http://www.FreeBSD.org/releases/4.6R/hardware-i386.html
Aktuell unterstützte Hardware
8.3.3
Installation und Upgrade des Systems
http://www.freebsdmirrors.org/FBSDsites.php3
Datenbank mit Mirror-Sites zu FreeBSD (ISOs, CVSUP-Server,
FTP-Server)
http://www.FreeBSD.org/doc/handbook/
Das Online-Handbuch FreeBSDs
http://www.FreeBSD.org/doc/handbook/install-steps.html
Installation des Systems in mehreren Schritten erklärt
http://www.FreeBSD.org/doc/handbook/cutting-edge.html
Anleitung zum Upgrade des Systems
http://www.FreeBSD.org/doc/handbook/kernelconfig.html
How-To zur Konfiguration und Übersetzung des Kernels
8.3.4
Sicherheit
http://www.FreeBSD.org/security/security.html
Allgemeine Informationen zum Thema Sicherheit unter FreeBSD
http://draenor.org/securebsd/
Marc Silver <[email protected]>
A basic guide to securing FreeBSD 4.x-STABLE
Sehr gutes Tutorial zur sicheren Installation FreeBSDs.
8.3.5
Tuning
http://www.FreeBSD.org/doc/handbook/configtuning-sysctl.html
Einführung: Leistungsoptimierung über System-Variablen (sysctl)
http://www.FreeBSD.org/doc/handbook/configtuning-disk.html
Optimierung von Festplatten
http://www.FreeBSD.org/doc/handbook/configtuning-kernellimits.html
Kernel-Optimierung
8.3.6
Jails
http://docs.FreeBSD.org/44doc/papers/jail/jail.html
Poul-Henning Kamp <[email protected]>
Robert N. M. Watson <[email protected]>
The FreeBSD Project Jails: Confining the omnipotent root
8.4 Software und Support
39
http://www.FreeBSD.org/doc/en/books/developers-handbook/jail.html
Technische Informationen zum Thema Jails und Infos zu JailNG
http://jailnotes.cg.nu/
Henk Wevers <[email protected]>
How to make a FreeBSD 4.x jail working
Allgemeine Infos zu Jails und verschiedene Scripte zum Management von Jails
8.4
8.4.1
Software und Support
Merchandising
http://www.freebsdmall.com
FreeBSD-CDs/DVDs, Bücher, T-Shirts, Stofftiere, Tassen, BoxerShorts, Jacken, Mouse-Pads
http://www.lob.de
FreeBSD-CDs (mit deutschen Hilfe-Texten) und Bücher bei der
Buchhandlung Lehmanns bestellen
8.4.2
Software
http://freshports.org
Datenbank mit aktuellen Infos zu Softwarepaketen aus allen Bereichen (sog. Ports, zurzeit über 7.400) vorbereitet zur Übersetzung
und Installation unter FreeBSD
http://www.FreeBSD.org/ports/
Datenbank aller verfügbaren Softwarepakete im Port-Format
8.4.3
Newsgruppen, Foren und Mailinglisten
http://www.google.com/bsd
Mit der Suchmaschine Google nach *BSD-relevanten Webseiten suchen
comp.unix.bsd.freebsd.misc
Die beliebteste Newsgruppe für alle Fragen zum Thema FreeBSD
comp.unix.bsd.freebsd.announce
News zu neuen FreeBSD-Releases werden hier gepostet
de.comp.os.unix.bsd
Deutsche Newsgruppe zum Thema *BSD
http://stefan3.forumprovider.com/
Allgemeines Forum zum Thema FreeBSD
http://www.bsdforums.org
Beliebte News- und Forenseite zum Thema *BSD
40
8 Weiterführende Links und Quellen
http://www.de.FreeBSD.org/de/mailinglists.html
Übersichts-Seite zu deutschsprachigen Mailinglisten zum Thema
FreeBSD
8.4.4
Consulting
http://innominate.de
Innominate Security Technologies AG
http://www.interface-business.de/
interface:business gmbh
8.4.5
Tipps, Tricks und Tutorials
http://gwdu60.gwdg.de/fststeps.html
Dr. Konrad Heuer: FreeBSD – die ersten Schritte (Juni/2001)
http://www.onlamp.com/pub/ct/15
FreeBSD Basic: Sammlung von Tutorials und Grundlagen-Artikeln
http://www.onlamp.com/pub/ct/13
Big Scary Daemons: Tutorials, Tipps und Tricks, weiterführende
Artikel
http://www.freebsddiary.org
Tipps und Tricks, Tutorials zu FreeBSD
http://www.defcon1.org
News, Tutorials und Artikel zu *BSD
http://lantech.geekvenue.net/chucktips/
News, Tutorials und Artikel zu FreeBSD
http://www.bugat.at
News und Tutorials zu *BSD in deutscher Sprache
8.5
8.5.1
Allgemeine Informationen
Webhosting
http://ispserver.com/de/technology/index.html
Virtuelle FreeBSD-Server bei ISPserver (ISPsystem Holding Luxemburg)
http://www.goldvision.de/de/de/microrack.html
Virtuelle FreeBSD-Server bei Gold Vision Communications Hiller,
Penugaow GbR
http://home.verio.de/products/vps/query4vps.php?os=free
Virtuelle FreeBSD-Server bei Verio Deutschland
http://www.atvirtual.net/server/unix/
ATvirtual.NET
Pumpernig & Fischer OEG
8.5 Allgemeine Informationen
41
http://web-hosting.spry.com
Virtuelle FreeBSD-Server bei Spry Hosting, Inc.
8.5.2
News
http://bsdtoday.com
Aktuelle News aus der Welt von *BSD
http://bsdvault.net
News und Infos zu *BSD
http://slashdot.org/bsd/
News und Infos aus dem *BSD-Bereich auf der News-Seite Slashdot
http://daily.daemonnews.org
Aktuelle News aus dem *BSD-Bereich
http://www.osnews.com
News zu Betriebsystemen, häufig auch zu *BSD
http://kerneltrap.org
Aktuelle News zu FreeBSD- und Linux-Kerneln
8.5.3
Verschiedene Nutzer FreeBSDs
http://gwdu60.gwdg.de
Dr. Konrad Heuer: FreeBSD an der Gesellschaft für wissenschaftliche Datenverarbeitung mbH Göttingen, kurze Link-Sammlung
http://www.uni-goettingen.de
Homepage der Universität Göttigen
http://et-online.fernuni-hagen.de
Homepage des Fachbereiches Elektrotechnik und Informationstechnik, Zugang zum System ET-Online (Online-Studium)
http://ate.fernuni-hagen.de
Webpräsenz des Lehrgebietes Allgemeine und Theoretische Elektrotechnik des Fachbereiches Elektrotechnik und Informationstechnik
http://www.orange.co.uk
Orange ist eines der weltweit größten Unternehmen im Bereich mobiler Kommunikation
http://docs.yahoo.com/info/misc/contributors.html
Yahoo!, eine der beliebtesten Webseiten der Welt, nutzt hauptsächlich FreeBSD als Betriebssystem für Ihre Webserver.
http://apache.org
Webseite der Apache Software Foundation, hier hat unter anderem
der Webserver Apache seine Heimat
42
8 Weiterführende Links und Quellen
http://bezip.de
BeZip.de ist das Europa-weit größte Archiv mit Shareware, Freeware und Demos für das alternative Betriebssystem BeOS.
8.6
8.6.1
Unix, Linux und Open-Source
UNIX-Derivate
http://www.caldera.com
Herausgeber einer Linux-Distribution, Eigentümer von SCO OpenServerUNIX
http://www.bsdi.com
Berkeley Software Design, Incorporated ist der Hersteller des UNIXDerivats BSD/386
http://www.netbsd.org
Das UNIX-Derivat NetBSD unterstützt sehr viele Plattformen
http://www.openbsd.org
Die Entwickler von OpenBSD legen besonders viel Wert auf Sicherheit
http://www.darwin.org
Apples Darwin entstammt ebenfalls dem BSD-Lager und bildete
die Grundlage von Mac OS X
http://www.apple.com/de/macosx/
Heimat von Apples Mac OS X
http://www.ibm.com
Hersteller des UNIX-Derivats AIX
http://www.compaq.com
Compaq vertreibt das UNIX-Derivat Compaq True64 UNIX
http://www.hp.com
HP/UX wird von Hewlett Packard entwickelt
http://www.sgi.com
Das UNIX-Derivat IRIX stammt von Silicon Graphics
http://www.sun.com
Sun vertreibt das UNIX-Derivat Solaris/SunOS
http://www.cray.com
Der Supercomputer-Hersteller Cray hat das UNIX-Derivat UNICOS entwickelt
8.6.2
Linux-Distributionen
http://www.redhat.com
Homepage der Linux-Distribution RedHats
8.6 Unix, Linux und Open-Source
43
http://www.suse.de
Firmen-Seite der Linux-Distribution von S.u.S.E.
http://www.gentoo.org
Projekt-Seite der Linux-Distribution namens Gentoo
http://www.kernel.org
Stabile- und Entwicklerkernel des Linux-Projektes können hier geladen werden
8.6.3
Weitere Open-Source-Projekte
http://www.xfree86.org
Projekt-Seite des X-Servers XFree86
http://www.openoffice.org
Heimat der Office-Suite OpenOffice.org
http://www.kde.org
Homepage des UNIX-Desktops KDE
44
8 Weiterführende Links und Quellen
9
Danksagung
Zu guter Letzt möchte ich mich bei meinen Kollegen Heiko und
Thorsten für’s Korrekturlesen bedanken und bei Henning und Thomas für die zahlreichen Tipps und Tricks zu LATEX. Mein Dank geht
auch an die Mitglieder der Newsgruppe de.comp.os.unix.bsd für
ihre konstruktive Kritik.
45