서버에서 여러 도메인에 대해 SPF를 구성하려면 어떻게합니까? (또한 Gmail을 발신자로 허용)


9

SPF (Sender Policy Framework)는 스패머 / 스푸핑과 싸우는 좋은 방법 인 것 같습니다.

그러나 설명을 여러 번 읽었지만 올바르게 구성하는 방법을 잘 모르겠습니다.


하자 내가에서 내 서버가 있다고 가정 a.x.com하는 호스트 www.x.comb.x.comc.x.com등등.

또한 a.co.uk b.net c.info각 하위 도메인을 갖춘 각 도메인을 가지고 있습니다.x.com

이 모든 도메인 및 하위 도메인에 대해 다음 주소에서 메일을 발송하고 싶습니다. a.x.com

또한이 모든 도메인에 대해 Gmail에서 보낸 메일을 모두 허용하고 싶습니다.

SPF로 어떻게 설정합니까?

x.com(또는 a.x.com)에 대해 하나의 SPF 레코드를 설정 한 다음 다른 모든 레코드에 대해 간단한 포함 / 포인터가 x.com있거나 다른 방식으로 수행해야합니까?

위의 예에 대해 누구나 SPF 레코드를 제공 할 수 있습니까?


참고 : 내 질문의 두 번째 부분은 답변되었지만 ( " v=spf1 include:x.com -all"를 사용 하여 x.com기록 을 포함 / 가리킬 수 있음) 설정해야 할 주요 부분 x.com은 대답하지 않은 상태입니다 ...


실제로 스팸을 줄이는 데는 비효율적 인 방법임이 입증되었습니다. 실제로, 그것은 어쨌든 발신자 주소 스푸핑을 처리하기위한 것입니다.
Christopher Edwards

2
"발신자 주소 스푸핑 문제를 해결하기위한 용도로만 사용됩니다."-스패머가 다른 사람의 도메인에서 온 것으로 보이는 메일을 보내지 못하게합니다.
Peter Boughton

답변:


7

x.com 이외의 도메인에 대한 영역 파일을 변경하지 않아도되지만 한 도메인에서 호스팅되는 공통 정책을 정의 redirect하고 다른 도메인 에서 SPF 키워드를 사용하면 많은 문제를 해결할 수 있습니다 . 예:

  • x.com도메인 의 존 파일에서 :
TXT의 _policy1 "v = spf1 a : axcom -all"
TXT의 _policy2 "v = spf1 include : _spf.google.com a : axcom -all"

_spf.google.comGmail SPF 레코드가있는 레코드입니다. 문서화되었는지 확실하지 않습니다. 이론적으로 당신은 include:gmail.com리다이렉션해야 _spf.google.com하고, 큐메일에 대해 널리 사용되는 SPF 패치가 하나 이상 있습니다.이 패치는 제대로 따르지 않았습니다 (2008 년 8 월에 수정되었지만 여전히 배포 될 수 있습니다). 두 정책은 물론 예입니다. 오류가 발생하기 쉬운 복사 붙여 넣기 대신 대상 도메인에서 짧은 이름 만 변경하면되기 때문에 다양한 수준의 엄격 성을 가진 둘 이상의 수준을 갖는 것은 디버깅 할 때 매우 유용합니다.

  • 다른 도메인의 영역 파일에서 :
@ IN TXT "v = spf1 redirect = _policy1.x.com"

또는

@ IN TXT "v = spf1 redirect = _policy2.x.com"

SPF 검사가 현재 평가 된 레코드를 내가 리디렉션하는 레코드로 완전히 바꾸도록하기 위해 redirectnot을 사용 include하고 있습니다. include예를 들어, -all끝에 include있는 평가는 평가를 중지시키지 않습니다 ( include큰 오해입니다). include다른 도메인에서 SPF 레코드를 "별명 지정"하려는 경우 사용하지 않아야합니다. 실수로 후행을 잊어 버린 경우 해당 도메인의 전체 SPF를 비효율적으로 만들 수 있습니다.

편집 : 그러나 Gmail 서버를 발신자로 허용하려면 조심해야합니다. Gmail 보안 침해가 발생하여 계정 가입을 자동화 할 수 있습니다. 즉, Gmail을 간접 릴레이로 사용할 수 있습니다 (회사 토론 포럼에서 매주 수십 개의 스팸봇 가입 요청을 받고 있음). gmail.com 이메일 주소-해당 주소가 활성화되어 있으므로 확인 목적으로 몇 가지 과정을 거쳤습니다.) 또한 Gmail 계정을 가진 사람은 도메인에서 이메일 주소의 uwsername 부분에 익숙한 경우 SPF 확인을 우회 할 수 있습니다. .


감사합니다. 이것은 유용한 답변입니다. 마지막으로 확인한 경우 다른 주소에서 이메일을 보내려면 Gmail에서 이메일 확인이 필요합니다. 따라서 해당 주소의받은 편지함이 안전하면 문제가없는 것입니까? bortzmeyer의 답변 에서처럼 'www'줄이 얼마나 중요하지 않은가?
Peter Boughton

1
사실, 그러나 일단 균열에 균열이 나타나면 누군가가 강을 반쯤 짜낼 수있는 방법을 찾을 것이라고 확신합니다.) 말하지 말라고 말하지 말고, 발가락을 잡고 주기적으로 Gmail이 있는지 확인하는 것이 좋습니다. 악용 될 수 있습니다. 즉, Gmail에 대한 권한을 무기한 포기하지 마십시오. 나는 더 많은 온라인 엔터티를 신뢰하는 것보다 더 신뢰하지만, 그것은 전혀 신뢰하지 않고 약간의 신뢰입니다.
Mihai Limbăşan

나는 bortzmeyer가 왜 www 엔트리를 포함했는지 전혀 모른다. @ www.x.com에서 실제로 메일을 보내지 않는 한 (많이 사용되지 않는 것만으로도) 이상하게 보이며 기술적으로 정통한 사람들보다 혼란을 유발하는 경우가 아니면 완전히 쓸모가 없습니다.
Mihai Limbăşan

2
또한 SPF 레코드 유형을 사용하지 않습니다. TXT를 사용하는 것이 좋습니다. SPF 레코드 유형에만 RFC 당, BIND 9.4 이상에서 지원 해야한다 또한 TXT 레코드의 복제본을 유지하면 물건 (나쁜) CopyPaste에 있어야합니다 즉, 당신은 동기화 (하드)에서 그들을 유지해야합니다. TXT가 예측 가능한 미래를위한 주요 SPF 전달 메커니즘이 될 것이기 때문에 이익은 존재하지 않습니다 (quoth openspf.org).
Mihai Limbăşan

1
@Mihai Limbasan : 훌륭한 답변, 공유해 주셔서 감사합니다. 답변을 업데이트해야한다고 생각되는 경우 Google은을 v=spf1 include:_spf.google.com ~all대신 하여 선호한다고 생각합니다 -all. google.com/support/a/bin/answer.py?answer=178723
Marco Demaio

4

예, 도메인 중 하나의 구성을 다른 모든 도메인의 SPF 레코드에 포함시킬 수 있습니다. 다른 도메인의 SPF 레코드를 다음으로 설정하면 트릭이 수행됩니다.

v=spf1 include:x.com -all

이것이 "작동"합니까, 아니면 _spf 하위 도메인 또는 이와 유사한 것이 필요합니까?
Peter Boughton

처음에 x.com에 SPF 레코드를 직접 정의한 경우 다른 도메인에 대한 포함도 x.com을 직접 가리킬 수 있습니다. _spf.x.com 경로에서 SPF 레코드를 정의하면 해당 FQDN을 가리 키도록 포함 비트도 변경해야합니다.
womble

2

http://www.openspf.org/ 에서 웹 도구를 사용해 보셨습니까 ? 이 문제를 좀 더 쉽게 처리 할 수 ​​있습니다 ...

오른쪽 상단 상자에 도메인을 입력하고 이동 버튼을 클릭하십시오. 거기서부터 서둘러 설정할 수 있어야합니다.


1
그 도구로 여러 번 시도했지만 설명이 명확하지 않습니다.
Peter Boughton

2

표준 RFC 4408 은 원하는 것과 매우 유사한 몇 가지 예를 제공합니다. 다음은 x.com의 zonefile을 추출한 것입니다.

@ IN TXT "v = spf1 a : axcom -all"
      SPF에서 "v = spf1 a : axcom -all"

www IN TXT "v = spf1 a : axcom -all"
      SPF에서 "v = spf1 a : axcom -all"

노트:

  • Gmail 이메일 서버를 모르기 때문에 추가하지 않았습니다. Gmail 사람들에게 문의하십시오.
  • 'a'는 '주소'용 ( DNS A 레코드 가 아니며 IPv6 포함)
  • 거의 모든 구현에서 TXT 레코드 만 사용하지만 RFC 당 SPF 레코드를 추가했습니다.

1

예, 각 도메인에 개별 SPF 레코드를 개별적으로 추가해야합니다.

그 이유는 DNS의 유일한 (유용한) 앨리어싱 유형 레코드가 CNAME레코드 이기 때문 입니다. 그러나 CNAME레코드로 인해 RRset의 모든 RR 유형에 대해 앨리어싱이 발생 합니다. " CNAMESPF 레코드는 아니지만 MX레코드는 "


내가 추가해야 이해 각 도메인에 대한 SPF 레코드를,하지만 난 단순히 저장하는 데 기대했다 간단 주요 도메인, 더욱 복잡한 명령 할 수있는 다음 라이브에 포인터를. Womble은 이것을 위해 include : {domain}을 사용할 수 있다고 제안하지만, 이것이 단순히 다른 도메인의 SPF 레코드에 포함 / 점을 포함하는지 또는 _spf.x.com 하위 도메인을 호스팅해야하는지 확실하지 않습니다.
Peter Boughton

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