web-dev-qa-db-ja.com

TEEを使用してMASQUERADEターゲットの出力を複製するにはどうすればよいですか?

Netfilterの拡張機能 manページ は次のように述べています。

MASQUERADE:このターゲットは、natチェーンのPOSTROUTINGテーブルでのみ有効です。

質問:MASQUERADEターゲットのoutputTEEターゲットで複製する方法は?

以下のnetfilter/iptablesの図を見ると、nat.POSTROUTINGが、パケットがアウトバウンドインターフェイスに送信される前に評価される最後のチェーンであることがわかります。 raw.POSTROUTINGチェーンがありません、...またはありますか?

enter image description herethis も参照してください。

P.S.
データがmangleインターフェースとnatインターフェースで、outboundテーブルとinboundテーブルを同じ順序で処理する理由は何ですか。これらのインターフェース(出力と入力)を介して反対方向に流れますか?

1
George Robinson

私の知る限り、iptablesによって提供される最後のフックである nat/POSTROUTING の後にiptablesルールを実行することはできないため、これはiptablesを使用してNAT後のパケットをキャプチャすることはできません。


ただし、これは nftables を使用する場合に可能です。これは、 フックの優先度はユーザー定義 であるためです。nft 's dup ステートメントは、iptables' [〜#〜] tee [〜#〜]の直接の置き換えです。nftablesiptablesの両方がNATを実行していない限り、それらを混在させることができます(natリソースは特別であり、iptables間で適切に共有できません。およびnftables)。 iptables-over-nftables のバージョンのiptablesも機能し(ルールセットをフラッシュするときは注意が必要です)、もちろんすべてにnftのみを使用しても機能します。

これは、eth1にNATされたLANがあり、eth2にそのWAN側があるルーターで、192.168.0.3にコピーを送信するための既製のnftルールセットです。 LAN側で。 OPからの他の質問 で説明されているように。 forwireshark.nftという名前のファイルに入れ、nft -f forwireshark.nftを使用して「ロード」するには:

table ip forwireshark {
        chain postnat {
                type filter hook postrouting priority 250; policy accept;
                oif eth2 counter dup to 192.168.0.3 device eth1
        }
}

ここで重要なのは、値250がiptables ' NF_IP_PRI_NAT_SRC(100) よりも大きくなるように選択されていることです。

これは、pingホストが非アクティブの後にping -c1 8.8.8.8を実行したときにwiresharkホストを通常受信するものです(「間違った」IPからの奇妙なARP要求に注意してください。これは、一部のシステムではデフォルトで受け入れられない場合があります)。

root@ns-wireshark:~# tcpdump -e -n -s0 -p -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
21:06:03.074142 82:01:54:27:4d:d7 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.0.1 tell 192.168.0.2, length 28
21:06:03.074301 9a:80:fb:e6:6a:0a > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has 192.168.0.3 tell 140.82.118.4, length 28
21:06:03.074343 7e:0a:6c:12:00:61 > 9a:80:fb:e6:6a:0a, ethertype ARP (0x0806), length 42: Reply 192.168.0.3 is-at 7e:0a:6c:12:00:61, length 28
21:06:03.074387 9a:80:fb:e6:6a:0a > 7e:0a:6c:12:00:61, ethertype IPv4 (0x0800), length 98: 140.82.118.4 > 8.8.8.8: ICMP echo request, id 1633, seq 1, length 64

mangle/POSTROUTINGおよびnat/POSTROUTINGの順序の論理的根拠がわかりません。とにかく、これはiptables'制限の一部です。なぜなら、nftablesでは、特別な タイプルート であるmangle/OUTPUTと同等のものは別としてです。再ルーティングのためのフック、マングルの他のすべての同等の使用法はタイプフィルターの一部です:実際には別のマングルタイプはもうありません。優先順位を選択できることで、より多くのことが可能になります。

1
A.B