• 您的位置我爱Aspx >> VC.Net >> 简单分析用SPI实现防火墙
  • 简单分析用SPI实现防火墙

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:49:03  关键字:
  • 简单分析用SPI实现防火墙

    sp; 简单分析用SPI实现防火墙

    作者:snsins

    如有转载,请注明并保持文章的完整

    2002.12.5

    --------------------------------------------------------------------------------------------------------

    本来上次写了一个简单的SPI防火墙程序(只做了IP过滤功能,包过滤功能没有去做)后,已经放弃了对SPI的研究,但是最近有朋友问到SPI防火墙的实现,现在就再对SPI做一次详细点的分析和总结。

    先看看防火墙的一般实现方式

    首先是TCP/IP的结构(OSI7层模型)

    --------

    |应用层|------exe程序,比如ie

    --------

    |表示层|-------ws2_32.dll

    --------

    |会话层|-------SPI

    --------

    |传输层|-------TDI(不能截获ICMP等协议的数据)

    --------

    |网络层|-------NDIS(可以截获所有的网络数据)

    --------

    |链路层|-------设备驱动

    --------

    |物理层|-------网卡

    --------

    从上面我们可以很清楚地看到我们有多种方式实现防火墙,比如用HOOK API在表示层HOOK WINSOCKET的API函数,在会话层用WINDOWS提供的标准的SPI方式实现,SPI相对HOOK API方式要规范多了,而且功能也更强大,但是还是在user model里,。在传输层可以写驱动实现防火墙,虽然已经到了kernel model,但是和上面两种方式一样,过滤不了比如ICMP等协议的数据,因为ICMP等协议的数据并不经过传输层。这样我们可以看到,在WINDOWS里实现防火墙最标准最规范最强大的方式应该是在NDIS(也就是网络层实现),因为NDIS提供了一些规则,只要让我们来调用一些写好的函数来组织数据就可以了,功能不仅强大,而且相对下面链路层的设备驱动要简单,应该说在链路层也可以实现防火墙,但是觉得没有必要,太复杂了。

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:简单分析用SPI实现防火墙
    下一篇:WIN32用户界面设计基础之Cursor篇
  • 相关文章