Fedora

如何防止 iptables 和 nftables 規則同時執行?

  • April 29, 2020

我正在嘗試在自己的桌面上設置防火牆(目前我正在修補 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 不能以任何一種方式工作,這意味著它們都處於活動狀態。

我相信第二個問題可以從發布的命令中得到回答。第三個問題,是一種基於意見的問題。做任何你認為更容易學習和使用的事情。

引用自:https://unix.stackexchange.com/questions/511940