DMZ con DNS

Miguel Oyarzo O. admin en aim.cl
Vie Ene 2 13:30:47 CLST 2009


Wladimir Torres Correa escribió:
> 
> El vie, 02-01-2009 a las 16:18 +0100, Miguel Oyarzo O. escribió:
>> Wladimir Torres Correa escribió:
>>> Querida Lista:
>>> Tengo un fw con entrada desde Internet y salida hacia una dmz y una red
>>> local.En la dmz existía un servidor web que hace las veces de DNS.He
>>> formateado el servidor previo respaldo de las zonas y del sitio web. He
>>> vuelto a instalar ambos servicios en la máquina formateada y no puedo
>>> hacer que se vean desde fuera mis archivos de zona, creo que por causa
>>> de mi fw que extrañamente me funcionaba super bien antes del format.
>>> Acá envío mis reglas iptables que tengo para abrir el puerto. He
>>> comprobado con nmap localhost y lastimosamente me doy cuenta que el
>>> puerto 53 no está abierto. Creo que me falta una regla de iptables, a
>>> ver si alguien tira una ayudita nueva, gracias:
>>>
>>> Politica por defecto:
>>> $IPTABLES -P INPUT DROP
>>> $IPTABLES -P FORWARD DROP
>>> $IPTABLES -P OUTPUT ACCEPT
>>>
>>> TABLA FILTER:
>>> $IPTABLES -A INPUT -m state --state NEW -p TCP --dport 53 -j ACCEPT
>>> $IPTABLES -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT
>>>
>>> TABLA NAT, prerouting
>>> $IPTABLES -t nat -A PREROUTING -i $INET_IFACE -p TCP -d $HTTP_IP --dport
>>> 53 -j DNAT --to-destination $DMZ_HTTP_IP
>>> $IPTABLES -t nat -A PREROUTING -i $INET_IFACE -p UDP -d $HTTP_IP --dport
>>> 53 -j DNAT --to-destination $DMZ_HTTP_IP
>>>
>>> TABLA NAT, postrouting
>>> $IPTABLES -t nat -A POSTROUTING -p TCP -d $DMZ_HTTP_IP --dport 53 -j
>>> SNAT --to-source $HTTP_IP
>>> $IPTABLES -t nat -A POSTROUTING -p udp -d $DMZ_HTTP_IP --dport 53 -j
>>> SNAT --to-source $HTTP_IP
>>>
>>> Muchas gracias, Wladimir 
>>
>> Tu regla PREROUTING  te pre-enrutará los paquetes entrantes a tu FW 
>> (interfaz publica) hacia tu DNS (direccion privada supongo).
>>
>> Si es asi, has pensando como saldra la respuesta desde ese DNS interno 
>> hacia Internet? Pienso que te falta:
>> iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
> Tengo esa regla 
> 
>> Ademas, para que aplicas NAT hacia la DMZ? Si se trata de una tercera 
>> interfaz para tu DMZ  con ser preenrutada es suficiente (las tablas de 
>> ruta + kernel haran el resto). Solo deberias usar  SNAT en la interfaz 
>> publica.
>>
>> Por ultimo creo que es mala politica usar POSTROUTING  sin -o iface,
>> podrias tener resultados inesperados.
>>
>> Quizas podrias explicar mejor el esquema,  te lei pero no entiendí.
>> Cuantas interfaces tienes?, que esta conectado a que?, que 
>> direccionamiento asignaste a las redes y al host?
>> Te faltó pegar parte de tu script iptables?
>>
>> No pruebes el DNS server con nmap, mejor usa
>>
>> dig dominio @IP_DE_TU_BIND
>> Asi sabras si esta respondiendo como corresponde.
> Efectivamente 3 tarjetas:
> 
> Internet ------> FW -------> lan
> 		    -------> dmz
> 
> Hago Nat hacia la Lan y hacia la DMz. En la DMZ está el servidor DNS y
> el servidor web en una misma máquina. mmmmm ¿alguna recomendación en
> cuanto a sacar el DNS hacia el firewall? 
> 	

Come te dije, no necesitas SNAT hacia la DMZ, solo con el pre-enrutado 
es suficiente. Tu DNS se supone que tiene como gateway la interfaz de tu 
FW, por lo que los paquetes sabran regrasar por si solos.

Yo eliminaria:

1)
$IPTABLES -A INPUT -m state --state NEW -p TCP --dport 53 -j ACCEPT
$IPTABLES -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT

*** Esto es por que la tabla INPUT jamas se tocará si tienes un 
prerouting a la misma puerta (osea, está demas). INPUT es cuando el 
servicio esta en la misma maquina, no es tu caso.

2)
$IPTABLES -t nat -A POSTROUTING -p TCP -d $DMZ_HTTP_IP --dport 53 -j 
SNAT --to-source $HTTP_IP
$IPTABLES -t nat -A POSTROUTING -p udp -d $DMZ_HTTP_IP --dport 53 -j 
SNAT --to-source $HTTP_IP

*** Como te dije, SNAT esta demas aqui: no requieres traducir 
direcciones en conexiones punto-punto ruteables, sino multipunto-punto 
(no ruteables)

Deberias agregar:

/sbin/iptables -A FORWARD -p udp -j ACCEPT --dport 53
/sbin/iptables -A FORWARD -p tcp -j ACCEPT --dport 53

Asi desde tu LAN puedes hacer consultas a tu DNS (si es que es 
recursivo), y el DNS podrá atravezar tu FW hacia Internet, cuando deba 
notificar, transferir zonas, etc.

avisa si corre al fin tu DNS

Saludos,

Miguel Oyarzo O.
Austro Internet S.A.
Punta Arenas









Más información sobre la lista de distribución Linux