Whitelist e Blacklist Zimbra 8.8

Publicado por Rodrigo Garcia (última atualização em 08/05/2019)

[ Hits: 5.298 ]

Homepage: www.unix4life.blogspot.com

Download wblist.sh

Download 1556797485.wblist.sh (versão 2)




Boa tarde pessoal!!!

Após um bom tempo sem postar nada (porque não tinha nada de interessante para postar), resolvi postar esse script que eu desenvolvi para incluir, excluir e listar endereços na blacklist e whitelist do Zimbra 8.8.11 (não testei em outras versões).

Depois de muuuuuuuuuito pesquisar, eu cheguei à forma correta de controlar as listas de spam do Zimbra. Na internet existem muitas informações desencontradas, ou que não funcionam mais, etc. Então abaixo está o script que eu fiz e que está funcionando perfeitamente no meu ambiente, espero que ajude!

  



Versões atualizadas deste script

Versão 2 - Enviado por Rodrigo Garcia em 02/05/2019

Changelog: Adicionada variável para o domínio do servidor
Correção de algumas saídas

Download 1556797485.wblist.sh


Esconder código-fonte

#!/bin/bash
# Controle de blacklist e whitelist
# Desenvolvido por Rodrigo Garcia em 12/04/2019
# Contato rodrigogarcia.ti@gmail.com

# Adiciona um único endereço ou domínio à blacklist
fn_AddDomainBlack()
{
        clear
        read -p "Digite o endereço (Ex: cont@contoso.com ou contoso.com): " DOMAIN
        read -p "Confirma a adição do domínio $DOMAIN à blacklist (s/n)?" RESP
        if [ $RESP == "s" ]
        then
                echo "Verificando se o endereço já existe..."
                su - zimbra -c "zmprov gd spsconsultoria.com.br amavisBlacklistSender" | grep $DOMAIN
                if [ $? != 0 ]
                then
                        echo "Adicionando $DOMAIN à blacklist..."
                        su - zimbra -c "zmprov md spsconsultoria.com.br +amavisBlacklistSender $DOMAIN"
                        echo -e "Concluído!!!\n"
                else
                        echo "Endereço já existe na blacklist!!!"
                fi
                read -rsp $'Pressione enter para voltar...\n'
        fi
}
# Adiciona uma lista de endereços ou domínios à blacklist lendo o arquivo blacklist.conf
# Formato cont@contoso.com ou contoso.com
fn_ListaBlack()
{
        clear
        while read LINE
        do
                echo "Adicionando $LINE à blacklist..."
                su - zimbra -c "zmprov md spsconsultoria.com.br +amavisBlacklistSender $LINE"
        done < blacklist.conf
        echo -e "Concluído!!!\n"
        read -rsp $'Pressione enter para voltar...\n'
}
# Exclui um endereço ou domínio da blacklist
fn_DelDomainBlack()
{
        clear
        read -p "Digite o domínio (Ex: cont@contoso.com ou contoso.com): " DOMAIN
        read -p "Confirma a exclusão do domínio $DOMAIN da blacklist (s/n)?" RESP
        if [ $RESP == "s" ]
        then
                echo "Excluíndo $DOMAIN da blacklist..."
                su - zimbra -c "zmprov md spsconsultoria.com.br -amavisBlacklistSender $DOMAIN"
                echo -e "Concluído!!!\n"
                read -rsp $'Pressione enter para voltar...\n'
        fi
}
# Consulta um endereço ou domínio na blacklist
fn_BuscaBlack()
{
        clear
        read -p "Digite o domínio para busca (Ex: cont@contoso.com ou contoso.com): " DOMAIN
        echo "Buscando $DOMAIN ..."
        su - zimbra -c "zmprov gd spsconsultoria.com.br amavisBlacklistSender" | grep $DOMAIN
        if [ $? != 0 ]
        then
                echo -e "Endereço ou domínio não encontrado!!!\n"
        fi
        read -rsp $'Pressione enter para voltar...\n'
}
# Faz cópia de segurança da blacklist e whitelist
fn_BkpList()
{
        clear
        echo -e "Fazendo backup das listas...\n"
        su - zimbra -c "zmprov gd spsconsultoria.com.br amavisBlacklistSender" | cut -d" " -f2 > blacklist.conf.bkp
        echo -e "Backup da blacklist criado com sucesso em blacklist.conf.bkp\n"
        su - zimbra -c "zmprov gd spsconsultoria.com.br amavisWhitelistSender" | cut -d" " -f2 > whitelist.conf.bkp
        echo -e "Backup da blacklist criado com sucesso em whitelist.conf.bkp\n"
        read -rsp $'Pressione enter para voltar...\n'
}
# Adiciona endereço ou domínio à whitelist
fn_AddDomainWhite()
{
        clear
        read -p "Digite o domínio (Ex: cont@contoso.com ou contoso.com): " DOMAIN
        read -p "Confirma a adição do domínio $DOMAIN à whitelist (s/n)?" RESP
        if [ $RESP == "s" ]
        then
                echo "Verificando se o endereço já existe..."
                su - zimbra -c "zmprov gd spsconsultoria.com.br amavisBlacklistSender" | grep $DOMAIN
                if [ $? != 0 ]
                then
                        echo "Adicionando $DOMAIN à whitelist..."
                        su - zimbra -c "zmprov md spsconsultoria.com.br +amavisWhitelistSender $DOMAIN"
                        echo -e "Concluído!!!\n"
                else
                        echo "Endereço já existe na blacklist!!!"
                fi

                read -rsp $'Pressione enter para voltar...\n'
        fi
}
# Adiciona uma lista de endereços ou domínios à whitelist lendo o arquivo whitelist.conf
# Formato cont@contoso.com ou contoso.com
fn_ListaWhite()
{
        clear
        while read LINE
        do
                echo "Adicionando $LINE à whitelist..."
                su - zimbra -c "zmprov md spsconsultoria.com.br +amavisWhitelistSender $LINE"
        done < whitelist.conf
        echo -e "Concluído!!!\n"
        read -rsp $'Pressione enter para voltar...\n'
}
# Exclui um endereço ou domínio da whitelist
fn_DelDomainWhite()
{
        clear
        read -p "Digite o domínio (Ex: cont@contoso.com ou contoso.com): " DOMAIN
        read -p "Confirma a exclusão do domínio $DOMAIN da whitelist(s/n)?" RESP
        if [ $RESP == "s" ]
        then
                echo "Excluíndo $DOMAIN da whitelist..."
                su - zimbra -c "zmprov md spsconsultoria.com.br -amavisWhitelistSender $DOMAIN"
                echo -e "Concluído!!!\n"
                read -rsp $'Pressione enter para voltar...\n'
        fi
}
# Consulta endereço ou domínio na whitelist
fn_BuscaWhite()
{
        clear
        read -p "Digite o domínio para busca (Ex: cont@contoso.com ou contoso.com): " DOMAIN
        su - zimbra -c "zmprov gd spsconsultoria.com.br amavisWhitelistSender" | grep $DOMAIN
        echo "Buscando $DOMAIN ..."
        if [ $? != 0 ]
        then
                echo -e "\nEndereço ou domínio não encontrado!!!\n"
        fi
        read -rsp $'Pressione enter para voltar...\n'
}
# Executa o código
until [ $DO = "0" ]
do
        clear
        echo -e "############################################################################################
Bem vindo, o que você deseja?
############################################################################################
1- Consultar um endereço ou domínio na blacklist
2- Adicionar um endereço ou domínio à blacklist
3- Adicionar uma lista de endereços e/ou domínios à blacklist (crie a lista blacklist.conf)
4- Remover um endereço ou domínio da blacklist
5- Consultar um endereço ou domínio na whitelist
6- Adicionar um endereço ou domínio à whitelist
7- Adicionar uma lista de endereços e/ou domínios à whitelist (crie a lista whitelist.conf)
8- Remover um endereço domínio da whitelist
9- Fazer backup das listas (whitelist e blacklist)
0- Sair\n"
        read -p "Escolha uma ação: " DO

        case $DO in
                "1")
                        fn_BuscaBlack
                ;;
                "2")
                        fn_AddDomainBlack
                ;;
                "3")
                        fn_ListaBlack
                ;;
                "4")
                        fn_DelDomainBlack
                ;;
                "5")
                        fn_BuscaWhite
                ;;
                "6")
                        fn_AddDomainWhite
                ;;
                "7")
                        fn_ListaWhite
                ;;
                "8")
                        fn_DelDomainWhite
                ;;
                "9")
                        fn_BkpList
                ;;
                "0")
                        clear
                        exit
                ;;
                *)
                        echo "Opção Inválida!!! Saindo..."
                ;;
        esac
done

Scripts recomendados

Apt-fast melhorado

Script que conta quantas barras tem em um diretorio

Firewall Iptables Desktop

PC Report - Coleta lista de dispositivos instalados e logs

Script Para Manutenção de usuários do Sistema


  

Comentários
[1] Comentário enviado por rodrigocpac em 15/01/2020 - 17:51h

Excelente script, parabéns pela elaboração e obrigado por compartilhá-lo.
Ainda implementei uma outra opção, criei a função fn_BuscaBlackFull para "Consultar todos os endereços/domínios na blacklist".
Me ajudou bastante a automatizar esse processo, graças a esse seu script.
Testado na versão 8.8.12 do Zimbra.

Valeu!!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts