基于IMD的包过滤防火墙原理与实现
2008-12-18 12:18:47 来源:WEB开发网3)IMD包过滤技术
前面我们已经看到,所有的数据报都要经过中间层,所以,我们可以在中间层加入我们想要过滤的数据报的特征,实现基于中间层驱动的内核级包过滤。
这样做的优势非常明显,首先,在驱动级别上做过滤,无须组包,速度快,效率自然就高;其次,所有的数据报无一例外,只要网卡上传的数据报均可以截获,避免了用户级无法得到所有数据报的缺点。当然,世界上没有完美的事情。IMD包过滤技术也存在其不可避免的缺点,与操作系统版本关系密切,与硬件联系大,可移植性低。我在调试这个驱动的时候,就碰到了无数次蓝屏,无数次重启动,进了几次安全模式,甚至还为此重新安装了一次系统。
正是由于上面的一些问题,现在市面上还没有见到有厂家推出基于IMD的实用型防火墙,大部分都是在实验室中的作品,或许真的是要做到通用性很难吧,不过还是希望能尽快见到这样的产品面世。
三、passthru代码分析
到这里,你或许已经非常想看看到底怎么来实现基于IMD的包过滤防火墙了,不过,你肯定会迟疑,如果让我们自己写整个中间层驱动的话,是不是有些太艰难了啊?况且,我只是个搞网络安全的,我不是专门写驱动的,让我完成一个驱动程序,还要对上层协议伪装成一个网卡,对下层伪装成一个协议层,这不是要命么?
其实微软很不错的,在提出这项技术之后,其DDK中附带了一个中间层驱动的例程,就是passthru。passthru实现了一个中间层的基本功能,对下表现为一个协议层的驱动,对上表现为一个虚拟网卡,安装passthru驱动之后,你可以在硬件管理中的网卡中看到一个虚拟网卡。不过,passthru只是插入到网卡和上层协议中间,却未做任何工作,也就是说,passthru只是让所有的数据报原原本本地流经自己而已。我们要想实现中间层包过滤的功能,需要对passthru进行修改。
- ››基于IP地址的vsftp服务器
- ››基于MySQL 水平分区的优化示例
- ››基于CentOS5的Linux下pptp和openvpn的搭建及配置
- ››基于JavaScript的网页版塔防游戏
- ››基于Android平台 QQ大战360手机游戏爆红
- ››基于Windows Azure的云计算应用设计
- ››基于AES算法实现对数据的加密
- ››基于SoPC目标板Flash编程设计的创建及应用
- ››基于SolidWarks齿轮机构的运动分析与仿真
- ››基于Windwos Server 2008故障转移群
- ››基于JavaScript的REST客户端框架
- ››基于JavaScript和CSS的Web图表框架横向对比
更多精彩
赞助商链接