본문 바로가기

IT/팁 & 에러노트

DNS - SPF Record (Sender Policy Framework)

728x90

최근 회사 서비스를 받는 업체 중 메일리포팅을 해야하는 경우가 있어 메일발송기능을 추가하였는데

해외에서 혹은 국내 일부에서 수신이 안된다는 경우가 발생하여 스팸서비스쪽을 의심하였는데 

아래와 같이 SPF 필터에서 차단된 경우로 확인하였습니다.

 

내용인즉, 해당 도메인에 DNS 레코드 중  SPF 레코드를 등록해놓지 않으면 

 

1. 임의의 서버에서 스팸발송자로 도메인이 쓰일수있다는 점.

2. 정상적인 발송임에도 SPF 레코드 등록되지 않는 경우 스팸으로 오인되어 수신자가 메일을 못 받아볼수 있다는 점.

 

등록 필수!

 

간단하면서 상세한 내용은 아래와 같습니다.

 

SPF의 이해

 

도메인에 대한 SPF(Sender Policy Framework) 레코드를 만드는 것이 좋습니다. 

SPF 레코드는 도메인을 대표하여 이메일을 보낼 수 있는 메일 서버를 식별하는 DNS(Domain Name Service) 레코드의 한 유형입니다.

 

SPF 레코드의 목적은 스팸 발송자가 도메인의 위조된 '보낸사람' 주소를 사용하여 메일을 보내지 못하도록 하는 것입니다. 

수신자는 SPF 레코드를 참조하여 자신의 도메인에서 보낸 것처럼 위장한 메일이 인증된 메일 서버에서 전송된 것인지를 판별할 수 있습니다.

 

예를 들어 example.com 도메인에서 Gmail을 사용한다고 가정해 보겠습니다. 

Google Apps 메일 서버를 도메인에 대한 인증된 메일 서버로 식별하는 SPF 레코드를 만듭니다. 

수신자의 메일 서버가 user@example.com에서 보낸 메일을 수신하는 경우, example.com에 대한 SPF 레코드를 확인하여 유효한 메일인지 여부를 판별할 수 있습니다. 

메일이 SPF 레코드에 나열된 Google Apps 메일 서버가 아닌 다른 서버에서 전송된 경우 수신자의 메일 서버에서 이를 스팸으로 간주하여 수신 거부할 수도 있습니다.

 

도메인에 SPF 레코드가 없는 경우에는 수신자 도메인에서 메일이 인증된 메일 서버에서 전송된 것인지를 확인할 수 없으므로 사용자의 메일이 수신 거부될 수도 있습니다.

 

 

SPF 작성 도우미  : 한국인터넷진흥원 바로가기

 

 

KISA 에서 제공하는 도우미로 작성된 예입니다.


Unix 계열 DNS ZONE 설정

 

아래의 2개의 주황색 권고안 중에서 하나만 복사한 후 zone 파일에 적용하고, DNS 서비스를 재시작합니다.

 
 
 

www.uhoon.co.kr. IN TXT "v=spf1 ip4:1.1.1.1 -all"

 

의미: 위 메일발송IP를 위조하여 보내온 메일은 수신자의 메일서버에서 drop시켜라.

 

www.uhoon.co.kr. IN TXT "v=spf1 ip4:1.1.1.1 ~all"

 

의미: 위 메일발송IP를 위조하여 보내온 메일은 수신자의 메일서버의 정책에 따라 판단하라

 
 
 

Windows DNS ZONE 설정 

 

v=spf1 ip4:1.1.1.1 -all

 

v=spf1 ip4:1.1.1.1 ~all

 
 
 

SPF 등록정보 확인

DNS ZONE파일을 변경한 다음, 하루 이상이 지난후 확인을 해야 모든 DNS에 올바른 설정 값이 나타납니다. 모든 DNS가 Refresh가 되는 시간이 필요합니다.

다음과 같이 SPF 레코드 등록정보를 확인할 수 있습니다.

 

1) dig 명령어 사용

# dig kisarbl.or.kr txt (조회하려는 도메인명과 DNS record type 입력)

; <<>> DiG 8.3 <<>> kisarbl.or.kr txt 
;; res options: init recurs defnam dnsrch
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; QUERY SECTION:
;;      kisarbl.or.kr, type = TXT, class = IN

;; ANSWER SECTION:
kisarbl.or.kr.    20M IN TXT    "v=spf1 ip4:10.0.0.4 ~all" 

< 중략 >

 

2) nslookup 명령어 사용

# nslookup

# server 1.2.3.4 (DNS 서버명 또는 DNS IP 입력)

Default Server: 
Address: 1.2.3.4

# set type=txt (DNS record type 지정)

# kisarbl.or.kr (조회하려는 도메인 입력)
Server: 
Address: 1.2.3.4

Non-authoritative answer:
kisarbl.or.kr   text = "v=spf1 ip4:10.0.0.4 ~all"   (SPF 레코드 등록 정보) 

< 중략 >

     

참고 url

https://support.google.com/a/answer/33786?hl=ko  , 구글 서포트

https://www.kisarbl.or.kr/ , 한국인터넷진흥원(KISA)

   

728x90