はじめに
毎日届くたくさんのDMARCレポートたち。
XMLファイルを1つ1つ確認していくのは心が折れます。
そんな時、これら膨大なファイル群をローカルにて可視化できる OSS を見つけたので使ってみました。
簡単に説明すると3つのコンテナの集まりです。
-
parsedmarc
:DMARCレポートを解析する -
Elasticsearch
:解析されたレポートを保存する -
Grafana
:保存されたレポートを可視化する
git clone git@github.com:debricked/dmarc-visualizer.git
まずはこのリポジトリをクローンします。
使い方については、公式ブログ を含め探せば見つかるので割愛します。
ただ、このままでは正常に動かなかったのでいくつか変更を加えます。
元のリポジトリに加えた変更
dmarc.sample.iniの複製
まずはparsedmarc
のサンプル設定ファイルがあるので、それをコピーして同階層に配置します。中身はサンプルのままで問題ありません。
cp parsedmarc/parsedmarc.sample.ini parsedmarc/parsedmarc.ini
No module named 'msgraph' の対応
準備ができたところでコンテナ群を立ち上げます。
docker compose up
ですが、parsedmarcのコンテナで、ModuleNotFoundError No module named 'msgraph'
というエラーが発生してしまいます。
これに関しては、こちらの記事を参考に修正させていただきました。
Grafana のバージョンを上げる
これで無事に全てのコンテナが立ち上がるのですが、localhost:3000
にアクセスしてみると、一部グラフが表示されていません。Grafana
でInvalid interval specified, must be non-null and non-empty
というエラーが出て、SPFアライメントやDKIMアライメントがどれだけ満たされているかを示す円グラフが表示できていませんでした。
これに関しては、こちらのissueを参考に修正させていただきました。
可視化されたDMARCレポートたち
いろんな受信メールサーバーからDMARCレポートが届いています。
メールの送信元をドメインやIPアドレスごとに降順で見ることもできます。
おわりに
元のリポジトリに修正を加えたコードはここに置いています。
この OSS のおかげで綺麗に可視化できたわけですが、毎日大量に届くDMARCレポートたちをいちいちダウンロードしてfiles
配下に配置するのは面倒な作業でした。
そこで番外編ですが、Gmailに届くDMARCレポートたちをGoogle ドライブに毎日自動で保存するスクリプトが便利でした。
以下の記事を参考にさせていただきました。
パソコン版ドライブ をダウンロードすることで以下のようなことができるようになります。
- クラウドに保存されているファイルをパソコンで直接開く
- 容量を使用せずにパソコンのファイル システムでファイルを表示、整理
- パソコンから Google ドライブにフォルダを同期する
- 同期すると、ファイルがクラウドからダウンロードされ、パソコンのハードドライブからアップロードされます。
- 同期が完了すると、パソコン内のファイルとクラウド上のファイルが一致します。
- ファイルは最新に保たれ、アクセスできる状態になっています。変更内容はすべてのデバイスに適用されます。
これを利用して、Google ドライブからdmarc-visualizer/files
配下にDMARCレポートたちをコピーします。
これでfiles
配下へのコピーが一段と楽になりました!
可視化したDMARCレポートたちの結果を見て対応を進めていこうと思います。