簡體   English   中英

centos 8,firewalld 錯誤`COMMAND_FAILED: 'python-nftables' failed`

[英]centos 8, firewalld error `COMMAND_FAILED: 'python-nftables' failed`

當我嘗試重新加載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 上啟用了詳細調試並跟蹤日志以進行更深入的研究。 就我而言,異常最初發生在“361”行的“nftables.py”中。

例外:

2022-01-23 14:00:23 DEBUG3:<class 'firewall.core.nftables.nftables'>:使用 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(rule , self._log_denied) 文件 "/usr/lib/python3.6/site-packages/firewall/core/nftables.py", 第 390 行, 在 set_rule self.set_rules([rule], log_denied) 文件 "/usr/lib /python3.6/site-packages/firewall/core/nftables.py", line 361, in set_rules raise ValueError("'%s' failed: %s\nJSON blob:\n%s" % ("python-nftables ”,錯誤,json.dumps(json_blob))) ValueError:'python-nftables'失敗:內部:0:0-0:錯誤:無法處理規則:數值結果超出范圍

“nftables.py”中的第 361 行:

self._loader(config.FIREWALLD_POLICIES,“策略”)

為什么這是一個問題:
基本上 nftables 是一個后端服務,而 firewalld 是一個前端服務。 它們相互依賴於 function。 每次重新啟動 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 的所有鏈。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM