Managing DMARC aggregate and feedback reports
Designed to quickly and easily manage DMARC aggregate and feedback reports.
This Django DMARCATION project aims to ease implementating DMARC "Domain-based Message Authentication, Reporting & Conformance" and ongoing monitoring by importing aggregate and feedback reports about messages that pass and/or fail DMARC evaluation into a more easily digested format.
Perhaps one of the main reasons DMARC is gaining traction amongst organisations of all sizes is a desire to protect their people, brand and reputation. By defining and implementing a DMARC policy, an organization can help combat phishing, protect users and their reputation.
At beta stage, the application is stable, with most efforts on improving usability and documentation.
Choosing Django was an easy choice as it offers an easily built import mechanism and transformation from xml to database through to presentation.
Although it has options for importing either xml or email files, zero maintenance is achieved by fully automating import of feedback and reports.
Install the app
Add "dmarc" to your INSTALLED_APPS setting:
INSTALLED_APPS = ( ... "dmarcation", )
Add dmarc.urls to your urls:
from django.urls import include, path urlpatterns = [ ... path(r"^dmarcation/", include("dmarcation.urls", namespace="dmarcation")), ]
Run 'python manage.py migrate' to create the database tables.
Import an email DMARC aggregate report with:
python manage.py importdmarcreport --email
Alternatively the xml report can be imported with:
python manage.py importdmarcreport --xml
The process of importing DMARC aggregate reports can be fully automated. At Persistent Objects we use Exim and the configuration couldn't be easier.
Router:
dmarcreports: driver = accept condition = ${if eq{$local_part}{dmarc_report}} transport = trans_dmarcreports
Transport:
trans_dmarcreports: driver = pipe command = "/usr/bin/python3 /path/to/manage.py importdmarcreport --email -" freeze_exec_fail = true return_fail_output = true
Congratulations, you have django-dmarc installed and ready to import DMARC aggregate feedback reports and start implementing DMARC and protecting your emails.
Aggregated feedback reports are available from the Admin page at admin/dmarcation.
From the DMARC dashboard at 'Site administration/DMARCATION' where the intention is to highlight a summary of recent reports, there is one report 'DMARC feedback reports' and is available to any user with staff members authorization.
This is an example report, it can also be downloaded as a csv file suitable for importing into your favourite spreadsheet.
The report can be filtered by clicking on the filter and changing any of the reporting period, only showing errors/failures, disposition (quarantine, rejection or any) and by source ip address/reporting organisation.
These reports can help ease any DMARC implementation.
Although there is usually no need to remove old records, access to the report table is offered to allow for record deletion.
- Django 2.2+
This project was forked from django-dmarc by Alan Hicks (ahicks@p-o.co.uk) in order to further improve it.
To report a security issue, please send an email privately to `michael@fladi.at`_. This gives us a chance to fix the issue and create an official release prior to the issue being made public.
For general questions or comments, please contact `michael@fladi.at`_.
Communications are expected to conform to the Django Code of Conduct.