Linux系统中数据的处理方法和装置与流程

文档序号:17481667发布日期:2019-04-20 06:29阅读:182来源:国知局
Linux系统中数据的处理方法和装置与流程

本申请涉及信息处理领域,尤指一种linux系统中数据的处理方法和装置。



背景技术:

防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的边界上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使internet与intranet之间建立起一个安全网关(securitygateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。该计算机流入流出的所有网络通信和数据包均要经过此防火墙。

在网络中,所谓“防火墙”,是指一种将内部网和公众访问网(如internet)分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络。换句话说,如果不通过防火墙,公司内部的人就无法访问internet,internet上的人也无法和公司内部的人进行通信。

主机防火墙可以有效的阻止木马/病毒程序连接外部主机,从而防止信息数据的泄露,或者被黑客利用对互联网上的机器进行ddos攻击。在主机安全linux系统后,如何提升linux系统的主机的安全性是亟待解决的问题。



技术实现要素:

为了解决上述技术问题,本申请提供了一种linux系统中数据的处理方法和装置,能够实现基于进程的网络访问控制。

为了达到本申请目的,本申请提供了一种linux系统中数据的处理方法,包括:

在检测到linux系统中有等待传输的数据包后,获取数据包在linux系统中所需调用的进程的标识信息;

根据所述进程的标识信息,获取所述进程的数据包过滤策略;

根据所述数据包过滤策略,对所述数据包进行处理。

在一个示例性实施例中,所述根据所述数据包过滤策略,对所述数据包进行处理,包括:

判断所述数据包的特征信息是否符合所述数据包过滤策略;

如果所述数据包的特征符合所述数据包的过滤策略,则控制允许所述进程传输所述数据包;否则,控制所述进程不传输所述数据包;

其中,所述特征信息包括所述数据包的源地址、目的地址、源端口、目的端口和传输协议中的至少一个。

在一个示例性实施例中,所述判断所述数据包的特征信息是否符合所述数据包过滤策略,包括:

获取所述数据包的进程的名称和套接字;

根据所述进行的名称和套接字,创建对所述数据包进行报文过滤的处理任务;

调用所述linux系统中对应的处理模块对创建的处理任务进行响应,完成对所述数据包的报文过滤操作。

在一个示例性实施例中,调用所述linux系统中对应的处理模块对创建的处理任务进行响应,完成对所述数据包的报文过滤操作,包括:

如果所述数据包的数据方向为外发数据,调用所述linux系统中netfilter子系统对创建的处理任务进行响应,完成对所述数据包的报文过滤操作;

如果所述数据包的数据方向为接收数据,调用所述linux系统中的linux安全模块对创建的处理任务进行响应,完成对所述数据包的报文过滤操作。

在一个示例性实施例中,调用所述linux系统中对应的处理模块对创建的处理任务进行响应,完成对所述数据包的报文过滤操作,包括:

如果所述数据包的数据方向为外发数据,调用所述linux系统中netfilter子系统对创建的处理任务进行响应,完成对所述数据包的报文过滤操作;

如果所述数据包的数据方向为接收数据,调用所述linux系统中的linux安全模块对创建的处理任务进行响应,完成对所述数据包的报文过滤操作。

在一个示例性实施例中,所述方法还包括:

获取linux系统中不允许传输的数据包的特征信息,并在预先设置的日志文件中记录所述本地不允许传输的所述数据包的特征信息。

为了达到本申请目的,本申请提供了一种linux系统中数据的处理装置,包括存储器和处理器,其中所述存储器存储有计算机程序,所述处理器通过调用所述存储器的计算机程序,以实现如下操作,包括:

在检测到linux系统中有等待传输的数据包后,获取数据包在linux系统中所需调用的进程的标识信息;

根据所述进程的标识信息,获取所述进程的数据包过滤策略;

根据所述数据包过滤策略,对所述数据包进行处理。

在一个示例性实施例中,所述处理器在调用计算机程序实现根据所述数据包过滤策略,对所述数据包进行处理的过程中,具体实现如下操作,包括:

判断所述数据包的特征信息是否符合所述数据包过滤策略;

如果所述数据包的特征符合所述数据包的过滤策略,则控制允许所述进程传输所述数据包;否则,控制所述进程不传输所述数据包;

其中,所述特征信息包括所述数据包的源地址、目的地址、源端口、目的端口和传输协议中的至少一个。

在一个示例性实施例中,所述处理器在调用计算机程序实现判断所述数据包的特征信息是否符合所述数据包过滤策略的过程中,具体实现如下操作,包括:

获取所述数据包的进程的名称和套接字;

根据所述进行的名称和套接字,创建对所述数据包进行报文过滤的处理任务;

调用所述linux系统中对应的处理模块对创建的处理任务进行响应,完成对所述数据包的报文过滤操作。

在一个示例性实施例中,所述处理器在调用计算机程序实现判断所述数据包的特征信息是否符合所述数据包过滤策略的过程中,具体实现如下操作,包括:

如果所述数据包的数据方向为外发数据,调用所述linux系统中netfilter子系统对创建的处理任务进行响应,完成对所述数据包的报文过滤操作;

如果所述数据包的数据方向为接收数据,调用所述linux系统中的linux安全模块对创建的处理任务进行响应,完成对所述数据包的报文过滤操作。

在一个示例性实施例中,所述处理器通过调用所述存储器的计算机程序,以实现如下操作,还包括:

获取linux系统中不允许传输的数据包的特征信息,并在预先设置的日志文件中记录所述本地不允许传输的所述数据包的特征信息。

本申请提供的实施例,在检测到linux系统中有等待传输的数据包后,获取数据包在linux系统中所需调用的进程的标识信息,根据预先设置的进程管理策略,判断所述进程是否有对应的数据包过滤策略,得到判断结果,根据所述数据包过滤策略,对所述数据包进行处理,实现基于进程控制数据包接收的目的,保证主机数据传输的安全,提供linux系统的网络安全性。

本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。

图1为本申请提供的linux系统中数据的处理方法的流程图;

图2为本申请提供的在linux系统基于进程的主机防火墙实现方法的流程图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1为本申请提供的linux系统中数据的处理方法的流程图。图1所示方法包括:

步骤101、在检测到linux系统中有等待传输的数据包后,获取数据包在linux系统中所需调用的进程的标识信息;

在linux系统中,在接收到数据包后,linux系统会为数据包分配对应的进程对数据包进行处理,在检测到linux系统为所述数据包分配对应的进程后,获取所述数据包所需调用的进程;

步骤102、根据所述进程的标识信息,获取所述进程的数据包过滤策略;

其中,可以根据网络安全需求配置,选择需要进行报文过滤的进程;

在本示例性实施例中,可以采集数据包的五元组信息中部分或全部信息进行数据包处理的判断参数,实现对数据包的过滤。可以建立判断参数和进程信息的对应关系,方便对数据包的过滤策略的读取和维护,例如,可以采用<判断参数,进程名>的记录方式进行信息的维护。

步骤103、根据所述数据包过滤策略,对所述数据包进行处理。

在一个示例性实施例中,所述根据所述数据包过滤策略,对所述数据包进行处理,包括:

判断所述数据包的特征信息是否符合所述数据包过滤策略;

如果所述数据包的特征符合所述数据包的过滤策略,则控制允许所述进程传输所述数据包;否则,控制所述进程不传输所述数据包;

其中,所述特征信息包括所述数据包的源地址、目的地址、源端口、目的端口和传输协议中的至少一个。

本申请提供的方法实施例,在检测到linux系统中有等待传输的数据包后,获取数据包在linux系统中所需调用的进程的标识信息,根据预先设置的进程管理策略,判断所述进程是否有对应的数据包过滤策略,得到判断结果,根据所述数据包过滤策略,对所述数据包进行处理,实现基于进程控制数据包接收的目的,保证主机数据传输的安全,提供linux系统的网络安全性。

下面对本申请提供的方法进行说明:

在一个示例性实施例中,所述判断所述数据包的特征信息是否符合所述数据包过滤策略,包括:

获取所述数据包的进程的名称和套接字;

根据所述进行的名称和套接字,创建对所述数据包进行报文过滤的处理任务;

调用所述linux系统中对应的处理模块对创建的处理任务进行响应,完成对所述数据包的报文过滤操作。

在本示例性实施例中,通过lsm(linuxsecritymodule,linux安全模块)与netfilter的结合,实现基于进程的主机防火墙,sock数据结构即存在于lsm中也存在于netfilter中,可以做为它们之间的联系的桥梁。

security_ops数据结构是lsm的操作函数集,需要替换里面的3个操作函数:

socket_post_create:进程创建完成sock后将sock对应的进程路径加入缓存;

socket_free_secutity:进程释放sock后将sock对应的进程从缓存中删除;

socket_sock_rcv_skb:数据包传递到应用层时将调用此函数。

在netfilter的nf_ip_local_out上注册一个回调函数my_netfilter_out用来对本机外发数据包进行过滤。

在一个示例性实施例中,所述方法还包括:

调用所述linux系统中对应的处理模块对创建的处理任务进行响应,完成对所述数据包的报文过滤操作,包括:

如果所述数据包的数据方向为外发数据,调用所述linux系统中netfilter子系统对创建的处理任务进行响应,完成对所述数据包的报文过滤操作;

如果所述数据包的数据方向为接收数据,调用所述linux系统中的linux安全模块对创建的处理任务进行响应,完成对所述数据包的报文过滤操作。

在本示例性实施例中,借助linux系统中已有模块的功能,实现对报文的过滤,对已有的操作系统修改少,有效控制了开发和维护成本。

在一个示例性实施例中,进程管理策略的管理可以采用如下方式,包括:

获取linux系统中不允许传输的数据包的特征信息,并在预先设置的日志文件中记录所述本地不允许传输的所述数据包的特征信息。

在本示例性实施例中,对于不允许传输的数据包,通过对该数据包的特征信息进行记录,实现对安全风险信息的收集,为后续对报文的过滤条件的设置提供数据依据。

图2为本申请提供的在linux系统基于进程的主机防火墙实现方法的流程图。如图2所示,实施过程如下:

首先是初始化过程:

1)替换security_ops数据结构中的socket_post_create、socket_free_secutity、socket_sock_rcv_skb函数分别为自定义函数my_socket_post_create、my_socket_free_secutity、my_socket_sock_rcv_skb。

2)在netfilter的nf_ip_local_out上注册回调函数my_netfilter_out。

3)应用层将组织好的策略下发到内核中。

在本实施例中,所述方法还通过一个策略管理模块进行策略的维护,该模块在内核中维护着一个策略数据库,策略的形式为:进程+五元组+权限。

主机作为客户端外发数据包的控制过程如下:

1)my_socket_post_create工作在进程上下文,可以获取到发送数据包的进程名和sock,将<sock、进程名>加入到缓存中。

2)数据包进入到my_netfilter_out函数,在skb上可以获取到sock,通过sock在缓存中查找创建该sock的进程名,在skb上也可以获取到数据包的五元组,这样就获取到了<进程名、五元组>。

3)将<进程、五元组>与策略里的进行对比,如果对比结果为拒绝则阻止网络数据包的发送并记录日志,如果对比结果为允许则允许发送。

主机作为服务器接收数据包的控制过程如下:

1)服务端创建sock完成时会调用my_socket_post_create,该函数可以获取到服务端的进程名和创建的sock,将<sock、进程名>加入到缓存中。

2)网卡收到数据包后最终会进入到my_socket_sock_rcv_skb函数,通过skb上可以获取到sock,通过sock在缓存中查找创建该sock的进程名,在skb上也可以获取到数据包的五元组,这样就获取到了<进程名、五元组>。

3)将<进程、五元组>与策略里的进行对比,如果对比结果为拒绝则阻止网络数据包的接收并记录日志,如果对比结果为允许则允许接收。

本申请提供的实施例,控制linux系统上的恶意进程进行联网操作,从而造成数据泄密的危险,通过lsm和netfilter结合,替换security_ops里的操作函数,并在netfilter的nf_ip_local_out上注册回调函数,从而达到基于进程的防火墙控制。不需要重启系统并且作为一个内核模块插入内核。

本申请提供了一种linux系统中数据的处理装置,包括存储器和处理器,其中所述存储器存储有计算机程序,所述处理器通过调用所述存储器的计算机程序,以实现如下操作,包括:

在检测到linux系统中有等待传输的数据包后,获取数据包在linux系统中所需调用的进程的标识信息;

根据所述进程的标识信息,获取所述进程的数据包过滤策略;

根据所述数据包过滤策略,对所述数据包进行处理。

在一个示例性实施例中,所述处理器在调用计算机程序实现根据所述数据包过滤策略,对所述数据包进行处理的过程中,具体实现如下操作,包括:

判断所述数据包的特征信息是否符合所述数据包过滤策略;

如果所述数据包的特征符合所述数据包的过滤策略,则控制允许所述进程传输所述数据包;否则,控制所述进程不传输所述数据包;

其中,所述特征信息包括所述数据包的源地址、目的地址、源端口、目的端口和传输协议中的至少一个。

在一个示例性实施例中,所述处理器在调用计算机程序实现判断所述数据包的特征信息是否符合所述数据包过滤策略的过程中,具体实现如下操作,包括:

获取所述数据包的进程的名称和套接字;

根据所述进行的名称和套接字,创建对所述数据包进行报文过滤的处理任务;

调用所述linux系统中对应的处理模块对创建的处理任务进行响应,完成对所述数据包的报文过滤操作。

在一个示例性实施例中,所述处理器在调用计算机程序实现判断所述数据包的特征信息是否符合所述数据包过滤策略的过程中,具体实现如下操作,包括:

如果所述数据包的数据方向为外发数据,调用所述linux系统中netfilter子系统对创建的处理任务进行响应,完成对所述数据包的报文过滤操作;

如果所述数据包的数据方向为接收数据,调用所述linux系统中的linux安全模块对创建的处理任务进行响应,完成对所述数据包的报文过滤操作。

在一个示例性实施例中,所述处理器通过调用所述存储器的计算机程序,以实现如下操作,还包括:

获取linux系统中不允许传输的数据包的特征信息,并在预先设置的日志文件中记录所述本地不允许传输的所述数据包的特征信息。

本申请提供的装置实施例,在检测到linux系统中有等待传输的数据包后,获取数据包在linux系统中所需调用的进程的标识信息,根据预先设置的进程管理策略,判断所述进程是否有对应的数据包过滤策略,得到判断结果,根据所述数据包过滤策略,对所述数据包进行处理,实现基于进程控制数据包接收的目的,保证主机数据传输的安全,提供linux系统的网络安全性。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

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