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 85% complete.
Outdated translations are marked like this.
Resources

Gentoo Hardened — это проект Gentoo, который предоставляет несколько дополнительных сервисов безопасности, по сравнению с обычной установкой Gentoo Linux.

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

The base of Gentoo Hardened is a hardened toolchain by enabling specific options in the toolchain (compiler, linker ...) such as forcing position-independent executables (PIE), stack smashing protection and compile-time buffer checks. See the table.

Gentoo Hardened включает в себя несколько дополнительных проектов, которые помогут вам ещё лучше защитить вашу систему Gentoo с помощью:

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

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

Переключение на профиль Hardened

Важно
Прочтите соответствующую документацию перед любыми изменениями профиля.

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

root #eselect profile list
root #eselect profile set [номер hardened профиля]
root #source /etc/profile

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

root #emerge --oneshot sys-devel/gcc
root #emerge --oneshot sys-devel/binutils sys-libs/glibc

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

root #gcc-config -l
[1] x86_64-pc-linux-gnu-9.3.0 *
[2] x86_64-pc-linux-gnu-8.5.0

Наконец, примените настройки нового профиля:

root #source /etc/profile

Теперь переустановите все пакеты с помощью нового набора сборки:

root #emerge --emptytree --verbose @world

Если вы не используете distribution kernel, переустановите исходные коды ядра:

root #emerge --ask gentoo-sources

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

Подказки и советы

===

Отключение настроек безопасности для каждого пакета ===
Предупреждение
Данный метод не поддерживается Gentoo.

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

ФАЙЛ /etc/portage/env/nosspОтключение SSP
CFLAGS="${CFLAGS} -fno-stack-protector"
CXXFLAGS="${CXXFLAGS} -fno-stack-protector"

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

ФАЙЛ /etc/portage/env/nopieОтключение PIE
CFLAGS="${CFLAGS} -no-pie"
CXXFLAGS="${CXXFLAGS} -no-pie"
LDFLAGS="${LDFLAGS} -no-pie"

Наконец, добавьте пакет, для которого вы хотите запретить либо PIE, либо SSP в /etc/portage/package.env и /etc/portage/env/<имя файла>. В данном примере используется sys-libs/zlib.

ФАЙЛ /etc/portage/package.envОтключаем PIE для sys-libs/zlib
sys-libs/zlib nopie

Смотрите также

Для более детальной информации проверьте также следующие ресурсы: