「2.」の指定は省略することも可能だ。その場合には「サーバ上で何も処理をしない」ことになり、直前で「X-Spam-StatusヘッダがYes」になっていることから、クライアントのメールソフトの振り分け機能を使ってスパムを除去することができる。この方法であれば、スパム排除のためのフィルタ設定をユーザーが理解しておけばよいだけであり、大事なメールが排除されていないかは個人の判断に任せることができるのだ。
ここまでの動きをまとめてみよう。SpamAssassinは、メールサーバソフトやProcmailと連携して、図2のように動作しているのだ。
ここまでに挙げた設定では、メールを受信するたびにSpamAssassinのプロセスが起動することになる。このため、サーバ上でPerlの実行環境にも依存するが、比較的メモリを圧迫し、処理動作が遅くなる。この対策として標準で用意されているのが、「spamd」と呼ばれる専用のデーモンをメモリ常駐させる方法だ。いちいちメール受信のたびにプロセスが起動終了を繰り返さなくてよくなるため、サーバ上の処理でオーバーヘッド軽減に役立つのだ。
すでに説明したように、SpamAssassinは、local.cfファイルやuser_prefsファイルに、スパム判定基準を記述する。このうちlocal.cfファイルは、SpamAssassinの動作に必須だ。
/usr/share/spamassassin/にlocal.cfのサンプルがインストールされるので、それらのうち適当なものを使うことが推奨されている。あるいは、local.cfを作るための自動生成スクリプトを使うのもよいだろう。例えば、「SpamAssassin Configuration Generator」では(関連リンク)、Webページ上でオプション選択をすると、local.cfファイルを自動生成できるのだ。
「SpamAssassin Configuration Generator」で設定できる各項目の意味を表2に示した。ほかにもさまざまな設定が可能だが、通常は標準設定のままで十分だ。なぜならば、SpamAssassinではベイジアンフィルタを使った学習でスパムを判別していくことができるからだ。ベイジアンフィルタについての詳細は、「スパムを見分けるリテラシー」を参考にしてほしい。
表2■SpamAssassinの主な設定オプション
オプション名 | 意味 |
---|---|
require_score | スパムをスコアリング判定したときに、何点を超えたらスパムとして扱うかを規定する。標準値は「5.0」であり、通常は変更する必要はない |
rewrite_header | スパムと判定されたときに、メールの本文を書き換えるかどうかを設定する |
report_safe | 添付ファイルもMIMEデコードしてスパム判定として扱うかどうかを決める |
use_bayes | ベイジアンフィルタを使うかどうかを決める。通常は使うのが好ましい |
bayes_auto_learn | ベイジアンフィルタによる自動学習機能を有効にするかどうかを決める。標準設定では自動学習機能がオンになっている |
skip_rbl_checks | RBL(DNSブラックリスト)を使うかどうかを決める。標準はオンであり、DNSブラックリストに登録されているメールサーバからのメールはスパムとして扱う。DNSへの問い合わせには時間が掛かるため、処理の高速化を考えればオフにすべき設定 |
use_razor2、use_dcc、use_pyzor | それぞれ、Vipul's Razor 2.x、DCC、Pyzorから提供されているアルゴリズム(リンク先は、記事最後の関連リンクで参照)。これらを使ってスパム判定が行える。SpamAssassinではプラグインの機能として提供されるため、通常はそれぞれのプラグインを別途インストールしなければ機能しない |
ok_locales | 特定のロケールではない場合にはスパムとして扱うための設定。標準では「all」になっており、どの言語圏のメールも受け付ける。日本語だけを受け付けるようにすると、システムによるエラーメールなどがスパムとして扱われてしまうため注意が必要 |
ok_languages | メールヘッダだけでなく、本文も判別して言語チェックを行う。ok_localesに関連する |
Copyright © ITmedia, Inc. All Rights Reserved.