iptables – permitir salida a internet

Partimos de la base de un servidor con dos tarjetas de red, eth0 la externa conectada a la red de la puerta de enlace a Internet, y eth1 la interna conectada a la red de la empresa. La configuración de eth1 es indiferente, en mi caso 192.168.200.0/24, pero la que enrutará pinta así:
auto eth0 iface eth0 inet static address 192.168.1.254 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1
Siendo 192.168.1.0 la subred donde está el router (192.168.1.1 en mi caso).
Tenemos que activar ipforwarding, en tiempo real:
# sysctl -w net.ipv4.ip_forward=1
Para hacer los cambios persistentes hay que editar el fichero /etc/sysctl.conf y quitar el comentario (#) de la linea donde se establece la asignación net.ipv4.ip_forward=1
Después necesitamos unas iptables mágicas como estas:
Si la política por defecto es DROP, añade esta primero:
# iptables -A INPUT -i eth0 -j ACCEPT
La que enmascara la IP interna con la pública para permitir uso de Internet en la LAN:
# iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o eth0 -j MASQUERADE
Siendo eth0 la interfaz conectada al router y 192.168.200.0/24 nuestra LAN de clientes ansiosos de Internet.
Para hacer las reglas iptables persistentes primero las guardamos,
# iptables-save > /etc/mis-iptables
y después podemos editar el fichero /etc/network/interfaces y añadir esta linea:
post-up iptables-restore < /etc/mis-iptables
Pingback: iptables – proxy transparente – jblanco.org