Clam AntiVirus (ClamAV) と sendmail の連携 CentOS 5 編
オープンソースのアンチウィルスソフト 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
コメントはまだありません
No comments yet.
Sorry, the comment form is closed at this time.