[LUG.ro] Iptables y frowarding

Mario Oroz jmoroz en uol.com.ar
Mar Dic 21 08:42:41 ART 2010


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

El 20/12/2010 06:12 p.m., Sebastian Dominguez escribió:
> El 20/12/10 15:08, Mario Oroz escribió:
>> El 17/12/2010 10:40 a.m., Mey escribió:
>>> El vie, 17-12-2010 a las 10:06 -0300, Mario Oroz escribió:
>>>> Estoy probando un servicio que esta escuchando en el puerto tcp 23999
>>>> en una pc con IP 192.168.1.222 dentro de mi LAN, la cual tiene un
>>>> gateway/firewall con IP 192.168.1.254 haciendo NAT.
>>>>
>>>> Lo que estoy intentando es forwardear las conexiones que llegan al firewall
>>>> desde internet hacia el servicio escuchando en la PC 192.168.1.222:23999.
>>>>
>>>> Con la lineas siguientes logro atender peticiones desde INETRNET.
>>>>
>>>> $IPTABLES -t nat -A PREROUTING -i ppp0 -p tcp --dport 23999 -j DNAT
>>>> - --to-destination 192.168.1.22:23999
>>>> $IPTABLES -A FORWARD -i ppp0 -o eth0 -p tcp --dport 23999 -j ACCEPT
>>>>
>>>> ppp0 ->  iface de INETRNET del firewall
>>>> eth0 ->  iface de la LAN del firewall
>>>>
>>>>
>>>> PERO; las peticiones desde una IP dentro de la LAN distinta o igual a la del PC
>>>> con el servicio en 192.168.1.222:23999, invocando la IP del firewall
>>>> 222.145.2.66:23999 no son contestadas!.
>>>
> Me engancho medio tarde al hilo. no tengo los correos anteriores.
> 
> Esta perfecto que no sean contestadas las peticiones.
> 
> Primero no entran en el DNAT porque tenes interface de entrada ppp0 y tu red
> interna entra por la eth0. Tendrias que hacer mas generica la regla de DNAT
> haciendolo por ip publica del router al estilo
> 
> $IPTABLES -t nat -A PREROUTING -d 222.145.2.66 -p tcp --dport 23999 -j DNAT
> - --to-destination 192.168.1.22:23999
> 
> 
> Segundo el forward no te va a dejar pasar las conexiones porque nuevamente la
> regla posee interfaz de entrada ppp0. nuevamente tendrías que hacer mas generica
> la regla.
> 
> Por último al servidor destino le llegan las conexiones desde la ip interna
> original, por lo que va a contestarle directamente  (y no a travez del router).
> Esto te va a generar seguramente problemas por lo que necesitas cambiar la ip de
> origen para esas conexiones a, por ejemplo, la ip publica del router. En este
> caso intenta ser lo mas detallado posible en la regla para no enmascarar otras
> conexiones. Recorda que en la cadena POSROUTING no podes utilizar -i
> <interfazEntrada>.
> 
> Juntando todo, en el orden mencionado, quedaría algo similar a lo siguiente
> 
> $IPTABLES -t nat -A PREROUTING -p tcp --dport 23999 -d 222.145.2.66 -j DNAT --to
> $192.168.1.22 (si el puerto es el mismo no hace falta aclarar)
> $IPTABLES -A FORWARD -p tcp --dport 23999 -d $192.168.1.22 -j ACCEPT
> $IPTABLES -t nat -A POSTROUTING -o $eth0 -p tcp --dport 23999 -s 192.168.1.0/24
> -d $192.168.1.22 -j SNAT --to $222.145.2.66
> 
> 
> 
> Te toca analizar si los rangos de red estan correctas y si las reglas no son mas
> permisivas de lo que necesitas (desconozco cuantas placas/zonas tenes en tu red)
> 
> Saludos!

Seba, sin palabras... excelente la explicación. Las reglas que propusiste al
final, luego de adaptarlas a las ip's que manejo hicieron lo que necesitaba.

Al ir leyendo comprendí donde estaba el error al especificar incorrectamente los
parametros -i/-o sobre las iface y -s/-d sobre la ip's; entendiendo bien el
flujo que debían seguir lo paquetes para lograr la conexión que necesitaba.

Gracias.
Mario.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk0QkrEACgkQYT+KMx1V+VygaQCgzjS8or0HMIyR1wSow6apN46h
EhQAniKeBjoflWpbfUB10devCB7/85s3
=Wrwf
-----END PGP SIGNATURE-----


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