openwrtでは設定配信を有効にしましたlan
。私のLANは、いくつかのコンピュータが別のネットワークIP(たとえば192.168.1.15)をpingすると、tcpdumpがwanからいくつかのローカルパケットを取得し、それによってwanがシャットダウンします。 (私のWANは3Gモデムです)。wan
masq
192.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
これを確認できます。
回避策として、iptables
NATルールをソースフィルタを使用しないバリエーションに直接変更できます。
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_postrouting
br-wan
zone_wan_postrouting
br-client
local-node
だから条件はアウトバウンドインターフェースbr-wan
。特定のソースやターゲットの範囲などの他の条件を簡単に追加できます。
-A delegate_postrouting -o br-wan -s 192.168.100.0/24 -j zone_wan_postrouting
あるいは、はるかに複雑なパケットタグ、プロトコル、ポート、その他多くのものがあります。
だから実際にはありません。見ている私たちはあなたのすべてのiptablesルールを知ることはできません。おそらく、すべてのパケットがこのように行き、問題は別の場所にあるという事実かもしれません。に表示されない追加条件があるかもしれませんiptables -L
。おそらく。