La redirección y la traducción de direcciones de red (NAT) son funciones esenciales de iptables
que permiten modificar las direcciones IP de los paquetes de red. A continuación, se presentan algunos ejemplos prácticos.
Para redirigir el tráfico HTTP (puerto 80) a HTTPS (puerto 443), usamos el siguiente comando:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 443
Aplicación práctica: Esto se utiliza para asegurar que todas las conexiones a tu sitio web sean seguras, redirigiendo automáticamente las solicitudes HTTP a HTTPS.
Para configurar NAT y permitir que una red local comparta una conexión a Internet, usamos los siguientes comandos:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
En este ejemplo, eth0
es la interfaz conectada a Internet y eth1
es la interfaz conectada a la red local.
Aplicación práctica: Esto se utiliza en un entorno doméstico o de oficina para permitir que múltiples dispositivos compartan una única conexión a Internet.
Para redirigir el tráfico de un puerto a otro en el mismo servidor, usamos el siguiente comando:
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
Aplicación práctica: Esto se utiliza cuando un servicio está configurado para escuchar en un puerto no estándar, pero deseas que sea accesible a través del puerto estándar (por ejemplo, redirigir el tráfico del puerto 8080 al puerto 80).
Para redirigir el tráfico de un puerto específico a otro servidor, usamos el siguiente comando:
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80
En este ejemplo, todo el tráfico que llega al puerto 80 se redirige al servidor con la IP 192.168.1.2
en el mismo puerto.
Aplicación práctica: Esto se utiliza para distribuir la carga de tráfico entre varios servidores o para acceder a servicios en una red privada desde una red pública[^1^][1].
Para habilitar el reenvío de paquetes en el sistema, usamos el siguiente comando:
sudo sysctl -w net.ipv4.ip_forward=1
Este comando permite que el sistema reenvíe paquetes entre interfaces de red.
Aplicación práctica: Esto es necesario para que las reglas de NAT funcionen correctamente, permitiendo que el tráfico pase a través del sistema.