4

У меня гостевая Windows, работающая на виртуальной машине QEMU/KVM virt-manager.

Мой основной сетевой eno1 находится в мосте br1 который настроен с помощью конфигурации IP-адреса моего хоста. Эта виртуальная машина подключена к указанному мосту.

Брандмауэр моего хоста находится в конфигурации по умолчанию: Зона по умолчанию: FedoraWorkstation

Если я остановлю firewalldiptables покажет пустые правила брандмауэра), гость будет работать правильно. Без остановки брандмауэра мой гость не сможет связаться с внешней сетью. (Он может пинговать, но не делать DNS-запросы или TCP-соединения.)

Как настроить брандмауэр, чтобы разрешить полный доступ к гостю?


В этом сообщении на форуме был предложен следующий сценарий Bash с использованием iptables:

#!/bin/sh

# If I put bridge0 in trusted zone then firewalld allows anything from 
# bridge0 on both INPUT and FORWARD chains !
# So, I've put bridge0 back into the default public zone, and this script 
# adds rules to allow anything to and from bridge0 to be FORWARDed but not INPUT.

BRIDGE=bridge0
iptables -I FORWARD -i $BRIDGE -j ACCEPT
iptables -I FORWARD -o $BRIDGE -j ACCEPT

Я подтвердил, что это работает, но я ищу постоянную настройку брандмауэра для достижения этой цели. В идеале это было бы сделано с помощью встроенных инструментов FirewallD .

1 ответ1

12

У меня была такая же проблема. и после копания обнаружил, что firewalld имеет прямой переход к iptables

таким образом, вы можете использовать те же правила пересылки, которые были в вашем скрипте, но позволить firewalld установить их навсегда

firewall-cmd --permanent --direct --passthrough ipv4 -I FORWARD -i bridge0 -j ACCEPT
firewall-cmd --permanent --direct --passthrough ipv4 -I FORWARD -o bridge0 -j ACCEPT
firewall-cmd --reload

Я хотел бы получить такой же результат с помощью firewalld без непосредственного изменения iptables, но я не смог найти лучшего решения

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .