프로그래밍 방식으로 패킷을 변경하기 위해 네트워크 필터 대기열이 있는 IP 테이블을 사용하고 있습니다.
나는 2개의 네트워크 카드 eth0이 인터넷에 연결되고 eth1이 LAN에 연결된 우분투 연구실에서 iptables 규칙을 사용하고 있습니다. NAT에 잘 알려진 iptables 규칙을 사용하고 eth0에서 가장합니다. Sudo iptables --table nat --append POSTROUTING - o eth0 -j MASQUERADE sudo iptables -append FORWARD -i eth1 -j 수락합니다. sudo iptables -t mangle -A PREROUTING -j NFQUEUE --queue-num 0 sudo iptables -t mangle -A OUTPUT -j NFQUEUE. 이 4가지 규칙은 프로그램 내에서 패킷을 캡처하고 패킷을 수정하거나 nfq_set_verdict를 사용하여 원하는 것을 제거하는 데 사용됩니다. 실제로 모든 것이 예상대로 작동합니다. 즉, 세 가지 프로토콜 유형 icmp, tcp 및 udp 패킷이 수정되어 대기열에 다시 주입된 다음 eth0 IP 주소를 소스 주소로 사용하여 인터넷으로 eth0을 종료합니다(MASQUERADE 사용 효과 NAT 규칙). 이는 icmp ping 응답 또는 tcp ack 패킷을 제외한 모든 패킷에 해당됩니다. LAN 장치의 개인 IP(192.168.xx)를 사용하여 인터넷을 종료하고 이 개인 소스 IP 주소를 사용하여 다른 쪽 끝에 도달합니다. 어떤 아이디어라도 가능합니다. 감사해요.
답변1
나는 2개의 네트워크 카드 eth0이 인터넷에 연결되고 eth1이 LAN에 연결된 우분투 연구실에서 iptables 규칙을 사용하고 있습니다. NAT에 잘 알려진 iptables 규칙을 사용하고 eth0에서 가장합니다. Sudo iptables --table nat --append POSTROUTING - o eth0 -j MASQUERADE sudo iptables -append FORWARD -i eth1 -j 수락합니다. sudo iptables -t mangle -A PREROUTING -j NFQUEUE --queue-num 0 sudo iptables -t mangle -A OUTPUT -j NFQUEUE. 이 4가지 규칙은 프로그램 내에서 패킷을 캡처하고 패킷을 수정하거나 nfq_set_verdict를 사용하여 원하는 것을 제거하는 데 사용됩니다. 실제로 모든 것이 예상대로 작동합니다. 즉, 세 가지 프로토콜 유형인 icmp, tcp 및 udp 패킷이 수정되어 대기열에 다시 주입된 다음 eth0 IP 주소를 소스 주소로 사용하여 eth0을 종료하고 인터넷에 연결됩니다(MASQUERADE NAT 사용). 규칙 효과). 이는 icmp ping 응답 또는 tcp ack 패킷을 제외한 모든 패킷에 해당됩니다. LAN 장치의 개인 IP(192.168.xx)를 사용하여 인터넷을 종료하고 이 개인 소스 IP 주소를 사용하여 다른 쪽 끝에 도달합니다. 어떤 아이디어라도 가능합니다. 감사해요.