关于不可知的语言:如何开始编写自己的防火墙?

关于不可知的语言:如何开始编写自己的防火墙?

How would I get started writing my own firewall?

除了人们问这个同样的问题外,谷歌上没有关于这个主题的文章。

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

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


对于Windows 2000 / XP,在CodeProject上为开发Windows 2000 / XP的防火墙提供了一个带有示例的文章。对于Vista,我认为您需要使用Windows筛选平台


这个问题与询问如何编写加密算法的问题惊人地相似。两者的答案都应以温和的方式提醒人们有关已经存在的行业标准解决方案:

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

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

构建自己的低级防火墙是一项很好的练习,它将提供许多技术方面的知识。但是,对于任何实际应用程序而言,围绕现有防火墙API构建外壳程序将更加安全,智能。在Windows下,netsh命令将执行此操作。 Linux使用netfilteriptables。谷歌搜索其中的任何一个,将为您提供大量理论,示例和其他有用的信息。

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

祝好运!


通常的方法是使用API??挂钩。 Google可以教您。只需钩住所有重要的网络内容,例如connectlistens,然后拒绝您想要的内容即可。


推荐阅读