Разумно настроенная SPF-запись снизит вероятность спуфинга доменного имени и защитит ваши сообщения преждевременной пометки «спам».
Спуфинг – это создание почтовых сообщений с поддельным адресом отправителя; такая атака очень проста, поскольку у многих почтовых серверов ненадёжная аутентификация.
Как правило, такую подмену используют для рассылки спама и фишинг-писем, чтобы ввести получателя в заблуждение по поводу происхождения сообщения.
Существует множество методов защиты от спуфинга, среди которых стоит отметить SPF, Sender ID, DKIM и DMARC. SPF (или Sender Policy Framework) – это расширение для проверки электронной почты, которое позволяет подтвердить подлинность доменного имени отправителя.
На сегодняшний день почти весь спам отправляется с поддельного адреса. Почтовые серверы, ставшие жертвами таких злоумышленников, часто страдают от последствий таких действий: их репутация испорчена, а их владельцы должны тратить свое время на сортировку рикошетов или исключение IP-адреса из черных списков.
SPF – это открытый стандарт, позволяющий предотвратить подделку адреса. SPF позволяет администраторам определять хосты, которые могут отправлять сообщения с данного домена, путём создания SPF-записей (или TXT-записей) в настройках DNS. Затем эти записи используются почтовыми обменниками для проверки хоста, отправляющего почту с этого домена.
Преимущества SPF-записей
Добавление записи SPF в настройки DNS – это лучший способ предотвратить использование своего домена для рассылки спама. Кроме того, SPF-запись уменьшает количество реальных сообщений, отмеченных как спам или возвращённых почтовым сервером получателя. К сожалению, SPF не может гарантировать стопроцентной эффективности, так как не все почтовые провайдеры проверяют их.
Пример SPF-записи
Записи SPF добавляются в настройки DNS как TXT-записи, определяющие SMTP-серверы для данного домена.
TXT @ "v=spf1 a include:_spf.google.com ~all"
Рассмотрим компоненты этой записи подробнее:
- TXT – тип записи DNS; TXT-записи позволяют настроить SPF.
- @ – заполнитель, обозначающий текущий домен.
- v=spf1 – определяет TXT-запись как SPF (версия SPF 1).
- a – авторизует хосты, указанные в А-записи, и позволяет им отправлять сообщения.
- include: – отправляет почту от имени домена с google.com.
- ~all – обозначает, что этот список является исчерпывающим и никакие другие серверы не могут отправлять сообщения с этой электронной почты.
Компоненты записи SPF
Запись SPF содержит номер версии SPF и строку, задающую:
- Механизмы
- Ключи
- Модификаторы (иногда)
SPF-клиенты игнорируют TXT-записи, которые не начинаются с номера версии (v=spf1 …).
Запись SPF может определять 0 или больше механизмов. Механизмы используются для описания наборов хостов, которые могут использовать домен для отправки сообщений. В записи SPF включают следующие механизмы:
all | ip4 | ip6 | a | mx | ptr | exists | include
В качестве префикса для механизмов можно использовать следующие ключи:
Ключ | Описание |
+ | Pass – адрес прошел проверку; принять сообщение.Например: “v = spf1 + all” |
– | (Hard) Fail – адрес не прошёл проверку; вернуть все сообщения, не прошедшие проверку. Например: “v=spf1 -all” |
~ | Soft Fail – адрес не прошёл проверку, но результат не является окончательным; принять и пометить все такие сообщения.Например: “v=spf1 ~all” |
? | Neutral – адрес не прошёл проверку; действие не определено (вероятнее всего, сообщение будет принято).Например: “v=spf1 ?all” |
Если ключ не указан, по умолчанию применяется +.
Также SPF-запись может содержать 1 или 2 модификатора.
redirect | exp
Процесс оценки SPF-записи состоит из двух этапов: сначала оцениваются все механизмы и классификаторы, а затем все модификаторы.
- Механизмы оцениваются слева направо.
- Модификаторы могут встречаться в любой точке записи.
Механизмы
Механизм | Описание |
all | Задаёт все локальные и удаленные IP-адреса; указывается конце записи SPF.Например: “v=spf1 +all” |
ip4 | Задает один адрес IPv4 или приемлемый диапазон адресов IPv4. Если длина префикса не задана, по умолчанию используется /32.Например: “v=spf1 ip4:192.168.0.1/16 -all” |
ip6 | Задает один адрес IPv6 или приемлемый диапазон адресов IPv6. Если длина префикса не задана, по умолчанию используется /128.Например: “v=spf1 ip6:1080::8:800:200C:417A/96 -all” |
a | Задаёт все IP-адреса в A-записи в настройках DNS.Например: “v=spf1 a:domain.com -all” |
mx | Определяет все А-записи для MX-записи каждого хоста.Например: “v=spf1 mx mx:domain.com -all” |
ptr | Задаёт все A-записи PTR-записей каждого хоста.Например: “v=spf1 ptr:domain.com -all” |
exists | Задает один или несколько доменов, которые, как правило, являются исключениями из SPF. На домен отправляется А-запроос; в случае возвращения результата домен проходит проверку.Например: “v=spf1 exists:domain.com -all” |
include | Задаёт дополнительные домены.Например: “v=spf1 include:outlook.microsoft.com -all” |
Механизмы all
Как правило, механизмы all задаются с ключом в конце записи SPF.
Пример | Описание |
“v=spf1 mx -all” | Позволяет хостам MX использовать домен для отправки почты и блокирует все другие хосты. |
“v=spf1 -all” | Запрещает использовать домен для отправки почты. |
“v=spf1 +all” | Такая SPF-запись бесполезна, так как она не ограничивает хосты, которым разрешено отправлять электронную почту с данного домена. |
Модификаторы
Модификаторы являются обязательным компонентом записи. Каждая SPF-запись может содержать только один модификатор. Записи без модификаторов будут проигнорированы.
Модификатор redirect перенаправляет запрос на другой домен.
redirect=example.com
Таким образом, SPF-запись для домена example.com может заменить SPF-запись текущего домена. Модификатор redirect полезен в тех случаях, когда одну запись SPF нужно использовать на нескольких доменах.
Модификатор exp добавляет описание записи SPF:
exp=[macro-string]
Если SPF-запрос выдает результат FAIL, запрашивается это описание, которое позволяет предоставить пользователю больше информации.
Эти дополнительные объяснения, как правило, хранятся в логе SPF. Например:
ехр = spf-error
Данная строка может содержать любую полезную информацию для пользователей, чей запрос не был выполнен. Это позволяет направить пользователей к веб-странице с дальнейшими указаниями.
Заключение
SPF-записи не являются обязательным компонентом настройки DNS. Однако такие записи очень полезны, так как они настраивают работу SPF-фильтров (если функция доступна на почтовом сервере), позволяют защитить сервер от спуфинг-атак и предотвращают подделку почтового адреса.