Megerősített Gentoo
A Gentoo Hardened (megerősített Gentoo) egy Gentoo projekt, amely számos további biztonsági szolgáltatást nyújt a jól ismert Gentoo Linux telepítésén felül.
Akár egy internetre néző szervert, akár egy rugalmas munkaállomást üzemeltet, több fenyegetéssel szembenézve előnyös lehet az rendszert tovább erősíteni, nem csupán a legújabb biztonsági javítások automatikus alkalmazásával. A rendszer megerősítése további ellenintézkedések megtételét jelenti a támadások és egyéb kockázatok ellen, és általában a rendszeren végrehajtott tevékenységek kombinált készletét foglalja magában.
A Gentoo Hardened alapját egy megerősített eszközlánc képezi, amelyben speciális opciók engedélyezése történik az eszközláncban (fordító, linker ...), például helyfüggetlen futtatható fájlok (position-independent executables, PIE) kényszerítése, verem-összeomlás elleni védelem és forráskód fordítási időben történő pufferellenőrzések. Tekintse meg a table leírást.
A Gentoo Hardened keretein belül számos további aktív projekt működik, amelyek a Gentoo operációs rendszer további megerősítését segítik az alábbi módokon:
- A Linux kernelben a SELinux kiterjesztések engedélyezése, amelyek egy kötelező hozzáférés-vezérlési rendszert kínálnak a szabványos Linux jogosultsági korlátozások kiterjesztésére.
- Integrity kapcsolódó technológiák, például az Integrity Measurement Architecture engedélyezése a rendszerek manipulációval szembeni ellenállóvá tételéhez.
Természetesen ez magában foglalja a szükséges felhasználói térbeli segédprogramokat is, amelyekkel ezek a kiterjesztések kezelhetők.
Váltás a megerősített profilra
Olvassa el a vonatkozó dokumentációt, mielőtt bármilyen profilváltoztatást végezne.
Válasszon egy megerősített profilt, hogy a szoftvercsomag-kezelés megerősített módon történjen.
root #
eselect profile list
root #
eselect profile set [number of hardened profile]
root #
source /etc/profile
A megerősített profil kiválasztásával bizonyos szoftvercsomag-kezelési beállítások (maszkolások, USE jelölőzászlók stb.) alapértelmezetté válnak az operációs rendszer számára. Ez sok szoftvercsomagra vonatkozik, beleértve a toolchain-t is. A toolchain a futtatható szoftverek felépítésére/forráskódjainak a fordítására szolgál, és a következőket tartalmazza: A GNU Compiler Collection (GCC)-t, binutils-t (linker stb.) és a GNU C könyvtárat (glibc). A toolchain újbóli létrehozásával ezek az új alapértelmezett beállítások érvényesek lesznek a toolchain-re, amely lehetővé teszi, hogy a jövőbeli szoftvercsomag forráskódok lefordítása bináris futtatható fájlokra megerősített módon történjen.
root #
emerge --oneshot sys-devel/gcc
root #
emerge --oneshot sys-devel/binutils sys-libs/glibc
A fenti parancsok újraépítették (újból létrehozták) a GCC forráskódfordító szoftvert, amely szoftvert mostantól használható megerősített szoftverek forráskódjának a lefordítására. Győződjön meg arról, hogy a kiválasztott fordítóprogram az éppen elkészített verzió:
root #
gcc-config -l
[1] x86_64-pc-linux-gnu-9.3.0 * [2] x86_64-pc-linux-gnu-8.5.0
Végül forrásként használja az új profilbeállításokat:
root #
source /etc/profile
Ha a "prelink" szoftvercsomagot használja, akkor távolítsa el, mivel az nem kompatibilis a megerősített profillal:
root #
emerge --depclean prelink
Most telepítse újra az összes szoftvercsomagot az új megerősített toolchain segítségével:
root #
emerge --emptytree --verbose @world
Ha nem a Disztribúciós kernelt használja, akkor telepítse újra a kernel forráskódjait:
root #
emerge --ask gentoo-sources
Most állítsa be / fordítsa le a kernel forráskódjait, és adja hozzá az új bináris futtatható kernelképfájlt a bootloaderhez (például a GRUB-hoz).
Tippek és trükkök
Megerősítési beállítások szoftvercsomagonkénti letiltása
Ez a módszer nem támogatott a Gentoo által, és manapság rendkívül valószínűtlen, hogy szükséges lenne. Minden nagyobb disztribúció alapértelmezés szerint PIE-vel szállítja a szoftvercsomagokat.
A megerősítések szoftvercsomagonkénti letiltásához használja a C(XX)FLAGS-t a package.env segítségével. Hozza létre a /etc/portage/env/nossp fájlt, és adjon hozzá:
/etc/portage/env/nossp
Disable SSPCFLAGS="${CFLAGS} -fno-stack-protector"
CXXFLAGS="${CXXFLAGS} -fno-stack-protector"
A PIE letiltásának lehetővé tételéhez hozza létre, és adja hozzá a következőket a /etc/portage/env/nopie fájlhoz:
/etc/portage/env/nopie
Disable PIECFLAGS="${CFLAGS} -no-pie"
CXXFLAGS="${CXXFLAGS} -no-pie"
LDFLAGS="${LDFLAGS} -no-pie"
Végül az érintett szoftvercsomag esetében adjon hozzá vagy PIE-t, vagy SSP-t a /etc/portage/package.env fájlhoz, valamint a megfelelő /etc/portage/env/<filename> fájlhoz. Ebben a példában a sys-libs/zlib szoftvercsomag kerül felhasználásra.
/etc/portage/package.env
PIE letiltása a sys-libs/zlib számárasys-libs/zlib nopie
További olvasnivaló a témában
További információkért tekintse meg az alábbi forrásokat: