Загрузка...
Загрузка...
Подробное руководство по настройке SPF, DKIM и DMARC записей. Защита от спуфинга, улучшение доставляемости писем. Примеры DNS-записей и пошаговая настройка.
БезопасностьПолное руководство по доставляемости email: репутация отправителя, аутентификация SPF/DKIM/DMARC, контент, чёрные списки, мониторинг. Практические советы для маркетологов и администраторов.
БезопасностьСправочник DNS-записей: типы, назначение, примеры. A, AAAA, CNAME, MX, TXT, NS, SOA, SRV. Настройка домена для сайта и почты.
БезопасностьКак работает распространение DNS, сколько ждать после смены NS или A-записи. TTL, кэширование, проверка пропагации с разных серверов.
Поделитесь с коллегами или изучите другие материалы блога
Корректная настройка DNS для почты — основа доставляемости писем. MX-записи указывают, куда доставлять входящую почту; SPF, DKIM и DMARC — проверяют подлинность отправителя. Ошибки в DNS приводят к отказу в доставке или попаданию в спам. В этом руководстве разберём каждую запись с примерами и типичными ошибками.
Проверить текущую конфигурацию можно через инструмент проверки email и DNS Lookup. Дополнительно: руководство по SPF, DKIM, DMARC и доставляемость писем.
MX (Mail Exchange) указывает серверы, принимающие почту для домена. При отправке письма на user@example.com отправитель делает DNS-запрос MX для example.com и получает список серверов с приоритетами.
example.com. IN MX 10 mail.example.com.
| Поле | Значение | Описание |
|---|---|---|
| Имя | example.com | Домен (часто оставляют пустым или @) |
| Тип | MX | Тип записи |
| Приоритет | 10 | Меньше = выше приоритет (0–65535) |
| Значение | mail.example.com | Хост почтового сервера |
Для отказоустойчивости настраивают несколько записей с разными приоритетами:
example.com. IN MX 10 mail1.example.com.
example.com. IN MX 20 mail2.example.com.
Сначала используется mail1; при недоступности — mail2.
MX указывает на hostname. Нужна A-запись (или AAAA для IPv6):
mail.example.com. IN A 192.0.2.10
Google Workspace:
example.com. IN MX 5 gmail-smtp-in.l.google.com.
example.com. IN MX 10 alt1.gmail-smtp-in.l.google.com.
example.com. IN MX 20 alt2.gmail-smtp-in.l.google.com.
example.com. IN MX 30 alt3.gmail-smtp-in.l.google.com.
example.com. IN MX 40 alt4.gmail-smtp-in.l.google.com.
Яндекс 360:
example.com. IN MX 10 mx.yandex.ru.
Mail.ru для бизнеса:
example.com. IN MX 10 mx1.mail.ru.
example.com. IN MX 20 mx2.mail.ru.
Microsoft 365:
example.com. IN MX 0 example-com.mail.protection.outlook.com.
dig MX example.com +short
# или
nslookup -type=MX example.com
Через DNS Lookup — введите домен, выберите тип MX.
SPF указывает, какие серверы могут отправлять почту от имени домена. Принимающий сервер проверяет IP отправителя по SPF-записи. Запись — TXT с особым форматом.
example.com. IN TXT "v=spf1 [механизмы] [модификатор]"
| Механизм | Описание | Пример |
|---|---|---|
ip4 | IPv4-адрес или подсеть | ip4:192.0.2.1 или ip4:192.0.2.0/24 |
ip6 | IPv6 | ip6:2001:db8::/32 |
a | A-запись домена | a или a:mail.example.com |
mx | MX-записи домена | mx |
include | Включить SPF другого домена | include:_spf.google.com |
all | Все остальные | -all (запретить) |
-all — жёсткий отказ (fail) для неразрешённых. Рекомендуется в продакшене.~all — мягкий отказ (softfail). Для тестирования.?all — нейтрально. Не рекомендуется.+all — разрешить всё. Не использовать.include (лимит DNS)include — запрос)Только свой сервер:
v=spf1 ip4:192.0.2.10 -all
Google Workspace:
v=spf1 include:_spf.google.com -all
Яндекс:
v=spf1 include:_spf.yandex.net -all
Mail.ru:
v=spf1 include:mail.ru -all
Несколько провайдеров (Google + SendGrid):
v=spf1 include:_spf.google.com include:sendgrid.net -all
-all — без модификатора запись неполная. Используйте -all в продакшене.+all — разрешает всех, бессмысленно._spf.google.com, не spf.google.com).DKIM добавляет криптографическую подпись к письму. Принимающий сервер проверяет подпись по публичному ключу в DNS. Гарантирует целостность и подлинность.
selector._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=PUBLIC_KEY_BASE64"
selector — произвольное имя (например, default, mail, s1). Один домен может иметь несколько селекторов (для ротации ключей).
OpenSSL:
# Генерация приватного ключа (2048 бит)
openssl genrsa -out dkim_private.pem 2048
# Извлечение публичного ключа в формате для DNS
openssl rsa -in dkim_private.pem -pubout -outform DER | base64 -w 0
Вывод — длинная строка Base64. Вставьте в запись:
default._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
Postfix + OpenDKIM:
# /etc/opendkim.conf
Domain example.com
Selector default
KeyFile /etc/opendkim/keys/default.private
Exim: Используется плагин dkim или dkimsign. Конфигурация зависит от сборки.
Сторонние провайдеры (SendGrid, Mailgun и т.д.): Провайдер даёт готовую DNS-запись. Обычно в панели: «Authenticate domain» → скопировать TXT-запись.
Отправьте тестовое письмо на свой ящик. В заголовках найдите DKIM-Signature. Проверка через Email Checker покажет статус DKIM.
DMARC объединяет SPF и DKIM, задаёт политику при несовпадении и позволяет получать отчёты о результатах проверки.
_dmarc.example.com. IN TXT "v=DMARC1; p=[policy]; rua=mailto:dmarc@example.com"
| Тег | Описание | Значения |
|---|---|---|
p | Политика для домена | none, quarantine, reject |
sp | Политика для поддоменов | Аналогично p |
rua | Email для агрегированных отчётов | mailto:dmarc@example.com |
ruf | Email для отчётов о несовпадении | mailto:forensics@example.com |
pct | Процент писем для применения политики | 0–100 (по умолчанию 100) |
adkim | Строгость проверки DKIM | r (relaxed) или s (strict) |
aspf | Строгость проверки SPF | r или s |
Этап 1 (тест):
v=DMARC1; p=none; rua=mailto:dmarc@example.com
Собирайте отчёты 1–2 недели. Анализируйте: проходят ли ваши письма SPF и DKIM.
Этап 2 (карантин):
v=DMARC1; p=quarantine; pct=10; rua=mailto:dmarc@example.com
10% не прошедших — в карантин. Постепенно увеличивайте pct до 100.
Этап 3 (жёсткая политика):
v=DMARC1; p=reject; rua=mailto:dmarc@example.com; ruf=mailto:forensics@example.com
Отчёты приходят в XML. Используйте сервисы анализа: Postmark, Valimail, dmarcian. Или парсите самостоятельно для понимания источников писем и результатов проверки.
Домен example.com, почта через Google Workspace, рассылки через SendGrid.
MX:
example.com. IN MX 5 gmail-smtp-in.l.google.com.
example.com. IN MX 10 alt1.gmail-smtp-in.l.google.com.
SPF (Google + SendGrid):
example.com. IN TXT "v=spf1 include:_spf.google.com include:sendgrid.net -all"
DKIM для SendGrid (селектор s1, ключ от провайдера):
s1._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."
DMARC:
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.com"
# MX
dig MX example.com +short
# SPF (TXT)
dig TXT example.com +short
# DKIM (подставьте свой селектор)
dig TXT default._domainkey.example.com +short
# DMARC
dig TXT _dmarc.example.com +short
Сервисы mail-tester.com, glockapps.com — отправьте письмо на указанный адрес, получите оценку и детали проверки SPF/DKIM/DMARC.
После изменения DNS записи распространяются не мгновенно. TTL (Time To Live) определяет время кэширования. Типичные значения: 300 (5 мин), 3600 (1 час), 86400 (24 часа).
При первой настройке используйте низкий TTL (300), чтобы быстрее откатить при ошибке. После стабилизации — увеличьте.
Для исходящих серверов настройте PTR (reverse DNS): IP должен резолвиться в hostname, который совпадает с именем в HELO/EHLO. Многие провайдеры проверяют PTR и отклоняют письма при несовпадении. Настраивается у хостинг-провайдера, не в обычной DNS-зоне.
Опциональная запись для отображения логотипа в поддерживающих клиентах (Gmail, Yahoo). Требует DMARC с политикой p=quarantine или p=reject и верифицированный VMC-сертификат. Пока редко используется.
Политика принудительного TLS для доставки почты. Создаётся запись _mta-sts.example.com и файл на https://mta-sts.example.com/.well-known/mta-sts.txt. Защищает от downgrade-атак при передаче между серверами.
Отчётность о проблемах TLS при доставке. Запись _smtp._tls.example.com с rua=mailto:tlsreports@example.com. Помогает выявлять атаки и сбои шифрования.
При смене провайдера (например, с собственного сервера на Google Workspace):
Параллельная работа двух провайдеров: можно временно включить оба в SPF (include обоих), затем убрать старого.
Периодическая смена ключей DKIM повышает безопасность. Процесс:
s2 вместо s1)s2._domainkey.example.coms2s2s1 (для обратной совместимости с письмами в пути)include, до 10 DNS-запросов при проверке. При превышении — проверка прерывается с softfail.Письма не приходят — проверьте MX: указывают ли они на правильный сервер, резолвится ли hostname в IP. Проверьте firewall и порт 25.
Письма в спаме — проверьте SPF (совпадает ли IP отправителя), DKIM (подпись валидна?), DMARC (политика и отчёты). Используйте Email Checker.
SPF fail — убедитесь, что IP отправляющего сервера входит в include или явно указан. Проверьте, что нет нескольких SPF-записей.
DKIM fail — селектор в заголовке письма должен совпадать с селектором в DNS. Ключ в DNS — полный, без переносов (если разбит на строки, они объединяются без пробелов).
Настройка DNS для почты — MX, SPF, DKIM, DMARC — обязательный минимум для стабильной доставляемости. Следуйте примерам выше, проверяйте конфигурацию через Email Checker и DNS Lookup, и ваши письма будут проходить проверки принимающих серверов. Дополнительные материалы: SPF, DKIM, DMARC и доставляемость писем.