10

除了人们问同样的问题外,谷歌上几乎没有关于这个主题的内容。

我将如何开始编写自己的防火墙?

我希望为 Windows 平台编写一个,但我也对其他操作系统的这些信息感兴趣。

4

3 回答 3

10

对于 Windows 2000/XP,有一篇关于 CodeProject 的示例文章为 Windows 2000/XP 开发防火墙

For Vista 我认为您需要使用Windows 过滤平台

于 2008-08-20T17:30:31.470 回答
8

这个问题与那些询问如何编写加密算法的问题惊人地相似。两者的答案都应该以温和的方式结束,提醒人们已经:

  • 体现多年的经验和不断的改进,
  • 可能比任何本土解决方案更安全,并且
  • 考虑辅助要求,例如效率。

防火墙必须有效和准确地检查每个数据包,因此它在操作系统内核或网络堆栈中运行。错误或低效率会危及整个机器和下游机器的安全性和性能。

构建您自己的低级防火墙是一个很好的练习,它将提供许多技术的教育。但是对于任何真正的应用程序,围绕现有的防火墙 API 构建一个 shell 会更加安全和智能。在 Windows 下,该netsh命令将执行此操作;Linux 使用netfilteriptables. 谷歌搜索其中任何一个都会为您指出许多理论、示例和其他有用的信息。

因此,在开始之前,我会复习 TCP/IP(特别是标头信息:端口和协议),然后了解各种类型的攻击以及如何检测它们。了解每个感兴趣的操作系统以及它如何与网络堆栈交互。最后,考虑管理和日志记录:您将如何配置您的防火墙并通过它跟踪数据包,以确保它按照您的意愿进行操作?

祝你好运!

于 2008-11-23T05:02:17.980 回答
2

通常的方法是使用 API 挂钩。谷歌可以教你。只需钩住所有重要的网络东西,比如connect's 和listens's,然后拒绝你想要的。

于 2008-08-20T17:30:49.020 回答