アンチウイルスゲート(AntiVir Mailgate)の導入
長年愛用してきたH+BEDVのAntiVir Mailgate UNIXですが、2005年末あたりから無料での利用ができなくなってしまいました。無料で行くなら、今後はAmavisd-new+Clamav/F-Protあたりでの対応が必要です。
メールのウイルス対策と言えば、各クライアントにウイルス対策ソフトをインストールしていると思いますが、プロバイダでのサービスと同様に、サーバで受信メールのウイルス対策をしてクライアントに配送しないようにすることができます。クライアントと異なるソフトを使用すれば、より強固にガードできると思います。
ここで、紹介するのは、個人利用に限りメールで登録すれば無料で使えるサーバ側のウイルス対策ソフトであるH+BEDVのAntiVir Mailgate
UNIXです。ほぼ毎日、多い日は日に数回、パターンファイルの更新がなされており、当然マクロウイルスにも対応しているので安心して使用できます。本ソフトを導入以来、数千通のウイルスメールを駆除してくれましたが、クライアントのNortonがウイルスを検出したことは一度もなく完全に除去できています。
なお、AntiVir Mailgate UNIXは、メールのウイルスチェックだけでなく
システムのチェックもできます。
■prelink対策(Fedoracore2等)
AntiVir Mailgate UNIXをインストールする前に、FedoraCore2等ではprelink対策が必要です。prelinkは、共有ライブラリとプログラムのバイナリを事前にリンクしておき、起動時のリロケーションが減らすことで起動時間を短縮するもので、プログラムのバイナリを書き換えてしまいますので、AntiVir
Mailgate はselftestに失敗して起動できなくなってしまいます。
prelinkを動かしている場合(FedoraCore2以降はデフォルトで起動します。)は、作業前に/etc/prelink.confに以下の
赤字のような設定を追加してください。
# This config file contains a list of directories both with binaries
# and libraries prelink should consider by default.
# If a directory name is prefixed with `-l ', the directory hierarchy
# will be walked as long as filesystem boundaries are not crossed.
# If a directory name is prefixed with `-h ', symbolic links in a
# directory hierarchy are followed.
# Directories or files with `-b ' prefix will be blacklisted.
-b /lib/modules
-b /usr/lib/locale
-b /usr/lib/AntiVir
-b /usr/sbin/avgated
-b /usr/sbin/avgatefwd
-b /usr/X11R6/lib{,64}/X11/xfig
-l /bin
-l /usr/bin
-l /sbin
-l /usr/sbin
-l /usr/X11R6/bin
-l /usr/kerberos/bin
-l /usr/games
-l /usr/libexec
-l /var/ftp/bin
-l /lib{,64}
-l /usr/lib{,64}
-l /usr/X11R6/lib{,64}
-l /usr/kerberos/lib{,64}
-l /usr/X11R6/LessTif
-l /var/ftp/lib{,64} |
■AntiVir Mailgate UNIXのダウンロードとインストール
AntiVir Mailgate UNIXの最新版を
H+BEDVのサイトからダウンロードします。おやじがダウンロードしたのは、antivir-mailgate-prof-2.0.2.tar.gz
です。
ダウンロードと同時に、
こちらでユーザ登録しておきましょう。しばらくすると、登録したメールアドレスにライセンスキーが届きますので、メールアドレスは正確に登録しましょう。
AntiVir Mailgate UNIXを任意の場所にダウンロードし、そのディレクトリで解凍すると必要なファイルができるので、avinstall.plでインストールします。
インストール時に、インストールディレクトリ等、いろいろ聞かれますが全てデフォルト
(Enterキーを押す)で答えて問題ありません。デフォルトで問題になるとすると、家庭内のネットワークが192.168.0.0/16以外だった場合ぐらいかと思います。ネットワークが異なる場合は、問い合わせに答える形で修正するか、後で
/etc/avmailgate.acl で修正してください。
バージョンやデストリによって、起動スクリプトとシンボリックリンクがうまくインストールできないことがありました。avinstall.plを見ると、デストリを検出してインストールするように書いてあるように見える(おやじは、正しいのかどうかまで判断できません)のですが・・・。駄目な場合は、下記赤字のように手動でインストールし、ランレベルも設定しました。
# cd /usr/local/src
# wget http://dl.antivir.de/dateien/antivir/release/antivir-mailgate-prof-2.0.2.tar.gz
# tar zxfv antivir-mailgate-prof-2.0.2.tar.gz
# cd antivir*
# perl avinstall.pl
perl avinstall.pl
TERM environment variable not set.
Do you agree the LICENSE [n] y
TERM environment variable not set.
Shutting down processes...
Enter the path where AntiVir MailGate binaries will be located
(default is: /usr/sbin): Enter
Enter the path where scan engine and virus definition file will be located
(default is: /usr/lib/AntiVir): Enter
The directory /usr/lib/AntiVir doesn't exists.
Shall I create it? [y] Enter
Enter the path where manual pages will be located
(default is: /usr/share/man): Enter
Enter the path to your license file: Enter
An automatic internet updater of AntiVir for UNIX is available.
This is a daemon that will run in the background
and automatically check for updates (internet access is required).
You may also manually check for updates using:Enter
antivir --update
You do not need to install the automatic internet updater in order
to manually check for updates. Please read the README file for more
information on updates and how they can best suit you.
Install the automatic internet updater? [n] y
Installing updater script to /usr/lib/AntiVir
Would you like the automatic updater to start automatically? [y] Enter
Installing queuemanager script
Installing new /usr/lib/AntiVir/antivir with version: 6.29.0.2
Installing new /usr/lib/AntiVir/antivir.vdf with version: 6.29.0.1
Installing new /usr/sbin/avgated with version: 2.0.2-10+gui
Installing new /usr/sbin/avgatefwd with version: 2.0.2-10+gui
Installing config file /etc/avmailgate.conf
Installing config file /etc/antivir.conf
Installing ignore file for addressfilter /etc/avmailgate.ignore
Installing scan file for addressfilter /etc/avmailgate.scan
Installing warn file /etc/avmailgate.warn
Enter the hosts and/or domains that are local:
(default is: server.aconus.com aconus.com): Enter
Enter the hosts and networks that are allowed to relay:
(default is: 127.0.0.1/8 192.168.0.0/16):
Installing config file /etc/avmailgate.acl
Installing start/stop script for a Redhat System
Would you like AvMailGate to start automatically? [n] y
Creating /var/spool/avmailgate/incoming
Creating /var/spool/avmailgate/outgoing
Creating /var/spool/avmailgate/rejected
Installing /usr/share/man/man5/avmailgate.conf.5
Installing /usr/share/man/man8/avmailgate.8
Would you like to enable GUI support?
The GUI allows you to monitor realtime activity, view logs, and configure
MailGate. [y] Enter
AntiVir MailGate is now installed. Please read the installation
description in the directory avmailgate and follow the
instructions in INSTALL.sendmail, INSTALL.qmail,
INSTALL.postfix or INSTALL.exim.
Then start AntiVir MailGate "/usr/lib/AntiVir/avmailgate start".
# cp ./avmailgate/init/rc.avgate.redhat /etc/init.d/avgate
# chmod 755 /etc/init.d/avgate
# chkconfig --add avgate
# chkconfig --list avgate
avgate 0:オフ 1:オフ 2:オン 3:オン 4:オフ 5:オン 6:オフ |
■Postfix用の設定
- /etc/servicesを編集(下記を追加)して、AntiVir MailGate用のサービスを設定する。
# Content Filter for postfix
antivir 10024/tcp
# Port for avgated
smtp-backdoor 10025/tcp # Port for postfix |
- /etc/avmailgate.confを編集する。具体的には下記を追加する。(青字は削除、赤字は追加、緑字は変更したものです。)
# Select interface and port, the smtp daemon will listen on.
# Port may be given as a number or a service name.
ListenAddress localhost port antivir
# Select how mail should be forwarded.
# Send mail by piping it thru sendmail (this is the default)
#ForwardTo /usr/sbin/sendmail -oem -oi
# Or if you want the mail to be sent by SMTP
ForwardTo SMTP: localhost port smtp-backdoor
|
- /etc/postfix/master.cfを編集、下記を追加する。
localhost:smtp-backdoor inet n - n - - smtpd -o content_filter= |
- /etc/postfix/main.cfを編集、下記を追加する。
# Antivir Einbindung
content_filter = smtp:127.0.0.1:10024 |
- メールで送られてきたライセンスキー (hbedv.key) を、/usr/lib/AntiVirにコピーし、オーナを変更する。その後、再起動する。
# cp hbedv.key /usr/lib/AntiVir/hbedv.key
# chown uucp:uucp /usr/lib/AntiVir/hbedv.key |
- ここで、ソフトとパターンファイルを最新版に更新する。
# /usr/lib/AntiVir/antivir --update |
更新後、パターンファイル (/usr/lib/AntiVir/antivir.vdf) が6.13.00.12から6.13.00.26に変更された。message.logにreloading
AntiVir MailGateと出力されており、自動でkill-HUPしてくれる。
- 以前は、crontabに下記のような自動更新の設定がインストールされていたが、最近の版数では
avgate起動時にavupdaterが起動され、一日に一回更新をチェックするように変更になっている。細かく更新チェックするようには、以前のようにcrantabに下記のような設定を書けば一時間に一回更新チェックできる。サーバ負荷にになるのでほどほどに。
また、ウイルス検出したメールやそのログが /var/spool/antivir/reject ディレクトリ配下に吐かれ、放置すると膨大な量になるのでこれを定期的に削除するようにした。(青字は削除、赤字は追加、緑字は変更したものです。)
# update every day on 0:23:
23 0 * * * root /usr/sbin/antivir --update -q
30 0 * * * root /bin/rm -f /var/spool/antivir/reject/*
|
これで、毎日、0:23にパターンファイルの自動更新を実行し、0:30に廃棄メールやログを削除してくれる。
- なお、ログに関しては /var/log/antivir.log としても記録され放置すると肥大化するので、/etc/logrotate.d配下に下記のようにantivirを作成して、他のlog同様、1週間毎にlogrotateするようにします。
# vi /etc/logrotate.d/antivir
/var/log/antivir.log {
missingok
nocompress
}
「Esc」、「:」、「w」、「q」で保存する。 |
■動作の確認
ここで、テストメールを送受信し、プロパティでAntiVir MailGate が動作しているか確認してみよう。以下は、おやじがテストしたメールの例です。
Subject: test (antivir)
To: =?iso-2022-jp?B?GyRCJCokZCQ4GyhC?= <oyaji@mail.aconus.com>
X-AntiVirus: OK! AntiVir MailGate Version 2.0.0.5
at linux has not
found any known virus in this email. |
正常な動作が確認できたら、テスト用のウイルスを
eicarのWebサイトからダウンロードして、ウイルスが検出できるのか確認しましょう。4種類のテストウイルスがあるので、全てテストしてみましょう。うまく検出されれば、管理者宛及び送信者宛にウイルスアラートのメールが送信されるはずです。
AntiVir MailGate は、メールのウイルス検出・駆除だけでなく、システムのウイルスチェックもできる。下記のように、crontabに追加するだけでよい。おやじの設定は、毎日、ウイルス更新が終わった後を狙って0:40にチェックするように設定してある。
パラメータが不足していたので、追加した。各パラメータの意味は下記のとおり。
パラメータ |
概 要 |
/ |
/以下の全てのディレクトリをスキャン。未指定時は/rootのみ。 |
-q |
バックグラウンドで動作。(Quiet) |
-s |
サブディレクトリ以下もスキャンする。未指定時は、メインディレクトリのみスキャン。 |
-z |
圧縮ファイルをスキャンする。未指定時は、圧縮ファイルはスキャンされない。 |
-e |
感染ファイルのリペアを試みる。 |
-del |
リペアできなければ削除する。上記オプションがなければいきなり削除される。 |
--allfiles |
全てのファイルをスキャンする。 |
40 0 * * * root /usr/lib/AntiVir/antivir / -q -s -z -e -del --allfiles |