Esta pagina se ve mejor con JavaScript habilitado

MASQUERADE/SNAT - Port Redirection Iptables

 ·  🎃 kr0m

Iptables es una herramienta muy útil en la vida de todo sysadmin, con ella se puede filtrar tráfico, redirigirlo, realizar modificaciones sobre este o incluso priorizarlo. En esta ocasión veremos como natear/enmascarar una red y redirigir tráfico de entrada, este suele ser un escenario típico en una red casera en la que tenemos un router que sirve de gateway al resto de equipos. De este modo con una sola ip pública podremos salir a Internet y si necesitamos que algún puerto de uno de los equipos internos esté accesible al exterior será posible.

Lo primero que debemos tener claro es la diferencia entre enmascarar y source-natear, enmascarar dejaremos que el kernel decida que ip origen debe utilizar cuando reenvie el paquete, en cambio con SNAT decidiremos nostros que ip debe utilizarse, esto resulta útil si se tienen varias ips WAN por ejemplo y deseamos utilizar una u otra dependiendo del equipo interno de nuestra LAN.

Primero habilitaremos el enrutado en el kernel:

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1
sysctl -p

Si queremos enmascara es tan sencillo como:

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0  -j MASQUERADE

En cambio si queremos hacer SNAT:

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 -j SNAT --to-source 72.23.11.111

Otro aspecto interesante de iptables es la redirección de puerto, esto se consigue del siguiente modo:

iptables -t nat -A PREROUTING -s 192.168.200.0/24 -d 0.0.0.0/0 -p tcp --dport 80 -j REDIRECT --to-port 3128

Para una redirección a otra máquina:

iptables -t nat -A PREROUTING -p tcp --dport 32002 -j DNAT --to-destination 10.0.0.2:22

Si te ha gustado el artículo puedes invitarme a un RedBull aquí