-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