如何防止 iptables 和 nftables 規則同時執行?
我正在嘗試在自己的桌面上設置防火牆(目前我正在修補 Fedora 29 虛擬機)。我想在“預設拒絕一切”的基礎上擁有它。幾乎立即我決定禁用和屏蔽
firewalld.service
, 因為firewalld
沒有辦法丟棄傳出的數據包,除非使用本機iptables
語法。所以我決定求助於nftables
,因為它是前者的現代替代品。問題是在系統重啟後
iptables
鏈有一些規則,我沒有設置(我不知道它們來自哪裡)。另一方面,# nft list ruleset
什麼也不返回。所以我假設,來自iptables
和的規則nft
將同時啟用,當我設置一些nft
規則時,來自 的規則iptables
,可以從“無處”出現,將能夠干預。我試圖刪除
iptables
,但dnf
拒絕這樣做並警告這systemd
取決於它。那麼有人可以在這裡回答我的幾個問題嗎?
- 我是否正確理解了這裡的概念(
iptables
規則和鍊是分開nft
的,並且它們都同時有效)?- 如何在
nft
不受iptables
規則乾擾的情況下可靠使用?- 還是我應該簡單地使用
iptables
和刪除nft
?
對於問題本身,這些是原始文章的最後兩個問題:
- 如何在沒有 iptables 規則乾擾的情況下可靠地使用 nft?
- 還是我應該簡單地使用 iptables 並刪除 nft?
這就是nftables wiki所說的:
What happens when you mix Iptables and Nftables? How do they interact? nft Empty Accept Accept Block Blank iptables Empty Empty Block Accept Accept Results Pass Pass Unreachable Unreachable Pass
因此,人們不必擔心某些流量會被允許,因為它在一種工具中被允許,而在另一種工具中被禁止。
至於那些 iptables 規則,正如我所問的,“在系統重新啟動後,iptables 鏈有一些規則,我沒有設置(而且我不知道它們來自哪裡)”,它們原來來自
libvirtd.service
我禁用,因為我不需要它。但即使我沒有,它也不會受到傷害。
我不確定這是最好的方法,但是我所做的是阻止 iptables 在啟動後重新載入
rm /etc/sysconfig/iptables-config rm /etc/sysconfig/ip6tables-config systemctl disable firewalld
至於您在底部的問題,我沒有親自使用過 nftables,但要查看它們是否同時生效,您可以將其設置為,例如放下所有內容並打開另一個。在兩邊重複,如果 ping 不能以任何一種方式工作,這意味著它們都處於活動狀態。
我相信第二個問題可以從發布的命令中得到回答。第三個問題,是一種基於意見的問題。做任何你認為更容易學習和使用的事情。