SPF 레코드 빌더
메커니즘·IP·include로 SPF TXT 레코드 작성, 실시간 DNS 조회 카운트와 경고.
v=spf1 mx ~all
- "~all"(소프트페일)은 처음 시작하기에 안전한 값입니다. DMARC 보고서가 깨끗해지면 "-all"로 강화하세요.
정점 도메인에 TXT 레코드로 발행. 도메인당 SPF 1개만 — 복수는 구성 오류.
사용법
- 발신자 파악 중엔 relaxed 프리셋(
~all)부터 — 소프트 페일은 미등록 정상 메일도 관대. - 외부 공급자는 항상 include:로 — IP 직접 붙이지 마, 로테이션됨.
- DMARC 리포트에 누락된 정상 출처 없을 때
-all로 강화.
자세한 설명
펼치기접기
어떤 호스트가 내 도메인으로 메일을 보낼 수 있는지 수신 서버에 알려 주는 v=spf1 TXT 레코드를 만들어 줍니다. 직접 쓰는 발송 주소는 ip4나 ip6로 넣고, 외부 발송 업체는 include: 메커니즘으로 끌어오고, 레코드를 어떻게 끝낼지 고릅니다. 출력 옆에는 조회 횟수 카운터가 붙어 있고, 흔한 함정에 경고가 켜집니다. 255바이트를 넘긴 레코드, 아무것도 주장하지 않는 ?all, 그리고 누구든 내 이름으로 보내도 좋다고 세상에 알리는 +all입니다.
사람들이 걸려 넘어지는 제약은 조회 예산입니다. RFC 7208은 한 번의 평가에서 DNS 조회를 최대 열 번까지만 허용하고, include, a, mx, ptr, exists, redirect가 각각 한 번씩 씁니다. 여기에 그들 자신의 레코드가 재귀적으로 쓰는 횟수까지 더해집니다. ip4와 ip6는 비용이 0인데, 한도를 넘어 자란 레코드를 푸는 표준적인 방법이 업체의 include를 그 실제 IP 대역으로 바꾸는 것인 이유가 이것입니다. 열 번을 넘기면 결과는 부드러운 실패가 아닙니다. 평가가 permerror를 돌려주고, 이를 실패로 취급하는 수신 서버는 배달되었어야 할 메일을 거부합니다.
이 레코드가 생각대로 작동하는지를 가르는 세부가 둘 있습니다. SPF는 봉투 발신자, 즉 수신된 메시지에서 Return-Path로 나타나는 MAIL FROM 주소를 인증하지, 수신자가 실제로 읽는 From: 헤더를 인증하지 않습니다. 어떤 메시지든 SPF를 깨끗이 통과하면서 화면에는 전혀 다른 발신 주소를 표시할 수 있고, DMARC의 정렬 검사가 존재하는 이유가 바로 이 틈입니다. 그리고 SPF는 단순 전달에서 깨집니다. 메일링 리스트나 전달 설정된 사서함은 자기 서버에서 메시지를 중계하는데, 봉투 발신자를 다시 쓰지 않는 한 내 잘못이 아닌 이유로 검사가 실패합니다. 누가 내 이름으로 보내는지 아직 파악하는 중이라면 -all 대신 ~all로 끝내라는 권고의 근거가 이것입니다.
도메인마다 v=spf1 레코드는 정확히 하나만 게시하세요. 두 개는 병합이 아니라 permerror입니다. 그리고 RFC 자신이 쓰지 말라고 하는 ptr은 넣지 마세요. TXT 문자열은 하나당 255바이트가 상한이고, 더 긴 레코드는 여러 문자열로 나뉘어 수신 측에서 이어 붙여지지만, 그게 필요한 레코드는 대개 평탄화가 필요한 레코드입니다.
자주 묻는 질문
왜 10회 조회 한도가 중요?
RFC 7208이 SPF 평가당 10회 DNS 조회 상한 (include:, a, mx, ptr, exists 각 1회). 초과 시 검증기 permerror 반환, 엄격 DMARC 정책 대부분 fail로 처리.
-all과 ~all 중 뭐가 안전?
-all(하드페일) 목표는 모든 발신자 등록 확신 후 — DMARC p=reject는 하드페일만 발동. ~all(소프트페일)은 더 안전한 부트스트랩; 메일은 도착하지만 격리됨.
한 도메인에 SPF 레코드를 두 개 둘 수 있나?
안 된다. v=spf1으로 시작하는 TXT 레코드를 둘 이상 공개하면 영구 오류이고, 수신 측은 하나를 고르는 대신 검사를 그냥 실패로 처리해도 된다. 새 발송 업체를 추가하면서 그쪽이 알려준 레코드를 기존 것 옆에 그대로 붙여넣을 때 흔히 벌어진다. 해결책은 메커니즘을 하나의 레코드로 합치고 끝에 all을 하나만 두는 것이다.
메일이 전달(포워딩)되면 SPF가 그대로 통하나?
대개 통하지 않는다. 단순 전달 서버는 자기 서버에서 메시지를 다시 보내는데 그 서버는 내 레코드에 없으므로, 아무 문제가 없어도 최종 수신지에서 SPF가 실패한다. SPF만으로 거부 판단을 하기 약한 이유이자 DKIM이 중요한 이유가 이것이다. DKIM 서명은 전달을 견디고, DMARC는 둘 중 하나만 통과해도 받아준다.
관련 도구
DMARC 레코드 빌더
_dmarc TXT 레코드 작성 — 정책·서브도메인 정책·퍼센트 롤아웃·정렬·rua/ruf 리포팅 — 안전 경고 포함.
네트워크
이메일 헤더 분석
원본 이메일 헤더 붙여넣기 → Received 홉 순서대로·홉간 지연·SPF/DKIM/DMARC 결과 확인.
네트워크
DKIM 레코드 빌더 & 파서
DKIM DNS TXT 레코드를 만들거나 분석 — 공개키와 selector·키 타입·해시·플래그를 넣으면 전체 레코드와 255자 초과용 청크 버전까지 나옵니다.
네트워크
TXT 레코드 분할기 (255바이트 청크)
긴 SPF·DKIM·DMARC TXT 레코드를 DNS 프로토콜이 요구하는 255바이트 청크로 분할 — BIND·일반 zone 파일·Cloudflare·Route 53 문법 출력.
네트워크
Content-Security-Policy 빌더
디렉티브별 소스 리스트로 CSP 헤더 빌드, 3개 시작 프리셋·위험한 와일드카드 실시간 경고.
네트워크
Permissions-Policy 헤더 빌더
Permissions-Policy 응답 헤더 빌드 — camera·microphone·geolocation·payment·fullscreen 등 20+ 브라우저 기능을 오리진 허용 리스트로 토글.
네트워크