一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种针对应用协议进行流量过滤的方法和装置与流程

2022-08-13 16:56:19 来源:中国专利 TAG:


1.本发明涉及网络安全技术领域,尤其设计一种针对应用协议进行流量过滤的方法和装置。


背景技术:

2.nginx (engine x) 是一个高性能的http和反向代理web服务器,同时也提供了imap/pop3/smtp服务。nginx是由伊戈尔
·
赛索耶夫为俄罗斯访问量第二的rambler.ru站点(俄文:рамблер)开发的,其将源代码以类bsd许可证的形式发布;其特点是占有内存少,并发能力强,已经成为国内外web 网站重要选择之一。nginx是一款轻量级的web服务器/反向代理服务器以及电子邮件代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
3.nginx相较于apache\lighttpd具有占有内存少,稳定性高等优势,并且依靠并发能力强,丰富的模块库以及友好灵活的配置而闻名。在linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在linux操作系统下效率相当高。
4.nginx (engine x) 从2019年至2021年,连续3年市场占有率均排行第一,很多公司都在使用nginx,但nginx本身缺乏对应用流量的数据结构检查的能力,市面上可集成到nginx的流量过滤工具大多也具有逻辑复杂,功能单一,定制化修改难度大的缺陷。
5.因此,如何实现nginx中应用协议的灵活动态配置,对http、ftp、smtp、pop3及其他常用应用协议进行流量过滤,是目前有待解决的技术问题。


技术实现要素:

6.本发明公开一种针对应用协议进行流量过滤的方法,所要解决的技术问题是基于nginx软件本身缺乏对应用流量的数据结构检查的能力,通过加载自研插件的方式,实现常见应用协议的流量过滤的功能,该方法包括:步骤s101功能编译:执行配置指令,执行web服务器编译命令,运行web服务器;步骤s102配置加载:修改web服务器配置,在web服务器配置中增加若干文件,文件中描述各个应用协议的过滤规则,对每个应用协议区分,每个所述应用协议包含多个策略,对所述策略进行区分,每个策略均配置有对应的字段,策略配置的字段分别对应流量的进行放行或阻断;所述字段包括放行字段或阻断字段;步骤s103流量过滤:检查各数据是否正确,按web服务器配置的要求实时监听流量,将与放行字段对应的流量予以放行,将与阻断字段对应的流量予以阻断。
7.可选的,步骤s101还包括:所述执行配置命令时,增加与过滤功能相关源码所在的目录地址的选项。
8.可选的,步骤s102中所述修改web服务器配置具体为,在业务代理配置中新增字段,所述字段中第二个参数为每个代理唯一的正整数,同时在目录新增若干个文件,文件中
描述各个应用协议的过滤规则。
9.可选的,所述步骤s103中的将与放行字段对应的流量予以放行,将与阻断字段对应的流量予以阻断具体包括:判断所述流量命中的某一所述应用协议中的阻断策略和放行策略,并根据该判断结果执行流量的阻断和放行;若所述流量同时命中阻断策略与放行策略,则所述流量将会被阻断;若所述流量只命中阻断策略,则所述流量将会被阻断;若所述流量只命中放行策略,则所述流量将会被放行。
10.其中,所述阻断策略与放行策略的判断方法包括以下步骤:判断所述流量命中的某一所述应用协议中策略a中的字段数量,并根据该判断结果确认是否命中所述策略;若所述流量命中某一所述应用协议中策略a中的所有字段,则判断为命中所述策略a;若所述流量命中某一所述应用协议中策略a中的若干字段,则判断为未命中所述策略a;若所述流量未命中某一所述应用协议中策略a中的任何字段,则判断为未命中所述策略a;其中,命中某一所述应用协议中策略a中字段的判断方法包括以下步骤:每个所述字段配置若干个字符串成员;若所述流量命中某一字段中任意一个所述字符串成员,则判断结果为命中所述字段;若所述流量命中某一字段中所有所述字符串成员,则判断结果为命中所述字段;若所述流量未命中某一字段中任意一个字符串成员,则判断结果为未命中所述字段;其中,所述命中的含义,指的是被命中的策略、字段参与对放行或阻断的判断。
11.相应的,本发明还提供一种针对应用协议进行流量过滤的装置,其特征在于,该装置包括功能编译模块、配置加载模块、流量过滤模块:所述功能编译模块用于执行配置指令,执行web服务器编译命令,运行web服务器;所述配置加载模块用于修改web服务器配置,在web服务器配置中增加若干文件,文件中描述各个应用协议的过滤规则,对每个应用协议区分,每个所述应用协议包含多个策略,对所述策略进行区分,每个策略均配置有对应的字段,策略配置的字段分别对应流量的进行放行或阻断;所述字段包括放行字段或阻断字段;所述流量过滤模块用于检查各数据是否正确,按web服务器配置的要求实时监听流量,将与放行字段对应的流量予以放行,将与阻断字段对应的流量予以阻断。
12.可选的,所述功能编译模块用于执行配置指令时,增加与过滤功能相关源码所在的目录地址的选项。
13.可选的,所述修改web服务器配置具体为,在业务代理配置中新增字段,所述字段中第二个参数为每个代理唯一的正整数,同时在目录新增若干个文件,文件中描述各个应
用协议的过滤规则。
14.可选的,所述流量过滤模块用于根据以下算法执行流量的阻断和放行:判断所述流量命中的某一所述应用协议中的阻断策略和放行策略,并根据该判断结果执行流量的阻断和放行;若所述流量命中某一所述应用协议中策略a中的所有字段,则判断为命中所述策略a;若所述流量命中某一所述应用协议中策略a中的若干字段,则判断为未命中所述策略a;若所述流量未命中某一所述应用协议中策略a中的任何字段,则判断为未命中所述策略a。
15.其中,所述流量过滤模块包括策略命中判断模块;所述策略命中判断模块根据以下算法执行:判断所述流量命中的某一所述应用协议中策略a中的字段数量,并根据该判断结果确认是否命中所述策略;若所述流量命中某一所述应用协议中策略a中的所有字段,则判断为命中所述策略a;若所述流量命中某一所述应用协议中策略a中的若干字段,则判断为未命中所述策略a;若所述流量未命中某一所述应用协议中策略a中的任何字段,则判断为未命中所述策略a;其中,所述策略命中判断模块包括字段命中判断模块,每个所述字段配置若干个字符串成员;所述字段命中判断模块根据以下算法执行;判断所述流量命中的某一所述字段中所述字符串成员的数量,并根据该判断结果确认是否命中所述字段;若所述流量命中某一字段中任意一个所述字符串成员,则判断结果为命中所述字段;若所述流量命中某一字段中所有所述字符串成员,则判断结果为命中所述字段;若所述流量未命中某一字段中任意一个字符串成员,则判断结果为未命中所述字段。
16.由此可见,本发明通过功能编译,对web服务器配置进行修改,包括:在web服务器配置中增加若干文件,文件中描述各个应用协议的过滤规则,对每个应用协议区分,每个所述应用协议包含多个策略,对所述策略进行区分,每个策略均配置有对应的字段,策略配置的字段分别对应流量的进行放行或阻断,配置修改完成后,启动nginx服务,nginx自动加载配置,并按配置要求实时监听流量。从而有效的实现了nginx应用协议的灵活动态配置,并且针对了不同的常用应用协议进行流量过滤,包括:http、ftp、smtp、pop3等应用协议,上述可见本发明具有功能丰富,逻辑简单,可定制化程度高的优点。
附图说明
17.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1示出了本发明实施例的一种针对应用协议进行流量过滤的方法的流程图;图2示出了本发明实施例的一种针对应用协议进行流量过滤的方法的结构示意图;图3示出了本发明实施例的一种针对应用协议进行流量过滤的装置的结构示意图。
具体实施方式
19.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
21.本发明所要解决的技术问题是基于nginx软件本身缺乏对应用流量的数据结构检查的能力 ,如何通过灵活可配的方式,实现常见应用协议的流量过滤功能。
22.本发明为解决上述技术问题采用以下技术方案:一种针对应用协议进行流量过滤的方法,具体步骤如图1所示,包括:步骤s101功能编译:执行配置指令,执行web服务器编译命令,运行web服务器:在功能编译时,执行configure命令时,增加
‑‑
add-module=./modules/jsac选项,其中所述./modules/jsac为过滤功能相关源码所在的目录地址,所述configure命令执行成功后,执行nginx编译命令,所述编译命令完成后,所述应用协议数据结构检查的功能将作为nginx的一个独立模块运行。
23.步骤s102配置加载:修改web服务器配置,在web服务器配置中增加若干文件,文件中描述各个应用协议的过滤规则,对每个应用协议区分,每个所述应用协议包含多个策略,对所述策略进行区分,每个策略均配置有对应的字段,策略配置的字段分别对应流量的放行或阻断;在加载配置前,修改nginx配置,在业务代理server{}配置中新增appid 《appid》;字段,所述字段中第二个参数为每个代理唯一的正整数,同时,在/etc/jsac/目录新增http.json、ftp.json、mail.json、other.json四个文件,所述文件中以json格式描述各个应用协议的过滤规则,所述每个应用协议以appid来区分,所述每个应用协议包含多个策略,每个所述策略有对应ruleid来区分,所述每个策略可以配置action字段对应流量的放行或阻断。
24.其中,所述字段包括放行字段或阻断字段;
其中,所述每个策略可以根据应用协议配置特定的字段进行流量过滤,具体为:(1)若所述应用协议为http时,可以根据所述策略中配置的method、uri、parameter和content-type等相关字段进行流量过滤;(2)若所述当应用协议为ftp时,可以根据所述策略中配置的cmd、account、uploadext、downloadext等相关字段进行流量过滤;(3)若所述应用协议为smtp/pop3时,可以根据所述策略中配置的account、address、subject、attachmentext等相关字段进行流量过滤;(4)若所述应用协议为其他应用协议时,可以根据所述策略中配置的若干个关键字内容、关键字偏移、关键字编码等相关字段进行流量过滤。
25.步骤s103流量过滤:检查各数据是否正确,按web服务器配置的要求实时监听流量,将与放行字段对应的流量予以放行,将与阻断字段对应的流量予以阻断。
26.包括restart或reload nginx服务,启动成功后,应用协议数据结构检查模块将自动加载配置,并按配置要求实时监听流量,对于符合放行条件的流量予以放行,不符合放行条件的流量予以阻断,并将阻断的流量以日志的形式写入日志文件中。
27.其中,所述对于符合放行条件的流量予以放行,不符合放行条件的流量予以阻断具体为:判断所述流量命中的某一所述应用协议中的阻断策略和放行策略,并根据该判断结果执行流量的阻断和放行;若所述流量同时命中阻断策略与放行策略,则所述流量将会被阻断;若所述流量只命中阻断策略,则所述流量将会被阻断;若所述流量只命中放行策略,则所述流量将会被放行。
28.判断所述流量命中的某一所述应用协议中策略a中的字段数量,并根据该判断结果确认是否命中所述策略;若所述流量命中某一所述应用协议中策略a中的所有字段,则判断为命中所述策略a;若所述流量命中某一所述应用协议中策略a中的若干字段,则判断为未命中所述策略a;若所述流量未命中某一所述应用协议中策略a中的任何字段,则判断为未命中所述策略a;其中,命中某一所述应用协议中策略a中字段的判断方法包括以下步骤:每个所述字段配置若干个字符串成员;若所述流量命中某一字段中任意一个所述字符串成员,则判断结果为命中所述字段;若所述流量命中某一字段中所有所述字符串成员,则判断结果为命中所述字段;若所述流量未命中某一字段中任意一个字符串成员,则判断结果为未命中所述字段;其中,所述命中的含义,指的是被命中的策略、字段参与对放行或阻断的判断。
29.可选的,所述将与放行字段对应的流量为安全流量,所述与阻断字段对应的流量为恶意流量。
30.由此可见,上述技术方案具有以下优点:本发明提供了一种针对应用协议进行流量过滤的方法,主要基于nginx本身,对自身配置进行修改,配置方式灵活易懂,可以针对不同应用场景做定制化的配置调整,匹配命中逻辑简单高效,不会产生过多性能上的额外开销,而且,本发明可扩展性强,基于当前系统架构,可以灵活扩展其他应用协议的专属字段的过滤功能。
31.为了让本发明更加直观,现将结合另一个实施例对本发明进行进一步说明,本实施例具体包括以下步骤:s1:执行configure命令时,增加
‑‑
add-module=./modules/jsac选项,其中./modules/jsac为过滤功能相关源码所在的目录地址,configure命令执行成功后,执行并完成nginx编译命令,完成后应用协议数据结构检查的功能将作为nginx的一个独立模块运行;s2:修改nginx配置,在业务代理server{}配置中新增appid 《appid》;字段,所述字段中第二个参数为每个代理唯一的正整数,其中proxy_service字段用于指定该代理属于哪个应用协议,本实施例中所述proxy_service字段为应用协议smtp,具体如表1所示:表1:在/etc/jsac/目录新增http.json、ftp.json、mail.json、other.json四个文件,所述文件中以json格式描述所述每个应用协议的过滤规则,所述每个应用协议以appid来区分,所述每个应用协议包含多个策略,所述每个策略有对应的ruleid来区分,所述每个策略可以配置action字段,表示流量命中所述策略后放行或阻断,每个所述策略可以根据应用协议配置特定字段。
32.例如:所述http应用协议,可配method、uri、parameter和content-type等字段;所述ftp应用协议,可配cmd、account、uploadext、downloadext等字段;诉述smtp/pop3应用协议,可配account、address、subject、attachmentext等字段;所述其他应用协议,可配若干个关键字内容、关键字偏移、关键字编码等字段。
33.本实施例中所述应用协议为smtp/pop3,可以根据所述策略中配置的account、address、subject、attachmentext等相关字段进行流量过滤;如表2所示配置了针对两个邮件地址的放行策略和针对两个标题内容的阻断策略,具体为:表2:
s3:restart或reload nginx服务,启动成功后,应用协议数据结构检查模块将自动加载配置,并按配置要求实时监听流量。
34.实时流量过滤功能的具体算法为:每个业务代理中的若干个策略的命中结果,以阻断优先,例如同时命中若干个需要阻断的策略和若干个需要放行的策略,则该流量会阻断;每个策略中针对应用协议配置的多个字段之间是与的关系,即该策略下所有字段都命中,才算命中该策略;每个策略字段可以配置若干个字符串成员,同一字段下所有字符串成员之间是或的关系,即命中任何一个字符串成员,即算命中该字段。
35.最终软件对于符合放行条件的流量予以放行,不符合放行条件的流量予以阻断,并将阻断的流量以日志的形式写入日志文件中。
36.其中,在另一个实施例中,如图2所示:应用协议检查模块自动加载配置,对客户端发送的流量按配置要求进行实时监听过滤,所述配置要求包括对各个应用协议的过滤规则,对于符合放行条件的流量予以放行,并发送给服务端,不符合放行条件的流量予以阻断,并将阻断的流量以日志的形式写入日志文件中;相应的,当所述应用协议数据检查模块接收到服务端发送的流量数据时,同样将所述流量按配置要求进行流量过滤,对于符合放行条件的流量予以放行返回给客户端,不符合放行条件的流量予以阻断,并将阻断的流量记录在日志文件中,从而对客户端和服务端会形成双向检测,以保证流量检测的有效性。
37.其中,所述将与放行字段对应的流量为安全流量,所述与阻断字段对应的流量为恶意流量。
38.相应的,本技术实施例还提出了一种针对应用协议进行流量过滤的装置,如图3所述,所述装置包括:
功能编译模块310,用于执行配置指令,执行web服务器编译命令,运行web服务器;配置加载模块320,用于修改web服务器配置,在web服务器配置中增加若干文件,文件中描述各个应用协议的过滤规则,对每个应用协议区分,每个所述应用协议包含多个策略,对所述策略进行区分,每个策略均配置有对应的字段,策略配置的字段分别对应流量的放行或阻断;所述字段包括放行字段或阻断字段;流量过滤模块330,用于检查各数据是否正确,按web服务器配置的要求实时监听流量,将与放行字段对应的流量予以放行,将与阻断字段对应的流量予以阻断。
39.在具体的应用场景中,所述功能编译模块还用于:执行配置指令时,增加与过滤功能相关源码所在的目录地址的选项。
40.在具体的应用场景中,所述配置加载模块还用于:在业务代理配置中新增字段,所述字段中第二个参数为每个代理唯一的正整数,同时在目录新增若干个文件,文件中描述各个应用协议的过滤规则。
41.在具体的应用场景中,所述流量过滤模块还具体用于:根据以下算法执行流量的阻断和放行:判断所述流量命中的某一所述应用协议中的阻断策略和放行策略,并根据该判断结果执行流量的阻断和放行;若所述流量命中某一所述应用协议中策略a中的所有字段,则判断为命中所述策略a;若所述流量命中某一所述应用协议中策略a中的若干字段,则判断为未命中所述策略a;若所述流量未命中某一所述应用协议中策略a中的任何字段,则判断为未命中所述策略a。
42.在具体的应用场景中,所述流量过滤模块还包括策略命中判断模块:所述策略命中判断模块根据以下算法执行:判断所述流量命中的某一所述应用协议中策略a中的字段数量,并根据该判断结果确认是否命中所述策略;若所述流量命中某一所述应用协议中策略a中的所有字段,则判断为命中所述策略a;若所述流量命中某一所述应用协议中策略a中的若干字段,则判断为未命中所述策略a;若所述流量未命中某一所述应用协议中策略a中的任何字段,则判断为未命中所述策略a;其中,所述策略命中判断模块包括字段命中模块,每个所述字段配置若干个字符串成员;所述字段命中判断模块根据以下算法执行;判断所述流量命中的某一所述字段中所述字符串成员的数量,并根据该判断结果确认是否命中所述字段;若所述流量命中某一字段中任意一个所述字符串成员,则判断结果为命中所述字
段;若所述流量命中某一字段中所有所述字符串成员,则判断结果为命中所述字段;若所述流量未命中某一字段中任意一个字符串成员,则判断结果为未命中所述字段。
43.本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
44.本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
45.上述本发明序号仅仅为了描述,不代表实施场景的优劣。
46.以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献