2019-06-07 18:09:01 +00:00
|
|
|
From f706135269a84458b839f940d571c2a52e3c1fe6 Mon Sep 17 00:00:00 2001
|
2018-08-31 14:57:15 +00:00
|
|
|
From: Eric Garver <e@erig.me>
|
|
|
|
Date: Thu, 30 Aug 2018 16:34:19 -0400
|
|
|
|
Subject: [PATCH] fedora patch to default to iptables backend
|
|
|
|
|
|
|
|
---
|
|
|
|
config/firewalld.conf | 7 -------
|
|
|
|
src/firewall/config/__init__.py.in | 2 +-
|
|
|
|
src/firewall/core/io/firewalld_conf.py | 17 +++++++++++++++++
|
|
|
|
src/tests/dbus/firewalld.conf.at | 2 +-
|
|
|
|
src/tests/functions.at | 4 ++--
|
|
|
|
5 files changed, 21 insertions(+), 11 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/config/firewalld.conf b/config/firewalld.conf
|
|
|
|
index b53c0aa50c53..63df409bf567 100644
|
|
|
|
--- a/config/firewalld.conf
|
|
|
|
+++ b/config/firewalld.conf
|
|
|
|
@@ -55,10 +55,3 @@ LogDenied=off
|
|
|
|
# will be used. Possible values are: yes, no and system.
|
|
|
|
# Default: system
|
|
|
|
AutomaticHelpers=system
|
|
|
|
-
|
|
|
|
-# FirewallBackend
|
|
|
|
-# Selects the firewall backend implementation.
|
|
|
|
-# Choices are:
|
|
|
|
-# - nftables (default)
|
|
|
|
-# - iptables (iptables, ip6tables, ebtables and ipset)
|
|
|
|
-FirewallBackend=nftables
|
|
|
|
diff --git a/src/firewall/config/__init__.py.in b/src/firewall/config/__init__.py.in
|
|
|
|
index 955be32077e1..cff7c3fe9025 100644
|
|
|
|
--- a/src/firewall/config/__init__.py.in
|
|
|
|
+++ b/src/firewall/config/__init__.py.in
|
|
|
|
@@ -129,4 +129,4 @@ FALLBACK_IPV6_RPFILTER = True
|
|
|
|
FALLBACK_INDIVIDUAL_CALLS = False
|
|
|
|
FALLBACK_LOG_DENIED = "off"
|
|
|
|
FALLBACK_AUTOMATIC_HELPERS = "system"
|
|
|
|
-FALLBACK_FIREWALL_BACKEND = "nftables"
|
|
|
|
+FALLBACK_FIREWALL_BACKEND = "iptables"
|
|
|
|
diff --git a/src/firewall/core/io/firewalld_conf.py b/src/firewall/core/io/firewalld_conf.py
|
|
|
|
index 4d57bad693c1..6264f45a1913 100644
|
|
|
|
--- a/src/firewall/core/io/firewalld_conf.py
|
|
|
|
+++ b/src/firewall/core/io/firewalld_conf.py
|
|
|
|
@@ -240,6 +240,12 @@ class firewalld_conf(object):
|
|
|
|
if key not in done:
|
|
|
|
if (key in self._config and \
|
|
|
|
self._config[key] != value):
|
|
|
|
+ # Only write FirewallBackend if it's not the default.
|
|
|
|
+ # We will change the default in the future.
|
|
|
|
+ if key == "FirewallBackend" and \
|
|
|
|
+ self._config[key] == config.FALLBACK_FIREWALL_BACKEND:
|
|
|
|
+ done.append(key)
|
|
|
|
+ continue
|
|
|
|
empty = False
|
|
|
|
temp_file.write(u'%s=%s\n' %
|
|
|
|
(key, self._config[key]))
|
|
|
|
@@ -247,6 +253,12 @@ class firewalld_conf(object):
|
|
|
|
elif key in self._deleted:
|
|
|
|
modified = True
|
|
|
|
else:
|
|
|
|
+ # Only write FirewallBackend if it's not the default.
|
|
|
|
+ # We will change the default in the future.
|
|
|
|
+ if key == "FirewallBackend" and \
|
|
|
|
+ value == config.FALLBACK_FIREWALL_BACKEND:
|
|
|
|
+ done.append(key)
|
|
|
|
+ continue
|
|
|
|
empty = False
|
|
|
|
temp_file.write(line+u"\n")
|
|
|
|
done.append(key)
|
|
|
|
@@ -258,6 +270,11 @@ class firewalld_conf(object):
|
|
|
|
for (key,value) in self._config.items():
|
|
|
|
if key in done:
|
|
|
|
continue
|
|
|
|
+ # Only write FirewallBackend if it's not the default.
|
|
|
|
+ # We will change the default in the future.
|
|
|
|
+ if key == "FirewallBackend" and \
|
|
|
|
+ value == config.FALLBACK_FIREWALL_BACKEND:
|
|
|
|
+ continue
|
|
|
|
if not empty:
|
|
|
|
temp_file.write(u"\n")
|
|
|
|
empty = True
|
|
|
|
diff --git a/src/tests/dbus/firewalld.conf.at b/src/tests/dbus/firewalld.conf.at
|
|
|
|
index 473210de10af..44e649111ffb 100644
|
|
|
|
--- a/src/tests/dbus/firewalld.conf.at
|
|
|
|
+++ b/src/tests/dbus/firewalld.conf.at
|
|
|
|
@@ -5,7 +5,7 @@ DBUS_GETALL([config], [config], 0, [dnl
|
|
|
|
string "AutomaticHelpers" : variant string "system"
|
|
|
|
string "CleanupOnExit" : variant string "no"
|
|
|
|
string "DefaultZone" : variant string "public"
|
|
|
|
-string "FirewallBackend" : variant string "nftables"
|
|
|
|
+string "FirewallBackend" : variant string "iptables"
|
|
|
|
m4_if(no, HOST_SUPPORTS_NFT_FIB, [dnl
|
|
|
|
string "IPv6_rpfilter" : variant string "no"],[dnl
|
|
|
|
string "IPv6_rpfilter" : variant string "yes"])
|
|
|
|
diff --git a/src/tests/functions.at b/src/tests/functions.at
|
2019-06-07 18:09:01 +00:00
|
|
|
index 6c0260766160..ddb9c4410b81 100644
|
2018-08-31 14:57:15 +00:00
|
|
|
--- a/src/tests/functions.at
|
|
|
|
+++ b/src/tests/functions.at
|
2019-06-07 18:09:01 +00:00
|
|
|
@@ -67,7 +67,7 @@ m4_define([FWD_START_TEST], [
|
|
|
|
m4_ifdef([TESTING_FIREWALL_OFFLINE_CMD], [
|
|
|
|
AT_KEYWORDS(offline)
|
|
|
|
], [
|
2018-08-31 14:57:15 +00:00
|
|
|
- m4_define_default([FIREWALL_BACKEND], [nftables])
|
|
|
|
+ m4_define_default([FIREWALL_BACKEND], [iptables])
|
|
|
|
|
2019-06-07 18:09:01 +00:00
|
|
|
AT_KEYWORDS(FIREWALL_BACKEND)
|
|
|
|
|
|
|
|
@@ -75,7 +75,7 @@ m4_define([FWD_START_TEST], [
|
2018-08-31 14:57:15 +00:00
|
|
|
AT_CHECK([sed -i 's/^CleanupOnExit.*/CleanupOnExit=no/' ./firewalld.conf])
|
|
|
|
|
|
|
|
dnl set the appropriate backend
|
|
|
|
- AT_CHECK([sed -i 's/^FirewallBackend.*/FirewallBackend=FIREWALL_BACKEND/' ./firewalld.conf])
|
|
|
|
+ AT_CHECK([echo "FirewallBackend=FIREWALL_BACKEND" >> ./firewalld.conf])
|
|
|
|
|
|
|
|
dnl fib matching is pretty new in nftables. Don't use rpfilter on older
|
|
|
|
dnl kernels.
|
|
|
|
--
|
2019-06-07 18:09:01 +00:00
|
|
|
2.20.1
|
2018-08-31 14:57:15 +00:00
|
|
|
|