El propósito del Enmascaramiento IP es permitir que las máquinas con direcciones IP privadas y no enrutables en su red accedan a Internet a través de la máquina que realiza el enmascaramiento. El tráfico de su red privada destinado a Internet debe ser manipulado para que las respuestas puedan ser enrutadas de vuelta a la máquina que hizo la solicitud. Para ello, el kernel debe modificar la dirección IP source de cada paquete para que las respuestas sean enrutadas de vuelta a él, en lugar de a la dirección IP privada que hizo la petición, lo que es imposible a través de Internet. Linux usa Connection Tracking (conntrack) para hacer un seguimiento de qué conexiones pertenecen a qué máquinas y redirigir cada paquete de retorno en consecuencia. El tráfico que sale de su red privada se «disfraza» de haberse originado desde su máquina de puerta de enlace Ubuntu. En la documentación de Microsoft, este proceso se denomina Compartir conexión a Internet.
Instrucciones para enmascarar IP
Esto se puede lograr con una sola regla iptables, que puede diferir ligeramente según la configuración de su red:
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o ppp0 -j MASQUERADE
.
El comando anterior asume que su espacio de direcciones privado es 192.168.0.0.0/16 y que su dispositivo para Internet es ppp0. La sintaxis se desglosa de la siguiente manera:
- -t nat — la regla es ir a la mesa nat
- -A POSTROUTING — la regla debe ser añadida (-A) a la cadena POSTROUTING
- -s 192.168.0.0.0/16 — la regla se aplica al tráfico que se origina desde el espacio de direcciones especificado
- -o ppp0 — la regla se aplica al tráfico programado para ser enrutado a través del dispositivo de red especificado
- -j MASQUERADE — el tráfico que cumple esta regla es «saltar» (-j) al objetivo de MASQUERADE para ser manipulado como se describe arriba
Cada cadena en la tabla de filtros (la tabla por defecto, y donde ocurre la mayor parte o todo el filtrado de paquetes) tiene una política por defecto de ACEPTAR, pero si está creando un cortafuegos además de un dispositivo de puerta de enlace, es posible que haya configurado las políticas en DESCARGAR o RECHAZAR, en cuyo caso su tráfico enmascarado debe permitirse a través de la cadena de TRANSPARENCIA para que la regla anterior funcione:
sudo iptables -A FORWARD -s 192.168.0.0/16 -o ppp0 -j ACCEPT
sudo iptables -A FORWARD -d 192.168.0.0/16 -m state –state ESTABLISHED,RELATED -i ppp0 -j ACCEPT
>.
Los comandos anteriores permitirán que todas las conexiones de su red local a Internet y todo el tráfico relacionado con esas conexiones regresen a la máquina que las inició.