«June 2019»
1
2345678
9101112131415
16171819202122
23242526272829
30


公告

本站技术贴除标明为“原创”的之外,其余均为网上转载,文中我会尽量保留原作者姓名,若有侵权请与我联系,我将第一时间做出修改。谢谢!

             ——既瑜


天气预报(南京)


我的分类(专题)

首页(183)
【趣味文摘】(22)
【五子连珠】(13)
【技术文档】(136)
【电脑技术】(6)
【疑难问题】(1)
【我的心情】(5)


最新日志
花语(中英文对照版)
各种花的花语
NTFS格式的7个精彩问答(pconli
童言无忌,有趣得一蹋
给MM修电脑的三个步骤[转载]
J2EE 面试题综合
JAVA编程规则
[转] P2P之UDP穿透NAT的原理与
[转]词法分析器
文件加密技术
一个让人发狂的PI求解C程序
[转]直线生成算法之DDA
[转]利用内核对象----互斥量实现应用
[转]如何正确的计算文件收发进度
双机调试VC程序
[转]分治法优化大整数乘法 C++实现
浮点数值的内存结构
[转]双链表实现大整数的加法与乘法[VC
拜占廷将军问题[转]
某人的挂QQ的程序源代码,虽然没用了,拿

最新回复
回复:vc中的CString的操作
回复:[转]分治法优化大整数乘法 C++
回复:[转]分治法优化大整数乘法 C++
回复:花语(中英文对照版)
回复:基本排序算法比较与选择[转载]
回复:c++中强制类型转换操作符小结
回复:c++中强制类型转换操作符小结
何必那么执着于是大头猫还是愤怒的小鸟,淡
回复:浮点数值的内存结构
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:32位位图到24位位图的转换
dren, ages 16 and 20
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:花语(中英文对照版)
回复:各种花的花语

留言板
签写新留言

不是0-1背包喔
桂花的花语``
谢谢
提议
提议

统计
blog名称:★既瑜★
日志总数:183
评论数量:636
留言数量:-25
访问次数:1339521
建立时间:2005年3月12日

链接


http://www.nju.edu.cn
http://bbs.nju.edu.cn 
http://www.t7-online.com
http://www.csdn.net
http://www.91f.net
http://www.crsky.com
我的MSN BLOG 

联系我

  OICQ:215768265
  njucs2001@hotmail.com
  erichoo1982@gmail.com

 

W3CHINA Blog首页    管理页面    写新日志    退出


[【技术文档】]防火墙原理及实现 (1)
既瑜(224499) 发表于 2005-4-28 22:21:05

防火墙原理及实现     如果你稍微注意一下关于网络安全方面的报道,就会明白如今的Internet是多么的危险。如果你的电脑没有任何安全措施而直接连接到Internet,那将是一件多么可怕的事情啊。也许,在你刚刚连接到Internet的时候,就已经被别人盯上了。他已经准备或者已经开始对你的电脑进行某些你不希望的操作。在公司,每个员工的电脑位于一个局域网中通过局域网共享连接到Internet,假设局域网内通信是安全的,但是由于局域网与Internet相连,使局域网内的计算机能够被Internet上的恶意程序进行控制和破坏。这样,因此防火墙逐渐成为一个互联网上家喻户晓的东东了。什么是防火墙?从字面上理解就是一堵防火的墙。而这里的火是指来自Internet的各种各样的威胁。防火墙就像一堵墙一样被安装在个人电脑或局域网与Internet之间,监视防火墙内部与Internet之间的通信,如果发现可疑情况,则可以对可疑的数据包进行拦截。究竟什么样的数据包算作可疑或者是恶意的呢?那就需要防火墙有一个策略模块来判断。一个防火墙的策略模块设计的好坏直接影响到防火墙的质量,当然现在多数防火墙能够让用户根据自己的实际情况设置一些策略,这样防火墙有了更大的适应性。 2.1 防火墙的分类     现在的防火墙根据实现原理可以分为包过滤防火墙和代理防火墙。     包过滤防火墙是指使用某种拦截技术拦截到本机接收或发送的数据包,对拦截到的数据包使用策略分析,从而决定是否让数据包通过。比如,在应用程序发送数据的时候,数据首先被防火墙拦截,在防火墙确认信息安全合法后,再真正的把数据发送出去。如果系统接收到数据包,也是先由防火墙拦截,在确认数据包安全合法后,再把数据包放行给需要接收的应用程序。通过这样的收发流程可以看出,包过滤防火墙位于外部主机与内部主机之间,他对数据进行了过滤。     代理防火墙是指防火墙自身实现了一个代理模块防火墙内部与外部的连接都要通过这个代理进行,他们之间不会直接进行连接。这样就可以在代理模块中使用策略了。 在本章将指导读者完成一个简单的防火墙软件的开发,我们将编写一个简单的应用层包过滤防火墙软件。该防火墙的功能如下: 检测访问网络的信息 能够分析出应用程序网络通信的一些tcp/ip族协议,并进行监视和记录 能够进行ip和端口过滤 为了实现这些功能我们设计3个模块: 用户界面模块:UserUI是一个exe文件,它调用MainHookDll模块来完成拦截功能,调用FireWallDll模块来完成对防火墙策略的设置。     防火墙功能模块:FireWallDll模块向MainHookDll模块提供需要拦截的API信息,并且它实现替换函数,并且防火墙策略也在此模块中。     HOOK模块:MainHookDll模块主要实现HOOK API的相关功能。 2.2 各防火墙技术点睛     包过滤防火墙最核心的技术是要能拦截到数据包,也就是说防火墙要在系统接收到数据包,但是还没有分发给某个应用程序处理前和某个应用程序发送数据包,但是系统还没有真正把数据包发送出去之前能够对数据包进行过滤。而拦截数据包可以实现在网络的不同层次上。我们现在讨论的应用都是在WinSock2的基础上进行的,而WinSock2主要提供了WS2_32.DLL文件,当安装WinSock2后,系统网络结构将像下图这样:500)this.width=500'> from msdn ms-help://MS.MSDNQTR.2003FEB.2052/winsock/winsock/windows_sockets_2_dlls_2.htm)     从上面的图中我们可以看到WS2_32.DLL提供Windows Sockets 2 API 供应用程序调用,而这些API主要分为两大类,提供传输功函数和负责名字空间函数,其中名字空间函数的API我们平时很少使用所以我们只讨论关于传输函数。既然所有有关网络发送的API都是由WS2_32.DLL来实现的,那么我们可以用HOOK API的方法拦截WS2_32.DLL中的API,这样就可以在应用程序的网络数据发送和接收前得到对数据的处理机会。 另外,注意在WS2_32.DLL的下面,系统拥有Windows Sockets 2 SPI层,也就是Winsock Service Provider Interfaces, SPI是Windows Sockets 2(以后本文都称之为Winsock2)提供的一个接口,使开发人员能够在ws2_32.dll之下通过SPI接口插入一层进行过滤。这种技术很像刚才提到的HOOK API技术。ws2_32.dll在需要的时候会自动加载我们的SPI。     SPI提供了两种类型的服务,传输服务提供者(Transport Service Provider)和名字空间服务提供者。传输提供者一般称作协议堆栈能够提供建立通信、传输数据、日常数据流控制和错误控制等传输功能方面的服务;名字空间服务提供者则把一个网络协议的地址属性和一个或多个用户友好名称关联到一起,以便启用与应用无关的名字解析方案。 在默认情况下,系统提供了两个默认的SPI的实现,WSPM和NSPM,它们分别默认实现了Transport SPI和Name Space SPI。我们可以创建自己的SPI,将它注册到系统中,那么我们也可以提前处理网络数据,达到和刚才提到的HOOK API相似的目的。 实现SPI的时候,我们需要实现一个DLL,在其中注册并实现我们要拦截的网络函数,SPI的网络函数与Winsock2 API的函数基本上是一一对应的。这样,当Winsock2 API要调用某个函数,那么它先查看我们的SPI是否为这个函数提供了相应的“服务”,如果是,他会很乐意地让我们为他进行服务。 按照ISO/OSI的网络模型来看: 500)this.width=500'> (from msdn ms-help://MS.MSDNQTR.2003FEB.2052/wcecomm/htm/_wcesdk_architectural_model.htm) 无论是HOOK API还是SPI的方法,都是位于ISO/OSI的传输层的上面,而相对于TCP/IP模型,则它们都是属于应用层的方法。 通过上图我们可以发现,Windows在TCP/IP所在的传输层、网络层之下的数据链路层中提供了NDIS(网络设备接口规范)。物理层的数据将传递给它进行处理后再由NDIS传递给网络层处理。由于NDIS属于驱动程序范围,所以在开发NDIS应用时需要使用DDK。

阅读全文(5118) | 回复(2) | 编辑 | 精华

dren, ages 16 and 20 (juniors 
gucci shirt(游客)发表评论于2010-4-1 1:11:13

Dear Cary, I am 46 and the father of two children, ages 16 and 20 (juniors in college and high school, respectively). My wife and I married very young, had our kids a little earlier than expected, embraced it and made what we felt was the difficult, correct choice of being a single-income family with a full-time mom. I would describe my attitude for many years as that of a doting father and believe that we have given unstintingly, and literally planned out our lives so that our children would have some very nice opportunities. We managed to pay off our home and to pay for a master's degree for my wife so that, at such time as our eldest was ready to go to college, we could afford to pay for a good school. Which we did; we both have very good jobs and are able to pay tuition out of our yearly income. We have lived below our means for a very long time to do so and generally have not lived what anyone would term a lavish life. Since she reached age 16 or so, I have really ceased to have a relationship with my oldest daughter. There was never any open break especially: I understand that girls do "outgrow their fathers," and I accepted the role as an ever-present nonentity and occasional manservant. My wife is a little closer to our girls (the youngest is now 16). I have not especially enjoyed the teen years, to be honest: Again, we have not descended to a level of screaming and open rebellion, but the process of being a doormat to unappreciative family members was not big...

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

回复:防火墙原理及实现 (1)
冰郎(游客)发表评论于2005-5-30 4:27:36

还有更多的吗?可以讲得更详细点吗?
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)

站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144281574 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号