SELinux - настройки для Apache (httpd)
Установить утилиты в CentOS
yum install policycoreutils-python
Установить утилиты в Debian
sudo apt-get install selinux-utils
Посмотреть состояние переменных в SELinux
getsebool -a | grep http
Ограничить/разрешить отправку через sendmail
setsebool -P httpd_can_sendmail off
Ограничить/разрешить внешние коннекты по сети
setsebool -P httpd_can_network_connect off
Посмотреть настройки контекста для httpd:
semanage fcontext -l | grep httpd
Дать права апачу на запись в каталог:
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www(/.*)?/uploads(/.*)?' restorecon -R -v /var/www/
Добавить нестандартный порт в число разрешенных
Посмотреть какие порты сейчас разрешены:
semanage port -l | grep http_port_t
Добавить порт:
semanage port -a -t http_port_t -p tcp 10061
Отключить SELinux временно:
отключение
setenforce 0
включение
setenforce 1
Отключить SELinux навсегда:
В файле /etc/selinux/config
:
SELINUX=disabled
Для работы wp-cron требуются права domain_kernel_load_modules
setsebool -P domain_kernel_load_modules on
Создание политики с нуля:
Для того, что бы сделать политику на основе ошибок аудита в логах или узнать какие переменные нужно выставить можно использовать утилиту audit2allow
для этого следует поставить пакет policycoreutils-python
yum install policycoreutils-python grep ftpd /var/log/audit/audit.log | audit2allow -v
Документация:
man по selinux-httpd: httpd_selinux(8) – Linux man page
MUST READ: Презентация по SE-Linux с 2012 Red Hat Summit: SELinux For Mere Mortals (3.8Мб)