возможные противоречивые SPF записи DNS

Вопрос или проблема

Контекст:
• услуга электронной почты, обслуживаемая третьей стороной
• на VPS установлен postfix как сервер электронной почты только для отправки.

DNS имеет две TXT-записи с именем @
v=spf1 include:spf.someengine.com ?all
v=spf1 mx ip4:111.222.333.444 ~all

Может ли такая конфигурация создавать проблемы с почтовыми серверами? Предпочтительнее ли объединить их в одну запись, например,
v=spf1 include:spf.someengine.com mx ip4:111.222.333.444 ~all
?

Насколько мне известно и согласно соответствующему RFC, RFC 7208 – раздел 3.2, несколько SPF-записей должны приводить к ошибке. Их следует объединить в одну запись SPF TXT.

3.2. Множественные DNS-записи

Доменное имя НЕ ДОЛЖНО иметь несколько записей, которые могут привести к
проверке авторизации, выбирающей более одной записи. См. раздел 4.5
для правил выбора.

и раздел 4.5


Если результирующий набор записей включает более одной записи, check_host() выдает результат “permerror”.


Правильный способ форматирования SPF-записей, чтобы они слишком длинными для одной записи DNS TXT, заключается в распределении их по нескольким уникально названным записям SPF TXT, которые объединяются в основной SPF-записи с помощью директивы include:.

Примером этого является запись SPF для gmail.com:

_spf.google.com.    113 IN  TXT "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"

_netblocks.google.com.  57  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 ~all"

_netblocks2.google.com. 22  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 ~all"

_netblocks3.google.com. 42  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.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"

Ответ или решение

Вопрос о возможных конфликтах SPF-записей в DNS особенно актуален, когда у вас несколько сторонних систем, участвующих в обработке и отправке электронной почты. Рассмотрим конкретную ситуацию:

Контекст:

  • Ваши электронные письма обрабатываются сторонним сервисом.
  • На вашем VPS установлен Postfix как отправляющий почтовый сервер.
  • В DNS имеются две TXT-записи с одинаковым именем @:
    • v=spf1 include:spf.someengine.com ?all
    • v=spf1 mx ip4:111.222.333.444 ~all

Такая конфигурация скорее всего приведет к проблемам. Согласно RFC 7208, несколько SPF-записей для одного и того же доменного имени являются ошибкой и должны будут привести к результату "permerror" при проверке авторизации.

Почему эта ситуация может быть проблематичной:

  1. Конфликтующие записи: Наличие нескольких SPF-записей заставит брандмауэры и системы проверки авторизации выбрать только одну из этих записей или вообще не выбрать, что приведет к ошибке.

  2. Жесткие ограничения: В случае возникновения ошибки "permerror", ваши сообщения могут быть заблокированы при отправке или попадать в папку спама, так как ни один из полисов SPF не будет применим.

Рекомендуемое решение:
Объедините эти записи в единое SPF-запись. Например:

v=spf1 include:spf.someengine.com mx ip4:111.222.333.444 ~all

Общее правило для длинных SPF-записей: Если запись слишком длинная для одного DNS TXT, используйте конструкцию с include:, как это сделано у Gmail. Основной записью должна быть запись по умолчанию, а дополнительные длинные записи выносите под другие доменные имена.

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

Оцените материал
Добавить комментарий

Капча загружается...