DMARC record in stukjes opgedeeld

DMARC instellen voor jouw domein

Om je e-maildomein effectief te beveiligen tegen spoofing, moet je een DMARC record instellen. Hiermee kun je inzichtelijk krijgen wie er uit jouw naam e-mails sturen en kun je mailservers vertellen wat ze met foutieve e-mails moeten doen. In dit artikel leggen we in een paar snelle stappen uit hoe je een DMARC record instelt.

Een DMARC record instellen

Een DMARC record instellen bestaat hoofdzakelijk uit verplichte en niet-verplichte onderdelen. Voor het functioneren van DMARC moet een ontvangende mailserver namelijk twee dingen weten: a) Welk type record het is en b) welk beleid uitgevoerd moet worden.

Belangrijk aan een record is dat het hoofdlettergevoelig is én dat spatiëring soms wèl en soms niet is toegestaan. Let dus goed op waar deze regels gelden!

Instellen van verplichte onderdelen in het DMARC record

Aan het begin van je nieuwe DMARC record komt altijd de versie van het record te staan. In het record wordt dat momenteel genoteerd als v=DMARC1. We gebruiken namelijk de eerste versie van DMARC. Dit verplichte onderdeel moet bovendien vooraan staan, anders moet het volgens de specificatie genegeerd worden.

Het tweede verplichte onderdeel is zogezegd het beleid. In dit beleid geef je weer wat de ontvangende mailserver mag doen met e-mails die niet conform jouw SPF- en DKIM-record zijn.

Sta je aan het begin van DMARC implementatie en heb je nog geen volledig zicht op alle e-mailstromen namens jouw bedrijf? Dan is het raadzaam om te starten met een 'none' beleid met rapportage. Zo krijg je langzaamaan inzicht in alle e-mailstromen, zonder dat je belangrijke e-mails verliest door een streng beleid.

Wil je namelijk e-mailstromen die niet uit jouw bedrijf afkomstig zijn, maar wel uit jouw naam bij klanten aankomen, blokkeren, dan is het nodig om een strenger beleid te gaan voeren. Je moet dan weten welke adressen namens jouw naam mogen e-mailen, om vervolgens 'quarantine' of 'reject' als beleid toe te passen. Het eindresultaat van je beleid is dan p=none, p=quarantineof p=reject.

Niet-verplichte onderdelen

Met enkel een "v=DMARC1, p=none" ben je er echter nog niet. Door je DMARC record op deze manier in te stellen, laat je nog steeds alles door en heb je geen inzicht in je e-mailstromen. Om inzicht te creëren, kun je gebruikmaken van de zogeheten rua en ruf-tag. Deze zorgen er allebei voor dat de ontvangende mailserver rapportage terugstuurt over de e-mails die het ontvangt.

DMARC rapportage

rua is generieke feedback op basis van ontvangen e-mails. ruf geeft voor berichten die niet door de controle heen kwamen een gedetailleerd rapport. De rapportage wordt door ontvangende mailservers teruggestuurd naar het adres dat achter deze tag wordt weergegeven.  Het kan zo zijn dat je rua ('aggregate feedback') en ruf ('message specific failure information') gescheiden wilt houden, bijvoorbeeld wanneer twee verschillende partijen gebruik maken van de informatie.

Bij gebruik van een platform zoals Flowmailer, waarbij rapportage inzichtelijk wordt gemaakt op basis van die feedback, kan het juist wenselijk zijn om beide adressen hetzelfde te houden.

Anderzijds kan het zo zijn dat je de feedback op meerdere adressen wenst te ontvangen. In dat geval kunnen achter de tag meerdere e-mailadressen geplaatst worden, gescheiden met een komma:

Bijvoorbeeld: "rua=mailto:dmarc@flowmailer.net, dmarc@jouwdomein.nl"

Vervolgens kun je bepalen om welke reden je forensische rapportage wilt ontvangen. Hiervoor kan de fo-tag ingezet worden. Deze tag geeft aan welk type rapportage er teruggezonden dient te worden door de mailserver. De fo-tag is niet verplicht, maar ook niet voor ontvangende mailservers. Het kan zo zijn dat je daardoor andere rapportage krijgt dan je hebt ingesteld.

Je kunt voor de fo-tag vier typen rapportage instellen:

  • 0: Genereert een rapport wanneer alle mechanismen falen (SPF en DKIM). Dit type staat standaard ingesteld bij gebruik van de ruf-tag.
  • 1: Genereert een rapport wanneer een enkel mechanisme faalt.
  • d: Alleen wanneer DKIM faalt, wordt een rapport verzonden.
  • s: Alleen wanneer SPF faalt, wordt een rapport verzonden.

fo=1 is het meest stricte type, omdat deze alle mechanismen serieus neemt en al bij een enkele faal rapportage stuurt.

DMARC op subdomeinen instellen

Ook voor het te voeren beleid kun je nog een en ander opnemen in het record. Zo heb je soms te maken met subdomeinen die je anders wilt beveiligen dan het hoofddomein. Stuur je bijvoorbeeld je maandelijkse facturen via 'facturen.jouwbedrijf.nl' en heb je een 'reject'-policy op jouwbedrijf.nl gezet, dan kun je voor de facturen een apart beleid aanmaken. Dit doe je door middel van de sp-tag, die verder hetzelfde werkt als de p-tag. Zet je de sp-tag op none, quarantine of reject, dan weet de ontvangende mailserver dat hij iets anders moet doen met die e-mails dan met e-mails van jouw hoofddomein.

Beleid op subdomein

Vervolgens kun je ook per mechanisme bepalen hoe streng de authenticatie is. Voor zowel SPF als DKIM kun je instellen dat de controle hierop relaxed of strict moet zijn. Strict houdt in dat authenticatie alleen lukt als de gegevens in de e-mail exact overeenkomen met de gegevens zoals ze zijn aangegeven in de DNS-instellingen. Dat betekent dat een subdomein niet meer uit naam van het hoofddomein kan e-mailen. Relaxed gaat daar wat soepeler mee om.

Voorbeeld: als je DMARC-record het domein 'jouwbedrijf.org' omvat, kun je ook e-mails versturen vanuit het subdomein 'nieuws.jouwbedrijf.org'. Normaliter komen die e-mails dus perfect aan, tenzij je SPF en DKIM authenticatie op strict staat. Relaxed laat deze e-mail gewoon door.

De tags die voor deze policies worden gehanteerd zijn respectievelijk aspf en adkim: strict(s) en relaxed(r). Zo kan je apsf=s zijn en je adkim=r.

Een laatste instelling die je in je DMARC record kunt toepassen, is het percentage dat onderhevig moet zijn aan het beleid. Deze instelling is ontworpen om de domeineigenaar langzaamaan een reject-policy te laten implementeren, in plaats van alles of niets. Het percentage (pct-tag) kan logischerwijs tussen de 0 en 100 ingesteld worden, met een default op 100% (pct=100).

Het verwerken van het DMARC record in de DNS-instellingen

Om het DMARC record werkend te krijgen, zul je het record moeten verwerken in de instellingen van je Domain Name System (DNS). Dat doe je als volgt:

  1. Zoek naar de DNS-instellingen van je domein - bij providers meestal onder 'Productinstellingen'
  2. Kies 'Een record toevoegen'
  3. Selecteer TXT als het recordtype
  4. Kies host / target en definieer die als _dmarc
  5. Vul je DMARC record in als waarde
  6. Publiceer je nieuwe record

Nu je het record hebt ingesteld, zul je rapportage binnenkrijgen als je rua hebt aangezet. Hierdoor krijg je actuele inzichten over welke e-mails uit jouw naam verzonden worden. Het is ook mogelijk om die rapportage naar eigen wens vorm te geven. Zo kun je een limiet stellen op de grootte van de rapportage, een interval zetten op de timing van rapportage of het format van rapportage aanpassen.

De grootte instellen van DMARC rapportage

Om de grootte van rapportage in te stellen, moet een onderdeel in het DMARC record aangepast worden. Het is niet noodzakelijk om dit te doen, maar aangezien sommige mailservers maximale groottes hanteren, kan het wel handig zijn. Bij zowel ruf- als rua-adressen kun je al naar gelang een maximaal aantal megabytes (m), gigabytes (g), kilobytes (k) en terrabytes (t) instellen. De standaard is 'ongelimiteerd', maar je kunt achter de e-mailadressen het gewenste volume aangeven. Dat ziet er als volgt uit:

Stel je wilt op je rua-adres (dmarc@example.org) een limiet instellen van 10 gigabyte en op je ruf-adres (rufdmarc@example.org) een limiet van 80 megabyte, dan moeten je adressen in je DMARC record zo geschreven worden: rua=mailto:dmarc@example.org!10g; ruf=mailto:rufdmarc@example.org!80m. Het uitroepteken volgt direct op het adres en wordt ook direct opgevolgd door het limiet.

De vorm van DMARC rapportage

Rapportage op gefaalde berichten kan ontvangen worden in verschillende vormen. Hoewel de specificatie alleen ingaat op het afrf-format, wordt er gespeculeerd over een andere vorm van rapportage: iodef. Met iodef (Incident Object Description Exchange Format) ontvang je uitgebreide rapportage over het incident, terwijl afrf (Authentication Failure Reporting Format) specifieke rapportage stuurt wanneer SPF of DKIM faalt. De laatste is tevens de default vorm van rapportage. De gewenste vorm voor DMARC rapportage kun je aangeven door in het record "rf=iodef" of "rf=afrf" op te nemen.

Interval op timing

De derde en tevens laatste optie voor rapportage is de interval waarmee dit gebeurt. Normaliter gebeurt dit binnen een dag (of twee), maar er kan ook voor gekozen worden dit te verkorten of juist te verlengen. Verkorten is vooral handig wanneer er iemand binnen je bedrijf elke dag bezig is met security van je e-maildomein. De standaard is dus een dag, maar de interval wordt gedefinieerd in seconden. Kies je dus voor een hele korte interval, kun je de ri instellen op 1, voor een dag op 86400.