DMARC 레코드 생성기
정책·리포트 주소를 선택해 DMARC TXT 레코드를 생성합니다.
DMARC(Domain-based Message Authentication, Reporting & Conformance)는 SPF와 DKIM 위에서 동작하는 이메일 인증 정책입니다. 발신 도메인을 사칭한 피싱·스푸핑 메일을 수신 서버가 어떻게 처리할지(통과·격리·거부)를 지정하고, 인증 결과를 리포트로 받아볼 수 있게 해줍니다. 이 생성기는 정책(p), 하위 도메인 정책(sp), 적용 비율(pct), 집계·실패 리포트 주소(rua/ruf), 정렬 모드(adkim/aspf)를 골라 올바른 DMARC TXT 레코드를 즉시 만들어 줍니다.
만들어진 값은 도메인의 _dmarc 서브도메인에 TXT 레코드로 등록하면 됩니다. 처음 도입할 때는 p=none으로 모니터링부터 시작해 리포트로 정상 흐름을 확인한 뒤, 단계적으로 quarantine·reject로 강화하는 것이 안전합니다. 모든 처리는 브라우저에서만 이뤄지며 입력값은 외부로 전송되지 않습니다.
v=DMARC1; p=none
DMARC 태그 한눈에 보기
DMARC 레코드는 세미콜론으로 구분된 태그=값 쌍으로 구성됩니다. 자주 쓰는 태그는 다음과 같습니다.
- v: 버전. 항상
DMARC1이며 맨 앞에 와야 합니다. - p: 도메인 정책.
none(처리 안 함·모니터링) /quarantine(스팸함 격리) /reject(수신 거부). - sp: 하위 도메인 정책. 지정하지 않으면 p 값을 상속합니다.
- pct: 정책 적용 비율(0~100). 예를 들어
pct=25면 격리·거부 정책을 메일의 25%에만 적용해 점진적으로 도입할 수 있습니다. - rua: 집계(aggregate) 리포트를 받을 주소.
mailto:형식으로 등록됩니다. - ruf: 실패(forensic) 리포트를 받을 주소. 개인정보 문제로 일부 수신 서버는 지원하지 않습니다.
- adkim / aspf: DKIM·SPF 정렬 모드.
r(relaxed, 기본) 또는s(strict).
등록 방법
- DNS 호스트 이름을
_dmarc.example.com으로 지정합니다(루트 도메인 대상). 하위 도메인용이면_dmarc.sub.example.com. - 레코드 타입을 TXT로 선택합니다.
- 이 도구가 생성한 값을 그대로 붙여넣고 저장합니다.
- 전파 후
dig TXT _dmarc.example.com등으로 조회해 정상 등록을 확인합니다.
단계적 강화 전략
처음부터 p=reject를 쓰면 정상 메일이 차단될 위험이 있습니다. 권장 순서는 none → quarantine → reject이며, 격리·거부로 넘어갈 때는 pct를 낮은 값에서 시작해 리포트를 보며 점차 100으로 올립니다. SPF와 DKIM이 모든 발신 경로에서 정렬(alignment)되도록 먼저 정비하는 것이 핵심입니다. 레코드를 등록한 뒤에는 DMARC 레코드 조회·검사로 실제 반영을 확인하세요.
실제 레코드 해석 예시
아래는 quarantine 단계로 넘어가는 중인 도메인의 전형적인 레코드입니다. 각 태그가 어떻게 읽히는지 하나씩 풀어보겠습니다.
v=DMARC1; p=quarantine; sp=reject; pct=50; rua=mailto:dmarc@example.com; ruf=mailto:forensic@example.com; adkim=s; aspf=r; fo=1
p=quarantine+pct=50: 인증에 실패한 메일의 절반만 스팸함으로 보내고, 나머지 절반은 통과시킵니다(점진 도입).sp=reject: 루트 도메인은 quarantine지만 하위 도메인은 더 엄격하게 거부합니다. 쓰지 않는 서브도메인 사칭을 막는 데 유용합니다.adkim=s: DKIM 서명 도메인이 From 도메인과 정확히 일치해야 정렬로 인정합니다(서브도메인 불일치 시 실패).fo=1: SPF 또는 DKIM 중 하나라도 정렬에 실패하면 실패 리포트를 생성합니다(기본값0은 둘 다 실패할 때만).
덜 알려진 태그 참고표
위 생성기가 다루지 않거나 기본값에 가려진 태그들도 알아두면 리포트 수신을 정밀하게 제어할 수 있습니다.
| 태그 | 기본값 | 의미 |
|---|---|---|
fo | 0 | 실패 리포트 생성 조건. 0=SPF·DKIM 모두 실패, 1=둘 중 하나라도 실패, d=DKIM 실패, s=SPF 실패. |
rf | afrf | 실패 리포트 형식. 사실상 afrf(Authentication Failure Reporting Format)만 통용됩니다. |
ri | 86400 | 집계 리포트 요청 주기(초). 기본 24시간이며, 대부분의 수신 서버는 하루 1회로 고정 운영합니다. |
sp | p 상속 | 하위 도메인 정책. 명시하지 않으면 p 값을 따릅니다. 와일드카드 서브도메인 사칭 방어에 sp=reject가 효과적입니다. |
흔한 실수 / 함정
- 외부 도메인으로 리포트를 보낼 때 권한 레코드 누락:
rua/ruf의 mailto 도메인이 발신 도메인과 다르면(예:example.com레코드인데reports.vendor.com으로 수신), 받는 쪽에example.com._report._dmarc.reports.vendor.comTXT 레코드(v=DMARC1)를 따로 등록해야 합니다. 이게 없으면 외부 리포트가 조용히 버려집니다. - pct는 reject/quarantine에만 적용:
p=none; pct=50처럼 써도 모니터링 단계에서는 의미가 없습니다. pct는 격리·거부 비율 조절용입니다.
자주 묻는 질문
DMARC만 설정하면 끝인가요?
p=none과 reject의 차이는 무엇인가요?
rua와 ruf의 차이는 무엇인가요?
adkim/aspf의 relaxed와 strict 차이는?
입력한 이메일 주소가 외부로 전송되나요?
관련 가이드
- SPF 10회 조회 한도 초과(permerror) 해결SPF의 10회 DNS 조회 한도를 넘겨 permerror가 날 때 원인 진단과 평탄화로 해결하는 법.
- DMARC p=none → quarantine → reject 안전 전환 가이드DMARC 정책을 모니터링(none)에서 격리·거부로 단계적으로 강화하는 안전한 절차.
- DKIM 설정 방법: 키 생성부터 DNS 등록·검증까지DKIM 서명이 동작하는 원리와 selector 개념, 키 생성·DNS 등록·정상 동작 확인 절차.