Как настроить SPF для нескольких доменов на сервере? (также позволяя отправлять Gmail в качестве отправителя)

9

SPF (Sender Policy Framework) кажется хорошим способом борьбы со спамерами / спуфингом.

Однако, несмотря на то, что я несколько раз прочитал объяснения, я не совсем понимаю, как правильно его настроить.


Скажем , у меня есть свой сервер , на a.x.comкотором хозяева www.x.comи b.x.comи c.x.comи так далее.

У меня также есть a.co.uk b.net c.infoи так далее, каждый из них с ассортиментом поддоменов, все размещены наx.com

Для всех этих доменов и поддоменов я хочу разрешить отправку почты с a.x.com

Я также хотел бы, чтобы все они разрешали отправку почты из Gmail для всех этих доменов.

Как мне установить это с SPF?

Могу ли я установить одну запись SPF для x.com(или a.x.com), а затем для всего остального просто включить / указатель на x.comзапись, или это нужно сделать по-другому?

Может ли кто-нибудь предоставить некоторые записи SPF для приведенного выше примера?


Примечание. На вторую часть моего вопроса был дан ответ (используйте « v=spf1 include:x.com -all», чтобы включить / указать на x.comзапись), но ключевая часть того, что установить, x.comостается без ответа ...

Питер Боутон
источник
На самом деле это оказалось безнадежно неэффективным способом уменьшения спама. На самом деле, возможно, это действительно только для адресации адреса отправителя.
Кристофер Эдвардс
2
«на самом деле он предназначен только для подмены адресов отправителей», - чтобы спамеры не могли отправлять почту с чужих доменов.
Питер Боутон

Ответы:

7

Вы не можете избежать необходимости изменять файлы зон для доменов, отличных от x.com, но вы можете избежать многих проблем, определяя общие политики, размещенные в одном домене, и используя redirectключевое слово SPF в других доменах. Пример:

  • В файле зоны для x.comдомена:
_policy1 IN TXT "v = spf1 a: axcom -all"
_policy2 IN TXT "v = spf1 include: _spf.google.com a: axcom -all"

_spf.google.comявляется записью, содержащей запись SPF Gmail. Не уверен, документировано ли это. Теоретически вы должны это сделать, include:gmail.comно это редирект, _spf.google.comи был по крайней мере один широко используемый SPF-патч для qmail, который не следовал ему должным образом (исправлен в августе 2008 года, но все еще может быть развернут). Конечно, эти две политики являются примерами - наличие более одного с различными уровнями строгости чрезвычайно полезно при отладке, поскольку вам нужно всего лишь изменить короткое имя в целевом домене вместо подверженного ошибкам копирования.

  • В файлах зоны для других доменов:
@ IN TXT "v = spf1 redirect = _policy1.x.com"

или

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

и т. д. Я использую redirect, но не для того include, чтобы проверка SPF полностью заменяла текущую оценочную запись той, на которую я перенаправляю. includeне делает этого - например, -allконец в конце includeне приводит к остановке оценки ( includeэто большой ошибочный код). Следует избегать использования, includeкогда вы хотите «псевдоним» записи SPF из другого домена, поскольку она довольно хрупкая - если вы случайно забудете конечный -all, вы можете сделать весь SPF в этом домене неэффективным.

Изменить: Обратите внимание, однако, что вы должны быть начеку, если вы хотите, чтобы серверы Gmail были отправителями. Chaptcha Gmail был взломан, что означает, что можно автоматизировать регистрацию учетных записей, что означает, что Gmail может (косвенно) использоваться в качестве открытого реле (я получаю десятки запросов на регистрацию спамботов в неделю для моего дискуссионного форума компании, все с использованием Адреса электронной почты gmail.com - и эти адреса являются действующими, я разрешил нескольким из них пройти проверку в целях проверки.) Кроме того, любой пользователь с учетной записью Gmail может обойти проверку SPF, если знаком с частями адресов электронной почты адресов ваших доменов в ваших доменах. ,

Михай Лимбашан
источник
Спасибо, это полезный ответ. В прошлый раз, когда я проверял, Gmail требует проверки электронной почты, прежде чем вы сможете отправлять электронные письма с других адресов - так что, как только входящие для этого адреса безопасны, все в порядке? Насколько важно / не имеет также строки 'www', как в ответе борцмейера?
Питер Боутон
1
Правда, но как только трещина появится в фудуэйшн, я уверен, что кто-то найдет способ протиснуться через половину реки :) Не говоря не об этом, я просто рекомендую быть в тонусе и периодически проверять, работает ли Gmail. не используйте полномочия Gmail на неопределенный срок. Я доверяю им больше, чем большему количеству онлайн-организаций, но это всего лишь небольшое доверие, а не доверие вообще.
Михай Лимбашан
Я понятия не имею, почему bortzmeyer включил в себя записи www. Они совершенно бесполезны, если вы на самом деле не отправляете почту с сайта @ www.x.com, которая (если не часто ее использовать) выглядит довольно странно и вызывает замешательство у людей, не обладающих техническими знаниями.
Михай Лимбашан
2
Кроме того, я бы НЕ использовал типы записей SPF. Я рекомендую вам придерживаться TXT. Тип записи SPF поддерживается только в BIND 9.4 и выше, для каждого RFC вы также должны поддерживать реплики записей TXT, то есть вы должны копировать вставку (плохо) и поддерживать их синхронно (трудно). Усиление отсутствует, так как TXT будет основным механизмом доставки SPF в обозримом будущем, quoth openspf.org.
Михай Лимбашан
1
@ Михай Лимбасан: отличный ответ, спасибо, что поделились. В случае, если вы считаете необходимым обновить свой ответ, Google, скорее всего, предпочтет v=spf1 include:_spf.google.com ~allвместо этого -all, предположим, я правильно понял, исх. google.com/support/a/bin/answer.py?answer=178723
Марко Демайо,
4

Да, вы можете включить конфигурацию из одного из ваших доменов в записи SPF для всех остальных доменов. Задание записи SPF других доменов в следующем случае должно помочь:

v=spf1 include:x.com -all
ombble
источник
Будет ли это «просто работать», или для этого требуется поддомен _spf, или что-то подобное?
Питер Боутон
Я уверен, что если у вас изначально есть записи SPF, определенные непосредственно на x.com, то включение для других доменов также может указывать прямо на x.com. Если вы определите свою запись SPF в маршруте _spf.x.com, то да, вам нужно будет изменить бит включения, чтобы он также указывал на это полное доменное имя.
womble
2

Вы пытались использовать веб-инструмент на http://www.openspf.org/ ? Возможно, вам будет легче справиться с этим ...

Просто введите свой домен в верхнем правом углу и нажмите кнопку «Перейти». Оттуда вы должны быть в состоянии настроить вещи в спешке.

Эйвери Пэйн
источник
1
Я пробовал несколько раз с этим инструментом, но объяснения не достаточно ясны.
Питер Боутон
2

Стандарт RFC 4408 предоставляет несколько примеров, которые очень близки к тому, что вы хотите. Вот выдержка из файла зоны x.com:

@ 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)
  • Я добавил записи SPF согласно RFC, хотя почти во всех реализациях используется только запись TXT.
bortzmeyer
источник
1

Да, вам нужно добавить определенную запись SPF для каждого домена в отдельности.

Причина этого заключается в том, что единственной (полезной) записью типа псевдонима в DNS является CNAMEзапись. Однако CNAMEзапись приводит к появлению псевдонимов для ВСЕХ типов RR в наборе RR - невозможно сказать « CNAMEзапись SPF, но не MXзаписи »

Альнитак
источник
Я понимаю , что я должен добавить в SPF запись для каждого домена, но я надеялся , просто хранить простой указатель на основной домен, где все более сложные команды могут затем жить. Womble предлагает мне использовать для этого include: {domain}, но мне все еще неясно, включает ли он просто / указывает на записи SPF для другого домена, или мне нужно разместить поддомен _spf.x.com?
Питер Боутон
да, см. ответ
Уомбла