SPF, DKIM и DMARC: защита почты домена от подделки

Подделать отправителя письма так же просто, как написать чужой адрес на конверте. Если домен не защищён, мошенники рассылают письма от его имени вашим клиентам и сотрудникам, а настоящие письма компании попадают в спам. Три записи DNS решают эту задачу: SPF указывает, кому можно отправлять почту от домена, DKIM подписывает письма, DMARC объединяет проверки и говорит получателю, что делать с подделками. Ниже порядок внедрения без потери легитимной почты.
Статья опирается на логику направления «Сетевая безопасность» из методики зрелости Группы Сбер (источник); это методика для крупных компаний, мы используем её как ориентир и пересказываем своими словами. Примеры используют домен example.com и документационные адреса. Записи DNS меняйте поэтапно, с учётом времени жизни (TTL).
Как это работает
| Механизм | Что проверяет | Где хранится |
|---|---|---|
| SPF | Разрешён ли IP-адрес отправителя для домена из письма (конверта) | TXT-запись домена |
| DKIM | Подписано ли письмо ключом домена и не изменено ли оно по пути | TXT-запись СЕЛЕКТОР._domainkey.example.com, закрытый ключ на почтовом сервере |
| DMARC | Совпадает ли домен проверенного SPF/DKIM с адресом «От кого» в письме, и что делать при несовпадении | TXT-запись _dmarc.example.com |
Стандарты: SPF — RFC 7208, DKIM — RFC 6376, DMARC — RFC 7489 (проверьте, не заменён ли он более новой редакцией). Порядок важен: сначала SPF и DKIM, затем DMARC.
Шаг 0. Составьте список источников почты
Прежде чем менять DNS, найдите все системы, отправляющие письма от вашего домена: основной почтовый сервер, облачная почта, рассылки, CRM, сайт и формы, системы мониторинга, принтеры и сканеры, подрядчики. Пропущенный источник после ужесточения политики перестанет доставляться. Список сложите в реестр активов: реестр ИТ-активов.
Шаг 1. SPF
Запись перечисляет разрешённых отправителей и заканчивается политикой для остальных. Пример (адреса и включения заменяйте своими):
example.com. IN TXT "v=spf1 mx ip4:203.0.113.10 include:_spf.mailprovider.example -all"
mx— серверы из MX-записей домена;ip4:— отдельный адрес или подсеть;include:— отправители стороннего сервиса (используйте значение из документации сервиса);-all— все остальные запрещены; на старте можно~all(мягкое отклонение), затем перейти на-all.
Ограничение: SPF допускает не более десяти DNS-запросов при проверке (каждый include, mx, a считается). Превышение делает запись недействительной. Одна запись SPF на домен, не две.
Шаг 2. DKIM
На почтовом сервере создаётся пара ключей: закрытый остаётся на сервере и подписывает исходящие письма, открытый публикуется в DNS. Для облачной почты ключи генерирует провайдер, вы только добавляете запись. Для собственного сервера на Postfix используется OpenDKIM (описания отправки без попадания в спам: настройка почтового сервера). Пример публикации ключа:
mail2026._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=ОТКРЫТЫЙ_КЛЮЧ_BASE64"
Правила: селектор (здесь mail2026) включает дату для удобной смены ключей, длина ключа не менее 2048 бит, ключ меняют по расписанию (например, раз в год). Закрытый ключ хранится с правами, доступными только службе подписи.
Шаг 3. DMARC: сначала только наблюдение
Первая запись не блокирует письма, а собирает отчёты о том, кто и откуда отправляет почту от вашего имени:
_dmarc.example.com. IN TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com; fo=1"
p=none— только наблюдение;rua— адрес для сводных отчётов (XML от почтовых провайдеров);fo=1— запрос отчётов при любой неудаче проверки.
Отчёты приходят в виде XML-архивов. Читать их вручную неудобно: используйте сервис разбора отчётов DMARC или открытую утилиту. Две–четыре недели наблюдения покажут все источники, в том числе забытые.
Шаг 4. Исправьте несоответствия и ужесточайте политику
- Добавьте найденные легитимные источники в SPF и настройте для них DKIM с вашим доменом.
- Когда отчёты перестанут показывать легитимную почту с ошибками, переходите на
p=quarantine(письма с ошибками в спам), сначала на части трафика:pct=10, затем 50, затем 100. - Через несколько недель без проблем включайте
p=reject: получатели отвергают подделки.
_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com; adkim=s; aspf=s"
Параметры adkim=s и aspf=s требуют строгого совпадения домена. Для поддоменов, которые не отправляют почту, задайте sp=reject, а для неиспользуемых доменов опубликуйте SPF v=spf1 -all и DMARC p=reject.
Шаг 5. Проверьте записи
dig +short TXT example.com
dig +short TXT mail2026._domainkey.example.com
dig +short TXT _dmarc.example.com
Ожидаемый результат: в ответе видна ваша запись SPF (одна), открытый ключ DKIM и запись DMARC. Затем отправьте тестовое письмо на ящик у крупного провайдера и откройте исходные заголовки: в них должны быть результаты проверок spf=pass, dkim=pass и dmarc=pass. Если вы видите fail, смотрите, какой источник не вошёл в запись.
Дополнительные меры
- MTA-STS и TLS-RPT повышают защиту транспорта почты (шифрование между серверами); это следующий шаг после DMARC.
- Защита самих ящиков: MFA, ограничение входа, мониторинг правил пересылки.
- Обучение сотрудников распознаванию подделок: осведомлённость и фишинг-тренировки.
Диагностика
| Симптом | Причина и что делать |
|---|---|
| SPF показывает permerror | Больше десяти запросов или две записи SPF. Уберите лишние include, объедините записи, используйте подсети |
| DKIM fail у рассылок | Сервис подписывает своим доменом, а не вашим. Настройте подпись вашего домена по инструкции сервиса |
| DMARC fail при пересылке | Пересылка ломает SPF. Полагайтесь на DKIM; для списков рассылки учитывайте ограничения |
Письма пропали после reject |
Не был учтён источник. Вернитесь на quarantine или none, добавьте источник и повторите по шагам |
| Отчётов DMARC нет | Неверный адрес в rua или ящик не принимает вложения. Проверьте запись и ящик |
Где это в модели зрелости
Материал относится к направлению «Сетевая безопасность» (материалы направления, карта зрелости) и закрывает часть защиты почты, названную в планах. Уровень 2 по сети требует управляемого периметра и защиты сервисов, а подделка домена — один из самых частых векторов фишинга.
Как проверить
- В DNS есть ровно одна запись SPF, запись DKIM и запись DMARC, команды
digпоказывают их. - Тестовое письмо проходит все три проверки у внешнего провайдера.
- Политика DMARC ужесточена по этапам и сейчас не слабее
quarantine; для неиспользуемых доменовreject. - Отчёты DMARC разбираются не реже раза в месяц, новые источники учитываются.
Источники
- Методика оценки уровня зрелости кибербезопасности компании, Группа Сбер: sberbank.ru.
- RFC 7208 (SPF): rfc-editor.org; RFC 6376 (DKIM): rfc-editor.org; RFC 7489 (DMARC): rfc-editor.org.






















