ClamAV

最終更新日時:2010-04-27 18:53:45
メール関連

概要


ClamAV(正式名称は Clam Antivirus)は、UNIX 系システムで動作するオープンソースなアンチウイルスアプリケーションです。
シグネチャによるパターンマッチング方式を採用しており、かなりの数のウイルスに対応しています。
また、qmail, Postfix 等のメジャーな MTA と連携できるだけでなく、FTP と連携、さらには独自プログラムと連携させることも容易ですので、非常に有用です。

※2010/04/16
0.95以前のバージョンでは致命的な問題があります。

インストール


ClamAV-0.96 の例です。
※0.87 でもほぼ同様。

まず、ClamAVの公式サイトからアーカイブをダウンロードし、展開します。

 % gzip -dc clamav-0.96.tar.gz |tar xvf -
 % cd clamav-0.96


あとはおきまりの手順です。

 % ./configure
 % make
 % su
 # make install


zlibのバージョンチェックが問題で configure でエラーが出る場合には、--disable-zlib-vcheckを指定すると回避できます。
また、通常 ClamAV 専用ユーザーでサービスを行うことが多いので、専用ユーザーを作っておいた方がよいでしょう。

 # useradd -s /bin/false clamav


設定


ウイルス DB 取得用プログラムの freshclam と、ウイルスチェック用プログラムの clamd の2つの設定を行うことが必要です。

freshclam.conf


freshclam の設定ファイルは、デフォルトでは /usr/local/etc/freshclam.conf となり、インストール時にデフォルトのものが設置されます。
デフォルトのままでは freshclam は動作しないので、このファイルを修正します。
以下、主な設定項目です。

 #Example                                      # Example 設定をコメントにすることにより本稼働
 DatabaseOwner clamav                          # ウイルス DB のオーナー
 UpdateLogFile /var/log/clamav/freshclam.log   # freshclam 実行時のログファイル
 LogFileMaxSize 0                              # ログファイルの最大サイズ。0 は無限大
 NotifyClamd /usr/local/etc/clamd.conf         # freshclam によりウイルス DB を更新した際に clamd に通知をする場合に指定


clamd.conf


clamd の設定ファイルは、デフォルトでは、/usr/local/etc/clamd.conf となり、インストール時にデフォルトのものが設置されます。
デフォルトのままでは clamd は動作しないので、このファイルを修正します。
以下、主な設定項目です。

 #Example                            # Example 設定をコメントにすることにより本稼働
 LogFile /var/log/clamav/clamd.log   # clmad 実行時のログファイル
 LogFileMaxSize 0                    # ログファイルの最大サイズ。0 は無限大
 LogTime                             # ログにタイムスタンプを付与
 PidFile /var/run/clamd.pid          # clamd のプロセス ID ファイル
 Foreground                          # clamd をデーモンとして実行するか否か



実行方法


まず、ウイルス DB を構築する必要があるので、freshclam を実行します。

 # /usr/local/bin/freshclam


デフォルトだとあまり重要ではない情報もいろいろ出力されるので、そのような情報が不要である場合には --quiet オプションを指定して実行します。
正常に実行できるようであれば、ウイルス DB は通常は定期的に更新すべきですので、clamav ユーザーの crontab 等に設定します。

 0 * * * * /usr/local/bin/freshclam --quiet


ウイルス DB が正常に構築できたら、clamd を実行します。

 # /usr/local/sbin/clamd


ウイルスチェックを行うには、clamdscan コマンドを使用します。
clamdscan が clamd と連携して正常にウイルスチェックを行えるようになっているかどうかは、アーカイブ展開後の test ディレクトリを使用することで確認可能です。

 % clamdscan test


お問い合わせは 掲示板 にて。