Härdad 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 11% complete.
Outdated translations are marked like this.
Resources

Härdad Gentoo (Gentoo Hardened) är ett Gentoo-projekt som tillhandahåller ytterligare säkerhetstjänster ovanpå den välkända Gentoo Linux-installationen. Fastän varje alternativ kan väljas separat, möjliggör Gentoo Hardened för flera riskreducerande alternativ i verktygskedjan, som PaX, grSecurity, SELinux, TPE och mer.

Vare sig du kör en Internetriktad server eller en flexibel arbetsstation, när du hanterar flera säkerhetshot kommer du vilja härda ditt system ytterligare än att bara tillämpa de senaste programfixar. Härdandet av ett system betyder att du tar fler åtgärder gentemot attacker och andra risker och är ofta ett flertal aktiveteter du utför på ett system.

Inom Gentoo Hardened finns flera aktiva projekt som hjälper till att härda ett Gentoo-system genom att:

  • Möjliggöra specifika alternativ i verktygskedjan (kompilator, länkare...), exempelvis att tvinga positionsoberoende körbara filer (eng: position-independent executables (PIE)), buffer-överflöde och buffertkontroller vid kompilering.
  • Möjliggöra PaX-tillägg i Linux-kärnan, som erbjuder ytterligare skyddsåtgärder som slumpmässig layout av adressutrymme (eng: address space layout randomization) och icke-körbart minne.
  • Möjliggöra grSecurity-tillägg i Linux-kärnan, därigenom ytterligare chroot-restriktioner, revisioner, processbegränsningar osv.
  • Möjiggöra SELinux-tillägget i Linux-kärnan som erbjuder Mandatory Access Control-system som höjer standarden för Linux-tillståndsbegränsningar.
  • Möjliggöra Integrity-relaterade teknologier, exempelvis Integrity Measurement Architecture för att göra system uthålliga mot manipulering.

Detta inkluderar givetvis de nödvändiga userspace-verktygen för att hantera dessa tillägg.

Important
Read relevant documentation before performing any profile changes.

Välj en härdad profil så att pakethantering görs på ett härdat vis.

root #eselect profile list
root #eselect profile set [den härdade profilens nummer]
root #source /etc/profile

Genom att välja en härdad profil kan vissa inställningar för pakethantering (maskar, USE-flaggor osv.) bli standard för ditt system. Detta gäller för många paket, inklusive verktygskedjan. Verktygskedjan används för att bygga/kompilera dina program, och omfattar: GNU Compiler Collection (GCC), binutils (länkare osv.), och GNU C-biblioteket (glibc). Genom att omkompilera verktyskedjan, kommer de nya standarder att appliceras på verktyskedjan, som gör att all framtida paketkompilering görs på ett härdat sätt.

root #emerge --oneshot gcc
root #emerge --oneshot binutils virtual/libc

De ovanstående kommandon bygger om GCC, som nu kan användas för att kompilera härdad programvara. Se till att hardened-alternativet har valts för GCC.

root #gcc-config -l
[1] i686-pc-linux-gnu-4.5.3 *
[2] i686-pc-linux-gnu-4.5.3-hardenednopie
[3] i686-pc-linux-gnu-4.5.3-hardenednopiessp
[4] i686-pc-linux-gnu-4.5.3-hardenednossp
[5] i686-pc-linux-gnu-4.5.3-vanilla

Finally source the new profile settings:

root #source /etc/profile

If using the "prelink" package, remove it, since it isn't compatible with the hardened profile:

root #emerge --depclean prelink

Now reinstall all packages with the new hardened toolchain:

root #emerge --emptytree --verbose @world

Install kernel sources:

root #emerge --ask gentoo-sources

Now configure/compile the sources and add the new kernel to the boot manager (e.g. GRUB).

Tips and tricks

Disable hardening settings on a per package basis

Warning
This method is not supported by Gentoo and is extremely unlikely to be necessary nowadays. All major distributions ship with PIE by default now.

To disable protections per-package, use C(XX)FLAGS via package.env. Create the file /etc/portage/env/nossp and add to that:

FILE /etc/portage/env/nosspDisable SSP
CFLAGS="${CFLAGS} -fno-stack-protector"
CXXFLAGS="${CXXFLAGS} -fno-stack-protector"

To allow for disabling PIE, create and add to /etc/portage/env/nopie:

FILE /etc/portage/env/nopieDisable PIE
CFLAGS="${CFLAGS} -no-pie"
CXXFLAGS="${CXXFLAGS} -no-pie"
LDFLAGS="${LDFLAGS} -no-pie"

Finally for the package concerned, add either PIE or SSP for to /etc/portage/package.env and the relevant /etc/portage/env/<filename>, for this example sys-libs/zlib is used here:

FILE /etc/portage/package.envDisable PIE for sys-libs/zlib
sys-libs/zlib nopie

See also

For more information, check out the following resources: