[LUG.ro] La misteriosa consulta desde 127.0.0.2

Sebastián D. Criado lugro@lugro.org.ar
Wed, 17 Jan 2007 15:50:32 -0300


--nextPart14451459.SAYXv805CM
Content-Type: text/plain;
  charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

En uno de los servidores que administro, me encontr=C3=A9 con con m=C3=BAlt=
iples=20
consultas al DNS (BIND) desde 127.0.0.2:53 y las mismas eran rechazadas por=
=20
el bind dado que est=C3=A1 configurado mediante ACL's para aceptar solo pet=
iciones=20
de la red interna y de 127.0.0.1 (localhost).
Luego de un an=C3=A1lisis exhaustivo, pude determinar el problema y solucio=
narlo,=20
aunque me quedaron algunas dudas respecto a por que se  efect=C3=BAan las=20
consultas desde esa IP.

El problema comenz=C3=B3 a reportarse cuando el BIND infrmaba el rechazo de=
 la=20
consulta a trav=C3=A9s del syslog, reportando en forma reiterativa el sigui=
ente=20
mensaje:

named[17111]: refused query on non-query socket from [127.0.0.2].53

Esto me indicaba, como dice el mensaje, que se estaba haciendo un query al =
DNS=20
desde la direcci=C3=B3n 127.0.0.2:53

Sabiendo que estaba bien que sea rechazado el pedido, me dispuse a ver que =
era=20
lo que estaba originando el mismo.

Lo que me encontr=C3=A9 me llevo al problema directamente.

La IP 127.0.0.2 es utilizada por los sistemas de RBL para informar que la i=
p=20
que se le ha consultado (ej: 200.69.206.108) est=C3=A1 dentro de su base de=
 datos=20
como una ip bloqueada.

La forma de comprobarlo es hacer una consulta por medio de dig sobre una ip=
 en=20
la forma inversa. Para eso tome un servidor de RBL que se que funciona como=
=20
el  empresa Impsat de Chile.
http://abuse.impsat.cl/

Al hacerle una consulta a sus DNS sobre la IP 200.69.206.108 obtendremos el=
=20
siguiente resultado:

$ dig a @dns.impsat.cl 108.206.69.200.abuse.impsat.cl

;; ANSWER SECTION:
108.206.69.200.abuse.impsat.cl. 3600 IN A       127.0.0.2

Como se puede ver, nos responde la ip del problema.

=C2=BFPero que tiene que ver esto con el problema de los mensajes del bind?

Para poder chequear desde el Sendmail si una ip esta dentro de una RBL lo q=
ue=20
se puede utilizar en DNSBL http://en.wikipedia.org/wiki/DNSBL. Este sistema=
=20
va hacer una serie de pasos para comprobar si el mail que est=C3=A1 entrand=
o se=20
encuentra en  la RBL que se le ha consultado consultar.

En este caso, estaba usando la RBL relay.ordb.org configurada en el Sendmai=
l.

Dado que relay.ordb.org cerro a fin de este a=C3=B1o, no se pod=C3=ADa hace=
r la=20
consulta, las consultas que DNSBL le enviaba no se pod=C3=ADan responder.
Una vez removida la linea del sendmail.mc y generado el cf correspondiente,=
 el=20
mensaje dejo de aparecer. Problema resuelto. Pero aun me quedaba una duda,=
=20
dado que el que efectuaba el pedido a 127.0.0.2 era el mismo bind.

As=C3=AD, sabiendo que relays.ordb.org no funcionaba, me dispuse a hacer la=
=20
consulta por medio del dig usando ese servidor, y por medio de tcpdump mire=
=20
que pasada en la interfase =E2=80=9Clo=E2=80=9D.

$ dig @relays.ordb.org 108.206.69.200.relays.ordb.org

El resultado de  tcpdump de los pedidos fue el siguiente:

15:36:34.475690 127.0.0.1.45816 > 127.0.0.1.53:  2733+ A? relays.ordb.org.=
=20
(33) (DF)

En est=C3=A1 linea se puede ver la consulta al DNS sobre el dominio consult=
ado para=20
as=C3=AD poder determinar su IP.

15:36:40.003493 127.0.0.2.53 > 127.0.0.2.53:  65036 A? relays.ordb.org. (33=
)=20
(DF)
15:36:42.003496 127.0.0.2.53 > 127.0.0.2.53:  56582 [1au] A? relays.ordb.or=
g.=20
OPT  UDPsize=3D4096 (44) (DF)

Inmediatamente despu=C3=A9s se ve una consulta desde 127.0.0.2 a si mismo.

15:36:42.003592 127.0.0.1.53 > 127.0.0.1.45812:  32447 ServFail 0/0/0 (33)=
=20
(DF)

La respuesta que le llega es un ServFail al no poder determinar la ip del=20
mismo.

15:36:42.003624 127.0.0.1 > 127.0.0.1: icmp: 127.0.0.1 udp port 45812=20
unreachable [tos 0xc0]
15:36:48.503386 127.0.0.1.45816 > 127.0.0.1.53:  2733+ A? relays.ordb.org.=
=20
(33) (DF)
15:36:56.003425 127.0.0.1.53 > 127.0.0.1.45814:  60805 ServFail 0/0/0 (33)=
=20
(DF)
15:36:56.003480 127.0.0.1 > 127.0.0.1: icmp: 127.0.0.1 udp port 45814=20
unreachable [tos 0xc0]
15:37:02.003500 127.0.0.2.53 > 127.0.0.2.53:  56582 A? relays.ordb.org. (33=
)=20
(DF)
15:37:02.534023 127.0.0.1.45818 > 127.0.0.1.53:  2734+ A? relays.ordb.org.=
=20
(33) (DF)
15:37:10.003491 127.0.0.2.53 > 127.0.0.2.53:  56582 A? relays.ordb.org. (33=
)=20
(DF)
15:37:10.003589 127.0.0.2.53 > 127.0.0.2.53:  34326 [1au] A? relays.ordb.or=
g.=20
OPT  UDPsize=3D4096 (44) (DF)
15:37:16.563394 127.0.0.1.45818 > 127.0.0.1.53:  2734+ A? relays.ordb.org.=
=20
(33) (DF)
15:37:26.003490 127.0.0.1.53 > 127.0.0.1.45816:  2733 ServFail 0/0/0 (33) (=
DF)
15:37:26.003537 127.0.0.1 > 127.0.0.1: icmp: 127.0.0.1 udp port 45816=20
unreachable [tos 0xc0]
15:37:30.003488 127.0.0.2.53 > 127.0.0.2.53:  34326 A? relays.ordb.org. (33=
)=20
(DF)
15:37:38.003423 127.0.0.2.53 > 127.0.0.2.53:  34326 A? relays.ordb.org. (33=
)=20
(DF)

Las dem=C3=A1s lineas, muestran id=C3=A9ntico resultado en los reintentos.

Intente reproducir el problema con otros dominios los cuales no existen y n=
o=20
pude obtener estos resultados.

La hip=C3=B3tesis sobre esto es:

Dado que para poder ser un RBL se tendr=C3=A1 que hacer una implementaci=C3=
=B3n que=20
antes una consulta de DNS responda con 127.0.0.2 para informar que la ip=20
figura en la base de datos, pero dado que el servicio de rbl de=20
relays.ordb.org no est=C3=A1 funcionando, el DNS de este servidor est=C3=A1=
=20
respondiendo a todas las consultas con un 127.0.0.2 y el dns de mi servidor=
=20
trata de atenderlo como un pedido de loopback.

Esta hip=C3=B3tesis tiene el problema que no puedo comprobarlo ya que no te=
ngo=20
acceso a la configuraci=C3=B3n actual de relays.ordb.org, pero si enteiendo=
 que=20
usan un sistema tipo rbldn http://www.ladro.com/docs/dns/rblsmtpd.html para=
=20
brindar el servicio.

=C2=BFAlguna idea sobre esto? =C2=BFA alguno le a pasado? =C2=BFPor que hac=
e mi DNS consultas=20
desde 127.0.0.2 cuando no tendr=C3=ADa que hacerlas?


=2D-=20

Sebasti=C3=A1n D. Criado - scriado{en}ciudad.com.ar
L.U.G.R.o - http://www.lugro.org.ar
GNU/Linux Registered User # 146768
=2D------------------------------------------------------------------
"Si el Universo fuera un programa estar=C3=ADa hecho en C, y correr=C3=ADa =
sobre
un sistema UNIX"
                                                   An=C3=B3nimo.

		=09

--nextPart14451459.SAYXv805CM
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQBFrnAK8hmHQ8ZCg0IRAnqSAJ9u1A2d399ukK1KZUCn+MNVtJq3BACeKNqD
woEUd0m0GLdjqinY/UxZU2Q=
=7MoJ
-----END PGP SIGNATURE-----

--nextPart14451459.SAYXv805CM--