Iptables-Paket-Quell-IP nicht NATed im Falle einer ICMP-Antwort und einer TCP-Bestätigung

Iptables-Paket-Quell-IP nicht NATed im Falle einer ICMP-Antwort und einer TCP-Bestätigung

Ich verwende es iptablesin Verbindung mit net-filtereiner Warteschlange, um Pakete programmgesteuert zu ändern.

Ich verwende iptablesRegeln über Ubuntu Lab mit 2 Netzwerkkarten, eth0 zum Internet und eth1 zum LAN. Ich habe die bekannten iptables-Regeln für NATing mit Masquerading auf eth0 verwendet.

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

Mithilfe dieser 4 Regeln kann ich Pakete in meinem Programm erfassen und Pakete ändern oder löschen, was ich möchte nfq_set_verdict.

Tatsächlich läuft alles wie erwartet, das heißt, die drei Protokolltypen icmpund Pakete werden geändert und erneut eingespeist. In der Warteschlange verlässt dann eth0 das Internet tcpund udpnimmt die eth0-IP-Adresse als Quelladresse (Auswirkung der Verwendung der MASQUERADE-NAT-Regel).
Das gilt für alle Pakete AUSSER: ICMP-PingAntwortoder TCPACKPakete.
Sie verlassen das Internet unter Verwendung der privaten IP des LAN-Geräts – 192.168.xx bei eth1 – und erreichen die andere Seite mit dieser privaten Quell-IP-Adresse.

Irgendwelche Ideen? Danke.

verwandte Informationen