Linux网络访问控制方法及装置与流程

文档序号:11156572阅读:468来源:国知局
本发明涉及信息安全
技术领域
:,特别是涉及一种Linux网络访问控制方法及装置。
背景技术
::随着互联网应用的普及与发展,互联网中存在的各种不安全因素也越来越多,尤其在设置了内部网络的大型网络中,如何控制对外部网络的访问,保证内部网络的安全,是信息安全
技术领域
:的重要课题。目前,Linux下常用的进行网络访问控制的方法包括iptables和netfilter。如果Linux系统连接到互联网的服务器或代理服务器,iptables有利于在Linux系统上更好的控制IP信息包过滤和防火墙配置。iptables组件是一种工具,也称为用户空间,它使插入、修改和除去信息包过滤表中的规则变得容易;netfilter组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。现有的针对Linux系统下的网络访问控制的方法,基本上基于对iptables的二次开发和包装,基于网络五元组(协议号,源IP,源端口,目的IP和目的端口),并且针对所有使用Linux系统的程序统一控制网络访问,无法针对应用程序对Linux系统网络访问进行控制。技术实现要素:基于此,有必要针对无法针对应用程序对Linux系统网络访问进行控制的问题,提供一种Linux网络访问控制方法,所述方法包括:接收应用程序的运行命令,并获取应用程序的标识;加载预设的劫持函数库和动态库;运行所述应用程序并识别所述应用程序中的网络访问函数;根据所述操作函数和所述应用程序的标识查找所述劫持函数库,所述劫持函数库包括所述网络访问函数、所述应用程序的标识和劫持函数之间的对应关系,若查找到与所述网络访问函数和所述应用程序的标识对应的劫持函数,则运行所述劫持函数,并根据所述劫持函数的运行结果判断是否调用所述动态库中的网络访问函数。在其中一个实施例中,所述劫持函数库的绝对路径保存在后台入口文件中。在其中一个实施例中,所述根据所述劫持函数的运行结果判断是否禁止执行所述网络访问函数,包括:获取所述网络访问函数中的网络信息;根据所述网络信息,调用外部服务程序,并根据所述外部服务程序的运行结果判断是否禁止执行所述网络访问函数。在其中一个实施例中,所述调用外部服务程序,包括:查找预设的控制网络库;所述根据所述网络信息,调用外部服务程序,并根据所述外部服务程序的运行结果判断是否禁止执行所述网络访问函数,包括:根据所述网络信息,查找预设的控制网络库,若预设的控制网络库的查找结果为禁止执行所述网络访问函数,则不执行所述网络访问函数;若预设的控制网络库的查找结果为不禁止执行所述网络访问函数,则调用所述动态库中的网络访问函数。在其中一个实施例中,所述方法还包括:若预设的控制网络库的查找结果为不禁止执行所述网络访问函数且监控所述网络访问函数,则调用所述动态库中的网络访问函数,并对所述网络访问函数进行监控。本发明所提供的Linux网络访问控制方法,能够在Linux系统中针对不同的应用程序劫持所述应用程序的网络访问函数,并根据所述劫持函数的运行结果判断是否对网络访问进行控制,提高网络访问控制的灵活性。在其中一个实施例中,本发明所提供的Linux网络访问控制方法,能够通过外部服务程序对需要进行控制的应用程序进行定义及维护,提供了灵活方便的针对Linux系统网络访问的控制。本发明还提供一种Linux网络访问控制装置,包括:应用程序接收模块,用于接收应用程序的运行命令,并获取应用程序的标识;函数加载模块,用于加载预设的劫持函数库和动态库;函数识别模块,用于运行所述应用程序并识别所述应用程序中的网络访问函数;访问控制模块,用于根据所述操作函数和所述应用程序的标识查找所述劫持函数库,所述劫持函数库包括所述网络访问函数、所述应用程序的标识和劫持函数之间的对应关系,若查找到与所述网络访问函数和所述应用程序的标识对应的劫持函数,则运行所述劫持函数,并根据所述劫持函数的运行结果判断是否调用所述动态库中的网络访问函数。在其中一个实施例中,函数加载模块,用于加载预设的劫持函数库,且所述劫持函数库的绝对路径保存在后台入口文件中。在其中一个实施例中,所述访问控制模块,包括:网络信息获取单元,用于获取所述网络访问函数中的网络信息;访问控制单元,用于根据所述网络信息,调用外部服务程序,并根据所述外部服务程序的运行结果判断是否禁止执行所述网络访问函数。在其中一个实施例中,所述调用外部服务程序,包括查找预设的控制网络库;所述访问控制单元,用于根据所述网络信息,查找预设的控制网络库,若预设的控制网络库的查找结果为禁止执行所述网络访问函数,则不执行所述网络访问函数;若预设的控制网络库的查找结果为不禁止执行所述网络访问函数,则调用所述动态库中的网络访问函数。在其中一个实施例中,所述访问控制单元,还用于若预设的控制网络库的查找结果为不禁止执行所述网络访问函数且监控所述网络访问函数,则调用所述动态库中的网络访问函数,并对所述网络访问函数进行监控。本发明所提供的Linux网络访问控制装置,能够在Linux系统中针对不同的应用程序劫持所述应用程序的网络访问函数,并根据所述劫持函数的运行结果判断是否对网络访问进行控制,提高网络访问控制的灵活性。在其中一个实施例中,本发明所提供的Linux网络访问控制装置能够通过外部服务程序对需要进行控制的应用程序进行定义及维护,提供了灵活方便的针对Linux系统网络访问的控制。附图说明图1为一个实施例中的Linux网络访问控制方法的流程图;图2为一个实施例中的Linux网络访问控制方法中劫持库的位置示意图;图3为另一个实施例中的Linux网络访问控制方法的流程图;图4为又一个实施例中的Linux网络访问控制方法的流程图;图5为一个实施例中的Linux网络访问控制装置的结构图;图6为另一个实施例中的Linux网络访问控制装置的结构图。具体实施方式图1为一个实施例中的Linux网络访问控制方法的流程图,如图1所示的一个实施例中的Linux网络访问控制方法,包括:步骤S100,接收应用程序的运行命令,并获取应用程序的标识。具体的,所述应用程序的标识是指用于区分不同应用程序的记号,或区分不同应用程序的特征的标记,包括应用程序的程序类别、名称、版本号中的任意一种。步骤S200,加载预设的劫持函数库和动态库。具体的,所述预设的劫持函数库,包括open系列函数,close函数,create系列函数,read函数,write函数,socket操作系列函数(socket,listen,bind,connect,send,recieve等),kill函数等。系统首先加载所述劫持函数库,再加载动态库,即常用的C库。如图2所示,本实施例所提供的劫持库,加载后在Linux系统中位置。如图2所示,在用户应用层之下,劫持库位于动态库更加靠近用户应用层的位置,以表示劫持库中的劫持函数优先被调用,如劫持库中没有相应的劫持函数,则调用动态库中的函数。图2中,劫持库和动态库都连接到Linux底层的内核部分。不再赘述。步骤S300,运行所述应用程序并识别所述应用程序中的网络访问函数。具体的,运行所述应用程序后,对程序中的网路访问函数进行识别,当识别到网络访问函数时,即进行后续步骤S400。步骤S400,根据所述操作函数和所述应用程序的标识查找所述劫持函数库,所述劫持函数库包括所述网络访问函数、所述应用程序的标识和劫持函数之间的对应关系,若查找到与所述网络访问函数和所述应用程序的标识对应的劫持函数,则运行所述劫持函数,并根据所述劫持函数的运行结果判断是否调用所述动态库中的网络访问函数。具体的,所述劫持函数库为所述网络访问函数和所述标识与劫持函数之间的对应关系,所述劫持函数包括禁止运行所述网络访问函数。例如,当设定某个应用程序A的网络访问函数open为需要被禁止时,所述应用程序A的网络访问函数open在所述劫持函数库中,对应结果为禁止所述应用程序A的网络访问函数open。根据所述网络访问函数和所述标识查找所述劫持函数库时,当所述网络访问函数和所述标识在所述劫持函数库中,存在与劫持函数之间的对应关系时,所述应用程序的网络访问函数需要被劫持,在调用动态库中的网络访问函数的同时,运行所述应用程序和网络访问函数对应的劫持函数,并根据所述劫持函数的运行结果,判断是否对所述应用程序的网络访问函数进行控制。所述劫持函数的运行结果,还包括运行外部服务程序等,根据外部服务程序的运行结果进行判断。若所述劫持函数的运行结果为禁止执行所述网络访问函数,则不调用所述动态库中的网络访问函数;若所述劫持函数的运行结果为不禁止执行所述网络访问函数,则调用所述动态库中的网络访问函数。在其中一个实施例中,若未查找到与所述网络访问函数和所述应用程序的标识对应的劫持函数,则调用所述动态库中的网络访问函数。具体的,当所述网络访问函数和所述标识在所述劫持函数库中,不存在与劫持函数之间的对应关系时,即,在所述劫持函数库中查找不到时,运行所述动态库中的网络访问函数。本实施例所提供的Linux网络访问控制方法,能够在Linux系统中针对不同的应用程序劫持所述应用程序的网络访问函数,并根据所述劫持函数的运行结果判断是否对网络访问进行控制,提高网络访问控制的灵活性。在其中一个实施例中,所述的劫持函数库,绝对路径保存在后台入口文件中,即,保存在/etc/ld.so.preload文件中。本实施例所提供的Linux网络访问控制方法,将所述的劫持函数库保存在后台入口文件中,可以保证所述劫持函数库先于动态库添加,进一步提高针对不同应用程序的网络访问控制的效率。图3为另一个实施例中的Linux网络访问控制方法的流程图,是图2所示的方法流程中步骤S400的具体的实施例,如图3所示的网络访问控制方法,包括:步骤S410,获取所述网络访问函数中的网络信息。具体的,获取所述网络访问函数中的网络信息,包括网络源IP地址,网络目的IP地址,网络端口等信息。步骤S420,根据所述网络信息,查找预设的控制网络库,若预设的控制网络库的查找结果为禁止执行所述网络访问函数,则不执行所述网络访问函数;若预设的控制网络库的查找结果为不禁止执行所述网络访问函数,则调用所述动态库中的网络访问函数。具体的,所述预设的控制网络库,可以为白名单性质的控制网络库,也可以为黑名单性质的控制网络库,可根据实际需要选用即可。通过所述的控制网络库,可以实现针对特定的应用程序和特定的访问网络的不同组合情况,分别进行控制,如针对应用程序A进行网络访问时,禁止其访问网络1和网络2,但不禁止其访问网络3和网络4。本实施例给出是否对应用程序的网络访问函数进行控制的结果,当给出的结果为需要进行控制时,可通过调用外部程序的方式实现控制。本实施例所提供的Linux网络访问控制方法,能够针对不同的应用程序,利用外部服务程序,根据需要对所述应用程序的网络访问进行选择性的控制,提高了网络访问控制的灵活性和针对性。图4为又一个实施例中的Linux网络访问控制方法的流程图;图4是图2所示的方法流程中步骤S400的另一个具体的实施例,如图4所示的网络访问控制方法,包括:步骤S410,获取所述网络访问函数中的网络信息。具体的,获取所述网络访问函数中的网络信息,包括网络源IP地址,网络目的IP地址,网络端口等信息。步骤S420’,根据所述网络信息,查找预设的控制网络库,若预设的控制网络库的查找结果为不禁止执行所述网络访问函数且监控所述网络访问函数,则调用所述动态库中的网络访问函数,并对所述网络访问函数进行监控具体的,在通过所述的控制网络库,可以实现针对特定的应用程序和特定的访问网络的不同组合情况,分别进行控制的同时,本实施例给出对需要进行控制的网络访问函数进行控制的判断的同时,记录网络访问日志,不需要调用外部程序记录网络访问日志。本实施例所提供的Linux网络访问控制方法,能够针对不同的应用程序,利用外部服务程序,根据需要对所述应用程序的网络访问进行选择性的控制,并记录访问访问日志,提高了网络访问控制的灵活性和针对性。图5为一个实施例中的Linux网络访问控制装置的结构图,如图5所示的Linux网络访问控制装置,包括:应用程序接收模块100,用于接收应用程序的运行命令,并获取应用程序的标识;函数加载模块200,用于加载预设的劫持函数库和动态库;函数识别模块300,用于运行所述应用程序并识别所述应用程序中的网络访问函数;访问控制模块400,用于用于根据所述操作函数和所述应用程序的标识查找所述劫持函数库,所述劫持函数库包括所述网络访问函数、所述应用程序的标识和劫持函数之间的对应关系,若查找到与所述网络访问函数和所述应用程序的标识对应的劫持函数,则根据所述劫持函数的运行结果判断是否调用所述动态库中的网络访问函数;还用于若未查找到与所述网络访问函数和所述应用程序的标识对应的劫持函数,则调用所述动态库中的网络访问函数。本实施例本实施例所提供的Linux网络访问控制装置,能够在Linux系统中针对不同的应用程序劫持所述应用程序的网络访问函数,并根据所述劫持函数的运行结果判断是否对网络访问进行控制,提高网络访问控制的灵活性。图6为另一个实施例中的Linux网络访问控制装置的结构图,如图6所示的Linux网络访问控制装置,包括:网络信息获取单元410,用于获取所述网络访问函数中的网络信息,访问控制单元420,用于用于根据所述网络信息,调用外部服务程序,并根据所述外部服务程序的运行结果判断是否禁止执行所述网络访问函数;所述调用外部服务程序,包括查找预设的控制网络库;用于根据所述网络信息,查找预设的控制网络库,若预设的控制网络库的查找结果为禁止执行所述网络访问函数,则不执行所述网络访问函数;若预设的控制网络库的查找结果为不禁止执行所述网络访问函数,则调用所述动态库中的网络访问函数;还用于若预设的控制网络库的查找结果为不禁止执行所述网络访问函数且监控所述网络访问函数,则调用所述动态库中的网络访问函数,并对所述网络访问函数进行监控。本实施例所提供的Linux网络访问控制装置,能够针对不同的应用程序,利用外部服务程序,根据需要对所述应用程序的网络访问进行选择性的控制,并记录网络访问日志,提高了网络访问控制的灵活性和针对性。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1