Jemný úvod do OpenBSD

21. 5. 2002
Doba čtení: 6 minut

Sdílet

OpenBSD je plnokrevný OS unixového typu, který je, podobně jako třeba FreeBSD nebo NetBSD, postaven na jádře 4.4BSD. Mezi další jeho přívlastky patří to, že je multiplatformní (i386, sparc/64, hp300, 68k, ppc, sun3, alpha a další) a že je volně šiřitelný včetně svých zdrojových kódů zdarma, podle pravidel licence BSD.

Tyto vlastnosti, které mimochodem ještě před deseti lety vůbec nebyly samozřejmé, dnes splňuje celá řada operačních systémů (kromě větve *BSD ještě třeba Solaris a samozřejmě Linux). Pojďme se dnes společně podívat, jaké zajímavé vlastnosti OpenBSD nabízí.
 

Bezpečnost

Magickým slovem OpenBSD je bezpečnost. OpenBSD si klade za cíl být maximálně bezpečným OS. V praxi to znamená, že za posledních pět let nebyla v defaultní konfiguraci nalezena žádná bezpečnostní chyba, která by umožňovala útočníkovi napadení počítače. To samozřejmě neznamená, že by se neobjevovaly méně závažné bezpečnostné problémy, jako ostatně ve všech běžných operačních systémech, ale způsob vývoje OpenBSD je takový, že se snaží těmto problémům (a v daném případě velice úspěšně) předcházet.

To kontrastuje s Linuxem, kde jsou například v defaultní instalaci typické distribuce (např. Red Hat) v průměru tři závažnější bezpečnostní problémy do roka. O komerčních systémech, které mnohdy stále ještě nepřistoupily na princip bezpečné defaultní instalace, ani nemluvě. To ovšem neznamená, že je možné ignorovat bezpečnostní doporučení a nedodržovat běžné bezpečnostní zásady.

Tuto pověst si OpenBSD zasloužil díky velmi specifickému modelu vývoje, kdy největší část práce se pravidelně vykonává při auditování každé části kódu. Tehdy se auditoři nesnaží pouze vyhledávat a opravovat známé a potencionálně zneužitelné bezpečnostní „díry“, ale snaží se také napravovat zdánlivě nevinné, avšak přesto nějak podezřelé programové konstrukce a slabá místa v logické stavbě programu. Minulost ukázala, že se to vyplácí, a leckdy si u oznámení o objevení nového bezpečnostního problému na příslušné diskusní konferenci můžeme všimnout komentáře, že chyba se netýká OpenBSD, protože ten je vůči ní již rok imnunní díky všímavému přístupu auditorů.

Vedle toho je OpenBSD doménou pro kryptografický software. Dříve vývojový tým profitoval z toho, že jeho základ sídlí v Kanadě, tedy mimo dosah exportních omezení USA. Dnes, kdy exportní omezení na kryptografické technologie povolila, už to není tolik aktuální.

  • OpenSSH je SSH server/klient podporující protokoly SSH 1, 1.5 a 2, který odstranil závislost na komerčním SSH. Tento program svým významem přesáhl svět OpenBSD a dnes jej nalezneme prakticky ve všech open-source Unixech.
  • Vyspělý generátor psudonáhodných čísel PRNG, který je dokonalejší než ten, co máme v Linuxu. Jeho entropickou náplň tvoří kromě běžných přerušení od klávesnice, myši a disku také třeba síťový subsystém. Obecně se má za to, že kvalita generování náhodných vzorků má značný vliv na kvalitu kryptografického sw obecně. Podobně jako OpenSSH i PRNG se rozšířil nad rámec OpenBSD a dnes se s ním setkáme i u jiných operačních systémů.
  • Autentizační schémata Kerberos IV a V.
  • OpenBSD byl prvním operačním systémem, který již v roce 1997 nabídl svým uživatelům použití technologie IPsec, jež se stala standardem pro šifrovaný přenos TCP/IP paketů a dnes je průmyslovým standardem nejen ve světě Unixu, ale také u hardwarových řešení od Cisco Systems. Podpora VPN je propracovanější než u Linuxu.
  • Je možné používat jednorázová hesla S/Key. Funguje to tak, že si nejprve pomocí příkazu skeyinit vygenerujeme množinu hesel, přičemž každé z nich pak můžeme použít pro jedno přihlášení. Tímto způsobem lze efektivně zvýšit bezpečnost práce na spojeních, která probíhají na nezabezpečených kanálech (telnet, FTP apod.)
  • OpenBSD podporuje také velké množství kryptografického hardware, jako jsou třeba šifrovací a akcelerační čipy, hw. generátory pseudnáhodných čísel apod.

Z dalších zajímavých vlastností zmiňme například:

  • OpenBSD má podobně jako jiné BSD systémy obecně nižší hardwarové nároky než odpovídající verze Linuxu.
  • Základ systému je šířen s BSD licencí, která je obecně považována za méně restriktivní (pro komerční producenty softwaru) než GNU GPL (se kterou je však dobře slučitelná).

Mezi nevýhody OpenBSD naopak patří:

  • Chybí podpora SMP počítačů. Resp. pro platformu x86 je ve vývoji, avšak v současné době není příliš použitelná. Také podpora dalšího, méně obvyklého nebo novějšího hardwaru (RAID řadiče, USB periferie, ISDN modemy, tiskárny apod.) není tak široká jako u Linuxu.
  • Zatímco Linux už si vysloužil jakous takous podporu ze strany výrobců komerčního softwaru a občas se v něm setkáváme s různě kvalitními komerčními alikacemi, OpenBSD stále ještě není (a těžko kdy bude) komerčně významnou platformou, pro kterou budou ve větším měřítku vyvíjeny programy. Proto jsme při výběru softwaru odkázáni na sice kvalitní a obsáhlou, ale leckdy přesto nedostatečnou nabídku open-source programů (když pomineme možnost různě úspěšné binární emulace linuxových aplikací).
  • Na trhu OpenBSD se nesetkáme s komerční podporou, kterou jsme již zvyklí dostávat s Linuxem. Prakticky neexistuje systém certifikace hardwaru, nelze zakoupit předistalovaný počítač, velmi omezená je nabídka školení apod.
  • Menší potenciál při nasazení na desktopech. To bezprostředně souvisí s předchozími odstavci. OpenBSD je klasický serverový operační systém, který se nechlubí grafickým rozhraním a nenabízí grafické ani jiné konfigurační nástroje jako kterákoliv běžnější distribuce Linuxu. Ačkoliv samozřejmě v instalaci OpenBSD nalezneme XFree86 a je možné zkompilovat a provozovat i náročnější grafické desktopy jako kupříkladu Gnome, ztrácí OpenBSD na Linux, který je v oblasti desktopů přeci jenom více etablovaný.
  • OpenBSD v současné době neobsahuje podporu klasického žurnálového souborového systému. Jako nativní systém slouží FFS, který je známý také uživatelům NetBSD a který nabízí pouze méně dokonalou podporu žurnálování pomocí tzv. soft-updates.
  • Bezpečnostní a jiné updaty jednotlivých komponent se distribuují výhradně ve formátu patchů na zdrojový kód, a proto je jejich aplikace pomocí cvs o něco složitější než u linuxových distribucí, kde lze prostě jen upgradovat binární balíček a kde existují propracované způsoby automatických updatů záhy po odhalení problému.

Instalace a skladba distribuce

Instalace OpenBSD, kterou je kromě obligátního CDROMu, FTP a disku možné provést také z pásky(!), probíhá výhradně v terminálovém režimu. Nekonají se tedy žádné grafické vychytávky jako u jiných OS (Red Hat Linux, FreeBSD, …). To ovšem nic nemění na tom, že je poměrně přehledná a intuitivní. Samozřejmě je potřeba, aby ten, kdo instaluje, něco věděl o UNIXovém souborovém systému, fungování TCP/IP apod. To je však u operačních systémů tohoto typu samozřejmé.

CDROM s aktuální verzí OpenBSD si můžete objednat na domovských stránkách projektu. Poplatky spojené s prodejem CD nosičů tvoří jeden z důležitých zdrojů financování projektů, z tohoto důvodu si také nemůžete přímo stáhnout oficiální ISO image. Pokud si CD nechcete kupovat, můžete si stáhnout kompletní FTP strom nebo použít některý z neoficiálních ISO souborů, které lze stáhnout například z českého mirroru OpenBSD, případně si stáhnout pouze image instalační diskety a instalovat pomocí anonymního FTP přímo z Internetu.

Podobně jako u FreeBSD i přídavný software v OpenBSD rozdělujeme na tzv. packages (binární balíčky připravené přímo pro tu kterou verzi OpenBSD) a tzv. „ports“. Balíčky mají formát .tgz archivů a instalují se pomocí programu pkg_add. Naproti tomu „ports“ je sbírka programů převzatých z jiných OS, zejména z Linuxu, které je před použitím nejprve potřeba stáhnout, zkompilovat a nainstalovat. Zajímavé je, že OpenBSD používá k šíření zdrojových kódů a portů systém CVS (Concurrent Versions System), díky kterému lze snadno získat aktuální verzi celého systému. Kromě toho se samozřejmě přibližně dvakrát do roka vydávají releases na CD. V době psaní tohoto článku je čerstvou záležitostí verze 3.1.

Protože je v OpenBSD samozřejmě přítomen kompilátor gcc (konkrétně ve verzi 2.95.3), není problém zkompilovat si prakticky jakýkoliv linuxový software, který by snad v defaultní instalaci nebo v packages/ports mohl chybět. Já si například pravidelně v každé nové instalaci OpenBSD kompiluji Midnight Commander, bez kterého si práci na unixové konzole nedovedu představit.

Pro jaké nasazení je OpenBSD vhodný?

bitcoin_skoleni

Z OpenBSD je především výtečný Internetový server. Dovedu si představit, že bych jej použil jako bezpečený a spolehlivý poštovní, WWW nebo FTP server, který bych se nebál vystavit na Internet.

Docela dobře se může uplatnit také jako firewall nebo IP/IPv6 router. OpenBSD obsahuje kvalitní paketový filtr (PF a IPF) s podporou stavové filtrace. Přesto však je nutné říci, že současné verze Linuxu (2.4.x) jsou v téhle oblasti přeci jen o krok napřed.