Добавьте к записям dns сервера txt spf запись с указанием настоящих серверов отправки почты
Данная статья подразумевает, что у вас уже есть настроенный рабочий почтовый сервер (Postfix), и освещает лишь настройку SPF и DKIM.
SPF и DKIM в целом похожие технологии, и выполняют схожу задачу - подтверждают валидность сервера отправителя. Работают они через записи на DNS сервере. Принцип работы очень простой:
Настройка SPF записи
Расшифруем нашу запись:
С настройкой SPF записи всё довольно просто.
Проверка SPF записей
Обновление DNS записей обычно занимает от 30 минут до 4 часов - стоит подождать некоторое время, чтобы записи успели обновиться. Затем идем сюда и вбиваем доменное имя, для которого вы прописали записи. Жмем SPF Record Lookup и смотрим результат.Настройка DKIM
Для этого на почтовом сервере необходимо установить opendkim:
Создадим директории где будут храниться ключи для каждого домена (если ваш почтовый сервер обслуживает несколько доменов):
Содержимое файла mail.txt (для соответствующего домена) является публичным ключом, который надо разместить на DNS-сервере в TXT записи для того домена для которого он был создан.
Пример данной записи:
Владельцем ключей делаем opendkim (иногда из-за этого бывают ошибки):
Создадим 3 необходимых файла конфигурации:
Содержимое файла /etc/opendkim/KeyTable (здесь все слова mail меняем на ваш селектор, в данном файле прописываются домены и пути к секретным ключам):
Содержимое файла /etc/opendkim/SigningTable:
Пример файла /etc/opendkim/TrustedHosts:
Настроим opendkim. Для этого внесем следующие настройки в конфигурационный файл /etc/opendkim.conf:
Пропишем в Postfix в main.cf строчки:
Если у вас уже используется milter (например, для SpamAssasin), тогда эти же строчки будут выглядеть так:
После внесения изменений в конфигурационный файл Postfix перезапустим его:
Определим политику DKIM (ADSP - Author Domain Signing Practices)
Для этого надо разместить на DNS-сервере в TXT записи для каждого домена для которого используется DKIM следующую строчку:
Значения могут быть следующими:
Проверка DKIM
Пример ответа, что DKIM настроен корректно:
SPF (Sender Policy Framework) - это DNS-запись, содержащая список доверенных серверов, с которых может отправляться почта данного домена, и сведения о механизме обработки писем, отправленных с других серверов. Корректная настройка SPF позволит снизить вероятность рассылки спама злоумышленниками от вашего имени.
В панели Timeweb SPF настраивается в разделе "Домены и поддомены" - "Настройки DNS" - "Добавить DNS запись" - "TXT". Если TXT-запись с параметрами SPF уже создана, необходимо ее отредактировать. Не рекомендуется создавать несколько SPF-записей для домена, так как это может вызывать проблемы с доставкой почты.
Для доменов, делегированных на наши NS-серверы, SPF-запись указывается автоматически и выглядит примерно следующим образом:
Такая запись означает, что письма с данного домена могут отправляться из подсетей 176.57.223.0/24 и 92.53.116.0/22, а письма, пришедшие с других серверов (all), должны проходить дополнительную проверку (
Основной синтаксис
Любая SPF-запись начинается с v=spf1, этот параметр не изменяется. Он указывает на версию записи, и в настоящее время поддерживается только spf1.
Далее указываются параметры (механизмы). Чаще всего используются следующие: all, ip4, ip6, a, mx, include, redirect. Также существуют, но используются значительно реже: ptr, exists, exp. Они все будут рассмотрены ниже.
Помимо механизмов используются префиксы (определители):
- "+" - Pass, принимать почту. Прописывать этот параметр необязательно, он установлен по умолчанию (т.е. значения "+a +mx" и "a mx" - идентичны).
- "-" - Fail, отклонять почту.
- "
Параметр "all" подразумевает все серверы, не упомянутые отдельно в SPF-записи. "All" задает обработку полученных с них писем и указывается в конце записи.
— принимать почту только из подсети 176.57.223.0/24; письма с других адресов должны быть помечены как спам.
— принимать почту только с A-записи домена; письма с других адресов должны отвергаться.
— отвергать все письма с домена. Такую настройку можно использовать для доменов, с которых не должна отправляться вообще никакая почта.
В последующих примерах мы не будем дополнительно комментировать значения параметров
all и -all в SPF-записях.
ip4 / ip6
Используется для указания конкретных адресов и подсетей, из которых могут отправляться письма. Синтаксис для IPv4 и IPv6 идентичен.
— принимать почту из подсети 176.57.223.0/24.
— принимать почту с IPv6-адреса 2001:db8::10.
IP отправителя проверяется на соответствие A-записи домена.
— принимать почту с A-записи текущего домена.
IP отправителя проверяется на соответствие IP-адресам серверов, указанных в MX-записях домена. На текущий день для многих современных сервисов эта директива уже не так важна, так как серверы входящей и исходящей почты зачастую имеют разные IP.
— принимать почту из подсети, в которую входят MX-серверы текущего домена.
include
Позволяет учитывать в SPF-записи настройки SPF другого домена.
redirect
Технически, redirect является модификатором, а не механизмом. Он выполняет одну основную функцию: сообщает, что необходимо применять настройки SPF другого домена.
Прочие механизмы
Здесь мы рассмотрим оставшиеся механизмы, которые используются в настройках значительно реже.
PTR-запись IP-адреса отправителя проверяется на соответствие указанному домену. Данный механизм требует большого количества DNS-запросов при проверке, поэтому без острой необходимости использовать его в SPF не рекомендуется.
exists
Запрашивается А-запись указанного домена; если она существует, проверка считается пройденной. Другими словами, проверяется, резолвится ли домен на какой-либо (любой) IP-адрес.
Параметр "exp" всегда указывается в конце записи (после all).
Примеры настроек
Если вы отправляете почту так же и с других серверов (укажите IP-адреса или подсети вместо IP1, IP2 и т.д.):
Настройка SPF для Яндекс.Почты
(подробнее о настройке DNS для Яндекса см. здесь)
При использовании только серверов Яндекса:
При использовании также и других серверов (укажите IP-адреса или подсети вместо IP1, IP2 и т.д.):
Настройка SPF для Google
(подробнее о настройке DNS для Google см. здесь)
При использовании только серверов Google:
При использовании также и других серверов (укажите IP-адреса или подсети вместо IP1, IP2 и т.д.):
Другие примеры
Видеоинструкция
SPF-запись помогает снизить риск того, что письмо, отправленное с адреса на вашем домене, попадет в спам у адресата. Чтобы настроить SPF-запись, нужно создать TXT-запись со списком серверов, которые отвечают за отправку почты с вашего домена.
Если вы делегировали домен на серверы Яндекса, SPF-запись будет настроена автоматически.
Общая инструкция по настройке SPF-записи
Войдите в панель управления на сайте компании, которая предоставляет вам DNS-хостинг.
Если вы делегировали домен на серверы Яндекса, перейдите в DNS-редактор Коннекта.
Создайте TXT-запись со следующими значениями полей (в разных панелях управления названия полей могут различаться):
Если вы хотите отправлять письма не только с серверов Яндекса, укажите дополнительные серверы в таком формате: Где IP-1 , IP-2 , IP-3 — IP-адреса дополнительных серверов.Имя поддомена (или Хост ) — @
Если это поле отсутствует в панели управления, можно его не указывать.
Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
Инструкции по настройке SPF-записи у некоторых хостинг-провайдеров
Нажмите ссылку с именем нужного домена. Откроется страница Управление .
Выберите DNS-серверы и управление зоной .
Если вы хотите отправлять письма не только с серверов Яндекса, укажите дополнительные серверы в таком формате: Где IP-1 , IP-2 , IP-3 — IP-адреса дополнительных серверов.Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
На панели справа выберите DNS-зоны .
Нажмите ссылку с именем нужного домена. Откроется страница Просмотр DNS-зоны .
Если вы хотите отправлять письма не только с серверов Яндекса, укажите дополнительные серверы в таком формате: Где IP-1 , IP-2 , IP-3 — IP-адреса дополнительных серверов.Поле MX preference оставьте пустым.
Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
В разделе Управление хостингом нажмите ссылку DNS .
В выпадающем списке выберите нужный домен.
Если вы хотите отправлять письма не только с серверов Яндекса, укажите дополнительные серверы в таком формате: Где IP-1 , IP-2 , IP-3 — IP-адреса дополнительных серверов.Подождите, пока изменения в DNS вступят в силу. Может потребоваться до 72 часов, чтобы DNS-серверы в интернете обменялись данными о новых DNS-записях.
Эта статья адресуется тем, кто еще никогда не настраивал записи SPF или почтовые серверы. В ней показаны примеры стандартных записей SPF для отправки почты как с помощью только Google Workspace, так и с помощью Google Workspace в сочетании с другими почтовыми серверами или сервисами. Подробные технические сведения о записях SPF (включая предъявляемые к ним требования, используемый синтаксис и то, как записи влияют на доставку почты) можно найти в этой статье.
Запись SPF определяет почтовые серверы и домены, которым разрешено отправлять почту от имени вашего домена. Почтовые серверы, принимающие электронные письма от вашего домена, с помощью SPF могут убедиться, что эти письма отправлены с разрешенных вами серверов.
Если электронные письма в вашей организации отправляются только с помощью Google Workspace, следуйте инструкциям по базовой настройке записи SPF.У домена может быть только одна запись SPF, но в ней можно указать несколько серверов и сторонних почтовых сервисов.
Настройте SPF, добавив соответствующую TXT-запись DNS на сайте регистратора домена.
Запись SPF (только Google Workspace)
Если все электронные письма в вашей организации отправляются с помощью Google Workspace, используйте эту запись SPF:
Дальнейшие действия
Запись SPF (Google Workspace и другие отправители)
Если для отправки почты вы используете не только Google Workspace, но и другие серверы или сторонние сервисы, создайте собственную запись SPF, чтобы указать их в качестве разрешенных. Если вы не знаете, какие сервисы используются, определите всех отправителей электронной почты в своей организации с помощью инструкций в статье Подготовка к настройке записи SPF.
Запись SPF должна содержать ссылку на Google Workspace, а также домены и IP-адреса всех серверов и сервисов, которые отправляют почту от имени вашего домена.
Примеры записей SPF (Google Workspace и другие отправители)
Добавьте других отправителей своей организации в запись SPF для отправки почты с помощью Google Workspace:
Важно! В таблице указаны примеры IP-адресов и доменных имен. Замените их IP-адресами и доменами своих отправителей.
DKIM (DomainKeys Identified Mail) — это метод e-mail аутентификации, основанный на проверке подлинности цифровой подписи. Публичный ключ хранится TXT записи домена.
Зачем же он нужен?
DKIM необходим для того, чтобы почтовые сервисы могли проверять, является ли отправитель достоверным или нет. Т.е. защищает получателя письма от различных мошеннических писем (которые отправлены с подменой адреса отправителя).
Настройка DKIM подписи и DNS записей
Для это нам необходимо создать пару ключей:
Или можно воспользоваться онлайн-сервисом, чего я крайне не советую.
Далее необходимо указать путь с секретному ключу в файле конфигурации (для этого лучше почитать документацию) почтового сервера и публичный ключ в DNS.
Примером записей является
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 записей
Примером обычной 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
Настройка 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] )
ruf — отчеты писем, не прошедшие проверку DMARC. В остальном все так же, как и выше.
Эпилог
Мы научились настраивать DKIM/SPF/DMARC и противостоять спуфингу. К сожалению, это не гарантирует безопасность в случае взлома сервера или же отправки писем на серверы, не поддерживающие данные технологии. Благо, что популярные сервисы все же их поддерживают (а некоторые и являются инициаторами данных политик).
Эта статья — лишь инструкция по самостоятельной настройке записей, своего рода документация. Готовых примеров нет намеренно, ведь каждый сервер уникален и требует своей собственной конфигурации.
Читайте также: