В данной статье рассмотрены полезные примеры по настройке системы безопасности SELinux, которые могут понадобиться для корректной работы различных приложений.
Применение политик
Поиск причин блокировок со стороны SELinux
Samba
Rsyslog
Keepalived
PostgreSQL
NGINX
Для применения некоторых политик в Rocky Linux / CentOS, необходимо установить следующие пакеты:
dnf install policycoreutils setroubleshoot
Для поиска причин проблем, связанных с работой SELinux можно использовать логи и утилиты.
Для начала, мы можем убедиться, что проблема с SELinux, отключив его:
setenforce 0
Проверяем приложение. Если оно начало работать корректно, то дело в политиках безопасности. Обратно включаем:
setenforce 1
Чтобы понять, что именно не понравилось SELinux можно запустить просмотр лога:
tail -f /var/log/audit/audit.log
И начать работать с приложением, наблюдая за добавлением записей в данный лог.
Также мы можем воспользоваться утилитой:
audit2allow -b -r
Она показывает готовые политики на основе заблокированных приложений.
Список готовых политик и текущее значение смотрим командой:
getsebool -a | grep samba
Задаем политику, например, разрешить шары доманших каталого:
setsebool -P samba_enable_home_dirs=1
Посмотреть текущие настройки для samba:
semanage fcontext -l | grep samba
Задать разрешение:
semanage fcontext -a -t samba_share_t «/share/samba(/.*)?»
restorecon -R -v /share/samba
* в данном примере политика применяется к каталогу /share/samba и всем входящим папкам и файлам.
Список для разрешенных портов смотрим командой:
semanage port -l | grep syslog
Если мы хотим использовать rsyslog для соединений по TCP на порту 514 вводим:
semanage port -m -t syslogd_port_t -p tcp 514
Keepalived может использовать notify для запуска своих скриптов. Данный скрипт должен иметь контекст безопасности keepalived_unconfined_script_exec_t .
Предположим, что наш скрипт находится по пути /etc/keepalived/notify-script.sh . Тогда команды будут такие:
semanage fcontext -a -t keepalived_unconfined_script_exec_t /etc/keepalived/notify-script.sh
restorecon -R -v /etc/keepalived/notify-script.sh
При смене каталога на нестандартный нам понадобится сменить контекст на postgresql_db_t . Это делается командами:
semanage fcontext -a -t postgresql_db_t «/data/pgsql(/.*)?»
restorecon -Rv /data/pgsql
* где /data/pgsql — предполагаемый каталог для данных postgresql.
Если этого окажется недостаточно, на уровень выше подаем команду:
chcon -Rt postgresql_db_t /data
1) При необходимости загружать файлы через nginx, каталог должен иметь контекст httpd_sys_rw_content_t . Задаем политику командой:
semanage fcontext -a -t httpd_sys_rw_content_t «/opt/upload(/.*)?»
* где /opt/upload — корневой каталог, в который будет выполняться загрузка файлов.
Применяем политику на каталог:
restorecon -Rv /opt/upload
2) Чтобы nginx мог работать в режиме обратного прокси, применяем политику:
setsebool httpd_can_network_connect 1 -P
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…