DMARC (Domain-based Message Authentication, Reporting and Conformance) implementeren
SPF controleert of de verzendende server toestemming heeft om e-mails te versturen namens een domein. DKIM gebruikt digitale handtekeningen om te bevestigen dat de inhoud van een e-mail niet is aangepast tijdens verzending. DMARC combineert deze twee door de "alignment" te controleren tussen het zichtbare From-adres en de technisch geverifieerde afzender.
Stappen
1. Controleer je huidige SPF- en DKIM-configuratieVoordat je DMARC implementeert, moet je zeker weten dat SPF en DKIM correct werken. Controleer je SPF-record:
dig TXT jouwdomein.nl | grep "v=spf1"
Een geldig SPF-record ziet er zo uit:
v=spf1 mx ip4:192.0.2.1 include:_spf.google.com ~all
Controleer je DKIM-record (de selectornaam is afhankelijk van je mailserverconfiguratie):
dig TXT selector1._domainkey.jouwdomein.nl
2. Begin met een DMARC-record met policy "none"
Start altijd met policy `none` om te monitoren welk e-mailverkeer er via jouw domein loopt. Dit voorkomt dat legitieme e-mails worden afgewezen tijdens de testfase. Publiceer het volgende record in je DNS-zone:
_dmarc.jouwdomein.nl. IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@jouwdomein.nl; ruf=mailto:dmarc@jouwdomein.nl; fo=1; adkim=r; aspf=r; pct=100"Uitleg van de tags:
- `v=DMARC1` — de DMARC-versie
- `p=none` — geen actie ondernemen bij falende e-mails (monitoringmodus)
- `rua=mailto:dmarc@jouwdomein.nl` — ontvangst van aggregate reports
- `ruf=mailto:dmarc@jouwdomein.nl` — ontvangst van forensic reports
- `fo=1` — genereer forensic reports bij SPF- of DKIM-falen
- `adkim=r` — relaxed DKIM alignment (domein mag subdomein zijn)
- `aspf=r` — relaxed SPF alignment
- `pct=100` — pas de policy toe op 100% van de e-mails
Wacht tot de DNS-wijziging is doorgevoerd (meestal 5-30 minuten, afhankelijk van je TTL) en controleer dan:
dig TXT _dmarc.jouwdomein.nl
Het resultaat moet het TXT-record bevatten dat je hebt gepubliceerd.
4. Analyseer de DMARC-rapporten
Laat het DMARC-record minimaal 2-4 weken met policy `none` staan. Gedurende deze periode ontvang je aggregate reports op het `rua`-adres. Deze rapporten bevatten XML-data met informatie over:
- Hoeveel e-mails er zijn verzonden namens jouw domein
- Welke IP-adressen deze e-mails hebben verzonden
- Of deze e-mails SPF- en DKIM-checks doorstonden
- Welke alignment-resultaten er waren
sudo apt install opendmarc
5. Verfijn je SPF- en DKIM-configuratie op basis van de rapporten
Analyseer de rapporten en identificeer:
- Legitieme mailservers die niet in je SPF-record staan — voeg ze toe
- Servers die DKIM niet correct gebruiken — configureer ze opnieuw
- Onbekende IP-adressen die e-mails verzenden namens je domein — blokkeer ze
v=spf1 mx ip4:192.0.2.1 ip4:192.0.2.2 include:_spf.google.com ~all6. Verhoog de policy naar "quarantine"
Wanneer je zeker weet dat al je legitieme e-mailverkeer SPF- en DKIM-checks doorstaat, verhoog je de policy naar `quarantine`. Dit plaatst verdachte e-mails in de spammap in plaats van ze direct te weigeren:
_dmarc.jouwdomein.nl. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@jouwdomein.nl; ruf=mailto:dmarc@jouwdomein.nl; fo=1; adkim=r; aspf=r; pct=100"7. Schakel over naar policy "reject"
Na een verdere testperiode van 2-4 weken met policy `quarantine`, zonder dat er legitieme e-mails in de spam belanden, kun je overgaan naar de strengste policy: `reject`. Dit weigert e-mails die niet door de authenticatie komen:
_dmarc.jouwdomein.nl. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@jouwdomein.nl; ruf=mailto:dmarc@jouwdomein.nl; fo=1; adkim=r; aspf=r; pct=100"8. Stel een DMARC-verwerker in voor automatische analyse
Voor geautomatiseerde verwerking van DMARC-rapporten kun je OpenDMARC configureren op je mailserver. Installeer en configureer het:
sudo apt install opendmarc
sudo systemctl enable opendmarc
sudo systemctl start opendmarcConfigureer het rapportage-adres in `/etc/opendmarc.conf`:
AuthservID jouwdomein.nl
RejectFailures false
Verificatie
Controleer of je DMARC-configuratie correct werkt met deze commando's:<h2>Controleer je DMARC-record</h2>
dig TXT _dmarc.jouwdomein.nl
<h2>Controleer of je mailserver DMARC correct verwerkt</h2>
dig TXT _dmarc.jouwdomein.nl | grep "v=DMARC1"
<h2>Test de authenticatie van een e-mail (vervang /var/log/mail.log door jouw logbestand)</h2>
grep "dmarc" /var/log/mail.log | tail -20Een correct geconfigureerd DMARC-record toont de policy die je hebt ingesteld. In het mail-log zie je regels zoals:
dmarc=fail (p=reject) header.from=example.com
dmarc=pass header.from=example.com
Veelgestelde problemen
1. Legitieme e-mails komen in de spam terecht na het verhogen van de policyDit betekent dat sommige van je mailservers niet correct zijn geconfigureerd voor SPF of DKIM. Zet de policy terug naar `none`, analyseer de rapporten, en identificeer welke servers falen. Controleer of alle IP-adressen in je SPF-record staan en of DKIM op alle servers actief is.
2. DMARC-rapporten komen niet aan op het `rua`-adres
Controleer of het mailadres dat je hebt opgegeven in het `rua`-attribuut geldig is en of je mailserver e-mails van externe partijen accepteert. Sommige mailproviders blokkeren automatische rapporten. Gebruik een apart mailadres voor DMARC-rapporten en controleer je spamfilter.
3. `dig` toont geen DMARC-record
Dit kan twee oorzaken hebben: DNS-caching vertraagt de zichtbaarheid van je nieuwe record, of het record is niet correct gepubliceerd. Controleer of je het record op de juiste hostnaam hebt geplaatst (`_dmarc.jouwdomein.nl`) en of je DNS-provider TXT-records met speciale tekens correct ondersteunt. Wacht enkele uren en probeer opnieuw met:
dig TXT _dmarc.jouwdomein.nl +trace
Achtergrond en ontwikkeling
DMARC is geen nieuw protocol dat vanaf nul is ontwikkeld. Het bouwt voort op SPF en DKIM, die beide hun beperkingen hadden. SPF controleert alleen de technische afzender, niet het zichtbare From-adres. DKIM bevestigt de integriteit van de inhoud, maar zegt niets over de identiteit van de afzender. DMARC vult deze leemte door de alignment tussen beide te controleren.De ontwikkeling van DMARC begon in 2010, toen een groep technologie- en financiële organisaties samenwerkte aan een standaard voor e-mailauthenticatie. PayPal, Google, Microsoft en Yahoo waren betrokken bij deze samenwerking. Zij hadden allemaal te maken met massale e-mailfraude en zagen de beperkingen van de bestaande protocollen. Het resultaat was een gemeenschappelijke aanpak die de naam DMARC kreeg.
De eerste officiële specificatie verscheen op 30 januari 2012. Op 31 maart 2013 werd de specificatie als Internet Draft ingediend bij de IETF (Internet Engineering Task Force). Op 2 april 2014 werd het project overgeheveld naar de Independent Submissions-track binnen de IETF. De uiteindelijke publicatie als RFC 7489 volgde in maart 2015.
DMARC.org fungeert als centraal informatiepunt voor het protocol. De Nederlandse overheid, via de Rijksdienst voor Ondernemend Nederland (RVO), beveelt DMARC aan als best practice voor e-mailbeveiliging. Het protocol is inmiddels een standaardonderdeel van een robuuste e-mailbeveiligingsstrategie. De adoptie groeit wereldwijd, maar de implementatiegraad verschilt sterk per sector en regio. De vraag is niet langer of je DMARC moet implementeren, maar wanneer je de overstap naar policy `reject` durft te maken.