Wat is DMARC?
DMARC (Domain-based Message Authentication, Reporting & Conformance) is een protocol voor e-mailauthenticatie dat voortbouwt op SPF en DKIM. Domeineigenaren kunnen hiermee een beleid publiceren waarin staat hoe ontvangende servers berichten moeten behandelen die de authenticatie niet doorstaan. Het protocol biedt ook rapportagemogelijkheden om e-mailauthenticatie te bewaken.
Waarom DMARC essentieel is
SPF en DKIM afzonderlijk hebben een belangrijk tekort: ze vertellen ontvangers niet wat zij met mislukte berichten moeten doen. Een aanvaller kan vervalste e-mail versturen zonder SPF of DKIM, terwijl ontvangers geen richtlijn hebben.
DMARC lost dit op door:
- Beleid te definiëren: mislukte berichten weigeren, in quarantaine plaatsen of toestaan
- Uitlijning te vereisen: de From-header moet overeenkomen met het SPF- of DKIM-domein
- Rapportage mogelijk te maken: geaggregeerde en forensische rapporten tonen de authenticatieresultaten
Hoe DMARC werkt
1. De afzender publiceert DMARC-beleid in DNS (TXT-record op _dmarc.domain.com)
2. De e-mail wordt verzonden met From: [email protected]
3. De ontvanger controleert SPF en DKIM
4. De ontvanger controleert de uitlijning: komt het geauthenticeerde domein overeen met de From-header?
5. Het beleid wordt toegepast: op basis van het DMARC-record (none, quarantine, reject)
6. Rapporten worden verzonden: geaggregeerde rapporten gaan naar opgegeven adressen
DMARC-uitlijning
DMARC vereist "uitlijning": het domein in de From-header moet overeenkomen met een van deze domeinen:
- SPF-uitlijning: het domein van de envelope-afzender (MAIL FROM)
- DKIM-uitlijning: het d=-domein in de DKIM-handtekening
Zonder uitlijning kunnen SPF en DKIM slagen, maar faalt DMARC.
Indeling van een DMARC-record
DMARC-records zijn TXT-records op _dmarc.yourdomain.com:
_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:[email protected]"
DMARC-tags
| Tag | Verplicht | Beschrijving | Voorbeeld |
|---|---|---|---|
| v | Ja | Versie | v=DMARC1 |
| p | Ja | Beleid | p=none/quarantine/reject |
| rua | Nee | URI voor geaggregeerd rapport | rua=mailto:[email protected] |
| ruf | Nee | URI voor forensisch rapport | ruf=mailto:[email protected] |
| pct | Nee | Percentage waarop beleid geldt | pct=100 |
| sp | Nee | Beleid voor subdomeinen | sp=reject |
| adkim | Nee | Modus voor DKIM-uitlijning | adkim=s (strict) or adkim=r (relaxed) |
| aspf | Nee | Modus voor SPF-uitlijning | aspf=s or aspf=r |
DMARC-beleidsopties
p=none: alleen monitoren, geen actie op mislukte berichtenv=DMARC1; p=none; rua=mailto:[email protected]
p=quarantine: mislukte berichten naar spam of ongewenste e-mail sturen
v=DMARC1; p=quarantine; rua=mailto:[email protected]
p=reject: mislukte berichten volledig weigeren
v=DMARC1; p=reject; rua=mailto:[email protected]
Implementatieroute voor DMARC
Fase 1: Monitoren (p=none)
Begin met monitoren om inzicht te krijgen in uw e-mailecosysteem:
v=DMARC1; p=none; rua=mailto:[email protected]
Analyseer de rapporten gedurende 2-4 weken om het volgende vast te stellen:
- Legitieme verzenddiensten zonder SPF of DKIM
- Onbevoegde afzenders (spoofing)
- Problemen met uitlijning
Fase 2: Quarantaine (p=quarantine)
Zodra legitieme bronnen zijn geauthenticeerd:
v=DMARC1; p=quarantine; pct=10; rua=mailto:[email protected]
Gebruik pct=10 om aanvankelijk slechts 10% in quarantaine te plaatsen en verhoog dit geleidelijk.
Fase 3: Weigeren (p=reject)
Volledige bescherming:
v=DMARC1; p=reject; rua=mailto:[email protected]
DMARC-rapporten
Geaggregeerde rapporten (rua)
Dagelijkse XML-rapporten met authenticatieresultaten voor al uw e-mail:
- E-mailvolume
- Slaag- en faalpercentages voor SPF, DKIM en DMARC
- Verzendende IP-adressen
- Organisaties van ontvangers
Forensische rapporten (ruf)
Individuele faalrapporten, die niet door alle ontvangers worden verzonden vanwege privacy:
- Volledige berichtheaders
- Details over authenticatiefouten
Rapporten verwerken
Ruwe DMARC-rapporten zijn XML en lastig te lezen. Gebruik diensten zoals:
- DMARC Analyzer
- Dmarcian
- Valimail
- Postmark DMARC
DMARC controleren
dig _dmarc.example.com TXT
curl "https://domscan.net/v1/health?domain=example.com"
# Returns hasDMARC status
Veelvoorkomende DMARC-problemen
Geen rapporten ontvangen: zorg dat het rua-adres grote e-mails kan ontvangen, want sommige providers filteren deze. Legitieme e-mail faalt: controleer de SPF- en DKIM-configuratie voor alle verzenddiensten en verifieer de uitlijning. Problemen met diensten van derden: veel diensten vereisen aangepaste DKIM-configuratie voor DMARC-uitlijning.DMARC is het sluitstuk van e-mailauthenticatie: implementeer het nadat SPF en DKIM correct werken.