OpenDMARC を使う

概要

OpenDMARC はメールヘッダーのDKIM およびSPF の検証結果と送信元ドメインを確認し、詐称が疑われる場合の扱いを送信元ドメインに問い合わせる仕組みです。

OpenDMARC - official

DMARCで詐称メールを排除!簡単な DMARCの設定方法

apt install opendmarc

adduser postfix opendmarc

mkdir -p /var/spool/postfix/opendmarc
chown -R opendmarc.opendmarc /var/spool/postfix/opendmarc

opendmarc.conf

vi /etc/opendmarc.conf

AuthservID mail4-loog

# change socket
Socket local:/var/spool/postfix/opendmarc/opendmarc.sock

# Skip ip address or domain (127.0.0.1, ::1)
IgnoreHosts /etc/opendmarc/ignore.hosts

# SPF 検証済みヘッダーがあっても、SPF を再検証する。
SPFIgnoreResults false

# SPF 検証を行う。
SPFSelfValidate true

# DMARC 検証結果がfalse であり、送信元ドメインのDMARCポリシーがあれば従う。
RejectFailures true

# RFC5322 に準拠できていないメールは弾く。
RequiredHeaders true

IgnoreAuthenticatedClients true

ignore.hosts

mkdir -p /etc/opendmarc

vi /etc/opendmarc/ignore.hosts

127.0.0.1
::1

chown -R opendmarc.opendmarc /etc/opendmarc

Postfix main.cf

vi /etc/postfix/main.cf

# OpenDMARC
milter_default_action = accept
smtpd_milters=unix:/opendkim/opendkim.sock, /opendmarc/opendmarc.sock
non_smtpd_milters=$smtpd_milters

Append DNS record.

# p=none (Trial. Allways received.), p=reject (Production)
# adkim, aspf (r: allow subdomain, s: only domain)
_dmarc TXT "v=DMARC1; p=none; pct=100; adkim=r; aspf=r"