Geautomatiseerde verwerking van DMARC rapporten
Het bijhouden van e-mailbeveiliging is een essentieel onderdeel van moderne IT-beheerpraktijken. DMARC (Domain-based Message Authentication, Reporting & Conformance) helpt organisaties om e-mailfraude en phishing tegen te gaan door te controleren of uitgaande berichten voldoen aan SPF- en DKIM-regels. Zie ook een eerder bericht hierover op deze site. Het automatisch monitoren van DMARC-rapporten maakt het eenvoudiger om afwijkingen tijdig te detecteren en te corrigeren.
In mijn mailomgeving heb ik een workflow opgezet (uiteraard op de Synology DS923 NAS) met behulp van n8n, een open-source workflow automation tool. Het doel is om automatisch DMARC-rapporten op te halen,te analyseren en te loggen. Bij afwijkingen – lees: failures – verstuurt de workflow een e-mailmelding naar mijn inbox. Door deze workflow hoef ik alleen te focussen op de DMARC-rapporten die duiden op een gefaalde email verzending, en niet op de grote hoeveelheid aan DMARC-rapporten die bevestigen dat de emails goed zijn afgeleverd.
Hoe de workflow werkt
IMAP E-mail ophalen
- De workflow start met het ophalen van DMARC-rapporten uit de mailbox. Alleen e-mails met bijlagen (meestal
.gzof.zip) worden verder verwerkt.
Bijlagen controleren en decompressen
- Via een Code node wordt de bijlage geïdentificeerd en gecontroleerd op type en grootte. Vervolgens worden bestanden indien nodig gedecomprimeerd naar een leesbaar XML-formaat.
XML naar JSON verwerken
-
Het XML-bestand wordt ingelezen en omgezet naar JSON. Hierbij tellen we het aantal e-mails dat niet voldoet aan DKIM- of SPF-vereisten (failures) en verzamel ik de IP-adressen van de afwijkende berichten.
Beslissing en logging
- Afhankelijk van het aantal failures wordt bepaald of een waarschuwingsemail moet worden verstuurd of niet. Voor alle gevallen wordt een logregel gegenereerd.
- Geleerde les: door vooraf de waarden in te interpoleren voordat de SSH-query wordt uitgevoerd, wordt de logging betrouwbaar en consistent. Ook is daarmee een speciaal commando ‘sh -c <vervolgcommando>’ in de command-regel van de node niet nodig.
E-mailmelding bij failures
- Als er failures zijn, stuurt de workflow automatisch een e-mail naar het beheerteam, inclusief details van de periode, het aantal afwijkingen en de betrokken IP-adressen.
Automatisering en overzicht
-
Alle stappen worden automatisch uitgevoerd, en het logbestand biedt een overzicht van de DMARC-status per rapportageperiode. Door deze workflow self-hosted te draaien op de NAS, behoud ik controle en privacy over onze data.
Het bijgaande plaatje gemaakt met AI verduidelijkt een en ander.

Waarom automatisering met n8n waardevol is
-
Tijdsbesparing: Geen handmatige downloads of analyse van rapporten meer.
-
Foutreductie: Handmatige fouten bij interpretatie van XML-data worden voorkomen.
-
Overzicht: Logs geven snel inzicht in trends en afwijkingen.
-
Flexibiliteit: Extra stappen of nieuwe e-mailboxen kunnen eenvoudig worden toegevoegd.
Het monitoren van DMARC-rapporten is essentieel voor e-mailbeveiliging, maar het kan snel omslachtig worden. Elke dag door 10 of 20 rapporten heenploegen is gewoon zonde van de tijd en bovendien niet leuk!
Door een n8n workflow te combineren met een NAS zoals de DS923, automatiseren we het hele proces van rapport ophalen tot een waarschuwingsemail, terwijl ik overzicht en controle behoud. Een praktische toepassing die zowel efficiency als veiligheid vergroot.
Meer in detail over n8n en de opzet van de workflow
De workflow draait in een self-hosted n8n workflow opgezet op mijn Synology DS923 NAS. Workflow tooling van n8n creëert een low-code omgeving die een gebruiker met minder kennis van software talen (javascript, php, linux, sql) in staat stelt om taken te automatiseren met behulp van nodes.
n8n is een open-source tool voor workflowautomatisering waarmee je verschillende applicaties en diensten kunt verbinden zonder dat je hoeft te programmeren. Het stelt gebruikers in staat om complexe workflows te creëren die repetitieve taken automatisch uitvoeren, waardoor je tijd en moeite bespaart.
n8n (uitgesproken als “N-eight-N”) is dus een automatiseringsplatform waarmee je zonder te coderen verschillende apps en diensten kunt verbinden. Het biedt een gebruiksvriendelijke interface om workflows te creëren zonder dat je diepgaande kennis van coderen nodig hebt.
De naam n8n is overigens een afkorting voor “nodigen 8 nodes”, waarbij de “nodes” verwijzen naar de verschillende functies die de tool kan uitvoeren, zoals het ophalen van data, het versturen van e-mails of het uitvoeren van bepaalde acties binnen een specifieke applicatie (bron: gekopict.nl).
Overzicht van de workflow
Hieronder leg ik uit hoe de workflow werkt en welke lessons learned we hebben opgedaan. De workflow bestaat uit de volgende hoofdnodes:
-
IMAP Email
De workflow start met het ophalen van DMARC-rapporten uit een specifieke mailbox. Alleen e-mails met bijlagen (meestal.gzof.zip) worden doorgezet naar de volgende stap. -
Code Controleer Bijlage
In deze node wordt gecontroleerd of de e-mail een bijlage bevat. Het bestandstype wordt herkend (gzip, zip) en de bestandsgrootte wordt gelogd. Alleen als er een geldige bijlage is, gaat de workflow verder. -
Loop Over Items
Omdat een e-mail meerdere bijlagen kan hebben, worden alle bijlagen individueel doorlopen in een loop-over proces. -
Compression
Deze node decomprimeert.gzof.zipbestanden zodat ze als leesbare XML kunnen worden verwerkt. -
Extract from File
De node haalt de XML-inhoud uit het gedecodeerde bestand en stuurt dit door naar de JSON-verwerking in de volgende node. -
Code Verwerk JSON
Het XML-bestand wordt ingelezen, opgeschoond en omgezet naar JSON. Hier wordt het aantal failures geteld en worden mislukte IP-adressen verzameld. Belangrijke waarden zoalsrapport_id,organisatieen de periode worden vastgelegd.Tip: Door vooraf de waarden te interpoleren in de variabelen voordat een SSH-query wordt uitgevoerd, voorkom je dat loggingregels fout of incompleet worden opgeslagen.
-
If (Beslissingsnode)
Controleert of er failures zijn gerapporteerd:-
Geen failures: enkel logging in een logbestand, geen e-mail versturen naar mij.
-
Failures: trigger voor een e-mailmelding naar mij.
-
-
Send Email
Stuurt automatisch een e-mail als er afwijkingen zijn, met details over de periode, het aantal failures en de betreffende IP-adressen. -
Code DMARC Logging
Ongeacht of een e-mail wordt verstuurd, wordt een logregel gegenereerd. Deze regel wordt via een SSH node weggeschreven naar een centraal logbestand op de NAS. -
SSH Logging
Deze node schrijft de logregel naar/volume1/cron/logs/dmarc_monitor.log. Door gebruik vanif [ -n "{{ $json.logregel }}" ]wordt voorkomen dat lege regels worden toegevoegd.
Geleerde lessen en tips
-
Interpoleren vóór SSH: Vul variabelen zoals
rapport_idenorganisatievooraf in, zodat de SSH-write consistent is. Anders blijven placeholders ({{.logregel}}) zichtbaar in het logbestand. -
Keep it simple: Door de workflow modulair op te bouwen, is elke stap duidelijk testbaar.
-
Self-hosted biedt voordelen: Met n8n op een NAS blijft alle data lokaal, veilig en overzichtelijk. Automatisering voorkomt handmatige fouten en bespaart tijd. Ik ben soeverein over mijn eigen data.
Voordelen van automatisering
-
Tijdsbesparing: Handmatig ophalen, uitpakken en analyseren van DMARC-rapporten is niet meer nodig.
-
Overzicht en logging: Het logbestand geeft een helder overzicht van failures per rapportageperiode.
-
Flexibiliteit: Extra e-mailboxen, nieuwe rapporttypes of notificaties kunnen eenvoudig worden toegevoegd.
-
Betrouwbaarheid: Automatische checks zorgen dat niets over het hoofd wordt gezien.
Mijn afdronk
Door DMARC-monitoring te automatiseren met n8n op mijn eigen NAS, wordt een tijdrovend en repetitief proces betrouwbaar en overzichtelijk. Met duidelijke logging, automatische e-mailmeldingen bij failures en een modulair ontwerp kan ik snel reageren op afwijkingen, zonder handmatige verwerking van rapporten. Dit is fijn voor de externevoorzitter.nl voor wie ik de mailafhandeling verzorg.
Deze workflow is een voorbeeld van hoe self-hosted automatisering dagelijkse IT-taken efficiënter en veiliger kan maken.
