本稿ではメールサーバーでウイルスをスキャンする仕組みを構築します。前に導入した" "Sophos Anti-Virus" と "InFlex" の組み合わせでウイルススキャン機能を付加し、Sendmailウイルスフィルタ機能の実現を目的にしています。ここではSendmail-8.12を使 用していますが、Sendmail 8.12から正式サポートされたMILTERは使っていません。
ご注意
この記事は2002年頃に執筆された記事(TurboLinux 6)で陳腐化しています。 Sendmail によるメールウイルスフィルター導入に関しては MILTER を使用する事をお勧めします。以下を参照して下さい。
参照 => メールウイルスフィルタ導入(AntiVir + MILTER 編
)
InFlexはSendMail専用のPerlで動作するフィルタープログラムです。同系統のプログラムにAMaViS-perlがありますが、こちらの 方が有名でInFlexはいまいちマイナーのような気がします。これらのツールはSendMailの動きを常に監視し、メールに含まれる特定の文字列を見 付けるとアクションを起こします。これを利用してSendmailにより中継、配送、受信の際にウイルスフィルターを実行し、メールに添付されて送られて 来るウイルスを監視し、メールの安全性を高めます。
■外部ドメインから自メールサーバーに届くメール
禁止添付 .exe |
||||||
WAN | ↑ |
受信 | LAN | |||
→ |
Inflex | Sendmail | ← | POPサーバー | ||
---|---|---|---|---|---|---|
↓ |
↑ | |||||
ウイルス | ← |
Sweep | → | OK |
■自メールサーバーから他ドメインへ配送されるメール
禁止添付 .exe |
||||||
LAN | ↑ |
送信 | WAN | |||
→ |
Inflex | Sendmail | ← | POPサーバー | ||
---|---|---|---|---|---|---|
↓ |
↑ | |||||
ウイルス | ← |
Sweep | → | OK |
Sendmailがメールを処理する際に参照するsendmail.cfに変わって、inflex.cfを参照するようにすることでフィルターを実現しま す。Ineflexにより定義された禁止添付ファイル.exeを含むメールは破棄され、ウイルススキャンを通過したメールは、sendmail.cfに基 づきSendmailが従来のメールと同様に処理します。一見複雑に処理をしているように見えますが導入は至って簡単です。
SendmailのバージョンアップなどでSendmail.cfを修正する必要が出てきた場合は、inflex.cfも修正する必要があるので注意が必要です。また、logは
/usr/local/inflex/inflex.log
に出力されます。MTAが動作する度に出力されるため、かなりの容量になるので注意が必要です。
前置きが長くなりましたがInFlexをインストールします。
http://www.pldaniels.com/inflex/
から inflex-1.0.12.5.tar.gz を入手します。
解凍します。
解凍ディレクトリへ移動後、インストールします。
インストールは対話形式に行われます。
Press ENTER/RETURN to commence...
Determining your Operating system / Distribution... doneie pldaniels.com には " @ " 以降のメールサーバードメイン
sendmailはデフォルトでpostmasterとなっており、postmaster@my.domain.com へ警告メールが届きます。turbolinxではpostmaster宛のメールはrootへ転送されるようになっています。なにも指定しなければ[ ]内の値が使われます。
/usr/local/inflex/disclaimer には、メール本文の末尾にinflexによりフィルタがかけられた事を示す文章が入ります。余計なお世話なのでここでは N とします。
ちなみにこの様な文字がメール本文末尾に挿入されます。
Inflex - installed on mailserver for domain @my.domain.com
Queries to: postmaster@mydmain.net
このメッセージが記述されているファイルは /usr/local/inflex/disclaimer です。
確認メッセージが表示されます。パスに違いがないか注意して下さい。
問題がなければ Y
OS起動時にSendmailをinflexモードで起動するかどうか聞かれます。ここでは Y とします。インストール時にOSタイプを質問して来るようなのですが、なぜか質問されませんでした。どうやらSlakwareとしてインストールされてい るようで起動スクリプトの更新に失敗しています。
sendmailを再起動するか尋ねられます。ここで再起動すると、sendmailは/etc/mail/sendmail.cfを参照せずに/usr/local/inflex/inflex.cf を参照しinflexモードで起動することになります。
ここでは Y と答え、sendmailを再起動します。この段階ではinflexモードで起動しますが、起動スクリプトの更新に失敗しているため、一度リブートをかけるとsendmailは通常のモードで起動することになります。
次に起動スクリプトの修正を行います。