ウイルス、スパム対策をメール・サーバーに組み込んでみよう

ウイルス、スパム対策をメール・サーバーに組み込んでみよう

今まで説明した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

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30