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

Re: ip_forward - iptables



Velkro пишет:

gente:
estuve leyendo acerca de forwarding con iptables, y me surgieron algunas
dudas:

la configuracion de red actual que tengo para probar (3 pcs) es:
ntbk) eth0: 169.254.10.22
server) eth0: 169.254.10.1, eth1: 169.253.10.1
pc1) eth0: 169.253.10.11

1) porque con solo habilitar el ip_forward funciona todo perfecto?
hago un 'echo 1 > /proc/sys/net/ipv4/ip_forward' en el server para habilitar
el forward, luego hago un ping desde la pc 169.254.10.22 a la 169.253.10.11
y funciona perfecto (recibo el echo reply), lo mismo para el caso inverso.
Eso es lo que hace el ip_forward

es decir, porque no necesito agregar estas reglas al iptables para que
forwardee?
iptables -A FORWARD -d 169.254.0.0/255.255.0.0 -o eth0 -j ACCEPT
iptables -A FORWARD -d 169.253.0.0/255.255.0.0 -o eth1 -j ACCEPT
El paquete llega a la interface de red de tu servidor, porque es usado de gateway, y se guia por la mac address, no por la IP. Una vez en tu maquina, como esta hablitado el forward, se reenvia... No se que otro porque darte, asi es la implementacion del forwarding en el kernel. La tabla FORWARD sirve para permitir reenviar solo algunos [tipos de] paquetes, bloqueando el resto.

intuyo que esto funciona porque son redes locales, pero esto me hace pensar
un rato...
supongamos lo siguiente: que sucederia si yo me conectara por modem a
internet, y alguien consigue hacer llegar a mi pc (entrando por el modem) un
paquete con direccion de destino: 169.254.10.22? ese paquete seria
forwardeado y llegaria realmente a la pc ntbk?
Asi es. Contra eso existe una cosa llamada "spoof protect", que rechaza paquetes con destino a rangos de IP's privados en la interface externa.
man interfaces

2) una ultima cosa: que hace la siguiente linea?
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Es una regla para la tabla "nat", que agarra todos los paquetes que llegan a la maquina y no son para alguen local (la MAC coinside porque es el gateway, pero la IP destino no), los "enmascara" (altera la IP origen del paquete y se pone un tache mental, de a donde enviar la respuesta), y los manda a la ppp0. Normalmente es bueno especificar tanto la interface de origen (-i eth0) como las IP's de origen (-s 10.10.1.0/24 -d ! 10.10.1.0/24, en mi caso), para que sea lo mas estricto posible.

--
Alexander aka alk[ anoide | olico | ulero | ero | atraz]
(mi materializacion es fisica, mi escencia es matematica)



Reply to: