当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]IPv6防火墙设计技术介绍

1 引言

  “流过滤”技术融合了包过滤和应用代理安全性和优点,克服了包过滤和应用代理的诸多缺陷,代表了一种全新的防火墙技术结构。在大家纷纷开始关注应用层安全的今天,“流过滤”技术架构更加显示了其前瞻性和先进性。经过近几年的不断完善和实际使用中的磨合,新产品的“流过滤”引擎已经相当成熟和完善,在性能和稳定性方面得到了大幅度的提升,使其能够满足关键业务领域的长期稳定运行的要求。但这都是针对IPv4防火墙的,随着IPv6网络[1]的普及,对基于流过滤技术的IPv6防火墙设计和分析则是一个新的研究热点。

  2 流过滤技术研究

  “流过滤”技术[2]是以状态检测包过滤的形态实现对应用层保护的一种防火墙过滤技术,基本原理是在状态检测包过滤的基础上,针对具体应用层协议采用专门设计的TCP/IP协议栈实现对链路层数据流在应用层重组并在此基础上进行过滤,以包过滤的形态提供应用层保护能力,使得规则匹配在防火墙内部由数据链路层直达应用层。

  2.1 流过滤处理策略

  在流过滤报文处理策略中,要对不同报文区别对待,一部分类型的报文使用流过滤技术,其它类型的报文使用包过滤技术,比如说ARP报文、UDP报文、非用来传输数据的TCP报文都使用包过滤技术,这些报文可根据MAC首部、IP首部、TCP首部进行判断。但判断用来传输数据的TCP报文中哪些使用流过滤技术哪些使用包过滤技术的判定依据是TCP报文中的首部端口号、某些标志字段及应用层协议首部某些字段。使用流过滤技术的报文称为关键报文,而其它的报文统称为非关键报文。

  2.2 流过滤的处理步骤

  当对关键报文应用流过滤技术处理时,流过滤技术逻辑上断开数据发送端与数据接受端之间的直接网络连接,即发送端与接受端之间在传输数据之前建立的网络连接仍然存在,但发送端与接受端之间的数据传输必须通过使用流过滤技术的防火墙中转。如图1所示。   

  图1 防火墙利用流过滤技术对关键报文进行处理的过程,按照时间先后顺序可分为三个步骤:

  (1)对发送端发送应答报文,并将同一会话中的全部关键报文在应用层数据重组。

  (2)按照流过滤规则对重组后的完整数据进行合法性检查,并做相应处理。

  (3)对通过合法性检查的数据发送给接受端,并处理接受端发出的应答报文。

  2.3 流过滤实现要点

  (1)报文分类:首先利用报文信息判断第一个报文是否为关键报文,若是,记录下IPv6基本报头的流标识字段值。对于收到的第二个报文,先与第一个比较流标识字段值,若相等,则说明它们属于同一个会话,第二个报文也为关键报文;否则再利用报文信息判断是否为关键报文,若是,记录下流标识字段值。

  (2)发送应答报文:关键在于应答报文中IP首部标识字段、TCP首部确认序号及IP首部、TCP首部校验和的计算。

  (3)判断同一会话关键报文是否传输完毕:在同一会话中收到TCP首部FIN标志位为1的报文,即可确定传送传输完毕。

  (4)重组关键报文:通过报文中TCP首部序号字段的值及应用数据的长度发现重复报文,并根据后发送报文的TCP首部序字段的值等于先发送报文TCP首部序号值加上应用层数据长度加1这条规则,排列好同一会话的所有报文。

  (5)发送合法数据:需要发送数据时把原始报文按顺序发送给接受端。

  3 IPv6防火墙系统的设计

  3.1 体系结构

  在IPv6网络通信中,数据流是以密文的形式在网络中传输,IPv6报文都是加密的,防火墙无法获得相关信息进行过滤,要么全部阻拦数据包则网络将不能进行通信,要么全部放行则容易受到攻击。为解决这一问题,本文将采用屏蔽子网防火墙系统结构[4],在此系统中的堡垒主机上实现流过滤技术。如图2所示。


  图2 IPV6防火墙体系结构图

  该系统层次结构示意图如图3所示。

 


 

  图3 IPv6防火墙系统层次结构示意图 [!--empirenews.page--]

 3.2 运行平台及开发工具

  Linux作为开放源代码的操作系统[5],性能稳定且安全性较高,有着广泛的应用。自2.4内核以来的版本不仅支持IPv6协议栈,而且所采用的Netifilter/Iptables框架引入了模块化的构建方式,可以方便地实现IPv6防火墙。并且还得利用MySql数据库来保存信息。开发工具为C语言。

  3.3 基于流过滤技术的IPv6防火墙系统设计

  3.3.1 防火墙设计图


  图4 IPv6防火墙设计图

  3.3.2 本文设计各模块实现的功能

  数据包捕获模块:实现对IPv6数据包的捕获,并进行报文分类。

  包过滤模块:实现对非关键报文的过滤。

  流过滤模块:实现对关键报文的重组过滤。

  控管规则模块:负责对过滤规则进行控制和管理。

  报警信息记录模块:负责将报警信息记录进日志数据库,并将报警信息交给客户端处理。

  客户端模块:查询数据库和查看报警信息。

  3.4 实现过程

  本文主要是利用Linux内核防火墙底层结构netfilter的高度可扩展性,对其功能进行扩展。Nefilter针对IPv6定义了若干个钩子(HOOK),每个钩子都是处理函数挂载点。当IPv6的数据包将按照一定的规则通过若干个钩子时,就会触发这些函数进行相关处理。本防火墙主要是数据经过钩子NF­_IP6_FORWARD即数据包转发时,对数据进行处理和控制,所以本防火墙的程序主要挂载在这个钩子上。

  4 实验及结论

  经测试本文设计的防火墙系统在IPv6网路环境中能够获得严格的IPv6访问控制策略,实现对IPv6数据包的控制访问;并且在流量大于100Mbps的千兆网卡上,丢包率小于万分之(如表1所示),性能达到了防火墙行业的性能标准。

  千兆网卡80%负载丢包率
 

  5 结束语

  本文在采用屏蔽子网防火墙体系结构基础上,设计并实现了基于流过滤技术的IPv6防火墙系统,经实验测试达到了防火墙行业的性能标准。但该系统却打破了IPv6的端到端模式,在IPv6网络中,端对端的通信是一种重要的通信方式也是IPv6的一个重要的优点。如何实现基于流过滤技术的IPv6端对端的防火墙系统将是本文下一步研究的重点。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭