Whitelist module (Rspamd)

提供: First Wiki
ナビゲーションに移動 検索に移動

ホワイトリストモジュールは、DKIM/SPF/DMARC ポリシーに基づき信頼できる送信元からのメッセージに対してスコアを調整(増減)することを目的としています(汎用リストには multimap module (Rspamd) をご利用ください)。

本モジュールが存在するのは、SMTP プロトコルの設計上の欠陥により送信者偽装が比較的容易であるためです。このため rspamd は、以下の補助ポリシーを考慮して送信者の真正性を検証します:

  • DKIM: メッセージが当該ドメインの有効な DKIM 署名を持つこと(DMARC アラインメントに類似するがDKIM専用)
  • SPF: メッセージがドメインの SPF レコードと一致すること
  • DMARC: メッセージがドメインの DMARC ポリシーを満たすこと(DMARC 標準に従い、整合性のある SPF または DKIM を意味する)

ホワイトリストの設定

ホワイトリストの設定は簡単でわかりやすいプロセスです。 ルールセクション内で、一連のルールを定義できます。 各ルールにはドメイン属性を必ず含める必要があり、これはドメインのマップを表す文字列として定義するか、ドメインを直接列挙した配列として定義できます。

ホワイトリスト制約

以下の制約が許可されます:

  • valid_spf: 有効な SPF ポリシーを要求
  • valid_dkim: DKIM 検証を要求
  • valid_dmarc: 有効な DMARC ポリシーを要求

ホワイトリスト規則のモード

各ホワイトリスト規則は3つのモードで動作します:

  • whitelist (既定値):ドメインが検出され、定義された制約のいずれかが満たされた場合に記号を追加(例:valid_dmarc)
  • blacklist: ドメインが検出され、定義された制約のいずれかが満たされない場合にシンボルを追加(例: valid_dmarc)
  • strict: ドメインが検出され、定義された制約のいずれかが満たされる場合に負のスコア(ham)でシンボルを追加(例: valid_dmarc)、定義された制約のいずれかが満たされない場合に正のスコア(spam)でシンボルを追加

制約が定義されていない場合、strict ルールと whitelist ルールは指定されたドメインからの全メールに適用されます。 blacklist ルールでは、通常結果に正のスコアが割り当てられます。

これらのオプションは、whitelist ルールではAND演算子で、blacklist および strict ルールでは OR 演算子で結合されます。 したがって、valid_dkim = true と valid_spf = true の両方が指定されている場合、リストからドメインをホワイトリスト登録するには DKIM と SPF の両方の検証が必須となります。 逆に、blacklist および strict ルールでは、いずれかの違反が発生すると正のスコア記号が割り当てられます。

ホワイトリストの値

マップ内では、各ホワイトリストエントリに値の上書きを設定でき、デフォルトのルールポリシーを変更したりスコア乗数を調整したりできます。 これにより、DMARC 用のホワイトリストを作成しつつ、特定のエントリには厳格なポリシーを適用し、DMARC ポリシー違反時にスパムマークを付与することが可能です。 これを実現するには、マップ内で以下の値を利用できます:

example.com # normal whitelist entry: whitelisting on hit, nothing on no hit
bank.com both:1.0 # strict whitelist entry: spam symbol on policy failure and ham symbol on policy success
foo.com both:2.0 # same as previous but with 2.0 multiplier for score
bar.com bl:1.0 # add spam symbol on failure but do not enable ham symbol on success
baz.com wl:2.0 # vice-versa - return to the normal behaviour but with 2.0 multiplier for policy success

Rspamdに同梱されているマップは、以下のリポジトリでも確認できます: https://github.com/rspamd/maps/ 合理的なプルリクエストはいつでも歓迎します。

オプション設定

通常の属性を使用してデフォルトのメトリック設定を指定することも可能です。例:

  • score: デフォルトのスコア
  • group: デフォルトのグループ(明示的に指定しない場合はホワイトリストグループが使用されます)
  • one_shot: デフォルトのワンショットモード
  • description: デフォルトの説明

リスト内で、オプションの乗数引数を指定することも可能です。 これは、このモジュールによって割り当てられるスコアに対する追加の乗数を指定します。 例えば、github.com に2倍のスコアを割り当てたい場合、以下のように定義できます:

["github.com", 2.0]

またはマップを使用する場合:

github.com 2.0

DKIM ホワイトリストに関する注意事項

valid_dkim = true のチェックは、単に R_DKIM_ALLOW のトリガーを検証するだけにとどまりません。 検証対象の DKIM ドメインが FROM エンベロープ内のドメインと一致することも保証します。 したがって、送信元ドメインが x.com であるメッセージが mailchimp.app によって DKIM 署名されている場合、valid_dkim フラグは true に設定されず、ホワイトリストルールはトリガーされません。

設定例

whitelist {
    rules {
        WHITELIST_SPF = {
            valid_spf = true;
            domains = [
                "github.com",
            ];
            score = -1.0;
        }

        WHITELIST_DKIM = {
            valid_dkim = true;
            domains = [
                "github.com",
            ];
            score = -2.0;
        }

        WHITELIST_SPF_DKIM = {
            valid_spf = true;
            valid_dkim = true;
            domains = [
                ["github.com", 2.0],
            ];
            score = -3.0;
        }

        STRICT_SPF_DKIM = {
            valid_spf = true;
            valid_dkim = true;
            strict = true;
            domains = [
                ["paypal.com", 2.0],
            ];
            score = -3.0; # For strict rules negative score should be defined
        }

        BLACKLIST_DKIM = {
            valid_spf = true;
            valid_dkim = true;
            blacklist = true;
            domains = "/some/file/blacklist_dkim.map";
            score = 3.0; # Note positive score here
        }

        WHITELIST_DMARC_DKIM = {
            valid_dkim = true;
            valid_dmarc = true;
            domains = [
                "github.com",
            ];
            score = -7.0;
        }
    }
}

Rspamdはまた、導入時に役立つ事前定義済みのホワイトリストドメインのコレクションを提供します。