Назад | Перейти на главную страницу

различное поведение правил firewalld rich на узле kvm по сравнению с гостями kvm

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

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

семейство правил = "ipv4" порт пересылки порта = "80" протокол = "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"