Hardened Gentoo/ru

Gentoo Hardened это проект Gentoo, который предоставляет вам несколько дополнительных сервисов безопасности, по сравнению с обычной установкой Gentoo Linux. Хотя каждый из таких сервисов может быть выбран по отдельности, Gentoo Hardened позволяет использовать несколько таких опций в комплексе и поддерживает PaX, grSecurity, SELinux, TPE, и многое другое.

Запускаете ли вы сервер, имеющий выход в Интернет, или рабочую станцию, принимая во внимание множество угроз, вы можете захотеть улучшить защищенность вашей системы, а не просто автоматически применить последние патчи безопасности. Если вы хотите защитить систему, это значит, что вы принимаете дополнительные контрмеры против атак и других рисков, и обычно это означает некоторый набор действий, которые вы выполняете над системой.

Gentoo Hardened включает в себя несколько активных проектов, которые помогут вам дополнительно защитить вашу систему Gentoo с помощью
 * Включения специфических опций в наборе утилит для сборки (то есть, компиляторе, линковщике, и т.д.), например, заставив компьютер выдавать только исполняемые файлы, которые работают независимо от адреса загрузки (PIE), включив защиту от разрушения стека, а также проверку буферов во время компиляции.
 * Включения расширений PaX для ядра Linux, что дает дополнительные меры защиты, например, случайное распределение адресного пространства и неисполняемую память.
 * Включения расширений grSecurity для ядра Linux, например, дополнительные ограничения chroot, дополнительный аудит, ограничения процессов, и т.д.
 * Включения расширений SELinux в ядре Linux, что позволяет вам использовать систему мандатного управления доступом, что улучшает стандартную систему прав Linux.
 * Включения технологий, относящихся к целостности, например, архитектуры измерения целостности, для того, чтобы сделать систему невосприимчивой к несанкционированному изменению.


 * 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

Естественно, существуют и необходимые утилиты для управления всеми этими расширениями.

Переключение на защищенный профиль
Выберите защищенный (hardened) профиль, чтобы работа с пакетами проводилась защищенным способом:

Выбрав определенный профиль, вы, тем самым, выполнили некоторые настройки по умолчанию для вашей системы (маски, USE флаги, и так далее). Это применяется для многих пакетов, включая и набор утилит для сборки. Этот набор утилит используется для сборки и компиляции ваших программ, и включает: набор компиляторов GNU (GCC), binutils (компоновщик, и т.д.), а также библиотеку С GNU (glibc). Пересобрав этот набор, эти новые настройки применятся к нему, что позволит все будущие "компиляции пакетов" проводить в защищенном режиме.

Вышеприведенные команды пересоберут GCC, который теперь может использоваться для компиляции защищенных программ. Удостоверьтесь, что GCC работает в защищенном режиме.

В примере выше, защищенный профиль GCC был без суффикса. Если вы хотите отключить PIE или SSP, выберите нужный (hardenedno(pie|ssp), либо оба hardenednopiessp). Профиль vanilla, естественно, содержит выключенную защиту. В конце концов, примените настройки вашего нового профиля:

Если вы используете пакет "prelink", удалите его, так как он несовместим с защищенным профилем:

Теперь вы можете переустановить все пакеты с помощью ваших новых защищенных утилит для сборки:

Установите защищенные исходные коды ядра, чтобы ядро *работало с вашей текущей системой* защищенным образом (особенно, с использованием PaX):

Теперь сконфигурируйте/скомпилируйте исходники, и добавьте новое ядро к вашему менеджеру загрузки (например, GRUB).

Chroot в защищенной Gentoo/Grsecurity
Если вы хотите выполнить chroot в скопированное окружение, при включенном CONFIG_GRKERNSEC_CHROOT, вы должны перейти в каталог grub, и изменить root(cd) kernel(cd) initrd(cd) с (cd) на (hdx,y).

Теперь вы можете установить окружение grub.

Настройки безопасности для каждого пакета
Настройка профиля GCC для каждого отдельного пакета может быть мучительной. Можно избежать этого, установив флаги C(XX)FLAGS для каждого пакета в package.env. Создайте файл, и добавьте в него:

Чтобы отключить PIE, создайте и добавьте в :

Наконец, добавьте пакет, для которого вы хотите запретить либо PIE, либо SSP в и. В данном примере используется.

Смотри также
Для более детальной информации проверьте также следующие ресурсы:
 * Проект Gentoo Hardened
 * Проект Gentoo Hardened SELinux
 * Project:Hardened/Grsecurity2_Quickstart
 * Project:Hardened/PaX_Quickstart


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

Внешние ресурсы

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