Pacote Iptables src ip não NATed em caso de resposta icmp e ack tcp

Pacote Iptables src ip não NATed em caso de resposta icmp e ack tcp

Estou usando iptablesem conjunto com net-filterqueue para alterar pacotes programaticamente.

Estou usando iptablesregras no laboratório do Ubuntu com 2 NICs eth0 para a internet e eth1 para a LAN. Usei as conhecidas regras de iptables para NAT com mascaramento em eth0.

sudo iptables --table nat --append POSTROUTING -o eth0 -j MASQUERADE 
sudo iptables -append FORWARD -i eth1 -j ACCEPT. 
sudo iptables -t mangle -A PREROUTING -j NFQUEUE --queue-num 0 
sudo iptables -t mangle -A OUTPUT -j NFQUEUE

Essas 4 regras são usadas para me ajudar a capturar pacotes dentro do meu programa e modificar pacotes ou descartar o que eu quero usar nfq_set_verdict.

Na verdade tudo está indo como eu esperava, ou seja, os três tipos de protocolo icmp, tcpe udpos pacotes são modificados e reinjetados. Na fila, a eth0 sai para a internet tomando o endereço IP da eth0 como endereço de origem (efeito do uso da regra MASQUERADE NAT).
Isso é verdade para todos os pacotes, EXCETO: ping ICMPresponderou TCPCONFIRMARpacotes.
Eles saem para a internet pegando o ip privado do dispositivo lan - 192.168.xx na eth1 e chegam ao outro lado com esse endereço IP de origem privada.

Alguma ideia. THX.

informação relacionada