CentOS 7 не может подключиться к файлу clamd.sock (ошибка доступа запрещена)

Я пытаюсь сканировать загруженные файлы на PHP-сервере, используя clamAV. Я установил ClamAV на моем сервере (Centos 7). В настоящее время я использую PHP 7, поэтому я использую соединение с сокетом Clamd для сканирования загруженных файлов. Я включил сокеты PHP, файл clamd.sock присутствует в /var/run/clamd.scan/ папка с владельцем apache.

Код подключения My Socket —

        $socket = socket_create(AF_UNIX, SOCK_STREAM, 0);

if(socket_connect($socket, '/var/run/clamd.scan/clamd.sock')) {
return $socket;
}

Когда я пытаюсь запустить вышеуказанный код в браузере, я получаю сообщение об ошибке socket_connect(): unable to connect [13]: Permission denied, Но если я запускаю код PHP через командную строку с пользователем как root, он работает нормально.

Я знаю, что есть некоторая проблема с политикой SELinux с Centos, как будто я отключаю политику SELinux, все также работает хорошо из браузера. я проверил httpd_can_network_connect --> on а также antivirus_can_scan_system --> on оба включены.

Проблема с доступом к чему-либо внутри /var/run/ папка для apache пользователь, есть кое-что (некоторая политика) от SELinux, которая останавливает apache для подключения к файлу сокета clamd. Есть идеи?

0

Решение

После отладки узнал, что это проблема политики SELinux.
Вам необходимо включить политику daemons_enable_cluster_mode в SELinux.

Чтобы включить daemons_enable_cluster_mode:

setsebool -P daemons_enable_cluster_mode 1

Это позволит выполнять сканирование ClamAV через другой сервис, такой как Apache в моем случае.

0

Другие решения

Других решений пока нет …