Categories: Шпаргалки

Примеры настройки SELinux

Что такое SELinux , Samba .

В данной статье рассмотрены полезные примеры по настройке системы безопасности SELinux, которые могут понадобиться для корректной работы различных приложений.

Использование политик

Для применения некоторых политик в Rocky Linux / CentOS, необходимо установить следующие пакеты:

dnf install policycoreutils setroubleshoot

Диагностика

Для поиска причин проблем, связанных с работой SELinux можно использовать логи и утилиты.

Для начала, мы можем убедиться, что проблема с SELinux, отключив его:

setenforce 0

Проверяем приложение. Если оно начало работать корректно, то дело в политиках безопасности. Обратно включаем:

setenforce 1

Чтобы понять, что именно не понравилось SELinux можно запустить просмотр лога:

tail -f /var/log/audit/audit.log

И начать работать с приложением, наблюдая за добавлением записей в данный лог.

Также мы можем воспользоваться утилитой:

audit2allow -b -r

Она показывает готовые политики на основе заблокированных приложений.

Samba

Политики

Список готовых политик и текущее значение смотрим командой:

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 и всем входящим папкам и файлам.

Rsyslog

Список для разрешенных портов смотрим командой:

semanage port -l | grep syslog

Если мы хотим использовать rsyslog для соединений по TCP на порту 514 вводим:

semanage port -m -t syslogd_port_t -p tcp 514

Keepalived

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

При смене каталога на нестандартный нам понадобится сменить контекст на 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

NGINX

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

admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago