自宅メールサーバでは、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