電子メールで送りつけられるウイルスはいつも新種か新亜種です。
既存のウイルススキャナは、新種のウイルスが見つかってから、そのワクチンを作ります。
わたしたちは配布されたワクチンでウイルスを駆除するわけです。
メールで大規模に新種のウイルスがばらまかれると、このスキームでは対処できません。
メールの場合は、ウイルスソフトよりSpam駆除ソフトでの対策に重きを置くべきでしょう。
そこでSpamAssassinの設定をしれらべているのですが、一筋縄ではいきません。
今回は基本中の基本、設定ファイルの読み込み順序について探ります。
SpamAssassinは、あとから読み込むファイルの設定が、既存のルールを上書きする。
それでは、設定ファイルの読み込み順序はどうなっているのか?
ネットを探してみましたが、信頼できそうな情報が得られません。
わたしがよくお世話になる、このサイト
が一番わかりやすくて信用できると思います。
SpamAssassinの設定についてはここをソースにしてきたんですが、もう一歩踏み込んでみました。
そこで、
perldoc Mail::SpamAssassin::Conf
を調べてみるものの、読み込み順序についての情報は得られませんでした。
もしやと思い立って、
$ man spamassassin
と打ってみると、ありました。
遠くのマニュアルより近くのマニュアルですね。
その内容は以下のとおりです。
SpamAssassinのマニュアルによると、
デフォルトの設定データは、次の場所にある最初の既存のディレクトリからロードされます。 /var/lib/spamassassin/3.004002 /usr/share/spamassassin /usr/share/spamassassin /usr/local/share/spamassassin /usr/share/spamassassin
わたしの環境では、
/var/lib/spamassassin/3.004002
が存在するので、これを読み込んで、デフォルトの設定とします。
/usr/share/spamassassin
がどうして2行あるのかわかりませんが、ここからファイルは読み込まないということがわかりました。
つづいて、
サイト固有の設定データは、すでに設定されている値を上書きするために使用されます。 これは、次の場所にある最初の既存のディレクトリからロードされます。 /etc/spamassassin /usr/etc/mail/spamassassin /usr/etc/spamassassin /usr/local/etc/spamassassin /usr/pkg/etc/spamassassin /usr/etc/spamassassin /etc/mail/spamassassin /etc/spamassassin
わたしの環境では/etc/spamassassinが存在するので、このディレクトリ内の設定を読み込んで終わり。その他の設定は読み込みません。
ここでも/etc/spamassassinが最初と最後に出てきていたり、同じディレクトリが重複しますが、その順序で検索するということでしょう。
最後に、
個々のユーザー設定は、 "spamassassin"、 "sa-learn"、または "spamd"コマンドラインで指定された場所からロードされます(詳細はそれぞれのマニュアルページを参照してください)。 場所が指定されていない場合は、~/.spamassassin/user_prefsが存在する場合はそれが使用されます。 ~/.spamassassin/user_prefsが存在しない場合はSpamAssassinは、user_prefs.templateをテンプレートとして使用して、~/.spamassassin/user_prefsファイルを作成します。user_prefs.templateファイルは次の場所で検索されます。 /etc/spamassassin /usr/etc/mail/spamassassin /usr/share/spamassassin /etc/spamassassin /etc/mail/spamassassin /usr/local/share/spamassassin /usr/share/spamassassin
わたしの環境では/usr/share/spamassassin/にuser_prefs.templateがありました。
user_prefs.templateの設定情報は全てコメント化されていて、有効になっている設定はありませんでした。
これが、/home/username/.spamassassin/user_prefsにコピーされるので、それを編集して個人設定ファイルとします。
これら3つのディレクトリから、SpamAssassinは最初に ".pre"で終わるファイルを語彙順(アルファベット順)に読み込み、次に ".cf"で終わるファイルを語彙順に読み込みます。 ほとんどのファイルはソート順を明確にするために2つの数字で始まります。
以上のことをわたしの環境でまとめると、
基本設定は
/var/lib/spamassassin/3.004002
/etc/spamassassin
でサイト全体のために、基本設定を上書き変更
~/.spamassassin/user_prefs
で各ユーザー用にサイト全体の設定を上書き変更
のようになっているわけです。
これまでの思い込みとだいぶ違ってました。
マニュアルは重要だと痛感します。