基于imd的包过滤防火墙原理与实现

基于imd的包过滤防火墙原理与实现

ID:29471217

大小:81.54 KB

页数:7页

时间:2018-12-20

基于imd的包过滤防火墙原理与实现_第1页
基于imd的包过滤防火墙原理与实现_第2页
基于imd的包过滤防火墙原理与实现_第3页
基于imd的包过滤防火墙原理与实现_第4页
基于imd的包过滤防火墙原理与实现_第5页
资源描述:

《基于imd的包过滤防火墙原理与实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于IMD的包过滤防火墙原理与实现创建时间:2003-07-13文章属性:原创文章提交:xiaobai(xiaobai_at_openfind.com.cn)基于IMD的包过滤防火墙原理与实现xiaobaixiaobai@openfind.com.cn711网络安全小组  http://www.cpyy.net一、前言二、IMD中间层技术介绍三、passthru例程分析四、部分演示代码五、驱动编译与安装六.总结一、前言    前段时间,在安全焦点上看到了TOo2y朋友写的《基于SPI的数据报过滤原理与实现》,很是不错。文章中提到的基于SPI的数据报拦截技术是在用

2、户级的。用户级的拦截有其优势,实现方便、便于移植、通用性强,但是,用户级并不能得到所有的数据报。本文提到的基于IMD的数据报过滤则是属于内核级的,它建立在网络驱动上面。    其实两个月前就想写这篇文章了,可惜这个技术是我一年前做的,好久不用,已经忘的差不多了,所以一直没有写。不过,近来正巧有个课题,牵扯到了中间层驱动。于是,重新拾起丢了有一年的DDK,啃了起来。这期间,真的要非常感谢linxder的帮忙,让我少走了一些弯路,否则,我真的要从头学起了。废话不多说了,切入正题。    二、中间层驱动技术介绍    中间层驱动,英文为NDISintermediate

3、driver。    1)内核级网络驱动介绍        MicrosoftWindows2000支持三种基本的内核级网络驱动,这三层driver顺序从下到上依次为:        1.MiniportNICdrivers:微端口网卡驱动,位于最底层,直接操纵网卡并且对高层驱动提供接口。        2.Intermediatedrivers:IMD中间层驱动,这就是今天的主角,位于1和3之间,具体的作用下面就会介绍。        3.Protocoldrivers:高层协议驱动,俗称为TDI(传输驱动程序接口),高于前面两层,直接面向用户级,      

4、              为用户提供网络服务,也就是绝大多数程序所用到的网络接口。        2)IMD驱动                IMD中间层,它的实质很简单,最经典的描述莫过于下面的话:        AnintermediatedriveristypicallylayeredoveroneormoreNDISNICdriversandunderatransportdriver(possiblymultilayered)thatsupportsTDIatitsupperedge.    AnNDISintermediatedriverexpor

5、tsMiniportXxxfunctionsatitsupperedgeandProtocolXxxfunctionsatitsloweredge.(见DDK文档)        中间层插入网卡和协议层之间,对上面的协议层表现为一个虚拟的微端口网卡结构,而对下面的网卡则表现为一个协议层的结构。所以,无论是网卡接收并上传的数据报,还是上层要下送至网卡发送的数据报,无一例外地要经过中间层。        3)IMD包过滤技术    前面我们已经看到,所有的数据报都要经过中间层,所以,我们可以在中间层加入我们想要过滤的数据报的特征,实现基于中间层驱动的内核级包过滤。 

6、       这样做的优势非常明显,首先,在驱动级别上做过滤,无须组包,速度快,效率自然就高;其次,所有的数据报无一例外,只要网卡上传的数据报均可以截获,避免了用户级无法得到所有数据报的缺点。当然,世界上没有完美的事情。IMD包过滤技术也存在其不可避免的缺点,与操作系统版本关系密切,与硬件联系大,可移植性低。我在调试这个驱动的时候,就碰到了无数次蓝屏,无数次重启动,进了几次安全模式,甚至还为此重新安装了一次系统。        正是由于上面的一些问题,现在市面上还没有见到有厂家推出基于IMD的实用型防火墙,大部分都是在实验室中的作品,或许真的是要做到通用性很难吧

7、,不过还是希望能尽快见到这样的产品面世。            三、passthru代码分析        到这里,你或许已经非常想看看到底怎么来实现基于IMD的包过滤防火墙了,不过,你肯定会迟疑,如果让我们自己写整个中间层驱动的话,是不是有些太艰难了啊?况且,我只是个搞网络安全的,我不是专门写驱动的,让我完成一个驱动程序,还要对上层协议伪装成一个网卡,对下层伪装成一个协议层,这不是要命么?        呵呵,其实微软很不错的,在提出这项技术之后,其DDK中附带了一个中间层驱动的例程,就是passthru。passthru实现了一个中间层的基本功能,对下表现为

8、一个协议层的驱动,对上表

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。