index 68f14a5203db..2b3d6e4c58be 100644 --- a/src/firewall/core/ipXtables.py +++ b/src/firewall/core/ipXtables.py @@ -541,6 +541,8 @@ class ip4tables(object): self.rich_rule_priority_counts = {} rules = [] for table in BUILT_IN_CHAINS.keys(): + if not self.get_available_tables(table): + continue # Flush firewall rules: -F # Delete firewall chains: -X # Set counter to zero: -Z @@ -552,6 +554,8 @@ class ip4tables(object): rules = [] _policy = "DROP" if policy == "PANIC" else policy for table in BUILT_IN_CHAINS.keys(): + if not self.get_available_tables(table): + continue if table == "nat": continue for chain in BUILT_IN_CHAINS[table]: @@ -598,12 +602,13 @@ class ip4tables(object): def build_default_rules(self, log_denied="off"): default_rules = {} - default_rules["security"] = [ ] - self.our_chains["security"] = set() - for chain in BUILT_IN_CHAINS["security"]: - default_rules["security"].append("-N %s_direct" % chain) - default_rules["security"].append("-A %s -j %s_direct" % (chain, chain)) - self.our_chains["security"].add("%s_direct" % chain) + if self.get_available_tables("security"): + default_rules["security"] = [ ] + self.our_chains["security"] = set() + for chain in BUILT_IN_CHAINS["security"]: + default_rules["security"].append("-N %s_direct" % chain) + default_rules["security"].append("-A %s -j %s_direct" % (chain, chain)) + self.our_chains["security"].add("%s_direct" % chain) default_rules["raw"] = [ ] self.our_chains["raw"] = set()