システム管理者のためのメールサーバ運用管理のポイント
第3回 Dr.Webメールデーモンのプラグイン
2009年7月27日
メールサーバ, セキュリティ, メールセキュリティ, Dr.Web, プラグイン, フィルタリング
ファイル, Linux, プラグイン, メールデーモン, アドレス, notify
今回はDr.Web for Linux/FreeBSD/Solaris(x86)のフィルタリング設定について解説します。
はじめに
Dr.Web for Linux/FreeBSD/Solaris(x86)(以降,単にDr.Web)を使った,迷惑メール対策を紹介しています。一般的に迷惑メール対策ツールを導入すると,得意先からの重要なメールが取り除かれてしまうなど,フィルタリングが過敏に動作し誤検知を誘発することが希にあります。またフィルタリングするまでもなく,特定送信者からのメールを強制的に排除したい場合があります。そうした事情に合わせ,Dr.Webメールデーモンはフィルタリング方法を変更することができます。
Dr.Webメールデーモンのフィルタリングプロセス
対策方法を説明する前に,Dr.Webメールデーモンのフィルタリングプロセスを理解しておきましょう。Dr.Webメールデーモンには「アンチウィルス・プラグイン」「ヘッダフィルタ・プラグイン」「アンチスパム・プラグイン」といった3種類のプラグインが用意されています。それぞれのプラグインの働きは次のとおりです。
- アンチウィルス・プラグイン
- Dr.Webデーモンと連携し,コンピュータウィルス・ワーム・スパイウェア・アドウェアといったマルウェアを検査することができます。
- ヘッダフィルタ・プラグイン
- メールヘッダや添付ファイルの情報をもとにフィルタリングを実施します。たとえば「Subject」に特定の語彙を含むものや,「From」や「To」に指定されたドメインが使われているもの,添付ファイルに指定された拡張子が使われているものなど,様々な受信拒否条件を設定することができます。
- アンチスパム・プラグイン
- スパムメールを検知し受信を拒否したり,検疫した結果を判定率とあわせメールヘッダに追加します。アンチスパムエンジンには「Vade Retro」が用いられており,ヒューリスティック解析でスパムメールのパターンを予測し検知することができます。
デフォルトで動作するプラグインの指定
3種類すべてのプラグインを稼働させることも,選択したプラグインだけを稼働させることもできます。それには設定ファイルを修正します。本連載では前回までにLinuxディストリビューション・CentOSを例に,MTAとしてPostixがインストールされたメールサーバに,Dr.Web for Linuxを組み込む方法を解説しました。今回も引き続き同様の環境で作業を行うことをにします。
/etc/drweb/maild_postfix.confで設定する
LinuxでPostfixとともにDr.Webメールデーモンを使用している場合,連携するプラグインの選択は「/etc/drweb/maild_postfix.conf」で行います。使用するMTAによって設定ファイルの名称が異なりますが,その他のMTAについても製品付属のドキュメントに詳しく解説されています。
デフォルトの検査方法を見てみると,すべてのプラグインが動作するよう,設定ファイルの「[Rule]セクション」に次のような記載を見つけることができます。
図 デフォルトルールの設定内容
[Rule] # default
...省略...
scan = all
プラグインの指定方法
皆さんの環境に合わせ,利用するプラグイン,利用しないプラグインを指定しましょう。たとえば特定プラグインを使用しない場合や,複数プラグインを組み合わせるには,「:」を使って次のように指定します。
図 動作するプラグインの指定方法
[Rule] # default
...省略...
scan = all:-headersfilter ←ヘッダフィルタ・プラグインを使用しない場合
scan = drweb:vaderetro ←アンチウィルス・プラグインとアンチスパム・プラグインを使用する場合
メールデーモンの再読込
maild_postfix.confの修正内容を反映させるには,メールデーモンの設定再読込を実行します。
図 メールデーモンの設定再読込
# /etc/init.d/drweb-monitor reload
プラグイン名にはそれぞれ,アンチウィルス・プラグインに「drweb」,ヘッダフィルタ・プラグインに「headersfilter」,アンチスパム・プラグインに「vaderetro」を指定します。
通知メールの送信方法の指定
「[Rule]セクション」では,メッセージの検査に使用するプラグインの指定以外に,通知メールの送信方法を指定することもできます。例えばウィルスを検知した際にシステム管理者に通知メールを送信するには次のように指定します。
図 通知メール設定
notify.Virus = allow(admin)
通知メールには下表の8種類が指定できます。
表 指定できる通知メールの種類
| notify.Virus | ウィルスメール検出通知 |
|---|---|
| notify.Cured | メッセージ修復通知 |
| notify.Skip | ファイル検査不可通知 |
| notify.Archive | アーカイブ検査制限抵触通知 |
| notify.Error | エラー発生通知 |
| notify.Rule | ルール制限抵触通知 |
| notify.License | ライセンス制限抵触通知 |
| notify.Malware | マルウェア検出通知 |
通知メールの送信先には「rcpt(メール受信者)」「sender(メール送信者)」「admin(システム管理者)」および,その全員として「any」を指定することができます。それら送信先として通知するには「allow」を,通知を禁止する場合は「block」を指定します。
送信先・受信先アドレスでプラグインルールをカスタマイズする
送信者や受信者ごとに動作するプラグインを指定することもできます。お得意先からのメールを迷惑メールなどと誤検知し受信拒否しないためには,送信者アドレスに対し,プラグインを動作しないよう設定します。設定は先ほど同様「/etc/drweb/maild_postfix.conf」を利用します。メールアドレス単位で設定を行う場合,[Users]セクションを編集します。
送信者アドレスを条件に指定
送信先アドレスを条件にする場合は「Sender:」を,受信先アドレスを条件にする場合は「Rcpr:」を行頭に付加します。メールアドレスでもドメイン名でも指定することができます。ただし「.(ドット)」は「\.」とエスケープします。
図 メールアドレス毎に動作するプラグインを変える
[Users]
...省略...
「example.jp」ドメインからのメールにはアンチスパム・プラグインを使用しない
Sender:@example\.jp scan = all:-vaderetro
「foo@gihyo.jp」宛のメールは,一切検知を行わず,通知メールも送らない
Rcpt:foo@gihyo\.jp scan = no notify=block
同じメールアドレスやドメインに対し,複数のルールが設定されている場合,最初にマッチしたルール以外は適用されません。[Users]セクションで指定されていないアドレスは,[Rule]セクションで設定したデフォルトルールが適用されます。設定を反映させるには,メールデーモンの設定再読込が必要です。
おわりに
今回はDr.Web for Linuxのメールデーモンに付属するプラグインと,その全般的な設定方法を解説しました。次回は各プラグインの設定方法を解説し,さらに細かな条件に合わせた迷惑メール対策の方法を解説します。
システム管理者のためのメールサーバ運用管理のポイント
- 第4回 Dr.Webメールデーモンのプラグイン設定
- 第3回 Dr.Webメールデーモンのプラグイン
- 第2回 Dr.Webを使った迷惑メール・ウィルスメール対策の実装方法
- 第1回 システム管理者の悩み―メールサーバ編


