热门问题
时间线
聊天
视角

nftables

用於Linux封包過濾的使用者空間工具程式 来自维基百科,自由的百科全书

Remove ads

nftablesLinux內核的一個子系統,提供網絡封包、報文、乙太網路幀的過濾和分類。該系統從2014年1月19日Linux內核版本3.13發布之後可用。 [2]

快速預覽 原作者, 開發者 ...

nftables取代了Netfilter的舊版用戶空間工具iptables。nftables相對於iptables的優點是代碼重複度少並且更容易擴充到新協定。nftables通過用戶空間實用程式nft進行組態,代替之前的傳統工具即iptables、 ip6tables、arptables和ebtables。[3]

nftables 利用Netfilter基礎設施的構建塊,例如網絡堆疊中的現有掛鈎、連接跟蹤系統、用戶空間排隊組件和紀錄檔記錄子系統。

Remove ads

nft

命令列語法

用於丟棄所有目標IP位址為1.2.3.4的封包的一條命令:

nft add rule ip filter output ip daddr 1.2.3.4 drop

請注意,新語法與iptables的語法存在顯著差異,在iptables中相同規則的寫法如下:

iptables -A OUTPUT -d 1.2.3.4 -j DROP

新語法看似更冗長,但靈活性卻大幅提升。nftables整合了字典、對映表和連接表等進階數據結構,這些在iptables中並不存在。利用這些特性,可顯著減少實現特定封包過濾設計所需的鏈結串列和規則數量。

iptables-translate工具可用於將許多現有的iptables規則轉換為等效的nftables規則。[4][5]Debian 10(Buster)等Linux發行版採用nftables作為預設封包過濾後端,並配合iptables-translate使用。[6]

Remove ads

歷史

該專案首次由Netfilter核心團隊的Patrick McHardy在2008年Netfilter研討會上公開展示。[7] 內核和用戶空間實現的首個預覽版於2009年3月發布。[8] 儘管該工具被譽為「自2001年iptables問世以來Linux防火牆領域最重大的變革」,卻很少有媒體獲得關注。[9] 知名黑客戈登·里昂表示,他「正期待該功能在主流Linux內核中的正式發布」。[9]

該專案始終處於alpha階段,其官方網站於2009年被撤下。2010年3月,專案郵寄清單中作者的郵件顯示該專案仍在持續開發中,即將迎來beta版本的發布;[10][11] 但後者從未正式發布。2012年10月,Pablo Neira Ayuso為iptables提出了一層相容性介面,[12]並宣布該專案可能被納入主流內核。

2013年10月16日,Pablo Neira Ayuso向Linux內核主線提交了nftables核心功能的pull請求。[13] 該功能於2014年1月19日隨Linux內核3.13版本的發布合併至內核主線。[2]

概覽

nftables內核引擎為Linux內核添加了一個簡單的虛擬機器,能夠執行位元組碼來檢查網絡封包並決定如何處理該封包。該虛擬機器實現的操作被刻意設計得基礎化,它能夠從封包本身取得數據,檢視關聯的元數據(例如入站介面),並管理連接跟蹤數據。基於這些數據,可使用算術運算子、位元運算符和比較運算子進行決策。該虛擬機器還支援運算元據集合(通常為IP位址),從而能用單次集合查詢替代多次比較操作。[14]

上述組織方式與iptables防火牆代碼相悖,後者將協定辨識功能深度嵌入邏輯層,導致代碼不得不為IPv4、IPv6、ARP及乙太網路橋接四種場景分別複寫——因防火牆引擎過於依賴特定協定,無法實現通用化應用。[14]

nftables相較於iptables的主要優勢在於:簡化Linux內核應用程式二進制介面(ABI)、減少代碼重複、改進錯誤報告機制,以及實現更高效的過濾規則執行、儲存與增量變更。傳統使用的iptablesip6tablesarptablesebtables(分別用於IPv4、IPv6、ARP和乙太網路橋接)將被nft取代,作為統一實現方案,在內核虛擬機器之上提供防火牆組態功能。

nftables還提供了一個改進的用戶空間API,允許在單次Netlink事務中原子性地替換一條或多條防火牆規則。這能加速大型規則集環境中的防火牆組態變更,同時有助於避免規則變更執行過程中的競爭條件。nftables還包含相容性功能以簡化從舊版防火牆的遷移,提供可轉換iptables格式規則的命令列工具, [15]以及使用nftables後端的語法相容iptables命令版本。[16]

Remove ads

參考文獻

外部連結

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads