spamassassin

SpamAssassinの設定ファイル読込み順序

投稿日:2019年4月18日 更新日:

電子メールで送りつけられるウイルスはいつも新種か新亜種です。

既存のウイルススキャナは、新種のウイルスが見つかってから、そのワクチンを作ります。
わたしたちは配布されたワクチンでウイルスを駆除するわけです。

メールで大規模に新種のウイルスがばらまかれると、このスキームでは対処できません。

メールの場合は、ウイルスソフトよりSpam駆除ソフトでの対策に重きを置くべきでしょう。

そこでSpamAssassinの設定をしれらべているのですが、一筋縄ではいきません。

今回は基本中の基本、設定ファイルの読み込み順序について探ります。

SpamAssassinは、あとから読み込むファイルの設定が、既存のルールを上書きする。

それでは、設定ファイルの読み込み順序はどうなっているのか?

ネットを探してみましたが、信頼できそうな情報が得られません。

わたしがよくお世話になる、このサイト

ttkzw’s site

が一番わかりやすくて信用できると思います。

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
で各ユーザー用にサイト全体の設定を上書き変更

のようになっているわけです。

これまでの思い込みとだいぶ違ってました。

マニュアルは重要だと痛感します。

このサイトについて


検索

このサイトについて


検索

-spamassassin

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

詐欺メールをブロックする(apple)

Appleの詐欺メイル対策レシピです。 まずは、Apple IDを考えてみます。 正規のメールヘッダを見てみます(nkf出力)。 Received: from mdn-txn-msbadger0901 …

PYZOR_CHECKを無効にする

zipやrarファイルが添付されたメールを警戒して、ルールを作りました。 Trojanメール対策 その1 ところが、他にも危険なファイルがたくさんあります。 ダブルクリックで実行されるファイルの拡張子 …

alias転送されるメールをブロックする

aliasで転送されてくる、 スパムや犯罪被害につながるメールをブロックするレシピです。 以前役員を努めていた団体宛のメールが転送されてくるのです。 現在、その転送は必要なくなったのですが、設定変更が …

SpamAssassinのルールをひとまとめにする

またも誤判定が発生しました。 メールヘッダのレポートは、次のとおりです。 Content analysis details: (6.0 points, 5.0 required) pts rule n …

詐欺メールをブロックする(amazon)

Amazonを騙るメールの件名には、次のようなものがありました。 🔴 Amazon. co. jp にご登録のアカウント(名前、パスワード、その他個人情報)の確認 Amazonアカウントが閉鎖しようと …