From 41a1a4c69448991bb89b22081b29bffe47bfcca1 Mon Sep 17 00:00:00 2001 From: Jiri Popelka Date: Wed, 6 Mar 2013 17:21:00 +0100 Subject: [PATCH] FORWARD_IN_ZONES and FORWARD_OUT_ZONES chains (RHBZ#912782) We need to separate top-level FORWARD_ZONES chain into these two chains to be able to correctly match rules for input and output interface, see https://bugzilla.redhat.com/show_bug.cgi?id=912782#c11 --- src/firewall/core/base.py | 4 ++-- src/firewall/core/fw_zone.py | 2 +- src/firewall/core/ipXtables.py | 10 ++++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/firewall/core/base.py b/src/firewall/core/base.py index b89870d..1dcf30b 100644 --- a/src/firewall/core/base.py +++ b/src/firewall/core/base.py @@ -44,8 +44,8 @@ INTERFACE_ZONE_SRC = { "PREROUTING": "PREROUTING", "POSTROUTING": "POSTROUTING", "INPUT": "INPUT", - "FORWARD_IN": "FORWARD", - "FORWARD_OUT": "FORWARD", + "FORWARD_IN": "FORWARD_IN", + "FORWARD_OUT": "FORWARD_OUT", "OUTPUT": "OUTPUT", } diff --git a/src/firewall/core/fw_zone.py b/src/firewall/core/fw_zone.py index 2b0ac8b..c72055e 100644 --- a/src/firewall/core/fw_zone.py +++ b/src/firewall/core/fw_zone.py @@ -264,7 +264,7 @@ class FirewallZone: target = self._zones[zone].target.format( chain=SHORTCUTS[chain], zone=zone) if target in [ "REJECT", "%%REJECT%%" ] and \ - src_chain not in [ "INPUT", "FORWARD", "OUTPUT" ]: + src_chain not in [ "INPUT", "FORWARD_IN", "FORWARD_OUT", "OUTPUT" ]: # REJECT is only valid in the INPUT, FORWARD and # OUTPUT chains, and user-defined chains which are # only called from those chains diff --git a/src/firewall/core/ipXtables.py b/src/firewall/core/ipXtables.py index d172151..311f9e4 100644 --- a/src/firewall/core/ipXtables.py +++ b/src/firewall/core/ipXtables.py @@ -83,14 +83,16 @@ DEFAULT_RULES["filter"] = [ "-I INPUT 6 -j %%REJECT%%", "-N FORWARD_direct", - "-N FORWARD_ZONES", + "-N FORWARD_IN_ZONES", + "-N FORWARD_OUT_ZONES", "-I FORWARD 1 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT", "-I FORWARD 2 -i lo -j ACCEPT", "-I FORWARD 3 -j FORWARD_direct", - "-I FORWARD 4 -j FORWARD_ZONES", - "-I FORWARD 5 -p %%ICMP%% -j ACCEPT", - "-I FORWARD 6 -j %%REJECT%%", + "-I FORWARD 4 -j FORWARD_IN_ZONES", + "-I FORWARD 5 -j FORWARD_OUT_ZONES", + "-I FORWARD 6 -p %%ICMP%% -j ACCEPT", + "-I FORWARD 7 -j %%REJECT%%", "-N OUTPUT_direct", -- 1.8.1.4