Настройте FirewallD, чтобы разрешить мостовой доступ к сети виртуальной машины

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

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

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

Если я остановлюсь firewalld (а также iptables показывает пустые правила брандмауэра), гость работает правильно. Без остановки брандмауэра мой гость не может связаться с внешней сетью. (Он может пинговать, но не делать 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 ответ

Решение

У меня была такая же проблема. и после копания обнаружил, что 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, но я не смог найти лучшего решения

Другие вопросы по тегам