SPF 레코드 확인: 누가 이 도메인 이름으로 이메일을 보낼 수 있나요?

SPF는 도메인이 자신의 이메일을 보낼 수 있는 서버를 나열하는 DNS 레코드입니다. SPF가 없거나, 깨져 있거나, 너무 느슨하면 그 도메인 이름으로 가짜 이메일을 보내기가 더 쉬워집니다. 도메인, 이메일 주소 또는 링크를 입력하면 SPF를 읽고 설명해 드립니다.

사용 방법

  1. 확인할 도메인을 입력하거나, 이메일 주소나 링크를 붙여 넣으세요. 도메인 부분만 사용합니다.
  2. ‘SPF 확인’을 누르세요. 수신 서버가 하는 것처럼 SPF 레코드를 읽고 각 include를 따라갑니다.
  3. 레코드가 어떻게 끝나는지와 조회 횟수를 보세요. ‘-all’ 또는 ‘~all’로 끝나고 조회가 10회 이하라면 좋은 상태입니다.

각 결과의 의미

이 도메인에는 SPF가 없습니다
어떤 서버가 이메일을 보낼 수 있는지 밝히지 않아 사칭하기가 더 쉽습니다. 내 도메인이라면 SPF 레코드를 게시하세요.
SPF 레코드에 오류가 있습니다
수신 서버가 이 레코드를 적용할 수 없으므로, 수신 서버 입장에서는 이 도메인에 SPF가 없는 것과 같습니다. 무엇이 잘못됐는지는 아래 신호에서 확인하세요.
누구나 이 도메인 이름으로 이메일을 보낼 수 있습니다
레코드가 ‘+all’로 끝나 전 세계 모든 서버를 허용합니다. 이렇게 설정하면 SPF는 아무것도 보호하지 못합니다.
SPF가 도메인을 완전히 보호하지 못합니다
목록에 없는 서버를 어떻게 처리할지 레코드에 정해져 있지 않아, 이 도메인 이름으로 보낸 가짜 이메일이 표시되지 않습니다.
SPF가 올바르게 설정되어 있습니다
도메인이 이메일을 보낼 수 있는 서버를 나열하고, 나머지는 표시하거나 거부하도록 수신 서버에 요청합니다. 하지만 SPF만으로는 사칭을 막을 수 없습니다. 수신 서버에 어떻게 처리할지 알려 주는 것은 DMARC입니다.

각 신호의 의미

  • 이 도메인은 SPF 레코드를 게시하지 않습니다.
  • 도메인(이 도메인 또는 포함된 도메인)이 SPF 레코드를 2개 이상 게시하고 있습니다. 하나만 허용되므로 수신 서버는 이를 오류로 처리합니다.
  • 레코드에 잘못 쓰인 항목이 있어 수신 서버가 오류로 처리합니다.
  • 모든 include를 포함하면 레코드에 DNS 조회가 10회 넘게 필요합니다. 10회를 넘으면 수신 서버는 오류로 처리합니다.
  • include가 SPF 레코드가 없는 도메인을 가리키고 있어, 수신 서버가 레코드를 오류로 처리합니다.
  • include가 순환합니다. 결국 한 도메인이 자기 자신을 포함하게 됩니다.
  • ‘+all’로 끝납니다. 전 세계 어떤 서버든 이 도메인 이름으로 이메일을 보낼 수 있습니다.
  • ‘?all’로 끝납니다. 목록에 없는 서버를 어떻게 처리할지 정하지 않아 보호 효과가 없습니다.
  • ‘~all’로 끝납니다. 다른 서버에서 온 이메일은 의심스러운 메일로 표시되지만 거부되지는 않습니다. 가장 흔한 설정입니다.
  • 끝에 ‘all’이 없어, 목록에 없는 서버는 중립 결과를 받으며 보호 효과가 없습니다.
  • 표준에서 권장하지 않는 느린 메커니즘인 ‘ptr’을 사용합니다. 많은 수신 서버가 이를 건너뜁니다.
  • 메시지마다 바뀌는 매크로(%가 들어간 항목)를 사용하므로, 그 부분은 따라갈 수 없고 실제 조회 횟수는 더 많을 수 있습니다.

지원 국가

모든 나라의 도메인에 사용할 수 있습니다. 수신 서버와 같은 방식(RFC 7208)으로 레코드를 읽습니다. 메커니즘, 끝나는 방식, 최대 30회 조회까지의 모든 include와 redirect, 그리고 한도 10회 대비 DNS 조회 횟수를 확인합니다.

도메인의 공개 DNS 레코드를 읽습니다. 이메일 주소나 링크를 입력해도 브라우저 밖으로 나가는 것은 도메인뿐입니다. 조회한 도메인은 저장하지 않습니다.

자주 묻는 질문

SPF란 무엇인가요?

Sender Policy Framework의 약자로, 도메인이 자신의 이메일을 보낼 수 있는 서버를 나열하는 DNS 레코드입니다. 메시지를 받은 서버는 그 메시지를 전달한 서버가 목록에 있는지 확인합니다.

‘-all’과 ‘~all’ 중 어느 쪽이 더 좋나요?

‘-all’은 목록에 없는 서버에서 온 이메일을 거부하도록 수신 서버에 요청하고, ‘~all’은 의심스러운 메일로 표시하도록 요청합니다. 둘 다 보호 효과가 있으며, 많은 도메인이 ‘~all’을 쓰고 처리 방법은 DMARC에 맡깁니다. ‘+all’과 ‘?all’은 보호 효과가 없습니다.

조회 10회 한도는 왜 중요한가요?

include, a, mx, ptr, exists, redirect는 각각 수신 서버가 DNS를 조회하게 만듭니다. 레코드 전체에 10회가 넘게 필요하면 오류로 처리되어 SPF가 작동하지 않습니다. 더 이상 쓰지 않는 서비스는 레코드에서 빼거나, 이용 중인 업체에 더 간단한 include를 요청하세요.

SPF만으로 가짜 이메일을 막을 수 있나요?

아니요. SPF는 눈에 보이지 않는 봉투 발신자(envelope sender)를 확인할 뿐, ‘보낸사람’에 보이는 주소를 확인하지는 않습니다. 이 둘을 연결하고, 검사에 실패한 이메일을 격리하거나 거부하도록 수신 서버에 요청하는 것이 DMARC입니다. 도메인의 DMARC도 확인하세요.