タダでできる!メールセキュリティ対策
ウイルス、スパム対策をメール・サーバーに組み込んでみよう
今まで説明したClam AntiVirusとSpamAssassinは、そのままではただコマンドで実行するだけです。これをメール・サーバーと連携させることにより、自動的に検査を行えるようになります。
連携させる方法はいくつかありますが、ここでは簡単なサンプル・プログラムを作ってPostfixと連携させたいと思います。Postfixには、外部プログラムを呼び出す仕組みがあり、その機能を利用してメール・サーバーにウイルス、スパム機能を追加します(図3)。
今回作るプログラムの仕様は、下記の通りです。エラー処理が十分ではないので、実環境で利用する場合は注意してください。
- Perlで記述する
- 内部でclamscanコマンドを呼び出してウイルス検査を行う。ウイルスがあった場合はエラーを返し、メールを転送しない
- スパム検査はMail::SpamAssassinモジュールを呼び出して、メールのヘッダーに検査結果を追記する
- 処理後のメールは、SMTP経由でPostfixの10025/TCPにリレーする
まずサンプル・プログラムをこちらから入手してください。このプログラムを、仮に「AVASFilter.pl」という名前で、実行権限を付与して「/usr/local/bin」に保存します。
Postfixと連携させるためには、master.cfと呼ぶPostfixの設定ファイルを、下記のように修正します。
・メールを受信する個所の変更
(変更前)
(変更後)
・サンプルプログラムの呼び出し
(下記の記述を追記)
追記をしたら、Postfixを再起動します。これで、メール・サーバーを経由したメールのヘッダーに、SpamAssassinの検査結果が追記されるようになります。また、ウイルスが含まれていたメールはあて先に届きません。
処理の動作を変えたい場合は、サンプル・プログラムのコメントに従って、適切な処理とエラー処理を加えてみてください。clamscanコマンドをclamdscanコマンドに変更するだけでも性能の向上が図れると思います。
今回のサンプル・プログラムは、筆者の環境では、メールの処理におよそ1通あたり1秒程度の時間がかかります。あまり規模の大きくない企業や組織であれば十分かもしれませんが、より多くのメールを処理したい場合にはAMaVis(A Mail Virus Scanner)などのプログラムを使ってメール・サーバーとの連携を行ってください。
メールの誤送信はどう防ぐ?
これまでウイルス対策とスパム対策について説明してきましたが、メールのセキュリティには、誤送信という脅威もあります。
メールの誤送信は、あて先やメールの内容を間違えることで発生します。またメーリング・リストへメールを送る場合に、想定していなかった人に届いてしまうこともあります。これらの問題すべてに対処するのは難しく、特にメールの内容が間違っていることを自動判別するのは高度な文章解析技術が必要となります。
では、メールの誤送信に対して、何か打てる対策はあるのでしょうか?
1つの解として、誤送信をある程度防げるMozilla Thunderbirdのプラグイン「Check and Send」を紹介します。
Check and Sendプラグインは、メッセージを送信する前に、メッセージやあて先などをチェックします。あらかじめ登録しておいた単語の有無、添付ファイルの有無、アドレス帳にあて先があるかどうかなどをチェックして、チェック後に送信しても良いかを確認するダイアログを出します。
確認ダイアログが表示されることで、送信する前に間違いに気が付く場合も少なからずあります。フリーですが効果は高いと思います。
今回は、主にオープンソース・ソフトウエアを使った、低コストなメール・セキュリティ対策を紹介しました。紹介した方法には、自社でサーバーを運営している場合に限られるものもありますが、これをきっかけに少しでもセキュリティ対策が進めば良いと思います。
ちなみに、Postfixは外部にメールを送信する場合の内部監査用に、特定アドレスをBccに強制的に加える機能(always_bcc)があります。内部監査を安価に始めたい場合には、この機能を活用できます。
内部監査のためのアーカイブ・システムとしては、MailArchivaがオープンソースで公開されています(商用ライセンスも用意されています)。
【参考文献】
h.ogi's place
日本SpamAssassinユーザ会
AMaViS - A Mail Virus Scanner