私のLinuxコンピュータで次の設定を使用しています。
システムには2つのネットワークブリッジがあり、そのインターフェイスは次のとおりです。
ブリッジのデフォルト -
- ローカルエリアネットワーク
- 血のない
ブリッジ_1 -
- 無線LAN1
インターフェイスWLAN1からのメッセージがLANインターフェイス(bridge_default)に到達せずにWANインターフェイスにのみ到達するようにインターフェイス間を分離したいと思います。
これを行うには、次の規則に従います。
Chain DEFAULT_FORWARD (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- wlan1 wan 0.0.0.0/0 0.0.0.0/0
0 0 DROP all -- bridge_default wlan1 0.0.0.0/0 0.0.0.0/0
Chain DEFAULT_INPUT (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- wlan1 wan 0.0.0.0/0 0.0.0.0/0
0 0 DROP all -- bridge_default wlan1 0.0.0.0/0 0.0.0.0/0
Chain DEFAULT_OUTPUT (1 references)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- wlan1 wan 0.0.0.0/0 0.0.0.0/0
0 0 DROP all -- bridge_default wlan1 0.0.0.0/0 0.0.0.0/0
ただし、実際にこの構成をテストしたとき、動作が予想とは異なることがわかりました。具体的には、ログは、メッセージがインターフェイスWLAN1ではなくbridge_1から到着したことを示しています。
IN=bridge_1 OUT= PHYSIN=wlan1 MAC=00:e0:92:00:01:51:e8:2a:ea:18:60:7d:08:00 S RC=192.168.2.101 DST=192.168.1.1 LEN=60 TOS=0x00 PREC=0x00 TTL=128 ID=21154 PROTO=ICMP TYPE=8 CODE=0 ID=6 SEQ=6891
編集する
iptables-save コマンドの結果は次のとおりです。
-A DEFAULT_FORWARD -i wlan1 -o wan -j ACCEPT
-A DEFAULT_FORWARD -i bridge_default -o wlan1 -j DROP
-A DEFAULT_INPUT -i wlan1 -o wan -j ACCEPT
-A DEFAULT_INPUT -i bridge_default -o wlan1 -j DROP
-A DEFAULT_OUTPUT -i wlan1 -o wan -j ACCEPT
-A DEFAULT_OUTPUT -i bridge_default -o wlan1 -j DROP
利用可能なNICのリスト:
root@ugwcpe:~# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP,80000> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
8: eth0_1: <NO-CARRIER,BROADCAST,MULTICAST,UP,80000> mtu 1500 qdisc pfifo_fast master default_bridge state DOWN mode DEFAULT group default qlen 1000
link/ether 00:e0:92:00:01:40 brd ff:ff:ff:ff:ff:ff
9: eth0_2: <NO-CARRIER,BROADCAST,MULTICAST,UP,80000> mtu 1500 qdisc pfifo_fast master default_bridge state DOWN mode DEFAULT group default qlen 1000
link/ether 00:e0:92:00:01:41 brd ff:ff:ff:ff:ff:ff
10: eth0_3: <NO-CARRIER,BROADCAST,MULTICAST,UP,80000> mtu 1500 qdisc pfifo_fast master default_bridge state DOWN mode DEFAULT group default qlen 1000
link/ether 00:e0:92:00:01:42 brd ff:ff:ff:ff:ff:ff
11: eth0_4: <NO-CARRIER,BROADCAST,MULTICAST,UP,80000> mtu 1500 qdisc pfifo_fast master default_bridge state DOWN mode DEFAULT group default qlen 1000
link/ether 00:e0:92:00:01:43 brd ff:ff:ff:ff:ff:ff
12: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP,80000> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether 00:e0:92:00:01:44 brd ff:ff:ff:ff:ff:ff
15: default_bridge: <BROADCAST,MULTICAST,UP,LOWER_UP,80000> mtu 1500 qdisc noqueue state UP mode DEFAULT group default
link/ether 00:e0:92:00:01:40 brd ff:ff:ff:ff:ff:ff
16: wan@eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP,80000> mtu 1500 qdisc noqueue state LOWERLAYERDOWN mode DEFAULT group default
link/ether 00:e0:92:00:01:45 brd ff:ff:ff:ff:ff:ff
17: rtlog0: <BROADCAST,MULTICAST,UP,LOWER_UP,80000> mtu 1500 qdisc pfifo_fast master default_bridge state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 00:e0:92:00:01:40 brd ff:ff:ff:ff:ff:ff
18: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP,80000> mtu 1500 qdisc pfifo_fast master default_bridge state UP mode DEFAULT group default qlen 1000
link/ether 00:e0:92:00:01:50 brd ff:ff:ff:ff:ff:ff
25: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP,80000> mtu 1500 qdisc pfifo_fast master default_bridge state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 00:e0:92:00:01:51 brd ff:ff:ff:ff:ff:ff
26: wlan0.1: <BROADCAST,MULTICAST,UP,LOWER_UP,80000> mtu 1500 qdisc pfifo_fast master default_bridge state UNKNOWN mode DEFAULT group default qlen 1000
link/ether 00:e0:92:00:01:52 brd ff:ff:ff:ff:ff:ff
基本的な転送ルール:
-A DEFAULT_FORWARD -i bridge1 -o wan -j ACCEPT
-A DEFAULT_FORWARD -i wan -o bridge1 -j ACCEPT
-A DEFAULT_FORWARD -i default_bridge -o bridge1 -j DROP
-A DEFAULT_FORWARD -i bridge1 -o default_bridge -j DROP
-A DEFAULT_FORWARD -i bridge1 -o wan -j ACCEPT
-A DEFAULT_FORWARD -i wan -o bridge1 -j ACCEPT
-A DEFAULT_FORWARD -o bridge1 -j DROP
-A DEFAULT_FORWARD -i bridge1 -j DROP
-A DEFAULT_FORWARD -i wlan -o wan -j ACCEPT
-A DEFAULT_FORWARD -i wan -o wlan -j ACCEPT
-A DEFAULT_FORWARD -o wlan -j DROP
-A DEFAULT_FORWARD -i wlan -j DROP
誰かが私を助けて、私が間違っていることを指摘できますか?
みんなありがとうございます!
答え1
wlan1
メッセージがに配信されるのをブロックしていませんlan
。
私はそれについて少し混乱していますNICs
。
この試み:
-A DEFAULT_FORWARD -i wlan1 -o wan -j ACCEPT
-A DEFAULT_FORWARD -i bridge_default -o wlan1 -j DROP
############# ADDED #################################
-A DEFAULT_FORWARD -i wlan1 -o bridge_default -j DROP
#####################################################
-A DEFAULT_INPUT -i wlan1 -o wan -j ACCEPT
-A DEFAULT_INPUT -i bridge_default -o wlan1 -j DROP
-A DEFAULT_OUTPUT -i wlan1 -o wan -j ACCEPT
-A DEFAULT_OUTPUT -i bridge_default -o wlan1 -j DROP
bridge_default
追加した最初のルールと一致しない場合、パケットは転送されません。-i wlan1 -o wan -j ACCEPT
答え2
ここで説明されている問題は、iptablesがLinuxスタックの後にのみ適用され、さまざまな方法で解決できるという事実によるものです。
- iptableの代わりにebtableを使用してください -
ebtablesはETH層でルールを適用するため、ここで説明されているよりも実際のインターフェイスにルールを適用できます。パケットがLinuxブリッジに達すると編集および変更されるため、IN値はブリッジになります。
- インターフェイスの代わりにbridge_1を使用する -
上記と同じテーブルルールがインターフェイスの代わりにブリッジに適用される場合、問題は発生せず、ルールは正常に動作します。