Você está na página 1de 13

06/01/2022 17:56 Blacklist - O que é? Como consultar o IP? Como automatizar?

[Artigo] - página 3

/  Avançado (/artigos/verSubCategoria.php?codigo=80)
/  Blacklist - O que é? Como consultar o IP? Como automatizar?

Blacklist - O que é? Como consultar o IP? Como automatizar?


Explana sobre bloqueio de IPs em Blacklists (RBL), demonstrando
(/~hellnux) como consultar e como automatizar via shell script.

hellnux (/~hellnux) Por: Danillo Costa em 19/05/2015 | Blog: [ Hits: 17.222 ]


https://softhost.com.br/ (https://softhost.com.br/)

15  0

 Denuncie (/denuncie/index.php)    Favoritos (/addBookmark.php?tipo=artigo&codigo=15267)  


 Indicar
(/formIndicar.php?tipo=artigo&codigo=15267)  
 Impressora (/artigos/impressora.php?codigo=15267)



AUTOMATIZANDO CONSULTAS VIA SHELL SCRIPT

Pré-requisitos:

msmtp (envio de notificação via email)


lynx

Embora o ambiente utilizado seja o Cygwin, acredito que qualquer Linux


(//www.vivaolinux.com.br/linux/) é compatível com o script, desde que atenda os pré-
requisitos.

Não ensinarei como configurar o msmtp, pois este não é foco e caso decida não utiliza-lo,
basta adapta-lo.

As consultas são feitas utilizando o método 2 da página anterior, que é mais rápido em
relação ao método 1.

O check-blacklist, nome do shell script, pode ser executado de duas formas.

Para um IP em específico:

 bash check-blacklist.sh 23.226.214.16

Para uma lista determinada dentro do script:

 bash check-blacklist.sh


https://www.vivaolinux.com.br/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=3 1/13
06/01/2022 17:56 Blacklist - O que é? Como consultar o IP? Como automatizar? [Artigo] - página 3

Imagem da saída em tempo real do script:

(//img.vivaolinux.com.br/imagens/artigos/comunidade/check-blacklist-out.jpg)

Imagem da notificação via email:

(//img.vivaolinux.com.br/imagens/artigos/comunidade/check-blacklist-mail.jpg)

Salve o código abaixo, em "check-blacklist.sh". Não esqueça de editar os endereços de e-


mails e a faixa de IP a ser analisada.


https://www.vivaolinux.com.br/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=3 2/13
06/01/2022 17:56 Blacklist - O que é? Como consultar o IP? Como automatizar? [Artigo] - página 3

#!/bin/bash

# Editado por hellnux (Danillo Costa)

# Fonte: http://daemonforums.org/showthread.php?t=302

version="15.0508"

# Checa um determinado IP se passado como parametro, caso contrario eh

# analisado um faixa de IPs pre determinados.

#######################################################

# Functions

#######################################################

function dateNow () {

date +%d/%m/%Y" "%k:%M:%S

function getIps() {

# Cria lista de ips

ips=""

notes_mail="Faixa de IPs analisadas:\n"

prefix="162.144.34"

notes_mail="$notes_mail de 162.144.34.1 até 162.144.34.126 \n"

for i in `seq 1 126`; do

ips="$ips $prefix.$i"

done

# Adiciona a lista de ips, os ips de 37.49.226.1 até 37.49.226.62

prefix="37.49.226"

notes_mail="$notes_mail de 37.49.226.1 até 37.49.226.62 \n"

for i in `seq 1 62`; do

ips="$ips $prefix.$i"

done

function printResultBase () {

printf "%-22s %-18s %-30s %-24s %s \n" "$date_now" "$ip" "$reverse_dns" "${BL}
}

function printResultSenderbase() {

date_now=`dateNow`

BL="senderbase.org"

# Evita consulta desnecessaria quando o SenderBase tiver bloqueado IP da maqui


if [ "$block_printResultSenderbase" == "1" ]; then

result="Fail"

printResultBase

else

# Passa pelos Termos de Servicos do SenderBase, method post e pega a s


out=$(echo "tos_accepted=Yes, I Agree" | lynx -dump -post_data "$link_
if [ $? -eq 0 ]; then

if [ "`echo "$out" | grep -F "You don't have permission to acc


block_printResultSenderbase="1"

result="Fail"

printResultBase

else

# O status do email_reputation costuma estar uma linha



n_web_reputation=$(echo "$out" | grep -F "Web Reputati

https://www.vivaolinux.com.br/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=3 3/13
06/01/2022 17:56 Blacklist - O que é? Como consultar o IP? Como automatizar? [Artigo] - página 3
n_email_reputation=$(( $n_web_reputation - 1 ))

email_reputation=$(echo "$out" | sed -n "$n_email_repu


if [ "$email_reputation" == "Poor" ]; then

result="Listed ($link_sederbase$ip)"

printResultBase | tee -a "$log_file"

else

result="---"

printResultBase

fi

fi

else # Metodo antigo. Nao eh tao preciso, pois informa apenas o score.
BL="rf.senderbase.org"

result=$(dig +short txt ${reverse[$i]}.${BL}.)

date_now=`dateNow`

if [ "`echo "$result" | grep -F "-"`" != "" ]; then

score=$(echo "$result" | tr -d '"')

result="NeedCheck ($link_sederbase$ip):$score"

printResultBase | tee -a "$log_file"

else

result="---"

printResultBase

fi

fi

fi
}

function printResult() {

date_now=`dateNow`

if [ "$result" != "" ]; then

result="Listed"

printResultBase | tee -a "$log_file"

else

result="---" # Nao listado

printResultBase

fi
}

#######################################################

# Main

#######################################################

# Lista de blacklists. SenderBase eh analisado separadamente

BLISTS="

b.barracudacentral.org

zen.spamhaus.org

xbl.spamhaus.org

pbl.spamhaus.org

bl.spamcop.net

dnsbl.sorbs.net

http.dnsbl.sorbs.net

web.dnsbl.sorbs.net

"

script_name=$(basename $0 .sh)

emails="seu@email.com"

msmtp="/usr/sbin/msmtp"


https://www.vivaolinux.com.br/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=3 4/13
06/01/2022 17:56 Blacklist - O que é? Como consultar o IP? Como automatizar? [Artigo] - página 3
log_file="/tmp/$script_name.log"

sign_mail="------------------\n$script_name $version" #Assinatura da notificacao via e


link_sederbase="http://www.senderbase.org/lookup/?search_string="

block_printResultSenderbase="0" # disable

msg_printResultSenderbase=""

# Define se usa IP passado via argumento ou "lista de IPs" informadas neste codigo.

if [ "$2" != "" ]; then

echo "Error: Informe apenas 1 IP ou nenhum para usar a lista pre-determinada."


exit 1

elif [ "$1" != "" ]; then

ips="$1"

else

getIps

fi

# limpa log

> "$log_file"

# Cria IP reverso

i=0

for ip in $ips; do

reverse[$i]=$(echo "$ip" | sed -ne "s~^\([0-9]\{1,3\}\)\.\([0-9]\{1,3\}\)\.\([


if [ "x${reverse[$i]}" = "x" ]; then

echo "Error: '$ip' nao parece ser um IP valido."

exit 1

fi
(( i++ ))

done

# Faz checagem nas blacklists

i=0

for ip in $ips; do

#echo "[$ip]" #debug

reverse_dns=$(dig +short -x "$ip")

if [ "$reverse_dns" == "" ]; then

reverse_dns="reverseNull"

fi
# Chama funcao printResultSenderbase

printResultSenderbase

# Demais blacklists

for BL in ${BLISTS} ; do

result="$(dig +short -t a ${reverse[$i]}.${BL}.)"

printResult

done

sleep "$(( ( RANDOM % 10 ) + 5 ))" # Random de ~5s a ~20s

(( i++ ))

done

# Print in body mail if this script blocked in SenderBase

if [ "$block_printResultSenderbase" == "1" ]; then

msg_printResultSenderbase="SenderBase blocked the `hostname -i` to queries.\n"


fi

# Send mail - Se identar o echo, pode bugar

if [ "`wc -l "$log_file" | awk '{print $1}'`" != "0" ]; then


https://www.vivaolinux.com.br/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=3 5/13
06/01/2022 17:56 Blacklist - O que é? Como consultar o IP? Como automatizar? [Artigo] - página 3
echo "To: $emails

From: seu@email.com

Subject: [$script_name]

Content-Type: text/html; charset=\"utf-8\"

`cat \"$log_file\"`

`echo -e \"$msg_printResultSenderbase\"`

`echo -e \"$notes_mail\"`

`echo -e \"\n\n$sign_mail\"`

" | "$msmtp" --read-recipients

fi

# senderbase

# dig +short txt 55.145.202.186.rf.senderbase.org

# Outras RBL

# combined.njabl.org

# spam.rbl.msrbl.net

# bl.spamcannibal.org

# bl.deadbeef.com

# bl.emailbasura.org

# blackholes.five-ten-sg.com

# bogons.cymru.com

# blacklist.woody.ch

# cbl.abuseat.org

# cdl.anti-spam.org.cn

# combined.abuse.ch

# combined.rbl.msrbl.net

# db.wpbl.info

# dnsbl-1.uceprotect.net

# dnsbl-2.uceprotect.net

# dnsbl-3.uceprotect.net

# dnsbl.ahbl.org

# dnsbl.cyberlogic.net

# dnsbl.inps.de

# dnsbl.njabl.org

# drone.abuse.ch

# drone.abuse.ch

# duinv.aupads.org

# dul.dnsbl.sorbs.net

# dul.ru

# dyna.spamrats.com

# dynip.rothen.com

# images.rbl.msrbl.net

# ips.backscatterer.org

# ix.dnsbl.manitu.net


https://www.vivaolinux.com.br/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=3 6/13
06/01/2022 17:56 Blacklist - O que é? Como consultar o IP? Como automatizar? [Artigo] - página 3
# korea.services.net

# misc.dnsbl.sorbs.net

# noptr.spamrats.com

# ohps.dnsbl.net.au

# omrs.dnsbl.net.au

# orvedb.aupads.org

# osps.dnsbl.net.au

# osrs.dnsbl.net.au

# owfs.dnsbl.net.au

# owps.dnsbl.net.au

# probes.dnsbl.net.au

# proxy.bl.gweep.ca

# proxy.block.transip.nl

# psbl.surriel.com

# rbl.interserver.net

# rdts.dnsbl.net.au

# relays.bl.gweep.ca

# relays.bl.kundenserver.de

# relays.nether.net

# residential.block.transip.nl

# ricn.dnsbl.net.au

# rmst.dnsbl.net.au

# sbl.spamhaus.org

# short.rbl.jp

# smtp.dnsbl.sorbs.net

# socks.dnsbl.sorbs.net

# spam.abuse.ch

# spam.dnsbl.sorbs.net

# spam.spamrats.com

# spamlist.or.kr

# spamrbl.imp.ch

# t3direct.dnsbl.net.au

# tor.ahbl.org

# tor.dnsbl.sectoor.de

# torserver.tor.dnsbl.sectoor.de

# ubl.lashback.com

# ubl.unsubscore.com

# virbl.bit.nl

# virus.rbl.jp

# virus.rbl.msrbl.net

# wormrbl.imp.ch

# zombie.dnsbl.sorbs.net

# phishing.rbl.msrbl.net

# Fontes de pesquisas

# http://www.redhat.com/archives/rhl-list/2003-December/msg01341.html

# http://h3manth.com/content/methods-submit-form-post-using-curl-perl-python-ruby-lynx
# Numero random em um determinado range pelo shuf

# http://stackoverflow.com/questions/2556190/random-number-from-a-range-in-a-bash-scri

Download do script acima: check-blacklist-VOL.sh


(//static.vivaolinux.com.br/imagens/artigos/comunidade/check-blacklist-VOL.sh) 
https://www.vivaolinux.com.br/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=3 7/13
06/01/2022 17:56 Blacklist - O que é? Como consultar o IP? Como automatizar? [Artigo] - página 3

Agora, basta agendar via cron:

 crontab -e

Exemplo para executar às 7 e 13h de todos os dias:

00 7,13 * * * /bin/bash /caminho/para/o/check-blacklist.sh

Aconselho não abusar no número de execuções, ainda mais se mandar analisar uma lista
de IPs, pois as Blacklists podem acabar bloqueando o IP de onde está rodando o script, por
abuso.

Caso esteja iniciando nesta área, lembre-se que apenas tal método não é o suficiente para
combater os Spams.

Sintam-se livre para editar o script, desde que mantenha os créditos. Por um mundo sem
Spam! =D

 Página anterior (/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=2)    

Páginas do artigo

   1. Introdução (/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=1)

   2. Consultando o IP (/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=2)

   3. Automatizando consultas via shell script

Outros artigos deste autor

 Gerenciando Mouses da Razer (/artigo/Gerenciando-Mouses-da-Razer)

 Adium, IM open source (/artigo/Adium-IM-open-source)

 Gnome Shell e Extensions no Ubuntu 11.10 (/artigo/Gnome-Shell-e-Extensions-no-Ubuntu-1110)

 Shell Script como serviço no Windows (/artigo/Shell-Script-como-servico-no-Windows)

 Overclock em placas de vídeo GeForce (/artigo/Overclock-em-placas-de-video-GeForce)

Leitura recomendada

 BackRE - Seu script de backup remoto (/artigo/BackRE-Seu-script-de-backup-remoto)

 Conheça o projeto BASHSRC (/artigo/Conheca-o-projeto-BASHSRC)



https://www.vivaolinux.com.br/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=3 8/13
06/01/2022 17:56 Blacklist - O que é? Como consultar o IP? Como automatizar? [Artigo] - página 3

 Relatório de conexão Wi-Fi com dados de usuários conectados nos POPs (/artigo/Relatorio-de-conexao-
WiFi-com-dados-de-usuarios-conectados-nos-POPs)

 Brincando com pseudoterminais e redirecionamentos (/artigo/Brincando-com-pseudoterminais-e-


redirecionamentos)

 Receba seu IP externo via e-mail ou ensine o bash a ler e enviar e-mails (/artigo/Receba-seu-IP-externo-
via-email-ou-ensine-o-bash-a-ler-e-enviar-emails)

Comentários

[1] Comentário enviado por vmmello (/~vmmello) em 19/05/2015 - 18:43h

legal o artigo. Na página 2, a linha do sed não funciona pra mim. E copiando direto do script na página 3
também não funciona. Será que a formatação do texto no VOL estragou a linha? Só funciona modificando
ela um pouco.

2 0

[2] Comentário enviado por hellnux (/~hellnux) em 19/05/2015 - 18:55h

vmmello,

Obrigado por reportar. Já enviei a equipe de moderação tanto o comando sed da segunda página quanto o
script da última página.

--- EDIT ---

Ambos foram corrigidos no artigo. =D

2 0

[3] Comentário enviado por xerxeslins (/~xerxeslins) em 21/05/2015 - 18:49h

Não trabalho com isso, mas achei o artigo bem informativo!

Eu não sabia dessas coisas de blacklist.

Valeu!

Abraço!

--

http://pastebin.com/aji5Qp05 (https://pastebin.com/aji5Qp05)

1 0

https://www.vivaolinux.com.br/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=3 9/13
06/01/2022 17:56 Blacklist - O que é? Como consultar o IP? Como automatizar? [Artigo] - página 3

[4] Comentário enviado por brunor1989 (/~brunor1989) em 25/05/2015 - 11:04h

Olá,

Copiei o arquivo e fiz as mudanças necessárias, porém me retorna o seguinte erro:

/check.backlist.sh: 25: ./check.backlist.sh: Syntax error: "(" unexpected

1 0

[5] Comentário enviado por brunor1989 (/~brunor1989) em 25/05/2015 - 14:18h

[4] Comentário enviado por brunor1989 em 25/05/2015 - 11:04h

Olá,

Copiei o arquivo e fiz as mudanças necessárias, porém me retorna o seguinte erro:

/check.backlist.sh: 25: ./check.backlist.sh: Syntax error: "(" unexpected

Resolvido, apenas troquei /bin/sh para /bin/bash

1 0

[6] Comentário enviado por hellnux (/~hellnux) em 25/05/2015 - 14:30h

Obriagado brunor1989. Corrigido no artigo, mas para quem chama o bash na linha de comando, que nem
eu, não faz diferença.

0 0

[7] Comentário enviado por fmpfmp (/~fmpfmp) em 25/05/2015 - 17:00h

Muito útil seu script. No meu caso a maior causa do IP ser listado é ele ser considerado um IP dinâmico
quando na verdade é estático. Aqui pagamos pra ter um IP fixo da GVT e vez ou outra ele é listado como
IP doméstico. Toda vez eu tinha que ir na página do Spamhaus pra tirá-lo da lista, mas com seu script isso
se torna desnecessário. Obrigado.

https://www.vivaolinux.com.br/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=3 10/13
06/01/2022 17:56 Blacklist - O que é? Como consultar o IP? Como automatizar? [Artigo] - página 3

1 0

[8] Comentário enviado por juliomartins (/~juliomartins) em 26/05/2015 - 17:10h

Código apenas para consulta passando ip por parâmetro ...

#!/bin/bash

#VERIFICADOR DE IPS BLACKLIST

BLISTS="b.barracudacentral.org zen.spamhaus.org xbl.spamhaus.org pbl.spamhaus.org bl.spamcop.net


dnsbl.sorbs.net http.dnsbl.sorbs.net web.dnsbl.sorbs.net cbl.abuseat.org"

IP=`echo $1 | awk -F . '{print $4,$3,$2,$1}' | tr " " .`

for i in `echo $BLISTS`;

do

echo "$i ----> `dig +short -t a $IP.$i`"

done

1 0

[9] Comentário enviado por juliomartins (/~juliomartins) em 26/05/2015 - 17:17h

Para executar o script:

Salve com o nome ChecaRBL

chmod 755 ChecaRBL

./ChecaRBL IP_QUE_VC_QUE_VERIFICAR

1 0

[10] Comentário enviado por wilyman (/~wilyman) em 29/08/2016 - 10:19h

Oi pessoal poderiam me ajudar, eventualmente tenho problemas de clientes com esse problema e na qual
uso o BRMA.

Fiz o download do script porém ao executar ocorre esse erro

[root@mail root]# sh check-blacklist-VOL.sh

: command not found.sh: line 5:

: command not found.sh: line 8:

: command not found.sh: line 12:

'heck-blacklist-VOL.sh: line 13: syntax error near unexpected token `{



https://www.vivaolinux.com.br/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=3 11/13
06/01/2022 17:56 Blacklist - O que é? Como consultar o IP? Como automatizar? [Artigo] - página 3

'heck-blacklist-VOL.sh: line 13: `function dateNow () {

Talvez o BRMA não tenha todos os recursos necessários para a execução do script mas seria muito util
para o uso aqui na empresa

0 0

[11] Comentário enviado por hellnux (/~hellnux) em 29/08/2016 - 10:42h

wilyman

Use o bash em vez do sh

0 0

Contribuir com comentário

Enviar

(/)

A maior comunidade GNU/Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal
para quem busca auto-ajuda.

FAQ - Perguntas frequentes (/faq.php)



https://www.vivaolinux.com.br/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=3 12/13
06/01/2022 17:56 Blacklist - O que é? Como consultar o IP? Como automatizar? [Artigo] - página 3

Estatísticas do site (/estatisticas.php)

Equipe de moderadores (/equipe/)

Membros da comunidade (/membros/)

Anuncie (/anuncie/)

Contato (/falecom/)

Política de privacidade (/privacidade/)

Quem somos (/quemsomos/)

Termos de uso (/termos-de-uso/)

Site hospedado por:

(https://www.redehost.com.br/)


https://www.vivaolinux.com.br/artigo/Blacklist-O-que-e-Como-consultar-o-IP-Como-automatizar?pagina=3 13/13

Você também pode gostar