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