Redirigir un puerto en Debian Etch usando iptables
No soy ningún experto en iptables, honestamente no se aún como funcionan, pero necesitaba redireccionar un puerto (el 80 que es el servidor web) de una pc que estaba conectada directamente a internet a una pc interna de la red sin conexión a la red así que aprendí lo mínimo e imprescindible para llegar al siguiente comando que hizo la magia que necesitaba.
# iptables -t nat -A PREROUTING -p tcp -d <public-ip> --dport 80 -j DNAT --to-destination <private-ip>:80
Reemplazando, donde dice public-ip por la ip fija que tiene el servidor en internet,y en private ip, la dirección IP interna de la pc a la que quería redirigir el puerto 80
En lugar de -d <public-ip> puedo usar -i eth0 sin embargo si debo redirigir una interfaz virtual (esas que son por ejemplo eth0:1) parece que no funciona correctamente (tira un warning). Lamentablemente justo ese era mi caso, asi que debi usar la ip.
Luego, era hora de probarlo, y como era de esperar. ¡No andaba!
Me faltaba habilitar en el kernel el forwarding de paquetes.
Para saber si el packet forwarding está activado se utiliza el siguiente comando:
# sysctl net.ipv4.ip_forward
Si este comando retorna 0, significa que no esta activado, por lo que para activarlo procedemos a ejecutar el siguiente comando:
# sysctl -w net.ipv4.ip_forward=1
Luego de haber hecho esto funcionó de mil maravillas.
Obviamente cuando reinicie la computadora perderé esta configuraciones, por lo que sería buena idea hacer estos cambios permanentes, pero eso es historia de otro post.
Tienes razon yo me pelee un monton con eso y al final tenia que activar el ip_forward, y como dice funciono . . .
Mi problema (o duda) es:
El firewall esta en 192.168.13.28 y el servidor web en una subred atras del firewall, la ip del servidor web es 192.168.235.147
cuando doy 192.168.13.28 desde otra computadora de la red 192.168.13.0 funciona de maravillas, pero si en la misma cimpu donde tengo el firewall le doy 192.168.13.28 (la ip del firewall) no me redirige al servidor en la subred.
He intentado con -i lo para la interfaz loopback pero aun asi no jala, tambien he intentado poner esto
iptables -t nat -A PREROUTING -p tcp -s 192.168.13.28 -d 192.168.13.28 –dport 80 -j DNAT –to-destination 192.168.235.147
y no funciona, cabe mencionar que para la subred, el firewall usa una interfaz virtual eth0:1 y he leido que hay problemas con iptables y las interfaces virtuales, ojala me haya explicado y algun comentario sobre algo que este haciendo mal sera muy bien recibido de antemano gracias, chido por tu blog