Skab overblik over dine DMARC rapporter

(Last Updated On: 20. januar 2021)

Denne guide viser hvordan du kan opsamle dine DMARC rapporter og gemme data i en database som du herefter kan præsentere på en hjemmeside. Det hele er udført på Ubuntu 20.04 LTS med Apache 2.4, PHP 7.4, MariaDB 10 og Perl 5.3. Du benytter muligvis et andet Unix/Linux OS, og skal så blot foretage de tilrettelser der måtte være nødvendige.

Lad være med blot at kopiere kommandoer fra denne vejledning… Husk at tænke selv 😉

Jeg benytter et simpelt værktøj udviklet af TechSneeze.com, som de kalder dmarkts-report-parser. Det består af en parser der udtrækker data og lægger dem i databasen og et web GUI der fremviser data.

Parseren kan udtrække data på flere måder, bl.a. via en imap forbindelse. Men jeg har ikke konfigureret imap på denne server, da MTA’en (Postfix) primært benyttes til at sende post.

Mit setup fungerer derfor som følger:

  • Postfix modtager DMARC rapporterne.
  • Et cronjob dykker ned i disse mails, finder og udtrækker de vedhæftede filer og pakker dem ud til en dertil indrettet folder.
  • Herefter køres parseren (et perl script) som trækker data ud af de vedhæftede filer og lægger det i databasen
  • Nu kan data ses på hjemmesiden.

Konfiguration af Postfix

Mit Postfix setup er meget simpelt da den i dette tilfælde primært benyttes til afsendelse af mail. Der er kun 3-4 konti til modtagelse og jeg har derfor ikke et fancy setup med imap og database, men blot flade tekstfiler hvor disse konti er konfigureret.

Fra main.cf:

I virtual  filen skriver jeg ind hvortil dmarc rapporterne skal leveres:

… og i virtual_mailbox filen fortæller jeg hvilken folder de skal placeres i. Den folder du angiver er relativ i forhold til den mappe du har angivet i virtual_alias_maps  i main.cf.

Herefter køres postmap på de to filer og Postfix genstartes:

dmarcts-report-parser

Nu henter du parseren fra TechSneeze … jeg benytter wget . Herefter pakker du den ud til den folder hvor du ønsker den skal ligge.

github forsiden kan du se hvilke afhængigheder der skal installeres på forskellige unix/linux operativsystemer.

Jeg har på Ubuntu installeret følgende:

Gå til den folder du pakkede zip filen ud til, og opret config filen:

Da jeg ikke benytter imap delen kan jeg helt ignorere disse parametre, og kun forhold mig til dem der vedrører databasen:

Opret MySQL database og bruger

Du kan nøjes med at oprette databasen. Hvis dmarcts-report-parser  ikke finder nogen tabeller, sørger den nemlig selv for at oprette dem:

Udskillelse af vedhæftede filer

Inden jeg kan bruge dmarcts-report-parser, skal jeg trække de vedhæftede rapporter ud af de e-mails der er modtaget. Til det formål benytter jeg mu  som er en del af maildir-utils .

Nu oprettes et shell script der trækker filerne ud. Herunder har jeg angivet den essentielle del af dette script.

dmarcts-report-viewer og Apache konfiguration

Nu mangler du blot at hente den del der præsenterer data og konfigurere Apache:

Pak zip filen ud i dit webdir. På Ubuntu har jeg placeret filerne under /var/www/vhosts/dmarc .

Min Apache 2.4 konfiguration ser således ud:

 

En særlig tak til den person der skrev dette blog-indlæg. Uden det var jeg ikke faldet over dmarcts-report-parser:

Self Hosted DMARC reports