Networking
使主機在 LAN 子網之間可訪問
我的路由器上有兩個帶有番茄韌體的介面:br0 和 vlan4。br0 在 192.168.0.0/16 子網上,vlan4 在 10.0.1.0/24 子網上。因為我不希望 br0 上的不同網路服務在 vlan4 上可用,所以我添加了這個防火牆規則:
iptables -I INPUT -i vlan4 -j ACCEPT; iptables -I FORWARD -i vlan4 -o vlan2 -m state --state NEW -j ACCEPT; iptables -I FORWARD -i br0 -o vlan4 -j DROP;
vlan2 是我的 WAN(網際網路接入)。
我要解決的問題是我想從 192.168.0.0/16 網路 (br0) 中創建一台主機,該主機的 ip 為 192.168.0.50,可在 vlan4 (10.0.1.0/24) 上使用。只有該主機應該在 vlan4 上可用(並且 br0 上的所有其他主機都應該無法訪問)。可以使用哪些防火牆規則來做到這一點?
編輯1:
輸出
iptables -nvL FORWARD
:Chain FORWARD (policy DROP 4 packets, 204 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- vlan4 192.168.0.50 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- vlan4 ppp0 0.0.0.0/0 0.0.0.0/0 state NEW 229 13483 ACCEPT all -- vlan4 vlan2 0.0.0.0/0 0.0.0.0/0 state NEW 0 0 DROP all -- br0 vlan3 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- vlan3 ppp0 0.0.0.0/0 0.0.0.0/0 state NEW 67 3405 ACCEPT all -- vlan3 vlan2 0.0.0.0/0 0.0.0.0/0 state NEW 0 0 ACCEPT all -- br0 br0 0.0.0.0/0 0.0.0.0/0 34 1360 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID 758 40580 TCPMSS tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02 TCPMSS clamp to PMTU 11781 2111K restrict all -- * vlan2 0.0.0.0/0 0.0.0.0/0 26837 19M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 wanin all -- vlan2 * 0.0.0.0/0 0.0.0.0/0 287 15927 wanout all -- * vlan2 0.0.0.0/0 0.0.0.0/0 283 15723 ACCEPT all -- br0 * 0.0.0.0/0 0.0.0.0/0 0 0 upnp all -- vlan2 * 0.0.0.0/0 0.0.0.0/0
輸出
iptables -t nat -nvL PREROUTING
:Chain PREROUTING (policy ACCEPT 6887 packets, 526K bytes) pkts bytes target prot opt in out source destination 855 83626 WANPREROUTING all -- * * 0.0.0.0/0 222.228.137.210 0 0 DROP all -- vlan2 * 0.0.0.0/0 192.168.0.0/16 0 0 DNAT udp -- * * 192.168.0.0/16 !192.168.0.0/16 udp dpt:53 to:192.168.0.1
的輸出
ip route show
:222.228.137.209 dev vlan2 scope link 222.228.137.208/29 dev vlan2 proto kernel scope link src 222.228.137.210 10.0.0.0/24 dev vlan3 proto kernel scope link src 10.0.0.1 10.0.1.0/24 dev vlan4 proto kernel scope link src 10.0.1.1 192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.252 192.168.0.0/16 dev br0 proto kernel scope link src 192.168.0.1 127.0.0.0/8 dev lo scope link default via 222.228.137.209 dev vlan2
iptables -I FORWARD -i vlan4 -d 192.168.0.50 -j ACCEPT
把它放在你原來問題的最後一條規則之前。
我假設你也做過這樣的事情:
迴聲 1 > /proc/sys/net/ipv4/ip_forward
在您的系統上啟用一般轉發。
您需要做的就是添加
iptables -I FORWARD -s 192.168.0.50 -o vlan4 -j ACCEPT
在您列出的第三條規則之前(下降)