¿Cómo redirigir un puerto usando IPTables en Red Hat Linux (RHEL)?

¿Cómo redirigir un puerto usando IPTables en Red Hat Linux (RHEL)?

Me gustaría reenviar el puerto 80 al 8080. Así que intenté editar /etc/syscongfig/iptables:

-A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Pero tengo:

# service iptables restart
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
iptables: Applying firewall rules: iptables-restore v1.4.7: 
          Line 8 seems to have a -t table  option.

¿Cuál es el problema? ¿Cómo deberia hacerse?

Respuesta1

¿Tiene el archivo /etc/syscongfig/iptablesla estructura correcta para iptables-restore?

Intente agregar esta regla manualmente al firewall

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Y comparar /etc/sysconfig/iptablescon la salida del iptables-savecomando

Respuesta2

Esta es tuiptablesregla:

-A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Pero creo que debería ser algo como esto:

-A PREROUTING -t nat -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080

Tenga en cuenta que -m tcpse agrega. Si bien -p tcpcoincide con el protocolo de la regla o del paquete a verificar, -m tcple indica explícitamente a IPTables que coincida con un paquete TCP. Parece confuso, pero por lo que sé, -p tcpdebe combinarse con -m tcpel momento en que se invocan reglas específicas del puerto.

Si alguien más puede ampliar la justificación/lógica detrás de este requisito, infórmenos al respecto en los comentarios.

información relacionada