Tot*_*tor 12 firewall virtual-machine iptables bridge
我建立了一个br0
“附加”到两个接口的网桥:
eth0
,我的物理接口连接到真正的局域网, vnet0
,一个 KVM 虚拟接口(连接到 Windows VM)。 我在前向链中有这个单一的防火墙规则:
iptables -A FORWARD -j REJECT
Run Code Online (Sandbox Code Playgroud)
现在,唯一有效的 ping 是从 VM 到主机。
该br0
接口拥有我主机的 IP 地址。eth0
而vnet0
没有“拥有”任何IP,从主机点。Windows VM 具有静态 IP 配置。
如果将我的iptables
规则更改为ACCEPT
(甚至使用更严格的iptables -A FORWARD -o br0 -j ACCEPT
),则一切正常!(即我可以从 VM ping 任何 LAN 机器,反之亦然)。
所有 IP 转发内核选项都被禁用(如net.ipv4.ip_forward = 0
)。
那么,netfilter 防火墙如何阻止甚至没有启用的东西?
此外,VM-LAN 流量应仅暗示eth0
和vnet0
。然而,它看起来像是允许带有-o br0
“作品”的FORWARD 流量(虽然我没有仔细检查)。
Mat*_*ner 11
Stéphane Chazelas的评论提供了答案的提示。
根据Bridge-nf 常见问题, bridge-nf 使 iptables、ip6tables 或 arptables 能够查看桥接流量。
从内核版本 2.6.1 开始,bridge-nf 行为控制有五个sysctl 条目:
bridge-nf-call-arptables
- 将桥接的 ARP 流量传递到 arptables 的 FORWARD 链。bridge-nf-call-iptables
- 将桥接的 IPv4 流量传递到 iptables 的链。bridge-nf-call-ip6tables
- 将桥接的 IPv6 流量传递到 ip6tables 的链。bridge-nf-filter-vlan-tagged
- 将桥接的 vlan 标记的 ARP/IP 流量传递到 arptables/iptables。net.bridge.bridge-nf-filter-pppoe-tagged
- 将桥接的 pppoe 标记的 IP/IPv6 流量传递到 {ip,ip6} 表您可以通过以下方式禁用 netfilter 防火墙阻止:
# sysctl -w net.bridge.bridge-nf-call-iptables=0
# sysctl -w net.bridge.bridge-nf-call-ip6tables=0
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17226 次 |
最近记录: |