Sender Policy Framework

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Sender Policy Framework, SPF (инфраструктура политики отправителя[1]) — расширение для протокола отправки электронной почты через SMTP. SPF определен в RFC 7208.

Благодаря SPF можно проверить, не подделан ли домен отправителя.

Принцип работы[править | править код]

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

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

Пример SPF-данных в TXT-записи DNS:

example.org. IN TXT "v=spf1 +a +mx -all"

Символ "+" является квалификатором по умолчанию и может быть опущен. Следующий пример аналогичен предыдущему:

example.org. IN TXT "v=spf1 a mx -all"

v= определяет используемую версию SPF. Далее следует перечисление механизмов верификации: в данном случае «a» разрешает прием писем от узла, IP-адрес которого совпадает с IP-адресом в A-записи для example.org; «mx» разрешает приём писем, если отправляющий узел указан в одной из MX-записей для example.org. Строка завершается «-all» — указанием того, что сообщения, не прошедшие верификацию с использованием перечисленных механизмов, следует отвергать. Также может использоваться «~all» — в этом случае письмо, не прошедшее верификацию, не должно быть отклонено, но может быть изучено более тщательно (SoftFail).

Следует заметить, что RFC 7208 определяет различные результаты проверки, в том числе "Permerror" в случае некорректной SPF-записи. Одним из случаев некорректной записи является наличие более чем одной записи "v=spf1" (3.2. Multiple DNS Records). Следует быть внимательным при формировании записи и сверяться с документом RFC 7208. В Сети можно найти онлайн-сервисы для проверки SPF-записи.

Формат[править | править код]

Запись TXT для SPF начинается с параметра «v», значением которого является версия стандарта spf: v=spf1[2].

Следом через пробел перечислены команды разрешения отправителей и политики приёма-отказа для писем от неуказанных отправителей[2]:

  • mx – обозначает серверы почты, перечисленные в записях типа «MX» для доменной зоны;
  • a – обозначает сервер с именем, совпадающим с именем доменной зоны (например, для доменной зоны expamle.net это будет сервер expamle.net);
  • a:доменное имя – указывает сервер или подсеть по доменному имени узла с возможным указанием маски подсети в формате CIDR;
  • ip4:адрес/маска – указывает адрес IPv4 сервера или подсеть IPv4 (маска подсети указывается в формате CIDR);
  • ip6:адрес/маска – указывает адрес IPv6 сервера или подсеть IPv6 (маска подсети указывается в формате CIDR);
  • all – обозначает все прочие узлы-отправители, используется для описания политики приёма электронной почты от прочих отправителей.

В формате записи spf предусмотрены модификаторы:

  • redirect – используется для указания на другую запись SPF, где описаны собственно правила обработки политики;
  • exp – (англ. explanation), используется при отказе по другим правилам в записи SFP;
  • include – дополняет описанные с текущей записи правила правилами из другой записи (например, из записи оператора электронной почты на хостинге);

В командах и модификаторах предусмотрены макросы, каждый макрос состоит из знака «%» и буквы:

  • s – адрес email отправителя;
  • l – локальная часть адреса email отправителя;
  • o – доменная часть адреса email отправителя;
  • d – домен;
  • i – адрес IP
  • p – (не рекомендуется к использованию) доменное имя отправителя после проверки (англ. validated)
  • v – строка «in-addr» в случае адреса IPv4 и строка «ip6» в случае адреса IPv6;
  • h – доменное имя, указанное отправителем в команде HELO или EHLO;
  • c – (допускается только в команде exp) адрес IP клиента SMTP (сервера, подключившегося к нашему);
  • r – (допускается только в команде exp) доменное имя хоста (сервера), проводящего проверку;
  • t – (допускается только в команде exp) текущее время.

Пример записи

@              IN TXT  "v=spf1 a:authorized-spf.example.com mx -all"

Распространённость[править | править код]

Программное обеспечение для фильтрации спама SpamAssassin версии 3.0.0 и ASSP (англ.) обеспечивают поддержку SPF. Многие агенты передачи почты (MTA) имеют встроенную поддержку SPF (CommuniGate Pro, Wildcat, Exim, Microsoft Exchange Server). Для других MTA существуют патчи или расширения, обеспечивающие реализацию SPF (mailfromd для Postfix, Sendmail и MeTA1; SPF implementation for qmail).

В настоящий момент большинство известных сервисов интернета (Amazon, AOL, EBay, Google, Hotmail, Microsoft, W3C) и рунета (Mail.ru, Яндекс, Rambler, Pochta.ru) предоставляют SPF информацию о своих доменах.

См. также[править | править код]

Комментарии[править | править код]

  1. В RFC 4408 было введено понятие SPF RR, однако в RFC 7208 использование SPF RR было признано ненужным

Примечания[править | править код]

Литература[править | править код]

Ссылки[править | править код]