이메일 인증
SPF 레코드 등록
도메인의 txt 레코드를 조회하여 IP를 확인한다.
DNS 관리자 TXT 레코드에 v=spf1 ip4:{메일발송IP} ~all
형태로 등록한다.
등록 후 시간이 좀 지난 뒤 터미널에서
nslookup
set type=txt
{도메인}
순으로 입력 시 등록한 IP가 조회되면 정상적으로 등록 된 것.
A 레코드 등록
smtp 통신 시 메일 수신 서버가 PTR 레코드와 A레코드의 일치 여부를 확인 할 수 있다.
A레코드는 Address 레코드로 등록한 도메인으로 접속 시 등록된 IP로 접속시켜주는 역할을 한다.
이전까지는 TXT, PTR레코드만 등록하였으나 EHELO 동작 시 PTR 레코드가 IP와 일치하지 않는다는 오류가 발생했다.
550-5.7.25 PTR record setup, or the corresponding forward DNS entry does not
PTR 레코드는 A레코드의 역방향으로 둘이 일치하지 않으면 위와 같은 문제가 발생 할 수 있다.
PTR 레코드 등록
역방향 조회로 이번엔 IP를 검색하여 도메인을 조회해온다.
DNS관리자에서 등록할 수 없으며, ISP 업체를 통해 등록 해야한다.
동일하게 시간이 좀 지난 뒤 터미널에서
nslookup
set type=ptr
{IP}
순으로 입력하면 도메인을 조회해 올 수 있다.
PTR 등록 레코드 요청 시 도메인은 서브 도메인이 무조건 들어가야 한다.
DKIM 서명
RSA 개인키를 이용해 헤더와 본문 일부를 암호화 하여 발송하고,
도메인에 등록된 공개키를 이용해 서명의 유효성을 검증한다.
때문에 RSA 공개키/개인키 를 생성 하고, DNS TXT 레코드에 추가한다.
등록 할 때 도메인은
<selector>._domainkey.<domain>
에
v=DKIM1; k=rsa; p=<공개키>
형식으로 저장한다.
비공개 키는 안전하게 보관했다가 본문 헤더 및 서명 생성 시 사용된다.
dkim 공개키를 조회하는 방법은
nslookup -q=txt <selector>._domainkey.<domain>
을 입력 하면 된다.
수신받은 메일 중 원문보기를 통해 보면 위와 같이 dkim 서명 내용과 selector등을 조회 해 올 수 있다.
DMARC
dmarc는 메일 본문에는 작업이 필요 없고, DNS에 레코드 등록만 하면 되는 듯 하다.
_dmarc.yourdomain.com TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com"
DMARC는 인증 항목을 보긴 했으나 직접 설정하여 운영해보진 않았다.
dmarc 레코드를 조회해 보는 방법은 아래와 같다.
nslookup -q=txt _dmarc.<domain>
인증 정보 확인
이메일에서 원문보기를 클릭하면 위와같이 SPF, DKIM, DMARC 인증을 확인 할 수 있다.
또한 본문 내용을 확인 할 수 있어 어떤 헤더 값들이 들어가있는지 확인이 가능하다.
이를 통해 필요 헤더와 옵션 값을 확인하고 서치하여 이메일 솔루션을 고도화 할 수 있었다.