zimbra 8 policyd falha contador de cota de incrementos de login SMTP

1

Estou tentando configurar uma política policyd no Zimbra que define um número máximo de e-mails de saída para um determinado remetente (user @ domain). Eu estava testando com um script simples para entrar no servidor SMTP e enviar um email de teste. Notei que, se eu omitir as informações de login, a solicitação de SMTP era rejeitada (Autorização falhou), mas o contador de cota de policyd ainda era incrementado!

Existe alguma maneira de impedir que as tentativas de login com falha atinjam a política? Estou preocupado que isso possa ser usado como um ataque DOS.

    
por Carl 06.02.2014 / 01:29

1 resposta

1

Introdução

Zimbra é um e-mail e ternos colaborativos. Ele usa o postfix como MTA. Opcionalmente, você pode permitir que o policyd forneça recursos limitadores, como cota ou aceleração.

Toda configuração pode ser alterada pela interface web ou CLI. A edição direta ao arquivo de configuração / banco de dados não deve ser feita. O Zimbra pode sobrescrevê-lo ao atualizar ou reiniciar.

Ativando o policyd

De acordo com esta página , pode ativar o policyd executando apenas duas linhas de comando.

No fundo, o zimbra alterará a configuração do postfix. Aqui, a postconf -n de saída antes e depois do policyd foi ativada.

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 =

Depois

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

Análise

O comportamento que aconteceu no seu zimbra pode ser explicado depois de analisar a saída de postconf -n . No estágio smtpd_sender_restrictions, o zimbra já entra em contato com policyd (por check_policy_services). Nesse estágio, o contador já estava incrementando . No estágio smtpd_relay_restrictions, o postfix rejeita o email emitindo a mensagem de erro "autorização falhada".

Solução

Com base na análise acima, o comportamento pode ser evitado removendo check_policy_services em smtpd_sender_restrictions. O postfix ainda chama check_policy_services em smptd_recipient_restrictions.

Aviso:

  • Isso se aplica ao zimbra versão 8.0.7. Outra versão talvez não receba este bug.
  • Como mencionado acima, a edição direta no arquivo de configuração não é oficialmente suportada. Talvez haja um motivo pelo qual o Zimbra tenha colocado a policyd mais cedo e a edição direta pudesse quebrá-la. Para a segurança, você pode postá-lo no suporte ao zimbra e discuti-lo com os desenvolvedores do zimbra.
por 01.01.2015 / 03:51