Настройка записей SPF, DKIM и DMARC

В дальнейшем используя интернет страницу cloudhosting.lv, вы соглашаетесь с правилами пользования Куки. Узнай больше. Согласен

Настройка записей SPF, DKIM и DMARC

Содержание

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

Обзор SPF

SPF (Sender Policy Framework) помогает бороться с подделкой электронной почты, когда злоумышленник подделывает поле MAIL FROM в сообщении. Для реализации этого решения владельцам домена следует создать специальную запись TXT в зоне DNS домена, сообщающую всем получателям о разрешенных отправителях для их домена.

Запись SPF состоит из следующих частей, разделенных пробелами, и каждая часть обрабатывается по порядку:

v=spf1 – версия протокола

mechanisms – способы интерпретации разрешенных отправителей. Обычно используются: a, mx, ip4, include, all. В записи должен присутствовать хотя бы один механизм:

  • a: Проверяются все DNS-записи A для домена.
  • mx: Проверяются все DNS-записи A для всех записей MX домена в порядке приоритета MX.
  • ip4: CIDR-спецификация представляет собой диапазон IP-сети. Если длина префикса не указана, предполагается /32.
  • include: Указанный домен для включения проверяется на соответствие. Если поиск не возвращает соответствия или ошибку, обработка переходит к следующему указанию. Предупреждение: Если у этого другого домена нет действительной записи SPF, результатом будет "Постоянная ошибка" (Permanent Error).
  • all: Этот механизм всегда соответствует. all должен стоять в конце вашей записи SPF.

У каждого механизма есть квалификатор – он представляет собой действие, которое должно быть предпринято. Список квалификаторов:

  • + для успешного результата. Он используется по умолчанию, если другой квалификатор не установлен, и часто опускается в записях SPF.
  • ? для нейтрального результата. Никаких действий не должно быть предпринято (игнорировать этот механизм).
  • ~ (тильда) для SOFTFAIL. В основном интерпретируется как "принять это сообщение, но пометить/отметить его".
  • - (минус) для FAIL, почта должна быть отклонена.

Пример записи SPF для домена domain.com:

 $ dig txt domain.com +short
  "v=spf1 a ip4:10.10.10.10 include:spf.example.com -all"

В нем 4 механизма: a, ip4, include и all. Первые 3 механизма имеют квалификатор + или PASS (если для механизма не установлен квалификатор, квалификатор по умолчанию - "PASS"). Последний механизм all имеет - (FAIL) квалификатор. Эта запись означает, что сообщение должно быть принято, если оно приходит с IP-адреса, к которому приводит запись A домена domain.com, или с примерного IP 10.10.10.10. Также сообщение принимается, если оно проходит политику другого домена – spf.example.com. Наконец, сообщение должно быть отклонено, если оно не проходит предыдущие механизмы.

Управление SPF в cPanel

Запись SPF для одной DNS-зоны можно установить или изменить в редакторе зоны DNS WHM (Домашняя страница »Функции DNS »Редактировать зону DNS). Нижеописанные параметры требуют root-доступа! Чтобы добавить SPF-записи для уже существующих доменов, перейдите на (Домашняя страница »Функции DNS »Глобально включить DKIM/SPF) и нажмите "Продолжить". Также, для этой же цели можно использовать скрипт /usr/local/cpanel/scripts/enable_spf_dkim_globally, см. документацию в cPanel.

Также существует скрипт /usr/local/cpanel/bin/spf_installer для управления записями SPF. Например, вы можете добавить пользовательский механизм include:spf.example.com для всех DNS-зон:

 for acct in $(awk '{print $2}' /etc/trueuserdomains); do /usr/local/cpanel/bin/spf_installer $acct include:spf.example.com; done

Проверка записей SPF

Некоторые сервисы, где вы можете проверить запись SPF для домена:

  • mxtoolbox.com/spf.aspx
  • emailaudit.com/
  • dmarcian.com/spf-survey/

Дополнительные ресурсы по SPF

Обзор DKIM

DomainKeys Identified Mail (DKIM) используется для проверки того, что сообщение было действительно отправлено с домена, указанного в поле FROM. Отправитель создает пару ключей для почтового домена: закрытый и открытый. Закрытый ключ хранится на почтовом сервере и подписывает каждое исходящее электронное сообщение. Закрытый ключ также может быть передан стороннему сервису, который отправляет сообщения от имени домена отправителя. Открытый ключ может быть доступен каждому в Интернете и используется для расшифровки подписанного сообщения. С другой стороны, получатель расшифровывает сообщение и может использовать результат проверки DKIM в дальнейшей обработке, например, отклонять сообщения, которые не проходят проверку DKIM, или отмечать эти сообщения как спам.

Таким образом, с помощью DKIM решаются две проблемы обмена электронной почтой:

  • Проверка отправителя
  • Уверенность в том, что содержание сообщения не было изменено во время передачи с почтового сервера отправителя на почтовый сервер получателя

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

Использование DNS для публикации ключей DKIM

DNS используется для ознакомления всех почтовых серверов, которые могут требовать проверки DKIM от отправителя, с общедоступным ключом. Для этой цели используется запись TXT. Например, вот открытый ключ для селектора DKIM по умолчанию домена knownhost.com:

$ dig txt default._domainkey.knownhost.com +short
  "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxG+doMvKHVEE9r4YkdhEqBBHUYYZqs+g9L/9M30cSP/s0ZW6XMVHF3KwhJUcukq3kZNe3TMRFRiFxLb6ncLBnn7+491qS66yKMMStE6TdUFCFu5yq/bdpM/l04kPNcHutNkUJy1zLC6pGUuyxFIOIPlshry+oUkfhULw3E925kk1AOhn404702EBt1DObMXd+" "AQ+hWW/xworVfZwCTRVSQ4TvJ7YH3X+wG6HLRqoEkVsOx2rc4XqHy52FFuoSFDhtNq45jCcOOVK2AdONPq4I5VEbTPAqBzItK3shDOnzvUAzwBl74Zl4sJoA8gyi0XxcNlmrOE6fkjeQqcwPxAUZQIDAQAB;"

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

Запись DKIM также может быть CNAME вместо TXT и указывать на другую запись, содержащую открытый ключ для почтового домена.

Проверка DKIM на приемнике

Когда почтовый сервер, на котором настроена проверка DKIM, получает сообщение, он ищет в заголовке следующую строку (пример):

 DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=default;
  ...

Поле тега-значения s=default указывает на использование селектора по умолчанию. Затем почтовый сервер запрашивает TXT DNS-запись для default._domainkey.example.com, извлекает открытый ключ из нее и расшифровывает сообщение.

Управление DKIM в cPanel

Чтобы включить DKIM для вновь созданных доменов, перейдите на (Home »Server Configuration »Tweak Settings) и найдите опцию "Enable DKIM on domains for newly created accounts" на вкладке Domains. Чтобы добавить DKIM для уже существующих доменов, перейдите на (Home »DNS Functions »Enable DKIM/SPF Globally) и нажмите "Proceed". Вы можете разрешить/запретить проверку DKIM для входящих сообщений в конфигурации Exim (Home »Service Configuration »Exim Configuration Manager) на вкладке "ACL options". Ключи для каждого домена хранятся в следующих каталогах:

  /var/cpanel/domain_keys/public/
  /var/cpanel/domain_keys/private/

Проверка записей DKIM

Существует множество сервисов, где вы можете проверить запись DKIM для домена, например:

  • mxtoolbox.com/dkim.aspx
  • emailaudit.com/
  • www.mail-tester.com/spf-dkim-check
  • dkimcore.org/tools/dkimrecordcheck.html

Дополнительные ресурсы по DKIM

Обзор DMARC

В то время как техники SPF и DKIM позволяют почтовым серверам проверять отправителей входящих электронных сообщений, обе они не предоставляют механизмов для отправителей для публикации политик относительно действий, которые должны быть предприняты в случае сбоев аутентификации. DMARC (Domain-based Message Authentication, Reporting and Conformance) заполняет этот пробел. Он позволяет владельцам доменов указывать, какие правила должны применяться к сообщениям, которые не прошли аутентификацию SPF и/или DKIM. Кроме того, DMARC позволяет отправлять владельцам доменов отчеты о результатах проверки по адресу IP отправителя.

Использование DNS для публикации записей DMARC

Для публикации записи DMARC для домена используется специально форматированная запись TXT. Она состоит из поддомена _dmarc и полей в формате ключ-значение, разделенных точкой с запятой. Пример записи для домена domain.com:

_dmarc.domain.com

Ниже приведен пример значения, который указывает обрабатывать 100% сообщений, поступающих от домена domain.com, отклонять те, которые не соответствуют политикам DKIM/SPF, не выполнять никаких действий (продолжать обработку), если сообщение пришло от поддомена domain.com, и ежедневно отправлять агрегированную статистику на адрес info@domain.com:

"v=DMARC1; p=reject; sp=none; pct=100; ri=86400; rua=mailto:info@domain.com"

В этом примере:

  • v – версия протокола
  • p – политика, возможные значения: reject, quarantine или none
  • sp – политика для поддоменов (такие же возможные значения)
  • pct – процент сообщений, подвергаемых фильтрации
  • ri – интервал агрегированной отчетности
  • rua – URI(ы) отчетности для агрегированных данных

Не все параметры ключ-значение обязательны. Единственные обязательные параметры - это версия (v) и политика (p). Вы можете найти больше тегов по адресу tools.ietf.org/html/rfc7489#section-11.4

Вот еще один пример записи DMARC для gmail.com. Он гласит, что все сообщения от gmail.com должны быть переданы для дальнейшей обработки (ни отвергнуты, ни помещены в карантин), в то время как сообщения от поддомена gmail.com (например, subdomain.gmail.com) должны быть помещены в карантин.

$ dig txt _dmarc.gmail.com +short
  "v=DMARC1; p=none; sp=quarantine; rua=mailto:mailauth-reports@google.com"

Управление записями DMARC в cPanel

Записи DMARC можно настраивать или изменять в редакторе зон DNS WHM (Домашняя страница » Функции DNS » Редактировать зону DNS). Это также можно сделать после включения функции Редактора зон (AAAA, CAA, SRV, TXT) для пакета (эта функция заменяет Расширенный редактор зон в cPanel).

Проверка записей DMARC

Ресурсы для проверки записей DMARC для доменов:

  • mxtoolbox.com/dmarc.aspx
  • dmarcian.com/dmarc-inspector/
  • emailaudit.com/

Анализ отчетов DMARC

Ресурсы для анализа отчетов DMARC для домена:

  • mxtoolbox.com/DmarcReportAnalyzer.aspx

Дополнительная информация о DMARC

  • tools.ietf.org/html/rfc7489
  • en.wikipedia.org/wiki/DMARC
  • dmarc.org/