SELinux

Материал из sysadm
Перейти к навигации Перейти к поиску

Отключение и изменение режимов работы

SELinux имеет конфигурационный файл /etc/sysconfig/selinux, в котором можно отключить SELinux или задать режим его работы при старте системы

# SELINUX= возможны только следующие значения:
#     enforcing - SELinux включен и блокирует все что не разрешено.
#     permissive - SELinux включен, но ничего не блокирует, только пишет в лог то что должен блокировать.
#     disabled - SELinux полностью выключен
SELINUX=enforcing

Определение текущего режима работы SELinux

getenforce

Временное изменение режима работы, действует до следующей перезагрузки (если SELinux выключен, то изменить режим работы нельзя)

setenforce Permissive
setenforce Enforcing

Анализ причин блокировки

cat /var/log/audit/audit.log | grep <имя_блокируемого_процесса_или_его_часть>

Контексты

# для работы с semanage установите пакет
dnf install policycoreutils-python-utils

# список каталогов с контекстом openvpn_etc_t
semanage fcontext -l | grep openvpn_etc_t

# добавление контекста openvpn_etc_t на каталог
semanage fcontext --add -t openvpn_etc_t '<path>(/.*)?'

# удаление контекста openvpn_etc_t с каталога
semanage fcontext --delete -t openvpn_etc_t '<path>(/.*)?'

# применение заданных контекстов к каталогу, всем подкаталогам и файлам
restorecon -R -v <path>

# проверка текущих контекстов
ls -lZ <path>

Переключатели

Вывод списка всех переключателей и их значений

getsebool -a

Изменение состояния переключателя

setsebool -P param_name {on | off}

Работа с политиками

Вывод списка действующих политик

semodule -l | grep openvpn

Пример генерации собственной политики для openvpn по текущему логу блокировок

cd /tmp
cat /var/log/audit/audit.log | grep openvpn | audit2allow -M openvpn-my

# будут созданы два файла
#    openvpn-my.te — текстовое представление политики
#    openvpn-my.pp — скомпилированная политика, готовая к импорту

Импорт файла скомпилированной политики

semodule -i file.pp