Hardened 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 34% complete.
Outdated translations are marked like this.
Resources

Gentoo Hardened is een Gentoo project dat meerdere additionele beveiligingsservices aanbiedt boven op de welbekende Gentoo Linux installatie. Terwijl elke service individueel geselecteerd kan worden, stelt Gentoo Hardened meerdere risicobeperkende opties in de toolchain, ondersteunen van PaX, grSecurity, SELinux, TPE en meer...

Of dat je nu een server op het internet of een flexibel werkstation draait, wanneer je voor verschillende bedreigingen staat wil je jouw systeem meer verharden door automatisch de laatste beveiligingsverbeteringen toe te passen. Een systeem verharden betekent dat je extra tegenmaatregelen toepast tegen aanvallen en andere risico's en dat is gewoonlijk een gecombineerde verzamelingen van activiteiten die je op jouw systeem uitvoert.

In Gentoo Hardened zijn er verschillende projecten die actief zijn met het verder helpen van jouw Gentoo systeem te verharden door:

  • specifieke opties in de toolchain (compiler, linker ...) aan te zetten zoals het forceren van positie-onafhankelijke toepassingen (en: position-independent executables aka PIE), stack smashing protectie en buffer controles tijdens het compileren.
  • PaX extensies aan te zetten in de Linux kernel, dewelke additionele beveiligingsmaatregelen bieden zoals het randomiseren van van de adresruimte lay-out (ASLR) en niet-uitvoerbaar geheugen (NX).
  • grSecurity extensies aan te zetten in de Linux kernel, inclusief extra chroot restricties, extra auditing, process restricties, enzovoort...
  • SELinux extensies aan te zetten in de Linux kernel, dewelke het Mandatory Access Control systeem aanbieden die de standaard Linux permissie restricties verbeteren.
  • Integrity gerelateerde technologieën, zoals het Integrity Measurement Architecture, voor systemen beter te beveiligen tegen ongewenste veranderingen.

Natuurlijk bevat dit de nodige userspace programma's om deze extensies te beheren.

Belangrijk
Read relevant documentation before performing any profile changes.

Selecteer een Hardened Profiel, zodanig dat "pakket management" op een verharde manier gedaan word.

root #eselect profile list
root #eselect profile set [nummer van het verhard profiel]
root #source /etc/profile

Door het Hardened Profiel te kiezen, zullen enkele instellingen van het pakket management (masks, USE flags, enzovoort...) als standaard worden ingesteld voor jouw systeem. Dit geldt voor veel pakketten, inclusief de toolchain. De toolchain is in gebruik voor het bouwen / compileren van jouw programma's, inclusief: De GNU Compiler Collection (GCC), binutils (linker, enzovoort...), en de GNU C bibliotheek (glibc). Door de toolchain opnieuw te emergen, zullen deze nieuwe instellingen standaard gelden voor de toolchain, dit staat toe toekomstige pakket compilaties op een verharde manier te doen.

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

De bovenstaande commando bouwt GCC opnieuw op, zodanig dat het gebruikt kan worden om hardened software te compileren. Verzeker je ervan dat de hardened optie is geselecteerd voor 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

Als je het "prelink" pakket gebruikt, verwijder het dan, want het is niet compatibel met het Hardened Profiel:

root #emerge --depclean prelink

Nu kan je alle pakketten opnieuw installeren met jouw nieuw verharde toolchain:

root #emerge --emptytree --verbose @world

Installeer verharde kernel broncode, zodanig dat de kernel jouw *systeem beheerd* op een verharde manier (zeker als je PaX gebruikt):

root #emerge --ask hardened-sources

Nu configureer en compileer je de nieuwe kernel broncode en voeg je de kernel toe aan jouw boot beheerder (bvb. GRUB).

Tips en tricks

Hardened Instellingen per Pakket

Opgepast
Deze methode wordt niet ondersteund door Gentoo.

Het GCC profiel veranderen om met specifieke pakketten om te gaan is pijnlijk. Een manier om dat niet te hoeven doen is om per pakket C(XX)FLAGS in te stellen door package.env te gebruiken. Maak het bestand /etc/portage/env/nossp aan en voeg daar het volgende aan toe:

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

Om PIE te kunnen uitschakelen, creëer en voeg toe aan /etc/portage/env/nopie:

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

Uiteindelijk voeg je het pakket waarvoor je PIE of SSP wilt uitschakelen aan /etc/portage/package.env en de relevante /etc/portage/env/<filename> toe, voor dit voorbeeld gebruiken we sys-libs/zlib:

FILE /etc/portage/package.envSchakel PIE uit voor sys-libs/zlib
sys-libs/zlib nopie

Zie ook

Voor meer informatie, zie de volgende pagina's: