与 kvm 客户机相比,kvm 主机中的 FirewallD 丰富规则行为有所不同

与 kvm 客户机相比,kvm 主机中的 FirewallD 丰富规则行为有所不同

我有一台带有单个公共 IPv4 的 CentOS 7 KVM 主机,它容纳多个来宾操作系统并充当来宾网络 192.168.1.0/24/nat 的防火墙/网关。

我想在端口 80 上运行 1 个客户机的 Web 服务器,因此需要以下防火墙规则:

规则系列 =“ipv4” 转发端口端口 =“80” 协议 =“tcp” 至端口 =“80” 至地址 =“192.168.1.3”

一旦完成,除 192.168.1.3 之外的所有客户机都会失去与世界端口 80 的连接(例如执行 yum makecache 时),但 KVM 主机除外,它不受影响。

问题是 - 这条规则是否会覆盖firewalld的默认连接跟踪策略,如果是,为什么主机不受影响?

附加信息:客户机正在使用 KVM 路由模式网络;相关主机防火墙配置:

external (active)
target: default
icmp-block-inversion: no
interfaces: enp2s0
sources: 
services: ssh
ports: 
protocols: 
masquerade: yes
forward-ports:
source-ports: 
icmp-blocks: 
rich rules: 
   rule family="ipv4" forward-port port="80" protocol="tcp" to-port="80" to-addr="192.168.1.3"

以下内容之前并不存在,但 virbr0 被 NetworkManager 接收,因此我添加了盲目信任,直到制定出更好的策略

trusted (active)
target: ACCEPT
icmp-block-inversion: no
interfaces: virbr0
sources: 192.168.1.0/24
services: 
ports: 
protocols: 
masquerade: no
forward-ports: 
source-ports: 
icmp-blocks: 
rich rules: 

答案1

您的丰富规则过于宽泛;它适用于端口 80 的所有流量,无论其来源或目的地是什么。

要修复此问题,请在富规则中指定目标 IP 地址。这是全球的接收流量的 IPv4 地址。例如:

rule family="ipv4" destination address="198.51.100.220" forward-port port="80" protocol="tcp" to-port="80" to-addr="192.168.1.3"

相关内容