.
Linux 活用ガイド:目次

サーバ構築ガイド

レンタル ガイド

ショップ 構築ガイド

情報漏洩対策

Sendmail & InFlex& Sophosで構築するメールウイルスフィルタ

メールサーバーでウイルスを監視する

本稿ではメールサーバーでウイルスをスキャンする仕組みを構築します。前に導入した" "Sophos Anti-Virus" と "InFlex" の組み合わせでウイルススキャン機能を付加し、Sendmailウイルスフィルタ機能の実現を目的にしています。ここではSendmail-8.12を使 用していますが、Sendmail 8.12から正式サポートされたMILTERは使っていません。

ご注意
この記事は2002年頃に執筆された記事(TurboLinux 6)で陳腐化しています。 Sendmail によるメールウイルスフィルター導入に関しては MILTER を使用する事をお勧めします。以下を参照して下さい。
参照 => メールウイルスフィルタ導入(AntiVir + MILTER 編 )

InFlexとは?

InFlexはSendMail専用のPerlで動作するフィルタープログラムです。同系統のプログラムにAMaViS-perlがありますが、こちらの 方が有名でInFlexはいまいちマイナーのような気がします。これらのツールはSendMailの動きを常に監視し、メールに含まれる特定の文字列を見 付けるとアクションを起こします。これを利用してSendmailにより中継、配送、受信の際にウイルスフィルターを実行し、メールに添付されて送られて 来るウイルスを監視し、メールの安全性を高めます。

■外部ドメインから自メールサーバーに届くメール

 
禁止添付 .exe
       
WAN
  受信   LAN
MAIL
Inflex   Sendmail POPサーバー
   
     
ウイルス
Sweep OK    

■自メールサーバーから他ドメインへ配送されるメール

   
禁止添付 .exe
       
LAN  
  送信   WAN
MAIL
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のインストール

前置きが長くなりましたがInFlexをインストールします。
http://www.pldaniels.com/inflex/
から inflex-1.0.12.5.tar.gz を入手します。

# tar -xzvf inflex-1.0.12.5.tar.gz

解凍します。

# cd /inflex-1.0.12.5
# ./install.sh

解凍ディレクトリへ移動後、インストールします。

インストールは対話形式に行われます。

Press ENTER/RETURN to commence...

Determining your Operating system / Distribution... done
Determining various binary and file locations... done
Determining which AntiVirus agent you have (if any)... done
Setting up AntiVirus parameters... done
What is the primary email domain (ie pldaniels.com) : mydmain.net
Where would you like inflex installed? [/usr/local/inflex] :
When Emails are blocked, who should receive notification? [postmaster] :
Who is responsible for client responses/queries? [postmaster@mydmain.net] :
Would you like to use a disclaimer [/usr/local/inflex/disclaimer] (y/n) : n

ie 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 です。

Details of your installation...
Install path : /usr/local/inflex
Admin Email : postmaster
Local Domain : mydmain.net
Sendmail : /usr/sbin/sendmail
Sendmail.cf file: /etc/mail/sendmail.cf
crontab file : /etc/crontab
find flags : -iname
grep flags : -irl
ANTI-Virus details
Sophos : /usr/local/bin/sweep
Flags : -archive -all -rec -sc -dn
Do you wish to install? (y/n) : y

確認メッセージが表示されます。パスに違いがないか注意して下さい。
問題がなければ Y

Do you want to attempt to update your OS startup files
to make Inflex start automatically when you reboot ? (y/n) : y
Running init_install...Inflex OS init configuration update tool
searching for OS type...detected Slackware
Modifying init scripts to load Inflex with sendmail
Sendmail startup for slackware adjustment...
grep: /etc/rc.d/rc.M: No such file or directory
Done.
done.

OS起動時にSendmailをinflexモードで起動するかどうか聞かれます。ここでは Y とします。インストール時にOSタイプを質問して来るようなのですが、なぜか質問されませんでした。どうやらSlakwareとしてインストールされてい るようで起動スクリプトの更新に失敗しています。

Do you want to restart sendmail (y/n) : Killing existing sendmail services... done.
Restarting sendmail... Successfully restarted.
Congratulations, Inflex is now installed.
 Please edit the 'inflex' shell script in the installation directory
 and make sure that you block the filenames/types/text which YOU want
  to be blocked.
  The default blockings are very limited and designed purely for example purposes.

sendmailを再起動するか尋ねられます。ここで再起動すると、sendmailは/etc/mail/sendmail.cfを参照せずに/usr/local/inflex/inflex.cf を参照しinflexモードで起動することになります。

ここでは Y と答え、sendmailを再起動します。この段階ではinflexモードで起動しますが、起動スクリプトの更新に失敗しているため、一度リブートをかけるとsendmailは通常のモードで起動することになります。

次に起動スクリプトの修正を行います。

bottom_mark
ページ最上部
ページ最上部 前のページ