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
page revision: 5, last edited: 29 Aug 2009 16:40