Kozupon.com    
 
 AMaViSを使ってウィルスフィルタをかける!


AMaViSは、 SophosAntiVirus 等のウィルススキャンソフトと併用して、メールサーバに対してウィルスゲートウェイを構築するモジュールである。ウィルスフィルタと同時に管理者やメール送信者さらにメール受信者に警告メールも送信してくれる優れものである。ここでは、AMaViSのセットアップ方法を解説する。

構成は、

OS : Laser5LinuxSecureServer6.9(FreeBSDでもほぼ同じ)
MTA : Postfix(他のqmail等でも可能であるが、少々めんどくさい)

以上の環境で構築した。内容中、Postfixと依存関係を要するモジュールのセットアップの詳細は割愛する。


1.AMaViSとMTAの関係

AMaViSとMTAとの関係を以下の図1で示す。メール受信のみウィルスフィルタが効くようなセットアップを行った。

図 1


2.セットアップの前に

セットアップの前に、必要なモジュールをインストールする。AMaViSのセットアップに必要なモジュールは以下である。

■ Perl5
■ SophosAntiVirus( セットアップの仕方は、 ここ に有 )
■ file
■ uncompress
■ unzip
■ unrar
■ bunzip2
■ arc
■ gunzip
■ unarj
■ LHArc
■ zoo
■ procmail

Perlユーティリティ

■ IO-stringy
■ Mail-Tools
■ MIME-tools
■ Convert-TNEF
■ Archive-tar
■ Syslog
■ MIME-Base64
■ Convert-UUlib
■ Compress-Zlib
■ Archive-Zip

以上のモジュールが必要である。各自、wgetでもftpでも好きな方法でゲットしてインストールしていただきたい。
尚、Linux版ではソースのgz+tar玉の他にrpm版もあるはずなので調べて欲しい。
あと、Perlユーティリティは、CPANよりネットワーク経由でインストールできるので、その方法でインストールしてもいいだろう。やり方は、検索すればたくさん出てくるので、そちらのサイトに任せる事にする。


2.ユーザ登録

■ vscanユーザ及びグループ追加

# groupadd vscan

# adduser -g vscan -d /dev/null -s /bin/false vscan

■ aliasesに警告メール配送先登録

# vi /etc/aliases

省略

virusalert: root ←追加

省略

エイリアスの更新(忘れないこと)!

# newaliases


3.Postfixのmailbox_commandを使う方法

■ AMaviSのコンパイル

gz+tar玉を ここ からゲットする(2002年5月現在はamavis-perl-11.tar.gzが最新版であった)。

# tar -zxvf amavis-perl-11.tar.gz

# cd amavis-perl-11

# ./configure

# make

# make check

PASS: config
PASS: novirus-msg
PASS: virus-msg
PASS: xheader
==================
All 4 tests passed
==================

まともにチェックされたなら、

# make install

■ AMaViSの関連ディレクトリのパーミッション変更

# cd /var
# chown vscan.vscan amavis virusmails
# chmod 1777 amavis virusmails

■ Postfixのmain.cfファイルへ追加(/etc/postfix/main.cfもしくは、/usr/local/etc/postfix/main.cf)

# vi main.cf

省略

mailbox_command = /usr/sbin/amavis "$SENDER" "$RECIPIENT"

省略

# postfix reload

以上で、セットアップは完了である。

■ /var/log/maillogの確認

正常に動いてるか、メールの受信時のメールログの内容の確認をする。

# tail /var/log/maillog

★ ウィルスに感染していないメールを受け取った時

May 29 19:52:00 note postfix/smtpd[15091]: disconnect from xxxx.hogehoge.com[xxx.xxx.xxx.xxx]
May 29 19:52:23 note amavis[15096]: starting. amavis perl-11 Tue May 28 23:34:20 JST 2002
May 29 19:52:35 note amavis[15096]: do_exit:400 - ending execution with 0
May 29 19:52:35 note postfix/local[15094]: CD19AAD12E: to=<hoge@xxxxxxx.com>, relay=local, delay=36, status=se
nt ("|/usr/sbin/amavis "$SENDER" "$RECIPIENT"")

★ ウィルスメールを受け取った時

Aug 28 14:15:43 localhost amavis[55025]: starting.  amavis perl-11 Sat Aug 25 23:40:10 JST 2001
Aug 28 14:15:44 localhost amavis[55025]: Virus found - quarantined as virus-20010828-141544-55025

■ ANaViSから送信されるウィルス警告メールの内容

★ 送信者に送られるメールの内容

From: postmaster@xxxxxxx.com
To: ike@xxxxxxx.net
Subject: VIRUS IN YOUR MAIL
Date: Tue, 28 Aug 2001 20:37:21 JST

V I R U S A L E R T

Our viruschecker found the

'W32/Sircam-A'

virus(es) in your email to the following recipient(s):

-> ike@localhost.localdomain Please check your system for viruses, or ask your system administrator to do so.

For your reference, here are the headers from your email:

★ virusalertへ送られるメールの内容

From: postmaster@xxxxxxx.com
To: virusalert@xxxxxxx.com
Subject: FOUND VIRUS IN MAIL
from ike@xxxxxxx.net
Date: Tue, 28 Aug 2001 20:37:21 JST

A virus was found in an email

from: hoge@localhost.localdomain

The message was addressed to:

-> ike@localhost.localdomain The message has been quarantined as:

/var/virusmails/virus-20010828-203721-56119

Here is the output of the scanner:

>>> Virus 'W32/Sircam-A' found in file /var/amavis/amavis-02133168/parts/msg-561 19-1.com

Here are the headers:


4.Postfixのコンテンツフィルタ機能を使う方法

前述までの方法では、Postfixのmailbox_commandで動かすため、他のMDA(例えば、procmail等)を使おうと思っても使えなくなる。そこで、AmaViSをセットアップするもう一つの方法を紹介する。
この方法は、postfixの新しい機能であるコンテンツフィルターを使った方法である。この方法でセットアップすれば、mailbox_commandを使い procmailでSPAMフィルタ も設定できるので都合がいい。

■ AMaviSのコンパイル

gz+tar玉を ここ からゲットする(2002年5月現在はamavis-perl-11.tar.gzが最新版であった)。

# tar -zxvf amavis-perl-11.tar.gz

# cd amavis-perl-11

# ./configure --enable-smtp --enable-postfix

このときエラーなしで、

Enable SMTP:  yes

で有ることを確認してください。

# make

# make check

PASS: config
PASS: novirus-msg
PASS: virus-msg
PASS: xheader
==================
All 4 tests passed
==================

まともにチェックされたなら、

# make install

■ AMaViSの関連ディレクトリのパーミッション変更

# cd /var
# chown vscan.vscan amavis virusmails
# chmod 700 amavis virusmails

■ Postfixのmain.cfファイルへ追加(/etc/postfix/main.cfもしくは、/usr/local/etc/postfix/main.cf)

# vi main.cf

省略

content_filter = vscan:

省略

■ Postfixのmaster.cfファイルへ追加(/etc/postfix/master.cfもしくは、/usr/local/etc/postfix/master.cf)

# vi master.cf

省略

vscan unix - n n - 10 pipe user=vscan
argv=/usr/sbin/amavis ${sender} ${recipient}
localhost:10025 inet n - n - - smtpd
  -o content_filter=

-o以前のスペースを忘れない事!

Postfixを再起動。

# postfix reload

■ 動作確認のログ、AmaViSが起動している通常メールの配送の様子(pipeを使ってる様子が解る)

Nov 4 11:57:24 sub2 amavis[11521]: starting. amavis perl-11 Sun Nov 3 11:59:26 JST 2002
Nov 4 11:57:27 sub2 postfix/smtpd[11525]: connect from localhost.localdomain[127.0.0.1]
Nov 4 11:57:27 sub2 postfix/smtpd[11525]: 592A518F5B7: client=localhost.localdomain[127.0.0.1]
Nov 4 11:57:27 sub2 postfix/cleanup[11518]: 592A518F5B7: message-id=<20021104115644.C249.xxxx@hogehoge.com>
Nov 4 11:57:27 sub2 postfix/smtpd[11525]: disconnect from localhost.localdomain[127.0.0.1]
Nov 4 11:57:27 sub2 postfix/qmgr[11499]: 592A518F5B7: from=<xxxx@hogehoge.com>, size=1238, nrcp t=1 (queue active)
Nov 4 11:57:27 sub2 amavis[11521]: do_exit:415 - ending execution with 0
Nov 4 11:57:27 sub2 postfix/pipe[11520]: 98C1918F5B5: to=<xxxx@xxxxxxx.com>, relay=vscan, dela
y=6, status=sent (xxxx.xxxxxxx.com)
Nov 4 11:57:27 sub2 postfix/local[11526]: 592A518F5B7: to=<xxxx@xxxxxxx.com>, relay=local, del
ay=0, status=sent ("|/usr/bin/procmail -m /etc/postfix/procmailrc")

尚、ウィルスが届いた場合は、3項の場合とほぼ同じメッセージが送信される。

以上


 
 
 



Copyright 2005 Kozupon.com.