Site icon 8HOST.COM

Предотвращение спуфинга адресов и защита электронной почты при помощи SPF-записи

Разумно настроенная SPF-запись снизит вероятность спуфинга доменного имени и защитит ваши сообщения преждевременной пометки «спам».

Спуфинг – это создание почтовых сообщений с поддельным адресом отправителя; такая атака очень проста, поскольку у многих почтовых серверов ненадёжная аутентификация.

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

Существует множество методов защиты от спуфинга, среди которых стоит отметить SPFSender IDDKIM и 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"

Рассмотрим компоненты этой записи подробнее:

Компоненты записи 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-фильтров (если функция доступна на почтовом сервере), позволяют защитить сервер от спуфинг-атак и предотвращают подделку почтового адреса.