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

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

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

Step1: Создайте политику
Step2: Создайте группу (list_domain)
Step3: Добавьте домен к группе (@example.com)
Step4: Добавьте участника к политике (от: %list_domain, к: any)
Step5: Добавьте квоту (дорожка: Sender: user@domain, Период: 60, вердикт: defer)
Step6: Добавьте предел квоте (Тип: messageCount, Предел: 5)

И, эй престо. Это работает!!!

НО

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

Вопрос

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

ОБНОВЛЕНИЕ

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

Краткий обзор 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 сервер не действует как агент ретрансляции, он использует внешний сервис в нашей LAN для передачи сообщений к внешним доменам. Так, все исходящие сообщения, которые должны быть переданы к внешним доменам, передаются к внешнему mta в одном единственном объекте очереди.

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

1
задан 4 September 2015 в 10:34
1 ответ

Нет, вы не можете

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

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

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

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

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


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

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

1
ответ дан 4 December 2019 в 00:01

Теги

Похожие вопросы