Вопрос или проблема
Мы недавно изменили sieve_redirect_envelope_from
на orig_recipient
, чтобы исправить перенаправления sieve в случае, если пересланное письмо приходит из домена с поддержкой DMARC.
Хотя это работает хорошо, это создает новую проблему: если почтовый сервер получателя (тот, кто отвечает за место назначения перенаправления) реагирует письмом с уведомлением о недоставке, это уведомление теперь будет отправлено на orig_recipient
– адрес электронной почты, на котором установлено перенаправление. Это означает создание почтовой бомбы (бесконечная почтовая петля).
Смотрите следующий пример:
- [email protected] отправляет письмо на [email protected]
- [email protected] имеет перенаправление sieve на [email protected]
- [email protected] отвечает с уведомлением о недоставке, так как их почтовый ящик переполнен.
- Письмо с уведомлением отправляется на [email protected].
- Цикл начинается снова с шага 2.
Можно ли настроить dovecot/pigeonhole так, чтобы не перенаправлять уведомления о недоставке с шага 4 снова?
Вероятно, можно добавить ручные дополнительные проверки в правила перенаправления sieve, но это потребует соблюдения со стороны любого пользователя, который настраивает перенаправление. Поэтому я больше ищу изменение конфигурации на уровне сервера, которое решит эту проблему.
С нетерпением жду ваших мыслей по поводу этой проблемы.
Ответ или решение
Введение: Проблема, связанная с настройкой параметра sieve_redirect_envelope_from
в Dovecot/Pigeonhole, возникла в результате изменения его значения на orig_recipient
с целью исправления пересылки писем из доменов с включенной политикой DMARC. Однако такое изменение создает риск формирования почтовых "бомб" из-за образования цикла ответных писем при возникновении ошибок передачи. Ниже приведено подробное объяснение проблемы и возможные решения для её предотвращения.
Теория
DMARC и переадресация писем:
DMARC — это технология, которая позволяет владельцам доменов защищать свои адреса электронной почты от несанкционированного использования, например, от фишинга. При пересылке писем с адресов, защищённых DMARC, отправителем в заголовке From может указываться адрес, не принадлежащий серверу пересылки, что приводит к несоответствию DMARC. В связи с этим, пересылаемые письма часто блокируются или помечаются как спам.
Проблема цикла и почтовых "бомб":
Ключевая проблема при использовании orig_recipient
заключается в том, что сообщения об ошибках, возникающих, например, при переполнении почтового ящика получателя, возвращаются по адресу, который задал переадресацию. Это создает потенциальный бесконечный цикл повторных попыток доставки.
Пример
Рассмотрим следующую последовательность:
- Пользователь
[email protected]
отправляет электронное сообщение на адрес[email protected]
. - Почтовый ящик
[email protected]
настроен на пересылку писем на[email protected]
с использованием sieve-сценария. - Сервер, обслуживающий почтовый ящик
[email protected]
, отвечает с Bounce-сообщением из-за переполненного ящика. - Bounce-сообщение отправляется обратно на адрес
[email protected]
. - Цикл повторяется, начиная с шага 2.
Решение
-
Использование "Sieve Filtering":
Можно настроить правила фильтрации Sieve, исключающие обработку Bounce-сообщений. Это можно реализовать, определив условия для игнорирования сообщений с заголовками, характерными для Bounce-сообщений (например,
Auto-Submitted
,Return-Path
). -
Обработка "List-Id" и других заголовков:
Некоторые сервера говорят о своем автоматическом ответе при помощи встроенных заголовков Email. Эти сведения могут быть использованы при настройке фильтрации.
-
Внедрение серверных политик:
Необходимо установить серверные политики, которые позволят выполнять проверку отправленных писем перед их повторной пересылкой. Можно предусмотреть серверный скрипт, который бы проверял заголовки входящих писем и определял их как не отправляемые далее Bounce-письма.
-
Дополнительные механизмы защиты:
Также можно установить лимиты на количество пересылаемых автоматически писем в час или день для одного пользователя.
-
Обновление Dovecot/Pigeonhole:
Возможно, основной механизм по работе с DMARC и пересылкой имеет обновления или патчи, исправляющие рассматриваемую проблему. Рекомендуется постоянно актуализировать версию используемого программного обеспечения.
Заключение: Решение проблемы требует комплексного подхода, включающего корректировку правил Sieve-фильтрации, реализацию серверных политик и использование современных возможностей, предоставляемых Dovecot/Pigeonhole для управления пересылкой. Внедрение таких мер позволит минимизировать риск возникновения почтовых "бомб" и улучшить надежность и безопасность работы почтового сервера.