SPF: запись, синтаксис, как защитить домен от спуфинга | Глоссарий FREEHOSTING

SPF

Sender Policy Framework
SPF — TXT-запись в DNS, которая указывает, какие IP-адреса вправе отправлять почту от имени домена. Получатель сверяет источник письма с записью и блокирует подделки.

Определение простыми словами

SPF (RFC 7208) — список разрешённых отправителей домена. Когда чужой почтовый сервер получает письмо с адресом @example.com, он запрашивает у DNS зону example.com, читает строку начинающуюся с v=spf1 и решает: совпадает ли IP подключающегося сервера со списком. Если нет — письмо помечается как spam или отклоняется.

SPF работает в связке с DKIM и DMARC. Только три механизма вместе закрывают спуфинг. SPF в одиночку защищает Envelope From, а не видимое поле From, поэтому DMARC обязателен для брендовой почты.

Сравнение SPF, DKIM и DMARC

Параметр SPF DKIM DMARC
Что проверяет IP отправителя Подпись тела письма Согласованность SPF/DKIM с From
Хранение TXT-запись TXT с публичным ключом TXT с политикой
Защищает Return-Path Целостность письма Видимый From
Что делать при провале Указывается ~all/-all Игнор или fail none/quarantine/reject

Кейсы использования

  • Корпоративный домен с рассылками через Mailgun, Unisender и собственный сервер — все источники включены в одну запись.
  • Магазин на Bitrix отправляет уведомления через SMTP хостера — IP хостера попадает в include.
  • Холодные рассылки маркетинга с отдельного поддомена, чтобы репутация основного не страдала.
  • Негатив: больше 10 DNS-запросов в SPF — провал по «permerror». Цепочки include от SaaS быстро упираются в лимит.
  • Негатив: SPF не защищает от подделки видимого From — без DMARC бренд всё ещё уязвим.

Технические детали

# Проверить текущую SPF домена
dig +short TXT example.com | grep spf1

# Подсчитать DNS lookups (лимит 10)
spfquery --scope mfrom --identity user@example.com --ip-address 1.2.3.4

# Пример валидной записи для домена с Google Workspace и Mailgun
v=spf1 include:_spf.google.com include:mailgun.org ip4:203.0.113.10 ~all

# Жёсткая политика: всё, что не из списка, отклонять
v=spf1 mx ip4:203.0.113.0/24 -all

Механизм ~all даёт softfail (письмо доходит, но помечается), -all — hardfail с отбрасыванием. Для production-доменов с настроенным DMARC ставят -all, для тестовых — ~all.

Частые вопросы

Сколько SPF-записей разрешено в одной зоне?

Только одна. Если их несколько, проверяющие серверы возвращают permerror и письма отклоняются. Все механизмы объединяются в одну строку.

Что делать, если упёрлись в 10 DNS lookups?

Используйте SPF-flattening: сторонние сервисы (DMARCLY, EasyDMARC) разворачивают include в IP-блоки и автоматически обновляют запись.

Поможет ли SPF от фишинга бренда?

Только частично. Подделать видимое поле From SPF не мешает — нужен DMARC с политикой quarantine или reject.