SpamAssassinの基本設定

設定ファイル

設定ファイルの場所

SpamAssassinの標準的な設定ファイル用のディレクトリは/etc/mail/spamassassinです。
このディレクトリにある拡張子がcfのファイルが設定ファイルで、拡張子がpreのファイルはプラグインの制御ファイルです。
local.cfというファイルが標準で配置されています。

また、設定ファイル中にincludeオプションを使うことで別の設定ファイルを読み込ませることもできます。

筆者のお薦めの配置方法

設定やテストのルールをすべてlocal.cfに記述すると管理しにくくなります。そのため、次の表のようにsiteディレクトリを作成し、その中にルールファイルを用途毎やプラグイン毎に作成します。

設定ファイル 説明
/etc/mail/spamassassin/local.cf 設定オプションのみのファイル
/etc/mail/spamassassin/site.cf includeオプションのみのファイル
/etc/mail/spamassassin/site/*.cf site.cfにより読み込まれるファイル

さらにsite.cfファイルを作成し、次のようにincludeオプションでそれらのファイルを指定します。

include site/head_tests.cf
include site/scores.cf
include site/relaycountry.cf

local.cfには設定オプションのみを記述します。

必要最小限の設定

SpamAssassinには多くの設定オプションがあります。しかし、以下に述べる必要最小限の設定をサイトのルールファイルlocal.cfに記述すれば問題なく使えます。この後はお好みの設定を追加してください。

スコアオプション

スパムと判断するために必要なスコアを"required_score"に設定します。デフォルトの設定値は5.0になっていますが、運用当初は次の設定のように大きめに設定した方がよいでしょう。

required_score 8.0

ベイズフィルタの効果が出始めたら、required_scoreの値を6.0〜7.0に近づけるように少しずつ下げてください。
詳しくは「スコア調整」を参照してください。

メールの書き換え

デフォルトではスパムと判断されたメッセージはレポートメッセージに加工されてしまいます。これを防ぎたいときには次の設定を行います。

report_safe 0

spamと判定されたときにヘッダを書き換えたいときには次のような設定を行います。

rewrite_header Subject    *****SPAM*****

日本語対応

次の設定を行います。

normalize_charset 1

ネットワークの設定

ネットワークテストで正しい判断を行うためには、信頼できるネットワークを設定する必要があります。

trusted_networks 192.0.2.0/24
internal_networks 192.0.2.0/24
msa_networks 192.0.2.0/24

なお、127.0.0.1や::1は暗黙的に設定されるため、設定を記述する必要はありません。

ベイズ学習オプション

ベイズのデータベースはデフォルトではユーザ毎に作られますが、MTAと連携する場合やサイト共通のベイズのデータベースを利用したい場合は次のような設定を行います。

bayes_path /var/spool/spamassassin/bayes
bayes_file_mode 0666

ルールの修正

日本語を扱う場合には、デフォルトのルールの設定では少し問題が生じます。そのため、以下のようなルールの再定義を行う必要があります。

# 日本人からのメールを受け取る場合
meta FROM_EXCESS_BASE64  0
# 本文の文字エンコーディングがUTF-8のメールを許容する場合
meta MIME_BASE64_TEXT      0
# スペースを多用する署名を許容する場合
meta TVD_SPACE_RATIO 0

MIMEエンコードしていないISO-2022-JPのSubjectを許容する場合はさらに次の設定を行ってください。

meta SUBJ_ILLEGAL_CHARS 0
meta SUBJECT_NEEDS_ENCODING 0

プラグインの設定

プラグインの制御

プラグインをロードするためにはloadpluginオプションを使い、次の書式で記述します。
標準のプラグインでない場合は2行目のようにパスを指定します。

loadplugin プラグインモジュール名
loadplugin プラグインモジュール名 /パス/モジュール.pm

SpamAssassinに同梱されているプラグインの制御ファイルは標準では/etc/mail/spamassassinにインストールされます。制御ファイルのファイル名はプラグインが導入されたバージョン毎に異なり、次のようになっています。

init.pre 3.1.0より前に導入されたプラグイン
v310.pre 3.1.0で導入されたプラグイン
v312.pre 3.1.2で導入されたプラグイン
v320.pre 3.2.0で導入されたプラグイン
v330.pre 3.3.0で導入されたプラグイン
v340.pre 3.4.0で導入されたプラグイン

それぞれのファイルで次の例のようにプラグイン毎にloadpluginオプションが記述されています。

loadplugin Mail::SpamAssassin::Plugin::TextCat

プラグインによってはコメントアウトされていて無効になっているものもあります。有効にする場合は行頭の#を削除してください。

設定ファイルの検証

設定ファイル等を変更した場合は、必ず次のコマンドを実行してください。

$ spamassassin --lint

何も出力がなければ問題はないです。設定ファイルの記述に間違いがある場合はエラーが出ます。