Как отключить «уведомление о недоставке отправителю» в postfix?

Вопрос или проблема

Я понимаю, что изменение следующей строки на “discard” вместо “bounce” в master.cf предотвратит уведомления о недоставке, но мне интересно, можно ли пойти дальше и отключить уведомления о недоставке только для электронных писем, которые были занесены в черный список через список доступа отправителей, вызываемый через smtpd_recipient_restrictions в main.cf.

bounce    unix  -       -       n       -       0       bounce

Это решение, вероятно, взято из Как настроить Postfix, чтобы никогда не отправлять NDR ответы?. Оно гласит:

Настоятельно рекомендуется не отключать NDR ответы на любом
почтовом сервере. Однако, возможно отключить NDR ответы в
Postfix, если вы этого хотите.

Позвольте мне объяснить. Ваше желание отключить Уведомления о Недоставке (NDN), также известные как bounce сообщения, вероятно, возникает из благого намерения избежать посылки обратного спама. Тем не менее, вам нужно иметь возможность информировать своих пользователей, если они отправляют почту на адреса с проблемами. Для этого вам нужно разделить пользователей SMTP сервера на две категории и обращаться с ними по-разному:

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

  2. Внешние пользователи, пытающиеся отправить почту пользователям на этом сервере, не должны получать сообщения NDN. Вместо этого вы должны использовать отклонение на стадии подключения, если получатель не существует, обратный адрес отправителя не проходит проверки антифальсификации (SPF, DKIM, DMARC) или отправитель находится в черном списке (либо домен обратного адреса, либо IP-адрес почтового сервера). Ответственность за информирование пользователей об этом коде ошибки и сообщении, данном во время подключения SMTP, лежит на отправляющем MTA, который должен действовать точно так, как описано в пункте №1. (Спамботы не будут заботиться об этом.)

Теперь, Postfix работает именно так, если вы настроили его правильно, т.е. он не должен быть открытой ретрансляцией. Обычно он делает большинство этого по умолчанию, если вы не изменяли эти параметры конфигурации по умолчанию (из Основной конфигурации Postfix):

  • По умолчанию, Postfix будет пересылать почту от клиентов в авторизованных сетевых блоках на любые назначения. Авторизованные сети определены с помощью параметра конфигурации mynetworks.

  • По умолчанию, Postfix будет пересылать почту от незнакомцев (клиентов за пределами авторизованных сетей) только на авторизованные удаленные назначения. Авторизованные удаленные назначения определены с помощью параметра конфигурации relay_domains. По умолчанию, авторизованы все домены (и поддомены доменов), перечисленные с параметром mydestination.

Что вам нужно настроить вручную, так это дальнейшие ограничения на доступ отправителей, так как по умолчанию smtpd_sender_restrictions пусты. Лично мне нравится комбинировать все ограничения (включая отправителей и smtpd_helo_restrictions HELO ограничений) как часть smtpd_recipient_restrictions. Все они все еще действуют оттуда, но проверки выполняются после того, как все три команды (HELO, MAIL FROM и RCPT TO) полностью обменены, что упрощает отладку в логах, если что-то пойдет не так.

Вот пример конфигурации для некоторых базовых проверок, которые вы могли бы выполнить. (Обратите внимание на комментарии.)

smtpd_recipient_restrictions =
    permit_mynetworks,
    reject_unauth_destination,
    reject_invalid_hostname,
    reject_unauth_pipelining,
    reject_non_fqdn_sender,
    reject_unknown_sender_domain,
    reject_non_fqdn_recipient,
    reject_unknown_recipient_domain,

    # Личные таблицы, используйте только, если вы добавили эти файлы.
    check_recipient_access hash:/etc/postfix/access/denied_recipients,
    check_sender_access hash:/etc/postfix/access/sender_access,
    check_client_access cidr:/etc/postfix/access/client_access.cidr,

    # SPF проверки антифальсификации. Требуются внешние SPF службы.
    check_policy_service unix:private/policy-spf,

    # Для минимизации ненужного использования, добавьте DNSBL после базовых проверок, например,
    reject_rbl_client sbl-xbl.spamhaus.org,

    permit

Как в ответе @EsaJokinen:

Настоятельно рекомендуется не отключать NDR ответы на любом почтовом сервере. Однако, возможно отключить NDR ответы в Postfix, если вы этого хотите.

Тем не менее, это сделает следующее:

main.cf

smtpd_recipient_restrictions =
    ...
    check_sender_access pcre:/etc/postfix/access_regex,
    ...

/etc/postfix/access_regex

Отклонения будут показывать “Spam Detected NNN” в ваших логах для устранения неполадок, если нужно:

/^\s*$/ REJECT                 Spam Detected 997
/^\s*<?MAILER-DAEMON>?\s*$/    Spam Detected 998
/^\s*<\s*>\s*$/                Spam Detected 999

.

Ответ или решение

Для отключения уведомлений о недоставке сообщений (NDN) в Postfix можно использовать различные конфигурационные подходы. Однако стоит помнить, что уведомления о недоставке имеют свою ценность, так как информируют отправителей, особенно локальных пользователей, о проблемах с доставкой их сообщений. Такие уведомления помогают в случае, если адрес был введен неверно, изменился, или почтовый ящик получателя переполнен.

Теория

Отправка уведомлений о недоставке от Postfix может создавать явление, известное как backscatter, когда недоставленные сообщения возвращаются отправителям, которые могли и не отправлять это письмо (чаще всего в результате подмены отправителя). Поэтому существует желание отключить NDR, но следует это делать осторожно.

Postfix использует файл master.cf для описания различных служб, в то время как файл main.cf конфигурирует более специфичные параметры, такие как ограничения на SMTP. По умолчанию, несовпадение адресов приводит к отправке NDR, что можно изменить на «discard» для полного отключения NDR.

Пример

Вы можете изменить строку в master.cf, заменив:

bounce    unix  -       -       n       -       0       bounce

на:

bounce    unix  -       -       n       -       0       discard

Эта строка изменяет поведение Postfix так, что он будет игнорировать недоставленные сообщения и не отправлять уведомления. Однако этот метод применим ко всем сообщениям и не дает гибкости в выборе, какие NDR сообщения еще отправлять.

Применение

Для более избирательного управления NDR и их отключения для сообщений от определенных отправителей, рекомендуется использовать smtpd_recipient_restrictions в файле main.cf. Это позволит настроить ограничения, которые будут использовать списки доступа, чтобы создавать различные политики для локальных и внешних пользователей.

Пример конфигурации в main.cf может быть таким:

smtpd_recipient_restrictions =
    permit_mynetworks,
    reject_unauth_destination,
    check_sender_access pcre:/etc/postfix/access_regex,
    reject_invalid_hostname,
    reject_unauth_pipelining,
    reject_non_fqdn_sender,
    reject_unknown_sender_domain,
    reject_non_fqdn_recipient,
    reject_unknown_recipient_domain,
    check_recipient_access hash:/etc/postfix/access/denied_recipients,
    check_client_access cidr:/etc/postfix/access/client_access.cidr,
    check_policy_service unix:private/policy-spf,
    reject_rbl_client sbl-xbl.spamhaus.org,
    permit

В этом примере добавлен файл /etc/postfix/access_regex, который использует PCRE (Perl Compatible Regular Expressions) для более гибкого управления доступом:

/^\s*$/ REJECT                  Spam Detected 997
/^\s*<MAILER-DAEMON>\s*$/       Spam Detected 998
/^\s*<>\s*$/                    Spam Detected 999

Эти регулярные выражения позволяют отклонять сообщения, приходящие от MAILER-DAEMON или с нулевым отправителем, которые часто используются для генерации NDR сообщений. В логах все отклоненные сообщения будут сопровождаться сообщением «Spam Detected», что облегчит диагностику.

Заключение

Полностью отключать NDR не рекомендуется из-за рисков и неудобств, которые это может причинить легитимным пользователям. Лучше использовать корректную настройку Postfix для минимизации backscatter и внедрить ограничения таким образом, чтобы, например, локальные пользователи были информированы о проблемах, в то время как внешние пользователи не получали таких уведомлений без необходимости.

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

Оцените материал
Добавить комментарий

Капча загружается...