DMARC
Формат DMARC-записи
DMARC (Domain-based Message Authentication, Reporting and Conformance) — это механизм аутентификации электронной почты, который позволяет домену указывать, что делать с письмами, не прошедшими проверку SPF и DKIM.
DMARC-запись добавляется в виде TXT-записи в DNS домена, обычно по адресу: `_dmarc.домен.тлд`
Пример 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 и т.д.) для удобства анализа.
Таблица параметров DMARC
Параметр | Назначение | Пример значения | Обязательный? |
---|---|---|---|
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 | Нет |
Пример реальной DMARC-записи
Для домена 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-записи
Можно проверить наличие и корректность DMARC-записи с помощью команд:
dig +short TXT _dmarc.example.com nslookup -type=TXT _dmarc.example.com
Или онлайн-сервисов: