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: