Как установить и настроить SPF, DKIM и DMARC на VPS
SPF, DKIM и DMARC — три DNS-записи, от которых зависит, дойдут ли ваши письма до «Входящих» или упадут в спам. Это фундамент доставляемости для любого почтового сервера на VPS: они подтверждают получателям, что почта от вашего домена легитимна, а не подделка. Без них Gmail, Outlook и другие крупные системы относятся к письмам с подозрением. Ниже — пошаговый разбор каждой из трёх записей: что они делают, как настроить SPF, сгенерировать DKIM-ключ и выстроить политику DMARC, а также как всё проверить.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Зачем нужны все три записи
Электронная почта изначально не имела защиты от подделки отправителя — вписать в поле «От» чужой адрес мог кто угодно. SPF, DKIM и DMARC закрывают эту дыру, каждая со своей стороны, и работают в связке. SPF отвечает на вопрос «каким серверам разрешено слать почту от этого домена». DKIM ставит на письмо криптографическую подпись, подтверждающую, что письмо не подделано и действительно от вашего домена. DMARC связывает первые две и говорит получателю, что делать с письмами, не прошедшими проверку, а также присылает вам отчёты.
Важно понимать: по отдельности каждая запись прикрывает лишь часть, а сила в комбинации. SPF без DKIM ломается при пересылке писем, DKIM без DMARC не имеет политики применения, DMARC без первых двух бессмыслен. Поэтому настраивают все три. Это не про сам почтовый сервер, а про DNS вашего домена плюс, для DKIM, ключ на сервере. Настройка занимает время, но без неё серьёзная доставляемость сегодня невозможна.
Перед началом убедитесь, что у вас есть доступ к управлению DNS домена и работающий отправляющий сервер с известным IP. И проверьте базовое условие — PTR-запись (обратный DNS) вашего IP, которую настраивает провайдер: без неё даже идеальные SPF, DKIM и DMARC не спасут от спам-папки.
Настройка SPF
SPF (Sender Policy Framework) — это одна TXT-запись в DNS домена, которая перечисляет источники, имеющие право отправлять почту от вашего имени. Получатель видит письмо, смотрит SPF-запись домена отправителя и проверяет, входит ли отправивший IP в разрешённый список. Базовая запись для сервера, отправляющего почту со своего IP:
вашдомен.ru. TXT "v=spf1 a mx ip4:ВАШ_IP -all"
Разберём. a и mx разрешают отправку с адресов из A и MX записей домена, ip4:ВАШ_IP явно добавляет IP сервера, -all в конце означает «все остальные — запретить». Именно -all (hard fail) даёт настоящую защиту; мягкий ~all (soft fail) слабее. Если почту от вашего домена отправляют и сторонние сервисы (например, рассылочный сервис), добавьте их через include:домен-сервиса. Ключевое правило SPF — не превышать лимит в 10 DNS-запросов внутри записи, иначе она перестанет работать; следите за числом include.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS под почтовый серверГенерация и публикация DKIM
DKIM (DomainKeys Identified Mail) подписывает каждое исходящее письмо приватным ключом, а публичный ключ публикуется в DNS. Получатель проверяет подпись публичным ключом и убеждается, что письмо не изменено и действительно от вашего домена. Ключ генерирует ваш почтовый сервер — через opendkim или Rspamd. Пример генерации ключа opendkim:
sudo opendkim-genkey -b 2048 -d вашдомен.ru -s mail
Команда создаёт приватный ключ (остаётся на сервере) и публичный в файле mail.txt — его содержимое публикуется в DNS. Запись выглядит так, где mail — селектор:
mail._domainkey.вашдомен.ru. TXT "v=DKIM1; k=rsa; p=MIGfMA0G...публичный_ключ..."
Селектор (mail) позволяет иметь несколько ключей и менять их со временем — это удобно для ротации: генерируете новый ключ с новым селектором, публикуете, переключаете подпись и только потом убираете старый, не прерывая доставку. Про длину ключа: 2048 бит сегодня стандарт и разумный выбор, 1024 считается слабоватым. Публикуя длинный ключ в DNS, следите, чтобы не вставились переносы строк и лишние пробелы — это самая частая причина, почему DKIM «не проходит». Некоторые DNS-панели сами разбивают длинную строку на части в кавычках, и это нормально: при проверке они склеиваются в единое значение. После публикации подключите подпись к серверу (opendkim как milter к Postfix или модуль dkim_signing в Rspamd) и проверьте, что письма реально подписываются.
Настройка DMARC поэтапно
DMARC (Domain-based Message Authentication) — TXT-запись, которая указывает получателям, что делать с письмами, не прошедшими SPF и DKIM, и куда слать отчёты. Главная мудрость здесь — вводить политику поэтапно, а не сразу жёстко. Начните с режима мониторинга, который ничего не блокирует:
_dmarc.вашдомен.ru. TXT "v=DMARC1; p=none; rua=mailto:dmarc@вашдомен.ru"
p=none означает «ничего не делай, только присылай отчёты». Отчёты на адрес из rua покажут, кто отправляет почту от вашего домена и проходит ли она проверки. Понаблюдав неделю-две и убедившись, что вся легитимная почта проходит SPF и DKIM, ужесточайте политику до p=quarantine (подозрительное в спам), а затем до p=reject (отклонять). Такой поэтапный путь защищает от катастрофы, когда строгая политика с самого начала режет ваши же письма из-за незамеченной ошибки в SPF или DKIM. Спешить с p=reject не нужно — сначала убедитесь, что всё чисто.
Проверка всех трёх записей
После настройки обязательно проверьте результат. Быстрый способ — отправить тестовое письмо на сервис оценки доставляемости (mail-tester и подобные): он проверит SPF, DKIM, DMARC, PTR и наличие IP в чёрных списках, выставив оценку и указав, что исправить. Отдельные записи можно проверить командой из консоли:
dig TXT вашдомен.ru +short
dig TXT mail._domainkey.вашдомен.ru +short
dig TXT _dmarc.вашдомен.ru +short
Убедитесь, что все три записи видны и корректны. Отправьте письмо на свой ящик в Gmail и посмотрите в исходниках письма строки spf=pass, dkim=pass, dmarc=pass — три pass означают, что всё настроено верно. Помните: фундамент доставляемости, помимо этих записей, — чистый IP и корректный PTR, которые обеспечивает провайдер. В MAATRIX можно арендовать VPS под почтовый сервер с чистым IP и настройкой PTR в России, США или Великобритании и оплатить картой РФ, по СБП, криптой или токеном MAAT — иностранная карта не нужна.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS под почтовый серверОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
В каком порядке настраивать SPF, DKIM и DMARC?
Сначала SPF и DKIM, чтобы почта проходила проверки, затем DMARC в мягком режиме p=none для мониторинга. Только убедившись, что легитимная почта проходит, ужесточайте DMARC до quarantine и reject.
Почему DKIM не проходит проверку?
Чаще всего при публикации ключа в DNS вставились переносы строк, лишние пробелы или указан неверный селектор. Запись должна точно повторять сгенерированный ключ, а селектор — совпадать с настройкой сервера.
-all или ~all в SPF?
-all (hard fail) даёт настоящую защиту, запрещая отправку с неуказанных серверов. ~all (soft fail) мягче и слабее. Используйте -all, предварительно перечислив все легитимные источники почты.
Обязательно ли начинать DMARC с p=none?
Настоятельно рекомендуется. Мягкий режим показывает через отчёты, вся ли ваша почта проходит проверки, и защищает от потери писем из-за скрытой ошибки. Жёсткий p=reject ставят, только убедившись, что всё чисто.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.