server_top


2004年04月02日

Antivir Mailgateによるメールのウイルスチェック

クライアントにはNorton Antivirusを入れていますがせっかくなのでサーバの段階でたたき落としておきたいと思います。昔はSophosAVとAmavisで構築していましたが、今回は個人利用が無料の Antivir Mailgateを使ってみることにしました。

インストール
まず、H+BEDVのサイトから「Antivir Mailgate for Linuxをダウンロードします。登録ページでユーザー登録を行い、ライセンスキーを入手します
$ tar xvfz aavlxmgt.tgz
$ cd antivir-mailgate-2.0.2-1
# ./avinstall.pl
すべてデフォルトでインストール
ただし、起動スクリプトが"/etc/rc.d"にできてしまうので"/etc/rc.d/init.d"に移動する
# mv /etc/rc.d/avgate /etc/rc.d/init.d/avgate

AntiVir Mailgateの設定
まず/etc/serviceに以下の記述を追加
[/etc/service]
antivir 10024/tcp #Port for avgated
smtp-backdoor 10025/tcp #Port for postfix

/etc/avmailgate.confを編集
[/etc/avmailgate.conf]
MyHostName mail.takenouchi.to
PidDir /var/run/antivir
LogFile /var/log/avmailgate.log
ListenAddress 127.0.0.1 port antivir
ForwardTo SMTP: 127.0.0.1 port smtp-backdoor
VirusAlertsUser virusalert

PidDirを作り所有者、グループをuucpに変更
# mkdir -m 755 /var/run/antivir
# chown uucp:uucp /var/run/antivir
ライセンスキー(hbedv.key)を、/usr/lib/AntiVirにコピーし、所有者をuucpに変更

# cp hbedv.key /usr/lib/AntiVir/hbedv.key
# chown uucp:uucp /usr/lib/AntiVir/hbedv.key

Postfix側の設定
[/etc/postfix/master.cf]
localhost:smtp-backdoor inet n - n - - smtpd -o content_filter=

[/etc/postfix/main.cf]
content_filter = smtp:127.0.0.1:10024

動作確認
# /etc/rc.d/init.d/avgate start

Postfixを再起動
# /etc/rc.d/init.d/postfix restart

テストメールを送ってみて、ヘッダに下記のような記述が追加されていれば成功
X-AntiVirus: checked by AntiVir MailGate (version: 2.0.2-1; AVE: 6.24.0.7; VDF: 6.24.0.75; host: mail.takenouchi.to)

テスト用のウイルスでのアラートチェック
eicarからテスト用のウイルスをダウンロードして送受信してみる。ウイルスが検出できた時には、送信者、受信者に送信される

ウィルス定義ファイルの更新
インストール時に定義ファイルの更新を行うようにした場合、crontabに以下のような記述が追加されているはずです
[/etc/crontab]
3 * * * * root /usr/lib/AntiVir/antivir --update -q

もし手動で更新する場合は、以下のコマンドを実行します。
# /usr/lib/AntiVir/antivir --update

logrotateの設定
ログの肥大化防止のためにrotateする

[/etc/logrotate.d/syslog]
/var/log/avmailgate.log {
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}

blank_space
投稿者 たけのうち : 08:34 | コメント (0) | トラックバック

Mailサーバ(postfix)

ネットワークの設定
[/etc/postfix/main.cf]
myhostname = mail.takenouchi.to
mydomain = takenouchi.to
myorigin = $mydomain
mydestination = $myhostname, $mydomain, localhost.$mydomain
mynetworks = 192.168.0.0/24, 127.0.0.0/8
relaydomains = $mydestination
alias_maps = hash:/etc/postfix/aliases
mailbox_command = /usr/bin/procmail
smtpd_banner = $myhostname ESMTP $mail_name ← 余計なバージョン情報などは外に出さない

エイリアスの設定
rootのメールは直接pop3で読めないので、root宛のメールは転送する。

[/etc/postfix/aliases]
root: hoge
あと必要なら、エイリアスを設定する
info: root
webmaster: root

Postfixのセキュリティ強化
user@domain形式以外の宛先を拒否し、!や%によるリレーができないようにするデフォルトで不正中継に対しては十分ですが、Vine 2.1.5の時に後述するmail-abuse.org でのチェックに引っかかった経緯があり、さらなる対策を行ってます。

/etc/postfix/main.cf に以下の行を新たに追加。 [/etc/postfix/main.cf]

smtpd_recipient_restrictions = regexp:/etc/postfix/recipient_checks, permit_mynetworks, check_relay_domains
notify_classes = resource,software,policy
allow_percent_hack = yes
swap_bangpath = yes
/etc/postfix/recipient_checks というファイルを新規作成し、以下をのように記述。 [/etc/postfix/recipient_checks]

/[@!%].*[@!%]/ 550 Please use user@domain address forms only.

不正中継チェック
長崎ネットワークサービスでの不正中継確認テスト
有名なサイトです。まずはここでチェックするといいと思います。

<<< 220 mail.takenouchi.to ESMTP Postfix
>>> HELO rlytest.nanet.co.jp
<<< 250 mail.takenouchi.to
>>> MAIL FROM:<"58c3a9:TPR TEST http://www.nanet.co.jp/rlytest/ requested from
[203.141.147.165]"@mail.takenouchi.to>
<<< 250 Ok
>>> RCPT TO:
<<< 554 : Recipient address rejected: Relay access denied
正常:中継は拒否されました。
mail-abuse.org でのチェック
mail-abuse.org でもメールの不正中継のテストをしてくれます。こちらは relay-test.mail-abuse.org にtelnetすることでより詳細なチェックをしてくれます。

# telnet relay-test.mail-abuse.org
さらにルールを有効にするために、/etc/postfix/main.cf に以下の行を追加する必要があります。。(ヘッダーでなく本文でチェックする場合は、main.cfで"body_checks=(ファイル名)"とするといいと思います。)

header_checks = regexp:/etc/postfix/header_checks_rule

APOPの設定
外からPOPで受け取りたいという妻の要望がありましたが、POPのままではパスワードが平文で流れ、セキュリティ的に不安なので、APOPの設定を行いました。

qpopperのAPOP用DBの初期化

# popauth -init
APOPのアカウントをユーザー毎に作成。

# popauth -user hogehoge

blank_space
投稿者 たけのうち : 01:19 | コメント (0) | トラックバック