送信ドメイン認証DMARCとは?DMARC対応。
SPFとDKIMは対応済みでDMARCは導入しなくてもいいかなと思っていたけれど、ARC(Authenticated Received Chain)を導入するついでにやってしまおうと調査しているときの覚書。
環境: CentOS Stream 9, Postfix 3.5.9, OpenDMARC
1.DMARCとは?
DMARCはDomain-based Message Authentication, Reporting and Conformanceの略。
メールヘッダーのFROMとSPF/DKIMから送信者ドメインを検証する仕組み。
DMARCをpassしていれば送信者ドメインが管理下にあることを証明できる。
SPFとDKIMだけでは、両方passする偽装メールは可能らしい。
参考: DMARCの認証ってSPFやDKIMと何が違うんですか?を説明してみる。|藤田紀行(株式会社WOW WORLD CTO)|note
また自社になりすました(可能性のある)メールのレポートを受け取ることができる。
ドメイン管理者がなりすまし状況を認識しセキュリティ意識を高めることに繋がる。
メール送信するだけならDNSのtxtレコードにdmarc用の記述するだけでOK.
参考サイト
- ドメイン認証技術「DMARC」について - Yahoo!メール
- DMARC を使用してなりすましと迷惑メールを防止する - Google Workspace 管理者 ヘルプ
- FAQ - DMARC Wiki
メール転送やメーリングリストを運用している場合は、転送先でSPFとDKIMの検証に失敗する可能性があるので、ARC(Authenticated Received Chain)も対応が必要。
2.DMARCレコードをDNSに記述
SPFとDKIMを導入済みであれば、DMARCレコードをDNSに追加するだけで対応完了。
value domainなら下記のように_dmarcサブドメインにtxt行を指定する。
txt _dmarc v=DMARC1; p=none; rua=mailto:hoge@gmail.com
各意味は下記サイトを参考に。
- Overview – dmarc.org
- DMARC を使用してメールを検証する、セットアップ手順 - Office 365 | Microsoft Learn
- DMARC レコードの追加 - Google Workspace 管理者 ヘルプ
nslookupで確認してから外部サーバーからメール送信してみる。
# sendmail hoge@outlook.com
Microsoft 365のアカウントに送信すれば「dmarc=pass」「dmarc=bestguesspass」が挿入されるので、TXTレコードを参照できているか確認することができる。
参考: スパム対策メッセージ ヘッダー - Office 365 | Microsoft Learn
確認できたら検疫モード(quarantine)にしておく。
txt _dmarc v=DMARC1; p=quarantine; rua=mailto:hoge@gmail.com