"당신도 모르게 당신 도메인의 이름으로 피싱 메일이 나간다" — SPF / DKIM / DMARC가 그것을 막습니다. 각각의 역할과 안전하게 설정하는 법을 설명합니다.
각각의 역할
| 설정 | 역할 (한 줄) |
|---|---|
| SPF | 이 도메인을 위해 어느 서버가 보낼 수 있는지를 DNS에 선언 |
| DKIM | 메일이 변조되지 않았고 정당한 출처임을 증명하는 암호학적 서명을 추가 |
| DMARC | SPF/DKIM이 실패하면 무엇을 할지 선언하고 보고서를 받음 (셋을 묶는 쐐기돌) |
메일이 검증되는 과정
수신 측(Gmail 등)은 들어온 메시지에 대해 SPF와 DKIM을 검사한 뒤, 당신의 DMARC 정책을 적용해 "통과 / 격리 / 거부"를 결정합니다.
그래서 SPF와 DKIM만으로는 "검사는 하지만 아무것도 하지 않을" 수 있고, DMARC 정책이 있어야 비로소 "위장을 막는" 일이 됩니다.
안전하게 설정하는 법
올바른 SPF 레코드 하나
모든 정당한 발신자(자체, 메일 서비스 등)를 허가하세요. 도메인당 SPF 레코드는 하나로 유지하세요(여러 레코드는 망가지기 쉽습니다).
DKIM 서명 활성화
메일 플랫폼에서 DKIM을 켜고 공개 키를 DNS에 게시해, 정당한 메일이 서명되게 하세요. 발신에 쓰는 서비스가 여럿이라면 각각 별도 셀렉터로 서명을 켜, 한 곳이라도 서명이 빠져 DMARC에서 탈락하는 일이 없게 하세요.
DMARC를 p=none에서 시작
곧바로 거부하지 마세요. p=none(모니터링만) + 보고로 시작해, 정당한 메일이 누락되지 않는지 확인하세요. 보고서를 받을 주소(rua)를 반드시 지정해야 무엇이 통과하고 무엇이 실패하는지 실제로 보입니다 — 주소가 없으면 p=none은 그저 켜 두기만 한 상태입니다.
점진적으로 조이기
보고서에서 누락되는 정당한 발신자가 없음이 확인되면, p=quarantine → p=reject 로 옮겨, 마침내 "위장은 거부됨"에 도달하세요.
본 사이트의 견해: 당신의 사용자도 함께 지키는 것이다
SPF/DKIM/DMARC는 당신의 메일이 도착하는 것만의 문제가 아닙니다 — 그것은 당신의 도메인을 사칭하는 피싱으로부터 당신의 사용자를 지킵니다. 피싱은 결국 자격 증명과 키 탈취로 가는 입구입니다. 많은 도메인이 SPF/DKIM에서 멈추고 DMARC를 집행(reject)까지 올리지 않습니다. p=none에서 안주하지 말고, 보고서를 읽고 reject까지 끝까지 올려야 의미가 있습니다.
다음으로 읽기
- 기초: .env와 API 키가 왜 위험한가 (자격 증명 보호)
- 용어집: .env란
FAQ
QSPF / DKIM / DMARC는 무엇을 위한 것인가요?
수신 측(Gmail 등)이 당신의 도메인에서 온 메일이 진짜인지 검증할 수 있게 하기 위함입니다. 이들 없이는 누구나 당신의 이름으로 위장 피싱을 검증 없이 보낼 수 있고, 당신 도메인의 평판이 나빠집니다.
Q세 가지의 차이는 무엇인가요?
SPF는 '이 도메인을 위해 어느 서버가 보낼 수 있는가'를 선언하고, DKIM은 '변조되지 않았음을 증명하는 암호학적 서명'이며, DMARC는 'SPF/DKIM이 실패하면 무엇을 할지, 그리고 보고'입니다. DMARC가 SPF/DKIM을 묶어 실효성을 부여합니다.
Q설정할 때 무엇을 주의해야 하나요?
조이기 전에 모든 정당한 발신자(메일 서비스 등)를 허가하세요. 특히 DMARC는 곧바로 reject로 가면 정당한 메일이 누락될 수 있으니, p=none(모니터링만)에서 시작해 보고서를 읽은 뒤 p=quarantine → p=reject로 옮기세요.