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


長年愛用してきたH+BEDVのAntiVir Mailgate UNIXですが、2005年末あたりから無料での利用ができなくなってしまいました。無料で行くなら、今後はAmavisd-new+Clamav/F-Protあたりでの対応が必要です。

CentOS でも H+BEDV の AntiVir Mailgate Linux でウイルス対策を行いました。各クライアントでのウイルス対策とあわせて、サーバでも対策をして異なるスキャナで二重にガードしています。CentOSは、基本的にRedHat系なので設定はRedHhatとほぼ同じです。
H+BEDV の AntiVir Mailgate Linux は、個人利用に限りメールで登録すれば無料で使えるサーバ側のウイルス対策ソフトで、特に Postfix との相性(インストールのしやすさやSMTP AUTH や TLS 等の機能)は非常に良いので、是非導入されることを薦めます。パターンファイルの更新も非常に早いですし、スキャナを含めた自動更新も可能です。
なお、AntiVir Mailgate Linux は、メールのウイルスチェックだけでなくシステムのチェックもできます。

■prelink対策

CentOS4.0では、AntiVir Mailgate UNIXをインストールする前にprelink対策が必要です。prelinkは、共有ライブラリとプログラムのバイナリを事前にリンクしておき、起動時のリロケーションが減らすことで起動時間を短縮するもので、プログラムのバイナリを書き換えてしまうため、AntiVir Mailgate はselftestに失敗して起動できなくなってしまいます。
CentOS4.0ではデフォルトでprelinkが起動しているので、作業前に/etc/prelink.confに以下の赤字のような設定を追加してprelink対象外としておきます。

# 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 *.la
-b *.png
-b *.py
-b *.pl
-b *.pm
-b *.sh
-b *.xml
-b *.xslt
-b *.a
-b *.js
-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 Linux のダウンロードとインストール

AntiVir Mailgate for Linux の最新版を H+BEDV のサイトからダウンロードします。おやじがダウンロードしたのは、AntiVir Mailgate Linux Ver2.0 (antivir-mailgate-prof-2.0.2-14.tar.gz) です。
ダウンロードと同時に、こちらでユーザ登録しておきましょう。しばらくすると、登録したメールアドレスにライセンスキーが届きますのでメールアドレスは正確に登録しましょう。
任意の場所にダウンロードし、そのディレクトリで解凍すると必要なファイルができるので、avinstall.plでインストールします。
インストール時に、インストールディレクトリ等、いろいろ聞かれますが全てデフォルト (Enterキーを押す)で答えて問題ありません。

# cd /usr/local/src
# wget http://dl.antivir.de/dateien/antivir/release/antivir-mailgate-prof-2.0.2-14.tar.gz
# tar zxfv antivir-mailgate-prof-2.0.2-14.tar.gz
# cd antivir*
# perl avinstall.pl

# ライセンスの説明がズラズラと出てくるので、フリーで使えることに感謝して [Space]を押し続ける。

   (snip)

# ライセンスに同意するか聞いてくるので、[y] [Enter]と入力。
Do you agree the LICENSE [n] y [Enter]

# マニュアルのパスを聞いてくるので、そのまま[Enter]。
Enter the path where the manual pages will be located
[/usr/share/man]: [Enter]

# ライセンスファイルのパスを聞いてくるので、そのまま[Enter]。
Enter the path to your license file []: [Enter]

# 自動アップデートするか聞いてくるので、[y] [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:

      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 [Enter]

# 自動アップデート起動用スクリプトをインストールするか聞いてくるので、そのまま[Enter]と入力。
Installing updater script to /usr/lib/AntiVir

Would you like the automatic updater to start automatically? [y] [Enter]

Installing new queuemanager script to: /usr/lib/AntiVir/avq
Creating link from /usr/lib/AntiVir/avq to /usr/sbin/avq

Installing new /usr/lib/AntiVir/antivir with version: 6.30.0.2
Installing new /usr/lib/AntiVir/antivir.vdf with version: 6.30.0.3

Installing new /usr/lib/AntiVir/avgated with version: 2.0.2-14+gui
Creating link from /usr/lib/AntiVir/avgated to /usr/sbin/avgated

Installing new /usr/lib/AntiVir/avgatefwd with version: 2.0.2-14+gui
Creating link from /usr/lib/AntiVir/avgatefwd to /usr/sbin/avgatefwd


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]。
Enter the hosts and/or domains that are local:
[server.aconus.com aconus.com]: [Enter]

# リレーを許可するホストやネットワークを聞いてくるので内容を確認し、そのまま[Enter]。
# ネットワークはクラスCになっているので、普通ならそのままで良いはず。
# 環境が異なるなら修正する。これは、上記と合わせて/etc/avmailgate.aclに設定されるので後で修正可。
Enter the hosts and networks that are allowed to relay:
[127.0.0.1/8 192.168.0.0/16]: [Enter]

Installing config file /etc/avmailgate.acl

Installing start/stop script for a Redhat System

# AvMailGateを自動起動するか聞いてくるので、[y] [Enter]と入力。
Would you like AvMailGate to start automatically? [n] y [Enter]

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

# MailGateのGUIサポートをインストールするかどうか聞いてくるので、とりあえずそのまま[Enter]と入力。(動かしたことはないので詳細不明)
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".


■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. ウイルス検出等のメールを root 以外で受けたければ、 /etc/antivir.conf を編集する。

    #EmailTo root@localhost
    EmailTo oyaji@localhost

  6. メールで送られてきたライセンスキー (hbedv.key) を、/usr/lib/AntiVirにコピーし、オーナを変更する。その後、起動スクリプトをコピーし再起動する。このとき、「Warning: the file "antivir.vdf" is more than 14 days old」と警告が出ることがあるので、「Enter」して次項でアップデートする。次項は警告が出なくても実施すること。

    # cp hbedv.key /usr/lib/AntiVir/hbedv.key
    # chown uucp:antivir /usr/lib/AntiVir/hbedv.key
    # cp avmailgate/init/rc.avgate.redhat /etc/init.d/avgate
    # chmod 755 /etc/init.d/avgate
    # chkconfig avgete on
    # /etc/init.d/avgate restart

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

    # /usr/lib/AntiVir/antivir --update
    AntiVir / Linux Version 2.1.3-16 +gui
    Copyright (c) 1994-2005 by H+BEDV Datentechnik GmbH.
    All rights reserved.

    Warning: the file "antivir.vdf" is more than 14 days old
    checking for updates

    06.30.00.03 <=> 06.30.00.73 [vdf database, loaded]
    06.30.00.03 <=> 06.30.00.73 [vdf database, on-disk]
    06.30.00.02 <=> 06.30.00.07 [scan engine, running]
    06.30.00.02 <=> 06.30.00.07 [scan engine, on-disk]
    antivir.vdf 100% |*************************************| 2890 KB 222.34 KB/s 0:00 ETA
    antivir 100% |*****************************************| 497 KB 165.70 KB/s 0:00 ETA
    06.30.00.73 <=> 06.30.00.73 [vdf database, on-disk]
    06.30.00.07 <=> 06.30.00.07 [scan engine, on-disk]

    scan engine 06.30.00.02 --> 06.30.00.07 (/usr/lib/AntiVir/antivir)
    vdf database 06.30.00.03 --> 06.30.00.73 (/usr/lib/AntiVir/antivir.vdf)

    AntiVir updated successfully

    上記のように更新により、スキャンエンジンとパターンファイルが更新され、syslog には reloaded AntiVir mail scanner successfullyと出力されており、自動で kill-HUP してくれる。

  8. 以前は、crontabに下記のような自動更新の設定がインストールされていたが、最近の版数では avgate起動時にavupdaterが起動され、一日に一回更新をチェックするように変更になっている。細かく更新チェックするようには、以前のようにcrantabに下記のような設定を書けば一時間に一回更新チェックできる。サーバ負荷にになるのでほどほどに。

    # update every day on 0:23:
    23 * * * * root /usr/lib/Antivir/antivir --update -q

■動作の確認

ここで、テストメールを送受信し、プロパティでAntiVir MailGate が動作しているか確認してみよう。以下は、おやじがテストしたメールの例です。
 Subject: test (antivir)
 To: =?iso-2022-jp?B?GyRCJCokZCQ4GyhC?= <oyaji@server.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



Topページへ