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

1

Estou usando iptables em conjunto com net-filter queue para alterar os pacotes programaticamente.

Estou usando as regras de iptables no ubuntu lab com 2 NICs eth0 para a internet e eth1 para a LAN Eu usei as conhecidas regras 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

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

Na verdade, tudo está indo como estou esperando, ou seja, os três tipos de protocolo icmp , tcp e udp pacotes são modificados e reinjetados. Na fila, em seguida, sai eth0 para a Internet, tendo o endereço IP eth0 como endereço de origem (efeito de usar a regra NAT de MASQUERADE). Isso é válido para todos os pacotes, EXCEPTO: ICMP ping resposta ou pacotes TCP ACK . Eles saem para a internet levando o ip privado do dispositivo lan - 192.168.x.x na eth1 e chega ao outro lado com esse endereço IP de origem privada.

Qualquer ideia. Thx.

    
por user191523 29.10.2016 / 15:02

0 respostas