Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
![]()
En sistemas Linux, iptables es la herramienta fundamental para la gestión de reglas de firewall y NAT (Network Address Translation). Este artículo explica cómo listar y comprender las reglas NAT configuradas en iptables, distinguiendo entre DNAT y SNAT, y cómo interpretar la salida de los comandos.
Tabla NAT en iptables
iptables organiza sus reglas en tablas, siendo las principales:
- filter: tabla por defecto, controla el filtrado de paquetes (ACCEPT, DROP, REJECT).
- nat: tabla dedicada a la traducción de direcciones de red (NAT).
La tabla nat se aplica a los paquetes en el momento de entrada, salida o redirección, y consta de tres cadenas principales:
| Cadena | Función principal |
|---|---|
| PREROUTING | Se aplica a los paquetes antes de que se decida la ruta. Aquí se configuran reglas DNAT (Destination NAT). |
| POSTROUTING | Se aplica a los paquetes después de que se decida la ruta. Aquí se configuran reglas SNAT o MASQUERADE. |
| OUTPUT | Se aplica a los paquetes generados localmente antes de salir. |
Listado de reglas NAT
Para listar las reglas NAT de forma detallada, se utiliza el siguiente comando:
sudo iptables -t nat -L -n -vExplicación de los parámetros:
-t nat→ selecciona la tabla NAT.-L→ lista las reglas.-n→ muestra IPs y puertos en formato numérico, sin resolver nombres.-v→ muestra información detallada, incluyendo contadores de paquetes y bytes.
Ejemplo de salida:
Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 DNAT tcp -- eth0 * 0.0.0.0/0 1.2.3.4 tcp dpt:80 to:192.168.1.100:80
Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE all -- * eth0 192.168.1.0/24 0.0.0.0/0Interpretación:
- La regla de PREROUTING indica que todo el tráfico TCP entrante por el puerto 80 en
eth0se redirige a la IP interna192.168.1.100:80(DNAT). - La regla de POSTROUTING aplica MASQUERADE a todo el tráfico que sale por
eth0desde la red interna192.168.1.0/24, cambiando la IP de origen (SNAT dinámico).
Listado en formato de comandos
Para obtener las reglas NAT en formato de línea de comandos, útil para replicarlas o exportarlas:
sudo iptables -t nat -SEjemplo de salida:
-P PREROUTING ACCEPT
-P POSTROUTING ACCEPT
-P OUTPUT ACCEPT
-A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:80
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADEEste formato muestra cómo se configuraron las reglas y puede ser usado directamente para recrearlas en otro sistema.
Resumen práctico
- Las reglas NAT se gestionan en la tabla
nat, no en la tabla por defecto (filter). - DNAT se aplica en la cadena PREROUTING para redirección de paquetes entrantes.
- SNAT/MASQUERADE se aplica en la cadena POSTROUTING para modificar la IP de salida.
- Para inspeccionar reglas se usan los comandos:
- Detalladas:
sudo iptables -t nat -L -n -v - Sintaxis de comandos:
sudo iptables -t nat -S
- Detalladas:
El conocimiento de estas reglas es esencial para administradores de redes y sistemas, especialmente en escenarios de NAT en servidores de borde, routers Linux, o entornos de contenedores.



