Null MX: как защитить домен, который не принимает почту
У большинства компаний есть домены, которые не используются для электронной почты. Лендинги, редиректы, технические поддомены, припаркованные домены. По умолчанию любой из них может стать точкой входа для спама и спуфинга. Одна DNS-запись закрывает эту дыру раз и навсегда.
Проблема: домен без почты - не значит домен без угроз
Допустим, у вас есть домен promo.example.com, на котором висит рекламный лендинг. Почту он не принимает и не отправляет. Кажется, что беспокоиться не о чем.
Но SMTP-протокол так не думает. Если у домена нет MX-записи, отправляющий сервер по RFC 5321 пробует fallback: ищет A-запись или AAAA-запись домена и пытается доставить почту напрямую на этот IP. У лендинга почти всегда есть A-запись - иначе сайт не работал бы. Это означает, что кто угодно может попробовать отправить письмо на адрес anything@promo.example.com.
На практике это создаёт две проблемы. Первая - бэкскаттер. Спамеры подставляют адреса на вашем домене в поле «From». Когда принимающий сервер отвергает письмо, он генерирует bounce-уведомление и шлёт его вам. Вы получаете тысячи писем о недоставке сообщений, которые никогда не отправляли.
Вторая проблема - репутационный ущерб. Если злоумышленник рассылает фишинг от имени вашего домена, а вы не настроили ни SPF, ни DMARC (потому что «зачем, мы же не шлём почту»), у получателей нет способа отличить поддельное письмо от настоящего.
Что такое Null MX
RFC 7505, опубликованный в 2015 году, вводит механизм Null MX - способ явно сообщить всем почтовым серверам в интернете: «Этот домен не принимает электронную почту. Не пытайтесь доставлять. Не тратьте ресурсы.»
Запись выглядит так:
example.com. IN MX 0 .
Приоритет 0, hostname - точка. Точка в DNS означает корень зоны, по сути - «ничто». Это единственная MX-запись для домена: никаких дополнительных MX рядом с ней быть не должно.
Когда отправляющий сервер получает такой ответ, он обязан прекратить попытки доставки. Никакого fallback на A-запись, никаких повторных попыток. Адрес отклоняется немедленно. Для SMTP-клиента это эквивалент ответа 556 - «домен не принимает почту».
Как работает Null MX на уровне протокола
Без Null MX процесс доставки на домен без почтового сервера выглядит так:
- Отправитель запрашивает MX-записи для
example.com - DNS возвращает пустой ответ (NODATA) или NXDOMAIN
- По RFC 5321 отправитель ищет A/AAAA-запись домена
- Находит IP (например, 93.184.216.34 - веб-сервер)
- Пытается установить SMTP-соединение на порт 25
- Соединение отклоняется или уходит в таймаут
- Письмо помещается в очередь на повторную отправку
- Повторные попытки продолжаются 1-5 дней
Восемь шагов. Дни ожидания. Нагрузка на обе стороны. С Null MX процесс сокращается до двух шагов:
- Отправитель запрашивает MX-записи для
example.com - DNS возвращает
MX 0 .- отправитель немедленно генерирует bounce
Один DNS-запрос, мгновенный отказ. Никаких повторных попыток, никаких зависших соединений, никакой нагрузки на ваш веб-сервер.
Как настроить Null MX
Настройка занимает пять минут. Вам нужен доступ к DNS-панели домена - Cloudflare, Route 53, любой регистратор.
Шаг 1. Добавьте Null MX запись
Создайте MX-запись для домена с приоритетом 0 и значением . (точка). Удалите все остальные MX-записи, если они есть.
; Null MX - домен не принимает почту example.com. IN MX 0 .
В Cloudflare это поле «Name» = ваш домен, «Priority» = 0, «Mail server» = точка. Некоторые панели не позволяют ввести точку напрямую. В этом случае используйте BIND-синтаксис через API или обратитесь в поддержку.
Шаг 2. Добавьте SPF-запись, запрещающую отправку
Null MX говорит «не принимаем». SPF с -all говорит «не отправляем». Вместе они перекрывают оба направления.
example.com. IN TXT "v=spf1 -all"
Эта запись предельно короткая: никаких include, никаких разрешённых IP. Только жёсткий отказ для всех.
Шаг 3. Добавьте DMARC с политикой reject
Для домена без почты нет причин начинать с p=none. Вы точно знаете, что никто не должен слать письма от этого домена. Сразу p=reject.
_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@yourdomain.com"
Адрес в rua укажите на вашем основном домене, который почту принимает. Отчёты покажут, пытается ли кто-то использовать этот домен для отправки.
Итоговый набор записей
Три записи - полная защита домена без почты:
; 1. Не принимаем почту example.com. IN MX 0 . ; 2. Не отправляем почту example.com. IN TXT "v=spf1 -all" ; 3. Отклоняем всё, что притворяется нами _dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@yourdomain.com"
Как проверить, что Null MX работает
После добавления записей подождите, пока TTL старых записей истечёт (обычно от 5 минут до нескольких часов). Потом проверьте.
dig
$ dig MX example.com +short 0 .
Ответ 0 . - Null MX настроен корректно. Если в ответе есть другие MX-записи рядом с Null MX, конфигурация невалидна. Null MX должен быть единственной записью.
Полный вывод dig
$ dig MX example.com ;; QUESTION SECTION: ;example.com. IN MX ;; ANSWER SECTION: example.com. 3600 IN MX 0 . ;; Query time: 24 msec ;; SERVER: 8.8.8.8#53(8.8.8.8)
Обратите внимание на TTL (3600 секунд = 1 час). Для Null MX имеет смысл ставить высокий TTL - запись не будет меняться, а длинный TTL уменьшает количество DNS-запросов.
Проверка SPF
$ dig TXT example.com +short "v=spf1 -all"
Проверка DMARC
$ dig TXT _dmarc.example.com +short "v=DMARC1; p=reject; rua=mailto:dmarc@yourdomain.com"
Все три запроса возвращают ожидаемые значения - домен защищён.
Какие домены нуждаются в Null MX
Любой домен или поддомен, на котором нет и не будет почтовых ящиков. Конкретнее:
- Припаркованные домены. Вы купили домен про запас или для защиты бренда. Сайта нет, почты нет. Без Null MX спамеры могут использовать его в поле From.
- Поддомены для сервисов.
cdn.example.com,static.example.com,api.example.com. Технические поддомены, которые обслуживают трафик, но не почту. - Лендинги и промо-домены. Домен для рекламной кампании, который живёт месяц. Почту через него никто не отправляет.
- Домены с редиректом. Старый домен компании, который перенаправляет на новый. Почта давно переехала, но DNS-записи остались.
- Домены-тайпосквоты. Вы зарегистрировали распространённые опечатки вашего основного домена. Ни на одном из них почты быть не должно.
Null MX и валидация email-адресов
Для сервисов проверки email Null MX - однозначный сигнал. Если домен возвращает MX 0 ., любой адрес на этом домене невалиден. Не «рискованный», не «требует дополнительной проверки» - невалиден. Никакого fallback, никаких попыток SMTP handshake.
Это выгодно отличает Null MX от отсутствия MX-записи. Когда MX-записей нет вообще, валидатор должен проверять A-запись, пытаться подключиться, ждать таймаут. С Null MX проверка занимает миллисекунды: один DNS-запрос, моментальный отказ.
Если вы собираете email-адреса через форму регистрации и кто-то вводит адрес на домене с Null MX, валидатор отклонит его на самом раннем этапе. Это экономит ресурсы и защищает вашу базу от мусора.
Null MX vs. отсутствие MX-записей
Это принципиально разные ситуации, хотя на первый взгляд результат одинаковый - «почта не доставляется».
Нет MX-записей (NODATA). Отправитель обязан использовать fallback по RFC 5321: искать A/AAAA-запись, пытаться подключиться на порт 25. Процесс медленный, ресурсоёмкий и непредсказуемый. Некоторые серверы будут повторять попытки днями.
Null MX (MX 0 .). Явный отказ. Fallback запрещён. Отправитель должен немедленно прекратить попытки и сгенерировать bounce. Это чистый, однозначный сигнал.
# Домен без MX - fallback на A-запись $ dig MX no-mail-configured.com +short (пустой ответ) $ dig A no-mail-configured.com +short 93.184.216.34 # Отправитель попробует порт 25 на этом IP # Домен с Null MX - моментальный отказ $ dig MX null-mx-configured.com +short 0 . # Отправитель немедленно генерирует bounce
Аналогия: отсутствие MX - закрытая дверь без таблички. Посетители стучат, ждут, уходят, приходят снова. Null MX - табличка «Мы здесь не живём», которую видно с улицы.
Совместимость и поддержка
RFC 7505 опубликован больше десяти лет назад. Все современные почтовые серверы его поддерживают: Postfix, Exim, Microsoft Exchange, Gmail, Yahoo Mail, Mail.ru, Яндекс Почта. Если отправляющий сервер встречает Null MX, он корректно обрабатывает отказ.
Единственный нюанс - совсем старое программное обеспечение. Серверы, написанные до 2015 года и не обновлявшиеся с тех пор, могут не распознать Null MX и перейти к fallback на A-запись. Но таких серверов в 2026 году осталось крайне мало, и для них у вас есть SPF -all и DMARC p=reject как дополнительные уровни защиты.
Частые ошибки при настройке
- Null MX + другие MX-записи. RFC 7505 требует, чтобы Null MX был единственной MX-записью. Если рядом стоит
MX 10 mail.example.com, конфигурация невалидна и поведение непредсказуемо. - Приоритет не равен нулю. Запись
MX 10 .- не Null MX. По RFC приоритет должен быть строго 0. Некоторые серверы обработают и ненулевой приоритет, но полагаться на это нельзя. - Забыли про SPF и DMARC. Null MX закрывает входящую почту. Но исходящую (поддельную) он не блокирует. Без SPF и DMARC домен остаётся уязвимым к спуфингу.
- Поставили Null MX на домен с активной почтой. Очевидно, но встречается. Перед добавлением Null MX убедитесь, что на домене нет ни одного почтового ящика. Проверьте через
dig MXтекущее состояние. - DNS-панель не принимает точку. Некоторые регистраторы с упрощённым интерфейсом не позволяют ввести
.в поле MX. Решение - использовать API (Cloudflare API, Route 53 API) или перейти на DNS-провайдера с полной поддержкой RFC.
Проверка Null MX в bash-скрипте
Если у вас десятки доменов, проверять каждый вручную непрактично. Простой скрипт для массовой проверки:
#!/bin/bash
# check-null-mx.sh — проверка Null MX для списка доменов
DOMAINS="promo.example.com cdn.example.com old.example.com"
for domain in $DOMAINS; do
mx=$(dig MX "$domain" +short 2>/dev/null)
if [ -z "$mx" ]; then
echo "[$domain] ВНИМАНИЕ: нет MX-записей (fallback на A)"
elif echo "$mx" | grep -q "^0 \.$"; then
echo "[$domain] OK: Null MX настроен"
else
echo "[$domain] ВНИМАНИЕ: есть MX-записи — $mx"
fi
done$ bash check-null-mx.sh [promo.example.com] OK: Null MX настроен [cdn.example.com] ВНИМАНИЕ: нет MX-записей (fallback на A) [old.example.com] ВНИМАНИЕ: есть MX-записи — 10 mail.old.example.com.
Два домена из трёх требуют внимания: на одном нет MX-записей (действует fallback), на другом стоят рабочие MX, хотя почта не используется.
Полная защита домена без почты: чеклист
Null MX - часть комплекса мер. Вот полный набор DNS-записей для домена, который не должен ни принимать, ни отправлять электронную почту:
- MX:
0 .- не принимаем входящую почту - SPF:
v=spf1 -all- никому не разрешено отправлять от нашего имени - DMARC:
v=DMARC1; p=reject- отклонять все неаутентифицированные письма - DKIM: не публикуйте DKIM-ключи. Отсутствие ключа = невозможность подписать письмо = fail при проверке
- MTA-STS: не требуется. MTA-STS настраивается для доменов, которые принимают почту и хотят гарантировать TLS
Пример: настройка через Cloudflare API
Если графический интерфейс вашего DNS-провайдера не поддерживает ввод точки в поле MX, используйте API. Пример для Cloudflare:
curl -X POST "https://api.cloudflare.com/client/v4/zones/{zone_id}/dns_records" \
-H "Authorization: Bearer {api_token}" \
-H "Content-Type: application/json" \
--data '{
"type": "MX",
"name": "example.com",
"content": ".",
"priority": 0,
"ttl": 86400
}'TTL 86400 (сутки) - разумное значение для записи, которая не меняется. Уменьшает количество DNS-запросов от почтовых серверов, которые проверяют ваш домен.
Итого
Null MX - простой и эффективный инструмент. Одна DNS-запись превращает домен из потенциальной цели для спуфинга в закрытую дверь с табличкой. Настройка занимает минуты. Поддерживается всеми современными почтовыми серверами. В сочетании с SPF -all и DMARC p=reject обеспечивает полную защиту домена, который не участвует в электронной переписке.
Если у вашей компании есть неиспользуемые домены или технические поддомены без почты - проверьте их прямо сейчас. Одна команда dig MX yourdomain.com +short покажет текущее состояние. Если ответ пустой - домен уязвим. Пять минут на настройку Null MX, SPF и DMARC закрывают эту уязвимость навсегда.
Проверьте свои домены
Null MX защищает домены, которые не принимают почту. А что насчёт доменов, которые принимают? Если в вашей email-базе есть адреса на доменах с Null MX, каждая отправка на них - зря потраченный ресурс и удар по bounce rate.
Загрузите список в uChecker - сервис проверяет MX-записи, обнаруживает Null MX, выполняет SMTP-валидацию и AI-скоринг. За минуты вы увидите, какие адреса доставляемы, а какие нужно удалить.
