アンチウイルスゲート(AntiVir Mailgate)の導入

Mail System Postfix SMTP-Auth SMTP-Auth+TLS SMTP+Virtual Qpopper Qpopper/SSL Courier-IMAP FetchMail Procmail WebMail AntiVirus Relay Mail

長年愛用してきた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用の設定

  1.  /etc/servicesを編集(下記を追加)して、AntiVir MailGate用のサービスを設定する。

    # Content Filter for postfix
    antivir       10024/tcp     # Port for avgated
    smtp-backdoor 10025/tcp     # Port for postfix

  2. /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


  3. /etc/postfix/master.cfを編集、下記を追加する。

    localhost:smtp-backdoor inet n - n - - smtpd -o content_filter=

  4. /etc/postfix/main.cfを編集、下記を追加する。

    # Antivir Einbindung
    content_filter = smtp:127.0.0.1:10024

  5. メールで送られてきたライセンスキー (hbedv.key) を、/usr/lib/AntiVirにコピーし、オーナを変更する。その後、再起動する。

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

  6. ここで、ソフトとパターンファイルを最新版に更新する。

    # /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してくれる。

  7. 以前は、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に廃棄メールやログを削除してくれる。

  8. なお、ログに関しては /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



Mail System Postfix SMTP-Auth SMTP-Auth+TLS SMTP+Virtual Qpopper Qpopper/SSL Courier-IMAP FetchMail Procmail WebMail AntiVirus Relay Mail