Gentoo durci
Gentoo durci (Gentoo Hardened) est un projet Gentoo qui offre de nombreux services de sécurité qui s'ajoutent à l'installation bien connue de Gentoo Linux. Bien que chacune d'elles puisse être sélectionnée individuellement, Gentoo Hardened active plusieurs options d'atténuation du risque dans la chaîne des outils et prend en charge PaX, grSecurity, SE Linux, TPE et plus encore.
Que vous utilisiez un serveur Internet ou une station de travail flexible, lorsque vous devez faire face à de multiples menaces, vous souhaitez durcir votre système au delà de la simple application des correctifs de sécurité « Durcir » un système signifie que vous prenez des mesures additionnelles contre les attaques et contre d'autres risques. Cela se combine le plus souvent avec un ensemble d'actions que vous faites sur le système.
Dans Gentoo Hardened, plusieurs projets sont actifs pour aider à durcir un système Gentoo via :
- L'activation d'options dans la chaîne des outils (compilateur, éditeur de liens ...) comme le forçage d'exécutables indépendants de la position (PIE), la protection de la pile contre les débordements et des vérifications de tampons en compilation.
- L'activation des extensions PaX dans le noyau Linux, qui apporte des mesures de protection additionnelles comme la distribution aléatoire de l'espace mémoire et la mémoire non exécutable.
- L'activation des extensions grSecurity dans le noyau Linux, y compris les restrictions additionnelles sur le changement de racine, des audits additionnels, des restrictions de processus, etc..
- L'activation des extensions SELinux dans le noyau Linux, qui offre un système de contrôle d'accès obligatoire qui améliore les restrictions dues aux droits d'accès standards de Linux.
- L'activation des technologies relatives à l'Intégrité comme l'architecture de mesure de l'intégrité, pour rendre les systèmes capables de récupérer des altérations consécutives aux attaques.
Bien entendu, ceci inclut les utilitaires de l'espace utilisateur nécessaires à la gestion de ces extensions.
Commuter vers un profil durci
Read relevant documentation before performing any profile changes.
Choisissez un profil durci, de telle manière que la « gestion des paquets » soit faite d'une manière durcie.
root #
eselect profile list
root #
eselect profile set [numéro du profil durci]
root #
source /etc/profile
En choisissant le profil durci, certaines options de la gestion des paquets (masques, options de la variable USE, etc.) deviennent des valeurs par défaut pour votre système. Ceci concerne de nombreux paquets, y compris la chaîne des outils. Cette chaîne des outils est utilisée pour la construction/compilation de vos programmes, et comprend : la suite des compilateurs GNU (GCC), binutils (éditeur de liens, etc.), et la bibliothèque GNU C (glibc). En réinstallant la chaîne des outils, ces nouvelles options lui sont appliquées, pour permettre la future « compilation des paquets » d'une manière durcie.
root #
emerge --oneshot gcc
root #
emerge --oneshot binutils virtual/libc
Les commandes précédentes recompilent GCC, qui peut alors être utilisé pour des compilations durcies. Soyez sûr que l'option « hardened » est activée pour 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
Si vous utilisez le paquet « prelink », retirez-le car il est incompatible avec le profil durci :
root #
emerge --depclean prelink
Vous pouvez maintenant réinstaller tous les paquets avec votre nouvelle chaîne d'outils durcie.
root #
emerge --emptytree --verbose @world
Installez les sources du noyau :
root #
emerge --ask gentoo-sources
Maintenant configurez/compilez les sources et ajoutez le nouveau noyau à votre gestionnaire de démarrage (par exemple, GRUB).
Trucs et astuces
Réglages de durcissement par paquet
Cette méthode n'est pas prise en charge par Gentoo.
Changer le profil GCC pour des paquets spécifiques peut s'avérer compliqué. Une manière d'éviter cela est de fixer une option C(XX) par paquet via package.env. Créez le fichier /etc/portage/env/nossp et ajoutez-y ceci :
CFLAGS="${CFLAGS} -fno-stack-protector"
CXXFLAGS="${CXXFLAGS} -fno-stack-protector"
Pour permettre la désactivation de PIE, créez et ajoutez ceci à /etc/portage/env/nopie:
CFLAGS="${CFLAGS} -no-pie"
CXXFLAGS="${CXXFLAGS} -no-pie"
LDFLAGS="${LDFLAGS} -no-pie"
Pour finir, ajoutez le paquet pour lequel vous voulez désactiver soit PIE, soit SSP, à /etc/portage/package.env et au fichier /etc/portage/env/<filename> (où filename est le nom du fichier concerné), pour cet exemple, sys-libs/zlib est utilisé :
sys-libs/zlib nopie
Voir aussi
Pour des informations complémentaires, consultez: