Финальным штрихом в настройке почтового сервера, является создание записи DMARC в ДНС зонах обслуживаемых доменов. Перед этим действием, в соответствующих доменных зонах должны быть созданы записи SPF и DKIM (как настроить SPF рассказываю тут, как настроить DKIM - тут).
DMARC - является записью типа TXT в доменной зоне, которая определяет политику для почтового сервера получателя письма, по проверке SPF и\или DKIM записи, и действий которые надо предпринять, если письмо подпадает или не подпадает под описанную политику.
Работает это так:
- пользователь с пересылает письмо с домена company.com;
- сервер получатель принимает письмо и проверяет есть ли запись SPF для домена company.com, а так же соотвествует ли записи SPF сервер с которого письмо пришло;
- сервер получатель проверяет подпись DKIM в заголовке письма;
- далее сервер получатель смотрит, какие действия предпринять с письмом в соответствии с политикой DMARC (если проверки и SPF и DKIM прошли успешно, то письмо доставляется получателю, если одна из проверок не пройдена или обе не пройдены, то возможны следующие варианты: письмо м.б. доставлено получателю в неизменном виде, письмо м.б. доставлено получателю с пометкой SPAM, письмо может быть отклонено, сервер получатель может отправить отчет о том, под какую политику попало письмо, на адрес указанный в записи DMARC).
Синтаксис у DMARC простой:
- тип записи выбираем TXT;
- в поле host пишем _dmarc;
- в поле "текст" указываем версию DMARC, политику, и различные необязательные параметры;
- параметры в поле "текст" разделяются символами ";".
Вот список параметров, которые обычно использую я:
- v - версия, принимает только одно значение v=DMARC1 (обязательный);
- p - политика (обязательный), может принимать следующие значения: none - пропускать письмо и не принимать ни каких действий; quarantine - пропускать письма, но помечать не прошедшие проверку по SPF и\или DKIM как спам; reject - письма не прошедшие проверку отклюняются;
- rua - адреса для отправки агрегированных отчётов об ошибках, разделённые запятой.
- pct - процент сообщений, к которым применяется правило DMARC, любое целое число от 0 до 100 (по умолчанию 100).
- fo - при каких условиях генерировать отчёты об ошибках: 0 - если не пройдены все основные механизмы; 1 - если хотя бы один механизм не пройден; d - отчет о не пройденной проверки DKIM; s - отчёт о не пройденной проверки SPF;
Вот примеры DMARC записей для разных ситуаций:
_dmarc TXT v=DMARC;p=none (запись DMARC с политикой, которая пропускает все письма, без уведомления, бывает нужна для ситуации, когда требуется политика DMARC, а блокировать ничего не требуется)
_dmarc TXT v=DMARC;p=quarantine (DMARC которую обычно использую я, пропускает все письма, но не прошедшие проверки помечает как спам)
_dmarc TXT v=DMARC;p=quarantine;rua=mailto:admin@company.com (тоже самое, но с уведомлениями)
_dmarc TXT v=DMARC;p=reject;rua=mailto:admin@company.com (самая строгая политика, блокирующая письма и уведомляющая об этом)
Вот пример использования других параметров:
_dmarc TXT v=DMARC;p=reject;pct=50;fo=d;rua=mailto:admin@company.com (здесь проверка идёт 50% писем, блокируются те, у которых провалена проверка и по SPF и по DKIM, администратору приходит отчет о проваленных проверках по DKIM).
проверить настройки SPF, DKIM и DMARC можно на следующих online ресурсах:
- mxtoolbox - тут можно проверить многие параметры, в том числе корректность записей MX, SPF, DKIM, DMARC;
- mail-tester - тут проверяются общие настройки почты, находится ли домен в спам листах, корректность записей X, SPF, DKIM. Суть сервиса в отправке со своего почтового сервера письма на специально сформированный адрес, и оценка как самого письма, так и настроек сервера и доменных записей (сервис платный, но в день можно бесплатно сделать 3 теста).