[PATCH 1/4] network: firewalld: convert to policies

Daniel P. Berrangé berrange at redhat.com
Wed May 11 16:15:25 UTC 2022


On Wed, May 11, 2022 at 11:41:52AM -0400, Eric Garver wrote:
> Convert the existing behavior into policies.

Has this split of .zone vs .policy been something firewalld
always supported, or is it a "new" feature for some value
of "new" ?

Essentially wonder if this has any historical back compat
implications for libvirt, given the platforms we target
(2 most recent major releases of all distros, so RHEL >= 8
 and equiv).

> 
> This commit has no functional changes.
> 
> Signed-off-by: Eric Garver <eric at garver.life>
> ---
>  src/network/libvirt-nat-out.policy | 12 ++++++++++++
>  src/network/libvirt-to-host.policy | 20 ++++++++++++++++++++
>  src/network/libvirt.zone           | 23 +++++------------------
>  src/network/meson.build            | 10 ++++++++++
>  4 files changed, 47 insertions(+), 18 deletions(-)
>  create mode 100644 src/network/libvirt-nat-out.policy
>  create mode 100644 src/network/libvirt-to-host.policy
> 
> diff --git a/src/network/libvirt-nat-out.policy b/src/network/libvirt-nat-out.policy
> new file mode 100644
> index 000000000000..7d1cf6dfb4c4
> --- /dev/null
> +++ b/src/network/libvirt-nat-out.policy
> @@ -0,0 +1,12 @@
> +<?xml version="1.0" encoding="utf-8"?>
> +<policy target="ACCEPT">
> +  <short>libvirt-nat-out</short>
> +
> +  <description>
> +    This policy is used to allow NAT virtual machine traffic to the
> +    rest of the network.
> +  </description>
> +
> +  <ingress-zone name="libvirt" />
> +  <egress-zone name="ANY" />
> +</policy>
> diff --git a/src/network/libvirt-to-host.policy b/src/network/libvirt-to-host.policy
> new file mode 100644
> index 000000000000..045b35d58d0d
> --- /dev/null
> +++ b/src/network/libvirt-to-host.policy
> @@ -0,0 +1,20 @@
> +<?xml version="1.0" encoding="utf-8"?>
> +<policy target="REJECT">
> +  <short>libvirt-to-host</short>
> +
> +  <description>
> +    This policy is used to filter traffic from virtual machines to the
> +    host.
> +  </description>
> +
> +  <ingress-zone name="libvirt" />
> +  <egress-zone name="HOST" />
> +
> +  <protocol value='icmp'/>
> +  <protocol value='ipv6-icmp'/>
> +  <service name='dhcp'/>
> +  <service name='dhcpv6'/>
> +  <service name='dns'/>
> +  <service name='ssh'/>
> +  <service name='tftp'/>
> +</policy>
> diff --git a/src/network/libvirt.zone b/src/network/libvirt.zone
> index b1e84b52ecc9..4c5639d8a84f 100644
> --- a/src/network/libvirt.zone
> +++ b/src/network/libvirt.zone
> @@ -1,25 +1,12 @@
>  <?xml version="1.0" encoding="utf-8"?>
> -<zone target="ACCEPT">
> +<zone>
>    <short>libvirt</short>
>  
>    <description>
> -    The default policy of "ACCEPT" allows all packets to/from
> -    interfaces in the zone to be forwarded, while the (*low priority*)
> -    reject rule blocks any traffic destined for the host, except those
> -    services explicitly listed (that list can be modified as required
> -    by the local admin). This zone is intended to be used only by
> -    libvirt virtual networks - libvirt will add the bridge devices for
> -    all new virtual networks to this zone by default.
> +    This zone is intended to be used only by libvirt virtual networks -
> +    libvirt will add the bridge devices for all new virtual networks to
> +    this zone by default.
>    </description>
>  
> -<rule priority='32767'>
> -  <reject/>
> -</rule>
> -<protocol value='icmp'/>
> -<protocol value='ipv6-icmp'/>
> -<service name='dhcp'/>
> -<service name='dhcpv6'/>
> -<service name='dns'/>
> -<service name='ssh'/>
> -<service name='tftp'/>
> +  <forward />
>  </zone>
> diff --git a/src/network/meson.build b/src/network/meson.build
> index b5eff0c3ab6b..3dd342639a46 100644
> --- a/src/network/meson.build
> +++ b/src/network/meson.build
> @@ -100,5 +100,15 @@ if conf.has('WITH_NETWORK')
>        install_dir: prefix / 'lib' / 'firewalld' / 'zones',
>        rename: [ 'libvirt.xml' ],
>      )
> +    install_data(
> +      'libvirt-to-host.policy',
> +      install_dir: prefix / 'lib' / 'firewalld' / 'policies',
> +      rename: [ 'libvirt-to-host.xml' ],
> +    )
> +    install_data(
> +      'libvirt-nat-out.policy',
> +      install_dir: prefix / 'lib' / 'firewalld' / 'policies',
> +      rename: [ 'libvirt-nat-out.xml' ],
> +    )
>    endif
>  endif
> -- 
> 2.33.0
> 

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


More information about the libvir-list mailing list