Gehärtetes Gentoo (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 90% complete.
Resources

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.

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.

root #eselect profile list
root #eselect profile set [Nummer des gehärteten Profils]
root #source /etc/profile

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.

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

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.

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

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:

root #source /etc/profile

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

root #emerge --depclean prelink

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

root #emerge --emptytree --verbose @world

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

root #emerge --ask hardened-sources

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

Tipps und Tricks

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).

Jetzt können Sie die Grub-Umgebung installieren.

Paketweise Härtungs-Einstellungen

Warnung
Diese Methode wird von Gentoo nicht unterstützt.

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 /etc/portage/env/nossp and add to that:

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

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

DATEI /etc/portage/env/nopiePIE deaktivieren
CFLAGS="${CFLAGS} -no-pie"
CXXFLAGS="${CXXFLAGS} -no-pie"
LDFLAGS="${LDFLAGS} -no-pie"
Hinweis
GCC Version 4.x verwendet -nopie anstelle von -no-pie.

Finally add the package you want to disable 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:

DATEI /etc/portage/package.envPIE für sys-lib/zlib deaktivieren
sys-libs/zlib nopie

Siehe auch

Für weitere Informationen sehen Sie sich die folgenden Ressourcen an:

Externe Ressourcen