dig -v위의 명령어로 DiG 버전이 나오지 않는다면, DiG를 설치해 줍니다.
sudo apt install dig -y설치가 되면, gmail.com의 SPF 레코드를 조회해 보도록 하겠습니다.
dig gmail.com TXT아래와 같은 결과가 나옵니다.
gmail.com. 299 IN TXT "v=spf1 redirect=_spf.google.com"
이를 해석해보자면, gmail.com
: @gmail.com으로 발송된 이메일에 대해v=spf1
: SPF버전 1을 사용하며redirect=_spf.google.com
: _spf 레코드를 _spf.google.com으로 redirect 하여 찾는다._spf.google.com
에서 찾도록 설정 되어 있으므로, 다음은 이를 조회해 보도록 하겠습니다. dig _spf.google.com TXT이번에는 아래와 같은 결과가 나왔습니다.
_spf.google.com. 277 IN TXT "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"
이를 해석해보자면, _spf.google.com
: 앞서 @gmail.com 에서 Redirect 되어 spf 값을 여기서 찾습니다.v=spf1
: SPF버전 1을 사용하며include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com
: _netblocks.google.com, _netblocks2.google.com, _netblocks3.google.com 도메인의 SPF 레코드를 포함하고~all
: 앞의 레코드에 포함되지 않은 곳에서 발송된 메일에 대해서는 Softfail
을 적용한다.dig _netblocks.google.com TXT이번에는 아래와 같은 결과가 나왔습니다.
_netblocks.google.com. 3599 IN TXT "v=spf1 ip4:64.18.0.0/20 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:207.126.144.0/20 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all"
드디어 실제 IP 주소들이 나왔습니다. SPF 레코드의 제일 앞의 IP 블럭 1개만 해석해 보자면, _netblocks.google.com
앞에서 @gmail.com 에서 Redirect 된 _spf.google.com 에 SPF 인증 된 도메인v=spf1
: 역시 SPF버전 1을 사용하며ip4:64.18.0.0/20
: IPv4 64.18.0.1 - 64.18.15.254 의 범위에 해당하는 SMTP 서버로 부터의 이메일은 허용~all
: 앞의 레코드에 포함되지 않은 곳에서 발송된 메일에 대해서는 Softfail을 적용한다.dig _netblocks2.google.com TXT세 번째 블럭은, 172.217.0.0/19 만 포함하고 있네요.
dig _netblocks3.google.com TXTgmail은 이처럼 SMTP 서버가 많기 때문에, 복잡한 체인 형태를 가지고 있습니다. + 보너스 + 자신의 도메인으로 메일을 발송하는 서버가 없는 경우, 메일 스푸핑 방지를 위해 어떻게 하면 좋을까요? example.com의 TXT 레코드를 봅시다.
dig example.com TXTexample.com에 대한 TXT 레코드에 "
v=spf1 -all
" 가 있습니다. 허용하는 주소가 아무것도 없고, -all (-는 Hardfail 이라는 의미)로, 전 세계 어디에서 보낸 메일이든, @example.com을 발신인으로 사용 시 SPF=FAIL 헤더를 추가하게 됩니다. 물론 수신하는 측에서 SPF 필터를 사용하지 않는 다면 의미가 없겠지만요.. 자신도 모르는 사이에 누군가가 자신의 도메인 명으로 메일 스푸핑을 하여, 다른 SMTP 서버에서 영구블럭 당하기 전에 SPF 레코드를 추가해 보시는건 어떨까요? :)
출처 | 본인 블로그 https://kr.minibrary.com/251 |