Tentei encaminhar um ip: port específico para um ip: port específico em uma máquina Linux. Eu usei o iptables com o seguinte comando:
iptables -t nat -A OUTPUT -p tcp -d 10.0.2.5 --dport 80 -j DNAT --to-destination 69.31.21.42:80
10.0.2.5 é um endereço arbitrário que eu escolhi para ver se o comando funciona e 69.31.21.42 é um endereço de um site público. Verifiquei então que o encaminhamento funcionava: corri nmap -p 80 10.0.2.5e obtive um resultado positivo. Muito bom até agora. No entanto, tentei correr nmap -p 81 10.0.2.5e também obtive um resultado positivo. Não era o que eu esperava, pois queria que a porta 80 fosse encaminhada. Eu corri iptables -t nat -Le notei que, de fato, todo o host 10.0.2.5 é mapeado para 69.31.21.42:80:
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DNAT tcp -- anywhere ip-10-0-2-5.ec2.internal tcp dpt:http to:69.31.21.42:80
O que está faltando no meu comando iptables? Por que não está --dportfuncionando?
iptablessaída com um nome de hostip-10-0-2-5.ec2.internal, o que provavelmente não é10.0.2.15. Em segundo lugar, estamos perdendo resultados importantes, como restrições de porta; tente usariptables -L -n -v, não apenasiptables -Le atualize essa regra acima.