Estou tentando alterar continuamente as regras nat do iptables, mais precisamente, alterando a porta de destino no tempo de execução. No entanto, vejo que apenas o primeiro pacote em um fluxo atinge a tabela nat. Depois disso, o resto dos pacotes terá automaticamente a mesma ação tomada no primeiro pacote, mesmo que a regra tenha mudado.
por exemplo,
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -i eth0 -j REDIRECT --to-port 9999
ou
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to-port 9999
Isso só terá efeito se a regra existir antes do início do fluxo.
... ...
Além disso, como remédio, tentei interromper o acompanhamento da conexão da seguinte forma:
sudo iptables -t raw -A PREROUTING -p tcp -m tcp --dport 80 -i eth0 -j NOTRACK
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -i eth0 -m conntrack --ctstate UNTRACKED -j REDIRECT --to-port 9999
ou
sudo iptables -t raw -A PREROUTING -p tcp -m tcp --dport 80 -i eth0 -j NOTRACK
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -i eth0 -m state --state UNTRACKED -j DNAT --to-port 9999
mas não está funcionando bem, por favor me ajude neste assunto. Obrigado antecipadamente ...
Tags networking iptables nat linux