基于L7-filter的视频类应用的识别与控制方法和系统与流程

文档序号:13717492阅读:159来源:国知局
技术领域本发明涉及网络安全技术领域,特别是涉及一种基于L7-filter的视频类应用的识别与控制方法和系统。

背景技术:
目前,L7-filter是基于特征的关键字匹配,它可以实现从应用层过滤的功能。它不是通过匹配某个字和词来匹配,而是使用了更加高级的正则表达式(regularexpression)来进行匹配。正则表达式(regularexpression)是一种文本模式,是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的。它描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。L7-filter在默认情况下,将同一个连接中的10个数据包或者2KB的数据包内容放在缓存中。并将缓存中的内容作为一段普通的文本,用模板文件中的正则表达式去数据包应用层进行搜索比对,如果发现存在与正则表达式匹配的内容,就会在netfilter中将这几个数据包DROP掉或者给数据包打上标记。在tc中,过滤器根据netfilter中所做的标记对数据包进行分类。L7-filter所包含的可以识别的协议有:100bao、aim、aimwebcontent、applejuice、ares、armagetron、battlefield1942、bgp等一百多种应用。所识别的协议只能针对单个应用,无法根据实际需求对视频类应用的识别和控制。

技术实现要素:
基于此,有必要针对上述技术问题,提供一种基于L7-filter的视频类应用的识别与控制方法和系统,可以根据多方面的需求对视频类应用进行识别控制。一种基于L7-filter的视频类应用的识别与控制方法,包括如下步骤:获取各种视频类应用的数据包并对所述数据包进行解析,识别各个视频类应用的应用层专有协议的解析特征,并将所述解析特征用正则表达式进行表达,根据正则表达式对视频进行分类;根据视频应用分类,通过用户空间对数据包设置控制规则,将所述控制规则存储在内核空间的数据包过滤表中;其中,所述控制规则包括对设定解析特征的数据包所要执行的操作;根据控制规则所处理的数据包的类型把不同功能的控制规则分组在不同的规则链中;当视频类应用的数据包到达时,通过内核检查数据包的头信息,从内核空间的数据包过滤表中的第一条控制规则开始检查,判断是否符合该控制规则,如果符合,依据所述控制规则所要执行的操作处理该数据包,否则继续检查下一条控制规则。一种基于L7-filter的视频类应用的识别与控制系统,包括:识别分类模块,用于获取各种视频类应用的数据包并对所述数据包进行解析,识别各个视频类应用的应用层专有协议的解析特征,并将所述解析特征用正则表达式进行表达,根据正则表达式对视频进行分类;管理控制模块,用于根据视频应用分类,通过用户空间对数据包设置控制规则,将所述控制规则存储在内核空间的数据包过滤表中;其中,所述控制规则包括对设定解析特征的数据包所要执行的操作;协议过滤模块,用于根据控制规则所处理的数据包的类型把不同功能的控制规则分组在不同的规则链中;当视频类应用的数据包到达时,通过内核检查数据包的头信息,从内核空间的数据包过滤表中的第一条控制规则开始检查,判断是否符合该控制规则,如果符合,依据所述控制规则所要执行的操作处理该数据包,否则继续检查下一条控制规则。上述基于L7-filter的视频类应用的识别与控制方法和系统,通过识别视频类应用的应用层专有协议的特征,基于L7-filter对视频类应用中的每个应用可以进行单独的识别控制,实现了识别控制各类视频类应用并展示视频类应用的解析特征,从而可以根据实际需求对视频类应用进行识别控制。附图说明图1为本发明提供的一种基于L7-filter的视频类应用的识别与控制方法流程图;图2为本发明提供的一种基于L7-filter的视频类应用的识别与控制系统结构示意图;图3为一个实施例的视频数据包处理流程图;图4为一个实施例的系统功能模块结构示意图;图5为一个实施例的识别分类模块的结构示意图;图6为一个实施例的管理控制模块TC框架结构示意图;图7为一个实施例的协议过滤模块Netfilter框架结构示意图。具体实施方式下面结合附图和实施例阐述本发明的基于L7-filter的视频类应用的识别与控制方法和系统。本发明涉及的视频流特征,具体可以如下所示:参考图1所示,图1为本发明提供的一种基于L7-filter的视频类应用的识别与控制方法流程图,包括如下步骤:步骤(1):获取各种视频类应用的数据包并对所述数据包进行解析,识别各个视频类应用的应用层专有协议的解析特征,并将所述解析特征用正则表达式进行表达,根据正则表达式对视频进行分类;步骤(2):根据视频应用分类,通过用户空间对数据包设置控制规则,将所述控制规则存储在内核空间的数据包过滤表中;其中,所述控制规则包括对设定解析特征的数据包所要执行的操作;步骤(3):根据控制规则所处理的数据包的类型把不同功能的控制规则分组在不同的规则链中;当视频类应用的数据包到达时,通过内核检查数据包的头信息,从内核空间的数据包过滤表中的第一条控制规则开始检查,判断是否符合该控制规则,如果符合,依据所述控制规则所要执行的操作处理该数据包,否则继续检查下一条控制规则。上述基于L7-filter的视频类应用的识别与控制方法,通过识别视频类应用的应用层专有协议的特征,基于L7-filter对视频类应用中的每个应用可以进行单独的识别控制,实现了识别控制各类视频类应用并展示视频类应用的解析特征(报文结构、所用协议等),从而可以根据实际需求对视频类应用进行识别控制。在一个实施例中,步骤(1)还可以包括:识别各个视频类应用的共同解析特征,并用正则表达式进行表达。对于步骤(1)的所述识别各个视频类应用的应用层专有协议的解析特征的步骤,具体可以包括如下:抓取视频的数据包,提取数据包的数据交换部分的UDP数据包,分析不同IP地址对应的若干个数据包内容,确定固定不变的解析特征字符串,解析特征字符串写成正则表达式;所述识别各个视频类应用的共同解析特征的步骤包括:根据数据交换部分的UDP数据包的报文结构信息分析出视频类应用中的解析特征,并用正则表达式表达。在一个实施例中,所述规则链包括INPUT链、OUTPUT链和FORWARD链;处理流入数据包的控制规则被添加到INPUT链中,处理流出数据包的控制规则被添加到OUTPUT链中,处理正在转发的数据包的控制规则被添加到FORWARD链中。在一个实施例中,判断数据包是否符合该控制规则的方法包括:当一个视频数据包进入主机的防火墙时,先将其转发到路由表中确定其路径,若视频数据包处于被发送至本机流程,则将该视频数据包输入至INPUT链中;若INPUT链的控制规则允许该视频数据包进入,则允许该视频数据包输入至本地流程中,否则将该视频数据包丢弃;当本机流程产生向外的视频数据包时,先查找路由表获取目标主机的位置,将视频数据数据包发送至OUTPUT链,若该视频数据包满足OUTPUT链的控制规则,允许该视频数据包从主机发出,否则将该视频数据包丢弃;当视频数据包穿过主机的防火墙时,将该视频数据数据包输入至FORWARD链,若该视频数据包符合FORWARD链的控制规则,将该视频数据包从防火墙发出,否则将该视频数据包丢弃。在一个实施例中,3种类型的视频数据包的流向可以如下:对于发往本地的视频数据包:视频数据包到达防火墙时,先进入mangle表的PREROUTING链改变视频数据包的TOS、TTL或MARK标志位;然后进入nat表的PREROUTING链进行DNAT操作;经过路由判断后依次进入mangle表的OUTPUT链和filter表的INPUT链进行过滤;对于从本地发出的视频数据包:视频数据包由本地程序发出,先进入mangle表的OUTPUT链,然后进入nat表的OUTPUT链对从防火墙发出的视频数据包进行DNAT操作;然后进入filter表的OUTPUT链对本地发出的视频数据包进行过滤;过滤后的视频数据包经过mangle表的POSTROUTING链,最后进入nat表的POSTROUTING链传输到线路上;对于从本地转发的视频数据包:视频数据包到达防火墙后,首先进入mangle表的PREROUTING链和nat表的PREROUTING链,经过路由判断后进入mangle表的FORWARD链,然后进入filter表的FORWARD链,最后进入mangle表的POSTROUTING链和nat表的POSTROUTING链传输到线路上。进一步地,对于上述3种类型的视频数据包的流向,可以进行如下处理:对于发往本地的视频数据包:视频数据包通过IP校验后,到达第一个钩子函数NF_IP_PRE_ROUTING点进行处理,依次遍历该钩子函数链,若全部钩子函数能够通过,进入路由代码判断视频数据包为转发或发给本机的视频数据包;若视频数据包是发往本机的,则该视频数据包到达钩子函数NF_IP_LOCAL_IN点进行处理,通过后提交给协议栈的上层协议;对于从本地发出的视频数据包:本地产生的视频数据包经过钩子函数NF_IP_LOCAL_OUT点处理后,进行路由选择处理,然后经过NF_IP_POST_ROUTING处理并发送到网络上;对于从本地转发的视频数据包:若该视频数据包需要被转发,则发送至NF_IP_FORWARD钩子点函数处理,经过转发的视频数据包到达最后一个钩子函数NF_IP_POST_ROUTING点处理后传输到网络上。在一个实施例中,步骤(1)还可以包括对流入流量和流出流量的控制;对L7-filter所支持的应用层协议进行识别,并按照系统的默认策略或用户预先的设置,对识别出来的分类流量打上不同的标号,根据命令行用户接口TC控制每个分类的带宽。具体的,配置流量控制框架的排队规则(qdisc)、类(class)及过滤器(filter),接口TC将流经网络接口的视频数据包先放入队列中,然后过滤器把视频数据包放入不同分类中,最后通过控制每个分队列数据包发送的速率限制每个分类的带宽。参考图2所示,图2为本发明提供的一种基于L7-filter的视频类应用的识别与控制系统结构示意图,包括:识别分类模块,用于获取各种视频类应用的数据包并对所述数据包进行解析,识别各个视频类应用的应用层专有协议的解析特征,并将所述解析特征用正则表达式进行表达,根据正则表达式对视频进行分类;管理控制模块,用于根据视频应用分类,通过用户空间对数据包设置控制规则,将所述控制规则存储在内核空间的数据包过滤表中;其中,所述控制规则包括对设定解析特征的数据包所要执行的操作;协议过滤模块,用于根据控制规则所处理的数据包的类型把不同功能的控制规则分组在不同的规则链中;当视频类应用的数据包到达时,通过内核检查数据包的头信息,从内核空间的数据包过滤表中的第一条控制规则开始检查,判断是否符合该控制规则,如果符合,依据所述控制规则所要执行的操作处理该数据包,否则继续检查下一条控制规则。具体的,识别分类模块可以根据所写的成正则表达式对各个视频类应用进行识别分类;管理控制模块给用户添加的过滤信息,进行数据更新操作,从而实现系统的管理功能;协议过滤模块可以根据用户添加的管理信息对需要过滤的某个或某类视频类应用进行过滤。下面以PPTV聚力网络电视软件为例,并参照附图,对基于L7-filter的视频类应用的识别与控制系统优选实施例进一步详细说明。启动PPTV客户端,PPTV客户端启动进行DNS查询,查询到服务器的IP,然后客户端向服务器发起TCP三次连接请求;建立连接之后,向服务器发送HTTP协议包以获取登陆信息,前三个包是客户端与服务器进行TCP三次握手的过程;第四个包是客户端向服务器发送的HTTP协议包请求PPTV的主页的相关信息,协议包中还包括了PPTV客户端的版本号、客户端主机的操作系统及分辨率等信息。通过识别分类模块抓取PPTV观看视频部分的数据包,分析不同IP对应的多个数据包内容,获取固定不变的那就是PPTV的特征,将特征字符串写成正则表达式,并根据交互数据包的报文结构等信息分析出视频类应用中的共同的解析特征,并用正则表达式来表达这些特征,将正则表达式写成.pat文件放入/etc/17-protoeols/Protoeols/下。管理控制模块使用用户空间来定制控制规则,并将该控制规则存储在内核空间的数据包过滤表中,该控制规则规定了具有设定特征的视频数据包所要执行的操作。处理流入数据包的控制规则被添加到输入规则链中,处理流出数据包的规则被添加到输出规则链中,处理正在转发的数据包的规则被添加到转发规则链中。另外,每个链还可以设置一个策略,它定义“缺省目标”,也就是要执行的缺省操作,如果视频数据包与链中的任何控制规则都不匹配时,执行此操作。协议过滤模块在视频数据包到达时,检查数据包的头信息,当一个视频数据包到达一个链时,从内核空间的数据包过滤表中的第一条控制规则开始检查,看是否符合该控制规则,如果符合,将按照所符合的控制规则内容去处理该视频数据包;如果不符合,则继续检查下一条控制规则。具体控制过程,参考图3所示,由图3可知一个视频数据包的封包进入主机时,首先被送到路由表中决定此封包的路径,假设视频数据包被送入本机流程,则将该视频数据包送入输入规则链,如果输入规则链的控制规则不允许该视频数据包进入,则把该视频数据包丢弃;如果输入规则链的控制规则允许该视频数据包进入,则将该视频数据包送入本地流程中。当本机流程产生向外的视频数据包时,查找路由表找到目标主机位置,将该视频数据包送入到输出规则链,如果该视频数据包满足输出规则链的控制规则,则将视频数据包送出主机,如果该视频数据包不满足输出规则链的控制规则,则将该视频数据包丢弃。当数据包为穿过主机的防火墙时,则送入到转发规则链,如果该视频数据包符合该控制规则,则将其送出防火墙,否则将其丢弃。在一个实施例中,参考图4所示,系统包括识别分类模块、用户管理控制模块、协议过滤模块三个模块,其中识别分类模块可以根据所写的成正则表达式对各个视频类应用进行识别分类;管理控制模块给用户添加的过滤信息,进行数据更新操作,从而实现系统的管理功能;协议过滤模块可以根据用户添加的管理信息对需要过滤的某个或某类视频类应用进行过滤。参考图5所示,作为一个实施例,对于识别分类模块,进行数据流量控制,描述流量数据包(包括流入流量和流出流量)在进入网络流量管理系统后,首先对绝大部分l7-filter所支持的应用层协议进行识别,并按照默认策略或用户预先的设置对识别出来的分类流量打上不同的标号,供管理控制模块在后续进行流量控制管理使用。对于管理控制模块,通过命令行用户接口TC来控制,TC的流程如图6所示。该工具可以让用户自由配置流量控制框架的3个要素:排队规则(qdisc)、类(class)及过滤器(filter)。TC将流经网络接口的数据包先放入队列中,然后过滤器把数据包放入不同分类中,最后通过控制每个分队列数据包发送的速率限制每个分类的带宽。对于协议过滤模块,该模块工作在内核,利用Linux系统已有的转发机制netfilter框架。其框架参考图7所示,IP数据包从左边进入框架,通过IP校验后,视频数据包到达第一个钩子函数NF_IP_PRE_ROUTING点进行处理,依次遍历该够子函数链,若全部钩子函数能够通过,进入路由代码,此处决定该视频数据包是需要转发还是发给本机的;若该视频数据包是发往本机的,则该视频数据包到达钩子函数NF_IP_LOCAL_IN点进行处理,通过后提交给协议栈上层协议;若该视频数据包需要被转发,则将其发送到NF_IP_FORWARD钩子点函数进行处理;经过转发的视频数据包到达最后一个钩子函数NF_IP_POST_ROUTING点处理以后,最后传输到网络上。本地产生的视频数据包经过钩子函数NF_IP_LOCAL_OUT点处理可以后,进行路由选择处理后,经过NF_IP_POST_ROUTING处理以后发送到网络上。协议过滤模块转发的网络数据包都要流经Netfilter框架的NF_FORWARD钩子点,利用Linux系统的Netfilter框架,在FORWARD钩子点注册钩子函数,来实现数据包的过滤。以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1