======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 : #!/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: TZ=UTC 0 0 * * * opendmarc /opt/dmarc-report