OpenBSD 3.4 Release:
Data wydania 1 Listopad, 2003
Copyright 1997-2003, Theo de Raadt.
ISBN 0-9731791-2-0
3.4 Piosenka przewodnia: "The Legend of Puffy Hood"
Co nowego?
Instalacja
Drzewo portów
Zamów zestaw płyt CD
Aby pobrać pliki tego wydania:
Uwaga: Informacje o autorach i prawach autorskich znajdują
się w odpowiednich plikach źródłowych, które można znaleźć w archiwach
src.tar.gz, sys.tar.gz, XF4.tar.gz, lub w plikach pobranych przez ports.tar.gz.
Z powodu braku miejsca na CD-ROM-ach, nie są dołączone pliki użyte przy
budowaniu pakietów z drzewa portów (ports.tar.gz).
Co nowego?
Ta lista to tylko część nowych właściwości zawartych w OpenBSD 3.4. Pełny spis
zmian znajduje się w changelogu dołączonym do tego
wydania.
- Format plików wykonywalnych na platformie i386 został zamieniony na
ELF.
- Dalsze usprawnienia W^X. Od teraz działa także na architekturze i386.
Binaria dla i386 posiadają poprawiony segment wykonywalny, który
izoluje kod od danych. Ograniczenia nałożone na rejestr CS procesora
używane są do narzucenia większego nacisku na wykonywanie kodu.
- Na platformach ELF
ld.so(1)
ładuje biblioteki w losowej kolejności, co jeszcze lepiej chroni
przed potencjalnym atakiem. Dodatkowo na architekturze i386 wczytywane są
one pod losowy adres w pamięci. Razem z W^X i ochroną stosu
ProPolice,
zmiany te utrudniają skuteczne wykorzystanie błędów takich
jak przepełnienie bufora.
- Nowe właściwości kompilatora kontrolują wywołania funkcji przyjmujących
jako swoje argumenty bufor i jego rozmiar. Ma to na celu wyłapanie
popularnych błędów programistycznych przy używaniu funkcji
strlcpy(3)
czy sscanf(3)
Sprawdzenie drzewa źródeł i portów zaowocowało odkryciem tysięcy prawdziwych
błędów, które w miare możliwości były naprawione, a zmiany odesłane do
autorów.
- Separacja przywilejów demona
syslogd(8)
czyni go bardziej odpornym na ataki wykorzystujące nowoodkryte błedy.
Proces potomny, nasłuchujący wywołania przez sieć, działa z prawami
normalnego użytkownik w środowisku chroot, podczas gdy rodzic śledzi
jego działanie i operacje wymagające większych przywilejów wykonuje
za niego.
- Wiele niebezpiecznych funkcji operujących na ciągach tekstowych zostało
usuniętych z kernela oraz userlandu. Audyt kodu źródłowego, który był
jednym z najwększych tego typu przedsięwzięć przeprowadzonych
przez Projekt OpenBSD, zastąpił tysiące wywołań funkcji
strcpy(3),
strcat(3),
sprintf(3),
i
vsprintf(3)
na ich bezpieczne odpowiedniki, takie jak
strlcpy(3),
strlcat(3),
snprintf(3),
vsnprintf(3),
i
asprintf(3).
- Usunięto błędy i wprowadzono kolejne udoskonalenia w mechanizmie ochrony
stosu
ProPolice. Zostało poprawionych wiele innych błędów generowania
kodu wynikowego dla architektur RISC.
- Ochrona stosu
ProPolice została także włączona w jądrze.
- Separacja przywilejów X serwera. Wykorzystany został proces potomny, który
jest odpowiedzialny za wykonywanie wszystkich tych operacji, których nie
może wykonać X serwer po pozbyciu się uprawnień roota. Znacznie
utrudnia to przeprowadzenie ataku ze strony złośliwego X klienta, w
przypadku błędów w X serwerze.
- Właściwości binarnej kompatybilności kontrolowane są teraz przez
sysctl(8).
Od teraz, by nie narażać systemu na działanie złośliwych binariów,
emulacja jest domyślnie wyłączona. Można ją włączyć przez ustawienie
odpowiednich zmiennych w pliku
sysctl.conf(5).
- Strony podręcznika systemowego zostały odświeżone i poprawione.
- Drzewo portów zostało wzbogacone o możliwość budowania portów
pod kontrolą
systrace(1), co zapobirga możliwym uszkodzeniom systemu przez
aplikacje zawierające ewentualne konie trojańskie w skryptach
konfiguracyjnych i tym podobnym zagrożeniom podczas kompilacji.
- Przechowywanie w pamięci podręcznej tablicy symboli
ld.so(1)
skraca czas uruchamiania dużych aplikacji.
- Wiele zmian licencyjnych, włączając w to usunięcie ostrzeżeń odnośnie
redystrybucji, w ogromnej części źródeł.
- Programy na licencji GNU:
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),
i
znew(1)
zostały zamienione na odpowiedniki licencjonowane na zasadach BSD.
- Obsługa systemu plików
NTFS.
Możliwy jest tylko praca w trybie tylko do odczytu.
- Poprawiono stabiloność warstwowego systemu plików,
NULLFS
ponownie działa stabilnie.
- Zaimportowane z FreeBSD narzędzie
growfs(8)
pozwala na zmianę rozmiaru istniejącego systemu plików.
- Udoskonalenia
emulacji systemu Linux, pozwalają uruchomić jeszcze więcej aplikacji
skompilowanych dla tego systemu.
- Znaczące usprawnienia biblioteki
pthreads(3).
- Wymiana wielu statycznych wywołań fd_set, na
poll(2)
lub dynamiczną alokację pamięci.
- Dla ogromnej części drzewa źródeł poprawiono zgodność
prototypów funkcji ze standardem ANSI.
- Obsługa KerberosIV została usunięta. KerberosV został poddany
restrukturyzacji tak, by uprościć zarządzanie.
- Ponad 2400 portów i 2200 prekompilowanych pakietów.
- Wiele poprawek, zmian i optymalizacja działania filtra pakietów
pf(4),
włączając w to:
- przyczepianie pakietom tagów (np filtrowanie według tagów nadanych przez
most [ang. bridge] na podstawie adresów MAC)
- normalizacja połączeń stanowych TCP (zapobiega obliczaniu czasu "uptime"
oraz wykrywaniu NAT)
- pasywne rozpoznawanie systemów operacyjnych (filtrowanie lub
przekierowywanie połączeń na podstawie systemu operacyjnego nadawcy
pakietu)
- SYN proxy (chroni serwery przed atakami polegającymi na zalewaniu
[ang. flood] pakietami SYN hosta)
- samodostrajanie się czasu wygaśnięcia wpisów w tabeli połączeń stanowych
(zapobiega przepełnieniu tabeli stanów podczas ataku)
- Poprawiono obsługę wielu urządeń, włączając:
- Kontroler Kauai ATA (Apple ATA100 wdc)
kauaiata(4) zawiera wsparcie dla Powerbook 12" i 17".
- Support for controlling LongRun registers on Transmeta CPUs.
- Wiele poprawek w sterownikach SCSI:
aac(4),
ahc(4),
osiop(4),
i siop(4).
- Nowe sterowniki dla urządzeń odpowiedzialnych za monitoring sprzętu:
it(4),
lm(4), i
viaenv(4).
- Nowy sterownika dla aklceleratora kryptograficznego SafeNet:
safe(4).
- Nowy sterownik dla karty sieciowej Myson Technologies
mtd(4).
- Powiększyła się liczba kart ethernet obsługiwanych przez sterowniki:
sk(4),
wi(4),
fxp(4),
i dc(4).
- Przeniesiono obsługę podsystemu
usb(4)
z NetBSD.
- Wsparcie dla nowych urządzeń sterownika
pciide(4),
włączając w to eksperymentalną obsługę Serial ATA.
- Nowe sterowniki bufora ramki na komputerach SPARC:
mgx(4) i
pninek(4).
Sterownik
vigra(4) obsługuje teraz większą liczbę modeli.
- Sterownik
pcmcia(4)
zawiera wsparcie dla komputerów Tadpole SPARCBook i SPARC z mostkiem
pcmcia-sbus.
- Sterowniki dla urządzeń nadzoru (Watchdog)
elansc(4)
i
geodesc(4)
używanych na płytach Soekris.
- W OpenBSD obecne są także ważne programy pochodzące z trzecich źródeł:
- XFree86 4.3.0 (+ poprawki, wersja i386 zawiera także serwer 3.3.X, aby
powiększyć ilość obsługiwanych kart graficznych)
- Gcc 2.95.3 (+ poprawki)
- Perl 5.8.0 (+ poprawki)
- Apache 1.3.28, mod_ssl 2.8.15, DSO support (+ poprawki)
- OpenSSL 0.9.7b (+ poprawki)
- Groff 1.15
- Sendmail 8.12.9 (+ poprawki związane z bezpieczeństwem parse8.359.2.8)
- Bind 9.2.2 (+ poprawki)
- Lynx 2.8.4rel.1 with HTTPS and IPv6 support (+ poprawki)
- Sudo 1.6.7p5
- Ncurses 5.2
- Latest KAME IPv6
- Heimdal 0.6rc1 (+ poprwki)
- Arla-current
- OpenSSH 3.7.1 (teraz zawiera wsparcie dla GSSAPI)
- Zmiany wpływające na poprawę bezpieczeństwa i
stabilności systemu (zwróć uwagę na tekst wyróżniony czerwonym
kolorem na stronie z pełną listą zmian).
- i wiele, wiele innych.
Instalacja
Poniższą instrukcję mogłeś również otrzymać w formie drukowanej jeśli
zdecydowałeś się na zakup oficjalnego zestawu płyt CD, zamiast
pobrać OpenBSD 3.4 w inny sposób. Instrukcja odnośnie instalacji
przez FTP (lub w inny sposób) jest bardzo podobna; celowo pozostawiono
opis instalacji przy pomocy płyt CD, aby pokazać, że jest ona o wiele
prostsza od pozostałych metod.
Instalacja OpenBSD 3.4 dla różnych architektur sprzętowych opisana jest
w plikach, które możesz znaleźć na CD-ROM-ach lub serwerach ftp:
- 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
Informacja dla niecierpliwych ludzi zaznajomionych z OpenBSD i
używających komendy "disklabel -E". Jeśli poczujesz się zakłopotany podczas
instalacji OpenBSD, po prostu przeczytaj odpowiedni dla Ciebie plik INSTALL.*!
OpenBSD/i386:
OpenBSD/i386 znajduje się na płycie CD1. Zmiana ustawień BIOS-u pozowli na
bootowanie komputera wprost z płyty. Jeśli BIOS nie umożliwia rozruchu
z płyty CD, niezbędne będzie utworzenie dyskietki instalacyjnej. Utwórz
dyskietkę bootującą korzystając z CD1:3.4/i386/floppy34.fs, a
następnie uruchom przy jej pomocy komputer.
W zależności od posiadanego sprzętu pomocne mogą być inne obrazy dyskietek
instalacyjnych. CD1:3.4/i386/floppyB34.fs zawiera wiele sterowników
dla kontrolerów SCSI, natomiast CD1:3.4/i386/floppyC34.fs powstał
z myślą o użytkownikach laptopów.
Jeśli zamierzasz używać wielu systemów operacyjnych na tym samym komputerze
co OpenBSD, powinieneś przeczytać załączony plik INSTALL.i386.
W systemie MS-DOS, dyskietkę instalacyjną utworzysz programem
"rawrite", który znajduje się na CD:/3.4/tools/rawrite.exe.
W systemach Uniksowych dyskietkę bootującą przygotowuje się narzędziem
dd(1)
Poniżej znajduje się przykład zastosowania
dd(1);
gdzie właściwym urządzeniem będzie "floppy",
"rfd0c", lub "rfd0a".
# dd if=<plik> of=/dev/<urzadzenie> bs=32k
Upewnij się, że używana dyskietka jest doskonałej jakości, bez ŻADNYCH
USZKODZONYCH SEKTORÓW, w przeciwnym razie instalacja nie powiedzie się.
Dokładny opis tworzenia dyskietek bootujących i instalacji OpenBSD/i386
znajduje się w
FAQ 4.1.
OpenBSD/macppc:
Włóż CD2 do napędu CD, włącz komputer trzymając wciśnięty klawisz
C dopóki na ekranie nie pojawi się napis OpenBSD/macppc boot.
Można też, po pojawieniu się znaku zachęty Open Firmware, wydać komendę
boot cd:,ofwboot /3.4/macppc/bsd.rd.
OpenBSD/vax:
Aby zainstalować OpenBSD/vax konieczne jest bootowanie komputera przez sieć,
tak jak jest to opisane w INSTALL.vax.
OpenBSD/sparc:
Wersja 3.4 OpenBSD dla platformy sparc znajduje się na płycie CD3. Sposób
bootowania komputera z CD zależny jest od posiadanej wersji ROM. Można
użyć jednego z dwóch poniższych poleceń:
> boot cdrom 3.4/sparc/bsd.rd
lub
> b sd(0,6,0)3.4/sparc/bsd.rd
Jeśli nie posiadasz napędu CD, możesz uruchomić komputer przy użyciu
dyskietki bootującej. Należy nagrać obraz "CD3:3.4/sparc/floppy34.fs"
na dyskietkę. Przygotowanie takiej dyskietki opisane jest w
FAQ 4.1. Podobnie jak w przypadku
CD-ROM, sposób rozruchu z dyskietki zależny jest od posiadanej wersji ROM-u.
> boot floppy
lub
> boot fd()
Upewnij się, że używana dyskietka jest doskonałej jakości, bez ŻADNYCH
USZKODZONYCH SEKTORÓW, w przeciwnym razie instalacja nie powiedzie się.
Jeśli twój sparc nie posiada ani stacji dysków ani napędu CD, można
przygotować taśmę lub przeprowadzić instalację przez sieć, zgodnie z
opisem w pliku INSTALL.sparc.
OpenBSD/sparc64:
Umieść trzecią płyte w napędzie CD i wydaj polecenie boot cdrom.
Jeśli to nie zadziała, albo komputer nie posiada napędu CDROM, można
przygotować dyskietkę instalacyjną przy pomocy pliku
CD3:3.4/sparc64/floppy34.fs i uruchomić komendą boot floppy.
Upewnij się, że używana dyskietka jest doskonałej jakości, bez ŻADNYCH
USZKODZONYCH SEKTORÓW, w przeciwnym razie instalacja nie powiedzie się.
Można także nagrać plik obrazu CD3:3.4/sparc64/miniroot34.fs na partycję
wymiany i uruchomić komputer poleceniem boot disk:b.
Jeśli żaden z wymienionych wyżej sposobów nie zadziała, można jeszcze
bootować komputer przez sieć, tak jak to opisano w INSTALL.sparc64
OpenBSD/alpha:
Utwórz dyskietkę bootującą korzystając z plików
FTP:3.4/alpha/floppy34.fs lub FTP:3.4/alpha/floppyB34.fs
(w zależności od posiadanej maszyny) i uruchom komputer poleceniem
boot dva0. Więcej informacji znajduje się w pliku INSTALL.alpha.
Upewnij się, że używana dyskietka jest doskonałej jakości, bez ŻADNYCH
USZKODZONYCH SEKTORÓW, w przeciwnym razie instalacja nie powiedzie się.
OpenBSD/hp300:
Należy wykorzystać bootowanie przez sieć, tak jak to opisano w INSTALL.hp300.
OpenBSD/hppa:
W pliku INSTALL.hppa i tej stronie opisano
bootowanie przez sieć i instalację OpenBSD na platformie hppa.
OpenBSD/mac68k:
Uruchom MacOS jak zwykle, a następnie przygotuj odpowiednią partycję
na dysku zgodnie z pożądaną configuracją A/UX. Następnie rozpakuj
na twardy dysk narzędzia z pliku FTP:3.4/mac68k/utils.
Programem Mkfs utwórz system plików na partycjach A/UX, które
właśnie przygotowałeś. Przy wykorzystaniu
"BSD/Mac68k Installer" skopiuj pliki z FTP:3.4/mac68k/ na
dysk. Pozostało tylko wskazanie "BSD/Mac68k Booter" gdzie znajduje się
kernel i uruchomienie tak przygotowanego systemu OpenBSD.
OpenBSD/mvme68k:
Można utworzyć taśmę instalacyjną albo uruchomić komputer przez sieć.
Bootowanie przez sieć wymaga, aby MVME68K BUG obsługiwał komendy NIOT
i NBO. Opis instalacji na platformie mvme68k znajduje się w
pliku INSTALL.mvme68k.
Uwagi odnośnie kodów źródłowych:
Archiwum src.tar.gz zawiera pliki źródłowe umieszczane w katalogu /usr/src.
W pliku tym zawarte jest wszystko oprócz źródeł jądra. Znajdują się one
w innym archiwum. Rozpakuj src.tar.gz w następujący sposób:
# mkdir -p /usr/src
# cd /usr/src
# tar xvfz /tmp/src.tar.gz
Archiwum sys.tar.gz zawiera kompletne źródła jądra, umieszczane w katalogu
/usr/src/sys. sys.tar.gz jest niezbędne do kompilacji własnego jądra.
Rozpakuj sys.tar.gz w następujący sposób:
# mkdir -p /usr/src/sys
# cd /usr/src
# tar xvfz /tmp/sys.tar.gz
Oba pliki są zwykłym zrzutem (ang. checkout) repozytorium CVS. Doskonale
nadają się jako baza do uaktualnienia źródeł przez anonimowy serwer CVS.
Opis AnonCVS znajduje się tutaj. Zastosowanie
tych plików do akutalizacji źródeł jest o wiele szybsze niż pobranie całego
kodu OpenBSD z CVS.
Drzewo portów
Projekt OpenBSD dostarcza także archiwum zawierające drzewo portów. Rozpakuj
je, tak jak na poniższym przykładzie:
# cd /usr
# tar xvfz /tmp/ports.tar.gz
# cd ports
Katalog ports/ jest zrzutem repozytorium CVS drzewa portów. Jeśli
nie wiesz co to jest drzewo portów, możesz zajrzeć na na tą
stronę. Nie jest to dokładny opis portów, a jedynie
wprowadzenie, które pozwali użytkownikowi na skorzystanie z dobrodziejstw
systemu portów.
Katalog ports/ przedstawie strukturę portów taką, jaką zawiera
repozytorium CVS (nie znając samego CVS, dobrze jest przeczytać stronę man
cvs(1)). Podonie jak drzewo źródeł, tak samo i drzewo portów dostępne
jest przez AnonCVS. Jeśli chcesz posiadać zawsze aktualne drzewo portów,
musisz umieścić je na medium pozwalające na swobodny odczyt i zapis, a
następnie uaktualnić je przy pomocy polecenia:
# cd [portsdir]/; cvs -d anoncvs@server.openbsd.org:/cvs update -Pd -rOPENBSD_3_4
[Oczywiście, należy zamienić "portsdir" na lokalny katalog, gdzie znajduje
się drzewo portów, a "anoncvsserver.openbsd.org" na adres serwera, który
znajduje się najbliżej Ciebie.]
Proszę zauważyć, że znakomita większość portów dostępna jest w postaci
pakietów przez ftp. Jeśli tylko w pakietach przeznaczonych dla
wersji 3.4 pojawią się błędy, pakiety te zostaną uaktualnione.
Jeśli interesują Cię informacje na temat nowych portów, może sam chciałbyś
pomóc, a może po prostu chciałbyś dowiedzieć się więcej na ten temat - zapisz
się na listę mailingową ports@openbsd.org.
www@openbsd.org
$OpenBSD$