icmp 응답 및 tcp ack의 경우 Iptables 패킷 src ip가 NAT되지 않음

icmp 응답 및 tcp ack의 경우 Iptables 패킷 src ip가 NAT되지 않음

프로그래밍 방식으로 패킷을 변경하기 위해 대기열 iptables과 함께 사용하고 있습니다 .net-filter

나는 iptables인터넷에 2개의 NIC eth0을, LAN에 eth1을 사용하여 우분투 랩에 대한 규칙을 사용하고 있습니다. 저는 eth0에서 가장하는 NATing에 잘 알려진 iptables 규칙을 사용했습니다.

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

이 4가지 규칙은 프로그램 내에서 패킷을 캡처하고 패킷을 수정하거나 를 사용하여 원하는 것을 삭제하는 데 사용됩니다 nfq_set_verdict.

실제로 모든 것이 예상한 대로 진행되고 있습니다. 즉, 세 가지 프로토콜 유형이 있으며 icmp패킷 이 수정되고 다시 주입됩니다. 그런 다음 대기열에서 eth0 IP 주소를 소스 주소로 사용하여 인터넷으로 eth0을 종료합니다(MASQUERADE NAT 규칙 사용의 효과). 이는 ICMP 핑을 제외한 모든 패킷에 해당됩니다.tcpudp
회신하다또는 TCPACK패킷.
그들은 LAN 장치의 개인 IP인 eth1의 192.168.xx를 사용하여 인터넷으로 나가고 이 개인 소스 IP 주소를 사용하여 반대편에 도달합니다.

어떤 아이디어라도 가능합니다. 고마워.

관련 정보