Добавьте пользовательский, 'позволяют' политику в SELinux

Я хотел бы, позволяют httpd в выполняемые файлы из корневого каталога пользователя. От audit2allow Я понимаю, что это подразумевает следующую политику:

allow httpd_t user_home_t:file execute;

Как я превращаю это в сценарий, который включает эту политику в отношении моих серверов CentOS? Я уже включил булевские переменные для httpd_read_user_content и httpd_enable_homedirs но это не помогло.

1
задан 23 June 2015 в 19:27
2 ответа

Общая политика безопасности SELinux для вебсерверов предоставляет набор типов, которые могут быть использованы обычными пользователями, чтобы рассказать SELinux, как вебсервер может работать с указанными файлами. Пользователи могут использовать команду chcon, чтобы связать эти типы с указанными файлами и каталогами.

Каждый из этих типов имеет специфические свойства, разработанные для определенных целей.

Тип httpd_user_script_exec_t - это тип, который ваш веб-сервер может выполнять. Кроме того, существуют правила, связанные с этим типом, которые инструктируют SELinux запускать скриптовый процесс с так называемым "автоматическим переходом типа процесса" от типа процесса на веб-сервере к типу процесса, специально разработанному для обычных пользовательских процессов скрипта cgi. Этот тип ассоциируется с определенным набором разрешений, общим для большинства процессов скрипта cgi.

Тип httpd_user_rw_content_t - это тип, который ваш веб-сервер может читать и писать. (пример ~/public_content/myblog/wp_content)

Тип httpd_user_content_t - это тип, который разрешено считывать Вашему веб-серверу (пример ~/public_content)

Тип httpd_user_content_ra_t это тип, который ваш веб-сервер может читать и добавлять (например, ~/public_content/myblog/logs)

Эти типы обычно могут быть полезны, когда вы включаете булевы httpd_enable_homedirs. Этот булеан связан с правилами, которые позволяют вашему веб-серверу обходить $HOME так, что он может, например, достигать ~/public_content.

Использование вышеприведенных типов и булевых элементов должно гарантировать довольно приличную целостность. Например, ваш веб-сервер не сможет прочитать ваш ~/.ssh или ~/Documents, но сможет прочитать ваш сайт.

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

.
2
ответ дан 3 December 2019 в 18:39

Используя chcon работает, но вы теряете метку selinux при перезагрузке сервера, более понятный способ - использовать semange и restorecon

пример:

semanage fcontext -a -t httpd_user_script_exec_t '/home/pippo/file.bash'

restorecon -v /home/pippo/file.bash

restorecon reset /home/pippo/file.bash context unconfined_u:object_r:user_home_t:s0->unconfined_u:object_r:httpd_user_script_exec_t:s0

-rwxr-xr-x. root root unconfined_u:object_r:httpd_user_script_exec_t:s0 /home/pippo/file.bash
1
ответ дан 3 December 2019 в 18:39

Теги

Похожие вопросы