Macとかの雑記帳

ClamXav に含まれている ClamAV は、ClamXav のバージョンが上がらない限り古いままです。ClamAV の最新版がリリースされて暫く(大概1ヶ月くらい)すれば ClamXav もバージョンが上がるので放っておけばいいのですが、常に最新の状態にしておきたい場合は ClamAV を単体でインストールします。

ClamAVを導入するには、以下3つのどれかになると思います。
  1. ソースからビルド
  2. clamav-updateを入れる
  3. MacPortsを使う

どれも似たようなものですが、MacPortsを使う方法がこの中では一番作業工程が少ない&後の管理が楽そうなので、MacPortsでClamAVをインストールします。


MacPorts で ClamAV をインストール


最初に、ClamAVをインストールします。
$ sudo port -d selfupdate
$ sudo port -d install clamav
:20分くらいかかる上に、結構な勢いでCPUやメモリを消費します。



ClamAV をインストールしている間に、ClamXav や ClamXav Sentry を終了し、既存の ClamAV をリネームします。
$ sudo mv /usr/local/clamXav /usr/local/clamXav.org
:すぐに元の状態に戻せるようにリネームしてますが、ClamXav.app の中に ClamAV のインストーラーが入っているので削除しても問題無いと思います。


リネーム(もしくは削除)すると、ClamXav の設定が自動で変更され、MacPorts での ClamAV インストールが終了していれば/opt/local以下が ClamAV のパスとして設定されます。
clam.png


もし、自動で変更されなかったら、ClamXavのディスクイメージの中にある「Extras」フォルダ内の、「Only for DarwinPorts users.command」というスクリプトを実行すれば、パスが変更されると思います。
clam.png



ClamAV を ClamXav で使えるように設定を変更する


インストールしただけでは使えないので、設定を変更します。


ログファイル(パターンファイル更新用)の作成と、アクセス権、所有者の設定。
$ sudo touch /opt/local/share/clamav/freshclam.log
$ sudo chmod 664 /opt/local/share/clamav/freshclam.log
$ sudo chown -R clamav:clamav /opt/local/share/clamav


パターンファイルを更新する「freshclam」のアクセス権を設定。
$ sudo chmod u+s /opt/local/bin/freshclam


設定ファイル「clamd.conf」の作成と編集。
$ sudo cp /opt/local/etc/example-clamd.conf /opt/local/etc/clamd.conf
$ sudo nano /opt/local/etc/clamd.conf

開いたファイルを以下のように編集。
  • clamd.conf
  • 8行目付近の Example をコメントアウトor削除
    # Comment or remove the line below.
    Example


    80行目付近のコメントアウトを外す
    # LocalSocket /tmp/clamd.socket




    設定ファイル「freshclam.conf」の作成と編集。
    $ sudo cp /opt/local/etc/example-freshclam.conf /opt/local/etc/freshclam.conf
    $ sudo nano /opt/local/etc/freshclam.conf

    開いたファイルを以下のように編集。
  • freshclam.conf
  • 8行目付近の Example をコメントアウトor削除
    # Comment or remove the line below.
    Example




    これで設定は終了です。ClamXav と ClamXav Sentry を起動し、パターンファイルの更新と、常駐保護が正しく機能するか確認します。



    もし、ClamXav Sentry が下のようなエラーを吐いたら、/tmp にあるはずの「clamd.socket」が消えてしまっている可能性があります。
    clamxav-sentry-error.png


    そのような場合は、ClamXav Sentry を終了し、下記コマンドを実行して clamd.socket を作成します。
    $ sudo /opt/local/sbin/clamd restart


    私はこれで使えるようになりましたが、環境によっては更に設定が必要になるかもしれません。



    MacPorts で ClamAV 導入後


    次回 ClamAV の新バージョンがリリースされた際には、MacPorts でアップグレードを実行すれば最新版が適用されます。
    $ sudo port -d selfupdate
    $ sudo port -d upgrade installed



    ちなみに、これまでは環境変数を設定しない限り、フルパスを入力しないと使えなかった ClamAV のコマンドが、パス無しで使えるようになります。

    $ /usr/local/clamXav/bin/freshclam
    こうしなければ使えなかったのが のようにパス無しで使えるように。
    $ freshclam

    使う事は無いと思いますが…。



    参考Link:
    clamav 凄いよ
    試験管のなかのコード :: ClamXav メモ


    スポンサード リンク