Отличное поведение правила firewalld в хосте kvm по сравнению с гостями kvm

У меня есть хост CentOS 7 KVM с одним общедоступным IPv4, который содержит несколько гостевых ОС и выступает в качестве брандмауэра / шлюза для гостевой сети 192.168.1.0/24 / nat.

Я хочу запустить веб-сервер 1 из гостей на порту 80, поэтому необходимо следующее правило firewalld:

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

Как только это будет сделано, все гости, кроме 192.168.1.3, потеряют связь с портом 80 миров (т. Е. При выполнении make-кэша yum), кроме хоста 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"

следующее не существовало раньше, но NetworkManager выбрал virbr0, поэтому я добавил слепое доверие, пока не будет разработана лучшая стратегия

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"
Другие вопросы по тегам