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

时间:2008-08-20 17:25:03

标签: language-agnostic firewall

除了人们提出同样的问题之外,Google上有一些关于此主题的内容很少。

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

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

3 个答案:

答案 0 :(得分:9)

对于Windows 2000 / XP,有一篇文章包含有关CodeProject Developing Firewalls for Windows 2000/XP的示例

对于Vista,我认为您需要使用Windows Filtering Platform

答案 1 :(得分:7)

这个问题与那些询问如何编写加密算法的问题非常相似。两者的答案应该以温和的方式提醒行业标准解决方案:

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

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

构建自己的低级防火墙是一项很好的练习,可以提供许多技术的教育。但对于任何实际应用程序,围绕现有防火墙API构建shell更安全,更智能。在Windows下,netsh命令将执行此操作; Linux使用netfilteriptables。谷歌搜索任何这些将指向你很多理论,例子和其他有用的信息。

所以,要开始,我会刷新TCP / IP(具体来说,标题信息:端口和协议),然后了解各种类型的攻击以及如何检测它们。了解每个感兴趣的操作系统以及它与网络堆栈的交互方式。最后,考虑管理和日志记录:您将如何配置防火墙并通过它来跟踪数据包,以确保它能够按照您的意愿执行操作?

祝你好运!

答案 2 :(得分:2)

通常的方法是使用API​​挂钩。谷歌可以教你。只需挂钩所有重要的网络内容,例如connectlistens,并拒绝您想要的内容。