Добавьте к записям dns сервера txt spf запись с указанием настоящих серверов отправки почты

Обновлено: 01.07.2024

Данная статья подразумевает, что у вас уже есть настроенный рабочий почтовый сервер (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 (взято с Wikipedia)

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

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 записей


Примером обычной 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 записей

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

Теперь подробнее о тегах:
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:postmaster@your.tld , так же можно указать несколько email через пробел ( rua=mailto:postmaster@your.tld mailto:dmarc@your.tld )

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

Эпилог

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

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

Читайте также: