Hardened Gentoo/es

Gentoo Hardened es un proyecto de Gentoo que ofrece características de seguridad adicionales encima de la ya conocida instalación de Gentoo Linux. Aunque pueden ser seleccionadas en forma separada, Gentoo Hardened activa múltiples herramientas para la mitigación de riesgos en la cadena de herramientas, soporta PaX, grSecurity, SELinux, TPE y otros.

Ya sea que usted maneje un servidor o una estación de trabajo, cuando lidia con múltiples amenazas, probablemente querrá fortalecer el sistema en lugar de solamente aplicar los últimos parches de seguridad. "Fortalecer" un sistema significa tomar contramedidas adicionales frente a ataques y otros riesgos, y aquello se traduce usualmente en un conjunto combinado de actividades que usted realizará en el sistema.

Dentro de Gentoo Hardened, muchos proyectos estan inmersos y nos ayudaran a fortalecer un sistema Gentoo a través de:


 * La activación de opciones específicas en la cadena de herramientas (compilador, enlazador, ...) tales como forzar ejecutables de posición independiente (PIE), protección contra el desbordamiento de pila y comprobación de búfer en tiempo de compilación.
 * Activación de la extensiones PaX del núcleo Linux, que ofrece medidas de protección adicionales como la asignación aleatoria de direcciones en memoria y memoria no ejecutable.
 * Activación de la extensiones SELinux del núcleo Linux, que ofrece un sistema con Mandatory Access Control (MAC) que mejora las restricciones estándar de permisos en Linux.
 * Activación de tecnologías relacionadas con Integrity tal como Integrity Measurement Architecture, para hacer sistemas más resistentes a la manipulación.

Por supuesto que se incluye las correspondientes utilidades en espacio de usuario para el manejo de estas extensiones.

Cambiándo a un perfil Hardened
Select a hardened profile, so that package management will be done in a hardened way.

Al escoger el perfil Hardened, ciertas configuraciones del gestor de paquetes (enmascaramiento de paquetes, ajustes USE, etc) se tornan por defecto en el sistema. Esto se aplica a muchos paquetes, incluida la cadena de herramientas. La cadena de herramientas es usada para compilar tus programas, e incluye: la GNU Compiler Collection (GCC), binutils (enlazador, etc), y la GNU C library (glibc). Al reinstalar la cadena de herramientas, aquellas nuevos ajustes por defecto se aplicaran a la cadena de herramientas, lo que permitirá que toda compilación de paquetes posterior se haga de "modo Hardened".

The above commands rebuilt GCC, which can now be used to compile hardened software. Make sure that the hardened option is selected for GCC.

In the example output above, the hardened GCC profile is the one without a suffix. If you want to disable PIE or SSP, choose the relevant hardenedno(pie|ssp) or both, hardenednopiessp. The vanilla profile is of course the one with hardening disabled. Finally source your new profile settings:

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

Now you can reinstall all packages with your new hardened toolchain:

Install hardened kernel sources, so that the kernel will *manage your running system* in a hardened way (especially using PaX):

Now configure/compile the sources and add the new kernel to your boot manager (ie., GRUB).

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

Per package hardening settings
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:

External resources

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