三种防火墙实现技术比较

三种防火墙实现技术比较

ID:6058755

大小:29.50 KB

页数:7页

时间:2018-01-01

三种防火墙实现技术比较_第1页
三种防火墙实现技术比较_第2页
三种防火墙实现技术比较_第3页
三种防火墙实现技术比较_第4页
三种防火墙实现技术比较_第5页
资源描述:

《三种防火墙实现技术比较》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、三种防火墙实现技术比较  【摘要】目前防火墙实现技术中关于数据包的处理方法,基本上都是采用BPF的包过滤算法,数据包的传送采用复制的方式,增加了不必要的负荷。本文对FreeBSD操作系统下的netgraph机制进行了分析和描述,并针对内容过滤防火墙,并和另外两种常用的实现技术Squid,BPF进行了分析和比较。得出了基于netgraph机制的内容过滤防火墙更优越的结论。【关键词】netgraph;BPF;防火墙;Squid1.引言随着因特网的广泛使用,网络安全成为一个很重要的问题。BPF具有灵活以及使用方便的优点,也具有较快的运行速度,但是如果我们需要对内容进行过滤的时候,传统的B

2、PF和应用代理(例如squid)实现起来在速度和性能方面的却并不是很好,而且也缺乏灵活性。为了增强多协议的支持以及提高处理的速度,提高系统的灵活性,我们基于netgraph机制进行了新的研究工作,并对三种实现技术的性能进行了比较。2.netgraph机制2.1概述7netgraph机制是一个遵循Unix规范的一个内核子系统,它由许多模块所组成,每个模块完成一定的功能。直观的来说,它是由nodes,edges组成。数据流沿着edge从一个node流向另外一个node。当node收到数据包的时候,执行一定的数据包处理操作,然后转发数据包到另外一个node。在这个数据包处理操作中,可以是

3、简单的添加和删除数据包头,也可以添加更具体的处理操作(例如数据包的内容合成,校验等)。netgraph子系统设计思想采用了SystemV的流技术,因此具有更快的速度、灵活性和更高的处理效率。netgraph对每一个node和hook结构采用引用计数。每一个到node或者hook的引用当作一次计数。通过这种方式对内存进行合理的管理和分配,避免内存的浪费。因为netgraph运行在内核中,所以需要考虑优先级的问题,netgraph采取splnet来进行优先级的分配和释放。特别是在和用户进程进行交互的时候,更需要特别考虑优先级的问题。避免造成系统的死锁或者阻塞。2.2netgraph在T

4、CP/IP协议栈中位置图1netgraph在TCP/IP协议栈中位置7简单的说,在网卡驱动程序接收到来自网络传输的数据包以后,首先进行校验和合法性检查,如果是合法的数据包,则把数据包封装到一个mbuf类型的数据结构里。然后传递给ethernet网卡数据处理模块函数ether_input的输入队列,ether_input从输入队列里读入数据进行处理以后,然后传递给netgraph内核子模块的处理函数ng_input的输入队列,如果系统启动netgraph子系统,则数据包交给ng_input的输入队列,如果系统没有启动netgraph子系统,则首先把数据copy一份给BPF进行处理,然

5、后把数据转发给上层协议处理单元进行处理。所以我们的netgraph子系统在上层协议处理单元处理数据以前就截获了数据包,所以处理速度更快。3.BPF与Squid分析3.1BPF技术介绍BPF是berkeleypacketfilter的缩写,BPF是一个核心态的组件,也是一个过滤器.BPF是一种比较理想的抓包方案。在核心态执行,所以效率比较高,但是,只有少数OS支持(主要是一些BSD操作系统.要使用这项功能前你必须修改kernel,以达成监听网络的目的。像tcpdump和NFR这些程式都使用BPF。然而BSD的监听程式也都透过BPF来达成,如果有人拿到你系统的root权限的话,在系统上

6、设定BPF功能反而帮助他们更容易的监听你的网路。如果没有必要的话,不要设定kernel中BPF的功能。FreeBSD出厂的设定值是将这个功能关闭起来的。7如果内核有多个BPF应用程序,对每个数据包都要运行这几个程序。问题在于很难从数据包过滤器程序推断出应用程序实际上对哪一种数据包感兴趣,所以一般的解决方法就是始终运行过滤器。假设一个应用程序注册的BPF程序是获取发往某个广播地址的低速数据流。绝大多数以太网卡有一个64位入口的哈希表的硬件实现的广播地址过滤器,用来忽略大多数不想要的广播数据包,所以有可能以极低的开销完成这一操作。但是由于有了BPF,内核必须把接口设置为混杂模式,接收所

7、有数据包,并对它们运行过滤器。不管怎样,这样确实可以工作,但考虑到对所要求的数据包进行的处理,就已经变得过于麻烦了。3.2Squid技术分析Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据。也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它下载,然后Squid连接所申请网站并请求该主页,接着把该主页传给用户同时保留一个备份,当别的用户申请同样的页面时,Squid把保存的备份立即传给用户,

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

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

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