Zimbra 8.04 policyd… A cota de mensagens é contada pela contagem de destinatários

1

Corri para um problema de comportamento que não consigo ver como corrigir.

Configurei Zimbra (8.0.4) com policyd , seguindo este tutorial

Etapa 1: criar uma política
Etapa 2: criar um grupo ( list_domain )
Passo 3: Adicionar um domínio ao grupo ( @example.com )
Passo 4: Adicionar um membro à política (de: %list_domain , to: any )
Passo 5: Adicionar uma cota (faixa: Sender: user@domain , Período: 60 , veredicto: defer )
Passo 6: Adicionar um limite à cota (Tipo: messageCount , Limite: 5 )

E, ei, pronto. Está funcionando !!!

MAS

Os contadores de cota são incrementados pelo número de destinatários. Ou seja, se eu enviar uma mensagem de e-mail para 6 destinatários, ela será bloqueada.

Pergunta

O que devo alterar para que o policyd rastreie o número de mensagens em vez do número de destinatários?

UPDATE

Aqui estão alguns registros relativos do servidor, onde todas as informações confidenciais foram substituídas por dados imaginários.

mailbox.log abstract

2015-09-02 10:58:44,980 INFO  [qtp126151468-4888876] [[email protected];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
[email protected]>, origMsgId=101f0b66-b103-4161-8767-7ab1e00ffffd:1279544, replyType=w
2015-09-02 10:58:45,206 WARN  [qtp126151468-4888876] [[email protected];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 [email protected]: 450 4.7.1 <[email protected]>: Sender address rejected: Deferring: Too many messages from sender in last 60
        at com.zimbra.cs.mailclient.smtp.SmtpConnection.rcpt(SmtpConnection.java:680)
        [........]

Resumo do cbpolicyd.log

[2015/09/02-10:58:45 - 28180] [CORE] INFO: module=Quotas, mode=create, host=yy.yy.yy.yy, helo=server.domain.com, [email protected], [email protected], reason=quota_create, policy=6, quota=3, limit=4, track=Sender:[email protected], 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, [email protected], [email protected], reason=quota_update, policy=6, quota=3, limit=4, track=Sender:[email protected], 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, [email protected], [email protected], reason=quota_update, policy=6, quota=3, limit=4, track=Sender:[email protected], 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, [email protected], [email protected], reason=quota_update, policy=6, quota=3, limit=4, track=Sender:[email protected], 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, [email protected], [email protected], reason=quota_match, policy=6, quota=3, limit=4, track=Sender:[email protected], counter=MessageCount, quota=5.00/3 (166.7%)

Nosso servidor zimbra não atua como um agente de retransmissão, ele usa um serviço externo em nossa rede para entregar mensagens para domínios externos. Assim, todas as mensagens de saída que devem ser entregues a domínios externos são passadas para o mta externo em um único item da fila.

Assim, toda mensagem se torna um e somente um item de fila para o mta / relay externo, independentemente do número de destinatários.

    
por Stavros Souvatzis 02.09.2015 / 12:43

1 resposta

1

Não, você não pode

The quota counters get incremented by number of recipient. That is, if I send one mail message to 6 recipients, it will be blocked. What must I change in order to make policyd track number of messages instead of number of recipients?

Claro que será bloqueado. Quando você envia um email para 6 destinatários, basicamente o postfix (no Zimbra) enviará uma cópia do seu email para 6 destinatários. Então, cbpolicyd também conta como 6 mensagens .

Em termos pós-fixados, o número de mensagens e o número de destinatários eram os mesmos. Lembre-se de que seu cliente de e-mail pode ter diferentes formas de enviar e-mails.

  • Eles podem enviar e-mails para 6 destinatários de uma vez em uma sessão SMTP ou
  • Eles podem enviar e-mail para cada destinatário em cada sessão SMTP

Mais importante ainda, esse mecanismo protegerá você novamente de um usuário / spammer que queira ignorar essa restrição colocando milhares em destinatários em única mensagem.

Nota adicional:

Posso confirmar que esse comportamento foi planejado em cbpolicyd. A evidência veio do código-fonte cbpolicyd , especialmente nos arquivos cbp/modules/Quotas.pm linha 192 . Basicamente, cbpolicyd irá incrementar o contador em cada estágio RCPT TO . Então, agora você não pode fazer isso via policyd.

    
por 04.09.2015 / 00:17