システム管理者のためのメールサーバ運用管理のポイント

第2回Dr.Webを使った迷惑メール・ウィルスメール対策の実装方法

今回から、実際にDr.Web for Linux/FreeBSD/Solaris(x86)を使ったメールサーバ運用管理の方法を紹介します。まずは準備となる実装方法について解説します。

はじめに

Dr.Web for Linux/FreeBSD/Solaris(x86)(以降、単にDr.Web)を使った、迷惑メール・ウィルスメール対策の実装方法を紹介します。Dr.Web for LinuxはFedora・CentOS・Red Hatで採用されている「RPMパッケージ」を使ったインストールにも、Debian・Ubuntuで採用されている「debパッケージ」を使ったインストールにも対応しています。またSendmail・Postfix・qmail・eximと、現在使用されている主なMTAに対応しています。今回CentOS 5.3にインストールされたPostfixをプラットフォームに取り上げ、実装方法を紹介しますが、Dr.Webには詳細なドキュメントが付属しているため、導入で行き詰まることはありません。

インストールの概要

インストール手順は次のとおりです。インストールの前に、2ヵ月間無償で使用できるトライアルキーを入手しておきます。トライアルキーはネットフォレスト社のホームページから申し込めます。

  • 1)ネットフォレスト社のサイトでトライアル申し込み

  • 2)メールでトライアルキーの受け取り

  • 3)メールで提示されたURLからファイルのダウンロード

    今回のプラットフォーム(CentOS5.3+Postfix)で使用したファイル

    • drweb-base-4.44.1-1.i386.rpm
    • drweb-updater-4.44.1-1.i386.rpm
    • drweb-daemon-4.44.1-1.i386.rpm
    • drweb-maild-postfix-4.44.3-jp-glibc2.5.tar.bz2
    • drweb-maild-plugin-drweb-4.44.3-jp-glibc2.5.tar.bz2
    • drweb-maild-plugin-headersfilter-4.44.3-jp-glibc2.5.tar.bz2
    • drweb-maild-plugin-vaderetro-4.44.3-jp-glibc2.5.tar.bz2
    ファイル名は2009年6月末時点のものです)

    インストールに必要なファイルを揃えた後、各ファイルをインストールし設定を実施します。PostfixやSendmailなどのMTAがすでにインストールされ、起動しているものとします。MTAの用意が出来ていない場合は、後述の「Postfixを使ったメールサーバの構築」などを参考に、メールサーバを用意します。

    迷惑メール・ウィルスメール対策を実装するには「Dr.Webデーモン」「Dr.Webメールデーモン」をそれぞれインストールします。⁠Dr.Webデーモン」はウイルの検査や検疫を実行するためのプロセスで、TCP/IPソケットまたは UNIXソケットで検査要求を待ち受けます。検査要求は「Dr.Webメールデーモン」とMTAに組み込まれた各プラグインが行います。

  • 4)Dr.Webデーモンの導入

  • 5)Dr.Webメールデーモンの導入

  • 6)動作テスト

Dr.Webデーモンの導入

Dr.Webデーモンはパッケージ管理ツールでインストールが可能です。今回例として取り上げたCentOSではRPMを使ってインストールを実行できます。以降のインストール操作は管理者権限で実行します。

# rpm -ivh drweb-base-4.44.1-1.i386.rpm
# rpm -ivh drweb-updater-4.44.1-1.i386.rpm
# rpm -ivh drweb-daemon-4.44.1-1.i386.rpm
(※ファイル名は2009年6月末時点のものです)

次に、無償トライアルを申し込んだ際に送付されてきたライセンスキーファイル「drweb32.key」を組み込みます。組み込みではファイルを所定のディレクトリにコピーし、Dr.Webデーモンを実行するユーザ「drweb」の権限で読めるよう、ファイルのオーナー情報を修正します。

# mv drweb32.key /opt/drweb/
# chown drweb.drweb /opt/drweb/drweb32.key

パッケージを使ったインストールでは。ウイルス定義ファイルを定期的に更新するようcrontabが設定されます。定義ファイルの更新はDr.Webデーモンを実行するユーザ「drweb」の権限で実行されます。

# crontab -u drweb -l
9,39    *       *       *       *       /opt/drweb/update.pl
(crontabの設定内容を確認)

Dr.Webデーモンのインストールは以上です。デーモンはサーバ起動とともにに自動起動しますが、初回インストール時は、次のように手動で起動します。

# /etc/init.d/drwebd start

ウィルス定義ファイルを更新するようcrontabが設定されており、30分以内に定義ファイルがアップデートされますが、すぐに最新の状態にするには、初回のみ手動で更新用スクリプトを実行します。

# su -m drweb -c /opt/drweb/update.pl

Dr.Webデーモンの動作を確認するため、サンプル検体を使って、ウィルスの検知が行われるかテストします。下の例ではトレンドマイクロ社が提供している検体を使用していますが、他にもhttps://secure.eicar.org/eicar.comなどからダウンロードしたものも使用できます。これらの検体はウィルスとして検知されますが、実際は無害です。

# cd /tmp(作業ディレクトリの移動)
# wget http://www.trendmicro.com/ftp/products/eicar-file/eicar.com(サンプル検体のダウンロード)


# /opt/drweb/drwebdc -rv -rr -f eicar.com	(ウィルス検索の手動実行)
Results: daemon return code 0x20 (known virus is found)
----- Dr.Web report begin -----
127.0.0.1 [3979] eicar.com infected with EICAR Test File (NOT a Virus!)		<--動作状況
----- Dr.Web report end -----
----- Dr.Web found viruses list begin -----
Known virus(es):
 EICAR Test File (NOT a Virus!)												<--ウィルスに関する情報
----- Dr.Web found viruses list end -----

/opt/drweb/drwebdcコマンドで指定したオプション
	-rv:ウィルス名を表示
	-rr:レポートを表示
	-f :検査対象ファイルのパスを指定

Dr.Webメールデーモンの導入

続いてDr.Webメールデーモンを導入します。Dr.Webメールデーモンのインストールファイルはtarでアーカイブされ、パッケージ管理ツールが使用できないため、手動インストールを実行します。それにはアーカイブを展開し、用意されたインストールスクリプトを実行します。

# tar xpvfj drweb-maild-postfix-4.44.3-jp-glibc2.5.tar.bz2
(※ファイル名は2009年6月末時点のものです)
# cd drweb-maild-postfix-4.44.3-jp-glibc2.5
# ./install.sh

install.shを実行すると、対話形式で設定内容を入力します。主な入力内容は次のとおりです。皆さんの環境にあわせ適宜変更します。

通知メールの宛先・管理者のメールアドレスpostmaster@example.jp
通知メールの送信者に使用するメールアドレスDrWEB-MAIL-DAEMON@localhost
保護するネットワーク127.0.0.0/8(デフォルトのまま)
保護するドメインlocalhost(デフォルトのまま)
通知やレポートで使用する言語ja
メールを並列処理する最大数10(デフォルトのまま)

以上の操作で、Postfixの設定ファイル「/etc/postfix/main.cf」「/etc/postfix/master.cf」に、Dr.Webメールデーモンと連携するための設定が自動で追加されます。

リスト /etc/postfix/main.cfに追加されるコンテンツフィルタ
######################################
### ADDED BY MAILD-POSTFIX INSTALL ###
######################################
content_filter = scan:127.0.0.1:8025
receive_override_options = no_address_mappings
リスト /etc/postfix/master.cfに追加されるコンテンツフィルター
######################################
### ADDED BY MAILD-POSTFIX INSTALL ###
######################################
scan      unix  -       -       n       -      10    smtp
            -o smtp_send_xforward_command=yes
127.0.0.1:8026 inet  n       -       n       -       10      smtpd
            -o content_filter=
            -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
            -o smtpd_helo_restrictions=
            -o smtpd_client_restrictions=
            -o smtpd_sender_restrictions=
            -o smtpd_recipient_restrictions=permit_mynetworks,reject
            -o mynetworks=127.0.0.0/8
            -o smtpd_authorized_xforward_hosts=127.0.0.0/8

続けて「アンチウィルスプラグイン」⁠ヘッダフィルタプラグイン」⁠アンチスパムプラグイン」といった3種類のプラグインをインストールします。

プラグインのインストール1 アンチウィルスプラグイン
# tar xpvfj drweb-maild-plugin-drweb-4.44.3-jp-glibc2.5.tar.bz2
# cd drweb-maild-plugin-drweb-4.44.3-jp-glibc2.5
#  ./install.sh
(対話形式で設定内容を入力しますが、問い合わせには全てデフォルトのままとしエンターをタイプします。)
プラグインのインストール2 ヘッダフィルタプラグイン
# tar xpvfj drweb-maild-plugin-headersfilter-4.44.3-jp-glibc2.5.tar.bz2
# cd drweb-maild-plugin-headersfilter-4.44.3-jp-glibc2.5
# ./install.sh
(対話形式で設定内容を入力しますが、問い合わせには全てデフォルトのままとしエンターをタイプしますが、最後の「Add plugin to BeforeQueueFilters:...」では「1」を入力します。)
プラグインのインストール3 アンチスパムプラグイン
# tar xpvfj drweb-maild-plugin-vaderetro-4.44.3-jp-glibc2.5.tar.bz2
# cd drweb-maild-plugin-vaderetro-4.44.3-jp-glibc2.5
#  ./install.sh
(対話形式で設定内容を入力しますが、問い合わせには全てデフォルトのままとしエンターをタイプしますが、最後の「Add plugin to BeforeQueueFilters:...」では「1」を入力します。)

Dr.Webメールデーモンのインストールは以上です、Postfixのプロセス再起動とDr.Webメールデーモンのプロセス起動を実行し、動作確認テストを行います。

postfix再起動
# /etc/init.d/postfix restart
メールデーモンの起動
# /etc/init.d/drweb-monitor start

動作テスト

Dr.Webメールデーモンの動作テストを行います。前半でDr.Webデーモンのテストを紹介しましたが、先にそちらを完了し問題なく動作できていることを確認しておきます。なおDr.Webデーモンのテストに利用したサンプル検体ファイル「eicar.com」を今回のDr.Webメールデーモンのテストにも利用します。

最初にMTAが正常に動作していることを次のように確認します。宛先は適宜変更します。

正常なメールのテスト
# echo "TEST OK" | mail -s "TESTING" foo@example.jp

次に、サンプル検体ファイル「eicar.com」を使ったウィルスファイル付きメールを送信します。ウィルスに冒されたメールが届いていることを、宛先のアドレスに通知されればインストール成功です。

ウィルスメール検知テスト
# cat eicar.com | mail -s "TESTING" foo@example.jp
リスト ウィルスメールが届いた場合のメール
Return-Path: <DrWEB-MAIL-DAEMON@localhost.example.jp>
...
From: "DrWeb-DAEMON" <DrWEB-MAIL-DAEMON@localhost.example.jp>
To: foo@example.jp
Subject: Undelivered mail: TESTING
Content-Type: multipart/mixed;
 boundary="001-DrWeb-MailFilter-Notification"
MIME-Version: 1.0
Precedence: junk
X-Antivirus-Ticket: Dr.Web notification.
Message-Id: <20090703060143.B0E0C1A381@mail.example.jp>
Date: Fri,  3 Jul 2009 15:01:43 +0900 (JST)

--001-DrWeb-MailFilter-Notification
Content-Type: text/plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

メール受信者の方へ,

あなた宛に root@example.jp (虚偽の可能性あり)から送られた
以下のメールは、感染オブジェクトを含んでいたために配信されませんでした.

受信者   = foo@example.jp
件 名   = TESTING
Message-ID = <20090703060143.2B9AA1A37F@mail.example.jp>

--- Dr.Web report ---
以下のウィルスが検出されました:
EICAR Test File (NOT a Virus!)


検査の詳細:
[3971] /var/drweb/msgs/in/4/00000004/.body infected with EICAR Test File (NOT a Virus!)

検査の統計:
Known viruses:  1

おわりに

Dr.Web for Linunの実装方法を簡単に紹介しました。インストールにはパッケージ管理ツールが使えるなどいたって簡単です。また動作させるための設定も、対話形式で進められ、そのほとんどがデフォルトのまま使用できるなど、すぐに使用を開始できます。次回はあらためてDr.Webデーモンの基本動作と、その詳細なパラメータについて解説します。

おすすめ記事

記事・ニュース一覧