除了人们提出同样的问题之外,Google上有一些关于此主题的内容很少。
我如何开始编写自己的防火墙?
我正在为Windows平台编写一个,但我也对其他操作系统的这些信息感兴趣。
答案 0 :(得分:9)
对于Windows 2000 / XP,有一篇文章包含有关CodeProject Developing Firewalls for Windows 2000/XP的示例
对于Vista,我认为您需要使用Windows Filtering Platform
答案 1 :(得分:7)
这个问题与那些询问如何编写加密算法的问题非常相似。两者的答案应该以温和的方式提醒行业标准解决方案:
防火墙必须高效准确地检查每个数据包,因此它在OS内核或网络堆栈中运行。错误或效率低下会危及整个机器和下游机器的安全性和性能。
构建自己的低级防火墙是一项很好的练习,可以提供许多技术的教育。但对于任何实际应用程序,围绕现有防火墙API构建shell更安全,更智能。在Windows下,netsh
命令将执行此操作; Linux使用netfilter
和iptables
。谷歌搜索任何这些将指向你很多理论,例子和其他有用的信息。
所以,要开始,我会刷新TCP / IP(具体来说,标题信息:端口和协议),然后了解各种类型的攻击以及如何检测它们。了解每个感兴趣的操作系统以及它与网络堆栈的交互方式。最后,考虑管理和日志记录:您将如何配置防火墙并通过它来跟踪数据包,以确保它能够按照您的意愿执行操作?
祝你好运!答案 2 :(得分:2)
通常的方法是使用API挂钩。谷歌可以教你。只需挂钩所有重要的网络内容,例如connect
和listens
,并拒绝您想要的内容。