Catch-all ящик принимает все письма на домен, даже если получателя нет. Вместо отказа для typo@yourdomain.com с ошибкой 550 сервер принимает сообщение. Это спасает письма с опечаткой, но также пропускает спам, фишинг и перебор адресов. Доставка и восстановление писем не гарантируются.
Без ограничений catch-all способен быстро ухудшить репутацию отправителя. Настройка проста, а безопасная эксплуатация требует изоляции и контроля.
Ниже описаны три схемы для Microsoft 365, Linux и Google Workspace. Если необходимость функции неясна, сначала прочитайте о catch-all почте домена.
Что такое catch-all ящик?
Это единый ящик для писем на несуществующие адреса домена. Сообщение для misspelled-name@yourdomain.com не отклоняется, а попадает в назначенный ящик, если остальная цепочка доставки его принимает.
Сервер начинает принимать намного больше трафика. Спам-боты, фишинг и автоматический перебор каталогов также получают ответ 250 OK. Без изоляции они смешиваются с обычной почтой и могут повредить репутации домена.
Главное правило: не направлять в основной ящик
Catch-all трафик может обходить Directory-Based Edge Blocking (DBEB), поэтому сервер принимает содержимое до проверки получателя. Маршрутизация в ceo@company.com или другой рабочий ящик создает угрозу безопасности.
Все схемы следуют принципу: изолируйте catch-all трафик от рабочей почты.
Схема 1: карантин (Microsoft 365 / Exchange)
Подходит организациям, которым нужно хранить catch-all письма для юридических задач или поиска, но не нужны постоянные уведомления. Срок хранения, доступ и приватность настраиваются отдельно.
Как это работает
- Прием - Сервер принимает письмо неизвестному получателю.
- Метка - Транспортное правило выявляет внешнее письмо без действующего пользователя.
- Подавление - Правило устанавливает Spam Confidence Level (SCL) в 9.
- Хранение - Письмо идет в общий ящик, например
catchall-sink@yourdomain.com.
Настройка PowerShell
В Exchange Admin Center задайте домену режим "Internal Relay", отключающий DBEB, затем выполните:
# Create the sink (shared mailbox - no license needed)
New-Mailbox -Shared -Name "CatchAll Sink" -PrimarySmtpAddress catchall-sink@yourdomain.com
# Create the transport rule
New-TransportRule -Name "Catch-All Routing & Suppression"
-FromScope "NotInOrganization"
-SentTo "catchall-sink@yourdomain.com"
-RedirectMessageTo "catchall-sink@yourdomain.com"
-SetSCL 9
-ExceptIfRecipientBelongsTo "All Valid Users Group"
Почему SCL 9? Без него ящик заполняется уведомлениями. SCL 9 помещает сообщения в спам. Проверяйте их с периодичностью, соответствующей вашей политике хранения.
Схема 2: поток с меткой (Postfix / Linux)
В собственном стеке Postfix/Dovecot отдельный ящик может быть лишним. Добавьте заголовок и сортируйте письма клиентским или Sieve-правилом.
Как это работает
- Прием -
luser_relayпринимает письмо неизвестному локальному получателю. - Изменение - MTA добавляет заголовок
X-Catch-All: True. - Фильтрация - Sieve перемещает письмо в отдельную папку.
Настройка Postfix
# /etc/postfix/main.cf
# Route unknown local users to a specific alias
luser_relay = catchall_alias
# /etc/postfix/virtual
# Map the alias to a real user
catchall_alias realuser@yourdomain.com
Важно: luser_relay работает только с локальными доменами. Для нескольких виртуальных доменов используйте virtual_alias_maps с шаблоном:
# /etc/postfix/virtual
@example.com realuser@example.com
При одновременной настройке пересылки почты убедитесь, что виртуальные карты не конфликтуют. Пересечения часто ведут к неверной маршрутизации.
Фильтр Sieve
Не разделяйте catch-all письма вручную, автоматизируйте:
if header :contains "X-Original-To" "catchall_alias" {
fileinto "Junk/CatchAll";
stop;
}
Схема 3: частичный шаблон (regex-маршрутизация)
Если полный catch-all не нужен, вместо любого *@domain.com принимайте только заданные шаблоны, например sales-*@domain.com, а остальные отклоняйте.
Как это работает
MTA или провайдер принимает адреса по регулярному выражению, например sales-webinar@ и sales-q1@, но отклоняет рискованные admin@ и hr@.
Настройка Google Workspace
- Откройте Apps > Google Workspace > Gmail > Default Routing.
- В Specify Envelope Recipients выберите "Pattern Match".
- Введите выражение:
^sales-.*@yourdomain\.com$ - Измените получателя конверта на
sales-team@yourdomain.com.
Результат: sales-promo@yourdomain.com принимается, а admin@yourdomain.com получает отказ 550. Это заметно сокращает, но не устраняет поверхность для атак перебором каталога.
Чтобы адреса работали как почтовые алиасы, частичные шаблоны можно сочетать с пересылкой, проверив аутентификацию и защиту от циклов.
Как предотвратить цикл маршрутизации
Одна из самых опасных ошибок catch-all: цикл маршрутизации. Он возникает так:
- Catch-all принимает письмо для
ghost@domain.com. - Правило пересылает его на
external@gmail.com. - Gmail отклоняет письмо из-за SPF/DMARC.
- Gmail возвращает NDR на
ghost@domain.com. - Catch-all принимает уведомление.
- Правило снова пересылает его в Gmail.
- Повторение идет до превышения
MaxHopCount.
Появляются ошибки 5.4.14 Hop count exceeded или 5.4.6 Routing loop detected. На загруженном домене это способно увеличить исходящую очередь и вызвать спам-блокировки.
Проверка защиты
- Проверяйте заголовки - MTA должен учитывать
X-LoopиDelivered-To. - Блокируйте автоответы - Пропускайте мимо catch-all правил письма с
Auto-Submitted: auto-generated. - Особенность Microsoft 365 - Политика исходящего спама обычно блокирует внешнюю пересылку с ошибкой
5.7.520 Access denied. Разрешение повышает риск обратного спама, поэтому оцените последствия и актуальную документацию Microsoft.
Подробнее о различиях провайдеров читайте в руководстве по пересылке почтовых алиасов.
Почему большинство catch-all ящиков не нужны
Компании нередко включают catch-all ради экономии на лицензиях. Когда нужны support@, billing@ и jobs@, но не хочется платить Google или Microsoft $18/month за пользователя, это кажется обходным путем. Указанная цена является примером и может измениться.
На практике это технический долг с возможным ущербом репутации.
Альтернатива: провайдер без оплаты за пользователя. По описанной здесь текущей модели TrekMail использует общий пул хранилища:
- Тариф Nano - $0, карта не требуется.
- Starter - $3.50/mo и 14-day пробный период.
- Pro - $10/mo и 14-day пробный период.
- Agency - $23.25/mo и 14-day пробный период.
Создайте support@, billing@ и jobs@ как настоящие ящики или алиасы собственного домена. Корректные записи каталога позволяют серверу отклонять неизвестных получателей ответом 550 на границе. Это помогает репутации, но не гарантирует ее. Транспортные правила, Sieve и regex часто становятся не нужны.
При управлении несколькими доменами оцените риски catch-all обходов. Функция catch-all TrekMail дает страховку, но все равно требует подходящих DNS, аутентификации, хранилища и защиты от спама.
Итоги
Catch-all ящик не плох сам по себе. Опасен вариант без защиты. Выберите изоляцию под свой стек: карантин для Exchange, поток с меткой для Postfix или частичный шаблон для Workspace. Не смешивайте его с рабочей почтой.
Либо используйте провайдера, где настоящие адреса достаточно доступны в подходящем тарифе. Перед решением проверьте актуальные цены и ограничения.
Поделиться статьёй