Na początku tego 'poradnika' czy 'artykułu' napisze, że oficjalnie nie istnieje coś
takiego jak Gentoo Lightened (GL). Jest to nazwa wymyślona przeze mnie, która ma oznaczać bardzo ubogą
wersję dystrybucji Gentoo Hardened (GH) przeznaczonej na serwery. Założeniem projektu Hardened jest
zwiększenie bezpieczeństwa w systemie Gentoo poprzez dodanie do kernela Linux łatki grsecurity oraz
PAX a także wbudowanie do kompilatora gcc opcji zabezpieczających przed przepełnieniami bufora oraz
atakami na stos. Jako że Gentoo Hardened jest bardzo dobre na serwery (wiele razy testowałem) byłem
bardzo ciekaw czy jako desktop też będzie takie rewelacyjne.
Jednak główny powód tego eksperymentu jest inny. Po przejściu z Gentoo 2007.1 na
Gentoo 2008.0 z moim komputerem działy się różne rzeczy - od zawieszenia się systemu aż po nagłe
restarty (jak sie później okazało, przyczyną był uszkodzony dysk w laptopie). Postanowiłem albo
przejść z powrotem na wersje 2007.1 albo spróbować profilu Gentoo, który
nie zmienia się co rok np. z 2008.0 na 2009.0. Jedynym takim profilem był Hardened więc na niego
padło ;)
A więc do roboty... Po kilkugodzinnych kompilacjach system został postawiony.
Wykorzystany został stage3 hardened oraz kernel gentoo-sources. Czytelnicy, którzy mieli styczność
z GH napewno zadają sobie pytanie dlaczego nie został wykorzystany kernel hardened-sources.
Odpowiedź jest bardzo prosta. System na desktop nie potrzebuje takich mechanizmów zabezpieczających
jakie daje grsecurity czy PAX.
Po trzech godzinach, serwer X-ów wraz z fluxbox'em były już zainstalowane. Aby sprawdzić wydajność
systemu zainstalowałem także otwarzacz Kaffeine gdyż jego używam najczęsciej, kadu w wersji 0.4.3
oraz firefox 3.0.1 (którego kompilowało chyba ze 2-3 godziny).
Wreszcie nadszedł czas na testy...
Filmiki o rozdzielczości 320x262 strasznie przycinały a o filmach w wyższych
rozdzielczościach nawet nie wspominam. Podczas korzystania z przeglądarki, otwieranie nowych stron
stawało się koszmarem. Przełączanie się pomiędzy okienkami rozmów w kadu przyprawiało o dreszcze.
Innymi słowy nie dało się z systemu normalnie korzystać. Laptop (na nim to testowałem) nie należy do
słabych: Intel Core-Duo T2080 1.73 , 1GB RAMu , Intel GMA 945.
System różnił się od Gentoo Hardened tym, że w kernelu nie były włączone łatki
grsecurity i PAX. Postanowiłem usunąć następne zabezpieczenie jakie daje Hardened - mowa o dwóch
opcjach w gcc dotyczątych przepełnienia bufora oraz atakami na stos. Aby wyłączyć te opcje należało
zmienić profil gcc (polecenie gcc-config) a następnie przekompliować cały system wraz programami które
doinstalowałem (Kaffeine, FireFox, Kadu itp.). Zajeło mi to ok. 20 godzin ;)
Aby przekonać się czy tyle czasu nie poszło na marne wystarczyło właczyć jakiś
filmik Kaffeine'em. Efekt był bardzo zaskakujący! Filmy w wysokich rozdzielczościach nie przycinały się.
Otwieranie nowych stron w firefox'ie nie było już takie straszne a przełączanie między oknami rozmów w
kadu bardzo przyjemne.
Podsumowując:
1) z systemu Gentoo Hardened zostały usunięte:
* grsecurity
* PAX
* opcja gcc dotycząca zabezpieczenia przez przepełnieniem bufora
* opcja gcc dotycząca zabezpieczenia przez atakami na stos
2) co nie zostało usunięte z Gentoo Hardened:
* opcja gcc '-fPIC' (szczerze powiem - nie znam się na tym ;) )
* flagi USE, które są podstawą profilu Hardened: hardened, pic
Systemu Gentoo Hardened stał się praktycznie zwykłym systemem Gentoo
(bez zabezpieczeń). Cel, który chciałem osiągnąć został spełniony gdyż otrzymałem system, w którym
profil się nie zmienia np. z 2008.0 na 2009.0. System nazwałem Gentoo Lightened
Jak zmodyfikować Gentoo Hardened na Gentoo Lightened?
* instalujemy Gentoo wg. dokumentacji tyle że zamiast stage3 ściągamy stage3 hardened
* po instalacji systemu sprawdzamy profil poleceniem: eselect profile list
* jeżeli profil jest inny niż hardened/x86/2.6 (nr 5) to zmieniamy profil: eselect profile set 5
* sprawdzamy czy dodane są flagi USE: hardened, pic (jeżeli profil został ustawiony to te flagi
powinny być dodane)
* sprawdzamy jaki jest profil gcc: gcc-config -l
* zmieniamy profil gcc na vanilla: gcc-config i686-pc-linux-gnu-3.4.6-vanilla
* przebudowywujemy cały system poleceniem: emerge -e world
Jeżeli wszystko skończyło się pomyślnie to możemy cieszyć się systemem Gentoo Lightened ;)
UWAGA - autor nie odpowiada za jakiekolwiek szkody spowodowane zmodyfikowaniem Gentoo Hardened!