基于全局网络拓扑结构的防火墙规则生成方法及服务器与流程

文档序号:17481736发布日期:2019-04-20 06:30阅读:873来源:国知局
基于全局网络拓扑结构的防火墙规则生成方法及服务器与流程

本发明实施例涉及防火墙技术领域,具体涉及一种基于全局网络拓扑结构的防火墙规则生成方法及服务器。



背景技术:

随着信息技术的发展,通过分布式主机集群部署各主机的方式得到广泛应用。

针对单主机节点,部署网络防火墙规则,来保护主机不受恶意网络流量干扰,然而,现代it系统的复杂度在不断提升,一个完整的it系统通常由一个或者多个分布式主机集群组成,在这种情况下,网络管理员想要建立并部署合理有效的网络防火墙规则,必须深入了解整个it系统,预先规划好安全策略,之后在每个主机节点上部署防火墙规则。图1为现有技术通过单点部署防火墙规则的示意图;如图1所示,上述工作流程不具备很好的环境适应性,即如果集群中发生某些变化(例如,web应用从http协议切换至https协议,主机ip地址变化,在集群中添加或者删除主机节点等),需要人工手动为每个主机节点部署更新防火墙规则,从而给主机部署维护工作带来极大的不便。

因此,如何避免上述缺陷,高效生成更新防火墙规则,进而便于各主机部署更新防火墙规则,成为亟须解决的问题。



技术实现要素:

针对现有技术存在的问题,本发明实施例提供一种基于全局网络拓扑结构的防火墙规则生成方法及服务器。

第一方面,本发明实施例提供一种基于全局网络拓扑结构的防火墙规则生成方法,所述方法包括:

若检测到更新完成全局网络拓扑结构中的主机节点的触发动作,则根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点;

分别生成各主机节点和各关联主机节点的更新防火墙规则,并分别发送各更新防火墙规则至相应主机节点,以使各相应主机节点在接收到对应的更新防火墙规则之后,分别部署更新防火墙规则。

第二方面,本发明实施例提供一种基于全局网络拓扑结构的防火墙规则生成服务器,所述服务器包括:

获取单元,用于若检测到更新完成全局网络拓扑结构中的主机节点的触发动作,则根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点;

生成单元,用于分别生成各主机节点和各关联主机节点的更新防火墙规则,并分别发送各更新防火墙规则至相应主机节点,以使各相应主机节点在接收到对应的更新防火墙规则之后,分别部署更新防火墙规则。

第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器和总线,其中,

所述处理器和所述存储器通过所述总线完成相互间的通信;

所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如下方法:

若检测到更新完成全局网络拓扑结构中的主机节点的触发动作,则根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点;

分别生成各主机节点和各关联主机节点的更新防火墙规则,并分别发送各更新防火墙规则至相应主机节点,以使各相应主机节点在接收到对应的更新防火墙规则之后,分别部署更新防火墙规则。

第四方面,本发明实施例提供一种非暂态计算机可读存储介质,包括:

所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如下方法:

若检测到更新完成全局网络拓扑结构中的主机节点的触发动作,则根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点;

分别生成各主机节点和各关联主机节点的更新防火墙规则,并分别发送各更新防火墙规则至相应主机节点,以使各相应主机节点在接收到对应的更新防火墙规则之后,分别部署更新防火墙规则。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成方法及服务器,根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点,并生成、发送各更新防火墙规则至相应主机节点,以供各相应主机节点分别部署更新防火墙规则,能够高效生成更新防火墙规则,进而便于各主机部署更新防火墙规则。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术通过单点部署防火墙规则的示意图;

图2为本发明实施例基于全局网络拓扑结构的防火墙规则生成方法流程示意图;

图3为本发明另一实施例基于全局网络拓扑结构的防火墙规则生成方法流程示意图;

图4为本发明实施例基于全局网络拓扑结构的防火墙规则生成服务器结构示意图;

图5为本发明实施例提供的电子设备实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图2为本发明实施例基于全局网络拓扑结构的防火墙规则生成方法流程示意图,如图2所示,本发明实施例提供的一种基于全局网络拓扑结构的防火墙规则生成方法,包括以下步骤:

s201:若检测到更新完成全局网络拓扑结构中的主机节点的触发动作,则根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点。

具体的,服务器若检测到更新完成全局网络拓扑结构中的主机节点的触发动作,则根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点。各主机节点的更新方式可以包括增加、删除和修改,不作具体限定。可以进一步根据所述更新方式,更新所述全局网络拓扑结构。图3为本发明另一实施例基于全局网络拓扑结构的防火墙规则生成方法流程示意图,如图3所示,以本发明实施例的方法在linux主机集群上实施为例,上述更新完成的触发动作可以由服务器管理员触发,以增加主机节点为例,说明如下:在现有linux主机集群添加一台centos主机,作为http服务器4(图3未示出),流程如下:

1.管理员在可视化web界面中添加一个svgrectangule元素(命名为new)表示该http服务器4;可视化web界面即是显示有更新前的全局网络拓扑结构的界面。

2.管理员在表示负载均衡服务器1的svgrectangule元素和new之间增加一条path(即连接主机节点的边),与该path相关联的label中标注“port443”。

3.在负载均衡服务器2和new之间执行同上操作。

4.在new和表示应用服务器2之间增加一条path,与该path相关联的label中标注“port3456”。

5.管理员点击确认按钮(对应于更新完成全局网络拓扑结构中的主机节点的触发动作),可视化展现javascript程序,通知python实现的防火墙规则维护程序,之后重新渲染htmlsvg。

6.python实现的防火墙规则维护程序收到通知以后,根据上述更新后的全局网络拓扑结构,获取与http服务器4相关联的关联主机节点,参照上述举例,关联主机节点为负载均衡服务器1、负载均衡服务器2和表示应用服务器2,即这些主机节点需要更新防火墙规则,生成与http服务器4对应的更新防火墙规则ra、与负载均衡服务器1对应的更新防火墙规则rb、与负载均衡服务器2对应的更新防火墙规则rc、与表示应用服务器2对应的更新防火墙规则rd,即上述示例的主机节点为一个、是http服务器4;与主机节点http服务器4相关联的关联主机节点为负载均衡服务器1、负载均衡服务器2和表示应用服务器2。主机节点为多个的情况,不再赘述。

然后,通过http连接分别发送更新防火墙规则ra至http服务器4、发送更新防火墙规则rb至负载均衡服务器1、发送更新防火墙规则rc至负载均衡服务器2、发送更新防火墙规则rd至表示应用服务器2。发送更新防火墙规则的触发动作,也可以是在接收到各相应主机节点的代理程序发送的请求消息后触发,以http服务器4为例,该http服务器4的代理程序发送获取更新防火墙规则的请求消息至服务器,服务器响应该请求消息,并发送更新防火墙规则ra至该http服务器4,以使该http服务器4在接收到更新防火墙规则ra之后,通过http服务器4中的代理程序部署更新防火墙规则,其他相应主机节点的说明可参照该http服务器4的说明,不再赘述。需要说明的是:采用何种策略生成更新防火墙规则,为本领域成熟技术,本发明实施例不作具体限定。

s202:分别生成各主机节点和各关联主机节点的更新防火墙规则,并分别发送各更新防火墙规则至相应主机节点,以使各相应主机节点在接收到对应的更新防火墙规则之后,分别部署更新防火墙规则。

具体的,服务器分别生成各主机节点和各关联主机节点的更新防火墙规则,并分别发送各更新防火墙规则至相应主机节点,以使各相应主机节点在接收到对应的更新防火墙规则之后,分别部署更新防火墙规则。可参照上述实施例的说明,不再赘述。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成方法,根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点,并生成、发送各更新防火墙规则至相应主机节点,以供各相应主机节点分别部署更新防火墙规则,能够高效生成更新防火墙规则,进而便于各主机部署更新防火墙规则。

在上述实施例的基础上,各主机节点的更新方式包括增加、删除和修改。

具体的,服务器中的各主机节点的更新方式包括增加、删除和修改。可参照上述实施例,不再赘述。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成方法,能够采用多种更新方式灵活地更新各主机节点。

在上述实施例的基础上,所述方法还包括:

根据所述更新方式,更新所述全局网络拓扑结构。

具体的,服务器根据所述更新方式,更新所述全局网络拓扑结构。可参照上述实施例,不再赘述。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成方法,通过采用更新主机节点和主机节点之间边的方式更新全局网络拓扑结构,有效更新全局网络拓扑结构,保证该技术方案的正常进行。

在上述实施例的基础上,所述若检测到更新完成全局网络拓扑结构中的主机节点的触发动作的步骤之前,所述方法还包括:

生成更新前的全局网络拓扑结构,并显示。

具体的,服务器生成更新前的全局网络拓扑结构,并显示。该步骤的具体实施方式可以如下:

1.服务器中的收集/存储python程序逐行解析日志文件内容,该日志文件内容可以理解为:通过预先部署在分布式主机集群中的各主机上的代理程序上传的对日志文件的实时监控结果,按列提取日志文件内容的字段信息,将解析结果写入sqlite数据库中。

2.服务器中的负责构建网络拓扑的python程序内部开辟一个二维数组存储各主机节点的网络邻接信息,最终将该二维数组以json文件的形式输出给可视化程序(某些关键字要符合cola.js的约束条件表达式语法)。

3.服务器中的可视化展现javascript程序,从json文件中读取节点/连接信息输出至d3.js,从json文件中读取约束条件表达式输出至cola.js,最终以htmlsvg形式展现全局网络拓扑。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成方法,通过生成更新前的全局网络拓扑结构,并显示,进一步保证该技术方案的正常进行。

在上述实施例的基础上,更新前的全局网络拓扑结构是根据日志文件内容生成的;所述日志文件内容是通过预先部署在分布式主机集群中的各主机上的代理程序上传的对日志文件的实时监控结果。

具体的,服务器中的更新前的全局网络拓扑结构是根据日志文件内容生成的;所述日志文件内容是通过预先部署在分布式主机集群中的各主机上的代理程序上传的对日志文件的实时监控结果。可参照上述实施例,不再赘述。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成方法,通过更新前的全局网络拓扑结构反映对日志文件的实时监控结果,进一步保证该技术方案的时效性。

在上述实施例的基础上,所述方法还包括:

通过httppost接口接收由各代理程序上传的实时监控结果。

具体的,服务器通过httppost接口接收由各代理程序上传的实时监控结果。即在上述“1.服务器中的管理中心日志收集存储python程序逐行解析日志文件内容”的步骤之前,还可以包括:

1.linux主机上生成或者接收网络流量,基于netfilter实现的内核模块旁路获取网络包,克隆原网络包生成一个新网络包,原网络包重新注入内核tcp/ip协议栈中处理,新网络包传递至用户态运行的suricata程序。

2.主机端suricata程序深度解析网络包,构建网络连接信息(suricataflow),输出到日志文件中。

3.主机端python程序调用文件系统inotify接口,监控日志文件更新事件,一旦捕获更新事件,读取日志文件内容,并通过服务器中的管理中心日志收集模块提供的httppost接口上传内容。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成方法,通过接收到实时监控结果,进一步保证该技术方案的正常进行。

为了更好地实现该方法,进一步可以采用模块化设计的方式实现:

如图3所示,本技术方案主要由两个主要执行主体组成,如下:

1.在集群环境中的各个主机上安装部署的代理程序。

2.独立于集群环境外运行的分布式防火墙管理中心(服务器)。

代理程序由以下模块组成:

1.网络流量探针模块,以旁路模式工作,负责捕获本机上的网络流量,并传递给本机上运行的网络流量分析引擎。

2.网络流量分析引擎模块,解析网络包重组网络链接,分析网络包头部和载荷信息,输出网络连接信息,如五元组(网络协议,源ip,源端口,目的ip,目的端口)和流量字节数(进入的流量,出去的流量)到日志文件。

3.文件上传模块,将日志文件上传到分布式防火墙管理中心。

4.防火墙规则部署模块,从管理中心接收到防火墙规则之后,应用到目标主机上。

分布式防火墙管理中心由以下模块组成:

1.日志收集/存储模块,收集各个主机上运行的代理程序上传的日志文件,并将之持久化存储在关系型数据库或者大数据平台中。

2.网络拓扑构建模块,在关系型数据库或者大数据平台中查询网络连接信息,基于图论算法(主机节点的入度,出度)构建全局的网络拓扑结构,由此可以确定任意两个主机节点的网络可达性。

3.可视化展现模块,向管理员显示全局拓扑结构,管理员可以在可视化界面中对集群拓扑结构做出修改,之后可视化界面通知分布式防火墙规则维护模块相应做出更新,并且重新渲染界面。

4.分布式防火墙规则维护模块,根据管理员在可视化交互过程中的操作,更新某个主机的防火墙规则,之后将更新过的防火墙规则分发给相应的主机代理程序。

以上各模块的工作流程如下:

1.主机端网络流量探针模块接收到新的网络流量,流量探针模块旁路捕获网络包,传递给流量分析引擎。

2.主机端流量分析引擎模块输出网络连接信息到日志文件中。

3.主机端文件上传模块实时监控日志文件更新事件,收到通知之后,读取日志文件内容,并通过管理中心日志收集模块提供的httppost接口上传内容。

4.管理中心日志收集/存储模块接收日志文件内容,逐行解析文件内容,每一列是一个字段,将解析结果写入传统关系型数据库(如sqlite)或者大数据平台(如sparkhive)。

5.网络拓扑构建模块查询关系型数据库或者大数据平台,获取每个主机节点的邻接信息,使用矩阵结构来存储邻接信息(矩阵中的每个元素表示两个主机的网络可达性),最终以某种格式(如json格式)输出给可视化展示模块。

6.可视化展现模块解析拓扑结构(如json格式),基于图形布局算法,使用htmlsvg元素(主机节点通过svgrectangule表示,主机节点之间的网络连接通过svgpath表示)渲染全局网络拓扑展现给管理员。

7.管理员与web界面交互(例如:添加或者删除一个主机节点,将某个主机节点上的http服务下线),可视化展现模块将更新通知防火墙规则维护模块,之后重新渲染全局网络拓扑。

8.分布式防火墙规则维护模块,将更新防火墙规则发送到相应的主机节点。

9.主机端防火墙规则部署模块,收到管理中心的通知,执行防火墙规则更新操作。

图4为本发明实施例基于全局网络拓扑结构的防火墙规则生成服务器结构示意图,如图4所示,本发明实施例提供了一种基于全局网络拓扑结构的防火墙规则生成服务器,包括获取单元401和生成单元402,其中:

获取单元401用于若检测到更新完成全局网络拓扑结构中的主机节点的触发动作,则根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点;生成单元402用于分别生成各主机节点和各关联主机节点的更新防火墙规则,并分别发送各更新防火墙规则至相应主机节点,以使各相应主机节点在接收到对应的更新防火墙规则之后,分别部署更新防火墙规则。

具体的,获取单元401用于若检测到更新完成全局网络拓扑结构中的主机节点的触发动作,则根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点;生成单元402用于分别生成各主机节点和各关联主机节点的更新防火墙规则,并分别发送各更新防火墙规则至相应主机节点,以使各相应主机节点在接收到对应的更新防火墙规则之后,分别部署更新防火墙规则。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成服务器,根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点,并生成、发送各更新防火墙规则至相应主机节点,以供各相应主机节点分别部署更新防火墙规则,能够高效生成更新防火墙规则,进而便于各主机部署更新防火墙规则。

在上述实施例的基础上,各主机节点的更新方式包括增加、删除和修改。

具体的,服务器中的各主机节点的更新方式包括增加、删除和修改。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成服务器,能够采用多种更新方式灵活地更新各主机节点。

在上述实施例的基础上,所述服务器具体用于:根据所述更新方式,更新所述全局网络拓扑结构。

具体的,所述服务器具体用于:根据所述更新方式,更新所述全局网络拓扑结构。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成服务器,通过采用更新主机节点和主机节点之间边的方式更新全局网络拓扑结构,有效更新全局网络拓扑结构,保证该技术方案的正常进行。

在上述实施例的基础上,所述服务器具体用于:生成更新前的全局网络拓扑结构,并显示。

具体的,所述服务器具体用于:生成更新前的全局网络拓扑结构,并显示。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成服务器,通过生成更新前的全局网络拓扑结构,并显示,进一步保证该技术方案的正常进行。

在上述实施例的基础上,更新前的全局网络拓扑结构是根据日志文件内容生成的;所述日志文件内容是通过预先部署在分布式主机集群中的各主机上的代理程序上传的对日志文件的实时监控结果。

具体的,服务器中的更新前的全局网络拓扑结构是根据日志文件内容生成的;所述日志文件内容是通过预先部署在分布式主机集群中的各主机上的代理程序上传的对日志文件的实时监控结果。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成服务器,通过更新前的全局网络拓扑结构反映对日志文件的实时监控结果,进一步保证该技术方案的时效性。

在上述实施例的基础上,所述服务器具体用于:通过httppost接口接收由各代理程序上传的实时监控结果。

具体的,所述服务器具体用于:通过httppost接口接收由各代理程序上传的实时监控结果。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成服务器,通过接收到实时监控结果,进一步保证该技术方案的正常进行。

本发明实施例提供的基于全局网络拓扑结构的防火墙规则生成服务器具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。

图5为本发明实施例提供的电子设备实体结构示意图,如图5所示,所述电子设备包括:处理器(processor)501、存储器(memory)502和总线503;

其中,所述处理器501、存储器502通过总线503完成相互间的通信;

所述处理器501用于调用所述存储器502中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:若检测到更新完成全局网络拓扑结构中的主机节点的触发动作,则根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点;分别生成各主机节点和各关联主机节点的更新防火墙规则,并分别发送各更新防火墙规则至相应主机节点,以使各相应主机节点在接收到对应的更新防火墙规则之后,分别部署更新防火墙规则。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:若检测到更新完成全局网络拓扑结构中的主机节点的触发动作,则根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点;分别生成各主机节点和各关联主机节点的更新防火墙规则,并分别发送各更新防火墙规则至相应主机节点,以使各相应主机节点在接收到对应的更新防火墙规则之后,分别部署更新防火墙规则。

本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:若检测到更新完成全局网络拓扑结构中的主机节点的触发动作,则根据更新后的全局网络拓扑结构,获取与所有主机节点相关联的关联主机节点;分别生成各主机节点和各关联主机节点的更新防火墙规则,并分别发送各更新防火墙规则至相应主机节点,以使各相应主机节点在接收到对应的更新防火墙规则之后,分别部署更新防火墙规则。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

以上所描述的电子设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1