On 12/22/2016 09:48 AM, Omer Aldemir wrote:
Hello,
I am trying to understand how libvirt firewall rules are loaded as I have firewalld and iptables services are disabled.
libvirt will add its iptables rules via firewalld if firewalld is enabled and running, otherwise it executes iptables commands directly.
w
Where is the configuration files for firewall and NAT rules for libvirt?
There are no configuration files for the iptables rules that libvirt adds. The simple set of rules that is added is fixed for each type of libvirt network - NAT, routed, and isolated. Here is a description of exactly what is added for each of these types of network:
https://libvirt.org/firewall.html
(actually I just realized that I forgot to add information there about a new network forwarding type I recently added - "open", which doesn't add *any* iptables rules - this is intended for those who want to do their own iptables setup for libvirt networks, outside of libvirt.)
How can I load default firewall rules if I mess things up
To reload all the iptables rules for all active libvirt networks, just restart the libvirtd service.
Also I have realized that followings is default
ACCEPT all -- 0.0.0.0/0 192.168.122.0/24 ctstate RELATED,ESTABLISHED
but If I am to forward a port for a real IP to internal guest machine I need
ACCEPT all -- 0.0.0.0/0 192.168.122.0/24 state NEW,RELATED,ESTABLISHED
(NEW state is required) and also of course a forwarding rule
iptables -t nat -I PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 192.168.122.16:3389
Is there a place I can make this rules static with LibVirt (not playing with firewalld and/or iptables service for Centos 7)
The best that can be done with current libvirt is to create a "hook" script similar to the one described here:
https://wiki.libvirt.org/page/Networking#Forwarding_Incoming_Connections
(That worked the last time I tried it, but that was at least 3 years ago. The python script available as a link from that page is newer and promises to be easier to understand (maybe))