Das OpenBSD-Release 3.4:
Am 1. November 2003 veröffentlicht
Copyright 1997 - 2003, Theo de Raadt.
ISBN 0-9731791-2-0
3.4-Lied: ,The Legend of Puffy Hood'
Was es Neues gibt
Wie man installiert
Wie man den Portierungsbaum benutzt
Ein CD-Set bestellen
Um die Dateien von diesem Release zu beziehen:
- Bestelle eine CD-ROM über unser
Bestellsystem.
- Sieh dir die Informationen auf der FTP-Seite
an, wenn du eine Liste der Spiegelserver sehen willst.
- Geh in das Verzeichnis pub/OpenBSD/3.4/
auf einem der Spiegelserver.
- Überfliege den Rest dieser Seite.
- Schau dir die 3.4-Errataseite an, um
eine Liste an Bugs und Workarounds zu erhalten.
- Lies dir das
detaillierte Protokoll der
Änderungen zwischen dem 3.3- und dem 3.4-Release durch.
Hinweis: Alle anwendbaren Copyrights und Danksagungen
können in den jeweiligen Quelltextdateien in den Dateien src.tar.gz,
sys.tar.gz und XF4.tar.gz gefunden werden, oder auch in den Dateien,
die über ports.tar.gz geholt werden. Die Distributionsdateien, die
benötigt werden, um die Pakete aus der Datei ports.tar.gz zu erzeugen,
sind aus Platzgründen nicht auf den CD-ROMs enthalten.
Was es Neues gibt
Dies ist eine unvollständige Liste an neuen Funktionalitäten und
Teilsystemen, die in OpenBSD 3.4 integriert wurden. Eine vollständige
Liste findet sich im Changelog, das zu 3.4
führt.
- Die i386-Architektur wurde auf das
ELF-,executable
format' umgestellt.
- Weitere W^X-Verbesserungen, unter anderem Unterstützung für
die i386-Architektur. Bei nativen i386-Binarys wurde das
Codesegment umgeordnet, um die Trennung von Code und Daten
voranzutreiben, und das CPU-Codesegment-Limit wird dazu benutzt,
eine bestmögliche Lösung für die Ausführung von Code zu
gewährleisten.
- ld.so(1)
auf ELF-Plattformen lädt Bibliotheken jetzt in einer zufälligen
Reihenfolge, um widerstandsfähiger gegen Attacken zu sein.
Die i386-Architektur bildet ebenfalls Bibliotheken auf einigermaßen
zufälligen Adressen ab. Zusammen mit W^X und
ProPolice
erhöhen diese Änderungen die Schwierigkeit, einen Fehler in
einer Anwendung (wie einen Pufferüberlauf) erfolgreich auszubeuten.
- Ein ,static bounds checker' wurde zum Compiler hinzugefügt, um
grundlegende Überprüfungen von Funktionen durchzuführen,
die Puffer und Größenangaben akzeptieren.
Der Checker zielt darauf, allgemeine Fehler im Umgang mit
Bibliotheksfunktionen zu finden, so wie
strlcpy(3)
oder sscanf(3),
ohne irrtümliche Positivmeldungen auszugeben.
Die Anwendungen auf den Quelltext- und Portierungs-Baum zeigte über hundert
echte Bugs auf, die - wo immer möglich - ausgebessert und den
ursprünglichen Autoren zurückgeschickt wurden.
- Privilegientrennung wurde für den
syslogd(8)-Daemon
implementiert, wodurch er widerstandsfähiger gegen zukünftige Fehler
wurde. Der Kindprozess, der am Netzwerk lauscht, läuft nun als
normaler Benutzer und ,chroot'et sich selbst, während der
Elternprozess den Status des Kinds verfolgt und an seiner Stelle
privilegierte Operationen ausführt.
- Viele unsichere String-Funktionen wurden aus dem Kernel und aus
Userland-Programmen entfernt. Dieses Audit ist eines der
umfassendsten, das OpenBSD je unternommen hat, mit tausenden
Vorkommnissen von
strcpy(3),
strcat(3),
sprintf(3)
und
vsprintf(3),
die durch sicherere, beschränkte Alternativen ersetzt wurden wie
strlcpy(3),
strlcat(3),
snprintf(3),
vsnprintf(3)
und
asprintf(3).
- Viele Verbesserungen und behobene Fehler im Stack-Protector
ProPolice.
Mehrere andere Fehler bei der Codegenerierung für RISC-Architekturen
behoben.
-
ProPolice-Stack-Protection wurde nun auch im Kernel aktiviert.
- Privilegientrennung wurde in den X-Server implementiert. Der
privilegierte Kindprozess ist für die Operationen verantwortlich, die
nicht mehr ausgeführt werden können, nachdem der Hauptprozess zu
einem nicht privilegierten Benutzer umgeschaltet wurde.
Dies reduziert den möglichen Schaden durch böswillige X-Clients
im Falle eines Bugs im X-Server stark.
- Unterstützung für die Binärkompatibilität wird nun
über
sysctl(8) kontrolliert.
Die Emulation ist nun standardmäßig ausgeschaltet, um die
Angriffsfläche für böswillige Binarys zu begrenzen und kann in
sysctl.conf(5) eingeschaltet werden.
- Die Handbuchseiten wurden stark aufgeräumt und verbessert.
- Der Portierungsbaum unterstützt nun das Erzeugen von Programmen unter
systrace(1) und verringert damit die Wahrscheinlichkeit von
Anwendungen, die das System zurzeit der Kompilation mittels
trojanisierter Konfigurationsskripte o. ä. beschädigen.
- ,Symbol caching' in
ld.so(1)
verringert die Startdauer großer Anwendungen.
- Mehr Lizenzausbesserungen, unter anderem die Entfernung der
Werbeklausel in großen Teilen des Quelltextbaums.
- Ersetzung der GNU-Kommandos
diff(1),
diff3(1),
grep(1),
egrep(1),
fgrep(1),
zgrep(1),
zegrep(1),
zfgrep(1),
gzip(1),
zcat(1),
gunzip(1),
gzcat(1),
zcmp(1),
zmore(1),
zdiff(1),
zforce(1),
gzexe(1)
und
znew(1)
durch Gegenstücke unter BSD-Lizenz.
- Nur lesbare Unterstützung für
NTFS-Dateisysteme
hinzugefügt.
- Verbesserungen bei der Zuverlässigkeit überlagerter Dateisysteme,
was
NULLFS
wieder produktionsfähig gemacht hat.
- Importierung des
growfs(8)-Tools,
das die Vergrößerung existierender Dateisysteme erlaubt.
- Verbesserungen bei der
Linux-Emulation
erlauben es nun, noch mehr Anwendungen laufen zu lassen.
- Bemerkenswerte Verbesserungen in der
pthreads(3)-Bibliothek.
- Ersetzung vieler statischer Verwendungen von fd_set durch
poll(2)
oder dynamische Allokation.
- ANSI-fikation und striktere Prototypen für große Teile des
Quelltextbaums.
- Alte KerberosIV-Unterstützung wurde entfernt und die verbleibende
KerberosV-Codebasis wurde für leichtere Handhabung umstrukturiert.
- Über 2400 Portierungen und 2200 bereits gebaute Pakete.
- Große Zahl an Fehlerkorrekturen, Änderungen und Optimierungen
bei unserem Paketfilter
pf(4),
unter anderem:
- Paketmarkierung (z. B. Filter auf Tags, die basierend auf der
MAC-Adresse durch die Bridge hinzugefügt wurden)
- ,stateful TCP normalization' (verhindert Berechnung der Uptime und
Erkennung von NAT)
- Passive OS-Erkennung (Basierend auf dem OS können Verbindungen
gefiltert oder umgeleitet werden)
- SYN-Proxy (schützt Server gegen SYN-Flood-Attacken)
- ,adaptive state timeouts' (verhindert Überläufe in der
Zustandstabelle bei Angriffen)
- Verbesserte Hardwareunterstützung, unter anderem:
- Kauai ATA Controller (Apple ATA100 wdc)
kauaiata(4) unterstützt Powerbook-12"- und -17"-Modelle.
- Unterstützung für die Kontrolle der LongRun-Register der
Transmeta-CPUs.
- Viele Fehler behoben bei den SCSI-Treibern
aac(4),
ahc(4),
osiop(4)
und siop(4).
- Neue Hardwaremonitor-Treiber:
it(4),
lm(4) und
viaenv(4)
- Neuer
safe(4)-Treiber
für SafeNet-Kryptobeschleuniger.
- Neuer
mtd(4)-Treiber
für Myson-Technologies-Netzwerkkarten.
- Mehr unterstützte Ethernetkarten durch
sk(4),
wi(4),
fxp(4)
und dc(4).
- Gründliche Überholung und Synchronisation des kompletten
usb(4)-Subsystems
mit NetBSD.
- Neue und bessere Unterstützung für verschiedene Controller in
pciide(4),
unter anderem experimentelle Unterstützung für Serial ATA.
- Neue Treiber, um die
mgx(4)- und
pninek(4)-SPARC-Framebuffer zu unterstützen. Der
vigra(4)-Treiber unterstützt ebenfalls mehrere Modelle.
- pcmcia(4)-Unterstützung
für Tadpole-SPARCBooks und -SPARCs mit PCMCIA-SBus-Bridges.
- Watchdog-Unterstützung für
elansc(4)
und
geodesc(4),
wie sie auf Soekris-Boards verwendet werden.
- Das System schließt folgende große Komponenten von Dritten mit ein:
- XFree86 4.3.0 (+ Korrekturroutinen und i386 enthält auch 3.3.X-Server,
deshalb Unterstützung aller Chipsätze)
- Gcc 2.95.3 (+ Korrekturroutinen)
- Perl 5.8.0 (+ Korrekturroutinen)
- Apache 1.3.28, mod_ssl 2.8.15, DSO-Unterstützung (+ Korrekturroutinen)
- OpenSSL 0.9.7b (+ Korrekturroutinen)
- Groff 1.15
- Sendmail 8.12.9 (+ parse8.359.2.8-Sicherheitskorrektur)
- Bind 9.2.2 (+ Korrekturroutinen)
- Lynx 2.8.4rel.1 mit HTTPS- und IPv6-Unterstützung (+ Korrekturroutinen)
- Sudo 1.6.7p5
- Ncurses 5.2
- Latest KAME IPv6
- Heimdal 0.6rc1 (+ Korrekturroutinen)
- Arla-current
- OpenSSH 3.7.1 (jetzt mit GSSAPI-Unterstützung)
- Viele Verbesserungen in Sicherheit und Zuverlässigkeit (beachte die
rot gedruckten Stellen im kompletten
Changelog).
- und viel mehr.
Wie man installiert
Es folgen Anweisungen, die du auf einem Zettel hättest, wenn du ein
CD-ROM-Set gekauft hättest, statt eine alternative Form der Installation
zu wählen. Die Anweisungen für eine Installation per FTP (oder einen
anderen Weg) sind sehr ähnlich; die CD-ROM-Anweisungen wurden intakt
belassen, sodass du sehen kannst, um wie viel einfacher es gewesen
wäre, wenn du stattdessen ein CD-Set gekauft hättest.
Bitte lies die folgenden Dateien auf den drei CD-ROMs oder auf einem
FTP-Spiegelsever für ausführliche Details, wie du OpenBSD 3.4 auf deiner
Maschine installierst:
- CD1:3.4/i386/INSTALL.i386
- CD2:3.4/macppc/INSTALL.macppc
- CD2:3.4/vax/INSTALL.vax
- CD3:3.4/sparc/INSTALL.sparc
- CD3:3.4/sparc64/INSTALL.sparc64
- FTP:.../OpenBSD/3.4/alpha/INSTALL.alpha
- FTP:.../OpenBSD/3.4/hp300/INSTALL.hp300
- FTP:.../OpenBSD/3.4/hppa/INSTALL.hppa
- FTP:.../OpenBSD/3.4/mac68k/INSTALL.mac68k
- FTP:.../OpenBSD/3.4/mvme68k/INSTALL.mvme68k
Kurzinformation über die Installation für Leute, die bereits mit OpenBSD
und dem Kommando ,disklabel -E' vertraut sind. Wenn du bei der
Installation von OpenBSD nicht weiter weißt, dann lies die entsprechende
INSTALL.*-Datei, die oben aufgelistet ist!
OpenBSD/i386:
Spiele mit deinen BIOS-Optionen herum, um das Booten von CD zu
aktivieren. Das OpenBSD/i386-Release befindet sich auf CD1. Wenn dein
BIOS das Booten von CD nicht unterstützt, brauchst du eine Bootdiskette,
mit der du dann installieren kannst. Um eine solche zu erstellen,
schreibe CD1:3.4/i386/floppy34.fs auf eine Diskette und boote vom
Diskettenlaufwerk.
Für eine breitere Unterstützung an SCSI-Controllern benutze stattdessen
CD1:3.4/i386/floppyB34.fs oder aber
CD1:3.4/i386/floppyC34.fs für bessere Laptopunterstützung.
Wenn du OpenBSD neben anderen Betriebssystemen betreiben willst, solltest
du unbedingt das Dokument INSTALL.i386 lesen.
Um eine Bootdiskette unter MS-DOS zu erstellen, benutze das Programm
,rawrite', das du unter CD:/3.4/tools/rawrite.exe finden kannst.
Um eine Bootdiskette unter einem Unix-Betriebssystem zu erstellen,
benutze das Programm
dd(1). Es folgt ein Beispielaufruf für
dd(1),
wobei das Device ,floppy', ,rfd0c' oder ,rfd0a' sein könnte.
# dd if=<file> of=/dev/<device> bs=32k
Stelle sicher, dass du ordentlich formatierte und funktionierende
Disketten OHNE DEFEKTE BLÖCKE verwendest oder deine Installation wird
höchstwahrscheinlich fehlschlagen. Für mehr Informationen über das
Erstellen einer Bootdiskette oder über das Installieren von OpenBSD/i386
sieh dir bitte FAQ4.1 an.
OpenBSD/macppc:
Lege die CD2 in dein CD-ROM-Laufwerk und drücke die Taste C
während des Einschaltens bis der Bildschirm angeht und
OpenBSD/macppc boot anzeigt.
Alternativ kannst du am ,Open Firmware'-Prompt boot cd:,ofwboot
/3.4/macppc/bsd.rd eingeben.
OpenBSD/vax:
Boote über das Netzwerk per mopbooting wie in INSTALL.vax beschrieben.
OpenBSD/sparc:
Das 3.4er Release von OpenBSD/sparc befindet sich auf CD3. Um von dieser
CD zu booten, kannst du einen der beiden unten stehenden Befehle
benutzen - je nach der Version deines ROMs.
> boot cdrom 3.4/sparc/bsd.rd
oder
> b sd(0,6,0)3.4/sparc/bsd.rd
Wenn deine Sparc kein CD-Laufwerk hat, kannst du alternativ von Diskette
booten. Um das zu tun, schreibe ,CD3:3.4/sparc/floppy34.fs' auf eine
Diskette. Für mehr Informationen siehe auch
FAQ4.1. Um von einer Diskette
zu booten, kannst du einen der beiden unten stehenden Befehle benutzen -
je nach der Version deines ROMs.
> boot floppy
oder
> boot fd()
Stelle sicher, dass du eine ordentlich formatierte Diskette OHNE DEFEKTE
BLÖCKE benutzt oder deine Installation wird höchstwahrscheinlich
fehlschlagen.
Wenn deine Sparc weder ein Disketten- noch ein CD-Laufwerk hat, kannst
du entweder ein bootbares Streamerband bereit machen oder über das
Netzwerk installieren, wie im INSTALL.sparc-Dokument erklärt.
OpenBSD/sparc64:
Lege die CD3 in dein CD-ROM-Laufwerk und gib boot cdrom ein.
Wenn das nicht klappt oder du kein CD-ROM-Laufwerk hast, kannst du
CD3:3.4/sparc64/floppy34.fs auf eine Diskette schreiben und diese
mit boot floppy booten.
Stelle sicher, dass du eine ordentlich formatierte Diskette OHNE DEFEKTE
BLÖCKE benutzt oder deine Installation wird höchstwahrscheinlich
fehlschlagen.
Du kannst auch CD3:3.4/sparc64/miniroot34.fs auf die
Swap-Partition der Platte schreiben und mit boot disk:b booten.
Wenn nichts davon funktioniert, kannst du auch über das Netz booten, wie
in INSTALL.sparc64 beschrieben.
OpenBSD/alpha:
Schreibe FTP:3.4/alpha/floppy34.fs oder
FTP:3.4/alpha/floppyB34.fs (abhängig von deiner Maschine) auf
eine Diskette und gib boot dva0 ein. Halte dich an die
Anweisungen in INSTALL.alpha für mehr Details.
Stelle sicher, dass du eine ordentlich formatierte Diskette OHNE
DEFEKTE BLÖCKE benutzt oder deine Installation wird höchstwahrscheinlich
fehlschlagen.
OpenBSD/hp300:
Boote über das Netzwerk, indem du die Anweisungen in INSTALL.hp300
befolgst.
OpenBSD/hppa:
Boote über das Netzwerk, indem du die Anweisungen in INSTALL.hppa oder
von der hppa-Plattformseite befolgst.
OpenBSD/mac68k:
Boote MacOS wie immer und partitioniere deine Festplatte mit den
passenden A/UX-Konfigurationen. Dann extrahiere die Tools für die
Mac-Seite von FTP:3.4/mac68k/utils auf deine Festplatte. Starte
Mkfs, um deine Dateisysteme auf der A/UX-Partition zu erstellen, die du
gerade angelegt hast. Benutze dann den BSD/Mac68k-Installer, um alle
Sets von FTP:3.4/mac68k/ auf deine Partitionen zu kopieren.
Schließlich kannst du den BSD/Mac68k-Booter mit dem Ort deines Kernels
konfigurieren und das System booten.
OpenBSD/mvme68k:
Du kannst ein bootbares Installationsband erstellen oder über das
Netz booten.
Der Netzwerkboot erfordert eine MVME68K-BUG-Version, die die
NIOT- und NBO-Debuggerkommandos unterstützt. Befolge die
Anweisungen in INSTALL.mvme68k für mehr Details.
Anmerkungen zum Quelltext
Die Datei src.tar.gz enthält ein Quelltextarchiv, das ab /usr/src
beginnt. Diese Datei enthält bis auf die Kernelquellen, die sich in
einer separaten Datei befinden, alles, was man braucht. Um es zu
entpacken:
# mkdir -p /usr/src
# cd /usr/src
# tar xvfz /tmp/src.tar.gz
Die Datei sys.tar.gz enthält ein Quelltextarchiv, das ab /usr/src/sys
beginnt. Diese Datei enthält alle Kernelquellen, die man benötigt, um
einen neuen Kernel zu erzeugen. Um es zu entpacken:
# mkdir -p /usr/src/sys
# cd /usr/src
# tar xvfz /tmp/srcsys.tar.gz
Beide Bäume zusammen ergeben eine reguläre CVS-Arbeitskopie. Durch
Benutzen dieser Bäume ist es möglich, einen Vorsprung beim Benutzen
der AnonCVS-Server zu bekommen, wie es hier
beschrieben wird. Das Verwenden dieser Dateien hat ein viel schnelleres
CVS-,update' zur Folge, als wenn man den Quelltextbaum komplett neu erzeugen
müsste.
Portierungsbaum
Mitgeliefert wird auch ein Archiv des Portierungsbaums.
Um es zu entpacken:
# cd /usr
# tar xvfz /tmp/ports.tar.gz
# cd ports
Das Unterverzeichnis ports/ ist eine Arbeitskopie des Portierungsbaums
von OpenBSD.
Lies am besten http://www.OpenBSD.org/faq/de/faq15.html,
wenn du noch nichts über Portierungen weißt.
Dieser Text ist keine Anleitung, wie man die Portierungen benutzt, sondern nur
dazu da, um den Leuten den Einstieg in das OpenBSD-Portierungssystem zu
ermöglichen.
Das Verzeichnis ports/ stellt eine CVS-Arbeitskopie
(siehe in der Handbuchseite von
cvs(1) nach, wenn du mit CVS nicht vertraut bist) unserer Portierungen dar.
Wie unser kompletter Quelltext- ist auch unser Portierungsbaum über anoncvs
verfügbar. Um ihn also auf dem Laufenden zu halten, musst du den
ports/-Baum auf einem schreibbaren Medium haben und den
Baum mit diesem Kommando aktualisieren:
# cd [portsdir]/; cvs -d anoncvs@server.openbsd.org:/cvs update -Pd -rOPENBSD_3_4
[Selbstverständlich musst du die Namen des lokalen Verzeichnisses und
des Servers mit den Namen deiner lokalen Portierungs-Kollektion und eines
Anoncvs-Servers in deiner Nähe austauschen.]
Denk daran, dass die meisten Portierungen über ftp als fertige Pakete
erhältlich sind. Aktualisierte Pakete für 3.4 werden verfügbar
gemacht, sobald Probleme bekannt sind.
Falls du gerne eine weitere Portierung sehen willst, mithelfen willst oder
einfach mehr erfahren willst, solltest du die Mailingliste
ports@openbsd.org abonnieren.
www@openbsd.org
$OpenBSD: 34.html,v 1.33 2012/04/19 23:56:49 ajacoutot Exp $