Home » Домены и DNS – Как настроить SPF, DKIM и DMARC? Пример на Ubuntu 24
Домены и DNS – Как настроить SPF, DKIM и DMARC? Пример на Ubuntu 24

Домены и DNS – Как настроить SPF, DKIM и DMARC? Пример на Ubuntu 24

Введение: Зачем вообще возиться с этими записями?

Если у тебя есть свой сайт, почтовый сервер или ты просто гоняешь рассылки — ты уже сталкивался с тем, что твои письма улетают в спам, а иногда вообще не доходят. Причина чаще всего банальна: твой домен не защищён от подделки (spoofing), и почтовики вроде Gmail, Яндекс, Mail.ru просто не доверяют тебе.

Всё решается тремя магическими буквами: SPF, DKIM и DMARC. Они делают твои письма “легитимными” в глазах чужих серверов. В этой статье разложу по полочкам, что это за звери, как их настроить на Ubuntu 24, и покажу, где косяки ловят новички.

Что такое SPF, DKIM и DMARC — простыми словами

  • SPF (Sender Policy Framework) — говорит, с каких серверов разрешено отправлять почту с твоего домена. Если письмо пришло не оттуда, его шлют в спам или режут на корню.
  • DKIM (DomainKeys Identified Mail) — добавляет к письму цифровую подпись, которую можно проверить через DNS. Это как печать на конверте: если подпись верная — письмо точно от тебя.
  • DMARC (Domain-based Message Authentication, Reporting & Conformance) — объединяет SPF и DKIM, задаёт политику, что делать с подозрительными письмами, и отправляет тебе отчёты о попытках подделки.

Вся магия работает на уровне DNS-записей. Поэтому ты должен уметь рулить DNS своего домена. Если домен у REG.ru, Cloudflare, Ru-Center — всё делается в панели управления.

Как это работает: Схема для чайников

Как работает DMARC

1. Ты отправляешь письмо.
2. Почтовый сервер получателя сверяет DNS-записи твоего домена: разрешён ли твой IP (SPF), есть ли подпись (DKIM), что делать с фейками (DMARC).
3. Если всё ок — письмо попадает во Входящие. Если нет — в спам или в никуда.

Настраиваем SPF, DKIM и DMARC на Ubuntu 24: Пошагово

1. Настройка SPF

SPF — это TXT-запись в DNS. Она указывает, какие серверы имеют право отправлять почту от твоего домена.

Пример: если твоя почта уходит с сервера с IP 1.2.3.4 и через Gmail:


v=spf1 ip4:1.2.3.4 include:_spf.google.com ~all

  • ip4:1.2.3.4 — разрешённый IP
  • include:_spf.google.com — разрешить Google отправлять письма
  • ~all — softfail (не жёстко банить всех остальных, а помечать как подозрительное)

Добавь эту запись в разделе DNS своего регистратора (или панели Cloudflare). Обычно это TXT-запись с именем @ (или пустым) и значением, как выше.

Проверить SPF:

dig +short TXT yourdomain.com

или онлайн: https://mxtoolbox.com/spf.aspx

2. Настройка DKIM

DKIM чуть сложнее: нужно сгенерировать пару ключей (приватный и публичный), приватный — на сервере, публичный — в DNS.

  • На Ubuntu 24 ставим opendkim:


sudo apt update
sudo apt install opendkim opendkim-tools

  • Генерируем ключ:


sudo mkdir -p /etc/opendkim/keys/yourdomain.com
cd /etc/opendkim/keys/yourdomain.com
sudo opendkim-genkey -s mail -d yourdomain.com

Появятся два файла: mail.private (приватный) и mail.txt (публичный).

  • Открываем mail.txt, копируем содержимое (после “p=”) — это и есть твой публичный ключ.
  • Добавляем в DNS TXT-запись с именем mail._domainkey.yourdomain.com и значением из mail.txt.

Пример значения:

v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC...

Важно: Не ставь переносы строк в DNS! Весь ключ — одной строкой.

Дальше нужно прописать opendkim в конфиги MTA (Postfix, Exim и т.д.), чтобы письма подписывались этим ключом. Для Postfix:


sudo nano /etc/postfix/main.cf

Добавить строки:

milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

Перезапустить службы:


sudo systemctl restart opendkim
sudo systemctl restart postfix

Проверить работу можно, отправив письмо на [email protected] или через mail-tester.com.

3. Настройка DMARC

DMARC — это тоже TXT-запись в DNS. Она указывает, что делать, если SPF или DKIM не совпали, и куда слать отчёты.


_dmarc.yourdomain.com TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]"

  • p=none — только собирать отчёты, не блокировать
  • p=quarantine — подозрительные письма в спам
  • p=reject — жёстко отклонять всё, что не прошло SPF/DKIM
  • rua — куда слать отчёты (можно несколько адресов через запятую)

Рекомендуется начинать с p=none и смотреть отчёты. Потом ужесточать.

Проверить DMARC можно тут: https://mxtoolbox.com/dmarc.aspx

Плюсы и минусы подходов

  • Плюсы:
    • Письма перестают улетать в спам
    • Защита от подделки (spoofing)
    • Видишь, кто пытается слать почту от твоего имени
  • Минусы:
    • Если накосячишь с настройкой — письма могут вообще не доходить
    • Не все почтовики строго следуют этим политикам
    • Сложно, если у тебя много сервисов, которые отправляют почту (например, сайт + CRM + рассылка)

Кейсы: что бывает на практике

Позитивный кейс

Владелец интернет-магазина внедрил SPF, DKIM и DMARC — письма с заказами и уведомлениями перестали улетать в спам. Репутация домена выросла, увеличилась открываемость рассылок.

Негативный кейс

Вебмастер прописал SPF только для одного сервера, а сайт отправляет почту ещё и через сторонний сервис (например, Sendgrid). В итоге часть писем ушла в спам, часть — вообще не дошла.

Совет:

Если у тебя несколько сервисов — обязательно добавляй их в SPF (include:...), и настраивай DKIM для каждого.

Типовые ошибки новичков

  • Две SPF-записи в DNS — так нельзя! Должна быть одна.
  • Кривой DKIM: не тот ключ, лишние пробелы/переносы — подпись не работает.
  • Забыли обновить SPF после смены IP/добавления нового сервиса рассылки.
  • Поставили p=reject в DMARC сразу — потеряли часть легитимной почты.
  • Путают host и значение при добавлении DNS-записей.

Частые мифы и вопросы

  • “У меня VPS, этого не надо” — надо, особенно если отправляешь почту напрямую.
  • “SPF/DKIM/DMARC — это только для больших компаний” — нет, это must-have даже для личного блога.
  • “Достаточно только SPF” — нет, современные почтовики требуют все три.

Альтернативные решения

  • Делегировать всё почтовому сервису (Gmail, Яндекс 360, Mailgun, Sendgrid) — они сами подскажут нужные DNS-записи.
  • Использовать Postmark, Mailgun, Sendgrid — у этих сервисов отличные гайды по настройке SPF/DKIM/DMARC.

Полезные ссылки

Заключение: Выводы и рекомендации

Если хочешь, чтобы твоя почта не падала в спам и не терялась — настрой SPF, DKIM и DMARC. Это несложно, если следовать инструкции, и реально повышает доверие к твоему домену. Начни с простого: добавь SPF, потом подключи DKIM, и только после этого — DMARC. Не торопись ставить жёсткие политики, сначала посмотри отчёты.

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

Удачи! Если остались вопросы — пиши в комменты или ищи меня на профильных форумах 😉


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

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

Leave a reply

Your email address will not be published. Required fields are marked