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

Importante
Read relevant documentation before performing any profile changes.

Seleccione un perfil fortalecido para que la administración de paquetes se realice de modo fortalecido.

root #eselect profile list
root #eselect profile set [numero del perfil fortalecido]
root #source /etc/profile

Al escoger el perfil fortalecido, 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 fortalecido.

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

Los comandos anteriores recompilarán GCC, que puede ser ahora utilizado para compilar programas fortalecidos.

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 usted usa el paquete "pree-enlazado", elimínelo, porque no es compatible con un perfil fortalecido:

root #emerge --depclean prelink

Ahora, puede reinstalar todos los paquetes con su nueva cadena de herramientas fortalecida:

root #emerge --emptytree --verbose @world

Instale las fuentes del nucleo fortalecidas, y entonces el núcleo *administrara el sistema en funcionamiento* de modo fortalecido (especialmente si utiliza PaX):

root #emerge --ask hardened-sources

Ahora configure/compile las fuentes y añada el nuevo núcleo a su gestor de arranque (GRUB, por ejemplo).

Consejos y trucos

Ajustes de fortalecimiento para cada paquete

Advertencia
Este método no es compatible con Gentoo.

Cambiar el perfil de GCC para lidiar con paquetes específicos puede ser muy complicado. Una forma de evitar esto es configurar C(XX)FLAGS para cada paquete, usando package.env. Cree el archivo /etc/portage/env/nossp y agregue:

ARCHIVO /etc/portage/env/nosspDesactivar SSP
CFLAGS="${CFLAGS} -fno-stack-protector"
CXXFLAGS="${CXXFLAGS} -fno-stack-protector"

Para permitir la desactivación de PIE, cree /etc/portage/env/nopie y agregue:

ARCHIVO /etc/portage/env/nopieDesactivar PIE
CFLAGS="${CFLAGS} -no-pie"
CXXFLAGS="${CXXFLAGS} -no-pie"
LDFLAGS="${LDFLAGS} -no-pie"

Finalmente, agregue el paquete que en el que quiera desactivar PIE o SSP a /etc/portage/package.env y el correspondiente /etc/portage/env/<filename>, el siguiente ejemplo es para sys-libs/zlib:

ARCHIVO /etc/portage/package.envDesactivar PIE para sys-libs/zlib
sys-libs/zlib nopie

Vea también

Para más información, revise los siguientes recursos: