Лучший совет, который я могу вам дать, это отключить SELinuxи потратить свое время на повышение безопасности вашей системы, вместо того, чтобы прыгать через таинственные и произвольные обручи.
....к сожалению, мы не живем в идеальном мире, поэтому "рекомендуемое" решение состоит в том, чтобы установить разрешающую политику, запустить скрипт, вызывающий ping, восстановить принудительный режим, а затем запустить audit2allow для сгенерированных журналов аудита. в тесте (см. связанный документ для некоторых указателей на детали этого).
К сожалению, это работает не во всех случаях.
SELinux блокирует выполнение PHP ping
. Вам необходимо указать правильный контекст для ваших PHP-скриптов.
Предполагая, что они расположены в /var/www/html/
, вам нужно сделать:
semanage fcontext -a -t httpd_sys_script_exec_t '/var/www/html(/.*)?'
restorecon -R -v /var/www/html/
Однако это должен сделать пользователь root на сервере.
Примечание. :Проверка связи сработала после ввода setenforce 0
, поскольку эта команда отключает SELinux. Постоянно отключать SELinux (не рекомендуется, так как при этом отключаются проверки безопасности ), отредактируйте /etc/sysconfig/selinux
и укажите SELINUX=disabled
.
Вы можете попробовать следующее.
Поместите этот код в local_httpd.te
файл:
policy_module(local_httpd, 0.0.1)
gen_require(`
type httpd_t;
')
netutils_domtrans_ping(httpd_t)
Убедитесь, что у вас установлен selinux-policy-devel
RPM, а затем выполните:
make -f /usr/share/selinux/devel/Makefile local_httpd.pp
иsemodule -i local_httpd.pp
Это должно позволить apache (httpd _t )перейти в контекст исполняемого файла ping