섭사장의 블로그

DMARC 리포트

September 18, 2018 | 2 Minute Read

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>