Ip Masquerading o salida a Internet a través de un servidor Ubuntu

El propósito del IP Masquerading es el de enmascarar la IP de una red privada en la salida a Internet, que se hace pasando por un servidor. A este servidor posteriormente le podríamos colocar algún proxy tipo Squid, que nos permitiera controlar las conexiones de los usuarios.
En el servidor, únicamente tenemos que realizar lo siguiente:

  • Habilitar el forwarding de paquetes IPv4 editando el fichero /etc/sysctl.conf y descomentando la línea:
net.ipv4.ip_forward=1
  • Lo mismo para IPv6:
net.ipv6.conf.default.forwarding=1
  • Ahora ejecutamos sysctl para habilitar las nuevas opciones:
sudo sysctl -p
  • Y ahora creamos la regla para IPtables en la tabla NAT:
sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
  • donde:
    • -s: 192.168.1.0/24 es la red local de origen
    • -o: es la tarjeta de red de salida (en el que caso que tuviéramos dos en el servidor)

Si queremos que se cargue al inicio, añadimos al fichero /etc/rc.local la línea:

sudo iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
  • Para comprobar que está aplicada correctamente (una vez reiniciado el servidor, por ejemplo):
$ sudo iptables -t nat -L

Y nos debe dar una salida similar a esta:

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  localnet/24          anywhere            
MASQUERADE  all  --  localnet/24          anywhere            

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Referencias

https://help.ubuntu.com/8.04/serverguide/C/firewall.html

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License