根据是否可以在 Linux 桥上启用端口隔离?,可以isolated on
使用bridge
命令创建隔离端口。这将使用接口BR_ISOLATED
的标志。其他工具中已经实现了隔离端口,例如virsh
1。
我们如何使用在 Debian 中配置隔离桥/etc/network/interfaces
?
编辑:ifupdown 用于解析文件interfaces
,它指向man bridge-utils-interfaces
以供参考。似乎无法在配置文件上直接使用隔离选项。
答案1
只需apt install ebtables
将这些命令添加到up
(或其post-up
别名)相应的接口定义中:
iface br0 inet static
bridge-ports eth0 ...
...
up ebtables -P FORWARD DROP
up ebtables -F FORWARD
up ebtables -A FORWARD -i eth0 -j ACCEPT # let the traffic flow from uplink to any ports
up ebtables -A FORWARD -o eth0 -j ACCEPT # let the traffic flow from any ports to uplink
也许值得将每个接口的部分分离到这些接口的定义中。
如果规则很多,你可以把它们收集到一个脚本中,然后从操作中调用该脚本post-up
。或者,你也可以使用netfilter-persistent
或其他支持保存和恢复ebtables
规则的防火墙管理器,从文件外管理防火墙interfaces
。即使在规则集加载(或命令调用)期间接口仍然不存在,也不会出现错误,当接口因任何原因被删除时,规则不会被删除,并且一旦出现具有声明名称的接口,它就会起作用。所以这很安全。我实际上更喜欢这种管理方式。
值得注意的是,Proxmox VE 有一个 Web GUI,可以管理其虚拟机和容器。