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

Linux主机网络通信安全防护方法和装置

2022-10-13 01:01:42 来源:中国专利 TAG:

linux主机网络通信安全防护方法和装置
技术领域
1.本技术涉及网络安全防护技术领域,特别是涉及一种linux主机网络通信安全防护方法和装置。


背景技术:

2.防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,其中处理措施包括隔离与保护,同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。防火墙的过滤规则可以分为白名单和黑名单。白名单是指匹配规则的流量将都被放行,黑名单是指匹配规则的流量将被拦截,通常防火墙同时使用白名单和黑名单。传统防火墙的关键问题是黑名单是不完备的,即使不断更新学习规则库,仍然存在未知类型攻击的可能,并且黑名单的维护成本高,因此完备的白名单设计是确保网络安全的重要手段。
3.网络通信安全是信息系统高效运行的重要保证,特别是在一些防护等级要求较高的内部网络,构建网络通信白名单是确保网络安全的重要手段。传统的网络安全防护方案在网络通信防护方面一般采用防火墙配置策略实现,这可以通过网络层的专用防火墙设备实现,也可以通过基于主机的软件防火墙实现,但是传统实现方法通常假定目标通信网络拓扑相对固定,通过提前梳理网络通信需求来设计和配置一系列静态的网络通信策略规则,并未设计动态感知网络拓扑或配置变化的机制和根据这些变化来动态更新网络防护规则方法,而这类需求在一些网络拓扑或网络配置需要频繁动态调整的专用网络中表现得尤为突出。在这类网络中,系统用户在执行业务过程中可能频繁出现网络通信被防火墙阻断的情况,而现有网络通信防护方案并未设计提示系统用户网络连接失败具体原因的机制,以及动态更新策略规则的便捷方法,从而激化了安全性和易用性之间的矛盾,严重时甚至出现为了保证业务正常而临时关闭防火墙的危险行为,严重影响了信息系统的安全性。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种linux主机网络通信安全防护方法和装置。
5.一种linux主机网络通信安全防护方法,所述方法包括:当网络拓扑变化时,清空白名单列表,并且通过linux内核的netfilter框架拦截未知网络通信行为;将拦截的未知网络通信行为实时通知系统用户,并且等待接收系统用户的反馈信息;当反馈信息为通过时,提取通过的未知网络通信行为的五元组信息,根据所述五
元组信息,配置网络通信白名单策略;根据所述网络通信白名单策略进行网络安全防护。
6.在其中一个实施例中,还包括:通过netfilter框架注册ip层的钩子函数,通过所述钩子函数对所述未知网络通信行为进行拦截。
7.在其中一个实施例中,所述钩子函数包括:数据包进入网络层时调用回调和数据包发送到网络时调用回调;所述数据包进入网络层时调用回调用于对未知网络通信行为的入站数据包进行管理;所述数据包发送到网络时调用回调用于对未知网络通信行为的出站数据包进行管理。
8.在其中一个实施例中,所述五元组信息包括:源ip、源端口、协议、目的端口、目的ip。
9.在其中一个实施例中,还包括:根据所述五元组信息中的协议、源端口、源ip构建入站数据包的第一白名单策略;根据所述五元组信息中的协议、目的端口、目的ip构建出站数据包的第二白名单策略。
10.在其中一个实施例中,所述入站数据包包括:向外部主机提供服务而接收的外部主机发送的第一入站数据包以及访问外部主机的服务而接收的外部主机响应的第二入站数据包;其中,第二入站数据包的访问策略为第一白名单策略,并且将所述第一白名单策略中的源端口修改为本机端口作为第一入站数据包的访问策略。
11.在其中一个实施例中,所述出站数据包包括:响应外部主机的服务请求向外部主机发送的第一出站数据包以及访问外部主机向外部主机发送的第二出站数据包;其中,第二出站数据包的访问策略为第二白名单策略,并且将所述第二白名单策略中的目的端口修改为本机端口作为第一出站数据包的访问策略。
12.一种linux主机网络通信安全防护装置,所述装置包括:拦截模块,用于当网络拓扑变化时,清空白名单列表,并且通过linux内核的netfilter框架拦截未知网络通信行为;白名单构建模块,用于将拦截的未知网络通信行为实时通知系统用户,并且等待接收系统用户的反馈信息;当反馈信息为通过时,提取通过的未知网络通信行为的五元组信息,根据所述五元组信息,配置网络通信白名单策略;防护模块,用于根据所述网络通信白名单策略进行网络安全防护。
13.在其中一个实施例中,所述拦截模块还用于通过netfilter框架注册ip层的钩子函数,通过所述钩子函数对所述未知网络通信行为进行拦截。
14.在其中一个实施例中,所述钩子函数包括:数据包进入网络层时调用回调和数据包发送到网络时调用回调;所述数据包进入网络层时调用回调用于对未知网络通信行为的入站数据包进行管理;所述数据包发送到网络时调用回调用于对未知网络通信行为的出站数据包进行管理。
15.上述linux主机网络通信安全防护方法和装置,首先对所有未知网络通信行为进行拦截,然后将拦截的网络通信行为实时通知系统用户,由系统用户动态配置网络通信白名单,当业务正常后不再继续添加网络通信白名单,从而最大限度地确保所有的网络通信行为都是真实可信的,极大地提升网络信息系统的安全性。通过这样的设计,用户在使用该系统时,不需提前进行复杂的业务通信需求梳理和防火墙策略规则定义,而是在系统运行
过程中动态完成策略构建,所有网络通信行为由业务专家进行确认,从而具有更高的安全性和更好地用户体验。
附图说明
16.图1为一个实施例中linux主机网络通信安全防护方法的流程示意图;图2为一个实施例中整体框架图;图3为一个实施例中linux内核过滤过程示意图;图4为一个实施例中网络数据包拦截设计工作图;图5为一个实施例中“拦截-通知-决策”机制示意图;图6为一个实施例中linux主机网络通信安全防护装置的结构框图;图7为一个实施例中计算机设备的内部结构图。
具体实施方式
17.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
18.在一个实施例中,如图1所示,提供了一种linux主机网络通信安全防护方法,包括以下步骤:步骤102,当网络拓扑变化时,清空白名单列表,并且通过linux内核的netfilter框架拦截未知网络通信行为。
19.未知网络通信行为指的是不在白名单列表中的通信行为,由于系统业务发生变化,网络拓扑同步发生变化,若采用原来的白名单列表,则无法起到安全防护的功能,在本步骤中,一旦检测到网络拓扑发生变化,则清空原有的白名单列表,然后通过linux内核的netfilter框架拦截未知网络通信行为,值得说明的是,通过对netfilter框架进行配置,可以实现通信数据的全面接管,具体可以对数据进行拦截和分析。
20.步骤104,将拦截的未知网络通信行为实时通知系统用户,并且等待接收系统用户的反馈信息。
21.在网络拓扑发生改变的初期,所有网络通信行为均为未知的,因此,为了实现动态的建立白名单列表,引入系统用户,通过系统用户的反馈信息,来确定是否作为建立白名单策略的依据。
22.值得说明的是,对于本发明的基本思路,如图2所示,是由linux内核和应用层软件组成,具体的,linux内核负责对网络通信的数据包进行拦截和分析,并将结果反馈给应用层软件,应用层软件负责管理白名单策略,也就是通过数据包的分析结果,确定是否删除、增加、更新等方式对白名单进行操作。对于系统用户的计入,是在应用层软件进行管理,也就是说,在业务不稳定的初期,应用层软件通过展示linux内核分析的信息的方式,使得系统用户进行介入,当业务稳定时,白名单策略基本稳定,不再进行白名单策略更新,也就不需要进行分析信息的展示。
23.步骤106,当反馈信息为通过时,提取通过的未知网络通信行为的五元组信息,根据五元组信息,配置网络通信白名单策略。
24.通过系统用户的介入,对于解决动态构建白名单困难的问题,提供了新的思路,由于系统用户反馈的信息具有非常强的可靠性,因此,建立的白名单也具有非常好的通信防护效果,具体配置白名单流程如图3所示。
25.步骤108,根据网络通信白名单策略进行网络安全防护。
26.在建立的网络通信白名单策略稳定后,当网络通信行为通过了网络通信白名单策略,则可以进行网络传输,若不通过,则被拦截。
27.上述linux主机网络通信安全防护方法中,首先对所有未知网络通信行为进行拦截,然后将拦截的网络通信行为实时通知系统用户,由系统用户动态配置网络通信白名单,当业务正常后不再继续添加网络通信白名单,从而最大限度地确保所有的网络通信行为都是真实可信的,极大地提升网络信息系统的安全性。通过这样的设计,用户在使用该系统时,不需提前进行复杂的业务通信需求梳理和防火墙策略规则定义,而是在系统运行过程中动态完成策略构建,所有网络通信行为由业务专家进行确认,从而具有更高的安全性和更好地用户体验。
28.在其中一个实施例中,通过netfilter框架注册ip层的钩子函数,通过钩子函数对未知网络通信行为进行拦截。
29.本实施例中,linux内核的netfilter提供了一个抽象、通用化的网络数据包处理框架,其中一个重要的功能就是可以实现网络数据包拦截过滤。netfilter框架为每种网络协议(ipv4、ipv6等)定义了一套钩子函数,内核的任何模块可以对每种协议的一个或多个钩子进行注册,实现数据包处理流程的接管,这样当某个数据包被传递给netfilter框架时,内核将检测是否有其他模块对该协议和钩子函数进行了注册。若有注册回调,则调用该模块的回调函数,这样这些模块就有机会实现检查数据包、修改数据包、丢弃数据包等操作。本实施例实质上是利用linux内核的netfilter框架的特点,实现了一种可以对数据包全面管理,从而在网络拓扑动态变化时,能够实时对未知网络通信行为进行拦截。
30.在其中一个是实施例中,钩子函数包括:数据包进入网络层时调用回调和数据包发送到网络时调用回调;所述数据包进入网络层时调用回调用于对未知网络通信行为的入站数据包进行管理;数据包发送到网络时调用回调用于对未知网络通信行为的出站数据包进行管理。
31.具体的,本发明的网络通信安全防护方案工作在网络层,主要处理ip层以上的网络通信。ip层在netfilter框架中有五个预置的hook点,可以实现不同的数据包拦截、分析和处理的需求。其中nf_ip_pre_routing表示数据包刚进入网络层时调用回调,nf_ip_local_in表示数据包送往本机时调用回调,nf_ip_forward表示执行数据包转发操作时调用回调,nf_ip_post_routing表示数据包即将发送到网络时调用回调,nf_ip_local_out表示本机发送数据包时调用回调。考虑到网络通信安全防护方案的通用性,本发明通过在内核模块中注册nf_ip_pre_routing和nf_ip_post_routing回调,实现对网络入站和出站数据包的拦截和分析。
32.在其中一个实施例中,五元组信息包括:源ip、源端口、协议、目的端口、目的ip。
33.具体的,根据五元组信息中的协议、源端口、源ip构建入站数据包的第一白名单策略;根据五元组信息中的协议、目的端口、目的ip构建出站数据包的第二白名单策略。
34.目前,在复杂的网络信息系统中,实际业务运行过程中与当前主机的网络通信数
量很多,因此对应的网络通信白名单规则数量也会很多,如果在进行白名单规则匹配时不进行优化处理,将会对网络通信的性能带来较大的影响。传统的规则匹配一般采用循环遍历的方法进行,其平均计算复杂度为o(n),当规则数量持续增加时,由于网络数据包拦截分析带来的网络通信延时可将是无法接受的,因此本发明设计采用哈希表来存储和查找网络通信白名单规则,将平均计算复杂度控制在o(1),从而使得本发明的安全防护方案对网络通信的性能影响降到最低。
35.在具体白名单策略上,如图4所示,还采用了如下优化设计:入站数据包包括:向外部主机提供服务而接收的外部主机发送的第一入站数据包以及访问外部主机的服务而接收的外部主机响应的第二入站数据包;其中,第二入站数据包的访问策略为第一白名单策略,并且将所述第一白名单策略中的源端口修改为本机端口作为第一入站数据包的访问策略。
36.出站数据包包括:响应外部主机的服务请求向外部主机发送的第一出站数据包以及访问外部主机向外部主机发送的第二出站数据包;其中,第二出站数据包的访问策略为第二白名单策略,并且将所述第二白名单策略中的目的端口修改为本机端口作为第一出站数据包的访问策略。
37.上述白名单设计与传统网络设备上网络通信白名单设计不同,本发明基于主机的网络通信安全防护方案中的白名单策略可以设计得更加简单,从而便于终端用户理解和操作。传统网络层的白名单设计一般需要使用全部的五元组信息来构建防御策略,即(源ip、源端口、协议、目的端口、目的ip),而基于主机的方案可以首先把白名单分为两类,即入站白名单和出站白名单,从而只需要使用(协议、源端口、目的ip)和(协议、目的端口、目的ip)三种信息来构建白名单策略。
38.对于入站的网络数据包,可以区分为两类情形:一种情况是本机对外提供服务,其他主机主动访问本机服务,数据包是外部主机的请求包,从而可以通过(协议、本机端口、源ip)的方式来设计通信白名单策略;另一种情况是本机主动访问外部主机的服务,数据包是外部主机的响应包,从而可以通过(协议、源端口、源ip)的方式来设计通信白名单策略。
39.对于出站的网络数据包,也可以区分两类情形:一种情况是本机主动访问外部主机的服务,数据包是本机的请求包,从而可以通过(协议,目的端口,目的ip)的方式来设计通信白名单策略;另一种情况是,其他主机访问本机提供的服务,数据包是本机的响应包,从而可以通过(协议,本机端口,目的ip)的方式来设计通信白名单策略。
40.通过这样的设计,能够更加简洁的表达基于主机的网络通信白名单,系统用户也能够以更加贴近于业务的方式来理解和设计网络通信白名单。当系统提示用户决策网络通信行为时,可以简单的区分为四类:放行目的主机本机端口的流量、放行目的主机目的端口的流量、阻断目的主机本机端口的流量、阻断目的主机目的端口的流量。
41.在另一个实施例中,传统网络层安全防护方案通常假定通信网络拓扑相对固定,通过提前梳理网络通信需求来设计和配置一系列静态的网络通信策略来实现安全防护,并未设计动态感知网络拓扑或配置变化的机制和根据这些变化来动态更新网络防护规则方法,而这类需求在一些网络拓扑或网络配置需要频繁动态调整的专用网络中表现得尤为突出。在这类网络中,系统用户在执行业务过程中可能频繁出现网络通信被防火墙阻断的情况,而现有网络通信防护方案并未设计提示系统用户网络连接失败具体原因的机制,以及
动态更新策略规则的便捷方法,从而激化了安全性和易用性之间的矛盾,严重时甚至出现为了保证业务正常而临时关闭防火墙的危险行为,严重影响了信息系统的安全性。
42.本发明提供基于主机的网络通信安全防护方法,如图5所示,对目标网络拓扑和网络配置不做任何假设,而是通过设计“拦截-通知-决策”的机制来动态构建网络通信安全防护策略。初始状态时,系统的安全防护策略为空,将阻断所有的网络通信行为;然后系统用户运行业务系统,开始执行业务流程,此时本发明的内核模块将准确阻断业务的网络通信行为,并通过应用层软件通知系统用户;当用户收到提示信息后,将对阻断的网络行为进行放行决策,选择放行的网络通信行为将通过应用层的内部通信接口发送到内核模块,内核模块再将其添加到网络通信白名单策略中,从而后续的此类网络通信行为将不再被阻断。通过该机制的设计,将人引入回路,能够在不对网络拓扑做任何假设的情况下,快速构建针对主机的满足最小权限原则的网络通信安全防护策略。
43.应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
44.在一个实施例中,如图6所示,提供了一种linux主机网络通信安全防护装置,包括:拦截模块602、白名单构建模块604和防护模块606,其中:拦截模块602,用于当网络拓扑变化时,清空白名单列表,并且通过linux内核的netfilter框架拦截未知网络通信行为;白名单构建模块604,用于将拦截的未知网络通信行为实时通知系统用户,并且等待接收系统用户的反馈信息;当反馈信息为通过时,提取通过的未知网络通信行为的五元组信息,根据所述五元组信息,配置网络通信白名单策略;防护模块606,用于根据所述网络通信白名单策略进行网络安全防护。
45.在其中一个实施例中,通过netfilter框架注册ip层的钩子函数,通过钩子函数对未知网络通信行为进行拦截。
46.在其中一个实施例中,所述钩子函数包括:数据包进入网络层时调用回调和数据包发送到网络时调用回调;所述数据包进入网络层时调用回调用于对未知网络通信行为的入站数据包进行管理;所述数据包发送到网络时调用回调用于对未知网络通信行为的出站数据包进行管理。
47.在其中一个实施例中,五元组信息包括:源ip、源端口、协议、目的端口、目的ip。
48.在其中一个实施例中,根据所述五元组信息中的协议、源端口、源ip构建入站数据包的第一白名单策略;根据所述五元组信息中的协议、目的端口、目的ip构建出站数据包的第二白名单策略。
49.在其中一个实施例中,所述入站数据包包括:向外部主机提供服务而接收的外部主机发送的第一入站数据包以及访问外部主机的服务而接收的外部主机响应的第二入站数据包;其中,第二入站数据包的访问策略为第一白名单策略,并且将所述第一白名单策略中的源端口修改为本机端口作为第一入站数据包的访问策略。
50.在其中一个实施例中,所述出站数据包包括:响应外部主机的服务请求向外部主机发送的第一出站数据包以及访问外部主机向外部主机发送的第二出站数据包;其中,第二出站数据包的访问策略为第二白名单策略,并且将所述第二白名单策略中的目的端口修改为本机端口作为第一出站数据包的访问策略。
51.关于linux主机网络通信安全防护装置的具体限定可以参见上文中对于linux主机网络通信安全防护方法的限定,在此不再赘述。上述linux主机网络通信安全防护装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
52.在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种linux主机网络通信安全防护方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
53.本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
54.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述实施例中方法的步骤。
55.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中方法的步骤。
56.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
57.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
58.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并
不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献