OpenBSD – instalacja łatek bezpieczeństwa

Do stabilnej gałęzi systemu wydawane są co pewien czas łatki bezpieczeństwa. Ich celem jest oczywiście załatanie dziur w systemie, nie dodają one jednak żadnych nowych funkcji. Ich listę można znaleźć tutaj (dla wersji 4.8).

Pobranie źródeł systemu

Na początku potrzebny jest nam kod źródłowy systemu oraz jądra. Pliki można ściągnąć używając CVS’a lub zwyczajnie przez http/ftp. Źródła jądra znajdują się w pliku sys.tar.gz, systemu w src.tar.gz. Rozpakowujemy je później w katalogu /usr/src.

root@fw-s:/>cd /usr/src
root@fw-s:/usr/src>wget ftp://ftp.spline.de/pub/OpenBSD/4.8/sys.tar.gz
root@fw-s:/usr/src>wget ftp://ftp.spline.de/pub/OpenBSD/4.8/src.tar.gz
root@fw-s:/usr/src>tar xzf sys.tar.gz
root@fw-s:/usr/src>tar xzf src.tar.gz

Teraz czas na patch’e. Linki wraz z krótkim opisem znajdują się na podanej wyżej stronie. Można też ściągnąć archiwum z wszystkimi łatkami:

root@fw-s:/usr/src>wget http://ftp.openbsd.org/pub/OpenBSD/patches/4.8.tar.gz
root@fw-s:/usr/src>tar xzf 4.8.tar.gz

Łatanie jądra systemu

Jeżeli chodzi o sposób kompilacji łatek, można je podzielić na 2 grupy: te które dotyczą bezpośrednio jądra systemu, oraz te które łatają plikwać wszystkie łai binarne/biblioteki. Przykładowo patch nr.3 naprawia błąd w sterowniku vr (karta sieciowa). Krótki opis instalacji jest dostępny na samej górze tego pliku:

Apply by doing:
	/usr/src
	patch -p0 < 003_vr.patch

Then build and install a new kernel.

, więc zgodnie z insruckją:

root@fw-s:/usr/src>patch -p0 < 003_vr.patch 
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|Apply by doing:
|       /usr/src
|       patch -p0 < 003_vr.patch
|
|Then build and install a new kernel.
|
|Index: sys/dev/pci/if_vr.c
|===================================================================
|RCS file: /cvs/src/sys/dev/pci/if_vr.c,v
|retrieving revision 1.105
|retrieving revision 1.105.2.1
|diff -u -r1.105 -r1.105.2.1
|--- sys/dev/pci/if_vr.c        19 May 2010 15:27:35 -0000      1.105
|+++ sys/dev/pci/if_vr.c        2 Oct 2010 03:00:52 -0000       1.105.2.1
--------------------------
Patching file sys/dev/pci/if_vr.c using Plan A...
Hunk #1 succeeded at 1.
Hunk #2 succeeded at 1562.
done

Kolejny krok to rekompilacja jądra systemu:

root@fw-s:/usr/src>cd sys/arch/i386/conf/
root@fw-s:/usr/src/sys/arch/i386/conf>/usr/sbin/config GENERIC
Don't forget to run "make depend"
root@fw-s:/usr/src/sys/arch/i386/conf>cd /usr/src/sys/arch/i386/compile/GENERIC
root@fw-s:/usr/src/sys/arch/i386/compile/GENERIC>make clean && make depend && make
....
root@fw-s:/usr/src/sys/arch/i386/compile/GENERIC>make install
rm -f /obsd
ln /bsd /obsd
cp bsd /nbsd
mv /nbsd /bsd

Na koniec trzeba ponownie uruchomić system, żeby załadować nowe jądro. W przypadku jakichkolwiek problemów, stare jądro jest dostępne jako obsd (wystarczy wpisac obsd> w boot-loaderze). Kompilacja zajmuje trochę czasu, więc warto przed jej wykonaniem zastosować wszystkie łatki dotyczące kernel’a.

Łatanie binarek/bibliotek

Tutaj także znajdziemy dokładny opis instalacji w pliku, przykładowo dla pierwszej łatki:

Apply by doing:
	cd /usr/src
	patch -p0 < 001_bgpd.patch

Rebuild and install the bgp daemon:
	cd usr.sbin/bgpd
	make obj
	make depend
	make
	make install 

Po skompilowaniu i zainstalowaniu patcha wystarczy jedynie zrestartować odpowiednią aplikacje/daemona (jeżeli z niego korzystamy).

Zostaw komentarz


Podpowiedź - możesz użyć tych HTML tagów i atrybutów:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Obraz CAPTCHY

*