OpenBSD
Fra Wikipedia, den frie encyklopedi.
OpenBSD er en «flavor» av BSD som har sin opprinnelse fra de originale BSD-distribusjonene. OpenBSD setter særlig fokus på sikkerhet, frihet, og funksjonalitet. Prosjektet startet i 1995, etter at det oppstod uenigheter mellom NetBSD-teamet og Theo De Raadt, en av grunnleggerne av NetBSD. Theo bestemte seg for å starte sitt eget prosjekt, og etter kort tid ble det klart at OpenBSD skulle fokusere på sikkerhet.
| Innholdsfortegnelse |
Utvikling
OpenBSD er under stadig utvikling, som alle andre Operativsystemer. Dette fører til at man alltid har flere versjoner samtidig. I OpenBSD har vi -release, -stable/patch, -snapshot og -current. Dette er egentlig ikke så forvirrende som det kanskje kan se ut som, så her er en kort forklaring:
- -release er en såkalt <<release>> eller utgivelse av operativsystemet. OpenBSD gir ut en ny versjon en gang hvert halvår, og disse utgivelsene kan også kjøpes på CD-ROM, hvis man vil hjelpe prosjektet økonomisk.
- -stable eller patch, som det også kalles, er rett og slett -release med sikkerhetspatcher for å tette eventuelle sikkerhetshull som blir oppdaget etter utgivelse.
- -current er en betegnelse på den aktive kildekoden som utviklerne av OpenBSD til stadighet jobber på. Denne kan hentes ned fra CVS til en hver tid, men siden det ofte er personer som jobber direkte med denne koden, er det ingen garanti for at den fungerer, eller i det hele tatt lar seg kompilere.
- -snapshot er kopier av hele kildekodetreet, som er enklere å installere enn -current. Det er heller her ingen garanti for at ting fungerer, men det er i hvert fall ingen kode som noen jobber direkte på mens du laster den ned.
Sikkerhet
Sikkerhet er svært viktig for OpenBSD. Det er tatt i bruk en haug med forskjellige tiltak for å sikre operativsystemet mest mulig.
Sikkerhet på kildekodenivå
Det er vanlig praksis for utviklerne av OpenBSD at all kildekode gjennomgås manuelt, der målet er å finne svakheter og sikkerhetshull i kildekoden. Core-teamet, som består av ca 15 personer, leser alltid gjennom hverandres kildekode, for å være sikker på at eventuelle sikkerhetshull oppdages og tettes så fort som mulig. Denne prosessen er svært tidkrevende, men lønnen for strevet er at OpenBSD er et svært sikkert operativsystem med svært få sikkerhetshull og andre feil (bugs).
Sikkerhet på programvarenivå
«Stol ikke på noen» er et velkjent begrep i mange sammenhenger. Dette gjelder i høyeste grad også programmer som brukes i OpenBSD. Sikring av programvare gjennomføres på flere måter:
Chroot og brukerseperasjon
chroot er en funksjon som begrenser en tjenestes tilgang til en katalog i systemet. Flere sentrale tjenester i OpenBSD kjører i et chroot-miljø. I praksis vil dette si at f.eks apache, som i OpenBSD kjører i et chroot-miljø i /var/www/, vil «tro» at den ser på systemets root-katalog (/), når den egentlig kun kan se det som ligger i /var/www/ og under. Denne mekanismen gjør at eventuelle sikkerhetshull og feil i apache kun vil påvirke filer i /var/www/, og ikke resten av systemet.
Med brukerseperasjon mener vi at vi har forskjellige brukere for forskjellige ting. I praksis gjennomføres det ved at vi har egne brukere som kjører de forskjellige tjenestene, og disse brukerne har kun tilgang til det de trenger for å kjøre denne tjenesten. For å ta apache-eksempelet igjen, kjører apache i OpenBSD under brukeren «www», i gruppen «www». Målet med dette er det samme som med chroot, nemlig å begrense hvor mye skade et innbrudd kan gjøre.
Systrace
Systrace er en mekanisme som begrenser et programs tilgang til ulike systemkall. Også her er målet å sørge for at eventuelle feil og innbrudd ikke gjør for mye skade.
ProPolice
ProPolice er en utvidelse av gcc, som gir beskyttelse mot såkalte «stack smashing attacks». ProPolice setter automatisk inn kode som beskytter mot «buffer overflow»-angrep, og endel andre ting. Hele systemet er kompilert med dette, noe som gjør systemet 1.3% tregere, men til gjengjeld gir en drastisk økt beskyttelse mot forskjellige angrep og feil i kildekode. ProPolice utvikles av IBM.
W^X
Dette er en funksjon som beskytter minnet på datamaskinen. Funksjonen uttales «W xor X» og bruker den logiske funksjonen «eksklusiv ELLER», XOR. Dette gjør i praksis at minne enten kan være skrivbart eller kjørbart (W eller X), men aldri begge.
NX-bit
Dette er en funksjon som har blitt introdusert i flere nye x86-prosessorer, mest i 64-bits amd-prosessorer. Uttrykket er «non-executable bit». OpenBSD har flere ganger blitt omtalt som de som best har implementert støtte for denne funksjonen.
Frihet
OpenBSD setter veldig stor fokus på at programvare skal være fri. Dette går ut på at alt helst bør bruke BSD-lisensen, og i nødstilfeller GPL, men aldri i kjernen. OpenBSD bruker sin egen apache-1.3.29, siden senere versjoner bruker en forandret lisens, som ikke er godt likt. OpenBSD valgte, som de fleste innen opensource-verdenen å boikotte XFree 4.4, og brukte istedet sin egen versjon av 4.3.99.902 (i -current pr. November 2004 har de gått over til Xorg). OpenBSD har i det siste også kjempet hardt for å få «firmware» i diverse wlan-kort utgitt under en fri lisens, slik at komplette drivere for disse kan inkluderes i operativsystemet.
Inkludert programvare
OpenBSD inkluderer en god porsjon forskjellig fri programvare:
- OpenSSH som utvikles av OpenBSD-teamet
- OpenBGPD som utvikles av OpenBSD-teamet
- XFree86 4.4 (en «fork» av 4.3.99.902, med «fri» lisens i -stable
- Xorg (i -current fra november 2004, vil bli inkludert i neste -release)
- GCC 2.95.3 og 3.3.2, med flere modifikasjoner gjort av OpenBSD-teamet.
- Apache 1.3.29, vedliheholdt av OpenBSD, på grunn av lisensforandringer i apachelisensen etter 1.3.29
- OpenSSL
- BIND
- Sendmail
- Mange programmer og tjenester utviklet av OpenBSD-teamet, som OpenBGPD, OpenNTPD og lignende
- pf - packet filter.
- Mye, mye mer.
pf
pf, eller «packet filter», er OpenBSDs tjeneste for brannmur, routing, og det meste av andre ting som har med nettverk å gjøre. Mange ser på pf som den største fordelen med OpenBSD, og nettopp derfor er OpenBSD ofte brukt som rene brannmurer. Pf bruker configfilen /etc/pf.conf. Pf er også portet til FreeBSD og NetBSD. Med pf kan man blant annet:
- Blokkere og tillate porter
- Bruke maskinen som en router med NAT
- Balansere nettverkslast mellom flere maskiner (praktisk hvis man for eksempel har flere identiske webservere bak en brannmur)
- Prioritere trafikk, pakker, porter, ip-adresser og alt annet med altq
- Blokkere eller tillate operativsystemer å koble seg til, for eksempel Windows, Linux, NMAP, AIX, og andre.
- Så godt som alt annet.
Se også:
Eksterne ressurser
- OpenBSDs hjemmeside (http://www.openbsd.org)
- OpenSSHs hjemmeside (http://www.openssh.org)
- Hjemmeside for ProPolice (http://www.trl.ibm.com/projects/security/ssp/)
- Manualsiden til pf.conf (http://www.openbsd.org/cgi-bin/man.cgi?query=pf.conf&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html)
- OpenBSD Journal: A resource for the OpenBSD community (http://undeadly.org/)

