Назад | Перейти на главную страницу

Zimbra 8 policyd failed SMTP логин увеличивает счетчик квоты

Я пытаюсь настроить политику в Zimbra, которая устанавливает максимальное количество исходящих писем для данного отправителя (пользователь @ домен). Я тестировал его с помощью простого скрипта для входа на SMTP-сервер и отправки тестового письма. Я заметил, что если я пропустил информацию для входа в систему, запрос SMTP был отклонен (Ошибка авторизации), но счетчик политик квоты все равно увеличивался!

Есть ли способ предотвратить неудачные попытки входа в систему до достижения политики? Я беспокоюсь, что это может быть использовано как DOS-атака.

Введение

Zimbra - это электронная почта и костюмы для совместной работы. Он использует постфикс как MTA. Вы можете дополнительно включить policyd для предоставления ограничивающих функций, таких как квота или дросселирование.

Каждую конфигурацию можно изменить через веб-интерфейс или интерфейс командной строки. Прямое редактирование файла конфигурации / базы данных не должно выполняться. Zimbra может перезаписать его при обновлении или перезапуске.

Включение policyd

В соответствии с эта страница, мы можем включить policyd, выполнив только две командные строки.

В фоновом режиме zimbra изменит конфигурацию постфикса. Здесь postconf -n вывод до и после включения политики.

smtpd_client_restrictions = reject_unauth_pipelining
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_end_of_data_restrictions =
smtpd_etrn_restrictions =
smtpd_helo_restrictions =
smtpd_recipient_restrictions = yreject_non_fqdn_recipient, permit_sasl_authenticated, permit_mynetworks, reject_unlisted_recipient, reject_invalid_helo_hostname,  reject_non_fqdn_sender, permit
smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_restriction_classes =
smtpd_sender_restrictions =

После

smtpd_client_restrictions = reject_unauth_pipelining
smtpd_data_restrictions = reject_unauth_pipelining
smtpd_end_of_data_restrictions = check_policy_services 127.0.0.1:10031
smtpd_etrn_restrictions =
smtpd_helo_restrictions =
smtpd_recipient_restrictions = check_policy_services 127.0.0.1:10031, reject_non_fqdn_recipient, permit_sasl_authenticated, permit_mynetworks, reject_unlisted_recipient, reject_invalid_helo_hostname,  reject_non_fqdn_sender, permit
smtpd_relay_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_restriction_classes =
smtpd_sender_restrictions = check_policy_services 127.0.0.1:10031

Анализ

Поведение, которое произошло в вашей зимбре, можно объяснить после анализа вывода postconf -n. На этапе smtpd_sender_restrictions zimbra уже связывается с policyd (с помощью check_policy_services). На этом этапе счетчик уже увеличивался. На этапе smtpd_relay_restrictions постфикс отклоняет электронную почту, выдав сообщение об ошибке «авторизация не удалась».

Решение

На основе анализа, приведенного выше, этого поведения можно избежать, удалив check_policy_services в smtpd_sender_restrictions. Postfix по-прежнему вызывает check_policy_services в smptd_recipient_restrictions.

Отказ от ответственности:

  • Это относилось к версии Zimbra 8.0.7. Возможно, в другой версии этой ошибки нет.
  • Как указано выше, прямое редактирование файла конфигурации официально не поддерживается. Может быть, есть дизайнерская причина, по которой Zimbra разместила политику раньше, и прямое редактирование может ее нарушить. В целях безопасности вы можете опубликовать его в службе поддержки zimbra и обсудить с разработчиками zimbra.