clamAV を使用して PHP サーバーにアップロードされたファイルをスキャンしようとしています。サーバー (Centos 7) に ClamAV をインストールしました。現在、PHP 7 を使用しているため、Clamd ソケット接続を使用してアップロードされたファイルをスキャンしています。PHP ソケットを有効にしました。clamd.sock ファイルが/var/run/clamd.scan/
apache 所有者のフォルダーに存在します。
私のソケット接続コード -
$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
が、ユーザーが root としてコマンドラインから PHP コードを実行すると、正常に動作します。
SELinux ポリシーを無効にするかのように、Centos の SELinux ポリシーに問題があることはわかっています。ブラウザーからもすべて正常に動作しています。確認httpd_can_network_connect --> on
しましたが、antivirus_can_scan_system --> on
どちらもオンになっています。
問題は/var/run/
、ユーザーのフォルダー内の何かにアクセスすることapache
です。SELinux から何か (ポリシー) があり、Apache が clamd ソケット ファイルに接続するのを停止しています。何か案は?