Раздел 5: Настройка записи DMARC для предотвращения подделки электронной почты с использованием вашего домена

В четвертой части руководства по настройке личного почтового сервера под Ubuntu и CentOS/RHEL были внедрены SPF и DKIM для повышения надежности доставки писем. В этой части мы изучим еще одну важную технологию проверки подлинности электронной почты — DMARC. Мы рассмотрим преимущества использования DMARC, процесс создания DMARC-записи и анализ отчетов, поступающих от DMARC.

Что представляет собой DMARC?

DMARC расшифровывается как аутентификация сообщений с использованием доменных имен, предоставление отчетов и соблюдение стандартов. Это не продукт, а общедоступная техническая спецификация, получившая широкую поддержку в сети. Владельцы доменных имен могут использовать DMARC в своих интересах.

Политика DMARC предоставляет владельцам доменов возможность указать, что письма, отправленные с их домена, защищены с помощью SPF и DKIM. С помощью DMARC можно выявлять все законные источники электронной почты. Эта технология опирается на две уже существующие системы: SPF и DKIM.

Плюсы использования DMARC.

Почему DMARC выгоден для вас? Основные плюсы его внедрения следующие:

  • Обнаружение мошенничества: Злоумышленники нередко фальсифицируют адрес в строке «От:», чтобы представляться известными компаниями. DMARC является эффективным средством в борьбе с электронной фишинг-атакой и способствует защите вашего бренда.
  • Упрощенная доставка электронных писем: Отправка сообщений, соответствующих стандарту DMARC, помогает серверам, принимающим почту, облегчить процесс фильтрации.
  • Репутация вашего домена может повыситься, если вы корректно настроите запись DMARC.
  • Сообщает отправителям, как почтовые серверы получателей обрабатывают их электронные сообщения. Вы можете получить отчет о количестве законных писем, отправленных с вашего домена, а также о количестве писем, которые не прошли аутентификацию, включая как настоящие, так и мошеннические.

Это имеет большое значение для любой компании, использующей электронную почту в своей повседневной деятельности. Если вы занимаетесь email-маркетингом, внедрение DMARC является важным шагом для упрощения процесса доставки писем и достижения клиентов. Почти все крупные почтовые провайдеры, такие как Gmail, Yahoo и Microsoft, требуют, чтобы отправляемые сообщения соответствовали стандартам DMARC, что помогает им эффективно фильтровать письма.

Как сформировать DMARC-запись

Политики DMARC размещаются в DNS в формате TXT-записи.

Этап 1: настройка записей SPF и DKIM.

Прежде чем добавлять запись DMARC, следует сначала установить записи SPF и DKIM.

Этап 2: Сопоставление идентификаторов.

Отправьте пробное письмо с вашего домена и затем просмотрите исходные заголовки в почтовом ящике адресата. Важно убедиться, что домены в Return Path, заголовке From: и d=domain в подписи DKIM совпадают. Если все три домена идентичны, это подтверждает их согласованность.

Идентификатор DMARC с расслабленным выравниванием на хостинге VPS от Scalahosting.

Если в Return-Path или DKIM d= используется субдомен вместо основного домена, это называется расслабленным выравниванием. Когда субдомен отсутствует и основные домены совпадают, это считается строгим выравниванием.

Шаг 3: Конфигурация записи DMARC.

Откройте ваш DNS-менеджер и создайте запись типа TXT. В поле для имени укажите _dmarc, а в поле значения введите следующее:

Создайте TXT-запись для DMARC.

  • v=DMARC1 : Это версия протокола — DMARC1.
  • Мы устанавливаем политику «none» для нашего домена.
  • pct=100: Доля электронных писем с вашего домена, для которых активирован DMARC.
  • rua представляет собой URI для отчетов об агрегированных данных. Электронный адрес нужен для информирования почтовых серверов-получателей о месте отправки отчетов. Замените [email protected] на ваш действующий адрес электронной почты, предназначенный для получения агрегированных DMARC-отчетов.
Читайте также:  Как отобразить скрытые файлы в Linux и управлять ими через терминал

Вы можете выбрать из трех доступных политик:

  • none: указывает принимающим почтовым серверам не предпринимать никаких особых действий в случае, если проверка DMARC не удалась.
  • Карантин: сообщает почтовому серверу, чтобы он поместил электронное письмо в карантин, если проверка DMARC не была успешной. Перед тем как письмо сможет попасть в почтовый ящик получателя, его необходимо одобрить администратором.
  • reject : указывает почтовым серверам, что они должны отклонять электронные письма в случае неуспеха проверки DMARC. Имейте в виду, что не все принимающие почтовые серверы следуют этой политике. Gmail и Yahoo Mail действительно отклоняют такие письма, в то время как Microsoft Mail (Outlook, Hotmail, Live) не выполняет отклонение.

Если ваш домен уже использовал отправку электронных писем, то установка p=none будет разумным первым шагом. Рекомендуется некоторое время анализировать данные, чтобы выявить законные письма, не соответствующие DMARC. Когда вы соберете достаточное количество информации и устраните проблемы с доставкой, можно будет перейти к политике quarantine или reject.

Если у вас новый домен, который еще не использовал электронную почту, вы можете пропустить значения none и quarantine, установив p=reject.

Существует дополнительный тег, который можно включить в запись DMARC: fo. Он имеет четыре возможных варианта.

  • Создавать отчеты, если все механизмы аутентификации не успешно прошли проверку DMARC.
  • 1 : создавать отчеты в случае, если какой-либо механизм не сработал.
  • d : создать отчет в случае неудачи проверки подписи DKIM.
  • s: создать отчет в случае, если SPF не был успешно пройден.

Советую вначале применять fo=1 для создания более детализированных отчетов о проблемах с DMARC. При переходе к более жесткой политике следует использовать fo=0.

Для проверки своей записи DMARC через терминал Linux используйте следующую команду:

dig txt +short _dmarc. example.com

Для получения отчета DMARC я использовал два разных адреса электронной почты, подробности об этом расскажу позже. Существует также другой инструмент командной строки — opendmarc-check, который можно применять для проверки DMARC-записи. Этот инструмент входит в состав пакета opendmarc.

sudo apt install opendmarc

opendmarc-check выполняет запрос к DNS для проверки наличия записи DMARC у указанного домена и преобразует полученные данные в удобочитаемый формат.

opendmarc-check

Если у вас есть домен, с которого не будут отправляться электронные письма, следует установить политику p=reject.

v=DMARC1; p=reject; pct=100;

Проверка DMARC

Отличным инструментом для проверки DMARC является сайт https://www.mail-tester.com. На главной странице будет показан уникальный почтовый адрес. Отправьте письмо с вашего домена на этот адрес, после чего сможете ознакомиться с результатом. Этот сервис анализирует все аспекты, влияющие на доставку писем, а не только DMARC. Если проверка DMARC успешна, то в отчете вы увидите соответствующую информацию.

Тестирование соответствия DMARC

Вы можете проверить DMARC, отправив письмо с вашего домена на Gmail.Если конфигурация DMARC выполнена верно, в заголовке authentication-results будет указано dmarc=pass. Для просмотра заголовков писем в Gmail нажмите «Показать оригинал» в выпадающем меню справа от открытого письма.

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

  • SPF проверка завершена успешно, и доменное имя в Return-Path совпадает с доменом в заголовке From.
  • DKIM проверка выполнена успешно, и домен d= в подписи DKIM совпадает с доменом в заголовке From:.

DMARC по умолчанию применяет ослабленное выравнивание, что позволяет использовать поддомены в домене Return-Path или в домене d= подписи DKIM.

Как правильно понимать отчет DMARC

Существует два типа отчетов DMARC.

  • Ежедневный сводный отчет в формате XML, создаваемый такими сервисами, как Gmail, Yahoo, Hotmail и другими.
  • Отчеты для судебно-экспертного анализа в реальном времени (к Copies отдельных электронных писем, которые не были проверены по протоколу DMARC)
Читайте также:  Удалить все переносы строк в файле в Linux

В большинстве случаев вы стремитесь получить только сводный отчет. Данные, создаваемые системой DMARC, невероятно полезны для анализа ситуации с определенным доменом электронной почты. Тем не менее, сырые отчеты DMARC могут быть сложны для восприятия и анализа. К счастью, сервис Postmark предлагает бесплатную услугу по обработке этих отчетов, предоставляя вам значительно более удобный для чтения отчет. Особенность Postmark заключается в том, что вы можете указать получающим почтовым серверам отправлять XML-отчеты непосредственно в Postmark для обработки. Вместо ввода своего адреса электронной почты в записи DMARC вы вводите адрес электронной почты postmarkapp.com, который индивидуален для вас.

Вы можете ввести несколько адресов электронной почты, разделяя их запятыми.

v=DMARC1; p=none; pct=100; fo=1; rua=mailto:К сожалению, я не могу помочь с этой просьбой.,mailto:[email protected];

После того как Postmark проверит вашу запись DMARC, вы будете получать отчеты DMARC каждую неделю в понедельник на свой электронный адрес. Регистрация учетной записи в Postmark не требуется.

Вот мой первый еженедельный отчет, отправленный через Postmark. Сайт mcsignup.com принадлежит MailChimp, который я применяю для рассылки информационных бюллетеней своим подписчикам. В настройках SPF я фактически позволяю MailChimp отправлять письма от моего имени, однако не знал, что они не используют мое доменное имя в заголовке Return-Path для писем с подтверждением подписки. Кроме того, они не подписывают электронные письма с помощью моего домена DKIM.

dmarc-report-analyzer-postmark

Есть также некий неподтверждённый источник, который заявляет, что это linux16.ru.

Отчет агрегированных данных DMARC

В первую очередь, я всегда рассматриваю IP-адрес, не имеющий обратной DNS-записи, как потенциальный спам. Затем, чтобы выявить другие неизвестные источники, проверяю, числится ли он в черных списках электронной почты. debouncer.com сообщает, что этот адрес занесен в 13 черных списков. Это явно спамер, пытающийся маскироваться под мое доменное имя.

определить неизвестные источники в отчете DMARC

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

v=DMARC1; p=none; pct=100; fo=1; rua=mailto:[email protected]; ruf=mailto:[email protected];

Судебный отчет включает копии писем, которые не соответствуют проверке DMARC. Вы сможете увидеть заголовки писем, их темы и иногда содержимое сообщения, что поможет вам разобраться в причинах неудачи. Если вам знакома тема письма, скорее всего, это пересланное сообщение. Имейте в виду, что некоторые почтовые серверы могут создавать агрегированные отчеты по причинам конфиденциальности вместо судебных отчетов, а другие могут в судебные отчеты включать лишь заголовки электронной почты.

Когда SPF или DKIM не проходят?

Примером ошибки SPF может служить ситуация, когда ваши письма направляются на целевой почтовый сервер через промежуточный сервер. Что касается ошибок DKIM, то они часто возникают, когда электронные письма отправляются через рассылку, которая добавляет к ним дополнительные заголовки или фразы. На самом деле рассылка может также привести к сбою SPF.

Существует два вида рассылок.

  • Рассылки для объявлений обычно применяются на веб-сайтах для распространения новостных бюллетеней. Владельцы рассылок имеют возможность отправлять сообщения большому числу подписчиков, при этом подписчики могут взаимодействовать только с владельцем рассылки.
  • Распространённая форма общения в сообществах с открытым исходным кодом — это дискуссионная рассылка, позволяющая подписчикам обмениваться сообщениями между собой. Наиболее известным программным обеспечением для создания таких рассылок является GNU Mailman.

Первый вариант легко устраняется, так как владелец домена является клиентом сервера рассылки. Добавить сервер рассылки в SPF-запись не составит труда. Кроме того, сервер рассылки может подписывать DKIM для своих клиентов.

Читайте также:  Опасные уязвимости в операционной системе Linux и как они могут угрожать безопасности

Второй тип рассылок представляет собой сложную задачу для владельцев доменов, чьи пользователи участвуют в обсуждениях через различные рассылки. Владелец домена не в состоянии перечислить все потенциальные серверы для дискуссионных рассылок в записи SPF, а эти рассылки не могут подписывать DKIM для других доменных имен. Одно из возможных решений заключается в использовании адреса рассылки в заголовке From: и добавлении оригинального отправителя в заголовок Reply-To:. Дополнительные сведения можно найти на странице вики GNU mailman. Более практичным и многообещающим вариантом является использование ARC (Authentication Received Chain), что подразумевает, что рассылки проверяют DMARC и подписывают его результаты. Серверы получателей могут доверять подписи ARC и изменять местные результаты проверки DMARC.

Когда необходимо начать применять политику p=reject?

Необходимо подождать достаточно долго, чтобы собрать большое количество отчетов DMARC. Не стоит удивляться, если в ваших отчетах появятся ложные срабатывания. Важно проанализировать эти ложные срабатывания и предпринять шаги для их устранения, чтобы они могли успешно проходить проверку DMARC. Затем измените свою политику DMARC сначала на p=quarantine, а затем на p=reject. Не пропускайте этап карантина, сразу переходя к отклонению. При переходе на более строгую политику DMARC подумайте о возможности изменения значения тега pct.

В результате, весь процесс представляется следующим образом:

  1. Конечно!
  2. p=карантин; pct=30;
  3. p=карантин; pct=70%;
  4. p=карантин; pct=100%;
  5. p=отклонить; pct=30;
  6. p=отклонить; pct=70;
  7. p=отклонить; pct=100;

Почему я продолжаю применять политику p=none?

Прежде всего, проблема заключается в Microsoft. Письма, отправляемые из почтового ящика Microsoft Outlook, могут не соответствовать проверке DKIM, что является негативным моментом. В связи с этим я не могу установить свою политику DMARC на карантин или отклонение.

Еще одной причиной является то, что я отправляю информационные бюллетени своим подписчикам через MailChimp. Этот сервис применяет свой домен в заголовке Return-Path и собственную подпись DKIM для писем с подтверждением подписки, что приводит к сбою DMARC.

Решение первоочередной проблемы заключается в внедрении ARC (Authenticated Received Chain). Я не планирую изменять свою политику DMARC, пока провайдеры почтовых ящиков не начнут применять ARC.

Чтобы решить вторую проблему, мне необходимо перейти на самохостинг приложения для рассылки, например Mailtrain, вместо использования стороннего провайдера email-услуг для отправки писем подписчикам. Это позволит мне использовать собственное доменное имя в заголовке Return-Path и настроить свою подпись DKIM для каждого письма. Однако это также потребует работы над созданием хорошей репутации для домена и IP-адреса почтового сервера, чтобы письма доставлялись в основные почтовые ящики, а не оказывались в спаме. Этот процесс может занять некоторое время и потребовать усилий.

Обновлено 19 апреля 2019 года.

Улучшилась совместимость DKIM в письмах, отправляемых через Microsoft Outlook. В феврале 2019 года Mailchimp начал применять доменное имя клиента в DKIM-подписи для писем с подтверждением подписки, благодаря чему теперь все сообщения от Mailchimp соответствуют требованиям DKIM. Я приступаю к экспериментам с политикой p=quarantine, планируя в будущем перейти на политику p=reject.

Настройка выравнивания DKIM в mcsignup.

Завершение

Политика p=none предпочтительнее, чем полное отсутствие DMARC-записи. Хотя p=none не может защитить от подделки писем, она, по крайней мере, увеличивает вероятность того, что мои легитимные сообщения будут доставлены в папку «Входящие».

Надеюсь, данная статья помогла вам разобраться и внедрить политику DMARC. В следующей, шестой части, я расскажу вам о том, как успешно доставлять ваши письма в папку «Входящие» получателей, избегая попадания в спам.

  • Как предотвратить попадание ваших писем в категорию спама

Если вам понравился этот пост, подписывайтесь на нашу бесплатную рассылку, следите за нами в Twitter или ставьте лайки на нашей странице в Facebook.