Centos

與 kvm 來賓相比,kvm 主機中不同的防火牆豐富規則行為

  • November 22, 2018

我有一個帶有單個公共 IPv4 的 CentOS 7 KVM 主機,它容納多個來賓作業系統並充當來賓網路 192.168.1.0/24 / nat 的防火牆/網關。

我想在埠 80 上執行 1 個來賓的網路伺服器,因此需要以下 firewalld 規則:

rule family=“ipv4” forward-port port=“80” protocol=“tcp” to-port=“80” to-addr=“192.168.1.3”

一旦完成,除了 192.168.1.3 之外的所有來賓都會失去與世界埠 80 的連接(即在執行 yum makecache 時),但不受影響的 KVM 主機除外。

問題是——這個規則是否會覆蓋firewalld的預設連接跟踪策略,如果是,為什麼主機不受影響?

附加資訊:客人正在使用 KVM 路由模式網路;相關主機 firewalld 配置:

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: 

你的富人規則過於寬泛;它適用於埠 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"

引用自:https://serverfault.com/questions/941176