для чего нужна spf запись
Что такое SPF
Думаю, никому не нужно объяснять, какой проблемой является спам в наше время. Борьба с этим злом — дело не простое, и если хочется приблизится к идеалу, требующее сочетания нескольких элементов. Одним из этих элементов является протокол SPF. Будучи опубликованным в апреле 2006 года в RFC 2006 года к настоящему времени протокол имеет статус «экспериментальный», и достаточно неплохую распространенность.
SPF взят на вооружение такими гигантами, как Google, Яндекс, Mail.Ru, Microsoft, Рамблер. Yahoo не поддерживает SPF, а пытается продвигать свою разработку DKIM, к слову, не слишком успешно.
Итак — как же работает SPF?
Общие принципы работы
Основная идея такова — хозяин адреса указывает, с каких адресов следует ожидать его почту, и как интерпретировать ошибку, в случае несоответствия. Важно понимать, что эти данные — всего лишь рекомендация отправителя по проверке. Да-да, конечно же, стандарт описывает, как должна принимающая сторона обрабатывать результат, но по всяким причинам принимающая сторона фактически может с ними делать все, что заблагорассудится — полностью соблюсти, интерпретировать по-своему или же вообще проигнорировать рекомендации.
Технические детали
Если установлена запись SPF, то TXT записи должны быть проигнорированы.
Механизм взаимодействия
>> 220 example.net ESMTP Service (Mailer v1.0) ready at 30.07.2009 12:28:21 UTC
> 250 example.net Hello mx.example.com., pleased to meet you
Если бы, вдруг, фактический IP подключившегося отправителя был иным, то анализатор сообщил бы почтовику, что входящее сообщение не валидно, и лучше бы его вообще не принимать, ну или на крайний случай отмаркировать отдельно.
Формат записи
» SoftFail, «?» Neutral
Механизмы: all, include, A, MX, PTR, IP4, IP6, exists
Результатами проверки условий могут являться следующие определенные результаты:
* None — означает, что либо в домене нет записей, либо вообще не удается проверить домен. В общем никакого внятного ответа не получено.
* Neutral — возникает в ситуации, когда хозяин домена не хочет или не может сообщить разрешен ли IP. Этот результат должен обрабатываться так же, как и None.
* Pass — означает, что все ОК и получатель может принять письмо.
* Fail — явно указывает на то, что письмо принимать не следует. Проверяющая сторона может отмаркировать письмо либо отбросить.
* SoftFail — находится где-то между Fail и Neutral. Принимающая сторона не должна отбрасывать письмо на основании только этого результата.
* TempError — результат, возникающий, если клиент в момент проверки получает временную ошибку. Сообщение можно принять или временно отвергнуть.
* PermError — ошибка, возникающая при невозможности корректной интерпретации DNS записей отправителя.
тут указаны 2 подсети, из которых разрешено принимать почту, и 2 набора источников, почта с которых будет иметь результат проверки Fail.
Проблема пересылки
Заключение
SPF является простым и достаточно эффективным способом оценить легитимность передаваемой почты. Администраторам почтовых серверов стоит минимальных телодвижений добавление SPF записей в DNS. Простота внедрения и поддержка основными популярными MTA делают распространение SPF все шире и шире, что несет всем пользователям электронной почты пользу, почтовым серверам снижение трафика и в целом делает мир лучше 🙂
Что такое ресурсные записи DNS
DNS (система доменных имен) – это «телефонная книга» Интернета. В качестве номера телефона в ней выступает IP-адрес, а в качестве наименований контактов — домены. В такую книгу можно внести не только «телефонный номер», но и дополнительную информацию о контакте («е-mail», «место работы» и т.п.).
Информация о домене хранится на DNS-серверах. Чтобы внести её в систему DNS, нужно прописать ресурсные записи. С их помощью серверы делятся сведениями о доменах с другими серверами. Пока не прописаны ресурсные записи для домена, его нет в «телефонной книге» Интернета. Следовательно, работа сайта или почты на нём невозможна. Прежде чем приступать к указанию ресурсных записей, нужно делегировать домен, то есть прописать для него DNS-серверы. Вы можете сделать это по инструкции: Как прописать DNS-серверы для домена в Личном кабинете. Затем переходите к ресурсным записям. Изменения вступят в силу после обновления DNS-серверов (обычно до 24 часов).
Основные ресурсные записи: записи типа A, CNAME, MX, TXT и SPF. С общей информацией по добавлению ресурсных записей вы можете познакомиться в статье: Настройка ресурсных записей в Личном кабинете.
Запись A
Запись A (address) — одна из ключевых ресурсных записей Интернета. Она нужна для связи домена с IP-адресом сервера. Пока не прописана А-запись, ваш сайт не будет работать.
Когда вы вводите название сайта в адресную строку браузера, именно по А-записи DNS определяет, с какого сервера нужно открывать ваш сайт.
Имя записи | Тип записи | Значение |
---|---|---|
site.ru | A | 123.123.123.123 |
shop.site.ru | A | 123.123.123.123 |
где 123.123.123.123 — IP-адрес нужного вам сервера.
Запись CNAME
CNAME (Canonical name) — запись, которая отвечает за привязку поддоменов (например, www.site.ru) к каноническому имени домена (site.ru) или другому домену.
Основная функция CNAME — дублирование ресурсных записей домена (A, MX, TXT) для различных поддоменов.
Примеры записи CNAME:
Имя записи | Тип записи | Значение |
---|---|---|
www.site.ru | CNAME | site.ru |
mail.site.ru | CNAME | webmail.hosting.reg.ru |
Если вы пропишете CNAME для поддомена www.site.ru и укажете значение site.ru, сайт будет открываться с того же IP-адреса, что и site.ru. Если вы пропишете CNAME для mail.site.ru и укажете значение webmail.hosting.reg.ru, то на mail.site.ru будут распространятся те же ресурсные записи, что для webmail.hosting.reg.ru.
Запись MX
MX-запись что это? Это запись, отвечающая за сервер, через который будет работать почта. Записи MX критически важны для работы почты. Благодаря им отправляющая сторона «понимает», на какой сервер нужно отправлять почту для вашего домена.
Имя записи | Тип записи | Приоритет | Значение |
---|---|---|---|
site.ru | MX | 10 | mx1.hosting.reg.ru |
site.ru | MX | 15 | mx2.hosting.reg.ru |
где mx1.hosting.reg.ru — нужный вам почтовый сервер.
Обычно указывается два почтовых сервера, чтобы в случае недоступности одного из них почта всё же была отправлена на другой. Приоритет записи определяет, на какой сервер нужно отправлять почту в первую очередь. Чем меньше число, тем выше приоритет. Таким образом, для доменного имени site.ru почтовый сервер mx1.hosting.reg.ru является основным, а mx2.hosting.reg.ru выступает второстепенным. Если приоритет одинаковый, сервер выбирается случайным образом.
Запись TXT
TXT (Text string) — запись, которая содержит любую текстовую информацию о домене. Записи TXT используются для различных целей: подтверждения права собственности на домен, обеспечения безопасности электронной почты, а также подтверждения SSL-сертификата. Часто применяется для проверок на право владения доменом при подключении дополнительных сервисов, а также как контейнер для записи SPF и ключа DKIM. Можно прописывать неограниченное количество TXT-записей, если они не конфликтуют друг с другом.
Запись SPF
SPF-запись (Sender Policy Framework) содержит информацию о списке серверов, которые имеют право отправлять письма от имени заданного домена. Позволяет избежать несанкционированного использования. Настройка SPF прописывается в TXT-записи для домена.
Имя записи | Тип записи | Значение |
---|---|---|
site.ru | TXT | v=spf1 include:_spf.hosting.reg.ru ip4:123.123.123.123 a mx |
где 123.123.123.123 — IP-адрес нужного вам сервера.
all — если письмо пришло с сервера, который не входит в вышеперечисленный список, его стоит проанализировать более тщательно. Также иногда используется -all — в этом случае письмо не проходит дополнительных проверок и сразу отвергается.
» и «-», для параметра «all» существуют ещё ключи:
Записи NS, PTR, SOA являются служебными и, как правило, настраиваются автоматически.
Запись NS
NS-запись (Authoritative name server) указывает на DNS-серверы, которые отвечают за хранение остальных ресурсных записей домена. Количество NS записей должно строго соответствовать количеству всех обслуживающих его серверов. Критически важна для работы службы DNS.
Запись PTR
PTR — обратная DNS-запись, которая связывает IP-адрес сервера с его каноническим именем (доменом). PTR-запись применяется для фильтрации почты. Для всех серверов виртуального хостинга REG.RU обратные DNS-записи прописываются автоматически. Если у вас заказан VPS или Dedicated-сервер, прописать PTR-запись можно по инструкции: Как настроить PTR-запись?
Запись SOA
SOA (Start of Authority) — начальная запись зоны, которая указывает, на каком сервере хранится эталонная информация о доменном имени. Критически важна для работы службы DNS. Подробнее о том, что такое SOA-запись и как её проверить, вы можете узнать в статье.
SPF-запись
SPF-запись помогает снизить риск того, что письмо, отправленное с адреса на вашем домене, попадет в спам у адресата. Чтобы настроить SPF-запись, нужно создать TXT-запись со списком серверов, которые отвечают за отправку почты с вашего домена.
Если вы делегировали домен на серверы Яндекса, SPF-запись будет настроена автоматически.
Общая инструкция по настройке SPF-записи
Войдите в панель управления на сайте компании, которая предоставляет вам DNS-хостинг.
Если вы делегировали домен на серверы Яндекса, перейдите в DNS-редактор Коннекта.
Создайте TXT-запись со следующими значениями полей (в разных панелях управления названия полей могут различаться):
Имя поддомена (или Хост ) — @
Если это поле отсутствует в панели управления, можно его не указывать.
Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
Инструкции по настройке SPF-записи у некоторых хостинг-провайдеров
Откройте страницу https://reg.ru и войдите в ваш аккаунт.
Text — v=spf1 redirect=_spf.yandex.net
Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
Откройте страницу https://cp.masterhost.ru и войдите в ваш аккаунт.
значение (IP/host.) — v=spf1 redirect=_spf.yandex.net
Поле MX preference оставьте пустым.
Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
Откройте страницу https://mcp.sweb.ru и войдите в ваш аккаунт.
В выпадающем списке выберите нужный домен.
Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
Создать SPF: Как сделать так, чтобы письма не попадали в СПАМ
P.S. будет много технических терминов, но мы их просто объясним.:)
SPF (Sender Policy Framework/структура политики отправителя) — это метод борьбы со спамом, который работает по принципу паспорта. Как главный документ удостоверяет нашу личность, так SPF подтверждает, что емейл пришел с проверенного надежного адреса. Но в отличие от объемной книжечки, Sender Policy Framework представляет собой одну строку в TXT-записи домена. Например, такую:
Это самый простой пример записи, который говорит о том, что отправлять письма от имени домена example.org могут все все сервера, указанные в записях a и mx. Другие же адреса должны быть удалены: -all.
Более сложный уровень SPF-защиты для того же домена может выглядеть так:
example.org. IN TXT «v=spf1 mx ip4:195.3.159.250 +a:smtp.mail.ru include:gmail.com
и означает, что отправлять сообщения от имени домена example.org. могут все сервера, указанные в mx-записях, а также отправленные с IP 195.3.159.250. Кроме того, можно принимать письма с серверов, указанных в SPF-записи домена gmail.com. Письма со всех остальных серверов нужно отправить в спам без проверки:
И это далеко не самая сложная SPF-запись. При необходимости, она может вмещать до 10 параметров. Для удобства, мы собрали их все в одном месте:
принять емейл, но пометить как СПАМ.
mx все адреса, указанные в MX-записях домена;
all все остальные IP, которые не указаны в SPF-записи;
exists проверяет работоспособность доменного имени;
spf.example.org. IN TXT «You host not allowed e-mail to me from this domain!»
Как известно, основной метод спуфинга — это подмена адреса в поле “FROM”. SPF-запись, как противоядие, направлено именно на это поле, поскольку оно содержит главный критерий для проверки: домен отправителя и его IP адрес. Сопоставляя его с теми айпишниками, которые прописаны в SPF-записи как разрешенные, сервер-получатель принимает решение о безопасности сообщения.
Коротко, алгоритм работы SPF проходит четыре этапа. Для примера, возьмем отправку сообщения с адреса info@example.com на адрес example@beispiel.com через почтовый сервис Estismail:
И такие этапы проходит каждое письмо. Графически, преодоление SPF-фильтра выглядит следующим образом:
Базовую роль в проверке домена играет список IP адресов, указанных в SPF-записи. Именно он подтверждает честные намерения отправителя. Поэтому постарайтесь вписать в этот список все возможные IP, которым вы разрешаете отправку: все корпоративные адреса, а также не забудьте о сервисах почтовых рассылок.
Создание SPF — простая операция. В большинстве случаев для установки базовой защиты достаточно прописать одну строку в TXT-записи домена. Но и здесь есть много подводных камней:
Процесс настройки SPF-записи проходит на сайте провайдера и состоит из 5 этапов. Последний из них — проверка работоспособности и правильности SPF. Ее можно провести на одном из специальных сервисах:
Настройка SPF-записи
Для доменов, делегированных на наши NS-серверы, SPF-запись указывается автоматически и выглядит примерно следующим образом:
Такая запись означает, что письма с данного домена могут отправляться из подсетей 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. Они все будут рассмотрены ниже.
Помимо механизмов используются префиксы (определители):
Параметр «all» подразумевает все серверы, не упомянутые отдельно в SPF-записи. «All» задает обработку полученных с них писем и указывается в конце записи.
— принимать почту только из подсети 176.57.223.0/24; письма с других адресов должны быть помечены как спам.
— принимать почту только с A-записи домена; письма с других адресов должны отвергаться.
— отвергать все письма с домена. Такую настройку можно использовать для доменов, с которых не должна отправляться вообще никакая почта.
В последующих примерах мы не будем дополнительно комментировать значения параметров
all и -all в SPF-записях.
ip4 / ip6
Используется для указания конкретных адресов и подсетей, из которых могут отправляться письма. Синтаксис для IPv4 и IPv6 идентичен.
— принимать почту из подсети 176.57.223.0/24.
— принимать почту с IPv6-адреса 2001:db8::10.
IP отправителя проверяется на соответствие A-записи домена.
— принимать почту с A-записи текущего домена.
— принимать почту с A-записи домена sub.domain.com.
IP отправителя проверяется на соответствие IP-адресам серверов, указанных в MX-записях домена. На текущий день для многих современных сервисов эта директива уже не так важна, так как серверы входящей и исходящей почты зачастую имеют разные IP.
— принимать почту с MX-серверов текущего домена и домена sub.domain.com.
— принимать почту из подсети, в которую входят MX-серверы текущего домена.
include
Позволяет учитывать в SPF-записи настройки SPF другого домена.
— принимать почту с A-записи текущего домена и серверов, указанных в SPF-записи домена other-domain.com.
redirect
Технически, redirect является модификатором, а не механизмом. Он выполняет одну основную функцию: сообщает, что необходимо применять настройки SPF другого домена.
— почта должна приниматься или отклоняться согласно настройкам домена other-domain.com.
Прочие механизмы
Здесь мы рассмотрим оставшиеся механизмы, которые используются в настройках значительно реже.
PTR-запись IP-адреса отправителя проверяется на соответствие указанному домену. Данный механизм требует большого количества DNS-запросов при проверке, поэтому без острой необходимости использовать его в SPF не рекомендуется.
— принимать почту со всех адресов, PTR-запись которых направлена на домен other-domain.com
exists
Запрашивается А-запись указанного домена; если она существует, проверка считается пройденной. Другими словами, проверяется, резолвится ли домен на какой-либо (любой) IP-адрес.
— принимать почту, если существует A-запись домена mydomain.com.
Параметр «exp» применяется для отправки сообщения об ошибке отправителю письма. С помощью «exp» в SPF прописывается определенный поддомен, в TXT-записи которого указан текст сообщения об ошибке. Имя поддомена и текст ошибки может быть любым.
Параметр «exp» всегда указывается в конце записи (после all).
При этом TXT-запись домена error-spf.mydomain.com содержит: «Not authorized to send mail for this domain».
Примеры настроек
Настройка SPF для «Почты для доменов» от Mail.Ru
(подробнее о настройке DNS для Mail.ru см. здесь)
Если вы отправляете почту только с серверов Mail.Ru:
Если вы отправляете почту так же и с других серверов (укажите IP-адреса или подсети вместо IP1, IP2 и т.д.):
Настройка SPF для Яндекс.Почты
(подробнее о настройке DNS для Яндекса см. здесь)
При использовании только серверов Яндекса:
При использовании также и других серверов (укажите IP-адреса или подсети вместо IP1, IP2 и т.д.):
Настройка SPF для Google
(подробнее о настройке DNS для Google см. здесь)
При использовании только серверов Google:
При использовании также и других серверов (укажите IP-адреса или подсети вместо IP1, IP2 и т.д.):
Другие примеры
— принимать почту с IP-адресов, соответствующих A-записям текущего домена, с IP-адреса 176.57.223.12 и серверов, указанных в SPF-записи domain2.com; прочие письма отклонять.
— принимать почту из подсети, в которую входят MX-серверы текущего домена, и из подсети, в которую входят A-записи домена domain2.com; прочие письма отклонять.
— принимать почту с A-записи текущего домена, IP-адреса 176.57.223.12, а также с серверов, указанных в SPF домена domain2.com.