基于SDN技术的分布式应用防火墙研究

2020-06-19 08:52:02刘坤灿
中国新技术新产品 2020年6期
关键词:应用层IP地址防火墙

刘坤灿

(金航数码科技有限责任公司,北京 100028)

0 引言

现如今互联网技术快速发展,TCP/IP应用协议类型正在飞速增长。应用层载荷中可能充斥着各种攻击程序。为了防范基于应用层的攻击,越来越多的企业使用应用防火墙对内部网络进行安全防护。传统防火墙只解析数据包包头,而应用防火墙需要解析数据包的全部内容,并进行链路流量整形和异常流量检测,因此,应用防火墙的处理负载相比传统防火墙成倍的增加,致使防火墙故障率升高。防火墙往往部署在网络的边界处,一旦防火墙出现故障,将直接导致内外部网络中断,严重影响企业用户的网络访问和数据传输。

针对上述问题,市场上主流的防火墙厂商通过双机热备的部署模式解决了这一问题。该模式部署了2台防火墙,互为备份,正常情况下由工作机进行数据流量的分析和过滤工作,当工作机故障时,自动切换至备份机,不影响网络的正常使用。虽然双机热备的解决方案可以降低防火墙系统的整体故障率,但是部署难度较高,且同一时间只有1台防火墙设备在工作,资源利用率较低。随着虚拟化和云计算技术的发展和运用,企业内部的网络结构越来越复杂,且调整越来越频繁[1]。部署于网络出口的硬件防火墙既不能防护来自内部的攻击,又不能满足虚拟化、云计算环境下网络结构快速调整带来的安全防护快速跟进需求。

为了提升防火墙系统的可用性,降低部署难度,适应虚拟化、云计算环境下的安全防护需求,该文分析了应用防火墙和SDN(Software Defined Network)技术,并设计了一种基于SDN技术的采用分布式部署的应用防火墙系统。该防火墙系统首先利用SDN技术的控制器对网络流量进行负载分配,然后将数据包重定向至多个分布式部署的应用防火墙组件进行深度包检测和过滤,符合防火墙访问控制规则的数据包将由应用防火墙转发出去,不符合规则的数据包则被阻断。

1 应用防火墙和SDN技术

1.1 应用防火墙技术

应用防火墙就是主要对应用层的安全威胁进行防护的防火墙,用于弥补传统防火墙基于端口和IP地址进行数据包过滤而无法防护应用层安全威胁的缺陷。应用防火墙主要运用深度包检测技术(Deep Packet Inspection)对网络流量进行深度分析和检测。深度包检测技术是一种网络流量检测分析技术,它通过检测数据包的包头和载荷(payload)部分,分析数据流量可能存在的攻击行为、病毒、恶意代码、垃圾邮件等违规内容。深度包检测技术的“深度”是指其与普通报文检测技术相比,分析层次更加深入。“普通报文检测”仅分析IP报文中传输层以下的数据,包括传输层包头(含源端口和目的端口)、网络层包头(含源地址和目的地址)和数据链路层帧头(含源MAC地址和目的MAC地址),而深度包检测技术除了对这部分数据进行分析,还会对应用层数据进行分析,识别数据流量的应用类型,检测其承载的信息内容[2]。

1.2 SDN技术

传统网络为了提升数据的传输速度,将路由器和交换机的处理逻辑烧录在硬件设备中,导致其无法轻易修改和升级,增加了网络创新难度,不能满足互联网日益增长的动态管理和扩展需求。SDN技术[3]将传统网络的数据转发(data plane)与路由控制(control plane)2个功能分离,实现了利用软件系统集中控制网络设备的目标,解决了网络结构快速调整和扩展的难题。

2006年,斯坦福大学的Nick McKeown提出了OpenFlow[4]的概念。OpenFlow协议是SDN转发层和控制层之间通信所使用的协议,它的出现使得软件系统控制网络设备的转发规则成为现实,软件定义网络也在OpenFlow的基础上逐步落地。OpenFlow网络中,软件系统通过控制器向上提供的编程接口,可以对网络设备进行集中管理和配置,从而使网络结构的动态调整和快速变化成为可能。目前虚拟化和云计算技术也采用了OpenFlow相关组件进行虚拟化系统的网络管理。

2 分布式应用防火墙设计

2.1 技术路线

该文决定采用SDN技术与深度包检测技术结合的方式来设计分布式应用防火墙系统。为了实现2种技术的有效结合,分布式应用防火墙系统的设计遵循以下技术路线。

2.1.1 运用SDN技术实现多台防火墙负载均衡和内部流量过滤

采用软件进行数据分析和处理的应用防火墙,处理速度和吞吐量较硬件防火墙有所下降,如果使用负载均衡技术进行分布式部署,将提高整个防火墙系统的吞吐量和性能,而且即使一两台防火墙发生故障,通过实时监控和流量重定向,整个系统依然可以较好地完成防火墙功能。SDN中所有的网络设备都可以通过OpenFlow控制器进行集中式的控制和管理,那么OpenFlow也可以用来做防火墙的负载均衡工作。OpenFlow控制器中可以集成负载均衡模块和流量重定向模块,实现将数据包动态分配到不同IP地址的防火墙。此外,流量重定向模块还可以根据需求,将内部数据包重定向至防火墙,实现内部流量的检测和过滤。

2.1.2 采用传统包过滤防火墙技术

应用防火墙系统也应当具备传统防火墙的包过滤功能,从而实现应用层之下数据流量的快速检测和过滤。将传统包过滤防火墙与应用防火墙技术结合,可以在应用层之下过滤一部分流量,降低应用防火墙组件的处理负载。

Linux系统的netfilter/iptables防火墙是一种有状态的防火墙,它可以持续追踪穿过防火墙的各种网络连接(例如TCP与UDP连接)的状态,这一功能是其他主机防火墙工具无法提供的。该系统使用netfilter/iptables作为传统包过滤防火墙[5]。

2.1.3 运用深度包检测技术

采用深度包检测技术来实现应用防火墙功能。深度包检测技术不同于内容包检测技术,内容包检测技术把应用层数据包当成一个个孤立的数据包,没有考虑到应用层数据的上下联系,无法检测那些把攻击特征分散到多个数据包的黑客攻击,它的检测能力非常有限。而深度包检测技术则把分散的应用层数据恢复成连贯的信息,然后进行检测,能够防御各种分散特征的网络攻击[1]。

2.2 系统架构

该分布式应用防火墙系统整体上分为Web界面、负载均衡模块、流量重定向模块、主程序模块、流量统计模块、应用检测模块、防火墙配置模块、事件记录模块以及传统防火墙模块9个部分。其中,负载均衡模块和流量重定向模块是OpenFlow控制器的功能模块。该防火墙系统的总体结构设计如图1所示。

图1 分布式应用防火墙的系统架构

2.3 模块组成

2.3.1 Web界面

该系统的Web界面由系统的Web前台服务提供,Web前台服务采用的是Apache Tomcat应用,为访问和配置防火墙提供可视化接口。用户使用网页浏览器登录Web前台服务地址,利用Web界面实现控制器和软件防火墙组件的设置。

2.3.2 负载均衡模块

该系统的负载均衡模块由NOX控制器中的开源负载均衡组件改写后实现,该模块维护一个循环链表,该链表记录了分布式应用防火墙系统中的每一个可对外提供服务的防火墙IP地址。当有新的任务或数据流到来时,负载均衡器会将任务轮流分配给各个防火墙,如此循环往复。

2.3.3 流量重定向模块

流量重定向模块接收负载均衡模块的分配信息,生成通往指定防火墙的流条目,然后下发给OpenFlow交换机。此外,流量重定向模块也可接收控制器的配置信息,生成将内部流量转发至防火墙的流条目,并下发给OpenFlow交换机。

2.3.4 主程序模块

主程序模块是软件防火墙层面的主要模块,负责加载防火墙配置信息,将软件防火墙各模块实例化,并完成各模块实例的初始化。主程序模块使用网络接口与Web前台通信,根据Web界面的配置信息,调用各模块的处理函数,使防火墙配置生效。

2.3.5 防火墙配置模块

防火墙配置模块用于实现对传统防火墙模块的配置。该模块通过将iptables防火墙的配置命令分解,定义地址对象、服务对象和时间对象,使防火墙实现可视化的过滤规则设置。

2.3.6 传统防火墙模块

传统防火墙模块由Linux内核的netfilter组件实现,netfilter组件是成熟的Linux组件,运行稳定且高效,保证了传统包过滤防火墙对数据包的快速分析和过滤[6]。

2.3.7 应用检测模块

应用检测模块运用深度包检测技术,改进了开源项目OpenDPI的部分功能,实现了应用层协议识别、应用数据检测和过滤、URL地址过滤等功能。

2.3.8 流量统计模块

流量统计模块用于对经过防火墙系统的网络流量进行统计和汇总,可以从多个维度进行统计,比如针对各种应用协议流量的统计、流入流量的统计、流出流量的统计等。

2.3.9 事件记录模块

事件记录模块的主要功能是用于安全审计规则和日志记录规则的配置,以及报警和日志事件的存储、检索。

3 实验分析与结果

3.1 实验环境

该文采用软件定义网络设备搭建一个实验环境来验证防火墙系统的有效性。实验环境部署和配置如图2所示。

该实验中,使用2台物理服务器分别安装1个Open vSwitch软交换机和2台KVM虚拟机,在软交换机上分别创建虚拟桥网桥0和网桥1,将服务器的物理网卡0、网卡1和网卡2、网卡3端口分别加入软交换机,同时分别连接2台虚拟机,虚拟机端口分别为端口0、端口1和端口2、端口3。在虚拟机1和虚拟机2上分别安装了应用防火墙,并设置同样的访问控制策略。在另一台物理机上安装控制器,并将其连接物理服务器2的网卡3端口。

设置控制器IP地址为192.168.10.200,网桥0的IP地址为192.168.10.1,网桥1的IP地址为192.168.10.2,测试计算机的IP地址为192.168.10.3,虚拟机3的IP地址为192.168.10.4,虚拟机4的IP地址为192.168.10.5,虚拟机1(应用防火墙)的IP地址为192.168.10.100,虚拟机2(应用防火墙)的IP地址为192.168.10.101。

3.2 实验结果

实验采用ping命令和流量发生器发送网络流量,并使用抓包工具查看每个端口的流量情况。

场景一:控制层中预先不开启负载均衡和流量重定向功能。在测试计算机上向虚拟机3和虚拟机4发送ICMP报文,操作指令为ping 192.168.10.4和ping 192.168.10.5。

图2 分布式应用防火墙实验环境

实验结果:测试计算机可以ping通虚拟机3和虚拟机4。

场景二:控制层中预先开启负载均衡和流量重定向功能,将测试计算机访问虚拟机3和虚拟机4的流量重定向到虚拟机1和虚拟机2,同时在应用防火墙上设置访问控制规则,不允许测试计算机对虚拟机1和虚拟机2进行ICMP通信。在测试计算机上向虚拟机3和虚拟机4发送ICMP报文,操作指令为ping 192.168.10.4和ping 192.168.10.5。

实验结果:测试计算机不可以ping通虚拟机3和虚拟机4。通过抓包工具查看端口2和端口3端口,发现端口2和端口3端口并未接收到来自测试计算机的ICMP请求报文,但是在查看端口0时,发现有来自测试计算机访问虚拟机3的ICMP请求报文,查看端口1时,有来自测试计算机访问虚拟机4的ICMP请求报文。

场景三:在测试计算机使用流量发生器向虚拟机3发送HTTP、FTP、POP3应用流量,防火墙开启所有应用协议的解析,同时开启对上述3种协议的阻断。

实验结果:虚拟机3未接收到上述3种应用协议的数据包,但是查看应用防火墙的流量统计模块,发现这3种应用协议的流量数目都增加了。测试数据证明该防火墙能成功检测并过滤以上3种应用协议。

通过以上实验证明,分布式应用防火墙系统实现了网络流量的重定向和负载分摊,以及对应用层协议的检测和过滤功能。

4 结语

随着计算机和网络技术的飞速发展,网络安全问题日益严重。作为网络安全防护措施中不可或缺的一环,防火墙的作用越来越关键。目前主流应用防火墙大多采用软件方式实现深度包检测,当检测规则较多时处理速度会变慢,容易成为网络瓶颈。此外,随着虚拟化和云计算技术的运用,传统的硬件防火墙不能适用新的应用场景。针对该现状,该文设计了一种基于SDN技术的分布式应用防火墙系统,并通过实验证明该防火墙系统的可行性和有效性。然而,也存在一些需要改进和优化的地方,比如控制器存在单点故障,如何实现防火墙系统对各应用防火墙组件的存活状态检测和故障自动切换,也是下一步的研究内容。

猜你喜欢
应用层IP地址防火墙
铁路远动系统几种组网方式IP地址的申请和设置
构建防控金融风险“防火墙”
当代陕西(2019年15期)2019-09-02 01:52:08
基于SNMP的IP地址管理系统开发与应用
黑龙江电力(2017年1期)2017-05-17 04:25:16
基于分级保护的OA系统应用层访问控制研究
新一代双向互动电力线通信技术的应用层协议研究
物联网技术在信息机房制冷系统中的应用
物联网技术(2015年8期)2015-09-14 09:30:13
下一代防火墙要做的十件事
自动化博览(2014年6期)2014-02-28 22:32:13
Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair
筑起网吧“防火墙”
中国火炬(2010年10期)2010-07-25 07:43:49
真正强力四大防火墙