DMARC

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
Revision as of 15:33, 16 August 2022 by Woozle (talk | contribs)
Jump to navigation Jump to search
Domain-based Message Authentication, Reporting and Conformance (DMARC)

About

Configuring DMARC for any given domain requires only a DNS entry for that domain, containing machine-readable instructions for any message recipient to automatically authenticate an incoming message. The server receiving any message can check the "from" domain's DNS for a DMARC record. If one is found, the message will be accepted only if it passes the requirements.

The DMARC DNS entry for a given domain uses a "_DMARC" subdomain (_DMARC.<domain>). The explanation of the DNS record contents seems to begin in section 6.3 of RFC-7489.

Tags

tag values description
adkim

s: strict
r: relaxed

how closely to check DKIM configuration ("alignment")
aspf

s: strict
r: relaxed

how closely to check SPF configuration ("alignment")
fo

0: report DMARC failure if all underlying auths don't align
1: report DMARC failure if any underlying auths don't align
d: report DKIM failure if DKIM signature fails, regardless of alignment (see AFRF-DKIM)
s: report SPF failure if SPF evaluation fails, regardless of alignment (see AFRF-SPF)

failure [reporting] options
p
none no specific action
quarantine treat all failed messages as suspicious
receiver can decide how to handle
reject reject all failed messages
preferably during the SMTP transaction
see Section 10.3
Requested Mail Receiver policy
pct 0 to 100, default = 100 % of domain's messages subject to policy
rf <list of one or more report formats> Format to be used for message-specific failure reports
  • colon-separated
  • default is "afrf"
ri <number of seconds> maximum interval between aggregate reports; default is 86400
rua <one or more email addresses, comma-separated> addresses (DMARC URIs) to which aggregate reports are to be sent
ruf <one or more email addresses, comma-separated> addresses (DMARC URIs) to which message-specific failure information is to be sent

documentation in progress

In Practice

It appears that some large email services (such as GMail) may reject messages if DMARC is not configured in a way they deem suitable; as far as I know, this is not officially documented anywhere (security by obscurity), and proper configuration can only be determined by experimentation.

Notes

For some reason, DigitalOcean apparently does not support wildcards in TXT DNS records, so you can't set up a wildcard DMARC recipient.

Links