-1
A
回答
6
一個非常基本的防火牆開發一個正確防火牆的例子並非易事。您需要全面瞭解底層操作系統的網絡堆棧以及OSI模型各層的各種協議。
The netfilter/iptables project,負責最廣泛使用的Linux數據包過濾軟件,它是開源的,它應該爲您提供一個很好的防火牆內容。這當然不是「非常基本」的類別,但我會對所謂的「非常基本的」任何防火牆軟件保持警惕。
2
通常,大多數Linux防火牆都是shell腳本編譯,它們將字符串組織起來發送到iptables
或有時ebtables
命令,具體取決於是否正在使用橋接。另外,如果正在使用流量整形,他們會與tc
實用程序通話。
Shorewall是這樣的防火牆的一個例子,但它做了很多。它可以讓你設置各種類型的NAT,圍繞VPN等的安全性。
它看起來像你想在C中完全做到這一點。我會推薦obtaining the source to iptables,並熟悉其內核對象提供的ioctl鉤子。在這一點上,你將能夠開始編寫自己的包裝來完成你需要做的事情。
注意:Root需要是運行應用程序的用戶,請確保您爲此設計(或圍繞)。
我知道它不是微不足道的,而是一個最基本的防火牆,它演示了數據包過濾應該存在。 – 2009-11-14 15:45:26
@Ankit:根本沒有。 (應該存在)這是因爲TCP/IP不是基本的。 – EFraim 2009-11-14 16:26:34