libvirt 和使用 nat - iptables 覆盖进行网络过滤

libvirt 和使用 nat - iptables 覆盖进行网络过滤

首先,我想说:我知道,一开始就做错了,我想避免因为普遍的停机而从头开始做所有事情。

我在 RHEL 上运行 libvirt/KVM。我有使用 NAT 网络配置文件(默认配置文件)运行的 VM。我已通过 sysconfig/iptables 从主机设置端口转发等,一切正常。

但是,如果 libvird 守护进程由于某些内部原因重新加载,或者收到SIGHUP- 它会重新加载 iptables 配置并从其过滤配置文件中添加规则即一切都按照设计和记录进行libvirt 和防火墙+libvirt nwfilter 文档) - SW没有问题,这是配置问题。

但是在我需要它之前,有些规则就引入了,REJECT并且我无法通过转发端口连接到机器,如下所示:

在此处输入图片描述

运行后service iptables restart-一切都将像以前一样正常工作。

有没有办法强制 libvirt 改变这两个的顺序或禁用这两个特定的?

也许有人面临过完全相同的问题并且已经准备好了答案。

谢谢

答案1

您可以创建自己的 NAT 网络,这意味着 libvirt 不会添加任何防火墙规则。请参阅自定义基于 NAT 的网络在此libvirt 网络手册

答案2

我理解你的痛苦。我真的希望 libvirt 能更好地支持这一点。

创建一个脚本,在您的客户机上应用端口转发防火墙规则。请确保使用,iptables -I以便您的规则插入到 libvirt 的 REJECT 规则之前。

你需要使用钩子每次 libvirt 启动或重新加载时运行该脚本。

此外,你应该确保 libvirt 和端口转发的规则没有保存在/etc/sysconfig/iptables. 让 libvirt 和你的钩子设置这些。

相关内容