OpenBSD

OpenBSD - a rendszer építése forrásból (kernel)

Címkék

Nna, a visszajelzésekből úgy látom, hogy egyre többen érdeklődnek az OpenBSD iránt. Remélem, hogy az első kettő írás kedvet csinált ehhez a szoftver disztribúcióhoz. Aki esetleg most kapcsolódna be a dologba, az megtalálja a telepítésre vonatkozó információkat itt, a telepítés után ajánlott első lépések leírását itt.

A mai napon azt nézzük meg, hogy hogyan kell saját, az OpenBSD csapat által is támogatott kernelt fordítani. Vágjunk bele:

1.1.) az OpenBSD kiadások

Az OpenBSD-nek három kiadása (flavor = íz, aroma, illat, ahogy az OpenBSD-sek hívják) létezik:

-release: Az OpenBSD-nek az a verziója, amely 6 hónaponként került kiadásra CD-n

-stable: A release, plusz azok a kritikus patchek, javítások (az errata oldalról), amelyek fontosak a biztonságos és stabil működéshez

-current: Az OpenBSD ``éppen aktuális'' verziója, amely fejlesztés alatt áll, és amelyből 6 havonta -release lesz

Grafikusan ez valahogy így néz ki:





A legtöbb felhasználó a -release és a -stable kiadásokat használja, de vannak szép számmal akik mindig a legfrissebb állapotot tükröző -current-et futtatják. Míg a -release és a -stable stabilitást nyújt a felhasználóinak, addig a -current-ben előfordulhat, hogy valami éppen nem működik.

Éppen ezért azoknak, akik éles rendszert futtatnak a -stable (patchelt -release) javasolt. Akiknek az a legfontosabb, hogy állandóan a legfrissebb, legújabb funkciókat használhassák (tapasztalt felhasználók, fejlesztők, tesztelők) esetleg azon az áron is, hogy néha valami nem működik, nekik ajánlható a -current kiadás.

1.2.) snapshot-ok

A kiadások mellett léteznek ún. snapshotok (pillanatképek) is a fejlesztés éppen aktuális állásáról. A kiadások közt levő fél éves ciklusokban jelennek meg a snapshotok az FTP oldalakon. A snapshotok - mint ahogy nevük is mutatja - a fejlesztés éppen aktuális pillanatát ``fényképezik'' le, az éppen aktuális kódból generálónak, így nagyon könnyen előfordulhat, hogy a snapshotok nem működnek 100%-osan.

Kinek jók akkor a snapshotok? A snapshotok igazából a -current felhasználóknak jó. A snapshot jó kiindulópont lehet a -current usernek, hiszen azt telepítve könnyen szinkronizálhatja magát a -current fához.

1.3.) tartsuk a dolgokat szinkronban!

El is érkeztunk minden operációs rendszer biztonságos és stabil működésének sarkalatos pontjához. Egy operációs rendszer csak akkor működik megfelelően, ha az karban van tartva. Ez azt jelenti, hogy a megfelelő verziót használjuk, és a megjelent biztonsági és funkcionális patcheket, javításokat alkalmazzuk a rendszerünkön. Nincs ez máshogy az OpenBSD esetében sem.

Az OpenBSD-vel ismerkedőknek fontos megérteni, hogy az OpenBSD egy operációs rendszer, plusz a megfelelő programok utility-k halmaza, nem pusztán egy operációs rendszer mag (kernel). Ellentétben a Linuxszal (a kernelről beszélünk), ahol a disztribútorok által összeállított programok több kernel verzióval is ragyogóan működnek, a BSD világban az egész operációs rendszer egy egészet alkot, amelyet nem szabad szétválasztani. A OpenBSD három fő részből áll:

- OpenBSD kernel

- az ``userland'' (programok, utility-k, amelyek szerves egységet alkotnak a kernellel)

- port fa (ports tree) (külső 3party alkalmazások)

Ennek a három komponensnek szinkronban kell lennie, máskülönben nemkívánatos működés lehet a ``káosz'' eredménye. Például: nem fogsz tudni vadonatúj port-okat futtatni mondjuk egy-két hónapos rendszeren, vagy nem tudsz működő kernelt fordítani a -current forrásból, ha az ``userland'' programjaid nem a legújabbak. Tehát a jelszó: szinkronizálás!

Hogyan?

A szinronizálás legegyszerűbben úgy történhet, hogy letöltjük a kernel és az ``userland'' forrását, lefordítjuk, majd telepítjük. Ezzel az első kettő komponens naprakész. Természetesen szinkronban kell tartanunk a port fát is (erről később). Egyetlen nagyon fontos dolog van, amelyet észben kell tartani a forrásból való frissítéskor: a frissítés egyirányú, azaz csak upgrade-lni lehet. Downgrade-re nincs lehetőség. A frissítés iránya mindig a korábbiról az újabbra, a -stable-ról a -currentre történik. Nem teheted meg azt, hogy az OpenBSD 3.5-current-et használva meggondolod magad (mert mondjuk valami nem működik) és visszalépsz a 3.5-stable-re. A választás a magad választása, ilyenkor csak azt tudod megtenni, hogy újratelepíted a rendszert az elejéről (from scratch). Az OpenBSD csapat ebben neked nem fog segíteni, hiába is fordulsz hozzájuk!

Mielőtt -current-re frissítesz GONDOLD MEG KÉTSZER!

1.4.) Miért van szükségem saját kernelre?

Általában nincs szükséged saját (nem a GENERIC file alapján fordított) kernelre, megfelelő az OpenBSD csapat által szállított GENERIC kernel.

A kernelt többféleképpen is ``felépítheted''. Fordíthatod a GENERIC (konfig)file alapján (ez az OpenBSD csapat által szállított kernel), de készíthetsz saját kernelt is úgy, mint mondjuk Linux alatt. A saját kernel készíthető -release, -stable és -current kódból is, akárcsak a GENERIC kernel. Egy óriási különbség van a saját és a GENERIC kernel között. Az előbbit nem, míg az utóbbit támogatja az OpenBSD csapat.

A GENERIC kernel konfigurációs file (amely alapján a GENERIC kernelt le tudjuk fordítani) úgy van felépítve, hogy az a legtöbb ember számára megfelelő. Sok ember azt hiszi, hogy ha saját kernelt fordít, akkor jobb lesz a rendszerének működése, teljesítménye. Ez nem igaz az OpenBSD esetén! Csak speciális igények esetén kell saját (nem a GENERIC konfig alapján) kernelt fordítanod!

Néhány ok ami miatt saját kernelt fordíthatsz:

- Biztos vagy benne, hogy tudod mit teszel, és el akarsz távolítani bizonyos számodra szükségtelen eszközmeghajtó-programokat (device drivers), mert olyan rendszerre akarod telepíteni az OpenBSD-t, amely nagyon kevés memóriával rendelkezik

- Biztos vagy benne, hogy tudod mit teszel, és engedélyezni akarsz olyan funkciókat, amelyek alapértelmezetten nincsenek engedélyezve, vagy le akarsz tiltani olyan funkciókat, amelyek alapértelmezett engedélyezve vannak, de számodra szükségtelenek

- Biztos vagy benne, hogy tudod mit teszel, és engedélyezni szeretnél csak kísérleti jelleggel elérhető funkciókat

- Biztos vagy benne, hogy tudod mit teszel, és olyan speciális kivánságaid vannak, amelyeket a GENERIC kernel nem elégít ki, ezért saját kernelt fordítasz (viszont ha nem működik valami a saját kerneleddel, akkor nem fogod megkérdezni, hogy miért nem működik)

Néhány ok ami miatt _biztos_, hogy nem kell saját kernel fordítanod:

- Normális esetben nem kell saját kernelt fordítanod

- Saját kernellel nem lesz gyorsabb a rendszered

- Saját kernellel könnyen készíthetsz kevésbé megbízható rendszert

- Saját kernellel nem kapsz támogatást a fejlesztőktől

- Ha valami hibát találsz, akkor azt előbb reprodukálnod kell majd a GENERIC kernellel is, mielőtt azt szeretnéd, hogy a fejlesztők komolyan foglalkozznak a problémáddal

- A felhasználók és a fejlesztők nevetni fognak, ha tönkreteszed a rendszered

- A saját fordító (compiler) opciók gyakrabban idéznek elő fordító program hibákat, minthogy gyorsítanák a rendszer működését

1.5.) a kenrel konfigurációs fileok

Az OpenBSD kernel ``építésének'' módja a konfigurációs fileokban van rögzítve. Ezek a filok a /usr/src/sys/arch/$arch/conf/ könyvtában találhatóak alapértelmezés szerint (ahol a $arch az éppen használt architektúrát jelenti). Minden architektúrának van egy olyan fileja, amelyet GENERIC-nek hívnak. Ebből a fileból lehet előállítani a standard OpenBSD kernelt a különböző platformokra. Léteznek még egyéb kernel konfigurációs fileok is, amelyekkel különböző céllal létrehozott kerneleket lehet előállítani. Ilyen fileok például a DISKLESS, RAMDISK, RAMDISKB, RAMDISKC, amelyek nevéből lehet következtetni arra, hogy milyen kernelt lehet belőlük ``építeni''.

A konfigurációs filet a config(8) dolgozza fel, amely létrehozza és előkészíti fordításra használt könyvtárt a ../compile útvonalon (tipikus telepítés esetén a /usr/src/sys/arch/$arch/compile/ útvonalon). A config(8) szintén létrehoz egy Makefile-t, és az összes többi olyan filet, amely a sikeres kernelfordításhoz szükséges.

Példaként nézd meg az i386-os architektúra konfigurációs filejait itt.

A konfigurációs fileok architektúránként változnak, de van közös részük is. Ezért van az, hogy a fileok elejében ezt olvashatjuk:

include "../../../conf/GENERIC"

Ez azt jelenti, hogy a platform-független opciók ebben a fileban vannak elhelyezve, és ezt használja az összes platform kiegészítve a saját, csak az ő platformjára jellemző opciókkal.

Ez a file a src/sys/conf/. Ha saját kernel konfig filet hozol létre, akkor nézd meg ezt a filet is!

1.6.) saját kernel építése

A saját kernel készítésére vonatkozó teljes és részletes leírást megtalálod a man afterboot(8)-ban, itt csak egy rövid leírást talász:

Ahhoz, hogy saját kernelt fordíthass, szükséged lesz a forráskódra. Ezt vagy a hivatalos CD-ROM-on (3-as diszk), vagy az FTP oldalakon találod.

Forrás telepítése CD-ről:

A következő példa feltételezi, hogy a 3-as CD fel van mountolva a /mnt alá:

# cd /usr/src

# tar xvzf /mnt/src.tar.gz

Forrás telepítése FTP-ről:

Ha a forráskódot FTP-ről töltöd le, akkor szükség lesz a src.tar.gz és a sys.tar.gz fileokra is. Az első az ``userland'' forrása, míg a második a kernelforrás. (A CD-ROM-on ez a két file egybe van dolgozva). Az FTP-s letöltés esetén ezt a két file-t bontsd ki a /usr/src könyvtárba.

A legegyszerűbb módon úgy tudsz saját kernelt fordítani, hogy a GENERIC filet használod fel (emlékezz! csak indokolt esetben kell eltérni a GENERIC filetól! a legtöbb esetben semmi sem indokolja, hogy módosítsd a hivatalos kernel konfigurációt!).

A GENERIC file-t megtalálod a /usr/src/sys/arch/$ARCH/conf/GENERIC útvonalon, ahol a $ARCH az általad használt architektúrát jelöli. Ez a legtöbb esetben i386.

A fordítás (ha a forrásfa csak olvasható helyen van):

# cd /akárhova

# cp /usr/src/sys/arch/$ARCH/conf/SOMEFILE VALAMI

(ahol a VALAMI általában a rendszer neve. Például ha a gép a foobar.foo.hu, akkor a VALAMI legyen FOOBAR. ez nem kötelező, csak ajánlott, és bevett szokás)

# vi VALAMI (változtassunk, ha szeretnénk)

# config -s /usr/src/sys -b . VALAMI

ezt két parancs követheti:

# make depend

- VAGY -

# make clean

# make

A ``make depend''-et akkor kell futtatni, ha valami változott a forrásban (pl. patchelted, vagy frissítetted), azaz általában mindig. A ``make clean''-t abban az esetben kell használni, ha megváltoztattuk a kernel konfigurációs opciókat és/vagy a forrásfában nagyobb változtatás történt. A ``make clean'' egyébként bármikor használható, egyetlen hátránya a hosszabb ``build''-elési idő.

A fordítás (ha a forrásfa írható/olvasható):

# cd sys/arch/$ARCH/conf

# cp SOMEFILE VALAMI

# vi VALAMI (változtass igényed szerint)

# config VALAMI (bővebben infóért nézd meg a man config(8)-ot)

# cd ../compile/VALAMI

# make

Ahol az $ARCH az általad használt architektúra (pl. i386).

A kernel helyére másolása:

# cp /bsd /bsd.old

# cp /sys/arch/$ARCH/compile/SOMEFILE/bsd /bsd

Ha valami balul ütne ki, akkor a boot időben válaszd a korábbi kernelt:

boot> bsd.old

és ebben az esetben a korábbi működő kerneled (/bsd.old) indul el a frissen fordított helyett (/bsd).

Mára ennyi, legközelebb folytatjuk.



Az írás a hivatalos OpenBSD FAQ lapján készült.

005: RELIABILITY FIX: Reply to in-window SYN with a rate-limited ACK

Címkék

Az OpenBSD csapat egy megbízhatóságot javító patchet adott ki minap a korábban a HUP-on is említett TCP implementációban található sebezhetőség ellen. A csapat hozzáteszi, hogy az OpenBSD-n eddig is nehéz volt kihasználni ezt a sebezhetőséget, hiszen az OBSD TCP/IP stack már korábban is fel volt készítve Paul Watson prezentációjában ismertetett problémák közül néhányra. Többek közt alkalmazza a random port számok, és random ISN-ek technikáját. A mostani patch további paranoiákat tartalmaz.

Az errata-kat megtalálod: az OpenBSD 3.5-höz itt, a 3.4-hez pedig itt.

Készítsünk saját OpenBSD telepítő CD-t

Címkék

Hozzávalók: internet elérés, egy működő tükör szerver, mkisofs, cdíró program, és kétnapi hideg élelem.

1.) Szemeljünk ki egy szervert, FTP-zzünk fel rá.
2.) Majd keressük az OpenBSD könyvtárat.
3.) Készítsünk elő egy könytvárat a gépünkön. Legyen mondjuk: openbsd.
4.) Ebben hozzunk létre egy 3.5 nevű könyvtárat.
5.) Töltsük le bele a szerverről a tools, i386 könyvtárat, és ízlés szerint a packages könyvtárból, amit csak kívánunk. A szöveges fileok esetleg mehetnek a 3.5-be.
6.) Majd keressük az XF4.tgz, ports.tgz, src.tgz, sys.tgz nevű fájlokat, és rakjuk az openbsd könyvtárunkba. Ezzel az előkészületekkel készen is lennénk.
7.) Hozzuk létre az ISO-nkat. Menjünk az openbsd könyvtárunkba, majd gépeljük be:

OpenBSD 3.5 - Az első lépések a telepítés után (kezdőknek)

Címkék

A múlt alkalommal sikeresen telepítettük az OpenBSD 3.5 rendszerünket, és odáig jutottunk, hogy az első boot után login-oltunk ``root'' felhasználóként. Akkor azt ígértem, hogy a következő részben nekiállunk saját kernelt fordítani, de meggondoltam magam. Ennek az oka az, hogy aki most ismerkedik az OpenBSD-vel, annak számos dolog furcsa lehet, bizonyos fileok nem ott vannak és nem olyan néven ahol mondjuk megszokta Linux alatt, stb. A mai nap inkább nézzük azokat az alapvető lépéseket, amelyeket erősen javasolt a telepítés után azonnal elvégezni.

OpenBSD 3.3 End Of Life

Címkék

Brad announce@-ra küldött levele szerint az OpenBSD 3.3-STABLE ága a mai naptól kezdve elérte életciklusa végét, és karbantartás nélkülivé vált. A tegnapi naptól kezdve ehhez a branch-hez már semmilyen javítást és patchet nem készítenek.Azoknak a felhasználóknak, akik még mindig 3.3-STABLE-t vagy annál régebbi kiadást használnak, erősen javasolják a frissítést, lehetőleg az OpenBSD 3.5-re (amely május 1-én jelent meg).

Brad levele:

Feladó: Brad

Címzett: announce@openbsd.org

Tárgy: OpenBSD 3.3 Enf Of Life

Dátum: Wed, 5 May 2004 04:20:56 -0400

Due to the release of OpenBSD 3.5, the 3.3-STABLE branch will bebe out of regular maintainance starting today. There will beNO MORE fixes commited to this branch nor new patches.

People relying on 3.3-STABLE (or older releases even) are stronglyadvised to upgrade to a more recent release (preferrably 3.5 as itwas released on May 1st) as soon as possible.

// Brad

Telepítsünk OpenBSD 3.5-öt FTP-n keresztül (tutorial kezdőknek)!

Címkék

Május 1-én az ígéretek szerint megérkezett az OpenBSD legfrissebb, legújabb és legjobb kiadása, az OpenBSD 3.5. A rendszer számos olyan nagyszerű új funkciót tartalmaz, amely miatt az ember fia úgy dönthet, hogy felhasználja mindennapi munkája során. Az OpenBSD a világ egyik legbiztonságosabb operációs rendszere (ahogy a projekt szlogenje is mutatja: 8 év mindössze 1 távolról kihasználható hibával, alapértelmezett telepítés esetén), tehát aki fanatikusan paranoid annak mindenképpen ajánlott. Ajánlott még azoknak, akiknek esetleg üzleti kritikus tűzfalat, alkalmazásokat kell üzemletetni, hiszen a kiadásban megjelenő HA-szerű funkciók lehetővé teszik akár a failover képességekkel bíró állapottartó csomagszűrő rendszer, vagy egyéb szervizek futtatását.

Merevlemez nélküli, kisméretű OpenBSD rendszerek

Címkék

Michael Lucas előző cikkében otthon saját kezűleg elkészíthető, OpenBSD alapú tűzfal berendezést készített Soekris mini PC-ből. A berendezés Compact Flash (CF) kártyát használt háttértárként. A NET4801-es gép ilyen kiépítésben számos dologra nagyszerűen használható, de a CF kártyán tárolt rendszer frissítése nem oldható meg kényelmesen. Michael ezért úgy döntött, hogy átalakítja a berendezést úgy, hogy az hálózatról bootoljon.Mi az előnye annak, hogy az eszköz(ök) hálózatról bootolnak? Egyszerű: egy szerver számos net-ről bootoló eszközt kiszolgálhat, az adminisztrátor a szerveren egyszerűen menedzselheti a rendszereket, nem szükséges a berendezéseket hackelni (ami számos esetben nehézkes), stb.

Mi kell az ilyen diskless környezet kiépítéséhez? A szerveren futó NFS szerviz, dhcpd(8), rarpd(8) és tftpd(8) szükséges. A kliens oldalon a szerző a bootolást patchelt GRUB-bal oldotta meg, de megfelelő ethernet kártya esetén ezt akár a pxeboot(8) segítségével is megoldhatjuk.

A cikkben leírt környezet természetesen nem csak a Soekris cuccokra, hanem bármilyen gépre kiépíthető. Michael cikkét megtalálod itt.

Megjegyzés: Azok figyelmébe, akik hasonló kis méretű rendszer kiépítésén törik a fejüket... asd hívta fel a figyelmemet egy magyar weboldalra, ahol számos kis méretű, beágyazott rendszert lehet vásárolni. A Soekris gépek nagyon jól használhatók, de mivel csak külföldről lehet rendelni, meglehetősen körülményes a beszerzésük, és az áruk is magas egy picit. Érdemes szétnézni a www.microdigit.hu oldalt, különös tekintettel ezen az oldalon.

OpenBSD 3.5

Címkék

Az OpenBSD fejlesztők ígéretükhöz híven május 1-ére kiadták az OpenBSD 3.5-ös verzióját. Ez a kiadás a 15. CD-ROM és egyben a 16. FTP kiadás - olvashatjuk Todd C. Miller levelében.

Természetesen (mint mindig) megjegyzik, hogy büszkék arra, hogy az OpenBSD-ben csak egy távolról kihasználható hiba volt 8 év alatt alapértelmezett telepítés esetén.

A korábbi kiadásokhoz képest az OpenBSD 3.5 számos jelentős újdonságot hoz a felhasználóknak:

- Biztonság - új ptm eszköz, privilégium elkülönítés kiterjesztése több szolgáltatásra, számos javítás a ProPolice verem védelemben, malloc(8)-ban történt változtatások a nagyobb biztonság érdekében

- Javított hardver támogatás - számos új architektúra támogatása (OpenBSD/amd64, OpenBSD/cats, OpenBSD/mvme88k), és még több új és javított driver

- Fejlesztések a pf-ben (packet filter): az OpenBSD csomagszűrője, a pf is jelentős javításokon ment keresztül (30%-kal kevesebb bejegyzés az állapot-táblában, forrás követés, jelentős javítások a kezelő felületben, stb.)

- Magas rendelkezésre-állás: A HA funkciók biztosítására két új eszköz jelent meg. Az egyik a CARP, a másik pedig a pfsync

- Teljesítmény javítások: az OpenBSD 3.5-ben jelentős javítások történtek az operációs rendszer sebességét növelendő. 100x gyorsabb socket/kapcsolat lookup 10000 socket esetén, mint a 3.4-ben, TCP SYN cache, OpenSSL gyorsítások i386-on (akár 100% gyorsulás), stb.

- Egyebek: megszűnt i386-on a 8GB-os bootolási limitáció, lecserélésre kerültek a GNU bc(1), dc(1), nm(1) és size(1) parancsok a BSD licencű megfelelőikre, stb.

Felsorolni is nehéz lenne az újdonságok listáját, úgyhogy olvassuk el inkább Todd C Miller levelét a részletes tudnivalókért:List: openbsd-announce

Subject: OpenBSD 3.5 released!

From: "Todd C. Miller"

Date: 2004-04-30 23:05:55

Message-ID:

[Download message RAW]

------------------OpenBSD 3.5 RELEASED-------------------------

May 1, 2004.

We are pleased to announce the official release of OpenBSD 3.5.

This is our 15th release on CD-ROM (and 16th via FTP). We remain

proud of OpenBSD's record of eight years with only a single remote

hole in the default install. As in our previous releases, 3.5

provides significant improvements, including new features, in nearly

all areas of the system:

- Ever-improving security (http://www.OpenBSD.org/security.html)

o New ptm device (see pty(4)) that allows non-privileged processes to

allocate a properly-permissioned pty. As a result any process can

now open a pty easily, meaning xterm(1) and xconsole(1) are no longer

setuid root. (In 3.4 they were setuid root, but privilege revoking).

o malloc(3) chunk randomization and guard pages. This helps to detect

out-of-bounds reads and writes.

o Privilege separation added to allow complex operations to occur in an

untrusted, unprivileged process, resulting in much greater security

for the following processes:

- isakmpd(8)

- named(8) (Previously privilege revoking, but this had a small breakage).

- pflogd(8)

- tcpdump(8)

o Many improvements and bug fixes in the ProPolice stack protector.

Several other code generation bugs for RISC architectures were also

found and fixed.


- Improved hardware support (http://www.OpenBSD.org/plat.html)

o New hardware platforms:

- OpenBSD/amd64

Supporting the AMD64 architecture natively, with full 64-bit support,

8 extra registers in the architecture to significantly increase

performance, and a memory management Non-Executable bit that permits

full W^X support.

- OpenBSD/cats

Our first entry in the ARM-cpu landscape. We intend to use this as a

development platform for something else we plan for the future...

- OpenBSD/mvme88k

Supporting an older, but very cool cpu architecture, perhaps the most

pure RISC cpu ever.

o The hppa architecture gets support for many PCI based machines with the

addition of dino(4) GSC-PCI bridge.

o New oosiop(4) driver for NCR 53C700 SCSI host adapters.

o Major improvements to ahc(4), bringing support for many new models.

o New bce(4) driver, supporting the Broadcom BCM4401 FastEthernet chipset.

o New mpt(4) driver for LSI Fusion-MPT SCSI and FibreChannel host adapters.

o New snapper(4) audio driver for recent iBook (since May 02) and PowerBook

(since Apr 02) models.

o Improved stability of the wi(4) driver as well as support for

USB-based adapters and software WEP.

o wi(4) in HostAP mode now supports SSID hiding in newer prism firmware

revisions.

o Fixed several firmware incompatibility issues in an(4).

o Improved ATA and SATA support.

o Support for i835 AGP GART in vga(4).

o Improved Gigabit Ethernet support for em(4), sk(4) & bge(4).

o Several fixes for apm(4).

o Support for Intel 852/855/865 AGP chipsets.

o SCSI(4) improvements:

- Bus probe made faster by skipping non-existent LUNs.

- Bus probe made saner by elimination of spurious commands.

- Bus probe made safer by having INQUIRY commands ask only for

available data.

- Eliminated a race that, e.g., caused problems burning CDs at high speeds.

- SCSIDEBUG output can now be restricted to specified buses.

- ASC/ASCQ diagnostic messages updated to SCSI-3 standards.

- Better error handling.

o Many more USB Flash and other umass(4) devices work as a result of

SCSI improvements.

o hw.setperf sysctl allows controlling the speed of many new i386 cpus,

great for prolonged battery life..


- Major improvements in the pf packet filter, including:

o Atomic commits of ruleset changes (reduce the chance of ending up in

in an inconsistent state).

o A 30% reduction in the size of state table entries.

o Source-tracking (limit number of clients and states per client).

o Sticky-address (the flexibility of round-robin with the benefits

of source-hash).

o Invert the socket match order when redirecting to localhost (prevents

the potential security problem of remote connections being identified

as local).

o Significant improvements to interface handling.


- New tools for filtering gateway failover:

o CARP (the Common Address Redundancy Protocol) carp(4) allows

multiple machines to share responsibility for a given IP address

or addresses. If the owner of the address fails, another member

of the group will take over for it. A discussion of the history

of CARP can be found here.

o Additions to the pfsync(4) interface allow it to synchronise

state table entries between two or more firewalls which are

operating in parallel, allowing stateful connections to cross

any of the firewalls regardless of where the state was initially

created.


- Performance improvements:

o Improved connection/socket lookup - about 100 times faster at

10000 sockets than 3.4.

o TCP SYN cache. Greatly reduces the memory cost of half-open TCP connections.

o Implemented TCP adjustments recommended by RFC3390, controllable via sysctl.

o OpenSSL speedup on i386, up to 100% improvement for md5, sha1,

blowfish, des, 3des, rsa, dsa and bn.

o OpenSSL now directly uses the new AES instructions some VIA C3

processors provide, increasing AES to 780MBytes/second (so you get to

see a fan-less cpu performing AES more than 10x faster than the

fastest cpu currently sold).

o Directory hashing makes lookups in large directories much faster.


- New features and significant bug-fixes included with 3.5

o Replacement of the GNU bc(1), dc(1), nm(1) and size(1) commands

with BSD licensed equivalents.

o pty(4) devices are now allocated on demand, up to a configurable limit.

o The closefrom(2) system call has been added.

o TCP MD5 signatures (used by nc(1) and bgpd(8)).

o Network boot support for i386 and amd64, using pxeboot(8).

o The i386 8GB boot loader limitation has been removed.

o spamd(8) gains greylisting support. This allows greylisting (a very

powerful spam reduction technique) to be done on a firewall for many

mail hosts, no matter what MTA is being used.

o Interface 'cloning', accessed by ifconfig(8) commands create and destroy.

E.g. `ifconfig vlan100 create'.

o ifconfig(8) can now be used with a generic interface name, for listing

all such configured interfaces. E.g. `ifconfig carp'.

o The MAKEDEV(8) manual pages are now generated, and hence, accurate.

o Complete rewrite of package tools in perl.

o syslogd(8) now supports logging to memory buffers, to be read using

syslogc(8). This is useful for diskless or flash-based computers.

o IPsec ESP in UDP encapsulation.

o authpf(8) now tags traffic in pflog(4) so that users may be associated

with traffic through a NAT setup.

o XFS has been added to the GENERIC kernels so that afsd(8) may be started

easily, eliminating the need to recompile the kernel to use AFS.

o AFS can now be used anonymously by enabling it in rc.conf(8) with no

further configuration.

o The ps, top and w utilities no longer break when changes are made in

kernel structures.

o A poll interface has been added to the rpc routines in the standard C

library. Use of poll over select can result in better performance for

programs with a large number of open file descriptors.

o dhclient(8) now detects when the interface it configured is modified and

gracefully exits. e.g. repeatedly running it against the same

interface leaves only the last instance active.

o New tools:

- sensorsd(8), monitoring hardware sensors.

- procmap(1), to examine a process' memory map.

- bgpd(8), implementing the BGP-4 routing protocol.

- pkill(1) and pgrep(1), finding or signalling processes by name.

o OpenSSH 3.8.1.

o Many, many man page improvements.


- The "ports" tree is greatly improved (http://www.OpenBSD.org/ports.html)

o The 3.5 CD-ROMs ship with many pre-built packages for the common

architectures. The FTP site contains hundreds more packages

(for the important architectures) which we could not fit onto

the CD-ROMs (or which had prohibitive licenses).

- The system includes the following major components from outside suppliers:

o XFree86 4.pre4.0 (+ patches).

o gcc 2.95.3 (+ patches and ProPolice)

gcc 3.3.2 (+ patches and ProPolice) on sparc64, amd64, and cats

o Perl 5.8.2 (+ patches).

o Apache 1.3.29 and mod_ssl 2.8.16, DSO support (+ patches).

o OpenSSL 0.9.7c (+ patches).

o Groff 1.15.

o Sendmail 8.12.11.

o Bind 9.2.3 (+ patches).

o Lynx 2.8.4rel.1 with HTTPS and IPv6 support (+ patches)

o Sudo 1.6.7p5.

o Ncurses 5.2.

o Latest KAME IPv6.

o Heimdal 0.6rc1 (+ patches).

o Arla-current.

If you'd like to see a list of what has changed between OpenBSD 3.4

and 3.5, look at

http://www.OpenBSD.org/plus35.html

Even though the list is a summary of the most important changes

made to OpenBSD, it still is a very very long list.

--------------------- SECURITY AND ERRATA ----------------------

We provide patches for known security threats and other important

issues discovered after each CD release. As usual, between the

creation of the OpenBSD 3.5 FTP/CD-ROM binaries and the actual 3.5

release date, our team found and fixed some new reliability problems

(note: most are minor, and in subsystems that are not enabled by

default). Our continued research into security means we will find

new security problems -- and we always provide patches as soon as

possible. Therefore, we advise regular visits to

http://www.OpenBSD.org/security.html

and

http://www.OpenBSD.org/errata.html

Security patch announcements are sent to the security-announce@OpenBSD.org

mailing list. For information on OpenBSD mailing lists, please see:

http://www.OpenBSD.org/mail.html

------------------------- CD-ROM SALES ----------------------------

OpenBSD 3.5 is also available on CD-ROM. The 3-CD set costs $40USD

(EUR 45) and is available via mail order and from a number of

contacts around the world. The set includes a colorful booklet

which carefully explains the installation of OpenBSD. A new set

of cute little stickers are also included (sorry, but our FTP mirror

sites do not support STP, the Sticker Transfer Protocol). As an

added bonus, the second CD contains an exclusive audio track, combining

the "CARP License" skit and a song entitled "Redundancy must be free".

Lyrics for the song may be found at:

http://www.OpenBSD.org/lyrics.html#35

Profits from CD sales are the primary income source for the OpenBSD

project -- in essence selling these CD-ROM units ensures that OpenBSD

will continue to make another release six months from now.

The OpenBSD 3.5 CD-ROMs are bootable on the following five platforms:

o i386

o amd64

o macppc

o sparc

o sparc64 (UltraSPARC)

(Other platforms must boot from floppy, network, or other method).

For more information on ordering CD-ROMs, see:

http://www.OpenBSD.org/orders.html

The above web page lists a number of places where OpenBSD CD-ROMs

can be purchased from. For our default mail order, go directly to:

https://https.OpenBSD.org/cgi-bin/order

or, for European orders:

https://https.OpenBSD.org/cgi-bin/order.eu

All of our developers strongly urge you to buy a CD-ROM and support

our future efforts. Additionally, donations to the project are highly

appreciated, as described in more detail at:

http://www.OpenBSD.org/goals.html#funding


---------------------------- T-SHIRT SALES -------------------------

The project continues to expand its funding base by selling t-shirts

and polo shirts. And our users like them too. We have a variety

of shirts available, with the new and old designs, from our web

ordering system at:

https://https.OpenBSD.org/cgi-bin/order

and for Europe:

https://https.OpenBSD.org/cgi-bin/order.eu

The OpenBSD 3.5 t-shirts are available now. We also sell our older

shirts, as well as a selection of OpenSSH t-shirts.

------------------------ FTP INSTALLS -------------------------------

If you choose not to buy an OpenBSD CD-ROM, OpenBSD can be easily

installed via FTP. Typically you need a single small piece of boot

media (e.g., a boot floppy) and then the rest of the files can be

installed from a number of locations, including directly off the

Internet. Follow this simple set of instructions to ensure that

you find all of the documentation you will need while performing

an install via FTP. With the CD-ROMs, the necessary documentation

is easier to find.

1) Read either of the following two files for a list of ftp

mirrors which provide OpenBSD, then choose one near you:

http://www.OpenBSD.org/ftp.html

ftp://ftp.OpenBSD.org/pub/OpenBSD/3.5/ftplist

As of May 1, 2004, the following ftp sites have the 3.5 release:

ftp://ftp.ca.openbsd.org/pub/OpenBSD/3.5/ Alberta, Canada

(above is master site, please USE A MIRROR below)

ftp://ftp.usa.openbsd.org/pub/OpenBSD/3.5/ Boulder, CO, USA

ftp://ftp5.usa.openbsd.org/pub/OpenBSD/3.5/ Redwood City, CA, USA

ftp://ftp7.usa.openbsd.org/pub/os/OpenBSD/3.5/ West Lafayette, IN, USA

ftp://openbsd.wiretapped.net/pub/OpenBSD/3.5/ Sydney, Australia

ftp://ftp.kd85.com/pub/OpenBSD/3.5/ Lovendegem, Belgium

ftp://ftp.calyx.nl/pub/OpenBSD/3.5/ Amsterdam, Netherlands

ftp://ftp.se.openbsd.org/pub/OpenBSD/3.5/ Stockholm, Sweden

ftp://ftp.linux.org.tr/pub/OpenBSD/3.5/ Turkey

Other mirrors will take a day or two to update.

2) Connect to that ftp mirror site and go into the directory

pub/OpenBSD/3.5/ which contains these files and directories.

This is a list of what you will see:

ANNOUNCEMENT XF4.tar.gz i386/ root.mail

Changelogs/ alpha/ mac68k/ sparc/

HARDWARE amd64/ macppc/ sparc64/

PACKAGES cats/ mvme68k/ src.tar.gz

PORTS ftplist mvme88k/ sys.tar.gz

README hp300/ packages/ tools/

SIZES hppa/ ports.tar.gz vax/

It is quite likely that you will want at LEAST the following

files which apply to all the architectures OpenBSD supports.

README - generic README

HARDWARE - list of hardware we support

PORTS - description of our "ports" tree

PACKAGES - description of pre-compiled packages

root.mail - a copy of root's mail at initial login.

(This is really worthwhile reading).

3) Read the README file. It is short, and a quick read will make

sure you understand what else you need to fetch.

4) Next, go into the directory that applies to your architecture,

for example, i386. This is a list of what you will see:

CKSUM bsd.rd* floppyB35.fs pxeboot*

INSTALL.i386 cd35.iso floppyC35.fs xbase35.tgz

INSTALL.linux cdrom35.fs game35.tgz xfont35.tgz

MD5 comp35.tgz index.txt xserv35.tgz

base35.tgz etc35.tgz man35.tgz xshare35.tgz

bsd* floppy35.fs misc35.tgz

If you are new to OpenBSD, fetch _at least_ the file INSTALL.i386

and the appropriate floppy*.fs or cd35.iso file. Consult the

INSTALL.i386 file if you don't know which of the floppy images

you need (or simply fetch all of them).

5) If you are an expert, follow the instructions in the file called

README; otherwise, use the more complete instructions in the

file called INSTALL.i386. INSTALL.i386 may tell you that you

need to fetch other files.

6) Just in case, take a peek at:

http://www.OpenBSD.org/errata.html

This is the page where we talk about the mistakes we made while

creating the 3.5 release, or the significant bugs we fixed

post-release which we think our users should have fixes for.

Patches and workarounds are clearly described there.

Note: If you end up needing to write a raw floppy using Windows,

you can use "fdimage.exe" located in the pub/OpenBSD/3.5/tools

directory to do so.

---------------- XFree86 FOR MOST ARCHITECTURES ------------

XFree86 has been integrated more closely into the system. This

release contains XFree86 4.pre4.0. Most of our architectures ship

with XFree86, including sparc, sparc64 and macppc. During installation,

you can install XFree86 quite easily. Be sure to try out xdm(1)

and see how we have customized it for OpenBSD.

On the i386 platform a few older X servers are included from XFree86

3.3.6. These can be used for cards that are not supported by XFree86

4.pre4.0 or where XFree86 4.3.0 support is buggy. Please read the

/usr/X11R6/README file for post-installation information.

------------------------ PORTS TREE -----------------------------

The OpenBSD ports tree contains automated instructions for building

third party software. The software has been verified to build and

run on the various OpenBSD architectures. The 3.5 ports collection,

including many of the distribution files, is included on the 3-CD

set. Please see the PORTS file for more information.

Note: some of the most popular ports, e.g., the Apache web server

and several X applications, come standard with OpenBSD. Also, many

popular ports have been pre-compiled for those who do not desire

to build their own binaries (see BINARY PACKAGES, below).

--------------- BINARY PACKAGES WE PROVIDE -----------------

A large number of binary packages are provided. Please see the PACKAGES

file (ftp://ftp.OpenBSD.org/pub/OpenBSD/3.5/PACKAGES) for more details.

------------------------------------------------------------------------

- SYSTEM SOURCE CODE ---------------------------------------------------

The CD-ROMs contain source code for all the subsystems explained

above, and the README (ftp://ftp.OpenBSD.org/pub/OpenBSD/3.5/README)

file explains how to deal with these source files. For those who

are doing an FTP install, the source code for all four subsystems

can be found in the pub/OpenBSD/3.5/ directory:

XF4.tar.gz ports.tar.gz src.tar.gz sys.tar.gz

----------------------- THANKS --------------------------------

OpenBSD 3.5 includes artwork and CD artistic layout by Ty Semaka,

who also arranged an audio track on the OpenBSD 3.5 CD set. Ports tree

and package building by Peter Valchev, Nikolay Sturm and Christian

Weisgerber. System builds by Theo de Raadt, Henning Brauer, and Miod

Vallat. ISO-9660 filesystem layout by Theo de Raadt.

We would like to thank all of the people who sent in bug reports, bug

fixes, donation cheques, and hardware that we use. We would also like

to thank those who pre-ordered the 3.5 CD-ROM or bought our previous

CD-ROMs. Those who did not support us financially have still helped

us with our goal of improving the quality of the software.

Our developers are:

Aaron Campbell, Alexander Yurchenko, Andreas Gunnarsson,

Angelos D. Keromytis, Anil Madhavapeddy, Artur Grabowski,

Ben Lindstrom, Bjorn Sandell, Bob Beck, Brad Smith, Brandon Creighton,

Brian Caswell, Brian Somers, Bruno Rohee, Camiel Dobbelaar,

Can Erkin Acar, Cedric Berger, Chad Loder, Chris Cappuccio,

Christian Weisgerber, Claudio Jeker, Constantine Sapuntzakis, Dale Rahn,

Damien Couderc, Damien Miller, Dan Harnett, Daniel Hartmeier,

Darren Tucker, David B Terrell, David Krause, David Lebel,

David Leonard, Dug Song, Eric Jackson, Federico G. Schwindt,

Grigoriy Orlov, Hakan Olsson, Hans Insulander, Hans-Joerg Hoexer,

Heikki Korpela, Henning Brauer, Henric Jungheim, Hiroaki Etoh,

Horacio Menezo Ganau, Hugh Graham, Ian Darwin, Jakob Schlyter,

Jan-Uwe Finck, Jason Ish, Jason McIntyre, Jason Peel, Jason Wright,

Jean-Baptiste Marchand, Jean-Francois Brousseau,

Jean-Jacques Bernard-Gundol, Jim Rees, Jolan Luff, Jose Nazario,

Joshua Stein, Jun-ichiro itojun Hagino, Kenjiro Cho,

Kenneth R Westerback, Kevin Lo, Kevin Steves, Kjell Wooding,

Louis Bertrand, Magnus Holmberg, Marc Espie, Marc Matteo,

Marco Peereboom, Marco Pfatschbacher, Marco S Hyman, Marcus Watts,

Margarida Sequeira, Mark Grimes, Mark Kettenis, Markus Friedl,

Mats O Jansson, Matt Behrens, Matt Smart, Matthew Jacob, Matthieu Herrb,

Michael Shalayeff, Michael T. Stolarchuk, Mike Frantzen, Mike Pechkin,

Miod Vallat, Nathan Binkert, Nick Holland, Niels Provos, Niklas Hallqvist,

Nikolay Sturm, Nils Nordman, Oleg Safiullin, Otto Moerbeek, Paul Janzen,

Peter Galbavy, Peter Stromberg, Peter Valchev, Philipp Buehler,

Reinhard J. Sammer, Rich Cannings, Ryan Thomas McBride, Saad Kadhi,

Shell Hin-lik Hung, Steve Murphree, Ted Unangst, Theo de Raadt,

Thierry Deval, Thomas Nordin, Thorsten Lockert, Tobias Weingartner,

Todd C. Miller, Todd T. Fries, Tom Cosgrove, Vincent Labrecque,

Wilbern Cobb, Wim Vandeputte, Xavier Santolaria.

Multipath routing az OpenBSD -CURRENT-ben

Címkék

Ahogy egy leleményes hozzászóló megjegyezte az undeadly.org-on:

``Linux a Solaris/Windows gyilkos. FreeBSD a Linux gyilkos. Most már mi is tudjuk a helyünket. Mi vagyunk a Cisco gyilkosok.''A hozzászóló arra utalt, hogy az OpenBSD egyre-másra jelennek meg az olyan funkciók, amelyeket csak a nagyobb teljesítményű és borsos árú útválasztók képesek nyújtani. A nemsokára (május 1.) megjelenő OpenBSD 3.5-ben már megtalálhatjuk a VRRP (Cisco HSRP) szabad implementációját a CARP-ot, és hogy a következő kiadásra is legyen csemege, itt van Jun-ichiro ``itojun'' Hagino friss commitje a -CURRENTBE: a multipath routing.

Bővebben itt.