systemadmin.es » Como consultar las DNSBL

Como consultar las DNSBL

Uno de los métodos para combatir el SPAM es el uso de blacklists (listas negras). En el caso de qmail se suele usar el rblsmtpd. A continuación veremos como funcionan las DNSBL y como comprobar si una determinada IP esta en una lista negra.

Para realizar una consulta a una DNSBL utilizaremos el siguiente procedimiento:

  1. Dada una determinada IP se invierte el orden y se le añade la DNSBL a la que queremos realizar la consulta. Por ejemplo, para la IP 1.2.3.4 hacer una consulta en xbl.spamhaus.org quedaría como 4.3.2.1.xbl.spamhaus.org
  2. Al buscar un registro A con este nombre tenemos dos opciones:
    • Si el registro A existe, esta dentro de la blacklist. Normalmente se devuelve una IP dentro del rango de loopback.
    • Si el registro A no existe, significa que la IP no esta en la blacklist

Podemos probar con un simple dig:

# dig 36.84.97.213.relays.bl.gweep.ca | grep ";; ANSWER SECTION" -A 2
# dig 36.84.97.213.blackholes.five-ten-sg.com | grep ";; ANSWER SECTION" -A 2
;; ANSWER SECTION:
36.84.97.213.blackholes.five-ten-sg.com. 80031 IN CNAME 213.97.84.213.rima-tde.net.misc.spam.blackholes.five-ten-sg.com.
213.97.84.213.rima-tde.net.misc.spam.blackholes.five-ten-sg.com. 598431 IN A 127.0.0.2

Por otro lado, algunos DNSBL añaden la descripción de porque la IP esta en la lista mediante un registro TXT con el mismo nombre.

Podemos probar también con dig:

# dig 36.84.97.213.blackholes.five-ten-sg.com  txt | grep ";; ANSWER SECTION" -A 2
;; ANSWER SECTION:
36.84.97.213.blackholes.five-ten-sg.com. 79869 IN CNAME 213.97.84.213.rima-tde.net.misc.spam.blackholes.five-ten-sg.com.
213.97.84.213.rima-tde.net.misc.spam.blackholes.five-ten-sg.com. 598270 IN TXT "miscellaneous address blocks that have sent spam here"

Se pueden realizar las mismas consultas en perl mediante el siguiente código de ejemplo:

#!/usr/bin/perl -w

use Net::DNS;
my $res   = Net::DNS::Resolver->new;

$arg=~m/(\d+)\.(\d+)\.(\d+)\.(\d+)/;
$arginv=$4.".".$3.".".$2.".".$1;

my $query = $res->search($arginv.".sbl.spamhaus.org");
print "FOUND $arg in sbl.spamhaus.org!!\n" if ($query);

Como hemos dicho, en los registros TXT del mismo nombre algunas DNSBL añaden el porqué dicha IP esta en la blacklist. Podemos obtener la descripción mediante el siguiente código:

$reason=$res->query($arginv.".sbl.spamhaus.org", 'TXT');

for $txt ($reason->answer)
{
        print $txt->rdatastr."\n" if($txt->type eq "TXT");
}

Relacionados

Imprimir Imprimir

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>