Das OpenBSD Projekt - pestilenz.orgpestilenz.org/~grunk/vortraege/2005/erlug/openbsd.pdf · Mirrors...

31
Einleitung Das Projekt Das Produkt Bemerkungen Das OpenBSD Projekt Alexander von Gernler <[email protected]> 3. Erlanger Linuxtage, 15./16. Januar 2005 Alexander von Gernler Das OpenBSD Projekt

Transcript of Das OpenBSD Projekt - pestilenz.orgpestilenz.org/~grunk/vortraege/2005/erlug/openbsd.pdf · Mirrors...

EinleitungDas ProjektDas Produkt

Bemerkungen

Das OpenBSD Projekt

Alexander von Gernler

<[email protected]>

3. Erlanger Linuxtage, 15./16. Januar 2005

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Inhaltsubersicht

1 EinleitungUber den VortragEinordnung von OpenBSD

2 Das ProjektGeschichteStrukturZieleVerwandte Projekte

3 Das ProduktTechnische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

4 BemerkungenAusblickeLiteraturAbout

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Uber den VortragEinordnung von OpenBSD

Inhaltsubersicht

1 EinleitungUber den VortragEinordnung von OpenBSD

2 Das ProjektGeschichteStrukturZieleVerwandte Projekte

3 Das ProduktTechnische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

4 BemerkungenAusblickeLiteraturAbout

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Uber den VortragEinordnung von OpenBSD

Uber den Vortrag

Dieser Vortrag ist...eine Vorstellung des OpenBSD-Projekteseine Vorstellung des OpenBSD Betriebssystemsein (teilweise subjektiver) Erfahrungsbericht

Er ist nicht...ein Installations-HOWTO fur OpenBSDeine technische Referenzein heiliger Kreuzzug

Der Autor...benutzt OpenBSD seit Version 2.9hat im OpenBSD Translation Projectmitgearbeitetbetreibt den OpenBSD Mirror an der UniErlangen

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Uber den VortragEinordnung von OpenBSD

Die BSD Flavors

FreeBSDhttp://www.FreeBSD.org/Stabilitat, Performance, Vielzahl vonAnwendungen

NetBSDhttp://www.NetBSD.org/Portabilitat – lauft auf uber 55Plattformen

OpenBSDhttp://www.OpenBSD.org/Sicherheit, Kryptographie, korrekteImplementation

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Uber den VortragEinordnung von OpenBSD

Terminologie

Kern z. B. Linux oder BSD-basiert

Flavors Unterscheidung der BSD-GeschmacksrichtungenFree-, Net- und OpenBSD

Distributionen Anzahl der ausgelieferten Systeme (Kern +Userland + Installer) pro Kern

GNU/Linux Entsteht aus GNU (Userland) + Linux (Kern)

Kern Linux FreeBSD NetBSD OpenBSD# Distributionen > 342 1 1 1

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

GeschichteStrukturZieleVerwandte Projekte

Inhaltsubersicht

1 EinleitungUber den VortragEinordnung von OpenBSD

2 Das ProjektGeschichteStrukturZieleVerwandte Projekte

3 Das ProduktTechnische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

4 BemerkungenAusblickeLiteraturAbout

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

GeschichteStrukturZieleVerwandte Projekte

Geschichte der BSD-Unices

1969 Entwicklung des Ur-UNIX an den BellLabs durch Ken Thompson undDennis M. Ritchie

1974 Weitergabe des Quellcodes an Universitaten, darunter auchdie UC Berkeley (Berkeley Software Distribution)

1992 Rechtsstreit AT&T ./. UC Berkeley et al., Entwicklung von386BSD ohne strittigen Code

1993 Erscheinen von NetBSD 0.8 und FreeBSD 1.0

1994 Streit im NetBSD Core-Team

1995 Theo de Raadt wird aus demNetBSD Team ausgeschlossen undgrundet OpenBSD als abgespaltenesProjekt

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

GeschichteStrukturZieleVerwandte Projekte

Strukturen im Projekt

Project Leader Theo de Raadt als freundlicher Diktator

Committers Team der Entwickler mit CVS-Schreibzugriff

Contributors Jeder, der vernunftigen Code mit freier Lizenzeinreicht, kann beitragen

Mirrors Server, von denen OpenBSD gezogen werden kann

Translators Team der Ubersetzer auf steelix.kd85.com

Merchandise Wim Vandeputte furVersand in ganz Europa –http://www.kd85.com

Hackathon Jahrliches Treffen der Entwickler in Calgary

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

GeschichteStrukturZieleVerwandte Projekte

Organigramm

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

GeschichteStrukturZieleVerwandte Projekte

Philosophie von OpenBSD

So frei wie moglich sein: Lizenz erlaubt jedem, den Quellcodefur jeden Zweck zu verwenden

Oberste Prioritat auf Sicherheit: Auf Sicherheitsproblemeachten und sie beheben, bevor irgendjemand anders es tut

Integration starker Kryptographie (IPsec, Kerberos, AFS,Hashfunktionen, Verschlusselung, gute PRNGs) mit derMoglichkeit, sie uberall hin zu exportieren (Projektsitz inKanada, keine Exportbeschrankungen)

Die beste Entwicklungsplattform uberhaupt bereitstellen –Zugriff auf den OpenBSD CVS-Baum inklusive

Standards verfolgen und korrekt implementieren (POSIX,ANSI, X/OPEN etc.)

Politikfrei bleiben – technischer Fortschritt zahlt

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

GeschichteStrukturZieleVerwandte Projekte

Verwandte Projekte

OpenSSH Freie Implementation der Secure Shell von ssh.com.Breiter Einsatz auf praktisch allenLinux-Distributionen und den anderen BSDs

OpenBGPD Freie Implementation des Border Gateway Protokolles.Entwickelt von Henning Brauer, dem CISCO zuatzend war und den die Alternativen (GNU Zebra,quagga, . . . ) nicht zufrieden gestellt haben

OpenNTPD Freie Implementation des Network Time Protokolls.Deckt die Bedurfnisse von 90% der Anwender ab, nurSpezialfunktionen (noch?) nicht implementiert. Werwill schon was anderes, als seine Uhr stellen?

OpenCVS Momentan laufende Anstrengung, einen sicheren undfreien Ersatz fur das uralte und schlecht gewarteteVersionsmanagement-System zu schreiben

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

Inhaltsubersicht

1 EinleitungUber den VortragEinordnung von OpenBSD

2 Das ProjektGeschichteStrukturZieleVerwandte Projekte

3 Das ProduktTechnische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

4 BemerkungenAusblickeLiteraturAbout

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

Technische Daten

Freies Open Source UNIX, basierend auf den 4.4BSD Quellen

Eigenes Binarformat, aber Emulation fur Linux, FreeBSD,Solaris (SVR4), BSD/OS, SunOS und HP/UX

Lauft auf folgenden Plattformen: i386, amd64,macppc, sparc, sparc64, alpha, vax, mac68k, sgi,hp300, hppa, mvme68k, mvme88k, cats, luna88k

Standardmaßig IPv6- und IPsec-fahig

Minimalinstallation ca. 100 MB,Standardinstallation bei ca. 300 MB,Desktop-System des Autors bei 1.6 GB

Software installierbar als Binarpakete oder ausPorts Collection. Derzeit uber 2822 Portsverfugbar.

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

OpenBSD beziehen

Auslieferung auf 3 CDs jedes halbeJahr (feste Releasezyklen im Maiund November)

Schickes Artwork mit AufklebernNeuer OpenBSD Release SongKostenpunkt ca. EUR 45,-Erhaltlich von openbsd.org oderuber Buchhandel

Per Diskette, CD oder PXE bootbar, Installation der Paketeaus dem Netz kostenlos

Großes Netz an tagesaktuellen Mirrors weltweit verfugbar

Bereitstellung von Security-Patches und Bekanntgabe [email protected]

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

Lizenzdiskussion: GNU GPL vs. BSD-style

GNU GPLWill großtmogliche Freiheit fur die CommunityWeitergabe der Software nur mit Weitergabe des Quellcodes,dies muss ebenfalls unter GPL erfolgenHalt die Quellen rechtlich gesehen fur immer offenAber: Prozess gegen Router-Hersteller zeigt, dass GPL auchvon Firmen absichtlich missachtet wird

BSD-styleWill großtmogliche Freiheit fur den EinzelnenWeitergabe der Software unter jeder beliebigen Lizenz, auchClosed Source moglichWichtig nur: Wahrung des CopyrightsGroße Verbreitung von BSD Code bis zu Windows (TCPStack)

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

Technische Gemeinsamkeiten

“BSD = Linux with a twist” (Christian Weisgerber)

Oberflachlich: Rechner einschalten, Bootloader, Kernel, Init,Textkonsole mit Login, X11 moglichAlle bekannten Standardbefehle vorhanden (ps(1), top(1),ifconfig(8), ping(8), vi(1), ...)Wichtige Internet-Daemons bereits im Basissystem:httpd(8), sshd(8), ftpd(8), named(8),sendmail(8), ntpd(8), isakmpd(8), bgpd(8),rtadvd(8), identd(8), nfsd(8), inetd(8)Breite Hardwareunterstutzung, auch spezielle Cryptohardware(Beschleuniger, z. B. hifn)Gangige Softwarepakete als Ports vorhanden: MySQL,PostgreSQL, nmap, Gimp, xmms, MPlayer, Mozilla, KDE,GnuPG, mutt

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

Technische Unterschiede

BSD Fast Filesystem ffs statt Linux ext2/ext3

Erweiterung SoftUpdates sorgt fur Geschwindigkeit undKonsistenz bei Absturz, ist aber nicht mit Journaling (vgl.ext3) gleichzusetzen

Die meisten Linux Distros haben ein System V init mitRunlevels, die BSDs haben das einfachere BSD-style init

Kernel und Userland bilden feste Einheit und konnen nurgemeinsam aktualisiert werden. Sie passen deshalb immerzusammen. Keine Probleme wie:

lvmtools passen nicht zum Kernel LVMiptables will andere Netfilter Version im Kernreiserfsck hat mit dem alten Kern doch noch getan?!

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

OpenBSD ist einfach!

nur ein Runlevel, dazu Reboot, Single-User und Halt

exzellente und aktuelle Manpages

motivierende Starthilfen: man afterboot, man intro

Immer zwei Versionen von OpenBSD verfugbar:

-stable Stand der halbjahrlichen Release-Version mitaktuellen Sicherheitspatches. Geeignet fur denProduktionsbetrieb

-current Front der aktuellen Entwicklung, andert sichpermanent und ist kaum weniger stabil. Geeignet furneugierige und enthusiastische Anwender (z. B. derAutor), sowie Entwickler

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

Software besorgen – woher?

Von OpenBSD aus verfugbarInstallieren als Binarpaket vom Mirror, oderselber bauen aus der Ports Collection:

# cd /usr/ports/editors/vim/stable# make install

Nicht in Ports-Collection, aber Quellcode verfugbar

Entweder gute Software, dann:

# ./configure && make && make install

Oder halt per Hand kompilieren nach README

Nicht im Quellcode verfugbar, aber als Linux-Binary derselben Plattform, z. B. fur i386: Acrobat Reader

Binaremulation einschalten, lauft:

# sysctl kern.emul.linux=1

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

Sicherheitsmerkmale von OpenBSD

Swapspace verschlusselbar

/dev/random nutzt viele verschiedene Entropiequellen furguten Zufall: Interrupts von Maus, Tastatur, Netzwerk,Festplatte

Zufall wird verwendet, um Systemverhalten fur Angreiferunvorhersagbar zu machen, ohne Verletzung von Standards:Prozeß-IDs, IP Datagramm IDs, DNS Query-IDs,Inode-Erzeugungs-Nummern,

ProPolice Stack Protection erschwert Buffer Overflows durchsetzen eines Canarys (GCC Erweiterung).

WˆX (Write XOR Execute) fur Speicherseiten bzw. Segmenteverhindert weitere Gemeinheiten

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

Sicherheit – still more

Firewalling unter OpenBSD mit pf(4)Machtiger regelbasierter Paketfilter, stateful filteringKann Traffic normalisieren (z. B. Verschleierung von NAT mitscrub reassemble tcp)Kann Entscheidungen aufgrund des OS der Gegenstelle treffen(Passive OS Fingerprinting)altq(9) erlaubt regelbasierte BandbreitenbegrenzungCARP (Common Address Redundancy Protocol) erlaubtHA-Firewalling: Zustande auf der aktiven Firewall werden aufdie Backup-Firewall ubertragen

Secure by default als Motto: Installation ist standardmaßigschlank und sicher. Tragt der Tatsache Rechnung, dassRechner, die mal laufen, nicht mehr beruhrt werden

Unterstutzung von Kryptohardware (Hifn, Broadcom, Intel,3com) kinderleicht: Einstecken, geht.

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

Sicherheit – BSD Securelevels

kern.securelevel=1Securelevel kann nicht mehr gesenkt werden, ausser durchshutdown(8)/dev/mem, /dev/kmem nicht mehr schreibbarPartitionen, die gemountet sind, konnen nicht roh geschriebenwerdenDateiflags wie immutable oder append-only greifen undkonnen nicht entfernt werdenKernelmodule konnen weder geladen, noch entfernt werden

kern.securelevel=2Alle Beschrankungen von Level 1 geltenRaw Disks durfen uberhaupt nicht mehr geschrieben werdenDie Systemzeit kann nicht mehr zuruckgestellt werdenPaketfilter- und NAT-Regeln konnen nicht mehr verandertwerdenDer Kerneldebugger kann nicht mehr eingeschaltet werden

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

Sicherheit – praktische Paranoia

authpf(8) erlaubt Benutzern im lokalen Netz, die Firewallnach Authentifikation durch ssh(1) zu benutzen

systrace(1) erlaubt Aufstellen und Durchsetzen vonSyscall-Profilen fur einzelne Programme

Die meisten Dienste in OpenBSD

laufen in chroot(8)fuhren privilege revocation durch: ping, ping6, portmap,rpc.rstatd, rpc.rusersd, pppoe, traceroute,traceroute6, rwalld, pppd, spamd, afsd, authpf,ftpd, tftpd, httpd, dhcpd, mopd, rbootdsind privilege separated: sshd, syslogd, pflogd,isakmpd, bgpd, ntpd, tcpdump, named, X server,xdm, dhclientNur ganz wenige Programme sind setuid root.

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

Eingebaute Spam-Behandlung

spamd(8) ist der Spam-Daemon im Basissystem

kann durch Andern der pf.conf(5) und einem Schalter inder rc.conf(8) ganz einfach aktiviert werden

beherrscht drei Arbeitsmodi, die unabhangig voneinanderaktiviert werden konnen

Whitelisting Rechner, die immer mit dem SMTP Port redendurfen (ob die Mail angenommen wird, ist eineandere Frage)

Blacklisting Rechner, die nie mit dem echten SMTP Daemonverbunden werden (“Pleased to be wasting yourtime”)

Greylisting Nur Rechner, die “es ernst meinen”, konnenMail ausliefern, denn die Mail wird zunachstabgelehnt.

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

OpenNTPD

freie Implementation einesNetwork Time ProtocolDaemons (RFC 1305)

ersetzt die Version von ntp.orgDesignziele:

Sicherheit Privilege Separation, nur bounded bufferOperationen, strenge Prufung der Antworten ausdem Netz

Einfachkeit Schlanke Implementation, einfacheKonfiguration

Performance naturlich!

NTPD aufsetzen

# echo ’ntpd_flags=""’ >> /etc/rc.conf.local# reboot

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

Technische DatenUnterschiede zu LinuxSafety und SecurityLetzte Neuigkeiten

OpenBGPD

freie Implementation des BorderGateway Protokolls, v4 (RFC1771)

wird von Internet Service Providern benutzt, um sichgegenseitig Netze zu propagieren und Routen festzulegen

Designziele

Sicherheit, Resistenz gegen Buffer Overflows, PrivilegeSeparationKeine BGP Sessions verlieren! Verwendung einer eigenen,unabhangigen Session EnginePerformanz und Speichereffizienzgut durchdachte Konfigurations- und Filtersprache

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

AusblickeLiteraturAbout

OpenBSD ist interessant fur Firmen

Universitaten Alberta/Canada, Minnesota, Michigan(CITI), Lund, Italian Institute of NuclearPhysics

Firmen Adobe, CORE SDI, Network SecurityTechnologies (NST), Alteon Networks

Provider Calyx, BSWS, Globalwire Communications

Non-Profit Universitat Helsinki Zentralkrankenhaus, ForcefieldArt Installation, Universitat Uppsala Krankenhaus

Geheimdienste oft behauptet, nicht nachprufbar. OpenBSD wurdemal finanziell von der DARPA gefordert

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

AusblickeLiteraturAbout

Schwachpunkte von OpenBSD

Moglicherweise nicht so performant wieLinux oder FreeBSD

Ports-Tree kleiner als der von FreeBSD

Updates von Version zu Version nichtvollautomatisch – erfordern Sachverstand

Kein bzw. unzureichendes Energiemanagement fur portableGerate

Kein ACPI Support

Filesystemchecks gecrashter ffs Partitionen dauern noch solange wie bei ext2, obwohl SoftUpdates einen fsck imHintergrund ermoglichen wurden (vgl. FreeBSD)

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

AusblickeLiteraturAbout

Bucher zu OpenBSD

Absolute OpenBSDvon Michael Lucasgutes Kompendium, sehr humorvollISBN 1-886411-99-9

Secure Architectures with OpenBSDvon Brandon Palmer und Jose Nazariokein stringentes Werk, aber gutes KochbuchISBN 03-21193-66-0

Building Firewalls with OpenBSD and PF[2nd edition]

von Jacek Artymiakdeckt ein Spezialthema abISBN 83-916651-1-9

Alexander von Gernler Das OpenBSD Projekt

EinleitungDas ProjektDas Produkt

Bemerkungen

AusblickeLiteraturAbout

Noch Fragen?

1 Folien erstellt mit LATEX, latex-beamer, make und CVSunter OpenBSD/i386

2 Folien erhaltlich unter http://pestilenz.org/~grunk/vortraege/2005/erlug/openbsd.pdf

3 Quellcode der Folien auf Anfrage: <[email protected]>

Alexander von Gernler Das OpenBSD Projekt