Параметры dkim. Настраиваем SPF, DKIM и DMARC на сервере Hmailserver. Зачем же он нужен

Ресурсные записи DNS (или DNS-записи домена) - это записи, которые в системе доменных имен указывают соответствие между именем и служебной информацией.

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

Небольшая справка. DNS (Domain Name System) - это система доменных имен. Она используется для получения информации о доменах, в частности IP-адреса. Более подробно об этом можно прочитать в статье « ».

Ресурсные записи не ограничиваются только соответствием «домен - IP-адрес». Существует несколько десятков типов ресурсных записей . Каждый тип необходим для работы определенной службы.

В этой статье мы остановимся на элементах ресурсных записей, связанных с почтовыми отправлениями: SPF, DKIM, DMARC. И для начала разберемся в том, с какими проблемами могут столкнуться те, кто хочет сделать свою рассылку.

Мое письмо ушло в спам

«Почему мое письмо попало в папку “Спам”?» - этим вопросом задаются многие начинающие пользователи, которые сделали рассылку по своей базе подписчиков.

Сначала определимся, что такое спам. Спам - это массовая рассылка пользователям, которые не давали согласия на ее получения. Весомую долю спама составляют мошеннические письма. Почтовые сервисы отправляют такие письма в папку «Спам», чтобы уберечь своих пользователей от неприятностей: вирусов, фишинга и других видов интернет-мошенничества.

Естественно, процесс анализа «спам-не спам» проходит в автоматическом режиме - у почтовых сервисов есть свои алгоритмы. После их анализа одни письма отправляются во входящие, а другие исчезают в недрах папки «Спам», в которую многие пользователи даже не заглядывают.

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

SPF

SPF (Sender Policy Framework, инфраструктура политики отправителя) - это расширение для протокола отправки электронной почты через SMTP. Используя SPF, владелец домена может указать список серверов, которые смогут отправлять почтовые сообщения с адресом отправителя в этом домене. Иными словами, только указанные серверы смогут отправлять письма от имени этого домена.

Именно настройка SPF-записи защищает домен от несанкционированного использования. Это не позволяет допустить ситуации, когда от имени вашего домена будут рассылаться мошеннические письма.

Поэтому почтовые службы обращают внимание на SPF-запись, а также DKIM и DMARC, о которых будет рассказано далее.

Обязательно проверьте SPF-запись, если письма, отправленные при помощи функции PHP mail(), попадают в спам.

Как настроить SPF

SPF настраивается как TXT-запись для домена.

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

В справочном центре Timeweb есть подробная статья об основном синтаксисе и других механизмах настройки SPF - « Настройка SPF-записи ».

Более подробно ознакомиться с синтаксисом можно в документации SPF .

Если ваш домен расположен на нашем хостинге (и для него указаны NS-серверы Timeweb), то смело обращайтесь в службу поддержки, наши специалисты помогут вам настроить SPF-запись.

Клиентам с другими NS-серверами необходимо обращаться к держателю NS-серверов.

DKIM

DKIM (DomainKeys Identified Mail) - это метод e-mail аутентификации, который дает возможность получателю проверить, было ли письмо отправлено с заявленного домена.

Главная задача DKIM - это упростить обнаружение электронных писем с поддельными адресами, когда заявленный адрес не соответствует адресу, с которого было отправлено письмо (один из видов мошеннических писем).

DKIM позволяет значительно облегчить идентификацию законной, правомочной электронной почты.

Технология DomainKeys позволяет передавать через DNS открытые ключи шифрования и затем автоматически проверять подпись на стороне получателя письма. Подпись в виде скрытого кода добавляется в письмо, а затем подтверждает получателю, что письмо отправлено именно с того домена, который указан.

Настройки SPF и DKIM подтверждают, что отправитель письма определен и не является мошенником.

Как настроить DKIM

Информация о DKIM есть в нашем справочном центре в статье « Настройка DNS-записей ».

Если вы используете почту Timeweb, то DKIM-подпись создается автоматически: все необходимые настройки автоматически прописываются в тот момент, когда вы создаете первый почтовый ящик на своем домене.

DMARC

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

SPF и DKIM - это хорошие и надежные методы аутентификации отправителя, но они имеют свои недостатки, поэтому была разработана открытая спецификация использования DMARC.

Изначально технология DMARC применялась в Gmail; в данный момент она работает в сервисах Facebook, LinkedIn, Hotmail, Yahoo!, Mail.ru, Яндекс.Почта и других принимающих узлах, которые используют данную технологию.

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

DMARC дает возможность проверить, соответствует ли домен в заголовке (адрес отправителя) идентификаторам SPF и DKIM. Для того, чтобы письмо прошло проверку, идентификатор должен соответствовать домену, указанному в поле “From” («от»).

Как настроить DMARC

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

Для настройки DMARC нужно добавить доменную запись в DNS-настройки.

Пример самой простой записи, позволяющей включить режим мониторинга (выполнить тест DMARC и сохранить его результат):

Dmarc.сайт IN TXT “v=DMARC1; p=none”

Такая запись позволить защитить письма, которые будут отправлены от домена сайт, а также от поддоменов (например, mail.сайт).

В этом случае если проверка на стороне получателя покажет, что домен в заголовке “From” соответствует указанному в доменной записи DMARC, то письмо пройдет проверку и попадет в почтовый ящик адресата.

Полную информацию о синтаксисе DMARC можно найти на официальном сайте .

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

Если у вас есть какие-нибудь вопросы, задавайте в комментариях, будем рады помочь!

Приветствую, Хабр! В этой статье будет инструкция по настройке DKIM/SPF/DMARC записей. А побудило меня написать эту статью полное отсутствие документации на русском языке. Все статьи на эту тему, которые были мной найдены, были крайне не информативны.

1. DKIM

DKIM (DomainKeys Identified Mail) - это метод e-mail аутентификации, основанный на проверке подлинности цифровой подписи. Публичный ключ хранится TXT записи домена.

Зачем же он нужен?

DKIM необходим для того, чтобы почтовые сервисы могли проверять, является ли отправитель достоверным или нет. Т.е. защищает получателя письма от различных мошеннических писем (которые отправлены с подменой адреса отправителя).

Настройка DKIM подписи и DNS записей

Для это нам необходимо создать пару ключей:

Openssl genrsa -out private.pem 1024 //генерируем секретный ключ длинной 1024
openssl rsa -pubout -in private.pem -out public.pem //получаем публичный ключ из секретного
Или можно воспользоваться онлайн-сервисом, чего я крайне не советую.

Примером записей является
mail._domainkey.your.tld TXT "v=DKIM1; k=rsa; t=s; p=<публичный ключ>"

Где
mail - селектор. Можно указать несколько записей с разными селекторами, где в каждой записи будет свой ключ. Применяется тогда, когда задействовано несколько серверов. (на каждый сервер свой ключ)
v - версия DKIM, всегда принимает значение v=DKIM1 . (обязательный аргумент)
k - тип ключа, всегда k=rsa . (по крайней мере, на текущий момент)
p - публичный ключ, кодированный в base64. (обязательный аргумент)
t - Флаги:
t=y - режим тестирования. Такие отличают отличаются от неподписанных и нужны лишь для отслеживания результатов.
t=s - означает, что запись будет использована только для домена, к которому относится запись, не рекомендуется, если используются субдомены.
возможные:
h - предпочитаемый hash-алгоритм, может принимать значения h=sha1 и h=sha256
s - Тип сервиса, использующего DKIM. Принимает значения s=email (электронная почта) и s=* (все сервисы) По-умолчанию "*".
; - разделитель.

Так же стоит прописать ADSP запись, которая позволяет понять, обязательно должно быть письмо подписано или нет.
_adsp._domainkey.example.com. TXT "dkim=all"

Значений может быть три:
all - Все письма должны быть подписаны
discardable - Не принимать письма без подписи
unknown - Неизвестно (что, по сути, аналогично отсутствию записи)

2. SPF

SPF (Sender Policy Framework) - расширение для протокола отправки электронной почты через SMTP. SPF определен в RFC 7208 (Wiki). Если простым языком, то SPF - механизм для проверки подлинности сообщением, путем проверки сервера отправителя. Как по мне, данная технология полезна в связке в другими (DKIM и DMARC)

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

Примером обычной SPF записи является your.tld. TXT "v=spf1 a mx ~all"
Здесь:
v=spf1 является версией, всегда spf1
a - разрешает отправляет письма с адреса, который указан в A и\или AAAA записи домена отправителя
mx - разрешает отправлять письма c адреса, который указан в mx записи домена
(для a и mx можно указать и другой домен, например, при значении a:example.com , будет разрешена а запись не домена отправителя, а example.com )
Так же можно добавлять и отдельные ip адреса, используя ip4: и ip6: . Например, ip4:1.1.1.1 ip6: 2001:0DB8:AA10:0001:0000:0000:0000:00FB . Еще есть include: (include:spf.example.com), позволяющий дополнительно подключать spf записи другого домена. Это все можно комбинировать через пробел. Если же нужно просто использовать запись с другого домена, не дополняя её, то лучше всего использовать redirect: (redirect:spf.example.com)
-all - означает то, что будет происходить с письмами, которые не соответствуют политике: "-" - отклонять, "+" - пропускать, "~" - дополнительные проверки, "?" - нейтрально.

3.DMARC

Domain-based Message Authentication, Reporting and Conformance (идентификация сообщений, создание отчётов и определение соответствия по доменному имени) или DMARC - это техническая спецификация, созданная группой организаций, предназначенная для снижения количества спамовых и фишинговых электронных писем, основанная на идентификации почтовых доменов отправителя на основании правил и признаков, заданных на почтовом сервере получателя (Wiki). То есть почтовый сервер сам решает, хорошее сообщение или плохое (допустим, исходя из политик выше) и действует согласно DMARC записи.

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

Типичная запись выглядит так: _dmarc.your.tld TXT "v=DMARC1; p=none; rua=mailto:[email protected]"
В ней не предпринимаются никакие действия, кроме подготовки и отправки отчета.

Теперь подробнее о тегах:
v - версия, принимает значение v=DMARC1 (обязательный параметр)
p - правило для домена. (Обязательный параметр) Может принимать значения none , quarantine и reject , где
p=none не делает ничего, кроме подготовки отчетов
p=quarantine добавляет письмо в СПАМ
p=reject отклоняет письмо
Тэг sp отвечает за субдомены и принимает такие же значения, как и p
aspf и adkim позволяют проверять соответствиям записям и могут принимать значения r и s , где r - relaxed более мягкая проверка, чем s - strict.
pct отвечает за кол-во писем, подлежащих фильтрации, указывается в процентах, например, pct=20 будет фильтровать 20% писем.
rua - позволяет отправлять ежедневные отчеты на email, пример: rua=mailto:[email protected] , так же можно указать несколько email через пробел (rua=mailto:[email protected] mailto:[email protected])

Пример отчета

1.1.1.1 1 none your.tld your.tld pass your.tld pass 1.1.1.1 1 none forwarded your.tld your.tld pass your.tld pass


ruf - отчеты писем, не прошедшие проверку DMARC. В остальном все так же, как и выше.

Эпилог

Мы научились настраивать DKIM/SPF/DMARC и противостоять спуфингу. К сожалению, это не гарантирует безопасность в случае взлома сервера или же отправки писем на серверы, не поддерживающие данные технологии. Благо, что популярные сервисы все же их поддерживают (а некоторые и являются инициаторами данных политик).

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

Буду рад конструктивной критике и правкам.

DKIM (DomainKeys Identified Mail) — метод почтовой идентификации. Цифровая подпись DKIM для почтового домена позволяет снизить шанс попадания письма в спам и защититься от фишинговых рассылок.

Настройка DKIM

Чтобы настроить DKIM-подпись, . В зависимости от используемой панели (ISPmanager , Plesk или cPanel

Готово! Все письма, отправленные с выбранного почтового домена, будут содержать DKIM-подпись.

Настройка DKIM для отдельного домена


Готово! Все письма, отправленные с выбранного домена, будут содержать DKIM-подпись.

Настройка DKIM для нескольких доменов

На всех выбранных доменах будет одинаково настроена почтовая служба.


Готово! Все письма, отправленные с выбранных доменов, будут содержать DKIM-подпись.

Готово! Ваши письма будут содержать DKIM-подпись.

Настройка DMARC

Внимание

Переходите к подключению DMARC только после настройки DKIM.

DMARC — технология, которая задаёт алгоритм действий с письмами, не содержащими DKIM-подписи, т.е. признанными поддельными. Они могут быть приняты, отправлены в папку «Спам» или отклонены.

Чтобы установить DMARC-политику, нужно добавить TXT-запись с нужным алгоритмом. Нейтральная DMARC-политика задаётся следующей TXT-записью:

Имя записи Тип записи TTL Значение записи
_dmarc.domain.ru TXT 3600 v=DMARC1; p=none; aspf=r; sp=none

где domain.ru — имя вашего почтового домена.

Вы можете настроить DMARC-политику иначе, обратившись к статье Mail.ru .

В зависимости от используемой панели (ISPmanager , Plesk или cPanel ) следуйте дальнейшей инструкции.

Как и где добавлять эти записи

Эти записи добавляются или изменяются у вашего хостинг-провайдера — например, nic.ru, reg.ru, и так далее. Как зайти в раздел для редактирования этих записей у вашего провайдера — можно посмотреть здесь: https://help.mail.ru/biz/domain/verification_settings/nic/spf
Более подробно можно узнать в справке или поддержке вашего хостера.

Где найти записи, которые необходимо добавить

В личном кабинете в разделе «Настройки Email» — «Доставляемость Email». Для каждого добавленного вами домена будут расписаны 3 TXT записи, первая запись — SPF, вторая запись — DKIM и третья запись — DMARC.

Если запись SPF уже есть

Если у вас уже есть SPF запись (такое может быть, например, если вы используете почту для доменов на mail.ru), то вам нужно изменить существующую запись, а не добавлять новую — потому что по стандарту SPF запись может быть только одна.

Во-первых, если в записи есть параметр redirect, то его нужно заменить на include. Во-вторых, нужно добавить в запись следующее: «include:_spf.emailtransfer.net». Например:

Было: v=spf1 redirect=_spf.mail.ru

Должно стать: v=spf1 include:_spf.mail.ru include:_spf.emailtransfer.net

Добавляем DKIM запись

В зависимости от хостинга, на котором расположен ваш домен, добавляем новую TXT запись или создаем поддомен с именем имеющим вид, например:70._domainkey. и соответствующими значениями параметров k и p. Имя и значения параметров вы найдете на странице «Доставляемость Email».

Добавляем DMARC запись

Так же, как и для записи DKIM, создаем TXT запись DMARC с именем: _dmarc. и значениями: v=DMARC1; p= none

Если наша система говорит, что записи не в порядке

Это может быть по двум причинам. Первая — прошло слишком мало времени. Система DNS устроена так, что публикация изменений может занять до 48 часов. Если вы внесли записи недавно, попробуйте проверить еще раз через некоторое время.

Вторая причина — записи опубликованы неправильно. Вы можете проверить, как опубликовались записи, с помощью сервиса mxtoolbox.com . Для проверки SPF нужно ввести ваш домен, и выбрать из выпадающего списка SPF. Для проверки DKIM нужно ввести et._domainkey. и выбрать DKIM. Нужно сравнить значения, которые выдаёт mxtoolbox, с теми, что указаны у нас.

Если ничего не помогает — пишите\звоните, постараемся помочь.