除了人们问同样的问题外,谷歌上几乎没有关于这个主题的内容。
我将如何开始编写自己的防火墙?
我希望为 Windows 平台编写一个,但我也对其他操作系统的这些信息感兴趣。
除了人们问同样的问题外,谷歌上几乎没有关于这个主题的内容。
我将如何开始编写自己的防火墙?
我希望为 Windows 平台编写一个,但我也对其他操作系统的这些信息感兴趣。
对于 Windows 2000/XP,有一篇关于 CodeProject 的示例文章为 Windows 2000/XP 开发防火墙
For Vista 我认为您需要使用Windows 过滤平台
这个问题与那些询问如何编写加密算法的问题惊人地相似。两者的答案都应该以温和的方式结束,提醒人们已经:
防火墙必须有效和准确地检查每个数据包,因此它在操作系统内核或网络堆栈中运行。错误或低效率会危及整个机器和下游机器的安全性和性能。
构建您自己的低级防火墙是一个很好的练习,它将提供许多技术的教育。但是对于任何真正的应用程序,围绕现有的防火墙 API 构建一个 shell 会更加安全和智能。在 Windows 下,该netsh
命令将执行此操作;Linux 使用netfilter
和iptables
. 谷歌搜索其中任何一个都会为您指出许多理论、示例和其他有用的信息。
因此,在开始之前,我会复习 TCP/IP(特别是标头信息:端口和协议),然后了解各种类型的攻击以及如何检测它们。了解每个感兴趣的操作系统以及它如何与网络堆栈交互。最后,考虑管理和日志记录:您将如何配置您的防火墙并通过它跟踪数据包,以确保它按照您的意愿进行操作?
祝你好运!
通常的方法是使用 API 挂钩。谷歌可以教你。只需钩住所有重要的网络东西,比如connect
's 和listens
's,然后拒绝你想要的。