2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

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項の場合とほぼ同じメッセージが送信される。

以上

コメント