我将如何开始编写自己的防火墙?
时间:2020-03-05 18:41:12 来源:igfitidea点击:
除了人们问这个同样的问题外,谷歌上没有关于这个主题的文章。
我将如何开始编写自己的防火墙?
我正在为Windows平台编写一个,但是我也对其他操作系统的此信息感兴趣。
解决方案
回答
对于Windows 2000 / XP,在CodeProject上开发用于Windows 2000 / XP的防火墙的示例文章
对于Vista,我认为我们需要使用Windows筛选平台
回答
通常的方法是使用API挂钩。 Google可以教我们。只需钩住所有重要的网络内容,例如" connect"和" listen",然后拒绝我们想要的内容即可。
回答
这个问题惊人地类似于询问如何编写加密算法的问题。两者的答案都应以温和的方式提醒人们有关已经存在的行业标准解决方案:
- 体现多年的经验和不断的改进,
- 可能比任何本地解决方案都要安全得多,并且
- 考虑辅助要求,例如效率。
防火墙必须有效且准确地检查每个数据包,因此它在OS内核或者网络堆栈中运行。错误或者效率低下会危害整个机器以及下游机器的安全性和性能。
构建自己的低级防火墙是一项很好的练习,它将提供许多技术方面的知识。但是,对于任何实际应用程序而言,围绕现有防火墙API构建外壳程序将更加安全和智能。在Windows下,netsh
命令将执行此操作。 Linux使用netfilter
和iptables
。仔细阅读这些内容中的任何内容,都会为我们提供许多理论,示例和其他有用的信息。
因此,开始之前,我将首先学习TCP / IP(特别是标题信息:端口和协议),然后了解各种类型的攻击以及如何检测到它们。了解有关的每个操作系统及其与网络堆栈的交互方式。最后,考虑一下管理和日志记录:我们将如何配置防火墙并通过它跟踪数据包,以确保防火墙按预期运行?
祝你好运!