При работе в строгом режиме SELinux не позволял мне запускать HTTPD, поскольку мой модуль mod_jk.so был скопирован с внешнего сервера.
Я скопировал mod_jk.so извне, так как не смог найти пакет для его установки.
Но теперь, чтобы запустить HTTPD, мне нужно перевести SELinux в разрешающий режим.
Я читал на вики что я мог бы добавить настраиваемую политику, позволяющую использовать этот mod_jk.so.
Это рекомендуемый способ, чтобы я мог использовать свой внешний файл mod_jk.so?
Перечислите текущий контекст безопасности файла:
# ls -lrtZ /full/path/to/mod_jk.so
Сравните вывод с ожидаемым контекстом для этого пути:
# matchpathcon /full/path/to/mod_jk.so
Восстановите ожидаемый контекст безопасности файла:
# restorecon -v /full/path/to/mod_jk.so
Перезагрузите веб-сервер и проверьте наличие новых отказов AVC:
# ausearch -m avc -ts recent
Решите эту же проблему на машине Centos 7 с HTTPD 2.4. Мне потребовалось время, но я откопал старый отчет об ошибке RedHat от 2007 года (https://bugzilla.redhat.com/show_bug.cgi?id=225452), который решил это.
Решение (в моем случае):
Измените файл jk.conf в /etc/httpd/conf.d/, чтобы записать файлы Shm в / var / run / mod_jk вместо /var/log/httpd/mod_jk.shm, например.
JkWorkersFile /etc/httpd/conf.d/workers.properties
JkShmFile /var/run/mod_jk
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
Нет необходимости устанавливать SELinux на разрешающий
По этой команде я могу запустить mod_jk
в httpd
:
# grep httpd /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp