[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: duda iptables



El 11/01/08, Antonio Trujillo Carmona <trujo@dti2.net> escribió:
> El jue, 10-01-2008 a las 08:32 -0300, Gonzalo Rivero escribió:
> > Hola, quiero redireccionar un webserver que tengo en mi red local con ip privada
> > iptables -t nat -A PREROUTING -d x.y.z.w -p tcp -m tcp --dport 80 -j
> > LOG --log-prefix "lalala DNAT lalala"
> > iptables -t nat -A PREROUTING -d x.y.z.w -p tcp -m tcp --dport 80 -j
> > DNAT --to-destination a.b.c.d
> >
> > x.y.z.w es la ip con la que me ve el mundo, a.b.c.d es el webserver
> > que está en otra computadora.
> > La primera línea es para hacer un log y ver si funciona. Pero no
> > funciona, aunque hace el log. No funciona significa que solo obtengo
> > timeouts en el navegador.
> > Se me ocurrió agregar otra linea igual, pero con OUTPUT (para los
> > paquetes generados en esa computadora) y cuando pongo en el navegador
> > x.y.z.w me reenvía correctamente a a.b.c.d, la pregunta es: ¿que estoy
> > haciendo mal en lo anterior?
> >
> > pd: tail /var/log/syslog
> > Jan 10 08:44:51 localhost kernel: lalala DNAT lalala IN=eth2 OUT=
> > MAC=00:08:54:45:8f:fd:00:1b:d5:0f:42:93:08:00 SRC=e.f.g.h DST=x.y.z.w
> > LEN=48 TOS=0x00 PREC=0x00 TTL=124 ID=47944 DF PROTO=TCP SPT=3682
> > DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0
> > Jan 10 08:44:57 localhost kernel: lalala DNAT lalala IN=eth2 OUT=
> > MAC=00:08:54:45:8f:fd:00:1b:d5:0f:42:93:08:00 SRC=e.f.g.h 0
> > DST=x.y.z.w LEN=48 TOS=0x00 PREC=0x00 TTL=124 ID=47945 DF PROTO=TCP
> > SPT=3682 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0[/code]
> >
> > ¿eso significa que al menos lot está intentando?
> >
> No estoy muy seguro pero creo que el problema esta en la ruta que siguen
> los paquetes, me explico un paquete con dirección A de fuera de tu red
> llega al router y este identifica que es una petición para el puerto 80
> y lo redirige a la maquina correspondiente esta maquina recibe el
> paquete, lo ve como un "marciano" (que no corresponde a la red) y no
> sabe como contestarle. cuando la redirección es desde dentro de la red
> si funciona porque el paquete no es un marciano.
> Prueba a poner un "MASQUERADE" en el "POSTROUTING" para que el paquete
> no sea un marciano, seria al así como:
> "iptables -t nat -A POSTROUTING -j MASQUERADE -o ethlaqueseainterna".
> y nos cuentas
>
Tiene sentido, pero estos días el nat está contra mí :'(
Mis reglas quedaron (prefix: iptables -t nat)

-A PREROUTING -d 190.136.36.34 -p tcp -m tcp --dport 80 -j LOG
--log-prefix "lalala DNAT afuera:       "
-A PREROUTING -d 190.136.36.34 -p tcp -m tcp --dport 80 -j DNAT
--to-destination 192.168.1.5
-A POSTROUTING -j LOG -o eth0--log-prefix "MASQ--->"
-A POSTROUTING -o eth0 -j MASQUERADE

190.136.36.34 es la ip pública y está en eth2. eth0 es la ip privada y
192.168.1.5 es donde quiero llegar.
Hago la prueba y me sale el log 'normal' de la primera regla:
Jan 11 10:36:38 localhost kernel: lalala DNAT afuera:       IN=eth2
OUT= MAC=00:08:54:45:8f:fd:00:1b:d5:0f:42:93:08:00 SRC=190.137.215.130
DST=190.136.36.34 LEN=48 TOS=0x00 PREC=0x00 TTL=124 ID=10340 DF
PROTO=TCP SPT=2843 DPT=80 WINDOW=65535 RES=0x00 SYN URGP=0

Pero el log del enmascaramiento sale bien extraño:
Jan 11 10:51:04 localhost kernel: MASQ--->IN= OUT=eth0
SRC=172.20.2.251 DST=172.20.3.255 LEN=241 TOS=0x00 PREC=0x00 TTL=64
ID=0 DF PROTO=UDP SPT=138 DPT=138 LEN=221
172.20.2.251/29 es la ip privada, eso va a otro router 172.20.2.13 que
una de sus placas es a la red 192.168.1.0/24. Lo rarísimo para mi es
que parece estar mandando al broadcast? (DST=172.20.3.255, mi máscara
termina en 254.0, así que ese es el broadcast), suponiendo que dst
signifique destination, no debería poner 192.168.1.5 o 172.20.2.13?
-- 
http://fishblues.blogspot.com/
http://gonzalor.blogspot.com/
Nacemos desnudos, húmedos, hambrientos y con frío. ¡Y eso es sólo el principio!

Reply to: