Megerősített Gentoo

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Hardened Gentoo and the translation is 100% complete.
Resources

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

Important
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

Warning
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á:

FILE /etc/portage/env/nosspDisable SSP
CFLAGS="${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:

FILE /etc/portage/env/nopieDisable PIE
CFLAGS="${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.

FILE /etc/portage/package.envPIE letiltása a sys-libs/zlib számára
sys-libs/zlib nopie

További olvasnivaló a témában

További információkért tekintse meg az alábbi forrásokat: