Uppdatera OpenBSD

Från Unix.se, den fria unixresursen.

Att hålla sitt system uppdaterat är A och O för en systemadministratör, speciellt om systemet går att nå via Internet. I denna artikel beskrivs hur man kan gå till väga för att uppdatera sitt OpenBSD-system med de senaste säkerhetspatcharna.

Innehåll

Varför?

En utgåva av OpenBSD är i bästa fall fri från allvarliga säkerhetsluckor när den släpps. Men om man installerar t.ex. OpenBSD 3.2 i februari 2003 (3.2 släpptes i november 2002) så har det med största säkerhet hittats några allvarliga säkerhetsluckor under dessa sex månader som utgåvan funnits tillgänglig.

Därför rekommenderar jag att man direkt efter att ha installerat OpenBSD tar hem källkoden, och uppdatera den med de senaste patcharna. Innan jag förklarar hur man gör detta tänkte jag berätta lite om hur OpenBSDs grenar och utgåvor hänger ihop.

Var 6:e månad kommer det en ny utgåva av OpenBSD, den nyaste av dessa kallas "release". När det kommer viktiga säkerhetspatchar till en utgåva, läggs dessa till i grenen "stable", som alltså är "release" plus säkerhetspatchar. Dessa patchar finns även tillgängliga för nerladdning via http://www.openbsd.org/errata.html, men som vi ser senare kommer vi att ta hem dem på ett smidigare sätt. Det ska nämnas att det även finns mindre viktiga uppdateringar som kan hamna i stable-grenen, men som inte finns med i erratan.

Efter att en utgåva släppts fortsätter utvecklingen i grenen "current" tills nästa utgåva släpps, som då blir "release". Dessa konstiga benämningar är kopplade till olika "taggar" i versionhanteringssystemet CVS som OpenBSD-projektet använder. Detta ska vi senare utnyttja.

I OpenBSDs FAQ finns en bild som beskriver detta bättre än ord, ta en kik på den så kanske det klarnar: OpenBSDs Flavors (http://www.openbsd.org/faq/faq5.html#Flavors).

Hur?

Ta hem källkoden

Eftersom det finns information i CVS som talar om vilken källkod som hör till vilken gren, kan vi på ett enkelt sätt ta hem källkoden som tillhör t.ex. stable-grenen. Det är precis detta vi ska börja med att göra.

Alla kommandon som följer är lättast att utföra om man är root.

# cd /usr

Till att börja med ställer vi oss i katalogen /usr, där man brukar förvara källkoden för systemet i en underkatalog, som kommer att skapas av cvs-kommandot.

# export CVSROOT="anoncvs@anoncvs.se.openbsd.org:/cvs"

alternativt:

# setenv CVSROOT anoncvs@anoncvs.se.openbsd.org:/cvs

CVS måste veta varifrån den ska hämta källkoden, därför exporterar vi en variabel i skalet, CVSROOT, som ger cvs just denna information. Export ska du använda om du har ett bourne-kompatibelt skal (ksh/bash t.ex.). Setenv använder du om du kör tcsh/csh. I vårt fall använder vi en svensk spegel, fler speglar finns att hitta på OpenBSDs hemsida (http://www.openbsd.org/anoncvs.html).

# cvs -z5 -q get -rOPENBSD_3_7 -P src

Till slut kan vi ge kommandot som tar hem hela källkodsträdet. Flaggorna betyder som följer:

* "-z5"           Källkoden komprimeras på vägen från server till din dator,
                  detta är användbart om du inte har en så snabb uppkoppling.
* "-q"            Gör att CVS inte ger alltför överväldigande utdata.
* "get"           Anger att vi vill hämta källkoden, inget annat.
* "-rOPENBSD_3_7" Det är här magin sker, -r anger vilken gren vi vill hämta
                  källkoden ifrån. OPENBSD_3_7 är samma sak som
                  OpenBSD-3.7-stable. Om du vill uppdatera ditt 3.6-system
                  använder du OPENBSD_3_6 istället.
* "-P"            Vi vill inte ha några tomma kataloger i vårt källkodsträd,
                  denna flagga ser till att vi inte får några sådana.
* "src"           Vi vill ha källkoden, den ligger i en så kallad "cvs-modul"
                  som heter just "src".

När cvs har arbetat klart har du förhoppningsvis en katalog som heter /usr/src. Här ligger nu hela systemets källkod, med alla säkerhetspatchar och mindre patchar inkluderade.

Uppdatera ports

Om du vill kan du också hämta eller uppdatera ports-trädet på samma vis. Detta förutsätter förstås att du definierat CVSROOT som angivet ovan.

Om du inte redan har ports-trädet:

# cd /usr
# cvs -z5 -q get -rOPENBSD_3_7 -P ports

Om du redan har det:

# cd /usr/ports
# cvs -z5 -q up -rOPENBSD_3_7 -Pd

Kompilera systemet

Nu återstår bara att kompilera om kärnan och hela systemet. Hur man kompilerar kärnan tänker jag inte gå igenom här, eftersom det finns en separat artikel om det. Följ anvisningarna och starta sedan om datorn med den nya kärnan.

Så var det bara själva systemet kvar att kompilera. Det låter krångligare än det faktiskt är. Vi behöver bara exekvera ett enda kommando i katalogen /usr/src, nämligen:

# make build

Nu kommer din burk förhoppningsvis att ha lite att göra ett tag framöver, så du kanske ska surfa väg till OpenBSDs hemsida och beställa en uppsättning OpenBSD-skivor under tiden? Kom ihåg att man får tuffa klistermärken på köpet!

Efter nån/några timmar när kompileringen är färdig, har du alltså ett uppdaterat system, som innehåller alla säkerhetspatchar och mindre patchar som letat sig in i stable-grenen. Jag brukar alltid starta om maskinen efter att ha kompilerat om systemet, för att alla daemoner ska startas med de eventuellt uppgraderade binärerna.

Personliga verktyg