Como configurar iptables para nat
Tal vez a alguien les sirva esto. Si tienen una conexion a internet, y quieren compartirla a una red, con linux, se puede hacer con iptables. En mi caso, tengo una maquina con SuSE como firewall (iptables, o el susefirewall), con dos tarjetas de red. La eth0 esta conectada a la red externa ( internet ) y la eth1 a la red interna ( lan ). Solo hay que hacer la siguiente configuracion:
#para habilitar el nat
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
y configurar las maquinas dentro de la lan con la IP que tenga eth1 como router. Por ejemplo, si la eth1 le asignas 192.168.0.1, … entonces las maquinas dentro de la red las configuras como
ifconfig ethX 192.168.0.100 netmask NETMASK
route add default gw 192.168.0.1
Otra opcion es configurar un DHCP server ( fue lo que hice en mi caso ) para que pueda dar los DNS y el router a los clientes de DHCP.
Ah! Y si tienes IPs publicas extras, que le quieras asignar a maquinas dentro de la lan, se puede hacer: suponiendo que tienes una ip publica extra configura usando ifconfig para darle un alias a la tarjeta de red que tengas en la red publica, o la herramienta que tengas en tu distro ( dentro del yast en suse, o netconfig o lo que sea ). Despues, necesitas crear dos reglas:
iptables -t nat -A PREROUTING -p tcp -d 64.233.167.99 -j DNAT --to-destination 192.168.0.100
iptables -A FORWARD -i eth0 -d 192.168.0.100 -j ACCEPT
( suponiendo que tu ip local sea 192.168.0.100 y tu ip externa sea 64.233.167.99 … y si, esta ip es de google.com jaja )
Las reglas de arriba se pueden usar con –dport para direccionar solamente un puerto, en lugar de la IP completa.
Suerte.
