Closed. 这个问题是与编程或软件开发无关 。目前不接受答案。
当我尝试重新加载firewalld时,它告诉我
Error: COMMAND_FAILED: 'python-nftables' failed: internal:0:0-0: Error: Could not process rule: Numerical result out of range
JSON blob:
{"nftables": [{"metainfo": {"json_schema_version": 1}}, {"add": {"chain": {"family": "inet", "table": "firewalld", "name": "filter_IN_policy_allow-host-ipv6"}}}]}
不知道为什么,Google了之后还是没有解决
我有同样的错误消息。我在firewalld上启用了详细调试,并将日志保存到文件中以进行更深入的研究。就我而言,异常最初发生在“nftables.py”的“361”行中。
例外:
2022-01-23 14:00:23 DEBUG3::使用 JSON blob 调用 python-nftables:{“nftables”:[{“metainfo”:{“json_schema_version”:1 }}, {"add": {"chain": {"family": "inet", "table": "firewalld", "name": "filter_IN_policy_allow-host-ipv6"}}}]}
2022-01-23 14:00:23 DEBUG1:回溯(最近一次调用):
文件“/usr/lib/python3.6/site-packages/firewall/core/fw.py”,第 888 行,规则中
backend.set_rule(规则, self._log_denied)
文件“/usr/lib/python3.6/site-packages/firewall/core/nftables.py”,第 390 行,在 set_rule 中
self.set_rules([规则], log_denied)
文件“/usr/lib/python3.6/site-packages/firewall/core/nftables.py”,第 361 行,在 set_rules 中
raise ValueError("'%s' 失败: %s\nJSON blob:\n%s" % ("python-nftables", error, json.dumps(json_blob)))
ValueError:“python-nftables”失败:内部:0:0-0:错误:无法处理规则:数值结果超出范围
“nftables.py”中的第 361 行:
self._loader(config.FIREWALD_POLICIES, "策略")
为什么这是一个问题: 基本上 nftables 是后端服务,firewalld 是前端服务。它们相互依赖才能发挥作用。每次重新启动firewalld时,它都必须协调后端,在本例中是nftables。在协调过程中的某个时刻,Python 代码中发生了冲突。不幸的是,因为唯一真正的解决方案可能必须来自 nftables 的代码改进,以了解如何将策略填充到链和表中。
解决方法: 好消息是,如果您像我一样,不使用 ipv6,在这种情况下,我们只需禁用该策略而不是解决问题。我将在下面列出解决方法步骤。
解决方法步骤:
删除策略的正确方法是使用命令“firewall-cmd --delete-policy=allow-host-ipv6 --permanent” 但当我尝试这样做时,我在 python 中遇到了其他错误和异常。由于我不关心 ipv6,因此我手动从配置中删除了 XML 并重新启动了firewalld 服务。
rm /usr/lib/firewalld/policies/allow-host-ipv6.xml
rm /etc/firewalld/policies/allow-host-ipv6.xml
systemctl 重新启动防火墙
边注: 解决此冲突后,nftables/iptables/fail2ban 之间还存在一些必须清除的其他冲突。为此,我只是使用命令“fail2ban-client unban --all”来使fail2ban擦除它添加到iptables的所有链。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)