Outils pour utilisateurs

Outils du site


kb:linux:modoboa:configurer_opendmarc_sur_modoboa

Configurer OpenDMARC sur Modoboa

OpenDMARC est un logiciel l'ensemble des mécanismes lié au DMARC. Cela se décline en deux points importants, la vérification et les rapports. Souvent, seul la vérification est configuré mais je vous invite à faire les deux.

Configuration des vérifications

Pour commencer, il faut installer OpenDMARC:

# apt install opendmarc

Ensuite on va passer a la configuration du fichier /etc/opendmarc.conf.

Pour commencer, de-commentez la ligne AuthservID et mettez-y le nom de domaine de votre serveur mail:

AuthservID mx01.virtit.fr

puis, si vous avez des serveurs relai, dé-commentez aussi la ligne TrustedAuthservIDs et mettez les séparés par des virgules comme suit:

TrustedAuthservIDs mx01.virtit.fr,mx02.virtit.fr

Ensuite, pour vraiment respecter les vérifications, vous pouvez demander a OpenDMARC de réèlement refuser les mails où la policy demande de rejeter en cas d’échec. Pour cela, dé-commentez et changer la configuration RejectFailures :

RejectFailures true

Ensuite, on va ajouter les configurations de vérification de SPF, pour améliorer la sécurité:

SPFIgnoreResults true
SPFSelfValidate true

Et pour finir, configurer les ports d'écoute pour Postfix:

Socket inet:12346@127.0.0.1
Socket inet6:12346@[::1]

Ensuite, il faut simplement redémarrer le service opendmarc:

# systemctl restart opendmarc

Ensuite on va l'ajouter dans a la liste des milters de Postfix comme ceci:

smtpd_milters = inet:localhost:12345,inet:localhost:12346
non_smtpd_milters = inet:localhost:12345,inet:localhost:12346

et redémarrer Postfix :

# systemctl restart postfix

Configurer la génération des rapports

Pour que OpenDMARC génère et envoi les rapports DMARC, il faut une base de données MySQL, ce qui n'est pas le moteur de base de données de Modoboa. Si votre Modoboa utilise PostgreSQL, vous devez installer en parallèle un serveur MySQL .

Ensuite, il faut faire un petit ajustement de configuration du fichier /etc/opendmarc.conf en ajoutant la ligne suivante :

HistoryFile /var/run/opendmarc/opendmarc.dat

ensuite, il faudra re-démarrer OpenDMARC :

# systemctl restart opendmarc

Ensuite, il faudra configurer la base de données :

mysql> CREATE DATABASE opendmarc;
mysql> GRANT ALL PRIVILEGES ON opendmarc.* TO opendmarc IDENTIFIED BY 'Mon Super Mot de Passe !';
mysql> USE opendmarc;
mysql> SOURCE /usr/share/dbconfig-common/data/opendmarc/install/mysql;

ensuite, il faudra créer un script pour générer les rapports :

/opt/dmarc-report
#!/bin/bash
 
DB_SERVER='localhost'
DB_USER='opendmarc'
DB_PASS='Mon Super Mot de Passe !'
DB_NAME='opendmarc'
WORK_DIR='/var/run/opendmarc'
REPORT_EMAIL='dmarc@virtit.fr'
REPORT_ORG='virtit.fr' 
mv ${WORK_DIR}/opendmarc.dat ${WORK_DIR}/opendmarc_import.dat -f
touch ${WORK_DIR}/opendmarc.dat
 
/usr/sbin/opendmarc-import --dbhost=${DB_SERVER} --dbuser=${DB_USER} --dbpasswd=${DB_PASS} --dbname=${DB_NAME} --verbose < ${WORK_DIR}/opendmarc_import.dat
/usr/sbin/opendmarc-reports --dbhost=${DB_SERVER} --dbuser=${DB_USER} --dbpasswd=${DB_PASS} --dbname=${DB_NAME} --verbose --interval=86400 --report-email $REPORT_EMAIL --report-org $REPORT_ORG
/usr/sbin/opendmarc-expire --dbhost=${DB_SERVER} --dbuser=${DB_USER} --dbpasswd=${DB_PASS} --dbname=${DB_NAME} --verbose

Le rendre executable :

# chmod +x /opt/dmarc-report

Et pour finir, créer une tache cron pour envoyer des rapports chaque jour:

/etc/cron.d/opendmarc
TZ=UTC
0 0 * * * opendmarc /opt/dmarc-report
kb/linux/modoboa/configurer_opendmarc_sur_modoboa.txt · Dernière modification : 2021/01/05 10:50 de beu