我有这种情况并且一切运行正常,但我想配置我的 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 或连接到网桥后面的虚拟机
答案1
您不应该对作为网桥成员的接口设置防火墙,而应该只对网桥接口本身设置防火墙。网桥是第 2 层域,而 iptables 是第 3 层防火墙,因此它仅在主机在第 3 层路由数据包时才有效。
就您而言,Shorewall 应该只知道br0
和tun+
,因为eth0
和vnet+
是 的成员br0
。如果您想监管虚拟机和互联网之间的流量,那么您必须更改配置以不将虚拟机桥接到 LAN(即 取消eth0
)br0
。