iptables Masqueradeにいくつかのローカルパケットがありませんか?

iptables Masqueradeにいくつかのローカルパケットがありませんか?

openwrtでは設定配信を有効にしましたlan。私のLANは、いくつかのコンピュータが別のネットワークIP(たとえば192.168.1.15)をpingすると、tcpdumpがwanからいくつかのローカルパケットを取得し、それによってwanがシャットダウンします。 (私のWANは3Gモデムです)。wanmasq192.168.100.0/24

openwrtファイアウォールの設定:

config defaults
    option syn_flood '1'
    option input 'DROP'
    option output 'DROP'
    option forward 'DROP'

config zone
    option name 'lan'
    list network 'lan'
    option input 'ACCEPT'
    option forward 'DROP'
    option output 'ACCEPT'

config zone
    option name 'cellular'
    list network 'cellular'
    option input 'DROP'
    option forward 'DROP'
    option output 'ACCEPT'
    option masq '1'
    option mtu_fix '1'

config forwarding
    option src 'lan'
    option dest 'cellular'

コンピュータがLANで実行されている場合:

 ping -I 192.168.1.15 114.114.114.114

ppp で一部の無効なパケットをキャプチャできます。

 tcpdump -i 3g-cellular -s 0 -w a.pcap

ここに画像の説明を入力してください。

iptables -t nat -L -v:

Chain POSTROUTING (policy ACCEPT 119 packets, 7439 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 337 24011 zone_wan_postrouting  all  --  any    3g-cellular  anywhere             anywhere             /* !fw3 */

Chain zone_wan_postrouting
 pkts bytes target     prot opt in     out     source               destination         
  337 24011 MASQUERADE  all  --  any    any     anywhere             anywhere             /* !fw3 */

ベストアンサー1

つまり、openwrtファイアウォールは、独自のLANから着信NATパケットのみを使用しているようです。したがって、iptablesルールにはソースに追加の制限がある可能性があります。

iptables現在、ファイアウォール構成などで作成されているすべてのルールを確認することでiptables -Sこれを確認できます。

回避策として、iptablesNATルールをソースフィルタを使用しないバリエーションに直接変更できます。

iptables必要なルールを作成するようにopenwrtファイアウォール設定を変更する方法がわかりません。おそらく、OpenWRTコミュニティが知っているでしょう。

編集する

zone_wan_postroutingすべてのパケットが最終的に到着しない既存のOpenWRTファイアウォール構成の状況例:

# iptables -S -t nat
...
-A POSTROUTING -j delegate_postrouting
-A delegate_postrouting -m comment --comment "user chain for postrouting" -j postrouting_rule
-A delegate_postrouting -o br-wan -j zone_wan_postrouting
-A delegate_postrouting -o br-client -j zone_client_postrouting
-A delegate_postrouting -o local-node -j zone_local_node_postrouting
...
-A zone_wan_postrouting -m comment --comment "user chain for postrouting" -j postrouting_wan_rule
-A zone_wan_postrouting -j MASQUERADE
...

ご覧のとおり、チェーンはパケットに該当パケットがあるかどうかを確認する発信インターフェイスにPOSTROUTINGジャンプ( -j)し、この場合無条件パケットを偽造するところにジャンプします。他の発信インターフェイス(、、)は別のチェーンに渡されます。delegate_postroutingbr-wanzone_wan_postroutingbr-clientlocal-node

だから条件はアウトバウンドインターフェースbr-wan。特定のソースやターゲットの範囲などの他の条件を簡単に追加できます。

-A delegate_postrouting -o br-wan -s 192.168.100.0/24 -j zone_wan_postrouting

あるいは、はるかに複雑なパケットタグ、プロトコル、ポート、その他多くのものがあります。

だから実際にはありません。見ている私たちはあなたのすべてのiptablesルールを知ることはできません。おそらく、すべてのパケットがこのように行き、問題は別の場所にあるという事実かもしれません。に表示されない追加条件があるかもしれませんiptables -L。おそらく。

おすすめ記事