Clam AntiVirus (ClamAV) と sendmail の連携 CentOS 5 編

2009-10-31 22:00
このエントリーをはてなブックマークに追加
clamav

オープンソースのアンチウィルスソフト Clam AntiVirus (ClamAV) を CentOS 5 にインストールし、sendmail と連携させる方法です。CentOS 5.3 (i386) および CentOS 5.4 (x86_64) + Clam AntiVirus 0.95.3 の環境で確認しています。

yum で RPMforge の設定と EPEL の除外設定

事前に yum で RPMforge を使うように設定する必要があります。

また、ATrpms や EPEL のリポジトリを使う設定になっている場合は、それらのリポジトリで配布されている clamav がインストールされてしまうことがあります。EPEL の clamav パッケージは上手く動作しませんでしたので、次のように変更して無視するようにします。

# vi /etc/yum.repos.d/epel.repo
exclude=clamav*

yum でインストール

次に RPMforge のリポジトリから、clamav のパッケージ群をインストールします。

# yum --enablerepo rpmforge install clamav clamav-db clamav-devel clamav-milter clamd

私が試したときは、clamav-db のダウンロードに結構時間がかかりました。

freshclam の設定

freshclam の設定を変更して、Google Safe Browsing を有効にします。これでフィッシングサイトのチェックもできるようになります。次に freshclam コマンドを実行して下さい。

# freshclam
ClamAV update process started at Fri Oct 30 22:25:28 2009
main.cvd is up to date (version: 51, sigs: 545035, f-level: 42, builder: sven)
Downloading daily-9956.cdiff [100%]
Downloading daily-9957.cdiff [100%]
……
daily.cld updated (version: 9965, sigs: 96804, f-level: 44, builder: ccordes)
Database updated (641839 signatures) from db.jp.clamav.net (IP: 203.212.42.128)
Clamd successfully notified about the update.

初回は時間がかかりますが、今後は cron で自動的にアップデートされます。アップデートは /etc/cron.daily/freshclam に設定があるので1日1回実行されます。個人的には 1日1回では少ないように感じていますが、あまり頻繁に実行させると、無償で提供されているサーバに負荷をかけてしまうので悩ましいところです。

clamd の設定と起動

設定ファイル は /etc/clamd.conf です。基本的には変更の必要はありませんが、ウィルス検出時にメールを送る設定などができます。

  VirusEvent echo "VIRUS ALERT: %v" | mail -s "Virus Alert" virusadmin@example.org

clamd デーモンを起動します。

# service clamd start
Starting Clam AntiVirus Daemon:                            [  OK  ]

clamdscan コマンドで適当なファイルをスキャンして、接続エラーが出なければ clamd が正常に起動しています。

clamav-milter の設定と起動

続いて clamav-milter の設定ファイル /etc/clamav-milter.conf を変更します。ここではソケットのパス名を変更、またメールのヘッダに文字列を追加する設定を有効としています。

 
MilterSocket unix:/var/run/clamav/milter.sock
……
AddHeader yes

clamav-milter デーモンを起動します。

# service clamav-milter start
 Starting Clamav Milter Daemon:                            [  OK  ]

sendmail の設定変更

sendmail の設定ファイル /etc/mail/sendmail.mc を変更します。

 
INPUT_MAIL_FILTER(`clamilter', `S=local:/var/run/clamav/milter.sock, F=, T=S:4m;R:4m')dnl

上記の行を追加します。 SpamAssassin の設定がされていれば、同様の INPUT_MAIL_FILTER の上の行に追加します。なければ TRUST_AUTH_MECH あたりでよいでしょうか。

sendmail を再起動して、メールの送受信が問題なくできることを確認します。メールのヘッダに

X-Virus-Scanned: clamav-milter 0.95.3 at server10
X-Virus-Status: Clean

のような行が挿入されることを確認します。

自動起動の設定

最後に chkconfig コマンドか ntsysv コマンドで clamd と clamav-milter デーモンを自動起動する設定しておきます。

clamd の死活監視

たまに、clamd が異常終了して、ウィルスチェックがされない状態になっていることがあります。clamd の死活監視をするよう、cron の設定をしてみます。

0 * * * * test -z "`service clamd status | grep pid`" && echo 'clamd daemon is stopped.' | mail root@example.org

コメントはまだありません

コメントはまだありません。

現在、コメントフォームは閉鎖中です。

23 queries. HTML convert time: 0.459 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2013 @ futuremix.org ログイン