基於ebpf的防火牆 bpf iptables

2021-10-25 11:32:23 字數 1416 閱讀 1019

iptables應用廣泛,但是存在一些問題:

規則更新,需要重新建立所有規則

規則匹配效率o(n)

nftables於2023年提出,目標是替代iptables,它仍然基於netfilter。

nftables整合了tables

在使用者空間**改進了規則匹配演算法

但是nftables/ufw/nf-hipac都沒有成功,主要是因為iptables規則語法已經被普遍使用,切換新的規則語法代價太大。

ebpf(extended berkeley packet filter)是針對於 bpf 的擴充套件增強,豐富了 bpf 指令集,提供了 map 的 kv 儲存結構。

我們可以利用 bpf()系統呼叫,初始化 ebpf 的 program 和 map,利用 netlink 訊息或者 setsockopt()系統呼叫,將 ebpf 位元組碼注入到特定的核心處理流程中(如 xdp 等)。

bpf-iptables基於ebpf和xdp重新實現了iptables.

由於iptables在核心中的hook點和ebpf不通,基於ebpf實現iptables的規則語義是有很大挑戰的。

比如netfilter在核心的hook點分為:input/forward/output/prerouting/postrouting,iptables -a input -j drop只丟棄input流量,不丟棄forward流量。

ebpf的hook,位於trafiic control(tc) hook的前面,無法識別input和forward。

這就需要基於ebpf仿照iptables實現乙個chain selector。

bpf-iptables基於linear bit vector search演算法實現資料報匹配。演算法基於divide-and-conquer的思路,將一條條規則分隔,重新組織成**。

netfilter跟蹤tcp/udp/icmp會話的狀態,並把會話存到乙個會話表中。

ebpf-iptables實現了乙個簡單的會話跟蹤機制(不包含關聯會話、ip分片重組等複雜機制),並基於乙個lru map實現了會話表,自動**舊會話。

ebpf技術實踐:高效能acl

防火牆 防火牆安全

作為計算機的第一道屏障,防火牆的重要性不言而喻,儘管防火牆在面臨網路攻擊時仍有很大的缺陷,不如無法阻止自內而外的攻擊,對複雜多變的網路攻擊攻擊無法預警和像ids所做的那樣。但防火牆依然是伺服器乃至個人機的一道不可或缺的屏障。木桶原理 本文將對防火牆做乙個初步的簡介,顯然像我們知道的那樣,防火牆是一款...

透明防火牆才是純粹的防火牆

早在上大學時就有乙個疑問,為什麼防火牆看起來像是一台路由器,為了引入乙個防火牆,你起碼要多申請2個ip位址,還要配置複雜的路由保證通路,為了上述保證,你不得不重新規劃你的網路,最最麻煩的就是為你的那個防火牆分配的那個ip位址,該位址可能會成為攻擊者進入內部網的入口。到底是誰在保護誰啊?真正意義的純粹...

防火牆系列(一) 何為防火牆

簡單解釋下內聯網路和外聯網路 內聯網路類似於區域網是指某個企業或者單位內部互動的網路,外聯網路就是外部的internet 部署在使用者內聯網路和外聯網路之間的一道屏障,一切內外聯網路交換的資料都應該通過防火牆裝置。以預先定義好的安全規則為標準,防火牆將對通過他的資料進行安全監測,符合安全規則的資料流...