MCMail by MYCLOUD

DMARC: политики, выравнивание и поэтапное внедрение

DMARC связывает SPF и DKIM с адресом, который видит получатель в поле «От», и говорит серверам, что делать с письмами, не прошедшими проверку. Кроме того, DMARC присылает отчёты о том, кто отправляет почту от имени вашего домена. Разберём теги записи, выравнивание и то, как внедрить DMARC, не потеряв нужные письма.

Какую проблему решает DMARC

SPF проверяет домен из адреса конверта (Return-Path), DKIM — домен из тега d= подписи. Ни один из них сам по себе не проверяет адрес в поле From, который видит человек. Мошенник может отправить письмо со своего домена с корректным SPF, но поставить в From адрес director@example.uz.

DMARC требует, чтобы хотя бы одна из проверок прошла и её домен совпадал с доменом в From. Это совпадение называется выравниванием (alignment).

Выравнивание: adkim и aspf

Письмо проходит DMARC, если выполняется хотя бы одно условие:

  • SPF = pass, и домен из Return-Path выровнен с доменом From;
  • DKIM = pass, и домен d= выровнен с доменом From.

Режим выравнивания задаётся тегами aspf (для SPF) и adkim (для DKIM):

РежимЗначениеПример для From: example.uz
r (relaxed, по умолчанию)Достаточно совпадения организационного доменаd=mail.example.uz — выровнено
s (strict)Требуется точное совпадениеd=mail.example.uz — не выровнено

Для большинства компаний подходит режим по умолчанию r. Строгий режим имеет смысл, только если вы точно знаете, что все источники отправляют с точным доменом.

Типичный случай: сервис рассылок проходит SPF, но для своего домена, а не для вашего. SPF при этом pass, а DMARC — fail, потому что нет выравнивания. Решение — настроить в сервисе DKIM-подпись с d=example.uz.

Запись DMARC и её теги

DMARC публикуется TXT-записью на поддомене _dmarc:

_dmarc.example.uz.  3600  IN  TXT  "v=DMARC1; p=none; rua=mailto:dmarc@example.uz"
ТегЗначенияНазначение
vDMARC1Версия, обязательна и стоит первой
pnone, quarantine, rejectПолитика для домена, обязательна
spте жеПолитика для поддоменов; если не указана, действует p
pct0–100, по умолчанию 100Доля непрошедших писем, к которым применяется политика
ruamailto:-адресаКуда присылать агрегированные отчёты
rufmailto:-адресаОтчёты по отдельным письмам; большинство крупных получателей их не присылает
adkim, aspfr или sРежим выравнивания
fo0, 1, d, sКогда формировать отчёты по отдельным письмам

Политики

  • p=none — только мониторинг: письма доставляются как обычно, вы получаете отчёты.
  • p=quarantine — непрошедшие письма помещаются в спам или карантин.
  • p=reject — непрошедшие письма отклоняются на этапе приёма.

Политика — это просьба к получателю, а не приказ. Крупные почтовые сервисы её учитывают, но окончательное решение принимает принимающая сторона.

Отчёты rua

Агрегированные отчёты — это XML-файлы (обычно в архиве), которые получатели присылают, как правило, раз в сутки. В них указано: с каких IP-адресов приходили письма от имени вашего домена, сколько их было, прошли ли они SPF и DKIM и было ли выравнивание.

  • Создайте для отчётов отдельный ящик или алиас, например dmarc@example.uz: при активной переписке отчётов бывает много.
  • Читать XML вручную неудобно — используйте сервис или программу для разбора DMARC-отчётов.
  • Если отчёты должны приходить на адрес в другом домене, этот домен должен разрешить приём записью вида example.uz._report._dmarc.reports.example с текстом "v=DMARC1". Без неё получатели не будут отправлять туда отчёты.

В отчётах вы, скорее всего, найдёте источники, о которых не знали: сайт, CRM, бухгалтерскую программу, рассылки. Каждый из них нужно либо настроить (SPF и DKIM с выравниванием), либо перестать использовать от имени домена.

Поэтапное внедрение

  1. Подготовка. Убедитесь, что для основной почты настроены SPF и DKIM и они проходят.
  2. Мониторинг. Опубликуйте p=none с rua. Собирайте отчёты 2–4 недели.
  3. Исправление. Настройте все легитимные источники так, чтобы они проходили DMARC.
  4. Карантин частично. Перейдите на p=quarantine; pct=25, затем увеличьте pct до 50 и 100, следя за отчётами и жалобами коллег.
  5. Отклонение. Когда непрошедших легитимных писем не остаётся, установите p=reject.
Этап 2: "v=DMARC1; p=none; rua=mailto:dmarc@example.uz"
Этап 4: "v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@example.uz"
Этап 5: "v=DMARC1; p=reject; rua=mailto:dmarc@example.uz"

Учтите, что получатели применяют pct приблизительно, а в обновлённой редакции стандарта (DMARCbis) этот тег предлагается заменить флагом t. Поэтому не стоит надолго оставаться на промежуточных значениях.

Не начинайте сразу с p=reject. Если какой-то сервис отправляет письма от вашего имени без выравнивания, эти письма перестанут доходить — и вы узнаете об этом только по жалобам клиентов.

Частые ошибки

  • Запись не на том имени: DMARC должен быть на _dmarc.example.uz, а не на самом домене.
  • Две записи DMARC: как и у SPF, запись должна быть одна, иначе DMARC игнорируется.
  • Ошибки синтаксиса: теги разделяются точкой с запятой, адреса в rua пишутся с префиксом mailto:.
  • Забытые поддомены: если поддомены не используются для почты, добавьте sp=reject.
  • Политика none навсегда: p=none защиты не даёт, это только этап наблюдения.

DMARC стал обязательным требованием для массовых отправителей у ряда крупных почтовых сервисов, и даже для небольшой компании он заметно снижает риск подделки адреса и попадания в спам. В MCMail SPF, DKIM и DMARC для вашего домена настраиваем мы. Подробнее о других причинах проблем с доставкой — в статье почему письма попадают в спам.