本发明涉及边缘计算的,尤其涉及一种基于布谷鸟过滤器的防火墙规则查询方法与系统。
背景技术:
1、在边缘计算领域中,运维系统中管理着数以万计的边缘服务器,每个边缘服务器都有各自的防火墙规则,且随着时间服务器的数量快速增长,如何快速、便捷地对数以万计的边缘服务器防火墙规则进行某条安全规则覆盖查询,或是根据其已有的防火墙规则文件比对出需新增的防火墙规则,成为了运维系统所需要面临的麻烦而不可忽视的问题。
2、然而现状与现有的技术是,边缘服务器都有各自的防火墙规则在本地,中心服务想要查看详细的防火墙规则且进行查询防火墙规则文件中是否存在某条规则,只能从边缘下载拉取大量的防火墙规则文件到中心服务,来进行解析查询、比对操作。
3、但是上述的现有的防火墙规则查询方法,都存在不可解决的缺陷与不足之处:第一,边缘服务器位于网络中的边缘节点,与中心服务相隔甚远导致普遍存在网络通信质量不好情况,从边缘拉取数量巨大的防火墙规则文件是一件非常耗时操作且会降低整体的服务性能。第二,中心服务需要解析数量巨大的防火墙规则文件,将文件中规则记录提取出来才能进行查询、比对操作,数量小处理速度仍尚可接受但是到了一定数量,处理速度依旧缓慢导致接口响应超时,用户等待时间长使用感受差。
技术实现思路
1、本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
2、为解决上述技术问题,本发明提供如下技术方案:
3、第一方面,本发明实施例提供一种基于布谷鸟过滤器的防火墙规则查询方法,包括如下步骤:
4、s1、防火墙指纹采集:构建布谷鸟过滤器,对防火墙规则文件进行采集;
5、s2、防火墙指纹对比:中心服务收到消息,对防火墙指纹进行完整性校验,校验失败则不返回确认命令要求重新采集防火墙规则;
6、s3、防火墙指纹保存:中心服务将防火墙指纹数据与对应边缘服务器关联,作为一条防火墙指纹记录保存至非易失存储器且构建索引文件;
7、s4、防火墙指纹调取:中心服务需要对所有边缘服务器的安全规则进行覆盖率统计时,先从非易失存储器中取出所有服务器的防火墙指纹记录;
8、s5、信息解析与对比:将安全规则进行解析计算出指纹、以及槽位置,并行地通过指纹以及槽位置与所有服务器的防火墙指纹进行比较,如果存在则将计数器+1,直至所有记录比较完毕,统计得到安全规则的覆盖率。
9、作为本发明所述种基于布谷鸟过滤器的防火墙规则查询方法的一种优选方案,其中:所述s1中防火墙规则的采集通过防火墙规则配置发生变更操作的边缘服务器通知边缘管理机的agent进行采集该边缘服务器的防火墙规则文件得到防火墙指纹。
10、作为本发明所述种基于布谷鸟过滤器的防火墙规则查询方法的一种优选方案,其中:所述布谷鸟过滤器的构建具体包括如下步骤:
11、s1.1、根据规则记录的数量c,计算出槽数组d,并且申请容量为d的槽数组;
12、s1.2、解析防火墙规则文件,拆分、清洗非关键信息,得到n元组信息;
13、s1.3、将n元组信息序列化为字符串s,通过murmurhash3工具得到64位哈希值h1,h1取模操作得到指纹f,h1取高32位哈希值进行与操作得到槽位置i1;
14、s1.4、根据槽位置定位到相应的槽,如果槽空间未满则逐一进行比较槽中所储存的指纹,直至找到可用的存储位置;
15、s1.5、若没有在槽中找到存储位置,则从槽末尾踢除一个元素,并且将该元素的指纹f通过murmurhash3工具得到64位哈希值h2,h2取高32位哈希值进行与操作及异或操作得到槽位置i2,并再次进行s1.4;
16、s1.6、重复进行步骤(1-2)至步骤(1-5),直至所有的防火墙规则记录都被存储到槽数组中;
17、s1.7、将槽数组按大端序写入到字节数组中,得到防火墙指纹数据。
18、作为本发明所述种基于布谷鸟过滤器的防火墙规则查询方法的一种优选方案,其中:所述s1.1中槽数组d具体计算方法为d为大于等于c的最小的2的幂次方。
19、作为本发明所述种基于布谷鸟过滤器的防火墙规则查询方法的一种优选方案,其中:所述s1.1中每个所述槽能够容纳10个16位防火墙指纹。
20、作为本发明所述种基于布谷鸟过滤器的防火墙规则查询方法的一种优选方案,其中:所述s1.2中所述n元组信息包括规则类型标识元素、表类型标识元素、源地址标识元素、源端口标识元素、目的地址标识元素、目的端口标识元素、协议类型标识元素、动作标识元素。
21、作为本发明所述种基于布谷鸟过滤器的防火墙规则查询方法的一种优选方案,其中:所述s1.7中防火墙指纹进行消息摘要算法得到指纹摘要用以确保数据完整性,将消息摘要写入到防火墙指纹数据的头部,最终得到防火墙指纹。
22、作为本发明所述种基于布谷鸟过滤器的防火墙规则查询方法的一种优选方案,其中:所述s2中防火墙指纹进行完整性校验通过将防火墙指纹数据进行消息摘要后与防火墙指纹摘要进行比对。
23、第二方面,本发明实施例提供一种基于布谷鸟过滤器的防火墙规则查询系统,具体包括:
24、中心管理模块:负责统筹、管理及储存数据;
25、边缘代理模块:负责采集、解析及上报防火墙指纹;
26、防火墙指纹模块:负责查询、统计及压缩指纹。
27、第三方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的一种基于布谷鸟过滤器的防火墙规则查询方法的步骤。
28、本发明的有益效果:
29、1、采用基于布谷鸟过滤器的全新的方式构建防火墙指纹的方法,使得具备高性能查询能力,且指纹可极小化存储、可重复使用、加载速度快,防火墙管理中能够快速统计百万级别数量主机的安全规则的覆盖率。
30、2、通过将空间占用极小的防火墙指纹与其他特征属性关联作为记录,保存至非易失存储器且与其他特征构建索引文件的方式,既提升了快速检索能力,又减少了网络传输带宽,使得可以非必要反复拉取防火墙具体规则文件进行操作,减少等待时间。
31、3、提升了防火墙规则增量更新的能力。检测主机是否已包含某条规则、检测任务是否重复下发、增量更新过滤等等应用场景。。
1.一种基于布谷鸟过滤器的防火墙规则查询方法,其特征在于:包括如下步骤:
2.根据权利要求1所述的一种基于布谷鸟过滤器的防火墙规则查询方法,其特征在于:所述s1中防火墙规则的采集通过防火墙规则配置发生变更操作的边缘服务器通知边缘管理机的agent进行采集该边缘服务器的防火墙规则文件得到防火墙指纹。
3.根据权利要求2所述的一种基于布谷鸟过滤器的防火墙规则查询方法,其特征在于:所述布谷鸟过滤器的构建具体包括如下步骤:
4.根据权利要求3所述的一种基于布谷鸟过滤器的防火墙规则查询方法,其特征在于:所述s1.1中槽数组d具体计算方法为d为大于等于c的最小的2的幂次方。
5.根据权利要求4所述的一种基于布谷鸟过滤器的防火墙规则查询方法,其特征在于:所述s1.1中每个所述槽能够容纳10个16位防火墙指纹。
6.根据权利要求5所述的一种基于布谷鸟过滤器的防火墙规则查询方法,其特征在于:所述s1.2中所述n元组信息包括规则类型标识元素、表类型标识元素、源地址标识元素、源端口标识元素、目的地址标识元素、目的端口标识元素、协议类型标识元素、动作标识元素。
7.根据权利要求6所述的一种基于布谷鸟过滤器的防火墙规则查询方法,其特征在于:所述s1.7中防火墙指纹进行消息摘要算法得到指纹摘要用以确保数据完整性,将消息摘要写入到防火墙指纹数据的头部,最终得到防火墙指纹。
8.根据权利要求7所述的一种基于布谷鸟过滤器的防火墙规则查询方法,其特征在于:所述s2中防火墙指纹进行完整性校验通过将防火墙指纹数据进行消息摘要后与防火墙指纹摘要进行比对。
9.一种基于布谷鸟过滤器的防火墙规则查询系统根据权利要求1-8任意一项所述的一种基于布谷鸟过滤器的防火墙规则查询方法,其特征在于:具体包括:
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-8任一所述的一种基于布谷鸟过滤器的防火墙规则查询方法的步骤。
