1

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 ソケット ファイルに接続するのを停止しています。何か案は?

4

1 に答える 1