[libvirt] [PATCH v2 0/4] Restructure firewall rules for virtual networks into private chains
Daniel P. Berrangé
berrange at redhat.com
Wed Jan 9 15:13:28 UTC 2019
ping
On Fri, Dec 07, 2018 at 04:21:31PM +0000, Daniel P. Berrangé wrote:
> v1: https://www.redhat.com/archives/libvir-list/2018-November/msg00018.html
>
> The virtual networks in NAT mode are supposed to only allow outbound
> network access for guests. Unfortunately due to ordering of the firewall
> rules libvirt creates, when you have multiple virtual networks, guests
> on the more recently created virtual networks can connect to guests on
> old virtual networks.
>
> This was reported way back in 2008 but we always thought the fix would
> be very complicated to deal with, so we've been putting it off forever.
>
> In parallel with this there's also been a long standing desire since
> 2009 to move our firewall rules out of the builtin chains, to libvirt
> private chains. This is to make it easier for admins to use hook scripts
> to setup rules in the builtin chains that take priority over rules
> libvirt creates.
>
> In implementing the changes to use private chains, I suddenly realized
> that fixing the network to network traffic blocking problem was trivial
> if I grouped the forwarding rules into three distinct sets.
>
> So this series finally fixes an annoying 10 year old bug, and implements
> a 9 year old RFE.
>
> It may take us a while, but we'll get to your bugs eventually ;-)
>
> Changed in v2:
> - Detect whether chains already exist before creating them
> - Only try to delete legacy rules from builtin chain during startup
>
> Daniel P. Berrangé (4):
> network: add platform driver callbacks around firewall reload
> util: pass layer into firewall query callback
> util: create private chains for virtual network firewall rules
> util: move virtual network firwall rules into private chains
>
> src/libvirt_private.syms | 2 +
> src/network/bridge_driver.c | 13 +-
> src/network/bridge_driver_linux.c | 32 +++
> src/network/bridge_driver_nop.c | 11 +
> src/network/bridge_driver_platform.h | 3 +
> src/nwfilter/nwfilter_ebiptables_driver.c | 17 +-
> src/util/virfirewall.c | 2 +-
> src/util/virfirewall.h | 1 +
> src/util/viriptables.c | 254 +++++++++++++++---
> src/util/viriptables.h | 4 +
> .../nat-default-linux.args | 32 +--
> .../nat-ipv6-linux.args | 48 ++--
> .../nat-many-ips-linux.args | 60 ++---
> .../nat-no-dhcp-linux.args | 46 ++--
> .../nat-tftp-linux.args | 34 +--
> .../route-default-linux.args | 22 +-
> tests/virfirewalltest.c | 3 +-
> 17 files changed, 405 insertions(+), 179 deletions(-)
>
> --
> 2.19.2
>
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