iptables SAÍDA DNAT não funciona

1

Eu tentei fazer algo semelhante a essa pergunta

link

Por isso, quero que todo o tráfego de saída para a porta 44444 seja redirecionado para 1.1.1.1:80

iptables -t nat -A OUTPUT -p tcp --dport 44444 -j DNAT --to-destination 1.1.1.1:80
iptables -t nat -A OUTPUT -p tcp --dport 44444 -j LOG --log-prefix

No entanto, o tráfego ainda vai para o IP original, não para 1.1.1.1:80

Estou tentando configurá-lo no meu roteador OpenWRT, verison é:

MTK OpenWrt SDK V3.4
revision : e7847192
benchmark : APSoC SDK 5.0.1.0
Linux 3.10.14
iptables v1.4.21

Existe alguma coisa que eu fiz de errado?

    
por est 17.01.2018 / 16:33

1 resposta

0

Parece funcionar para mim:

# iptables -tnat -A OUTPUT -p tcp --dport 44444 -j DNAT --to-destination $someip:8888
$ nc $someotherip 44444
# tcpdump -n ...
18:23:54.699942 IP [my ip].55212 > [someip].8888: Flags [S], seq 1138760196, ...

Se eu entendi essa parte da página do manual iptables corretamente, OUTPUT aplica-se apenas a conexões que se originam do próprio host, não conexões roteadas. Tem certeza de que não quer colocar a regra em PREROUTING ?

nat:
This table is consulted when a packet that creates a new connection is encountered. It consists of four built-ins: ..., OUTPUT (for altering locally-generated packets before routing), and POSTROUTING (for altering packets as they are about to go out).

    
por 17.01.2018 / 17:29