Hardened Gentoo/de

Gehärtetes Gentoo (Hardened Gentoo) ist ein Gentoo Projekt, das mehrere zusätzliche Sicherheitsdienste zusätzlich zur gut bekannten Gentoo Linux Installation bietet. Obwohl jeder Dienst separat ausgewählt werden kann. ermöglicht Gentoo Hardened mehrere Risikominderungs-Optionen in der Toolchain. Unterstützt werden PaX, grSecurity, SELinux, TPE und weitere.

Ob Sie einen mit dem Internet verbundenen Server oder eine flexible Workstation betreiben, wenn Sie mit unterschiedlichen Bedrohungen umgehen, wollen Sie vermutlich Ihr System weiter härten als nur automatisch die letzten Sicherheitspatches anwenden. Ein System härten bedeutet dass Sie zusätzliche Gegenmassnahmen gegen Angriffe oder andere Risiken ergreifen und das ist normalerweise eine Kombination von Aktivitäten die Sie am System durchführen.

In Gentoo Hardened sind mehrere Projekte aktiv, die Ihnen helfen Ihr Gentoo System noch härter zu machen durch ...
 * Aktivierung bestimmter Optionen in der Toolchain (Compiler, Linker, ...) wie zum Beispiel der Zwang nach positionsunabhängigem Code (eng.: position-independent executables (PIE)), Stack Smashing Protection und Kompilierzeit-Pufferüberprüfungen.
 * Aktivierung der PaX Erweiterung im Linux Kernel, das zusätzliche Schutzmassnamen wie Adressplatz Layout Randomisierung und nicht ausführbaren Speicher bietet.
 * Aktivierung der grSecurity Erweiterung im Linux Kernel, einschliesslich zusätzlicher chroot Beschränkungen, zusätzlicher Prüfungen, Prozessbeschränkungen, usw.
 * Aktivierung der SELinux Erweiterungen im Linux Kernel, die eine verbindliche Zugriffskontrollsystem-Erweiterung der Standard Linux-Berechtigungseinschränkungen bieten.
 * Aktivierung der integritätsbezogenen Technologien, wie die Integrity Measurement Architecture, um Systeme belastbar gegen Sabotage zu machen.


 * Enabling specific options in the toolchain (compiler, linker ...) such as forcing position-independent executables (PIE), stack smashing protection and compile-time buffer checks.
 * Enabling PaX extensions in the Linux kernel, which offer additional protection measures like address space layout randomization and non-executable memory.
 * Enabling grSecurity extensions in the Linux kernel, including additional chroot restrictions, additional auditing, process restrictions, etc..
 * Enabling SELinux extensions in the Linux kernel, which offers a Mandatory Access Control system enhancing the standard Linux permission restrictions.
 * Enabling Integrity related technologies, such as Integrity Measurement Architecture, for making systems resilient against tampering

Selbstverständlich schliesst das die notwendigen Userspace-Dienstprogramme mit ein, um diese Erweiterungen handzuhaben.

Zu einem gehärteten Profil (Hardened Profile) wechseln
Wählen Sie ein gehärtetes Profil, so dass das Paket Management auf härte Weise gehandhabt wird.

Durch die Wahl des gehärteten Profils werden bestimmte Paketmanagement-Einstellungen (masks, USE-Flags, etc.) zum Standard für Ihr System. Dies betrifft viele Pakete, eingeschlossen die Toolchain. Die Toolchain wird zum Bau/ zur Kompilierung Ihrer Programme verwendet und schliesst folgendes ein: Die GNU Compiler Collection (GCC), binutils (linker, etc.) und die GNU C library (glibc). Durch einen re-emerge der Toolchain treten diese neuen Standard-Einstellung für die Toolchain in Kraft. Dies gestattet es alle zukünftigen Paket-Kompilierungen auf gehärtete Weise durchzuführen.

Die oben stehenden Befehle bauen GCC erneut, es kann nun dazu verwendet werden gehärtete Software zu kompilieren. Stellen Sie sicher, dass die gehärtete Option für GCC ausgewählt ist.

In der Beispielausgabe oben ist das gehärtete GCC Profil jenes ohne Suffix. Wenn Sie PIE oder SSP deaktivieren möchten, wählen Sie entsprechend hardenedno(pie|ssp) oder beides, hardenednopiessp. Das Profil vanilla ist natürlich das eine mit deaktivierter Härtung. Abschliessend lassen Sie Ihre neuen Profileinstellungen neu einlesen:

Wenn sie das "prelink" Paket verwenden entfernen Sie es, weil es mit dem gehärteten Profil nicht kompatibel ist:

Nun können Sie alle Pakete mit Ihrer neuen, gehärteten Toolchain erneut installieren:

Installieren Sie die gehärteten Kernel Quellen, so dass der Kernel Ihr laufendes System auf gehärtete Weise verwaltet (und im Besonderen PaX verwendet):

Konfigurieren und kompilieren Sie nun die Quellen und fügen Die den neuen Kernel Ihrem Bootmanager hinzu (z.B. GRUB).

Gehärtetes Gentoo/ Grsecurity Chroot
If you want to chroot to a copied environment where the CONFIG_GRKERNSEC_CHROOT is enabled you must use the cd grub and change the root(cd) kernel(cd) initrd(cd) setting to from (cd) to (hdx,y).

Now you can install the grub environment.

Paketweise Härtungs-Einstellungen
Changing the GCC profile to deal with specific packages can be a pain. A way to avoid this is to set per-package C(XX)FLAGS using package.env. Create the file and add to that:

To allow for disabling PIE, create and add to :

Finally add the package you want to disable either PIE or SSP for to and the relevant, for this example  is used here:

Siehe auch
Für weitere Informationen sehen Sie sich die folgenden Ressourcen an:
 * Gentoo Hardened Project
 * Gentoo Hardened SELinux Project
 * Project:Hardened/Grsecurity2_Quickstart
 * Project:Hardened/PaX_Quickstart


 * Gentoo Hardened SELinux Project
 * Project:Hardened/Grsecurity2_Quickstart
 * Project:Hardened/PaX_Quickstart

Externe Ressourcen

 * http://www.rockfloat.com/howto/gentoo-hardened.html#kernel