ホーム » コンピュータ » Linux » dmarc=fail p=none の受け取り拒否

dmarc=fail p=none の受け取り拒否

自宅メールサーバでは、Postfix + Postgrey + amavisd + OpenDMARC + Spamassassin で運用しているが、
From 偽装は OpenDMARC で reject などができるようになった。

しかしながら、spammer は dmarc=fail 判定されても相手にメールが届くようにするため、ポリシー p=none のドメイン名探し、そのドメイン名を From にして、しつこく何度も送ってくる。

特定ドメインの dmarc=fail, p=none は受け取り拒否

しかたがないので、Postfix の OpenDMARC判定後に Postfix の header_checks の機能で p=none で送られてきたドメインは REJECT するようにしてみた。

((( /etc/postfix/main.cf )))
header_checks = regexp:/etc/postfix/header_checks

((( /etc/postfix/header_checks )))
/^Authentication-Results:.*dmarc=fail.*p=none.*header\.from=monex\.com/ \
        REJECT DMARC authentication failed for specific domain.

spammerは怪しいドメインを次々みつけてくる

header_checks で運用してたけど、spammer は次々と怪しいドメイン(p=noneのドメイン)を見つけてきて、すり抜けてくるメールを送ってくる。このままじゃ、header_checks ファイルを日々更新することになりそう。

しかたがないので、dmarc=fail, p=none は SpamAssassin で Spam スコアを上げて、迷惑メールに確実に落とすことを目標にしたほうが良さそう。

((( /etc/spamassassin/local.cf の末尾に追記 )))
# DMARC失敗 (p=none) を検知するルール
header   LOCAL_DMARC_FAIL_NONE  Authentication-Results =~ /dmarc=fail \(p=none/
describe LOCAL_DMARC_FAIL_NONE  DMARC validation failed with p=none
score    LOCAL_DMARC_FAIL_NONE  3.5

# (参考) DMARC失敗 (p=quarantine) の場合もスコアを上げたい場合
header   LOCAL_DMARC_FAIL_QUAR  Authentication-Results =~ /dmarc=fail \(p=quarantine/
describe LOCAL_DMARC_FAIL_QUAR  DMARC validation failed with p=quarantine
score    LOCAL_DMARC_FAIL_QUAR  5.0