Настройка SPF-записи

SPF (Sender Policy Framework) - это DNS-запись, содержащая список доверенных серверов, с которых может отправляться почта данного домена, и сведения о механизме обработки писем, отправленных с других серверов. Корректная настройка SPF позволит снизить вероятность рассылки спама злоумышленниками от вашего имени.

В панели Timeweb SPF настраивается в разделе "Домены и поддомены" - "Настройки DNS" - "Добавить DNS запись" - "TXT". Если TXT-запись с параметрами SPF уже создана, необходимо ее отредактировать. Не рекомендуется создавать несколько SPF-записей для домена, так как это может вызывать проблемы с доставкой почты.

Для доменов, делегированных на наши NS-серверы, SPF-запись указывается автоматически и выглядит примерно следующим образом:

v=spf1 ip4:176.57.223.0/24 ip4:92.53.116.0/22 ip4:ip_вашего_сервера/32 ~all

Такая запись означает, что письма с данного домена могут отправляться из подсетей 176.57.223.0/24 и 92.53.116.0/22, а письма, пришедшие с других серверов (all), должны проходить дополнительную проверку (~).

Основной синтаксис

Любая SPF-запись начинается с v=spf1, этот параметр не изменяется. Он указывает на версию записи, и в настоящее время поддерживается только spf1.

Далее указываются параметры (механизмы). Чаще всего используются следующие: all, ip4, ip6, a, mx, include, redirect. Также существуют, но используются значительно реже: ptr, exists, exp. Они все будут рассмотрены ниже.

Помимо механизмов используются префиксы (определители):

  • "+" - Pass, принимать почту. Прописывать этот параметр необязательно, он установлен по умолчанию (т.е. значения "+a +mx" и "a mx" - идентичны).

  • "-" - Fail, отклонять почту.

  • "~" - SoftFail, "мягко" отклонять (принимать почту, но помещать ее в "Спам").

  • "?" - нейтрально (обрабатывать как обычное письмо).

all

Параметр "all" подразумевает все серверы, не упомянутые отдельно в SPF-записи. "All" задает обработку полученных с них писем и указывается в конце записи.

Например:

v=spf1 ip4:176.57.223.0/24 ~all

— принимать почту только из подсети 176.57.223.0/24; письма с других адресов должны быть помечены как спам.

v=spf1 a -all

— принимать почту только с A-записи домена; письма с других адресов должны отвергаться.

v=spf1 -all

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

В последующих примерах мы не будем дополнительно комментировать значения параметров ~all и -all в SPF-записях.

ip4 / ip6

Используется для указания конкретных адресов и подсетей, из которых могут отправляться письма. Синтаксис для IPv4 и IPv6 идентичен.

v=spf1 ip4:176.57.223.0/24 ~all

— принимать почту из подсети 176.57.223.0/24.

v=spf1 ip6:2001:db8::10 ~all

— принимать почту с IPv6-адреса 2001:db8::10.

a

IP отправителя проверяется на соответствие A-записи домена.

v=spf1 a ~all

— принимать почту с A-записи текущего домена.

v=spf1 a:sub.domain.com ~all

— принимать почту с A-записи домена sub.domain.com.

mx

IP отправителя проверяется на соответствие IP-адресам серверов, указанных в MX-записях домена. На текущий день для многих современных сервисов эта директива уже не так важна, так как серверы входящей и исходящей почты зачастую имеют разные IP.

v=spf1 mx mx:sub.domain.com -all

— принимать почту с MX-серверов текущего домена и домена sub.domain.com.

v=spf1 mx/24 -all

— принимать почту из подсети, в которую входят MX-серверы текущего домена.

include

Позволяет учитывать в SPF-записи настройки SPF другого домена.

v=spf1 a include:other-domain.com -all

— принимать почту с A-записи текущего домена и серверов, указанных в SPF-записи домена other-domain.com.

При такой настройке проверяется SPF домена other-domain.com; если это, допустим, "v=spf1 a -all", то далее IP отправителя проверяется на соответствие A-записи домена other-domain.com.

redirect

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

v=spf1 redirect=other-domain.com

— почта должна приниматься или отклоняться согласно настройкам домена other-domain.com.

Прочие механизмы

Здесь мы рассмотрим оставшиеся механизмы, которые используются в настройках значительно реже.

ptr

PTR-запись IP-адреса отправителя проверяется на соответствие указанному домену. Данный механизм требует большого количества DNS-запросов при проверке, поэтому без острой необходимости использовать его в SPF не рекомендуется.

v=spf1 ptr:other-domain.com -all

— принимать почту со всех адресов, PTR-запись которых направлена на домен other-domain.com

exists

Запрашивается А-запись указанного домена; если она существует, проверка считается пройденной. Другими словами, проверяется, резолвится ли домен на какой-либо (любой) IP-адрес.

v=spf1 exists:mydomain.com -all

— принимать почту, если существует A-запись домена mydomain.com.

exp

Параметр "exp" применяется для отправки сообщения об ошибке отправителю письма. С помощью "exp" в SPF прописывается определенный поддомен, в TXT-записи которого указан текст сообщения об ошибке. Имя поддомена и текст ошибки может быть любым.

Параметр "exp" всегда указывается в конце записи (после all).

Например:

v=spf1 mx -all exp=error-spf.mydomain.com

При этом TXT-запись домена error-spf.mydomain.com содержит: "Not authorized to send mail for this domain".

Примеры настроек

Настройка SPF для "Почты для доменов" от Mail.Ru

Если вы отправляете почту только с серверов Mail.Ru:

v=spf1 redirect=_spf.mail.ru

Если вы отправляете почту так же и с других серверов (укажите IP-адреса или подсети вместо IP1, IP2 и т.д.):

v=spf1 ip4:IP1 ip4:IP2 ip4:IP3 include:_spf.mail.ru ~all

Настройка SPF для Яндекс.Почты

(подробнее о настройке DNS для Яндекса см. здесь)

При использовании только серверов Яндекса:

v=spf1 redirect=_spf.yandex.net

При использовании также и других серверов (укажите IP-адреса или подсети вместо IP1, IP2 и т.д.):

v=spf1 ip4:IP1 ip4:IP2 ip4:IP3 include:_spf.yandex.net ~all

Настройка SPF для Google

При использовании только серверов Google:

v=spf1 include:_spf.google.com ~all

При использовании также и других серверов (укажите IP-адреса или подсети вместо IP1, IP2 и т.д.):

v=spf1 ip4:IP1 ip4:IP2 include:_spf.google.com ~all

Другие примеры

v=spf1 a ip4:176.57.223.12 include:domain2.com -all

— принимать почту с IP-адресов, соответсвующих A-записям текущего домена, с IP-адреса 176.57.223.12 и серверов, указанных в SPF-записи domain2.com; прочие письма отклонять.

v=spf1 mx/24 a:domain2.com/24 ~all

— принимать почту из подсети, в которую входят MX-серверы текущего домена, и из подсети, в которую входят A-записи домена domain2.com; прочие письма отклонять.

v=spf1 a ip4:176.57.223.12 include:domain2.com -all

— принимать почту с A-записи текущего домена, IP-адреса 176.57.223.12, а также с серверов, указанных в SPF домена domain2.com.

Last updated