Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

Postfix+amavisd+f-protを入れてみた

自宅ではFUJITSU LOOXS5/53W+Vine3.2でメールサーバを建ています。アンチウィルスソフトとしてAVIRA社のAntiVir Mailgate for Linuxを利用していましたが、昨年末あたりから個人利用ができなくなるとアナウンスがあった模様で、急遽(今更?)乗り換えを検討していました。
そこで、パソコンおやじさんのところでAmavisd-new + F-Protが紹介されていたので、こちらに入れ替えてみました。また、他の参考サイトとしてメールサーバ(Postfix)上でのウィルスチェックシステムの構築があります。

まずは、PostfixAntiVir Mailgateの停止から。

# service postfix stop
# service avgate stop

早速、F-Protのインストールですが、パソコンおやじさんのところのまま、ということで割愛。

続いて、amavisd-newのインストール。今回はMOXさんで配布されているamavisd-newの警告メールを日本語化したものを使用しました。手順は、ざっと以下のような感じ。

# wget http://marijuana.ddo.jp/download/amavisd-new-2.4.1-JP.tgz
# tar zxf amavisd-new-2.4.1-JP.tgz
# cd amavisd-new-2.4.1-JP/
# groupadd clamav
# useradd -g clamav -s /sbin/nologin clamav
# sh ./amavisd_install.sh perl
# sh ./amavisd_install.sh install
#

で、設定ファイルである/etc/amavisd.confを編集するわけですが、日本語版amavisd-newの対象としているアンチウィルスソフトがClamAVしか想定していません。このため、オリジナルのamavisd-newのamavisd.confから

  • @av_scanners
  • @av_scanners_backup

を丸ごとコピーしてきました。その他の変更箇所は、$mydomainだけです。

$mydomain = 'some.domain.com';(あくまで例です)

Postfix側の設定ですが、main.conf、master.confを編集。
main.confは以下の通り。

######################
# for AntiVir
# 2006/05/23 commented out
######################
#content_filter = smtp:127.0.0.1:10024
######################
# for amavisd
# 2006/05/23 added
######################
content_filter = smtp-amavis:[127.0.0.1]:10024
max_use=10

master.confは以下の通り。うちではSMTP-AUTHを使っているので、smtpd_recipient_restrictionsのオプションがパソコンおやじさんのところと違います。

######################
# for AntiVir
# 2006/05/23 commented out
######################
#localhost:smtp-backdoor inet n - n - - smtpd -o content_filter=
######################
# for amavis
# 2006/05/23 added
######################
smtp-amavis unix - - n - 2 smtp
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes
127.0.0.1:10025 inet n - n - - smtpd
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,
                                    permit_sasl_authenticated,
                                    reject_unauth_destination
    -o mynetworks=127.0.0.0/8
    -o strict_rfc821_envelopes=yes
    -o smtpd_error_sleep_time=0
    -o smtpd_soft_error_limit=1001
    -o smtpd_hard_error_limit=1000
    -o receive_override_options=no_header_body_checks

ウィルスメールが検知された場合のaliasを/etc/aliasesに追加。

virusalert: root
spamalert: root

newaliasesの実行は当然必須。

# newaliases
#

これでPostfix、amavisdを起動。

# service amavisd start
# service postfix start
# netstat -tnl
# netstat -tln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
                        :
tcp        0      0 127.0.0.1:10024         0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:10025         0.0.0.0:*               LISTEN
#

あとは実際にこちらにあるウィルスパターンサンプルで動作を確認しました。すると、root宛に以下のようなメールが届きます。

From: "Content-filter at some.domain.com" <virusalert@some.domain.com>
Subject: ウィルス警告 (EICAR_Test_File) 送信者 LOCAL[nnn.nnn.nnn.nnn] 
 <?@[nnn.nnn.nnn.nnn]>
To: <virusalert@some.domain.com>

This is a multi-part message in MIME format...


------------=_1148355601-15098-0
Content-Type: text/plain; charset="iso-2022-jp"
Content-Disposition: inline

このメールは以下の理由により削除されました。

次ぎのウィルスが見つかりました: EICAR_Test_File

ウィルスを検知したソフト: FRISK F-Prot Antivirus

このメールを送信したアドレス(偽られてる場合があります): <?@[nnn.nnn.nnn.nnn]>
First upstream SMTP client IP address: [nnn.nnn.nnn.nnn] 

追跡した、送信アドレス: [nnn.nnn.nnn.nnn] scinfaxi (unknown [nnn.nnn.nnn.nnn])

Notification to sender will not be mailed.

このメールは次ぎのアドレスに送信されませんでした:
<user@some.domain.com>:
   250 2.7.1 Ok, discarded, id=15098-01 - VIRUS: EICAR_Test_File

ウィルスを検知したソフトの出力:
  Virus scanning report  -  23 May 2006 @ 12:40
  
  F-PROT ANTIVIRUS
  Program version: 4.6.6
  Engine version: 3.16.14
            :