Como nao consegui nada “for dummies” para monitorar as listas de RBL para determinado servidor de e-mail, tive que juntar alguns scripts e ajustar para a minha necessidade. Tenho certeza que muitos já se depararam com o mesmo problema.
Segue o roteiro do que foi feito ( assumindo que o seu Zabbix está configurado, funcionando, os clientes já estão com o agente, etc… ):
- Na máquina que vai executar a verificação crie o diretório ( se não existir ) /etc/zabbix/plugins/;
- Crie o arquivo check_dnsbl.sh com o conteúdo abaixo, informando na variável “IP” o endereço valido do servidor que você vai querer monitorar com a permissão 0755;
/etc/zabbix/plugins/check_dnsbl.sh: #!/bin/bash DNSLBL_LIST=/etc/zabbix/plugins/dnsbl.txt IP=64.233.160.20 rev_ip=`echo $IP | sed -r 's/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/\4.\3.\2.\1/'` { listed=0 echo "" >>/etc/zabbix/plugins/dnsbl_check_log.txt /bin/date >> /etc/zabbix/plugins/dnsbl_check_log.txt for dnsbl in `cat $DNSLBL_LIST | grep -v "#"` do if host -W 1 -t a $rev_ip.$dnsbl >/dev/null 2>&1 then listed=`expr $listed + 1` host -t txt $rev_ip.$dnsbl >>/etc/zabbix/plugins/dnsbl_check_log.txt 2>>/etc/zabbix/plugins/dnsbl_check_log.txt fi done echo $listed } exit 0
- Crie o arquivo /etc/zabbix/plugins/dnsbl.txt com os serviços de RBL que você quer consultar. Pode procurar no Google ( link1, link2 ) ou baixar o que estou usando;
- Crie um agendamento para executar o script a cada 15 minutos:
0,15,30,45 * * * * /etc/zabbix/plugins/check_dnsbl.sh > /etc/zabbix/plugins/check_dnsbl_result.txt 2>/dev/null
- Na configuração do seu agente ( zabbix_agentd.conf ), adicione a linha:
UserParameter=rbl.check,/bin/cat /etc/zabbix/plugins/check_dnsbl_result.txt
- Importe o template no seu zabbix e associe com o host.
Testado e funcionando no Zabbix 3.0.5
Atualização
Aqui está disponivel o template para o Zabbiz 4.2.1.
Encontrei alguns tutoriais a respeito de RBL, o seu esta de fácil compreensão, parabéns. Tenho uma pergunta fiz todo o processo que indicou, no entanto. você indica para associar ao host. Ou seja, tenho de criar o host, quando crio o host, pra qual ip eu aponto? o 127.0.0.1 ou para o ip que quero consultar?
Tem que associar com o objeto de host onde o script vai ser executado na configuração do Zabbix. O IP que vai ser verificado fica no próprio script, portanto altere e coloque o IP valido do seu servidor de saída. Se for verificar mais de um IP, tem que alterar o script para passar o IP de verificação como parametro ou criar uma copia para cada IP, direcionar a saída para arquivos diferentes e criar vários “UserParameter”.
Ah ótimo, estava fazendo desta forma. Mas estou encontrando um erro quando vou nos HOSTS, clico no host Criado, clico em ITENS aí é exibido o RBL Check: SMTP: RBL Check, no final na coluna onde tem Informações, aparece este erro:
Value “” of type “string” is not suitable for value type “Numeric (unsigned)”
Quando clico em SMTP: RBL Check, bejo as configurações e lá onde tem Tipo de informação está marcado NÚMERICO (Inteiro sem Sinal).
Já fiz de tudo aqui e o erro não sai. Não sei se é problema do agente.
Consegui resolver o problema acima, toquei tiop de informação NÚMERICO (Inteiro sem Sinal) para Caracter. Agora começou a rodar. mas tenho uma pergunta, em dados recentes, mostra que a hora das consultas, mas não mostra o resultado nos sites e estou em duas blacklists que estão listadas nos arquivos que configuramos. Não sei se esta rodance certinho. Quando tento excutar ssh para ver se esta rodando bem, dá isto, saberia porque?
[root@localhost plugins]# ./check_dnsbl.sh
./check_dnsbl.sh: line 1: /etc/zabbix/plugins/check_dnsbl.sh:: Arquivo ou diretório não encontrado
Ola. Atualizei com o template do Zabbix 4.2.1 – https://download.tonev.pro.br/zbx_421_export_rbl_check.xml.gz