DMARC

DMARC (Domain-based Message Authentication, Reporting and Conformance) — это механизм аутентификации электронной почты, который позволяет домену указывать, что делать с письмами, не прошедшими проверку SPF и DKIM.

DMARC-запись добавляется в виде TXT-записи в DNS домена, обычно по адресу: `_dmarc.домен.тлд`

_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc-rua@example.com; ruf=mailto:dmarc-ruf@example.com; fo=1"
_dmarc.365lab.ru IN TXT  "v=DMARC1; p=reject; pct=100; rua=mailto:support@365lab.ru; ruf=mailto:support@365lab.ru"
  • v=DMARC1 — версия DMARC (обязательно должна быть первой).
  • p= — политика домена для неаутентифицированных писем:
    • none — никакие действия не предпринимаются, только отчётность.
    • quarantine — поместить письмо в спам.
    • reject — отклонить письмо на SMTP-уровне.
  • rua=mailto:адрес — адрес для аггрегированных отчётов (RUA).
  • ruf=mailto:адрес — адрес для отчётов о сбоях (forensic, RUF).
  • fo= — флаги для формирования отчётов о сбоях:
    • 0 — только если SPF или DKIM оба не прошли.
    • 1 — если любой из SPF или DKIM не прошёл.
    • d— если DKIM не прошёл с ошибкой.
    • s — если SPF не прошёл с ошибкой.
  • pct= — процент писем, к которым применяется политика (по умолчанию 100).
  • aspf= — режим проверки SPF: `r` (relaxed) или `s` (strict).
  • adkim= — режим проверки DKIM: `r` (relaxed) или `s` (strict).
  • sp= — политика для субдоменов (если не указано, применяется `p`).
  • Начинайте с политики `p=none`, чтобы наблюдать за поведением отправителей.
  • Внимательно отслеживайте отчёты на адресах `rua` и `ruf`, чтобы не блокировать легитимную почту.
  • Используйте сервисы визуализации DMARC-отчётов (например, Postmark, DMARCian, Agari и т.д.) для удобства анализа.
Параметр Назначение Пример значения Обязательный?
v Версия протокола DMARC (всегда "DMARC1") v=DMARC1 Да
p Политика для домена p=reject Да
sp Политика для субдоменов sp=quarantine Нет
rua Адрес для аггрегированных отчётов rua=mailto:dmarc-rua@example.com Нет
ruf Адрес для forensic-отчётов (может быть не поддержан) ruf=mailto:dmarc-ruf@example.com Нет
fo Когда отправлять forensic-отчёты fo=1 Нет
pct Процент писем, к которым применяется политика pct=100 Нет
adkim Строгость проверки DKIM (r = relaxed, s = strict) adkim=s Нет
aspf Строгость проверки SPF (r = relaxed, s = strict) aspf=r Нет

Для домена example.com, желающего полностью отклонять неаутентифицированные письма и получать аггрегированные отчёты:

_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com; adkim=s; aspf=s; pct=100"

* Объяснение:

  • v=DMARC1 — указывает, что используется протокол DMARC.
  • p=reject — отклонять письма, не прошедшие SPF и DKIM.
  • rua=mailto:dmarc@example.com — отправлять отчёты на указанный email.
  • adkim=s и aspf=s — строгое сопоставление DKIM/SPF.
  • pct=100 — применять политику ко всем письмам.

Можно проверить наличие и корректность DMARC-записи с помощью команд:

dig +short TXT _dmarc.example.com
nslookup -type=TXT _dmarc.example.com

Или онлайн-сервисов: