2006年05月08日 (月)

ClamAV と ClamXav: 第三回 ウィルス定義ファイルの自動更新

シリーズ「ClamAV と ClamXav」の第三回目は Clam AntiVirus (ClamAV) のウィルス定義ファイルの自動更新をもっと頻繁に行うための設定について説明します。
  1. freshclam.conf の書き換え内容にログファイルの指定を追加。
  2. ClamXav との競合に注意」を追記
  3. FreshClamDaemon を使ってください」を追記

前回までの問題点

同シリーズの前回のエントリで定期スキャンの直前にウィルス定義ファイルを更新する設定を示しました。定期スキャン時にオンラインならば最新のウィルス定義ファイルでスキャンがされるのですが、この方法ですと最大で 24 時間程度ウィルス定義ファイルが更新されません。

ClamXav の設定によっては ClamXav を起動したときにチェックが行われ必要であればウィルス定義ファイルが更新されるのですが、設定などが安定すると ClamXavSentry と定期スキャンで十分になってくるので ClamXav を起動することは少なくなります。そうなると ClamXavSentry は最大で 24 時間程度古いウィルス定義ファイルを使用し続けなくてはならなくなってきます。

ClamXavSentry が ClamAV や ClamXav によるウィルス対策の要であり、ClamAV のウィルス定義ファイルは一日に複数回更新されることもよくあることを考えると、この状態は少々まずい状態です。一日に二三度確認する必要があります。

方針とその利点

ClamXav も内部で使用している ClamAV のアップデータ freshclam はデーモンモードで使用することができます。デーモンというのは一種の常駐プログラムで、システムの仕事をバックグラウンドで隠れてしてくれるプログラムのことです。このデーモンモードの freshclam を Mac OS X 起動時に起動してあとはお任せにします。

この方法ですと、crontab を vim で編集するという面倒な作業は必要ありませんし、一日にどれくらいの頻度で確認するかも普通のテキストエディタで設定できます。メインテナンスが楽になるのです。それにいずれ紹介するつもりのウィルススキャンデーモン(clamd)とも連動します。

設定

freshclam をデーモンモードで起動するときの設定ファイル /usr/local/clamXav/etc/freshclam.conf を編集して freshclam をデーモンモードの動作をカスタマイズします。テキストエディタでその freshclam.conf を開いてみてください。Finder でそのファイルには辿り着けないとお困りの方は次の手順で開いてください。

  1. Finder のメニュー [移動]-[フォルダへ移動...] を実行する。

    「フォルダへ移動」あるいは「フォルダの場所を入力」というダイアログが表示されます。

  2. "/usr/local/clamXav/etc" と入力して [移動] ボタンを押す。

    Finder でディレクトリ /usr/local/clamXav/etc が開かれます。

  3. freshclam.conf をお好みのテキストエディタで開く。

    freshclam.conf アイコンを右クリックまたは CTRL-クリック して [開く] や [このアプリケーションで開く]-[お好みのエディタ] を実行します。

このファイルの変更点を以下に列挙します。

サンプルでないことを設定する

オリジナルで次のように書いてある箇所

# Comment or remove the line below.
Example

ここを次のようにします。

# Comment or remove the line below.
#Example
コマンド起動とログファイルを共通にしておく

オリジナルで次のようになっている箇所

# Path to the log file (make sure it has proper permissions)
# Default: disabled
#UpdateLogFile /var/log/freshclam.log

ここに次の一行を追加します。

UpdateLogFile /usr/local/clamXav/share/clamav/freshclam.log
pid ファイルを設定する

オリジナルで次のようになっている箇所

# This option allows you to save the process identifier of the daemon
# Default: disabled
#PidFile /var/run/freshclam.pid

ここに次の一行を追加します。

PidFile /var/tmp/freshclam.pid

pid ファイルというのはデーモンプログラムが起動しているときのプロセス ID を記録しておくファイルです。本当は /var/run/freshclam.pid とするのがよいのですが、ClamXav との兼ね合いで freshclam がそのファイルを作成する権限がないので場所を変えておきます。/var/tmp という一時ファイル置き場に置いたからと言って勝手にこのファイルを消さないようにしてください。

clamd と連動できるようにする

オリジナルで次のようになっている箇所

# Send the RELOAD command to clamd.
# Default: disabled
#NotifyClamd

ここを次のようにします。

# Send the RELOAD command to clamd.
# Default: disabled
NotifyClamd

今はまだ clamd を使用していないと思いますから、今すぐにこれを設定する必要はありませんが、将来 clamd を使用するときになってもこの設定を忘れないようにしておくために今のうちにやっておきます。

システムの起動項目を追加する

システムの起動項目として freshclam を追加します。これは /Library/StartupItems/ にフォルダを追加して行うのですが、追加するフォルダを作成しておいたのでそれを利用してください。

このディスクイメージをオープンしてマウントすると FreshClamDaemon というボリュームがマウントされます。このボリュームの Finder で選択して command-I で [情報を見る] を行ってください。情報のウィンドウの一番下の [このボリューム上の所有権を無視する] にチェックが入っていたらそれを外してください。

そうしてマウントされた FreshClamDaemon ボリュームごと /Library/StartupItems の下にコピーしてください。管理者アカウントのパスワードが要求されるのでログインしたときのパスワードを入力します。

以上が無事終了したら Mac OS X を次回起動したときから freshclam がデーモンモードでお仕事してくれます。再起動を待てないせっかちな人はターミナルで sudo /Library/StartupItems/FreshClamDaemon/FreshClamDaemon start とやると今すぐに起動できます。

カスタマイズ

デフォルトでは一日に 12 回、つまり二時間に一回アップデート確認するようになっています。これが頻度が高すぎると感じる場合は freshclam.conf の次の箇所

# Number of database checks per day.
# Default: 12 (every two hours)
#Checks 24

ここに行を追加します。例えば一日に 3 回にするには次の行を加えます。

Checks 3

その他にもプロキシが必要な LAN 内で行うための設定などがあるので、必要に応じて freshclam.conf を探索してみてください。システム管理の醍醐味はこういうファイルを自分の環境に最適なように設定し倒すところにあります。ブログいじりに似てますね。

追記

ClamXav との競合に注意

ClamXav の環境設定で更新関連の設定を変更すると freshclam.conf が書き換えられるようです。このエントリへのコメント【篠の風】さんが書いていらっしゃるのがそれに該当します。

freshclam をデーモンとして実行していて、実際にウィルス定義ファイルが更新されているにもかかわらず更新ログにそれが記録されない場合はこの書き換えが疑われます。freshclam.conf をソースの etc ディレクトリからコピーして上記の編集を行ってください。そしてその書き換え版を別なところにも保存しておくとよいでしょう。

FreshClamDaemon を使ってください

このエントリで紹介した freshclam 用のシステムの起動項目ですが、インストーラ付きで配布しています。配布サイトは「clamav-update」です。そこで配布されている FreshClamDaemon というパッケージが相当します。サンプルの freshclam.conf も付けてあります。

そのサイトのメインのプロダクトである clamav-update と FreshClamDaemon、そしてそのサンプルの freshclam.conf を使用するとウィルス定義だけでなく ClamAV そのものも最新に保つことができます。


Posted: 14:17    | Comment | Trackback


以下、類似エントリです。