web-dev-qa-db-ja.com

ブリッジされた仮想マシンのネットワークアクセスを許可するようにFirewallDを構成する

Virt-manager QEMU/KVM仮想マシンでWindowsゲストを実行しています。

私のプライマリNIC eno1は橋の中にありますbr1これは私のホストIPアドレス構成で構成されています。これはVMが上記のブリッジに接続されています。

ホストファイアウォールはデフォルト構成になっています:デフォルトゾーン:FedoraWorkstation

firewalldを停止すると(そしてiptablesは空のファイアウォールルールを表示します)、ゲストは正しく機能します。ファイアウォールを停止しないと、ゲストは外部ネットワークと通信できません。 (pingは実行できますが、DNS要求、またはTCP接続)は実行できません。)

ゲストへのフルアクセスを許可するようにファイアウォールを構成するにはどうすればよいですか?


このフォーラム投稿iptablesを使用して次のBashスクリプトを提案しました。

#!/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 ツールを使用して実行されます。

5

私は同じ問題を抱えていました。調べてみると、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

Iptablesを直接変更せずにfirewalldで同じ結果を得る方法があればいいのにと思いますが、これ以上の解決策は見つかりませんでした。

15
Yoni Jah