[AWS] 메일서버 spf, dmarc, dkim 쉬운정리

네이버, 다음 같은 국내 포털은
spf, dmarc, dkim 레코드가 잘 되어있지 않더라도 메일을 수신해준다

하지만 해외메일서버는 좀 다르다.

spf, dmarc, dkim 레코드가 없으면 아에 블락처리를 해버린다.
이런 레코드들이 잘 갖추어져 있다하더라도 스팸함으로 들어가버리기 다반수
스팸처리 안되려면 reverse DNS를 해야하는것 같은데 ISP나 AWS에서는 답장을 안해준다...

어쨋든 스팸함으로 들어가든 말든, 블락처리라도 당하지말자. 할수있는데까지 해보자

spf, dmarc, dkim 순서대로 발전해왔지만, 중요한건 셋다 해야한다는것.
여러 어려운 문법들이 존재하지만, 여기서는 개인 메일서버를 운영한다고 생각하고 기본만 주입한다. 자세한 뜻을 다루는 포스팅들도 있으니 검색해보길


시작전 주의할점

같은 도메인을 쓰는데
메일서버를 웹서버와 다른 컴퓨터에 각각 구축하고싶은 사람이 있을것이다.

예시.
웹서버 ip : 1.1.1.1
메일서버 ip: 2.2.2.2

DNS 작성법
your-domain.com                     A          1.1.1.1
your-domain.com                   MX        10 mail.your-domain.com
mail.your-domain.com             A          2.2.2.2
your-domain.com                   TXT       "v=spf1   `~!@~#$~@$~@"
_dmarc.your-domain.com      TXT       "DMARC !@#!@#~#~#"
dkim._domainkey.your-domain.com      TXT       "!@#$@!#%!"

호스트네임에 주의해야함..

1. spf레코드

DNS로 가서 TXT레코드를 작성한다.
your-domain.com   TXT   "v=spf1 ip4:123.123.123.123 ~all"
123.123.123.123 을 자기 ip로 바꾸는것 정도는 안다고 생각한다

여기서 확인가능


2. dmarc레코드

DNS로 가서 TXT레코드를 작성한다
_dmarc.your-domain.com      TXT      "v=DMARC1; p=quarantine"


여기서 확인가능

3. dkim 레코드

이것은 조금 복잡다. 

이분의 블로그가 정말 설명을 잘해주셨다. 

덧붙이고 싶은것은 

Selector를 mail로 하셨는데 자기마음대로 이름을 지정해줘도 된다. 만약 바꾼다면 블로그에 나오는 mail을 모두 바꾼이름으로 변경해야한다.

Socket은 unix소켓방법으로 해보니 잘 안되더라. 이분의 블로그대로 tcp소켓을 이용하는것이 잘된다.

DNS에서 TXT레코드를 작성해야할때, 조심해서 잘 해야한다. 긴 문장이 세개의 큰따움표 구간으로 나뉘어 있는데 
각 구간사이에 줄나눔이 있으면 안되고 스페이스 하나만 존재해야한다.
예시) "foo" "boo" "too"     이런식으로
"foo"\n"boo"\n"too" 이런식이 되면 안된다. 말로하니 어려운데.... 잘 생각해보길

여기서 확인가능

No comments:

Post a Comment