SPF 레코드 란 무엇이며 어떻게 구성합니까?


49

이것은 SPF 레코드 설정에 대한 정식 질문 입니다.

단일 외부 IP를 공유하는 많은 컴퓨터가있는 사무실이 있습니다 (주소가 정적인지 동적인지 확실하지 않습니다). 각 컴퓨터는 Outlook을 사용하여 IMAP을 통해 메일 서버에 연결합니다. 해당 컴퓨터에서 전자 메일을주고 받고 일부 사용자는 휴대폰에서도 전자 메일을주고받습니다.

SPF 레코드를 생성하기 위해 http://wizard.easyspf.com/ 을 사용 하고 있으며 마법사의 일부 필드, 특히 다음과 같은 내용이 확실하지 않습니다.

  1. 이 도메인에 대해 메일을 보내거나 릴레이 할 수있는 다른 도메인을 입력하십시오
  2. 이 도메인의 메일을 시작하거나 릴레이하는 넷 블록에 대해 CIDR 형식의 IP 주소를 입력하십시오
  3. 이 도메인의 메일을 보내거나 릴레이 할 수있는 다른 호스트를 입력하십시오
  4. SPF를 인식하는 MTA는이를 얼마나 엄격하게 처리해야합니까?

처음 몇 가지 질문에 대해 확실히 확신합니다 ... 충분한 정보를 제공했으면합니다.

답변:


68

SPF 레코드는 도메인에 메일 을 보낼 수있는 서버를 자세히 설명 합니다.

질문 1-3은 실제로 SPF의 요점을 요약합니다. 도메인에서 메일을 보낼 권한이있는 모든 서버의 주소를 나열해야합니다.
현재 전체 목록이없는 경우 일반적으로 SPF 레코드를 설정하는 것은 좋지 않습니다. 또한 도메인에는 하나의 SPF 레코드 만있을 수 있으므로 모든 정보를 단일 레코드로 결합해야합니다.

개별 질문은 실제로 목록을 세분화하는 데 도움이됩니다.

  1. 메일 서버가 메일을 릴레이 할 수있는 다른 도메인을 요청합니다 . mail-relay.example.org에 보조 MX 서버가 있고 도메인의 기본 메일 서버 (MX 레코드) 인 경우을 example.org입력해야합니다 mx:example.org. SPF 레코드는 거의 모든 상황에서 고유 한 도메인의 MX 레코드를 포함해야합니다 ( mx).
  2. IP 넷 블록을 요청합니다. 1.2.3.0/28에 서버를 배치했으며 사무실 주소 공간이 6.7.8.0/22 ​​인 경우을 입력하십시오 ip4:1.2.3.0/28 ip4:6.7.8.0/22. IPv6 공간은 다음과 같이 추가해야합니다 ip6:2a01:9900:0:4::/64.
  3. (예) 당신은 또한 도메인에서 메일을 보낼 수 있도록 허용해야 다른 사람의 사무실에서 컴퓨터를 가지고있는 경우, 예를 들어와, 그뿐만 아니라를 입력합니다 a:mail.remote.example.com.

휴대 전화 사용자는 문제가 있습니다. 예를 들어 SMTP AUTH를 사용하여 메일 서버에 연결하고 해당 서버를 통해 이메일을 보내면 (2)에 메일 서버의 주소를 나열하여 처리합니다. 그들은 단지 어떤 메일 서버 3 세대 / HSDPA 제공 업체의 제안에 연결하여 이메일을 보낼 경우 있도록 이메일 인프라를 재 설계 한 의미 때까지, 당신은 SPF 할 수 없습니다 않습니다 당신이 안타에서 보낸 것처럼하는 이메일에서 모든 지점을 제어 인터넷.

질문 4는 조금 다른,받는 사람 도메인에서 주장 이메일로 무엇을해야하는지 물어 하지 않습니다 위에 나열된 시스템 중 하나에서 온다. 몇 가지 법적 답변이 있지만 흥미로운 것은 ~all(소프트 실패)와 -all(하드 실패)입니다. ?all(답변 없음)은 ~all(qv) 만큼 쓸모가 없으며 +all혐오입니다.

~all간단한 선택입니다. 그것은 당신에게 당신으로부터 메일을 보낼 수있는 허가 된 많은 시스템을 나열했지만, 당신이 그 목록에 전념하고 있지 않다는 것을 사람들에게 알려줍니다. 당신은 내가 촉구 하지 그렇게 할 수 있습니다. SPF를 완전히 무의미하게 만들뿐만 아니라 SF의 일부 메일 관리자는 SPF 수신자를 ~all스패머의 배지 로 취급하도록 고의적으로 구성합니다 . 하지 않으려는 경우 -allSPF를 전혀 신경 쓰지 마십시오 .

-all유용한 선택입니다. 사용자에게 이메일을 보낼 수있는 시스템을 나열했으며 다른 시스템에 권한이 부여되지 않았으므로 SPF 레코드에 나열되지 않은 시스템의 이메일을 거부해도됩니다. 이것은 SPF의 요점이지만 활성화하기 전에 메일을 발송하거나 릴레이 할 수있는 모든 호스트를 나열했는지 확인해야합니다 .

구글은 조언 하는 것으로 알려져

~ all 대신 -all을 사용하는 SPF 레코드를 게시하면 배달 문제가 발생할 수 있습니다.

글쎄요. 이것이 SPF의 요점입니다 . Google이 왜 이러한 조언을 제공하는지는 확실하지 않지만 이메일을 언제 어디서 정확히 알지 못하는 sysadmins가 자신에게 배달 문제를 일으키는 지 막아야한다고 생각합니다. 모든 이메일의 출처를 모르는 경우 SPF를 사용하지 마십시오 . SPF를 사용하려는 경우 SPF의 모든 장소를 나열하고 해당 목록에 대해 자신이있는 세계를 (으)로 알려주세요 -all.

이 중 어느 것도 수신자의 서버에 바인딩되어 있지 않습니다. SPF 레코드를 광고한다는 사실은 다른 사람이이를 존중할 의무가 없습니다. 어떤 전자 메일 서버의 관리자는 어떤 전자 메일을 수락 또는 거부하도록 선택해야합니다. SPF가 생각하는 것은 도메인에서 보낸 것으로 주장되었지만 그렇지 않은 전자 메일에 대한 추가 책임을 포기할 수 있도록하는 것입니다. 도메인 관리자가 귀하가 광고하는 SPF 레코드를 확인하려고 귀찮게하지 않았을 때 귀하의 도메인이 스팸을 보낸다는 불만을 제기 한 모든 메일 관리자 는 이메일을 거부해야한다고 알리는 귀찮은 벼룩으로 공정하게 발송 될 수 있습니다.


이 답변은 정식화되었으므로 include및 에 대해 몇 마디 말씀 드리겠습니다 redirect. 후자가 더 간단합니다. SPF 레코드 경우, 말할 example.com말한다 redirect=example.org, 다음 example.org의 SPF 레코드를 대체하는 자신을. example.org또한 해당 조회 에서 도메인으로 대체됩니다 (예 : example.org의 레코드에 mx메커니즘이 포함 된 경우 MX조회는 example.org자체 도메인이 아닌에서 수행해야 함 ).

include널리 오해이며, 표준의 저자가 참고로 " 이름이 잘못 선택되었다 '포함' ". SPF 레코드 includeexample.org레코드 인 경우example.org 수신자가 레코드를 검사 하여 이메일을 수락 해야하는 이유 (포함 +all)가 있는지 확인해야합니다 . 만일 그렇다면, 귀하의 우편물은 통과해야합니다. 그렇지 않은 경우 수신자는 all메커니즘 에 도달 할 때까지 SPF 레코드를 계속 처리해야합니다 . 따라서, -all또는 실제로 임의 의 다른 용도 all를 제외하고는 +all,에서 includeD 레코드, 처리 결과에 영향을 미치지 않는다.

SPF 레코드에 대한 자세한 내용은 http://www.openspf.org를 참조하십시오 .


이 방법을 잘못 사용하지 말고 SPF 레코드를 잘못 받으면 수정하기 전까지는 인터넷의 상당 부분이 사용자로부터 이메일을받지 못하게 할 수 있습니다. 귀하의 질문은 완전하지 않을 수 있습니다 제안 노소 기정 당신이 무슨 일을하는지와, 그리고 그런 경우에, 당신은 당신이 사람들이 엄청 많이 이메일 전송을 중단 뭔가를하기 전에 전문적인 도움을 받고 고려하는 것이 좋습니다.

편집 : 당신의 친절한 말에 감사합니다, 그들은 매우 감사합니다.

SPF는 기본적으로 joe-jobbing 을 방지하는 기술 이지만 일부 사람들은 스팸 탐지를 시도하기 시작했습니다. 그중 일부는 실제로 SPF 레코드가 없거나 음란 한 레코드 (예 : a:3.4.5.6/2 a:77.5.6.7/2 a:133.56.67.78/2 a:203.54.32.1/2sneakily와 비슷한)에 음수 값을 첨부 할 수 +all있지만 그에 달려 있으며 할 수있는 일은 많지 않습니다.

나는 개인적으로 SPF가 좋은 것이라고 생각하고 현재 메일 구조가 허용하는 경우 레코드를 광고해야하지만 인터넷 전체에 유효한 신뢰할 수있는 답변을 제공하는 것은 매우 어렵습니다. 다른 목적으로 사용하기로 결정할 때 특정 목적. 내가 확실하게 말할 수있는 당신이 경우이다 의 정책 SPF 레코드를 광고 -all, 당신이 그것을 오해, 많은 사람들이 메일을 볼 수 없을 것입니다.

편집 2 : 의견에 따라 삭제하고 답변을 최신 상태로 유지합니다.


철저하고 평범한 영어 대답을 분명히 고맙게 생각합니다. 당신은 내가 대부분 어둠 속에 있고, 우체국 장의 모자를 쓰고있는 사업이 없다는 사실에주의를 기울입니다. 후속 질문 : 우리는 매우 작은 작업 (총 10-15 개의 전자 메일 계정)에 대해 이야기하고 있기 때문에 많은 양의 메일을 보내지 않습니다. 이것은 우리가 시간없이 생존 할 수있는 것입니다. 스팸 폴더가 많습니까? 대량 메일을 보낼 때는 mailchimp와 같은 서비스를 사용합니다
vulgarbulgar

~ all은 두 가지에 좋습니다 : 1."완전히 au fait "시나리오입니다. 최종 트리거를 당기기 전에 실제 테스트를 포함하여 모든 설정을 실제 방식으로 수행 할 수 있습니다. 2.스팸 점수. 모든 메일 종료 지점을 실제로 제어 할 수없는 경우 ~ all은 레코드와 일치하는 시스템의 스팸 점수를 도울 수 있습니다 (물론 : 장애가 발생한 시스템의 점수를 손상시킬 수도 있음).
Joel Coel

또한 관리자 ~all가 전체 도메인에서 스팸 표시기로 간주하는 수신자 시스템 ( SF에 하나 이상이 있음)을 사용 하면 점수를 떨어 뜨릴 수 있습니다 .
MadHatter

2
특히 Edit2가에 대한 의견 @MadHatter 다음 현재 SPF 사양은 당신이 하나를 사용해야한다고 TXT이나 SPF제안,하지만 당신은 모두 (동일)를 사용하는 것이 곧 SPF 사양은 포기 SPF흡수가 예상보다 적었다 주로 단지 상호 운용성 문제가 발생하고있다한다. 이를 염두에두고 보면 조회 만하는 것이 좋지 않은 것 같습니다 SPF.
Håkan Lindqvist

3
진실에 감사하고 나는 "+ all is a abomination"에서 크게 웃었다.
jerclarke

3

설정에서 중요한 것은 인터넷으로 전자 메일을 전송하는 서버 구성입니다. SMTP를 통해 이메일을 보낸다고 말합니다. 따라서 IP 주소 측면에서 중요한 것은 SMTP 서버의 구성입니다 (질문 2).

이메일을 보내기 위해 gmail과 같은 타사를 사용하는 경우 다음과 같은 spf 레코드를 포함해야합니다. include : _spf.google.com (아약스 마법사는 이에 대해 알지 못하는 것 같습니다).

"How 엄격한"의 경우, 확실하지 않은 경우 "소프트 실패"(~ all)를 그대로 두십시오. 그렇지 않으면 "거부"(-all)는 구성이 깨끗해지면 갈 수있는 방법입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.