Что такое DMARC?
DMARC (аутентификация сообщений на основе домена, отчётность и соответствие) — протокол аутентификации электронной почты, дополняющий SPF и DKIM. Он позволяет владельцу домена опубликовать политику для принимающих серверов: что делать с сообщениями, не прошедшими проверку, и как получать отчёты о результатах аутентификации.
Почему DMARC необходим
Одних SPF и DKIM недостаточно: они не сообщают получателю, как поступать с сообщением, которое не прошло проверку. Злоумышленник может отправить поддельное письмо без корректных SPF/DKIM, а у принимающего сервера не будет согласованной инструкции.
DMARC устраняет этот пробел:
- Задаёт политику: отклонять, помещать в карантин или принимать сообщения, не прошедшие проверку
- Требует согласования: домен в заголовке From должен соответствовать домену SPF или DKIM
- Включает отчётность: совокупные и подробные отчёты показывают результаты аутентификации
Как работает DMARC
1. Отправитель публикует политику DMARC в DNS (TXT-запись на _dmarc.domain.com)
2. Отправляется письмо с From: [email protected]
3. Получатель проверяет SPF и DKIM
4. Получатель проверяет согласование: совпадает ли подтверждённый домен с заголовком From
5. Применяется политика: по записи DMARC (none, quarantine, reject)
6. Отправляются отчёты: совокупные отчёты на указанные адреса
Согласование DMARC
DMARC требует «согласования»: домен в заголовке From должен совпадать хотя бы с одним из следующих доменов:
- Согласование SPF: домен конверта отправителя (MAIL FROM)
- Согласование DKIM: домен d= в подписи DKIM
Без согласования SPF/DKIM могут пройти, но DMARC завершится неуспешно.
Формат записи DMARC
Записи DMARC являются TXT-записями на _dmarc.yourdomain.com:
_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:[email protected]"
Теги DMARC
| Тег | Обязателен | Описание | Пример |
|---|---|---|---|
| v | Да | Версия | v=DMARC1 |
| p | Да | Политика | p=none/quarantine/reject |
| rua | Нет | URI совокупного отчёта | rua=mailto:[email protected] |
| ruf | Нет | URI подробного отчёта | ruf=mailto:[email protected] |
| pct | Нет | Доля применения политики | pct=100 |
| sp | Нет | Политика поддоменов | sp=reject |
| adkim | Нет | Режим согласования DKIM | adkim=s (strict) or adkim=r (relaxed) |
| aspf | Нет | Режим согласования SPF | aspf=s or aspf=r |
Политики DMARC
p=none: только наблюдение, никаких действий над не прошедшими проверку сообщениямиv=DMARC1; p=none; rua=mailto:[email protected]
p=quarantine: отправлять не прошедшие проверку сообщения в спам или карантин
v=DMARC1; p=quarantine; rua=mailto:[email protected]
p=reject: полностью отклонять не прошедшие проверку сообщения
v=DMARC1; p=reject; rua=mailto:[email protected]
Путь внедрения DMARC
Этап 1: наблюдение (p=none)
Начните с наблюдения, чтобы понять экосистему электронной почты:
v=DMARC1; p=none; rua=mailto:[email protected]
Анализируйте отчёты в течение 2–4 недель, чтобы выявить:
- Легитимные сервисы отправки без SPF/DKIM
- Несанкционированных отправителей (подмена отправителя)
- Проблемы согласования
Этап 2: карантин (p=quarantine)
После аутентификации легитимных источников:
v=DMARC1; p=quarantine; pct=10; rua=mailto:[email protected]
Используйте \pct=10\, чтобы сначала помещать в карантин только 10% сообщений, постепенно увеличивая долю.
Этап 3: отклонение (p=reject)
Полная защита:
v=DMARC1; p=reject; rua=mailto:[email protected]
Отчёты DMARC
Совокупные отчёты (rua)
Ежедневные XML-отчёты о результатах аутентификации всей вашей электронной почты:
- Объём почты
- Доли прошедших и не прошедших SPF, DKIM и DMARC
- IP-адреса отправителей
- Организации получателей
Подробные отчёты (ruf)
Индивидуальные отчёты о сбоях, которые отправляют не все получатели по соображениям конфиденциальности:
- Полные заголовки сообщения
- Подробности сбоя аутентификации
Обработка отчётов
Необработанные отчёты DMARC представлены в XML и сложны для чтения. Используйте такие сервисы, как:
- DMARC Analyzer
- Dmarcian
- Valimail
- Postmark DMARC эти названия приведены только как примеры обработки отчётов; выбирайте поставщика с учётом требований к конфиденциальности и хранению данных.
Проверка DMARC
dig _dmarc.example.com TXT
curl "https://domscan.net/v1/health?domain=example.com"
# Returns hasDMARC status
Распространённые проблемы DMARC
Отчёты не поступают: убедитесь, что адрес rua принимает большие письма, поскольку некоторые провайдеры их фильтруют. Легитимная почта не проходит проверку: проверьте настройки SPF/DKIM всех сервисов отправки и убедитесь в согласовании доменов. Сбои у сторонних сервисов: многие сервисы требуют отдельной настройки DKIM для согласования DMARC.DMARC завершает построение аутентификации почты. Внедряйте его после того, как SPF и DKIM настроены и проверены.