Настройка SELinux¶
Если на хосте с WAF‑нодой включен SELinux, отключать его не требуется: установщик ноды сам добавляет правила SELinux, которые нужны для ее работы. Настраивать SELinux вручную нужно только в случаях, описанных ниже.
Проверьте статус SELinux¶
Выполните команду:
sestatus
Изучите вывод команды:
-
SELinux status: enabled— SELinux включен. -
SELinux status: disabled— SELinux отключен, настройка не требуется.
Установите утилиту semanage¶
Для настройки SELinux установщику нужна утилита semanage. Установите ее до установки ноды:
sudo dnf install policycoreutils-python-utils
На старых ОС (например, CentOS 7) пакет называется policycoreutils-python и устанавливается через yum.
Если SELinux включен, а semanage в системе нет:
-
скрипт установки Меганоды остановится и попросит установить пакет;
-
RPM‑пакет
wnodeустановится, но пропустит настройку SELinux. В этом случае выполните команды из раздела Что настраивает установщик вручную.
Что настраивает установщик¶
Установщик выполняет следующие действия. Эти же команды нужны, если SELinux настраивается вручную.
-
Назначает SELinux‑метки файлам ноды:
sudo semanage fcontext -a -t etc_t "/opt/wallarm/env.list" sudo semanage fcontext -a -t lib_t "/opt/wallarm/lib64/ld-linux-x86-64.so.2" sudo semanage fcontext -a -t httpd_modules_t "/opt/wallarm/modules(/.*)?" sudo semanage fcontext -a -t httpd_cache_t "/opt/wallarm/etc/wallarm(/.*)?" sudo semanage fcontext -a -t httpd_cache_t "/opt/wallarm/var/lib/nginx(/.*)?" sudo semanage fcontext -a -t httpd_cache_t "/opt/wallarm/var/lib/wallarm-acl(/.*)?" sudo restorecon -R /opt/wallarm -
Разрешает NGINX/Angie подключаться к модулю постаналитики по порту 3313:
sudo setsebool -P httpd_can_network_relay 1 sudo semanage port -a -t http_port_t -p tcp 3313
Если правило или порт уже добавлены, semanage сообщит об этом. Это не ошибка.
Нестандартный порт постаналитики¶
Установщик разрешает в SELinux только стандартный порт модуля постаналитики 3313. Если модуль постаналитики установлен на отдельном сервере и слушает другой порт, разрешите этот порт на фильтрующей ноде:
sudo semanage port -a -t http_port_t -p tcp <порт>
Флаг collectd_tcp_network_connect¶
Флаг collectd_tcp_network_connect для ноды 5.0 включать не нужно. Он действует только на системный collectd, а collectd ноды установлен в /opt/wallarm и под этот флаг не попадает.
Диагностика¶
Если при включенном SELinux нода работает некорректно, проверьте журнал аудита на запреты SELinux:
sudo ausearch -m avc -ts recent
Запреты для процессов NGINX/Angie обычно означают, что файлам ноды не назначены метки. Проверьте метки командой ls -Z /opt/wallarm/etc/wallarm (ожидается тип httpd_cache_t) и при необходимости выполните команды из раздела Что настраивает установщик.
Отключение SELinux¶
Если SELinux все же нужно выключить, выполните одно из следующих действий:
-
выполните команду
setenforce 0: SELinux перейдет в режим permissive до перезагрузки (запреты не применяются, а только записываются в журнал аудита); -
откройте файл
/etc/selinux/configи измените значение переменнойSELINUXнаdisabled: после перезагрузки SELinux будет отключен постоянно.