Рейтинг:1

Как настроить записи DNS SPF для многих поддоменов

флаг cn

У меня есть доменное имя, скажем, example.com, и множество серверов (потенциально сотни), каждый с общедоступным IP-адресом и субдоменом (sub1.example.com, sub2.example.com и т. д.). На каждом сервере установлена ​​установка Postfix. Цель здесь состоит в том, чтобы иметь возможность отправлять электронные письма с любого сервера (а не получать электронные письма). Однако к самому основному домену (example.com) не подключен почтовый сервер.

Теперь я пытаюсь настроить записи SPF в DNS, но я немного застрял. Я пробовал много комбинаций, но они всегда заканчивались SPF SOFTFAIL при попытке отправить электронное письмо на gmail. Кроме того, мне непонятно, как обойти ограничения на длину записи SPF с таким количеством серверов/IP-адресов.

Добавление дополнительного контекста (хотя я принял ответ Боба).

Идея состоит в том, чтобы иметь очень избыточную архитектуру, в которой любой сервер может выйти из строя, а система в целом будет продолжать работать (по крайней мере, для отправки электронной почты).У меня нет контроля над диапазоном IP-адресов: серверы будут предоставлены в нескольких странах и с несколькими провайдерами. Я попытался определить запись SPF только для основного доменного имени.

                     600 IN TXT "v=spf1 mx ~все"

При отправке в Gmail я получаю ошибку SOFTFAIL для проверки SPF, электронная почта отправляется с поддомена (например, sub1.domain.com)

Затем я попытался добавить IP-адрес отправителя в запись:

                      600 В TXT "v=spf1 mx ip4:server_ip ~все"

Но я получаю ту же ошибку SOFTFAIL. Также пытался добавить еще одну запись SPF для поддомена, но, насколько я понимаю, должна быть создана только одна запись SPF :-/ Я также пытался включить: доменные имена с тем же результатом.

Любая помощь или руководство будут оценены :-)

anx avatar
флаг fr
anx
«испытывал много комбинаций» — пожалуйста, [отредактируйте] свой вопрос, чтобы конкретно указать, чего вы хотите достичь, что вы пробовали и почему указание ваших IP-блоков превышает ограничения.
Рейтинг:2
флаг td
bob

Это немного зависит от ваших целей и проблем, с которыми вы сталкиваетесь.

Существует несколько механизмов SPF для сопоставления классов узлов без перечисления всех узлов непосредственно в записи SPF, например:

  • в ip4 механизм и аналог ip6 механизм сопоставления подсетей, когда все ваши серверы принадлежат одному или нескольким диапазонам IP-адресов, которые принадлежат исключительно вам:

    ip4:<ip4-сеть>/<длина-префикса>
    ip6:<ip6-сеть>/<длина-префикса>
    
  • вы можете создать одну запись A (например, bob.example.com), который содержит все записи IPv4 A и/или IPv6 AAAA (в циклическом режиме) серверов, которым вы хотите разрешить отправлять почту напрямую через IPv4, соответственно. IPv6 и укажите это в своей записи SPF:

    v=spf1 a:bob.example.com. ~ все
    
    bob.example.com. В А 10.0.0.1
    bob.example.com. В А 192.168.0.1
    bob.example.com. В А 172.16.0.2
    bob.example.com. В АААА 2001:db8:ffff:ffff:ffff:ffff:ffff:fff1 
    
  • в включать ключевое слово можно использовать, когда ваша запись SPF становится слишком длинной, чтобы поместиться в одну запись DNS. Например, текущая запись Gmail/Google SPF не включает диапазоны IP-адресов напрямую, но включает диапазоны из трех дополнительных записей:

    _spf.google.com. 300 IN TXT "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"
    
    _netblocks.google.com. 300 IN TXT "v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4 :108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~все"
    
    _netblocks2.google.com. 300 IN TXT "v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/ 36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~все"
    
    _netblocks3.google.com. 300 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.156.0/19 ip4:172.253.128.0/19 :172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ​​~все"
    

Альтернативой является НЕ позволять всем вашим хостам отправлять электронную почту напрямую. Настройте один или несколько серверов в качестве выделенных почтовых ретрансляторов и авторизуйте только те, которые находятся в вашем SPF. Все остальные серверы, которые вы затем настраиваете для использования этих хостов-ретрансляторов.

Pascal Ognibene avatar
флаг cn
Привет Боб, спасибо за ваш ответ, это проливает свет на возможные решения.Учитывая, что в конечном итоге у меня может быть до 200 серверов, похоже, что лучшая альтернатива — последняя: не позволять всем из них отправлять электронную почту напрямую — в противном случае я, вероятно, окажусь в ограничениях с размером записи SPF, даже при использовании дополнительных записей. Еще раз спасибо, это было очень полезно. Паскаль
Рейтинг:1
флаг us

Ваше описание варианта использования недостаточно полное. Но если ваша цель — отправить электронное письмо с *@example.com с любого из этих серверов, то SPF указатель Механизм разработан именно для этого варианта использования.

Вы должны настроить обратный DNS 1.2.3.4 – sub1.example.com – 1.2.3.4 для каждого из серверов поддоменов.

Затем вы должны установить следующую запись SPF в основном домене example.com:

v=spf1 ptr-все

Вот и все.

Преимущество этого по сравнению с другими подходами заключается в том, что его легко настроить, он не сталкивается с ограничениями поиска и масштабируется до произвольного количества хостов поддоменов.

Недостатком является то, что он несколько противоречит предписаниям SPF RFC: RFC 7208 не рекомендует использовать указатель механизм. Тем не менее, можно возразить, что формулировка слишком строгая, и, учитывая ваш вариант использования указатель является приемлемым. Смотрите также мой вопрос 1063826.

Pascal Ognibene avatar
флаг cn
Моя цель действительно состоит в том, чтобы иметь возможность отправлять электронную почту с любого сервера, подключенного к поддомену, например, sub1.example.com, sub2.example.com. Однако получатель электронной почты должен видеть в качестве отправителя только example.com (даже несмотря на то, что настоящий отправитель виден в необработанном электронном письме). Я настроил обратный DNS как для ipv4, так и для ipv6 и добавил записи A и AAAA в DNS для своего субдомена (назовем его sub1.example.com). Я попробовал ваше предложение с ``` v=spf1 ptr-все ``` И действительно, теперь я прохожу проверку SPF на Gmail :-)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.