我有这种情况并且一切正常,但我想配置我的 Shorewall 但我做不到。
我的接口是:
br0 (bridge of eth0)
tun0 (OpenVPN)
vnet* (each one of bridged interfaces with public IP's)
Public Main IP: 188.165.X.Y
OpenVPN IP's: 172.28.0.x
Bridge: public ip's
所以,我有 shorewall 的下一个配置:
/etc/shorewall/区域
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
inet ipv4
road ipv4
/etc/shorewall/接口
#ZONE INTERFACE BROADCAST OPTIONS
inet br0 detect routeback
road tun+ detect routeback
/etc/shorewall/政策
#SOURCE DEST POLICY LOG LIMIT: CONNLIMIT:
# LEVEL BURST MASK
$FW all ACCEPT
inet $FW DROP info
road all DROP
inet road DROP
/etc/shorewall/隧道
#TYPE ZONE GATEWAY GATEWAY
# ZONE
openvpnserver:1194 inet 0.0.0.0/0
问题是,即使 shorewall 正在运行,我也能够 ping 或连接到网桥后面的虚拟机
您不应该对作为网桥成员的接口进行防火墙保护,而应该只对网桥接口本身进行防火墙保护。网桥是第 2 层域,而 iptables 是第 3 层防火墙,因此它仅在主机在第 3 层路由数据包时才起作用。
在您的情况下,Shorewall 应该只知道
br0
和tun+
,因为eth0
并且vnet+
是的成员br0
。如果你想监管 VM 和 Internet 之间的流量,那么你必须更改你的配置以不将 VM 桥接到 LAN(即eth0
取出br0
)。