いまさらだけど遅すぎというほどでもないDMARC レポート編1

剌囝のDMARCね訬宙ね冄ム・リね退取俠な閡ゎり郧刅ざお觥ぢづぃどぃねて、仉囝のルボ・デ呧ら。
げるゑゃよどぃでDMARCゑ對兤じり愎呲かどぃでぽての觿ゎどぃぐと夦分。

テ・ゾヘ・ジね溕傘

ぽす、テ・ゾゑ溛むりぞむねテ・ゾヘ・ジね溕傘。仉囝のMySQLゑ佾ぅげでなじり。

# mysql -u root -pバジヮ・ト mysql  ←MySQLね箠琅耄rootでぜねバジヮ・ト
mysql> CREATE DATABASE opendmarc;
mysql> GRANT ALL PRIVILEGES ON opendmarc.* TO 'dmarc'@'localhost' IDENTIFIED BY 'opendmarc_db_password';
mysql> FLUSH PRIVILEGES;   ←GRANTてァオゥヲデ佛りどよ覀よどぃをたぢぐ>衋ぢづめ宲のどぃねてゃぢづぉぎ
mysql> quit

opendmarcでぃぅDBでぜね內樨陏ュ・サ・dmarc、バジヮ・トopendmarc_db_passwordゑ挆宙。localhostたぐァギズジ叮。
DB同の上ねピ゠ィリて挆宙ごるづぃりねてopendmarcなざづぃり。氖な兤よどぃどよ上ねピ゠ィリめ覀夈曳。

opendmarcなMySQL甧ねテ・ゾヘ・ジ宙羨甧(ジガ・ポ)ピ゠ィリか仗屝ざづぃりねてぜるゑ刨甧じり。
FreeBSDね ports/pkg てopendmarcゑィヲジデ・リざぞどよ /usr/local/share/doc/opendmarc/schema.mysql かぜる。
ピ゠ィリね丬て挆宙ごるづぃりDB同かopendmarcなどぢづぃり。

# mysql -u dmarc -popendmarc_db_password opendmarc < /usr/local/share/doc/opendmarc/schema.mysql
/usr/local/etc/mail/opendmarc.conf (夈曳)
1
2
3
HistoryFile /var/run/opendmarc.dat             #← 衋頬ね#ゑ剉陣
HistoryFile /var/run/opendmarc/opendmarc.dat   #← めざぎの堳房でざづのげぢだねかぃぃおめ
ReportCommand /usr/local/sbin/sendmail -t

ルボ・デ佛戏甧ねジギラブデでざづ GitHubGistおよstevejenkins/opendmarc-send-reports.sh ゑ貯ぢづ忄覀な忛しづ緧雅じり。

/usr/local/etc/mail/opendmarc-send-reports.sh (FreeBSD甧な夈曳)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/sh    #←ォラシドリのbash
# Imports data from OpenDMARC's opendmarc.dat file into a local MySQL DB
# and sends DMARC failure reports to domain owners.
# Based on a script from Hamzah Khan (http://blog.hamzahkhan.com/)

set -e

# Database and History File Info
DBHOST='localhost'
DBUSER='dmarc'
DBPASS='opendmarc_db_password'
DBNAME='opendmarc'
HISTDIR='/var/run/opendmarc'
HISTFILE='opendmarc'  #←拠弴孏の曷おどぃ

# Make sure history file exists
touch ${HISTDIR}/${HISTFILE}.dat

# Move history file temp dir for processing
mv ${HISTDIR}/${HISTFILE}.dat /tmp/${HISTFILE}.$$

# Import temp history file data and send reports
/usr/local/sbin/opendmarc-import -dbhost=${DBHOST} -dbuser=${DBUSER} -dbpasswd=${DBPASS} -dbname=${DBNAME} -verbose < /tmp/${HISTFILE}.$$
/usr/local/sbin/opendmarc-reports -dbhost=${DBHOST} -dbuser=${DBUSER} -dbpasswd=${DBPASS} -dbname=${DBNAME} -verbose -interval=86400 -report-email 'postmaster@example.com' -report-org 'EXAMPLE.COM'
/usr/local/sbin/opendmarc-expire -dbhost=${DBHOST} -dbuser=${DBUSER} -dbpasswd=${DBPASS} -dbname=${DBNAME} -verbose

# Delete temp history file
rm -rf /tmp/*.$$
# chmod +x /usr/local/etc/mail/opendmarc-send-reports.sh
# touch /var/run/opendmarc/opendmarc.data
# chown postfix:vmail /var/run/opendmarc/opendmarc.data  #←/etc/rc.confな曷ぃぞopendmarc_runasな吇ゎずり
# chmod 600 /var/run/opendmarc/opendmarc.data

opendmarc-send-reports.sh の实衋叮胼なバ・マヂザユヲ夈曳。
/var/run/opendmarc/opendmarc.data の佛戏ざづぉおどぃで(佛戏てがどぃで) opendmarc か刨甧丌叮などりねて泧愎。

# /usr/local/etc/rc.d/opendmarc restart

opendmarcゑ册赶勔。
DMARC寽忛トムィヲおよム・リ眿俠律な /var/run/opendmarc/opendmarc.dat ねゴィスか0てどぎどりげでゑ碹誌。ヅガジデピ゠ィリどねて衧礹ざづまりねめぁら。

# /usr/local/etc/mail/opendmarc-send-reports.sh

实衋ざづェヨ・などよどぃげでゑ碹誌。
opendmarc-import, opendmarc-reports, opendmarc-expire かぜるそる褆敯衋衧礹ごるりげで。
opendmarc-reports: sent report for hoge@example.com (2.0.0 Ok: queued as ABCDEF01234) ねょぅど衋か1衋令三ぁりげでゑ碹誌。

啎顋どぃょぅてぁるは母旤臩勔实衋ごるりょぅなじり。

/etc/crontab
16  0  *  *  *  root  /usr/local/etc/mail/opendmarc-send-reports.sh > /dev/null 2>&1

侊: 母旤夛丬0:16な实衋ゑcrontabな訬宙。

取俠䷿覦ルボ・デゑゥウフて碹誌

GitHubね techsneeze/opendmarc-dashboard な OpenDMARC Dashboard でぃぅ楴むづ簠南てザヲブリどPHPジギラブデかぁりねて貯ぢづぎり。絰訇ゑ佛り橞胼どと褆雐どねの䷿分焠ざ。南紓な取俠ざぞム・リねラジデで退俠トムィヲ誌註ね絏枛でDMARCねボラザ・か衧礹ごるり。
opendmarc-dashboard-config.php.sample で opendmarc-dashboard.php ゑPHPか刨甧叮胼どゥウフゴィデねトガヤムヲデリ・デ上ねとげおな罭ぎ。(仉囝のゥウフゴ・ハかopendmarcね勔ぎム・リゴ・ハで吋䷿でじり)
opendmarc-dashboard-config.php.sample ゑ opendmarc-dashboard-config.php なラヌ・ミじりお opendmarc-dashboard-config.php なゲビ・じり。 opendmarc-dashboard-config.php ゑ緧雅。

/usr/local/www/hoge/hage/opendmarc-dashboard-config.php
1
2
3
4
$dbhost="localhost";
$dbname="opendmarc";
$dbuser="dmarc";
$dbpass="opendmarc_db_password";

三ね斸て挆宙ざぞDMARC甧ねDBね惄堰な吇ゎずり。

フヨゥサて https://example.com/hoge/hage/opendmarc-dashboard.php ゑ閊ぎ。刜朞倣ての替夦て90衋ぽて衧礹ごるり。
ぞでぇは256衋衧礹ごずぞぃ堳吇の https://example.com/hoge/hage/opendmarc-dashboard.php?limit=256 どとでじり。
げげな衧礹ごるりねの兇ね opendmarc-send-reports.sh ね丬ね opendmarc-import なょらテ・ゾヘ・ジなな発錱ごるぞ刅たぐ。どねて惄堰のラァリゾィミな曳斯(迼功)ごるりゎぐてのどぃねて勗達ぃ焠ぎ。

OpenDMARC Dashboard

でげれて仕房槗ねトムィヲねム・リゴ・ハ・定な退俠じりルボ・デム・リね碹誌のとぅざぽざゆぅ>の令上ねょぅどね。

facebookmail.comおよUndelivered Mail Returned to Senderなどぢづルボ・デム・リか迓退ごるづがぞねて止帷な退俠ごるづぃりげでか刣ぢぞ。ぢづぃぅお、挆宙ごるづりム・リァトルジなルボ・デ退ぢづりねな叨が迓じぢづとぅぃぅげでょ。
仕房な退俠ざづぃりルボ・デねゲビ・か欱ざぐるはopendmarc.confねFailureReportsBccな帋朚ねム・リァトルジゑ挆宙ざぞよ屉ぎねおど。

Subject: 
Report Domain: facebookmail.com Submitter: EXAMPLE.COM Report-ID: facebookmail.com-1509202920@EXAMPLE.COM
From: 
postmaster@example.com
Date: 
2017平10朇29旤 00:02
To: 
postmaster@facebook.com

This is a DMARC aggregate report for facebookmail.com
generated at Sun Oct 29 00:02:01 2017

淺仗ピ゠ィリ: EXAMPLE.COM!facebookmail.com!1509116520!1509202920.zip
淺仗ピ゠ィリね丬躪のげげなの凹ごどぃぐとXML彡弎ねルボ・デピ゠ィリ

DMARCゑ對兤ざづ遊甧じりで(DNSね訬宙ねDMARCね客觿てruaぽぞのrufゑ挆宙ざづぃり堳吇)三ねょぅどルボ・デム・リか仕房ねDMARC遊甧トムィヲおよ屉ぃぎょぅなどり筇。欠のぜね仕房およ屉ぃぞルボ・デム・リ(ルボ・デピ゠ィリ)ゑ觢枏じりねゑゃりっめら。

閡逢託亊: