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:
- 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
- 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


Deja un comentario: