今回から、実際に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
インストールに必要なファイルを揃えた後、各ファイルをインストールし設定を実施します。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デーモンの基本動作と、その詳細なパラメータについて解説します。
「Postfixを使ったメールサーバの構築」
Linuxディストリビューション「CentOS5.3」がインストールされたサーバに、Postfixをインストールしメールサーバを構築する方法を解説します。操作は管理者権限で行います。
yumコマンドを使ってPostfixをオンラインインストールします。続いてalternativesコマンドでシステムのデフォルトMTAをSendmailからPostfixに変更します。
# yum install postfix
# /usr/sbin/alternatives --config mta
2 プログラムがあり 'mta' を提供します。
選択 コマンド
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail
2 /usr/sbin/sendmail.postfix
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2 <--ここで「2」を入力
Postfixの設定は「/etc/postfix/main.cf」ファイルで行います。次のサンプルを参考に各サイトの構成にあわせ修正します。
# ホスト名(FQDN)の指定
myhostname = mail.example.jp
...
# ドメインの指定
mydomain = example.jp
...
# 送信元アドレスとして使用するアドレス形式の指定
# foo@mail.examle.jpなら「myorigin = $myhostname」
# foo@examle.jpなら下のとおり。
myorigin = $mydomain
...
# メールを受け付けるネットワークインターフェースの指定
# デフォルトの「localhost」ではローカルのみで外部ネットからの配信を受け付けない。
# このパラメータを変更した場合、「# postfix reload」ではなく、stopの後startする必要がある。
inet_interfaces = all
...
# 配送を受け付けるアドレス。ユーザのアドレスとしてローカル配信を行う。
#「$myhostname」はfoo@mail.example.jp
#「localhost.$mydomain」はfoo@localhost.example.jp
#「localhost」はfoo@localhost
#「$mydomain」はfoo@example.jp
# foo@www.example.jpのようなアドレスも受け付けるようにするには「www.$mydomain」のように指定する。
# 複数列挙する場合には「,」で区切る。
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
...
# メールリレーを無条件に許可するMTAやMUA(メールクライアント)のIPアドレスを指定
# 信頼する全てのネットワークを列挙する
mynetworks = 192.168.0.0/16, 127.0.0.0/8
...
# ユーザのメールボックス形式の指定
# デフォルトはmbox形式。Maildir形式を指定する場合、末尾に「/」を付ける
home_mailbox = Maildir/
...
設定完了後、Postfixを起動します。なおSendmailなど他のMTAが既に起動している場合には、先に停止さえておきます。
# /etc/init.d/postfix start
postfix を起動中: [ OK ]
動作を確認するため、次のようにテストメールを「foo@example.com」当てに配送します。メールアドレスは適宜変更します。
# echo "TEST OK" | mail -s "TESTING" foo@example.com