Estou tentando configurar o encaminhamento de porta no UDP port 12345
usando port 54321
o seguinte:
iptables -t nat -A PREROUTING -p udp -i eth0 -d 192.168.0.1 --dport 12345 -j DNAT --to 192.168.0.1:54321
iptables -A FORWARD -p udp -i eth0 -d 192.168.0.1 --dport 54321 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Isso funciona bem para novas conexões, porém não funcionaria para conexões atualmente ativas.
Para esclarecer o que quero dizer, digamos que antes de adicionar as regras, haja uma conexão ativa de 192.168.0.2:55555
<---> 192.168.0.1:12345
e estou tentando redirecionar todas as conexões de entrada 192.168.0.1:12345
para 192.168.0.1:54321
.
Depois de adicionar as duas regras acima, todos os outros pacotes destinados a 192.168.0.1:12345
são recebidos em, 192.168.0.1:54321
exceto os de 192.168.0.2:55555
.
Acho que o estado da conexão desempenha um papel nisso. Como posso resolver isso e fazer com que os pacotes 192.168.0.1:55555
destinados port 12345
sejam entregues port 54321
?
Responder1
Eu descobri como fazer isso!
Você precisa usar o REDIRECT no NAT! Porém antes disso você deve apagar a entrada correspondente a esta conexão do conntrack! Algo como o seguinte
conntrack -D -p udp -d 192.168.0.1 --dport=55555