본문 바로가기

IT

SPF를 설정해서 스팸메일을 막고, 스팸메일이 안되도록 합시다.

메일발송량이 많아지고, 메일주소변경등의 이유로 User Unknown의 결과가 많아지면 수신메일서버로부터 제한이 걸리는 경우가 생깁니다.

특히 일본의 통신사메일의 경우 특히 더한 것 같습니다.

(DoCoMo:docomo.ne.jp, Au:ezweb.ne.jp, SoftBank:softbank.ne.jp,i.softbank.jp)

그래서 IP제한이 걸리게 되고 이를 피하기 위해서 여러대의 각기 다른 IP의 SMTP서비스를 이용해 발송해서 회피하곤 했었는데 이것도 한계에 다달아 이를 전문적으로 처리해주는 외부SMTP Relay서비스를 이용하게 되었습니다.

스팸메일을 막기보다는 스팸으로 처리되지 않기 위한 작업이네요.


SPF설정의 추가가 필요해서 이 기회에 한번 정리를 해봅니다.




1.SPF(Sender Policy Framework)란

--------------------------------

메일서버의 정보를 DNS에 공개

수신자는 발송자정보가 해당 도메인의 메일서버의 정보와 일치하는지 확인

SPF는 DNS정보에 등록된 메일서버로부터 발송된 메일인지 확인 SPF=PASS의 헤더를 작성

DNS의 TXT레코드로 입력

--------------------------------


2.SPF정보를 확인

--------------------------------

Windows의 명령프롬프트

nslookup

set type=TXT

확인하려는도메인


(Linux의 경우는 dig를 이용합니다. dig 확인하려는도메인 TXT )


EX)

Microsoft Windows [Version 10.0.17134.81]

(c) 2018 Microsoft Corporation. All rights reserved.

C:\Users\--유저명-->nslookup

既定のサーバー: google-public-dns-a.google.com

Address: 8.8.8.8

> set type=TXT

> gmail.com

サーバー: google-public-dns-a.google.com

Address: 8.8.8.8


権限のない回答:

gmail.com text = "v=spf1 redirect=_spf.google.com"

--------------------------------


3.SPF문법

--------------------------------

일단 gmail.com의 정보를 상세화하면

v=spf1(버전정보)

redirect=_spf.google.com

(DNS의 TXT레코드는 255자의 제한이 있으므로 다른 도메인으로 리다이렉트(redirect))


추가 확인을 해봅니다.

> _spf.google.com

サーバー: google-public-dns-a.google.com

Address: 8.8.8.8


権限のない回答:

_spf.google.com text =

"v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"


(다른 도메인의 SPF레코드를 포함(include))

(~all :앞의 각 레코드에 포함되지 않은 곳에서의 발송은 SoftFail을 적용)

(all: 앞의 각 레코드에 포함되지 않은 모든 발송)

(~ : SoftFail(메일을 수신하는 SMTP서버에 처리를 맡김))

(+ : Pass 허가 )

(- : Fail 거부 )


EX)

"v=spf1 mx -all" (MX레코드의 서버이외는 모두 거부 )

"v=spf1 -all" (모두거부: 메일발송안함)

"v=spf1 ip4:192.168.0.1 -all" (192.168.0.1 에서 192.168.0.255 이외의 서버에서의 발송은 거부)

(ip4: 192.168.0.1/16 처럼 범위를 명시적으로 정의하지 않으면 기본값으로 /32 )

(ip6: 의 경우는 범위를 명시적으로 정의하지 않으면 기본값으로 /128 )

"v=spf1 a -all" (해당 도메인의 모든 A레코드의 IP이외는 거부)

"v=spf1 a:aaa.com -all" (aaa.com도메인의 모든 A레코드의 IP이외는 거부)

--------------------------------


그나저나 관리중인 도메인이 꽤 많습니다.

하나하나 include로 설정되어있던데..

'이기회에 redirect로 하나로 몰아서 관리해볼까' 생각했다가...

'또 바뀌겠어'의 안일함이..말립니다.


오늘 또 하나 배웁니다.

반응형