Iptablesおよびlibnetfilter NATingの問題

Iptablesおよびlibnetfilter NATingの問題

プログラムでパケットを変更するには、ネットワークフィルタキューを持つIPテーブルを使用しています。

私は2つのネットワークカードeth0がインターネットに接続され、eth1がLANに接続されているUbuntu研究室で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を使用して必要なものを削除したりするために使用されます。実際、すべてが期待どおりに動作します。つまり、3つのプロトコルタイプicmp、tcp、およびudpパケットが変更されてキューに再注入され、次にeth0 IPアドレスを送信元アドレスとしてインターネットでeth0を終了します(MASQUERADE有効NATルール)。これは、icmp ping応答またはtcp ackパケットを除くすべてのパケットに当てはまります。 LANデバイスのプライベートIP(192.168.xx)を使用してインターネットを終了し、このプライベートソースIPアドレスを使用してもう一方の端に到達します。どんなアイデアでも可能です。ありがとうございます。

ベストアンサー1

私は2つのネットワークカードeth0がインターネットに接続され、eth1がLANに接続されているUbuntu研究室で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を使用して必要なものを削除したりするために使用されます。実際、すべてが期待どおりに動作します。つまり、3つのプロトコルタイプのicmp、tcp、およびudpパケットが変更されてキューに再注入され、eth0 IPアドレスを送信元アドレスとしてeth0を終了してインターネットに接続します(MASQUERADE NATを使用)。ルール効果)。これは、icmp ping応答またはtcp ackパケットを除くすべてのパケットに当てはまります。 LANデバイスのプライベートIP(192.168.xx)を使用してインターネットを終了し、このプライベートソースIPアドレスを使用してもう一方の端に到達します。どんなアイデアでも可能です。ありがとうございます。

おすすめ記事