防火墙的设计与实现PPT课件
- 格式:pptx
- 大小:1.22 MB
- 文档页数:28
摘要:针对嵌入式Linux 防火墙进行设计并加以实现及测试。
首先,提出了基于ARM 处理器的嵌入式Linux 防火墙的体系架构,给出了Linux 一种内核裁剪定制的方案;接着,针对Netfilter /Iptables 在大数量规则集下性能低下的问题,提出了Iptables 结合NF-hipac 、Ipset 使用的解决方案,并成功实现了移植;最后,针对实现的系统,给出了完整详细的功能及性能测试结果。
功能测试结果表明了系统设计的合理性和有效性,性能测试结果指出了影响系统性能的关键参数,为进一步优化系统提供了参考和依据。
关键词:中图分类号:TP391;TN911.73文献标识码:A 文章编号:2095-2163(2011)03-0035-05Design and Implementation of the Embedded Linux FirewallRAO Ming,DU Zhonghui,HAN Qi ,LI QiongAbstract :In this paper,a project is designed and tested for embedded Linux firewall.Firstly,a system framework of embedded Linux firewall basedon ARM processor is proposed and a scheme of Linux kernel reducing is designed.Secondly,considering the poor performance of Netfilter/Iptables in large number rules set,a method of Iptables combining with NF-hipac and Ipset is introduced,and it is transplanted successfully.Finally,with the ac-complished system,the integrated and detailed function and performance tests are provided.The function experiments show the rationality and effi-ciency of the system design and the performance tests indicate the key parameters influencing the system performance,which provides the reference and basis for further optimizing the system.Key words:收稿日期:2011-07-22基金项目:国家自然科学基金(60832010,61100187)。
第12卷第11期2000年11月计算机辅助设计与图形学学报JOU R NA L O F CO M PU T ER A IDED D ESI GN A N D COM P U T ER GR AP HICSV ol.12,N o.11N ov.,2000流量调节防火墙的设计与实现刘淑芬 付 宁 韩 璐(吉林大学分析测试中心 长春 130023)摘要 论述了防火墙技术可以对进出网络的数据进行控制,有效地对内部网络实施保护;而流量调节技术通过按优先级发送不同类别的信息量,达到改善网络服务质量的目的.文中将两种技术相结合,构建了某企业CAD 网络的防火墙WQ -F ir ew all 的安全系统,以求在获得安全的同时提高网络性能.在L inux 系统上实现了加权优先级队列的防火墙,在对IP 包进行过滤的同时,根据其IP 地址、T CP 端口协议类型等信息,为它们分配了不同的优先级别.根据网络带宽和吞吐量对各级别进行处理.关键词 防火墙,包过滤,流量调节,Linux 系统,IP 地址,T CP 端口中图法分类号 T P 393.08Design and Implementation of Traffic Adjusting FirewallLIU Shu -Fen FU Ning HAN Lu(A nalysis T est Cente r ,Jilin Univ ersity ,Ch ang Chun 130023)Abstract T echnolo gies of packet filter firew all and tr affic adjusting are com bined to ensure se-curity as w ell as per for mance CAD netw o rk inform ation system.A firew all that ado pts w eighted pr io rity queue,called WQ-FIREWALL is im plemented.As it filter s the packets,it assigns prior-ity to them accor ding to IP address,T CP ports,pro to col ty pe etc,and sends packets in order ac-cor ding to their priority and w eight.Key words firew all,tr affic adjusting ,packet filter 修改稿收到日期:2000-09-08.本课题得到符号计算与知识工程国家教委开放实验室的资助.刘淑芬,女,1950年生,教授,主要研究领域为计算机网络与安全技术.付 宁,男,1973年生,硕士,主要研究领域为计算机网络与安全技术.韩 璐,女,1977年生,助教,主要研究领域为计算机网络与安全技术.1 前 言防火墙是在内部网与外部网之间实施安全防范的系统,可被认为是一种访问控制机制,用于确定哪些内部服务允许外部访问,以及允许哪些外部服务访问内部服务.网络防火墙防止互联网及内部网络的损坏,它就像一道护城河.假如没有防火墙,一个网络就暴露在Internet 诸协议和设施面前,面临来自Internet 其它主机的探测和攻击的危险.在一个没有防火墙的环境里,网络的安全性只能体现为每一个主机的功能,在某种意义上,所有主机必须通力合作,才能达到较高程度的安全性.网络越大,这种较高程度的安全性越难管理.随着安全性问题上的失误和缺陷越来越普遍,对网络的入侵不仅来自高超的攻击手段,也有可能来自配置上的低级错误或不合适的口令选择.因此,防火墙的作用是防止不希望的、未授权的通信进出被保护的网络.一个网络防火墙通常安装在被保护的内部网与互联网的连接点上.从互联网或从内部网上产生的任何活动都必须经过防火墙,这样防火墙就能确定这种活动是否可以接受.所谓可以接受是指它们(电子邮件,文件传输,远程登录或其它的特定活动)是否符合站点的安全规定.2 包过滤技术包过滤技术是对网络服务进行过滤.目前In-ternet上提供的主要服务有远程登录(T ELNET)、文件传输(FT P)、浏览查询(W WW)、电子邮件(E-M AIL)等.不同服务数据包有着不同的特征,我们可以根据这些特征来进行过滤,允许或禁止某种服务的连接.本节以T ELNET服务为例,介绍如何对网络服务进行过滤.TELNET是在两个主机之间进行远程实时通信的一种服务.对于从本地连接到远程的T ELNET,往外的T ELNET包中含有本地用户的击键信息,且具有如下特征:该包的目的地址是远程主机的IP地址,源地址是本地主机的IP地址,协议类型为T CP, TCP的目的端口号是23,源端口号是大于1023的随机数Y,以及为建立连接的第一个向外的ACK位为0,其余包的ACK位为1;而在返回的数据包中:源地址为远程主机地址,目的地址为本地主机地址,源端口为23,目的端口为Y,且所有包的ACK位为1.至于从远程连接到本地主机的TELNET,情形类似.根据这些特征,我们可以制定过滤规则对TELNET 服务进行控制.包过滤系统的主要特色是可以让我们在一台机器上提供对整个网络的保护.也以T ELNET为例,假定为了不让使用T ELNET,将网络中所有机器上的T ELN ET服务器关闭,即使这样做了,也不能保证在网络中新增机器时,新机器的T ELNET服务器也被关闭或其他用户不重新安装TELNET服务器.如果有了包过滤系统,只要在包过滤中对此进行设置,也就无所谓机器中的TELNET服务器是否存在问题了.包过滤方式有许多优点,主要优点之一是仅用一个设置在战略要津上的包过滤路由器就可保护整个网络;而且,包过滤不需要用户软件支持,也不要求对客户机作特别的设置,包过滤器的工作对用户来说是透明的.2.1 包过滤原理包的构造有点像洋葱一样,是由各层连接协议组成的.在每一层,包都由包头与包体两部分组成.在包头中存放与这一层相关的协议信息,包体中存放包在这一层的数据信息.这些数据信息也包含了上层的全部信息,在每一层上对包的处理是将从上层获取的全部信息作为包体,然后依本层的协议再加上包头.在与网络连接的另一头的工作是解包.即在另一头,为了获取数据就由下而上依次把包头剥离.在包过滤系统看来,包的最重要的信息是各层次依次加上的包头.3 流量调节流量调节技术通过对数据包进行合理的排队,对特定的数据包赋以较高的优先级,从而加速传输的进程,实现实时交互.由于每种应用系统对网络的要求不同,使得带宽本身并不能解决网络拥塞的问题.流量调节可以把网络按照业务量的类型或级别加以区分,并能够依次对各级别进行处理.例如,若网站主要是向外部提供信息服务,那么外部用户的数据就要优先于内部网用户而先发送.流量调节技术对IP包进行分类,为它们分配不同的优先级,根据网络容量和吞吐量对各级别进行处理.排队技术用来处理被指定的优先级别.一旦数据包被分配了某一级别,系统则根据数据包的优先级来进行处理.3.1 网络传输的优先级通过网络传输的数据、文件有很多,但它们的重要性是不同的,对网络服务质量(QoS,Quality of Service)的要求也不同.除了前面提到的不同服务对实时性的要求不同外,即便是相同类型的服务,也可能因实际情况的不同而对服务质量有不同的要求.例如,对于一家网络书店来说,外部客户通过其W WW网站进行网上购书,内部员工可以通过W WW访问Internet.如果因为内部员工的大量访问而延迟了对客户的响应,那显然是不利于其营销的.为了使客户满意,在发生网络拥挤时,就应当优先满足外部客户的请求.而对于内部员工的访问来说,业务经理通过Internet从其分公司获取销售数据的网络传输,要比普通员工在网上阅读新闻或是下载文件进行的传输重要的多,也应当优先传送.通过以上分析我们看出,由于实际应用情况的不同,可以将通过网络进行的传输赋予不同的优先级别.如果对所有的传输都平等对待,很容易造成相对不太重要的数据占据了大量带宽,使重要的数据传输受到延误;如果按优先级别进行发送,即使存在着网络延迟,也可以保证那些重要的传输不受影响.3.2 基于策略的流量调节基于策略的流量调节(po licy-based traffic ad-87711期刘淑芬等:流量调节防火墙的设计与实现justing)是指通过运用优先策略,使高优先级的网络流量获得较多的带宽及优先发送次序,从而提高网络的服务质量,保证重要的数据传输不被延误.优先策略是根据实际情况预先指定的.例如,对于要求具有较高实时性的IP电话、视频会议等传输,其优先级就要高于一般的E-MAIL,WWW等.可以将网络流量按协议类型、源地址、目的地址、源端口、目的端口等信息分为不同类别,每一类别分配一个优先级别.协议类型、地址、端口等信息都可在IP数据报的报头或TCP报头中找到.前面说过,排队延迟是网络中的主要延迟.现有的路由器多数采用先进先出队列(First In First Out Queue),这是最普遍采用的一种排队方式,数据包的发送次序与其到达路由器的先后顺序是一致的.这种方案比较简单,实现起来容易,但其不足也是显而易见的.因为数据包的发送次序完全依赖于其到达次序,这样,突发的大数据量通信会给实时通信造成非常大的延迟.流量调节技术则是通过采用改进的排队技术,将不同优先级的流量放入不同队列,从而避免了低优先级流量对高优先级流量的干扰.可以采用两种不同的排队方式:简单优先级队列和加权优先级队列.3.2.1 简单优先级队列为了能够按优先级发送数据,简单优先级排队技术把流量按协议、端口、源地址、目的地址等进行分类,并设置优先级.在发送低优先级流量之前,必须先清空(发送完)高优先级队列.换句话说,要根据数据的重要性先发送重要的流量,发送重要流量不受带宽限制.这种方案对突发通信量很管用,但如果策略设置不当,优先级高的流量可能会“吞食掉”大量带宽,从而导致低优先级的流量“饿死”.3.2.2 加权优先级队列加权优先级队列也是按优先级将流量放入不同的队列,但除优先级外,加权优先级排队算法还要求每一连接有一权值.发送时,不仅把流量分配到指定的优先级队列里去,而且还要按其权值大小给它指定一定的带宽.采用加权优先级队列进行转发时,发送程序要循环检查各个优先级队列,若队列中有等待发送的数据包,则将其取出进行转发.发送的数据量由可用带宽及连接的权值决定,权值越大,分到的带宽越多.设共有N个连接,B为可用带宽,B(t)为待发送的连接集合,连接i的权值为<i,则其分到的带宽b i为b i=B[<i/∑j∈B(t)<j].如果发送一个连接没有用完所分配的全部带宽,则将剩余带宽分配给其它连接.例如有两个连接,第一个连接的权值为20,第二个连接的权值为3;那么,系统将分配[20/(20+30)]=2/5的带宽给第一个连接,分配[30/(20+30)]=3/5的带宽给第二个连接.加权优先级队列可以根据网络的吞吐量在不同的连接之间平衡带宽,因而比简单优先级队列更为公平.本文实现的系统中即采用这种队列.4 WQ-Firewall的实现WQ-Firew all是一个运行于Linux操作系统上的包过滤系统.Linux是一个在386/486/Pentium PC机上运行的Unix系统.Linux系统具有最新U-nix的全部功能,由于其系统软件可以免费获取,具有硬件费用低廉的特点,在实际应用中,Linux表现出非常好的稳定性和安全性.作为包过滤的操作系统,Linux不失为一个费用低、且安全性极佳的选择.4.1 WQ-Firewall的结构WQ-Firew all是在Linux内核防火墙的基础上,增加了流量调节模块实现的.即在对IP包进行过滤之后,将IP包的协议类型、源地址和目的地址、端口等与预先定义的流量调节策略进行匹配.若存在与之匹配的规则,则按该规则定义的优先级将数据包存入相应的队列;若不存在与之匹配的规则,则存入系统默认的队列.发送程序按优先级从高到低循环检查各队列,若队列不空,则从队列中取数据包进行发送.4.2 主要的数据结构4.2.1 sk_buff结构该结构体中存放待传送IP包的有关数据,主要包括:str uct sk_buff{str uct sk_buff *nex t;str uct sk_buff*p r ev;/*用来形成队列的指针*/str uct sk_buff_head*list;str uct timeval s tamp;/*到达时间*/str uct d ev ice*dev;/*到达或离去的网络接口设备*/str uct ip hdr*ip_hdr;/*指向IP报头的指针*/unsig ned lo ng len;/*数据包实际长度*/878计算机辅助设计与图形学学报2000年—u32sadd r; /*源地址*/—u32dad dr;/*目的地址*/—u32seq;/*T CP序列数*/—u32ack_seq;/*T CP的A CK序列数*/vo lat ile char acked;/*ACK置位标志*/p k t_typ e,/*包类型*/struct sk_buf f*data_skb;/*数据区*/…};struct sk_buf f_head{struct sk_buf f*nex t;/*向后的指针*/struct sk_buf f*p r ev;/*向前的指针*/—u32qlen;/*队列长度*/};4.2.2 ip hdr结构该结构中存放IP报头的数据.struct ip hdr{—u8tos; /*服务类型*/—u16tot_len;/*总长度*/—u16id;/*标识*/—u16f rag_of f;/*分段偏移*/—u8ttl;/*生存时间*/—u8p r otocol;/*协议类型*/—u32saddr;/*源地址*/—u32daddr;/*目的地址*/…};4.2.3 Ip_f w结构该结构用来存放防火墙的过滤规则.struct ip_f w{struct ip_f w*f w_nex t;/*指向后继的指针*/struct in_ad dr f w_sr c,f w_dst;/*源地址、目的地址*/ struct in_ad dr f w_smsk,f w_dmsk;/*源和目的地址的掩码*/ unsig ned shor t f w_p ts[I P_FW_M A X_POR T S];/*要进行匹配的端口号*/…};下列3个链表分别存储转发防火墙、输入防火墙、输出防火墙的过滤规则.struct ip_f w*ip_f w_f wd_chain;struct ip_f w*ip_f w_in_chain;struct ip_f w*ip_f w_out_chain;4.2.4 Ip_traf f ic结构该结构用来存放流量调节策略.struct ip_tr aff ic{str uct ip_tr a f f ic*f w_nex t;/*指向后继的指针*/str uct in_addr f w_sr c,f w_dst;/*源地址、目的地址*/ str uct in_addr f w_smsk,f w_dmsk;/*源和目的地址的掩码*/ unsig ned shor t f w_p ts[I P_FW_M A X_P ORT S];/*要进行匹配的端口号*/ int weight;/*权值*/int p r i;/*优先级*/…};4.2.5 W QUEUE结构和W QUE UE_H EA D结构W QUE UE是发送队列,W QUEUE_H E A D是指向队列头部的指针.str uct W QU EU E_H EA D{str uct W QU EU E*q;/*指向队列的指针*/int qlen;/*队列长度*/ …};str uct W QU EU E{str uct W QU EU E*nex t;/*指向后继的指针*/int weight;/*权值*/str uct sk_buff_head*q;/*指向存放IP数据包的缓冲区的指针*/…};下列4个指针分别指向4个不同优先级的队列,从WQ0到W Q3优先级依次增加.str uct W QU EU E_H EA D*W Q0;str uct W QU EU E_H EA D*W Q1;str uct W QU EU E_H EA D*W Q2;str uct W QU EU E_H EA D*W Q3;4.3 实现细节为完成过滤和流量调节,主要用到下列子程序:int ipf w_inp ut_check()/*对进入的包进行过滤*/int ipf w_outp ut_check()/*对离去的包进行过滤*/int ipf w_f or war d_check()/*对转发的包进行过滤*/int wq_p ut()/*将数据包送入加权优先队列*/ int wq_g et()/*从加权优先队列中取数据包*/ int wq_init()/*初始化优先级队列*/int wq_bdw()/*计算可用带宽*/int wq_r ule()/*从配置文件读流量调节策略*/ 4.4 设置规则过滤规则需用Linux系统的ipfw adm命令进行设置,每条规则对应一条命令,如下命令将允许从任意外部主机到网络地址为192.168.1的任意主机的TELNET连接.ipfw adm-F-a accept-b-P tcp-S0.0.0.0/087911期刘淑芬等:流量调节防火墙的设计与实现23-D192.168.1.0/241024:65535为安全起见,第一条规则应设置为将所有连接都禁止:ipfw adm-F-p deny,然后再逐条增加“允许”规则.这样,对于所有未被允许的连接,系统都将“拒绝”.应用中,可将所有规则的设置命令写入/etc/ rc.d/rc.ipfw中,并配置系统使其开机后自动运行该文件.流量调节策略需写入文本文件/etc/traffic中,每条规则需包括如下内容:方向、源地址、目的地址、协议、源端口、目的端口、优先级、权值.其中方向的有效值为I(进)、O(出)和B(双向);优先级的有效值为0—3;权值为整数.4.5 设置流量策略比起过滤规则的设置,流量策略的设置相对要简单一些.主要的设置是为WWW服务分配较高的优先级,同时为不使外部访问者在网络拥挤时等待太久,应给向外的WWW流量分配较大的权.另外,流量调节可以只在一个路由器上进行,因而我们只在外部路由器上作一些配置(因为向外部提供的W WW信息经过外部路由器).参考文献1Ch ris Hare.Internet S ecu rity Profes sional Reference.New Rid-ers.ISBN1-56205-557-7.19962An drew S Tanen bau puter Netw orks(Th ird Edition).Prentice-Hall International,Inc.Beijing:T singh ua University Press,1997880计算机辅助设计与图形学学报2000年。
⽹络安全概论——防⽕墙原理与设计⼀、防⽕墙概述防⽕墙是⼀种装置,它是由软件/硬件设备组合⽽成,通常处于企业的内部局域⽹与 Internet 之间,限制 Internet ⽤户对内部⽹络的访问以及管理内部⽤户访问 Internet 的权限。
换⾔之,⼀个防⽕墙在⼀个被认为是安全和可信的内部⽹络和⼀个被认为是不那么安全和可信的外部⽹络(通常是 Internet)之间提供⼀个封锁⼯具。
如果没有防⽕墙,则整个内部⽹络的安全性完全依赖于每个主机,因此,所有的主机都必须达到⼀致的⾼度安全⽔平,这在实际操作时⾮常困难。
⽽防⽕墙被设计为只运⾏专⽤的访问控制软件的设备,没有其他的服务,因此也就意味着相对少⼀些缺陷和安全漏洞,这就使得安全管理变得更为⽅便,易于控制,也会使内部⽹络更加安全。
防⽕墙所遵循的原则是在保证⽹络畅通的情况下,尽可能保证内部⽹络的安全。
它是种被动的技术,是⼀种静态安全部件。
1、防⽕墙设计的要求(对防御内部的攻击⽆⽤):1. 所有进出⽹络的数据都要通过防⽕墙(但不⼀定要过滤)2. 只允许经过授权的数据流通过防⽕墙3. 防⽕墙⾃⾝对⼊侵是免疫的2、防⽕墙提供的四种控制机制1. 服务控制2. ⽅向控制3. ⽤户控制4. ⾏为控制3、防⽕墙的⼏个基本功能(1)隔离不同的⽹络,限制安全问题的扩散,对安全集中管理,简化了安全管理的复杂程度。
(2) 防⽕墙可以⽅便地记录⽹络上的各种⾮法活动,监视⽹络的安全性,遇到紧急情况报警。
(3)防⽕墙可以作为部署 NAT 的地点,利⽤ NAT 技术,将有限的 IP 地址动态或静态地与内部的 IP 地址对应起来,⽤来缓解地址空间短缺的问题或者隐藏内部⽹络的结构。
(4)防⽕墙是审计和记录 Internet 使⽤费⽤的⼀个最佳地点。
(5)防⽕墙也可以作为 IPSec 的平台。
(6)内容控制功能。
根据数据内容进⾏控制,⽐如防⽕墙可以从电⼦邮件中过滤掉垃圾邮件,可以过滤掉内部⽤户访问外部服务的图⽚信息。
Linux防火墙的设计与实现Linux防火墙的设计与实现摘要随着Internet的飞速发展,网络已是人类生活不可缺少的重要成分,信息时代给人类的生活带来极大便利的同时,也对人类的生活造成了破坏,日益突出的信息安全问题也越来越引起大家的注意,公共数据的安全问题日益成为人们关注的焦点,而防火墙作为最早出现的网络安全产品也是目前最基本最有效的信息安全防护手段,正日益受到用户和研发机构的青睐,得到公司和个人的广泛应用。
经过详细调查,考虑到现有硬件设备的限制,因包过滤防火墙的优势更明显,速度快且效率高,功能强大,不耗内存,并可对数据进行细致的控制,自己设定过滤规则,方便测试。
在保证满足实验要求的环境下又能尽可能地简化了实验环境,因此本论文实现的是基于主机设计的防火墙配置系统,故只需要一个联网的主机加虚拟机即可进行实验测试。
所以最终选择在Linux环境下基于netfilter/iptables防火墙设计技术实现包过滤型软件防火墙的设计与应用。
关键字:Linux;防火墙设计;安全策略;包过滤;Linux防火墙的设计与实现Linux system network security ——Design and Implement The PersonalFirewall of LinuxABSTRACTMany of the current firewall products, and its features are very strong, but for small applications, individual prices are high, and in the size of the pplication firewall products can choose not many. Therefore, to design a suitable ersonal firewall with packet filtering is necessary.The design is first carried out on the netfilter framework of overall understanding, and then construct their own in the framework of a filter rule, followed in the netfilter based personal firewall for the detailed planning, disCussed the personal firewall in the importance of the current network , and research significance. For this design, made three features: Firstly, to achieve the filter rules; II: combination with a database of historical information for analysis. Third: to combine with the log, you can analyze the current problems. Resolved at this stage only the first target, the other two goals are to be continued. The first objective of the implementation process is: First, set up their own filtering rules, in this filter rule, use the hook function to hook to take an external packet filter rules set by their own than on; followed up function by their own set up filtering rules to the system kernel, the rest is to start filtering. Through the detailed design of filter rules, with some combination of databases and logs to make this personal firewall is more perfect, more powerful. Through the design of personal firewall, reaching some of the content filtering information purposes.Keywords:Device drivers; firewall; security policy; packet filtering;Linux防火墙的设计与实现目录1 绪论 ·····························································································错误!未定义书签。