DMARC 리포트
DMARC
DMARC: https://dmarc.org/
Domain-based Message Authentication, Reporting & Conformance.
SPF와 DKIM을 사용하는 이메일 인증 프로토콜이다.
이전 글에서 G Suite 세팅시 설정하는 방법을 다루었으므로, 자세한 설명은 생략한다.
G Suite DMARC 설정하기: https://jeesub.github.io/blog/G-Suite-%EC%9D%B4%EB%A9%94%EC%9D%BC-%EC%88%98%EC%8B%A0-%EB%B0%9C%EC%8B%A0-%EC%84%A4%EC%A0%95/
rua 옵션을 설정해 놓았을 경우, 리포트를 메일로 보내준다. xml 파일로 온 실제 리포트를 단락씩 가져왔다. 각 라인에 주석으로 다음 줄의 의미를 적어놓았다.
메타데이터
<report_metadata>
<!-- report를 보내준 주체 -->
<org_name>google.com</org_name>
<email>noreply-dmarc-support@google.com</email>
<extra_contact_info>https://support.google.com/a/answer/2466580</extra_contact_info>
<report_id>#################</report_id>
<!-- 어느 기간의 리포트인가 -->
<date_range>
<begin>##########</begin>
<end>##########</end>
</date_range>
</report_metadata>
발행되어있는 정책
설정되어있는 정책. 본인 혹은 동료가 설정해놓은 것이다.
<policy_published>
<!-- 도메인 -->
<domain>yourdomain.com</domain>
<!-- dkim 설정. r / s 중 하나다. r은 느슨함, s는 엄격함. -->
<adkim>r</adkim>
<!-- spf 설정. r / s 중 하나다. r은 느슨함, s는 엄격함. -->
<aspf>r</aspf>
<!-- policy 설정. none / quarantine / reject 중 하나다. -->
<!-- none은 없음, quarantine은 스팸조치, reject는 메일 거부 -->
<p>none</p>
<!-- 서브도메인 policy 설정 -->
<sp>none</sp>
<!-- 퍼센트 설정. 전체 메일의 몇 퍼센트에 대해 설정된 DMARC 정책을 적용할 것인가. -->
<pct>100</pct>
</policy_published>
레코드
레코드는 여러개가 있을 수 있다. 메일 서버가 여러개라면 여러개의 레코드가 나온다. 각 레코드 별로 구조는 유사하다.
<!-- 여기서부터 각 리포트 시작 -->
<record>
<row>
<!-- 메일이 발송된 IP. -->
<source_ip>###.###.###.###</source_ip>
<!-- 몇 통의 메일이 해당되는가 -->
<count>123</count>
<policy_evaluated>
<disposition>none</disposition>
<!-- DKIM pass 여부. pass / fail -->
<dkim>pass</dkim>
<!-- SPF pass 여부. pass / fail -->
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>yourdomain.com</header_from>
</identifiers>
<auth_results>
<!-- DKIM 결과 리포트 -->
<dkim>
<domain>yourdomain.com</domain>
<!-- DKIM 결과. pass / fail -->
<result>pass</result>
<!-- selector를 통해서 어떤 메일서버의 DKIM인지 파악할 수 있다. DKIM을 생성할 때 selector를 정했을 것이다. -->
<selector>selector</selector>
</dkim>
<!-- SPF 결과 리포트 -->
<spf>
<domain>mailserver.com</domain>
<!-- SPF 결과. pass / fail -->
<result>fail</result>
</spf>
</auth_results>
</record>