Como redirecionar uma porta usando IPTables no Red Hat Linux (RHEL)?

Como redirecionar uma porta usando IPTables no Red Hat Linux (RHEL)?

Gostaria de encaminhar a porta 80 para 8080. Então tentei editar /etc/syscongfig/iptables:

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

Mas consegui:

# 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.

Qual é o problema? Como isso deveria ser feito?

Responder1

O arquivo /etc/syscongfig/iptablestem estrutura correta para iptables-restore?

Tente adicionar esta regra manualmente ao firewall

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

E compare /etc/sysconfig/iptablescom a saída do iptables-savecomando

Responder2

Isto é seuiptablesregra:

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

Mas acredito que deveria ser algo assim:

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

Observe que -m tcpé adicionado. Embora -p tcpcorresponda ao protocolo da regra ou do pacote a ser verificado, -m tcpinforma explicitamente ao IPTables para corresponder a um pacote TCP. Parece confuso, mas pelo que sei, -p tcpprecisa ser combinado -m tcpquando regras específicas de porta são invocadas.

Se alguém puder expandir a lógica/lógica por trás desse requisito, fale sobre isso nos comentários.

informação relacionada