Назад | Перейти на главную страницу

SELinux предотвращает запуск Apache

При работе в строгом режиме 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