対ウイルスソフトのClamAVとSpamAssassin

SpamAssassinのバージョン2.64までは(設定にもよりますが)ほとんどのウイルスメールをspamと判定していたのですが 3.0にバージョンアップされてウイルスメールはspamと判定されなくなったそうです。

今まではウイルスでもspamと判定して分類してくれていたので場合によっては都合がよかったのですが、 ウイルスをspamと判定しなくなったということは通過して受信してしまうということです。 ということは自分のPCにウイルス防御ソフトが入っていなければ間違って開いて感染することもあるというわけです。

新しいバージョンのSpamAssassin3.0についても、当社がいくつかのサーバーに入れて 状況を見ていたところウイルスを100%通すわけでも無いようでいくつかはまだspamと誤判定されていました。

ウイルスメールがspamと誤判定されても通常のメールのやりとりには問題は無いのですが spamと判定されたメールからメールアドレスや送ってきたホストを拒絶データに加えているような場合には 問題がおきます。 最近のウイルスはアドレス帳から勝手にメールアドレスをもってきて送るためspammerでない アドレスやサーバーまでspammerのものとしてリストに登録されてしまい次回からは無実の人が拒絶されてしまう可能性があるからです。

ということでSpamAssassinだけでなくウイルス防御ソフトも同じサーバーに入れることにしました。 そうすれば(当たり前ですが)spamはspam、ウイルスはウイルスと判定されてすっきりする上に、 どちらもほとんど人の目に触れる事がなくなります。

対ウイルスソフトの選定

ウイルスをメールサーバーで判定するにはサーバーに対ウイルスソフトをインストールしなくてはなりません。

トレンドマイクロやシマンテック、F-secure、ネットメロン(ProScan)などから有料の素晴らしいソフトがリリースされていますのでこれを入れましょう...では話が続かないので別の観点からソフトを選んでみることにします。

パソコン用のウイルスソフトは数千円くらいなのですがサーバー用はメールアドレスの数にもよりますが100メールアドレス用としても10万円から数十万円もしてなかなか利用に踏み切れませんね。無料のやつって無いんでしょうかね?

ウイルス防御ソフトというものは一旦作ってあとはどうぞお使いくださいというわけにいかず、毎日新種ウイルスのパターンを登録しなければならないため恒常的に人手がかかりフリーウエアは出て来ずらいものでした。

ところがそのパターンの更新までボランティアが行っていたり、個人で立ち上げているサーバー用に限っては無料という偉い組織や会社があります。

クライアントPCレベルで使える対ウイルスソフトも個人利用であれば無料という太っ腹な会社もありますが届いてから消すよりサーバーレベルで消すというほうがさっぱりしますね。このためこのソフトは今回の選定の対象外です。

サーバーにインストールできる無料の対ウイルスソフトでお薦めはClamAV http://www.clamav.net/ です。
GNUライセンスで配布されているため商用利用のサーバーでも問題なく使えるというろころがポイント。このため今回はこれをインストールしてみることにしました。

ちなみに個人利用なら無料というサーバー用対ウイルスソフトはいくつかありますが商用サーバーには使えないわけなのでこれも選定から外しました。

今回インストールしたClamAVというソフトですが詳しい説明は木村さんのページ
http://www.fkimura.com/server-menu.html
にFreeBSDのportsを使ったインストールの説明があります。当社はここを参考にインストールしました。

なおClamAVの日本語の解説ページ http://clamav-jp.sourceforge.jp/ には他のOSに入れる方法の解説もあります。

インストール

インストールする前には各種設定ファイルのバックアップをとっておいたほうが安全です。
/etc/* /usr/local/etc/* あたりでしょうか。

FreeBSDのportsからインストールする手順は概略以下の通りです(詳細は前述の木村さんのページなどを参考にインストールしてください)。当社がインストールしたサーバーはFreeBSD4.10とFreeBSD5.2.1でそれぞれ最新パッチが当たったものです。
su
cd /usr/ports/mail/p5-Mail-ClamAV
make
make install
途中「sendmailのmilter機能を使うか」というダイアログが出てくるのでそれにチェックを入れます。

このあとsendmailの設定ファイル(.mc)に以下を追加してsendmail.cfを生成し /etc/mail/sendmail.cf として配置します。うまく動かないときに前のものに戻さなくてはならないので変更前のsendmail.cfはバックアップをとっておくことを忘れずに。
INPUT_MAIL_FILTER(`spamassassin',`S=local:/var/run/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')
INPUT_MAIL_FILTER(`clmilter', `S=local:/var/run/clamav/clmilter.sock, F=, T=S:4m;R:4m')dnl
define(`confINPUT_MAIL_FILTERS', `clmilter,spamassassin')dnl
さらに/etc/rc.confに以下の定義を追加します。
spamass_milter_enable="YES"
spamd_enable="YES"
clamav_clamd_enable="YES"
clamav_milter_enable="YES"
clamav_freshclam_enable="YES"
最初の二行はSpamAssassinを入れているサーバーであれば既に設定されているはずです。

配置したら/usr/local/etc/rc.d/ 以下にある新しくできた3つの起動スクリプトclamav-freshclam.sh,clamav-clamd.shそれにclamav-milter.shを起動してsendmailも 再起動すればすぐに動作します。インストール時に自動的に起動する設定もされているのでその確認をする意味でサーバー自体をリブートしてもかまいません。

ご注意: 本ページおよび参考ページを見てご自分でインストール出来る方だけ行ってください。業務多忙につきインストール方法などについての問い合わせにはお返事いたしかねます。(慣れていない方は実験用マシンを一台用意してまずそこで練習するとよろしいと思います)

動作の確認

試しにメールを送ってみてヘッダに以下があればSpamAssassinもClamAVも動作していることが確認できます。
X-Virus-Scanned: ClamAV 0.80/574/Fri Nov  5 09:12:58 2004
        clamav-milter version 0.80j on xxx.xxxx_xx.com
X-Virus-Status: Clean
X-Spam-Status: No, score=-1.8 required=6.0 tests=AWL,BAYES_40 autolearn=ham
        version=3.0.1
X-Spam-Checker-Version: SpamAssassin 3.0.1 (2004-10-22) on xxx.xxxx_xx.com
最初の2行がClamAV、次の2行がSpamAssassinによってヘッダに追加されたものです。

ウイルスが検知されるとメールは拒絶され、postmaster宛に Virus intercepted というタイトルで以下のようなメールが届きます。
The message iA7AKiB1078019 sent from <XXXX@XXXX_XX.com> to
	<YYY@YYY_YY.com>
contained Worm.SomeFool.P and has not been delivered.

評価

結果ですが3つのサーバーに仕掛けて48時間経過後に合計740件のウイルスを検知し駆除していて 見事に動作しています。これが検出したウイルスのログの一部です。 かなりメールが多いサーバーなのでものすごい数となっていますが普通はこんなにウイルスは駆除しないと思います。

http://clamav-jp.sourceforge.jp/ の記事の受け売りですが、 パターンの更新は多くの協力者(ウイルス提供者)のもとに数名のVirusDBチームが行っているそうで新種ウイルスに対する更新速度は商用製品と比較して遜色がないということです。

このソフトができたのが比較的新しいため新しいウイルスに対するパターンはあるけれども古いウイルスについては十分ではないかもしれませんが大流行するのはいつも新しく出現するウイルスなので気にしなくてもいいかもしれませんね。 いずれにせよパターンを登録する人数がさほど多くないわけですから新しいウイルスが出現しても即時に反映されるとは限らないので知り合いからのメールでも十分に警戒し、添付ファイルがあっても気軽に開けないほうがいいと思います。いずれにせよこのウエブページの文章は一度は読んでおいたほうがいいでしょう。

当社は別に某社のハードウエアによるウイルス駆除装置も併用しているのですがなぜかここを 通り抜けたウイルスも見つかりました。citibank.com関連のフィッシング詐欺のメールもウイルスと判定されていました。

副次的効果として、メールを更に別のISPなどのメールアドレスに転送をしている場合に今までウイルス付きメールを受けとると(転送先のサーバーにウイルス駆除ソフトが入っている場合に)転送先から拒絶されて出て行かないので4日後にエラーメールとしてpostmasterに戻って来ていたのですが受けとりを拒絶しているため/var/spool/mqueueの中身はいつもスカスカで気持ちがいいです。その代わり転送元のサーバーのmqueueにはきっとたくさんのウイルス付きメールが滞留していることでしょう。なんだかババ抜きみたいですね。

ClamAVはウイルス入りメールを受信しない(reject)という処理でウイルスを遮断しているようです。 送り元のサーバーのmaillogには以下のように記録されているはずです。ちなみにClamAVでのSomeFoolという名前は一般的にはNetSkyと呼ばれているウイルスのことです。
554 5.7.1 virus Worm.SomeFool.Gen-1 detected by ClamAV - http://www.clamav.net
商用の対ウイルスソフトでは一旦受信してそれを別ディレクトリに隔離して保管するというものもあります。もしかしたらClamAVでも別ディレクトリに保管する設定があるのかもしれません(その後、保管するオプションを見つけました)。どうせ消しちゃうわけだからどっちでもいいですが拒絶する方が万が一誤判定があったときに相手も拒絶されたとわかるので都合がいいような気がします。

SpamAssassinとClamAVを同じサーバーで動かしていると時として負荷が高くなることがあります。従来のsendmailの動きは届いたメールを所定のユーザー毎に格納するだけでしたが、いろいろな方法で内容を調べて複雑な処理をするようになったので仕方の無いことです。特にSpamAssassinが高くなる度合が多いようです。ClamAVでも巨大な.zipファイルが添付されていれば負荷は高くなるでしょう。このためCPUは速めのものがいいかもしれません。といってもPentium IIIクラスのCPU程度であれば問題はないでしょう。(メモリも多めに)

ということでかなり使える対ウイルスソフトと思いますからインストールしてみてはいかがでしょうか。

ドネーション

ClamAVをインストールしてみてずっと使い続けたいなと思ったら献金してみてはいかがでしょうか? なんでも一人のボランティアの作業量は月100ドル相当だそうです。それ以外にサーバーとか回線とかいろいろお金が出て行くので大変でしょうしね。「はい、お幾らになります」と言われるより自分の出せる範囲でお金を出したほうがいいことしたみたいで気分もいいです。

http://www.clamav.net/ から donate をクリックするとAMEX, VISA, MasterCardなどのクレジットカードで献金できます。ORDBのときはPayPalに登録してそこから献金だったのですがClamAVの場合はクレジットカードを使って直接献金できるので非常に簡単です。カード番号を入れるのは別のドメインのサイトなのですがしばらくしてClamAVのスタッフから丁寧なお礼のメールが来たのでPhishing詐欺ではないようです (^_^; 疑ってごめんなさい。でも時節柄気にしちゃいますよね。

当社はとりあえず $100(実際にはカード決済会社の手数料 $6 がプラス)を 献金しました。 5ドルから献金できるそうです。

その他サーバー提供や回線提供のドネーションも募集しているのでマシンや帯域が余っているあなた、いかがですか?

有料の対ウイルスソフト

もちろん有料ソフトはパターンの数もはるかに多く専任のスタッフが日夜ウイルスを分析していて更新も素早く行われるので予算に余裕がある方はこちらがお薦めです。

宣伝:当社ではProScanというソフトを販売しています。大手のものと比べてちょっと安いです。

Nikki Top