SPF 레코드 조회 및 설정
SPF 레코드는 메일 발송 IP 를 DNS 에 미리 설정해두는 발신자 인증 기법입니다.
SPF 레코드 조회 방법
Windows 10/11 에서는 [시작] 메뉴에서 'cmd' 입력후, '명령 프롬프트'를 실행해주세요.
(Linux 서버는 SSH 접속후 nslookup 명령 실행 가능)
메일 주소가 nmail@passkorea.net 인 경우, passkorea.net 도메인의 SPF 레코드를 조회하는 nslookup 명령입니다.
nslookup -type=txt passkorea.net
응답 결과를 구성 요소별로 분리해보면 아래와 같습니다.
구성 요소 | 설명 |
v=spf1 | SPF 레코드 등록을 알려주는 시작 문자열 |
ip4:211.170.106.72 |
메일 발송 IP는 ip4: 문자열과 IP 를 합쳐서 입력. 2개 이상일 경우 띄어쓰기 필요 |
-all |
ip4 에 등록된 IP 외엔 메일 수신을 차단(-all)하도록 안내. 차단 대신 메일을 수신해서 스팸 분류할 경우 "~all" 로 물결표(~) 사용. |
SPF 레코드 작성 방법
메일 발송 IP 가 1.2.3.4 이고, 해당 IP 이외에는 스팸 분류(~all)할 경우의 예시입니다.
v=spf1 ip4:1.2.3.4 ~all
SPF 레코드 작성시 자주 발견되는 오류입니다.
1. ip4: 와 IP 사이에 공백이 들어가는 등의 띄어쓰기 잘못 입력. 예시) v=spf1 ip4: 1.2.3.4 ~all
2. 메일 발송 IP는 공인 IP를 입력해야 하나, 사설 IP를 입력하는 경우. 예시) 192.168.x.x / 10.x.x.x / 172.16.x.x
3. 워드 등 에서 물결표(~)나 하이픈(-)을 복사해온 경우, 특수기호로 잘못 입력될 수 있습니다. ~, - 삭제후 키보드로 직접 입력 필요.
4. 스팸 서버를 통해 발송되도록 별도 구성된 경우, 메일 서버가 아닌 실제 메일이 발송되는 스팸 서버 IP를 등록해야 합니다.
DNS 서버에 SPF 레코드 등록 및 수정 방법
도메인 등록기관에서 도메인 등록 정보(whois)를 조회하여,
네임서버(Name Server) 확인을 통해 DNS 관리 위치를 확인합니다.
도메인 등록기관, 호스팅사의 [DNS 관리]
외부 DNS 서비스를 이용하는 경우, 해당 사이트에 방문후 [DNS 관리] 등 에서 등록해주시면 됩니다.
참고) 카페24 호스팅 - 네임서버(DNS) 관리
* TXT 관리가 아닌 'SPF 관리'가 별도로 있습니다.
Windows DNS 에서 TXT 레코드 등록하기
nmail@passkorea.net 주소를 사용하므로 '레코드 이름'은 생략합니다.
등록된 TXT 는 다음과 같으며, 메일 서버 IP가 변경되면 ip4: 부분만 수정하면 됩니다.
Linux DNS 에서 TXT 레코드 등록하기
named 서비스는 zone 파일에 TXT 항목 추가후 재시작해주시면 됩니다.
vi /var/named/passkorea.net.zone
IN MX 10 mail
IN TXT "v=spf1 ip4:211.170.106.72 ~all"
Windows/Linux DNS 직접 운영시 방화벽에서 해외망 차단 금지
DNS 서버를 사내/IDC에서 직접 운영하시는 경우, 방화벽에서 보안상 해외망 접근을 차단하시는 경우가 있습니다.
이 경우 구글 등 해외 DNS를 이용하는 메일서버에서는 SPF 레코드 조회가 불가능하게 됩니다.
특히 gmail.com 으로 메일 발송시 SPF 레코드가 없다고 차단될 수 있습니다.
550-5.7.26 Your email has been blocked because the sender is unauthenticated.
550-5.7.26 Gmail requires all senders to authenticate with either SPF or DKIM.
550-5.7.26
550-5.7.26 Authentication results:
550-5.7.26 DKIM = did not pass
550-5.7.26 SPF [example.com] with ip: [1.2.3.4] = did not pass
550-5.7.26
550-5.7.26 For instructions on setting up authentication, go to
550 5.7.26 https://support.google.com/mail/answer/81126#authentication
해외망에서 DNS 조회 가능 여부는 nslookup 명령 마지막에 8.8.8.8 구글 DNS를 추가해서 조회하면 됩니다.
예시) nslookup -type=txt 회사도메인 8.8.8.8
참고) 구글 DNS에서 응답이 실패한 경우
이전 글 | PHP의 mail() 함수를 통해 메일발송이 안될때의 해결방법 | PASSKOREA | 2007.02.28 |
---|---|---|---|
다음 글 | Nmail PHP Uninstall / 엔메일 삭제 방법 | PASSKOREA | 2007.01.22 |