Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero

Visualización y Gestión de NAT en iptables

Loading

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:

CadenaFunción principal
PREROUTINGSe aplica a los paquetes antes de que se decida la ruta. Aquí se configuran reglas DNAT (Destination NAT).
POSTROUTINGSe aplica a los paquetes después de que se decida la ruta. Aquí se configuran reglas SNAT o MASQUERADE.
OUTPUTSe 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 -v

Explicació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/0

Interpretación:

  • La regla de PREROUTING indica que todo el tráfico TCP entrante por el puerto 80 en eth0 se redirige a la IP interna 192.168.1.100:80 (DNAT).
  • La regla de POSTROUTING aplica MASQUERADE a todo el tráfico que sale por eth0 desde la red interna 192.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 -S

Ejemplo 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 MASQUERADE

Este formato muestra cómo se configuraron las reglas y puede ser usado directamente para recrearlas en otro sistema.

Resumen práctico

  1. Las reglas NAT se gestionan en la tabla nat, no en la tabla por defecto (filter).
  2. DNAT se aplica en la cadena PREROUTING para redirección de paquetes entrantes.
  3. SNAT/MASQUERADE se aplica en la cadena POSTROUTING para modificar la IP de salida.
  4. Para inspeccionar reglas se usan los comandos:
    • Detalladas: sudo iptables -t nat -L -n -v
    • Sintaxis de comandos: sudo iptables -t nat -S

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.

You may also like...