DMARC
DMARC는 SPF와 DKIM의 검사 결과를 받는 서버가 어떻게 취급해야 할지 도메인 소유자가 선언하는 정책입니다. _dmarc 이름의 TXT 레코드로 공개합니다.
작성
DMARC(Domain-based Message Authentication, Reporting and Conformance)는 SPF와 DKIM의 검사 결과를 받는 서버가 어떻게 취급해야 하는지 도메인 소유자가 선언하는 정책입니다. SPF와 DKIM만 있으면 검사는 되지만 실패한 메일의 처리는 받는 서버가 알아서 정합니다. DMARC는 "인증에 실패한 메일은 격리하라" 또는 "거부하라"를 소유자가 직접 지정하고, 그 결과를 리포트로 돌려받게 합니다.
정책을 선언하는 레코드
정책은 도메인 앞에 _dmarc 를 붙인 이름의 TXT 레코드로 공개합니다.
_dmarc.example.co.kr. 3600 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.co.kr; pct=100; adkim=r; aspf=r"
| 태그 | 뜻 |
|---|---|
v=DMARC1 | DMARC 레코드임을 알리는 머리표. 맨 앞에 둡니다 |
p= | 실패한 메일의 처리 방침. none, quarantine, reject |
sp= | 하위 도메인에 적용할 별도 방침. 없으면 p= 를 따릅니다 |
rua= | 집계 리포트를 받을 주소 |
ruf= | 개별 실패 리포트를 받을 주소. 보내는 사업자가 적습니다 |
pct= | 방침을 적용할 메일의 비율. 단계적 적용에 씁니다 |
adkim= / aspf= | 정렬 기준. r은 느슨하게, s는 엄격하게 |
단계적으로 올리기
p=none 으로 시작한다
처리 방침은 바꾸지 않고 리포트만 받습니다. 기존 메일 흐름에 영향이 없으므로 안전하게 시작할 수 있습니다.
리포트로 발신 경로를 모두 찾는다
업무 메일, 고객 알림, 사내 시스템, 외부 발송 도구까지 정상 발신 경로가 전부 통과하는지 확인합니다. 보통 몇 주가 걸립니다.
p=quarantine 으로 올린다
실패한 메일이 스팸함으로 분류됩니다. pct 값으로 일부에만 먼저 적용해 볼 수 있습니다.
문제가 없으면 p=reject 로 올린다
실패한 메일이 아예 거부됩니다. 도메인 이름을 도용한 메일이 수신자에게 도달하지 않게 되는 단계입니다.
정렬의 의미
DMARC의 핵심은 정렬(alignment)입니다. SPF와 DKIM은 각자 자기가 보는 도메인을 검사하지만, 수신자가 화면에서 보는 것은 From 헤더의 주소입니다. DMARC는 인증이 통과한 도메인이 이 From 도메인과 같은 계열일 때만 합격으로 봅니다.
- SPF 정렬: SPF가 검사하는 봉투 발신 도메인(Return-Path)이 From 도메인과 맞아야 합니다.
- DKIM 정렬: 서명에 적힌
d=도메인이 From 도메인과 맞아야 합니다. - 둘 중 하나만 정렬되고 통과해도 DMARC는 합격입니다. 그래서 전달로 SPF가 깨져도 DKIM이 남아 있으면 통과합니다.
- 기준이 느슨하면(
r) 하위 도메인까지 같은 계열로 인정하고, 엄격하면(s) 완전히 같은 이름이어야 합니다.
외부 발송 도구는 기본 상태에서 자기 도메인으로 SPF를 통과시키는 경우가 많습니다. SPF 결과는 통과인데 정렬이 맞지 않아 DMARC가 실패하는 전형적인 사례이고, 도구가 제공하는 전용 발신 도메인 설정으로 맞춰야 합니다.
집계 리포트를 읽는 이유
rua 로 오는 집계 리포트는 어떤 IP가 우리 도메인 이름으로 메일을 보냈고 각각 SPF와 DKIM을 통과했는지를 하루 단위로 요약한 XML입니다. 읽는 목적은 두 가지입니다. 방침을 올리기 전에 모르던 정상 발신 경로를 찾아 차단 사고를 막고, 도메인 이름이 사칭에 쓰이는지 확인하는 것입니다.
설정 절차는 SPF, DKIM, DMARC 설정에, 도달률 관점의 점검표는 메일 도달률 높이기에 있습니다.
자주 묻는 질문
권하지 않습니다. 회사 도메인으로 메일을 보내는 경로는 생각보다 많아서, 업무 메일 외에 알림 발송 도구나 사내 시스템이 빠져 있으면 정상 메일이 거부됩니다. p=none 으로 리포트를 몇 주 받아 발신 경로를 모두 확인한 뒤 단계적으로 올리는 편이 안전합니다.
정렬(alignment)이 맞지 않기 때문입니다. DMARC는 SPF나 DKIM이 통과하는 것만으로는 부족하고, 그때 검사된 도메인이 받는 사람에게 보이는 From 주소의 도메인과 같은 계열이어야 합니다. 외부 발송 도구가 자기 도메인으로 SPF를 통과시키는 구성이 대표적인 경우입니다.
rua 주소로 하루 단위 XML이 압축되어 옵니다. 사람이 직접 읽기는 번거로우니 무료 또는 유료 분석 도구에 연결해 발신 IP별 통과 여부를 표로 보는 방식이 일반적입니다. 모르는 IP에서 대량 발송이 잡히면 위조이거나 빠뜨린 사내 시스템입니다.
관련 가이드
- 회사 메일 스팸함 방지: SPF, DKIM, DMARC 설정회사 도메인으로 보낸 메일이 스팸함에 들어가지 않으려면 DNS에 SPF, DKIM, DMARC 세 레코드를 넣어야 합니다. 각 레코드의 역할, 설정 절차, 검증 방법, 흔한 실수를 정리했습니다.
- 보낸 메일이 스팸함에 들어갈 때 점검 순서보낸 메일이 스팸함으로 분류될 때 원인을 좁혀 가는 순서입니다. 메일 헤더에서 인증 결과 읽기, From 정렬, PTR과 정방향 DNS, 발송 IP 평판과 블랙리스트, 콘텐츠와 수신 거부 처리까지 위에서부터 확인합니다.
- 회사 메일이 오지 않을 때받는 메일이 안 오는 경우와 보낸 메일이 상대에게 안 가는 경우는 원인이 완전히 다릅니다. MX 확인, 스팸 필터와 용량, 인증 실패, 바운스 코드 읽기까지 증상별 진단 절차를 정리했습니다.