Модуль SELinux
Конфигурация
Установка типов (доменов) контекста безопасности для файловой системы
# echo "<h1>Hello World</h1>" > /var/www/html/index.html
# ls -Za /var/www/html/
# echo "<h1>Hello World 2</h1>" > /root/index.html
# mv /root/index.html /var/www/html/index.html
# ls -Za /var/www/html/
# chcon -v -t httpd_sys_content_t /var/www/html/index.html
или более правильно
# yum install setroubleshoot
# sealert -a /var/log/audit/audit.log
# yum install policycoreutils-python-utils
# semanage fcontext -l | grep '/var/www'
# restorecon -v /var/www/html/index.html
### semanage fcontext -a -t httpd_sys_content_t "/mydir(/.*)?"
### restorecon -R -v /mydir
Добавление сетевых портов к типу (домену) контекста безопасности
CentOS firewalld (для демонстрации темы можно отключить)
# ps axZ | grep ssh
# ss -tupanZ | grep ssh
# runcon -t sshd_t -r system_r -u system_u /usr/sbin/sshd -p 2222 -d
# semanage port -l | grep ssh
# semanage port -a -t ssh_port_t -p tcp 2222
# semanage port -d -t ssh_port_t -p tcp 22
Управление разрешениями с использованием boolean
# semanage boolean -l | grep zabbix
...
или
# getsebool -a | grep zabbix
...
# setsebool -P httpd_can_connect_zabbix on
Аудит SELinux Policy утилитой sesearch
# yum install -y setools-console
# sesearch --allow | tee se_allow.txt
...
allow sshd_t ssh_port_t:tcp_socket name_bind;
...
allow httpd_t zabbix_port_t:tcp_socket name_connect; [ httpd_can_connect_zabbix ]:True
...
Разработка модулей
Отключение
# sestatus
# setenforce 0
# cat /etc/selinux/config
...
SELINUX=disabled
...