Olá! Como publiquei nos artigos sobre a instalação do Zimbra (links logo abaixo), também irei dedicar um espaço neste blog para iniciantes em Zimbra.
Instalação em CentOS/Red Hat/Oracle
Seguindo os tutoriais sobre a instalação do Zimbra, irei iniciar uma série de artigos sobre melhores práticas de E-mail, como SPF, DKIM, DMARC, DNS reverso, RBLs, Whitelist, Blacklists, etc.
Nesta QUARTA parte, irei falar sobre algumas configurações para aprimorar o anti-spam do Zimbra. Desta forma, as partes 1,2 e 3 trataram de melhores práticas de envio de E-mail para que você não seja uma fonte de SPAM e esta parte 4 trata de aprimorar a detecção de SPAM.
Link para a parte 1 dessa série: PARTE 1
Créditos para este artigo:
https://www.missioncriticalemail.com/2019/03/21/zimbra-anti-spam-best-practices-2019/
Primeiramente irei publicar esta parte SEM as blacklists pagas, mas adotei a invaluement no meu ambiente e posso dizer que recomendo fortemente que você teste esta blacklist paga, o valor é muito acessível, o suporte é muito bom e de fato é muito eficiente para bloqueio de SPAM. Em breve publicarei um artigo aqui dedicado a implementação da blacklist da invaluement no Zimbra.
Um dos recursos bastante interessantes na proteção contra SPAM é o Postscreen, recurso do MTA do Zimbra, Postfix.
O Postscreen foi introduzido na versão 8.7 e a documentação oficial pode ser encontrada aqui:
https://wiki.zimbra.com/wiki/Zimbra_Collaboration_Postscreen
O daemon do Postscreen pode tratar múltiplas sessões e o Postfix irá decidir para quais clientes responder ou não, protegendo desta forma o servidor contra sobrecargas. O Postscreen não é habilitado para os clientes dos usuários (MUAs), e sim para a conexão de outros MTAs.
Desta forma, o POSTSCREEN forma uma primeira camada de defesa, bloqueando zumbis e spammers, com um custo ainda menor que as outras restrições na sessão SMTP.
A documentação deste recurso está disponível em http://www.postfix.org/POSTSCREEN_README.html
No artigo que citei que serviu como base desta minha publicação, são apresentadas duas blacklists pagas, a invaluement e uribl.
A primeira regra que vamos implementar é o bloqueio utilizando a blacklist da Barracuda (gratuita):
Ultimamente não tenho tido muito resultado com outras blacklists gratuitas, mas caso você deseje utilizar alguma outra (na wiki da Zimbra são apontadas diversas, mas tome cuidado com a possibilidade de aumentar os falsos positivos), pode utilizar sem problema apenas incluindo no parâmetro “zimbraMtaPostscreenDnsblSites”.
Se puder e desejar, compartilhe comigo a experiência com outras blacklists. 😉
# su - zimbra zmprov mcf zimbraMtaPostscreenDnsblSites 'b.barracudacentral.org=127.0.0.2*1' zmprov mcf zimbraMtaPostscreenDnsblAction enforce zmprov mcf zimbraMtaPostscreenGreetAction enforce zmprov mcf zimbraMtaPostscreenNonSmtpCommandAction drop zmprov mcf zimbraMtaPostscreenPipeliningAction enforce
Os testes mais essenciais de recebimento de E-mail, que são baseados em DNS, são recomendados. Os testes abaixo aplicam validação de DNS reverso, HELO válido, Domínio válido, FQDN, etc…:
zmprov mcf +zimbraMtaRestriction reject_invalid_helo_hostname zmprov mcf +zimbraMtaRestriction reject_non_fqdn_helo_hostname zmprov mcf +zimbraMtaRestriction reject_non_fqdn_sender zmprov mcf +zimbraMtaRestriction reject_unknown_client_hostname zmprov mcf +zimbraMtaRestriction reject_unknown_helo_hostname zmprov mcf +zimbraMtaRestriction reject_unknown_reverse_client_hostname zmprov mcf +zimbraMtaRestriction reject_unknown_sender_domain
Por padrão, o Zimbra não atualiza as definições do Spamassassin, vamos habilitar esse recurso:
zmlocalconfig -e antispam_enable_rule_updates=true zmlocalconfig -e antispam_enable_restarts=true
Por padrão, o Zimbra habilita o uso de Bayes, eu concordo totalmente com o artigo que foi utilizado como base para essa publicação: A utilização do Bayes, pode funcionar para alguns, porém na minha experiência diversas mensagens indesejadas acabam sendo liberados por esse filtro.
O filtro bayesiano é o processo de usar métodos estatísticos para classificar documentos por categorias. O filtro de Bayes foi definido depois do documento de Paul Graham, A Plan for Spam, e transformou-se num mecanismo popular para distinguir um e-mail ilegítimo conhecido como spam de um e-mail legítimo.
Portanto, vamos desabilitar o mesmo, criando o arquivo ~/data/spamassassin/localrules/sauser.cf com o seguinte conteúdo:
use_bayes 0
Efetuadas essas configurações, efetue o restart dos serviços de envio e recebimento de E-mails do Zimbra:
$ zmmtactl restart
No artigo base, outras configurações são efetuadas, portanto, avalie para para o seu caso mais alguma implementação irá atender.
Mais uma vez, todos os créditos e agradecimentos a Mission Critical Email pela excelente publicação.
Fabio, utilizo RBL free, porem quando uma delas dão falso positivo eu criei um arquivo de lista branca (+zimbraMtaRestriction ‘check_client_access lmdb:), no inicio funcionou, mas depois de 15 ou mais dominio/ip inserido parou de liberar os novos endereços adicionados. Você já passou por este problema e como você faz para liberar os falsos positivos?
Estou com esse mesmo problema.
Estou usando:
zmprov mcf +zimbraMtaRestriction ‘check_client_access lmdb:/opt/zimbra/conf/postfix_rbl_override’
Após o upgrade para a versão 8.7.11, o rbl override parou de funcionar.
Tem alguma ideia do que pode ser?
Bom dia a todos.
Eu tive problemas a um tempo atras com esta RBL, gerando muito falso positivo principalmente com grande player de mercado, como o Google, Microsoft (outlook), tanto que deixei de utilizar.
http://www.sorbs.net/
Vlw pesssoal, excelente trabalho!
Não consegui realizar os comandos
zmprov mcf +zimbraMtaRestrictionreject_invalid_helo_hostname
zmprov mcf +zimbraMtaRestrictionreject_non_fqdn_helo_hostname
zmprov mcf +zimbraMtaRestrictionreject_non_fqdn_sender
zmprov mcf +zimbraMtaRestrictionreject_unknown_client_hostname
zmprov mcf +zimbraMtaRestrictionreject_unknown_helo_hostname
zmprov mcf +zimbraMtaRestrictionreject_unknown_reverse_client_hostname
zmprov mcf +zimbraMtaRestrictionreject_unknown_sender_domain
Apresentam a mensagem de erro
usage: modifyConfig(mcf) attr1 value1 [attr2 value2…]
For general help, type : zmprov –help
Poderiam me ajudar ?
Olá, grato pelo acesso.
Estava com problema no espaçamento, já foi corrigido no post.