Zimbra 8.04 policyd... Квота сообщений подсчитывается по количеству получателей

Я столкнулся с проблемой поведения, которую не вижу, как исправить.

Я настроил Zimbra (8.0.4) с policydпосле этого урока

Шаг 1: Создайте политику
Шаг 2: Создать группу (list_domain)
Шаг 3: Добавить домен в группу (@example.com)
Шаг 4. Добавьте участника в политику (из: %list_domain, чтобы: any)
Шаг 5: Добавить квоту (трек: Sender: user@domainПериод: 60Приговор: defer)
Шаг 6: Добавьте ограничение к квоте (введите: messageCount, Предел: 5)

И, привет, Престо. Работает!!!

НО

Счетчики квот увеличиваются на количество получателей. То есть, если я отправлю одно почтовое сообщение 6 получателям, оно будет заблокировано.

Вопрос

Что я должен изменить для того, чтобы поликлид отслеживал количество сообщений вместо количества получателей?

ОБНОВИТЬ

Вот некоторые относительные журналы сервера, где вся конфиденциальная информация была заменена мнимыми данными.

mailbox.log аннотация

2015-09-02 10:58:44,980 INFO  [qtp126151468-4888876] [name=account@domain.com;mid=537;ip=xx.xx.xx.xx;ua=ZimbraWebClient - FF40 (Win)/8.0.7_GA_6021;] smtp - Sending message to MTA at server.domain.com: Message-ID=<1187019100.8600745.14411807248
66.JavaMail.zimbra@domain.com>, origMsgId=101f0b66-b103-4161-8767-7ab1e00ffffd:1279544, replyType=w
2015-09-02 10:58:45,206 WARN  [qtp126151468-4888876] [name=account@domain.com;mid=537;ip=xx.xx.xx.xx;ua=ZimbraWebClient - FF40 (Win)/8.0.7_GA_6021;] smtp - Failed to send message
com.zimbra.cs.mailclient.smtp.InvalidRecipientException: RCPT failed: Invalid recipient acc5@otherdomain.com: 450 4.7.1 <account@domain.com>: Sender address rejected: Deferring: Too many messages from sender in last 60
        at com.zimbra.cs.mailclient.smtp.SmtpConnection.rcpt(SmtpConnection.java:680)
        [........]

cbpolicyd.log аннотация

[2015/09/02-10:58:45 - 28180] [CORE] INFO: module=Quotas, mode=create, host=yy.yy.yy.yy, helo=server.domain.com, from=account@domain.com, to=acc1@otherdomain.com, reason=quota_create, policy=6, quota=3, limit=4, track=Sender:account@domain.com, counter=MessageCount, quota=1.00/3 (33.3%)
[2015/09/02-10:58:45 - 28180] [CORE] INFO: module=Quotas, mode=update, host=yy.yy.yy.yy, helo=server.domain.com, from=account@domain.com, to==acc2@otherdomain.com, reason=quota_update, policy=6, quota=3, limit=4, track=Sender:account@domain.com, counter=MessageCount, quota=2.00/3 (66.7%)
[2015/09/02-10:58:45 - 28180] [CORE] INFO: module=Quotas, mode=update, host=yy.yy.yy.yy, helo=server.domain.com, from=account@domain.com, to==acc3@otherdomain.com, reason=quota_update, policy=6, quota=3, limit=4, track=Sender:account@domain.com, counter=MessageCount, quota=3.00/3 (100.0%)
[2015/09/02-10:58:45 - 28180] [CORE] INFO: module=Quotas, mode=update, host=yy.yy.yy.yy, helo=server.domain.com, from=account@domain.com, to==acc4@otherdomain.com, reason=quota_update, policy=6, quota=3, limit=4, track=Sender:account@domain.com, counter=MessageCount, quota=4.00/3 (133.3%)
[2015/09/02-10:58:45 - 28180] [CORE] INFO: module=Quotas, action=defer, host=yy.yy.yy.yy, helo=server.domain.com, from=account@domain.com, to==acc5@otherdomain.com, reason=quota_match, policy=6, quota=3, limit=4, track=Sender:account@domain.com, counter=MessageCount, quota=5.00/3 (166.7%)

Наш сервер zimbra не выступает в роли агента ретрансляции, он использует внешнюю службу в нашей локальной сети для доставки сообщений во внешние домены. Таким образом, все исходящие сообщения, которые должны быть доставлены во внешние домены, передаются внешнему mta в одном элементе очереди.

Таким образом, каждое сообщение становится одним и только одним элементом очереди для внешнего mta/relay, независимо от количества получателей в нем.

1 ответ

Решение

Нет нельзя

Счетчики квот увеличиваются на количество получателей. То есть, если я отправлю одно почтовое сообщение 6 получателям, оно будет заблокировано. Что я должен изменить для того, чтобы поликлид отслеживал количество сообщений вместо количества получателей?

Конечно это будет заблокировано. Когда вы отправляете электронное письмо 6 получателям, в основном postfix (в Zimbra) отправит копию вашего электронного письма 6 получателям. Итак, cbpolicyd также считает это как 6 сообщений.

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

  • Они могут отправлять электронную почту 6 получателям одновременно за один сеанс SMTP или
  • Они могут отправлять электронную почту для каждого получателя в каждом сеансе SMTP

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


Дополнительное примечание:

Я могу подтвердить, что это поведение было задумано в cbpolicyd. Доказательства получены из исходного кода cbpolicyd, особенно в файлах cbp/modules/Quotas.pm строка 192. По сути, cbpolicyd будет увеличивать счетчик в каждом RCPT TO этап. Итак, сейчас вы не можете сделать это с помощью полисида.

Другие вопросы по тегам