SPFSender Policy Framework (структура политики отправителя).

SPF позволяет владельцу домена указать в TXT-записи домена специальным образом сформированную строку, указывающую список серверов, имеющих право отправлять email-сообщения с обратными адресами в этом домене.

Рассмотрим простой пример SPF-записи.

example.org. IN TXT "v=spf1 +a +mx -all"
  • Допустимые опции:

v=spf1 - используемая версия SPF.

+ - принимать корреспонденцию (Pass). Этот параметр установлен по умолчанию. То есть, если никаких параметров не установлено, то это «Pass»;

- - Отклонить (Fail);

~ - «мягкое» отклонение (SoftFail). Письмо будет принято, но будет помечено как СПАМ;

? - нейтральное отношение;

mx - включает в себя все адреса серверов, указанные в MX-записях домена;

ip4 - опция позволяет указать конкретный IP-адрес или сеть адресов;

a - указываем поведение в случае получения письма от конкретного домена;

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

all - все остальные сервера, не перечисленные в SPF-записи.

ptr - проверяет PTR-запись IP-адреса отправителя. Если она сходится с указаным доменом, то механизм проверки выдает положительный результат. То есть, разрешено отправлять всем IP-адресам, PTR-запись которых направлены на указанный домен. Серьезным недостатком даного метода есть то, что генерируется очень большое количество DNS-запросов;

exists - выполняется проверка, резолвится ли домен на какой-либо IP-адрес. То есть, по существу, выполняется проверка работоспособности доменного имени. Кстати, не имеет значения, на какой IP-адрес резолвится домен, даже если это «серые» сети (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) или loopback (127.0.0.1).

Пример использования:

example.org. IN TXT "v=spf1 ptr:example.org exist:example.org -all"

redirect - указывает получателю, что нужно проверять SPF-запись указанного домена, вместо текущего.

Пример использования:

example.org. IN TXT "v=spf1 redirect:example.com ~all"

В данном примере будет проводится проверка SPF-записи домена example.com, а не example.org.


Итак, попробуем разобраться, что же значит SPF-запись, указанная выше.

«+a» - разрешает прием писем от узла, IP-адрес которого совпадает с IP-адресом в A-записи для example.org;

«+mx» - разрешает прием писем, если отправляющий хост указан в одной из MX-записей для example.org;

«-all» - все сообщения, не прошедшие верификацию с использованием перечисленных механизмов, следует отвергать.


Для лучшего понимания того, как работает SPF, рассмотрим еще один, более сложный пример.

example.org. IN TXT "v=spf1 mx ip4:195.3.159.250 +a:smtp.mail.ru include:gmail.com ~all"

Подробно о используемых опциях:

«mx» - принимать письма от серверов, указанных в MX-записях;

«ip4:195.3.159.250» - принимать письма, отправленные с IP-адреса 195.3.159.250;

«+a:smtp.mail.ru» - то же, что и a:smtp.mail.ru. Принимать от smtp.mail.ru;

«include:gmail.com» - принимать письма с серверов, разрешенных SPF-записями gmail.com;

«~all» - принимать письма со всех остальных серверов, но помечать их как СПАМ.


Рассмотрим еще более «экзотичный» пример:

example.org. IN TXT "v=spf1 mx/24 a:muff.kiev.ua/24 -all"

«mx/24» - в список разрешенных отправителей входят все IP-адреса, находящихся в тех же сетях класса С, что и MX-ы домена;

«a:muff.kiev.ua/24» - в список разрешенных отправителей входят все IP-адреса, находящихся в тех же сетях класса С, что и А-записи домена muff.kiev.ua;

«-all» - всех остальных отправителей - блокируем.


Источник

  • spf-zapis.txt
  • Последние изменения: 2015/09/24 00:00
  • (внешнее изменение)