iredmailのメールサーバに、dmarc-report-converter を導入してWebでDMARCレポートを確認できるようにした。
導入
基本的には書いてある通りに実行
githubのreleaseから dmarc-report-converter_v0.8.1-20240617_x86_64.tar.gz をダウンロード
/opt以下に展開(/opt/dmarc-report-converter)
/opt/dmarc-report-converter/config.yaml を編集し設定
config.yaml への設定ポイント
今回はiredmailメールサーバに直接配置するので、 入力フォルダは /var/vmail/vmail1/ドメイン名 の下にあるユーザフォルダ内のDMARCレポートが入るところを指定します
input:
delete: no
dir: “/var/vmail/vmail1/ドメイン名/d/m/a/dmarc-reports/Maildir/cur/
出力先は /var/www/dmarc としますので、まずはディレクトリを作成し、必要なファイルをコピします
# mkdir /var/www/dmarc
# cp -r /opt/dmarc-report-converter/assets /var/www/dmarc
#
output:
file: "/var/www/dmarc/{{ .ReportMetadata.Email }}/{{ .PolicyPublished.Domain }}!{{.ReportMetadata.DateRange.Begin}}!{{ .ReportMetadata.ReportID }}.html"
format: "html_static"
assets_path: "/dmarc/assets"
nginxへの設定は /etc/nginx/templates/dmarc.tmpl を作成し、部外者に見られないようにパスワードをかけておきます
location /dmarc/ {
root /var/www/;
autoindex on;
autoindex_localtime on;
auth_basic "Password Required";
auth_basic_user_file /etc/nginx/htpasswd-dmarc;
}
(最初「root /var/www/dmarc/;」で設定したら /var/www/dmarc/dmarc/ にアクセスしていたので修正)
で、/etc/nginx/site-enabled/ の適切な設定ファイルに「include /etc/nginx/templates/dmarc.tmpl;」を追加して「systemctl restart nginx」します
で・・・/opt/dmarc-report-converter/dmarc-report-converter で実行したわけなんですが・・・
[ERROR] files: mimetype text/plain; charset=utf-8 not supported in file /var/vmail/vmail1/ドメン名/d/m/a/dmarc-reports-2024.01.25.18.17.13/Maildir/cur/1735209134.M693289P2635886.メールサーバ名,S=4907,W=4989:2,a, skip
という形でMIMEのままだとダメとのこと
仕方が無いのでIMAPで取得してから処理することにした
input:
delete: no
dir: "/var/www/dmarc/dmarc_files/"
imap:
server: "メールサーバ:993"
username: "dmarc-reports@ドメン名"
password: "パスワード"
mailbox: "INBOX"
これで https~/dmarc/ にアクセスすると週ごとの各ドメインディレクトリが出来て修正を確認できるようになった。
初期設定だとIPアドレスのみ表示なので、DNS逆引きも行わせたところレポート取得にだいぶ時間がかかるようになったのが注意点
めんどくさい点
毎日レポートと、1週間のまとめレポートを出す、という感じの使い方がやりにくい