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