收藏本站 
广告服务 
网站地图 
>> 为你提供近10万篇各类电脑技术文章、网络技术教程、软件技术文章、网页设计教程、平面设计教程、数据库技术教程等方面的电脑教程!
先飞电脑技术网技术文章网络技术网络安全
网络编程 | 网站建设 | 网络技术 | 设计教程 | 软件教学 | 程序开发 | 数据库开发 | 教育认证 | 硬件维护 | 媒体动画 | 机械电子 |

利用包过滤技术实现个人防火墙

[ 作者:佚名    转贴自:网络转载    阅读次数:107    更新时间:2007-10-29 18:07:00   录入:刘光勇 ]         
    本文通过介绍如何运用包过滤技术实现个人防火墙,深入的剖析了个人防火墙中所用到的各种技术,并重点介绍了通过微软的NDIS 中间驱动程序实现网络封装包,以及驱动程序与应用程序之间的通讯方法。

  随着网络的迅速发展,各种各样的网络软件也随之出现,人们的生活和学习对网络的依赖也越来越多,但问题也接踵而来,网站被攻击,病毒泛滥,个人信息被窃取,使人们面临这样一个问题:网络是否安全?

  而防火墙正是网络的保护伞,形形色色的防火墙很多,本文通过介绍包过滤技术实现个人防火墙,使大家对防火墙的知识有进一步的了解

  一、防火墙和包过滤技术简介

  防火墙是一种用于在两个网络间进行访问控制的设备,防火墙系统防范的对象是来自被保护的网络的外部的对网络安全的威胁,它通过检测、限制、更改跨越防火墙的数据流,尽可能的实现对外部网络安全保护。

  而包过滤技术是防火墙最基本的实现技术,具有包过滤技术的装置是用来控制内、外网络数据流入和流出,包过滤技术的数据包大部分是基于TCP/IP协议平台的,对数据流的每个包进行检查,根据数据报的源地址、目的地址、TCP和IP的端口号,以及TCP的其他状态来确定是否允许数据包通过。

  二、截获网络封装包

  截获数据包是实现一个防火墙的第一步,截获数据包的方法有很多种,既可以在用户态下拦截网络数据包,又可以在核心状态下进行数据包截获。

  在用户态下进行网络数据包拦截有以下几种方法:

  (1)Winsock Layered Service Provider (LSP)。

  (2)Windows 2000 包过滤接口。

  (3)替换系统自带的WINSOCK动态连接库。

  很显然,在用户态下可以很简单的进行数据包拦截,但其最致命的缺点就是只能在Winsock层次上进行,而对于网络协议栈中底层协议的数据包无法进行处理。对于一些木马病毒来说很容易避开这个层次的防火墙。

  因此大多数的个人防火墙选择利用网络驱动程序来实现的。例如用中间层驱动程序来截获数据包。

  中间层驱动介于协议层驱动和小端口驱动之间,它能够截获所有的网络数据包(如果是以太网那就是以太帧)。NDIS中间层驱动的应用很广泛,不仅仅是个人防火墙,还可以用来实现VPN,NAT,PPPOverEthernet以及VLan。中间层驱动的概念是在Window NT SP4之后才有的,因此对于Windows9x来说无法直接利用中间层驱动的功能。Windows DDK提供了两个著名的中间层驱动例子:Passthru以及Mux。开发人员可以在Passthru的基础上进行开发,Mux则实现了VLan功能。目前个人防火墙的产品还很少用到这种技术,主要的原因在于中间层驱动的安装过于复杂,尤其是在Windows NT下。Windows 2000下可以通过程序实现自动安装,但是如果驱动没有经过数字签名的话,系统提示用户是否继续安装。中层层驱动功能强大,应该是今后个人防火墙技术的趋势所在,特别是一些附加功能的实现。



图1.NDIS驱动程序模型

三、驱动程序和应用程序间的通讯

  当驱动程序截获网络数据包后,驱动程序要和应用程序进行通讯,通知应用程序对数据包进行判断,如果符合过滤规则,则接受数据包,否则,则放弃该数据包,其步骤大致如下:

  (1)应用程序创建一事件Event;

  (2)应用程序通过CreateFile创建驱动程序实例;

  (3)把该事件的句柄传给驱动程序;

  (4)驱动程序通过DeviceControl函数接受Event的句柄;

  (5)应用程序通过DeviceIOControl函数传递控制驱动程序的消息;

  (6)驱动程序通过Dispatch历程得到应用程序传来的消息,然后根据消息类型进行不同的服务

  (7)把结果数据放入共享内存区,设置Event事件通知应用程序所请求的事情已经办完;

  (8)应用程序通过WaitForSingleObject来获知事件发生;

  (9)应用程序在共享内存区获得数据,并重置该事件。



图2  驱动程序与应用程序通讯模型

四、过滤规则设置

  包过滤防火墙的过滤规则集由若干条规则组成,它应涵盖对所有出入防火墙的数据包的处理方法,
  对于没有明确定义的数据包,应该有一个缺省处理方法;过滤规则应易于理解,易于编辑修改;
  同时应具备一致性检测机制,防止冲突。IP包过滤的依据主要是根据IP包头部信息如源地址和目的地址进行过滤,
  如果IP头中的协议字段表明封装协议为ICMP、TCP或UDP,那么再根据ICMP头信息(类型和代码值)、
  TCP头信息(源端口和目的端口)或UDP头信息(源端口和目的端口)执行过滤,其他的还有MAC地址过滤。
  应用层协议过滤要求主要包括FTP过滤、基于RPC的应用服务过滤、基于UDP的应用服务过滤要求以及动态包过滤技术等。

  在一般情况下,我们可以从以下几个方面来进行访问规则的设置:

  (1)禁止一切源路由寻径的IP包通过;

  (2)IP包的源地址和目的地址;

  (3)IP包中TCP与UDP的源端口和目的端口;

  (4)运行协议;

  (5)IP包的选择

动作

协议

方向

访问时间

远端IP

端口

应用程序

备注

放行

IP

流进

工作时间

202.114.165.240

8080

IE

询问

TCP

流进

工作时间

202.114.165.192

1080

IE

拒绝

IP

流出

工作时间

202.114.204.153

80

IE

图3 一个典型的规则表

  五、记录和报警

  防火墙处理完整日志的方法:防火墙规定了对于符合条件的报文做日志,应该提供日志信息管理和存储方法。
  提供自动日志扫描:指防火墙是否具有日志的自动分析和扫描功能,这可以获得更详细的统计结果,达到事后分析、亡羊补牢的目的
  提供自动报表、日志报告书写器:防火墙实现的一种输出方式,提供自动报表和日志报告功能。

动作

开始时间
结束时间

协议

进流量

出流量

本地IP:端口
远端IP:端口

应用程序

备注

放行

21:54 -
22:00

TCP

200

400

202.114.165.240:80
202.114.165.225:80

IE

放行

22:01-
22:10

IP

250

100

202.114.165.240:80
202.114.165.193:80

IE

图4 一个典型的日志记录表

  警告通知机制:防火墙应提供告警机制,在检测到入侵网络以及设备运转异常情况时,通过告警来通知管理员采取必要的措施,包括E-mail、呼机、手机等。

  提供简要报表(按照用户ID或IP地址):防火墙实现的一种输出方式,按要求提供报表分类打印。

  提供实时统计:防火墙实现的一种输出方式,日志分析后所获得的智能统计结果,一般是图表显示。

  用包过滤技术实现防火墙较为容易,具有比较好的网络安全保障功能,但也存在不足之处,由于过滤技术中无法包括用户名,而仅仅是客户机的IP地址,那么如果要过滤用户名就不能使用包过滤技术了,另外,由于包过滤技术遵循”未禁止就允许通过”的规则,因此,一些未经禁止的包的进出,可能对网络产生安全威胁。今后防火墙的发展会朝着简单化、安全化方向迈进, 综合包过滤和应用代理的功能,达到两者的有效结合,实现新型加密算法的设计,使数据的传输更加安全, 会和IDS、病毒检测等相关安全产品联合起来,充分发挥各自的长处,协同配合,共同建立一个有效的安全防范体系。

文章首页【加入到收藏夹】告诉好友】【打印此文】【关闭窗口
  版权声明:本站提供的“利用包过滤技术实现个人防火墙”版权归文章所有者,转载请注明出处!
 ·上一篇文章:采取措施 从两大方面阻止域名劫持      ·下一篇文章:配置防火墙和Web代理客户的访问
相关文章
·利用包过滤技术实现个人防火墙[107]
·黑客教你利用Excel剿灭DLL木马[45]
·ARP病毒变种利用0-Day漏洞大肆传播[25]
·利用CSW实现网站的内容关键词自动提取[101]
·巧妙利用三键 秘密隐藏重要文档[73]
网站主页 | 收藏本页 | 联系我们 | 广告服务 | 站点地图 | 会员注册 | 隐私政策 | 内容指正

联系QQ:先飞电脑技术网站事务联系QQ,点击可以直接留言. 32933427 电话:13710542091 [世界排名] 鄂ICP备05005890号 先飞电脑教程网