ClamAV
メール関連
概要
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