dmarc-report-converterでDMARCレポートを可視化してみる

2024/11/19 What's Up, 技術系 投稿者:

DNSのDMARCレコードにレポートの送信先を指定しておくことで、メールの受信者側からDMARCの判定結果のレポートを受け取ることができます。
しかし、DMARCレポートは人間が見て分かりやすいようにはなっていません。
そのため、DMARCレポートを可視化するツールやサービスが数多くあります。
今回はそのうちの一つ、「dmarc-report-converter」を試してみたのでご紹介します。

dmarc-report-converterについて

dmarc-report-converterはxml形式のDMARCレポートを人間が見て分かりやすい形式に変換するツールで、無償で利用できます。
出力できるファイルは「html」「txt」「json」などですが、html形式で出力してWebサーバ上で確認できるようにするのが基本的な使い方のようです。
任意でレポートファイルを読み込ませて変換するほかに、IMAPでレポート受信用のメールアカウントからデータを取得して変換することもできます。
DMARCレポートはメールで届くので、後者の使い方をする方が手間がなさそうです。

インストール

今回は下記の環境でdmarc-report-converterを使用します。

OS:AlmaLinux 9.4
Webサーバ:Apache 2.4

Webサーバ上で結果を確認したいのでApacheを用意していますが、htmlファイルを設置するだけなのでApache側に特別変わった設定は必要ありません。

githubからdmarc-report-converterをダウンロードして任意の場所に配置します。
今回は/optに配置しました。

設定ファイルのサンプルをコピーして書き換えます。
※変更部分のみ記載

これで/opt/dmarc-report-converter/dataに置かれたファイルを読み取って、/opt/dmarc-report-converter/outputに変換後のファイルが出力されます。
さっそくdataにDMARCレポートのサンプルを設置して変換をかけてみます。
サンプルとしてsender1.comからのレポート1件、sender2.comからのレポート2件という想定でxmlファイルを3つ作成してdataに設置しました。

変換はconfigを指定してdmarc-report-converterを実行するだけです。

変換を実行するとレポートの送信元ごとに分けてhtmlファイルが生成されます。
また、同じ送信元からのレポートが複数あった場合は自動的に1つにまとめられます。
上記では

  • /opt/dmarc-report-converter/output/2024-11-01-example.com/postmaster@sender1.com-1234567890.html
  • /opt/dmarc-report-converter/output/2024-11-01-example.com/postmaster@sender2.com-0987654321.html

この2つが生成されています。
これらのhtmlファイルをDLするなり、Webサーバからアクセスできる場所に設置するなりすれば結果を確認することができます。

sender1からのレポート(2024年11月1日のレポート)

sender2からのレポート(2024年11月1日~2024年11月2日のレポート2件がまとめられている)

「ip」が送信元のIPアドレス、右に続く項目がそこから送信されたメールの判定結果などです。
心当たりのないipが載っていたら、なりすましメールが送信されている可能性があります。
また、正規の送信元から送信されたメールの判定結果がfailになっているようなら、メールサーバやDNSの設定の見直しが必要です。
ちなみに、「hostname」には「ip」の逆引き結果が入りますが、サンプルなのでチェック機能をオフにしています。
逆引きのチェックを行う場合は、configを下記のように設定します。

出力を1つにまとめる

ところで、レポートの送信元ごとに出力ファイルを分けてくれるのは便利なところもあると思いますが、1つのhtmlファイルに出力された方が確認が楽な気がしました。
そこで、下記のように出力先を単一のファイルに固定してみましたが、結果としては最後に処理された分のレポートだけのhtmlファイルになってしまいました。

単一ファイルに出力させた結果(sender2のレポートのみになっている)

なにかいい方法はないかといくつか試してみたところ、下記のようにすることで全てのレポートを単一のHTMLファイルに出力できました。

dmarc-report.html(sender1のレポートとsender2のレポートが1つのhtmlにまとまっている)

これなら出力先を固定してすべての結果を確認できるので、Webサーバ上のどこか、例えば「https://サーバIP/dmarc-report.html」を定期的に確認するだけにできそうです。

IMAP設定

IMAPの設定をすると、IMAPサーバからレポートを取得して変換することができます。
動作としては、まずIMAPサーバからレポートを取得し、dirで指定したディレクトリに保存した後に変換を実行する、という形になるようです。
IMAPの設定は下記のようにします。

これで「dmarc@example.com」に届くレポートを自動的に集計できるようになります。

定期レポート作成

デフォルトだと変換に使用したデータは消えずに残りますが、週次・月次などのレポートを作成したい場合は古いデータを削除する必要があります。
一定期間ごとに定期レポートを作成したい場合は下記のように設定します。

上記の設定例では、毎週月曜日の7時までにdmarc@example.com宛てに到着したDMARCレポートが変換されて/var/www/html/dmarc-report.htmlに出力されます。
これなら週ごとに「https://サーバIP/dmarc-report.html」にアクセスするだけでDMARCレポートの確認ができます。
日次のレポートにしたい場合は毎日、月次のレポートにしたい場合は、毎月1日などに実行されるようにスケジュールを設定するだけです。

まとめ

DMARCレポートの可視化ツールはいろいろありますが、dmarc-report-converterは導入がとても簡単なのが良いところだと思います。
その分機能も最低限という感じなので、たとえば有料のサービス型ツールなどには当然劣ると思いますが、個人的にはこれで十分じゃないかなと思います。
DMARCを設定するなら、DMARCレポートはきちんと受け取って、こういった簡単なものでいいので確認するようにするべきでしょう。

カレンダー

    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
   1234
567891011
12131415161718
19202122232425
26272829   
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
  12345
6789101112
13141516171819
20212223242526
2728     
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
1234567
891011121314
15161718192021
22232425262728
       
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
     12
3456789
10111213141516
17181920212223
24252627282930
31      
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
     12
3456789
10111213141516
17181920212223
242526272829 
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
    123
45678910
11121314151617
18192021222324
25262728   
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
   1234
567891011
12131415161718
19202122232425
262728    
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
     12
3456789
10111213141516
17181920212223
24252627282930
31      
   1234
567891011
12131415161718
19202122232425
2627282930  
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728     
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
1234567
891011121314
15161718192021
22232425262728
29      
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
  12345
6789101112
13141516171819
20212223242526
27282930   
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
      1
2345678
9101112131415
16171819202122
232425262728 
       
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
     12
3456789
10111213141516
17181920212223
24252627282930
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
1234567
891011121314
15161718192021
22232425262728
2930     
       
    123
45678910
11121314151617
18192021222324
25262728293031
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
 123456
78910111213
14151617181920
21222324252627
282930    
       
     12
3456789
10111213141516
17181920212223
2425262728  
       
  12345
6789101112
13141516171819
20212223242526
2728293031  
       
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
    123
45678910
11121314151617
18192021222324
252627282930 
       
 123456
78910111213
14151617181920
21222324252627
28293031   
       
      1
2345678
9101112131415
16171819202122
23242526272829
30      
   1234
567891011
12131415161718
19202122232425
262728293031 
       
1234567
891011121314
15161718192021
22232425262728
293031    
       
U・Iターン転職しませんか?
群馬データセンター
群馬の法人ITサポートサービス Wide Net[ワイドネット]
Wide Netのクラウドバックアップ
クラウド型ファイル共有サービスRushDrive
ワイドオフィス
ネディアのSDGsへの取り組み