
ルーターのLAN<>ゲートウェイのトラフィックをキャプチャしようとしています。ルーターにはLinuxベースのファームウェアがあり、ネットワーク関連の作業にはiptablesを使用できます。私がやりたいのは、グレーエリアのトラフィックをキャプチャすることです。これ画像。リダイレクトされたトラフィックをキャプチャするために netfilter-queue を使用します。
私がキャプチャするトラフィックは次のようになります。
- 着信トラフィック(WAN->LAN)の DNAT 後。
- 送信トラフィック(WAN<-LAN)のSNAT前。
iptablesチェーンについて説明している画像を見つけましたここ。このようなものをキャプチャするためのシナリオをいくつか考え出しました。ただし、すべての図は単一のシステムに基づいているため、うまく機能するかどうかはわかりません。異なるかもしれませんが、eth0 が WAN に接続され、eth1 が LAN に接続されていると考えてみましょう。
- フィルターまたはマングル テーブルの FORWARED チェーン内のトラフィックをキャプチャします。
iptables -I FORWARD -j NFQUEUE
- マングル テーブルの PREROUTING チェーン内のトラフィックをキャプチャします。
iptables -t mangle -I PREROUTING -j NFQUEUE
- eth1(LAN)のPREROUTINGチェーンとeth0(WAN)のPOSTROUTINGチェーンのトラフィックをキャプチャします。
iptables -t mangle -i eth1 -I PREROUTING -j NFQUEUE
iptables -t mangle -i eth0 -I POSTROUTING -j NFQUEUE
LAN<>GATEWAY トラフィックをキャプチャするための最適な選択肢は何でしょうか? すべて試すことができればベストですが、ルーターにアクセスできないため、今はテストできません。
答え1
今日、この問題の解決策を見つけたので、ここで共有します。FORWARD チェーンを使用して、DNAT 後、SNAT 前のパケットをキャプチャできました。したがって、答えは 1 です。
iptables -I FORWARD -j NFQUEUE
現在、特定のホスト(ホストの MAC アドレスを使用)のパケットをキャプチャする方法を見つけようとしています。