A set of tools to use DMARC through Modoboa.
This plugin is still in BETA stage, for now it only parses XML aggregated reports and generate visual reports (using c3.js) on a per-domain basis.
Make sure to install the following additional system package according to your distribution:
Debian / Ubuntu |
---|
libmagic1 |
CentOS |
---|
file-devel |
Install this extension system-wide or inside a virtual environment by running the following command:
$ pip install modoboa-dmarc
Edit the settings.py file of your modoboa instance and add
modoboa_dmarc
inside the MODOBOA_APPS
variable like this:
MODOBOA_APPS = ( 'modoboa', 'modoboa.core', 'modoboa.lib', 'modoboa.admin', 'modoboa.limits', 'modoboa.relaydomains', 'modoboa.parameters', # Extensions here 'modoboa_dmarc', )
Run the following commands to setup the database tables:
$ cd <modoboa_instance_dir> $ python manage.py migrate modoboa_dmarc $ python manage.py collectstatic $ python manage.py load_initial_data
Finally, restart the python process running modoboa (uwsgi, gunicorn, apache, whatever).
A management command is provided to automatically parse DMARC aggregated reports (rua) and feed the database. The execution of this command can be automated with the definition of a postfix service and a custom transport table.
First, declare a new service in /etc/postfix/master.cf
:
dmarc-rua-parser unix - n n - - pipe flags= user=vmail:vmail argv=<path to python> <path to modoboa instance>/manage.py import_aggregated_report --pipe
Define a new transport table inside /etc/postfix/main.cf
:
transport_maps = hash:/etc/postfix/dmarc_transport # other transport maps...
Create a file called /etc/postfix/dmarc_transport
with the following content:
<email address your declared in your DNS record> dmarc-rua-parser:
Hash the file using the following command:
$ postmap /etc/postfix/dmarc_transport
Finally, reload postfix:
$ service postfix reload
modoboa-dmarc now requires an additional system package according to your distribution:
Debian / Ubuntu |
---|
libmagic1 |
CentOS |
---|
file-devel |