一种SDP终端流量代理方法、装置、设备及存储介质与流程

文档序号:28207085发布日期:2021-12-28 19:00阅读:323来源:国知局
一种sdp终端流量代理方法、装置、设备及存储介质
技术领域
:1.本发明涉及计算机
技术领域
:,特别涉及一种sdp终端流量代理方法、装置、设备及存储介质。
背景技术
::2.目前,sdp(softwaredefinedperimeter,软件定义边界)是零信任重要的技术方向之一,其主要目的是减少应用网关端口暴露,主要逻辑是通过敲门的方式,逐步放开客户端ip到应用网关tcp(transmissioncontrolprotocol,传输控制协议)端口的访问策略(一般通过iptables控制),但现实中多个终端的流量的出口ip可能相同,就会带来端口策略放大的问题。并且,对于零信任应用网关来说,其只能获取流量经过的最后一个网络节点的ip地址,对于使用了同一个出口ip的多个终端来说,就会存在敲门放大的问题,就是说a终端通过敲门开放的端口可能被b终端利用。另外,如果终端访问的是http应用,应用网关可以通过获取流量中的设备信息进而获取到绑定用户,再根据用户的权限对http流量进行管控,从而保证非敲门通过的终端流量不能进行访问。但是针对终端的四层流量,主要分析ip层及tcp/udp(userdatagramprotocol,用户数据包协议)层,因此终端的四层流量通过应用网关时无法附带设备信息,所以无法进行管控。技术实现要素:3.有鉴于此,本发明的目的在于提供一种sdp终端流量代理方法、装置、设备及介质,能够实现对终端的四层流量的鉴权控制,解决了传统零信任sdp存在的敲门放大和四层流量无法管控的问题。其具体方案如下:第一方面,本技术公开了一种sdp终端流量代理方法,包括:通过sdp终端代理向sdp控制器发送敲门请求,并接收所述sdp控制器根据所述敲门请求访问目标网关后获取的敲门结果,然后根据所述敲门结果配置终端的路由表;通过物理网卡获取用户对目标应用的应用访问请求,并根据所述路由表将所述应用访问请求发送给http隧道客户端,以便通过所述http隧道客户端修改所述应用访问请求对应的数据包,使修改后数据包中包含本地终端对应的设备标识信息;通过所述http隧道客户端将所述修改后数据包发送给所述目标网关的http隧道服务端,以便所述目标网关根据所述修改后数据包内的所述设备标识信息对所述用户进行权限控制。4.可选的,所述通过sdp终端代理向sdp控制器发送敲门请求,并接收所述sdp控制器根据所述敲门请求访问目标网关后获取的敲门结果,包括:通过sdp终端代理按照用户数据包协议向sdp控制器发送敲门请求,以便所述sdp控制器在接收到所述敲门请求后,通知目标网关所述敲门请求对应的敲门状态以及所述敲门请求对应的访问端口策略,并通过所述sdp控制器接收所述目标网关在执行所述访问端口策略后反馈的执行结果;通过所述sdp终端代理接收所述sdp控制器转发的所述执行结果,以得到所述敲门请求对应的敲门结果。5.可选的,所述通过物理网卡获取用户对目标应用的应用访问请求,并根据所述敲门结果配置终端的路由表,包括:通过所述sdp终端代理,根据所述敲门结果配置终端的路由表,以便所述用户通过客户端软件访问应用的流量在经过所述物理网卡时转发给所述http隧道客户端。6.可选的,所述通过所述http隧道客户端修改所述应用访问请求对应的数据包,包括:获取本地终端对应的设备标识信息;所述设备标识信息包括设备唯一标识、设备型号、设别识别码中的任意一项或多项;将所述设备标识信息添加到所述应用访问请求对应的数据包内。7.可选的,所述通过所述http隧道客户端将所述修改后数据包发送给所述目标网关的http隧道服务端,包括:通过所述http隧道客户端,按照端到端的数据传输方式将所述修改后数据包发送给所述目标网关的http隧道服务端。8.可选的,所述目标网关根据所述修改后数据包内的所述设备标识信息对所述用户进行权限控制,包括:通过所述目标网关的http隧道服务端解析所述修改后数据包,并将解析后数据包发送给所述目标网关的网关代理服务,以便所述网关代理服务根据所述解析后数据包内的所述设备标识信息对所述用户进行权限控制。9.可选的,所述网关代理服务根据所述解析后数据包内的所述设备标识信息对所述用户进行权限控制,包括:通过所述网关代理服务,根据所述解析后数据包内所述设备标识信息判断所述终端绑定的用户是否具有访问所述目标应用的权限;若所述用户具有访问所述目标应用的权限,则将所述应用访问请求转发给对应的应用服务;若所述用户不具有访问所述目标应用的权限,则拒绝响应。10.第二方面,本技术公开了一种sdp终端流量代理装置,包括:敲门请求发送模块,用于通过sdp终端代理向sdp控制器发送敲门请求,并接收所述sdp控制器根据所述敲门请求访问目标网关后获取的敲门结果,然后根据所述敲门结果配置终端的路由表;数据包修改模块,用于通过物理网卡获取用户对目标应用的应用访问请求,并根据所述路由表将所述应用访问请求发送给http隧道客户端,以便通过所述http隧道客户端修改所述应用访问请求对应的数据包,使修改后数据包中包含本地终端对应的设备标识信息;数据包发送模块,用于通过所述http隧道客户端将所述修改后数据包发送给所述目标网关的http隧道服务端,以便所述目标网关根据所述修改后数据包内的所述设备标识信息对所述用户进行权限控制。11.第三方面,本技术公开了一种电子设备,包括:存储器,用于保存计算机程序;处理器,用于执行所述计算机程序,以实现前述的sdp终端流量代理方法。12.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中计算机程序被处理器执行时实现前述的sdp终端流量代理方法。13.本技术中,通过sdp终端代理向sdp控制器发送敲门请求,并接收所述sdp控制器根据所述敲门请求访问目标网关后获取的敲门结果,然后根据所述敲门结果配置终端的路由表;通过物理网卡获取用户对目标应用的应用访问请求,并根据所述路由表将所述应用访问请求发送给http隧道客户端,以便通过所述http隧道客户端修改所述应用访问请求对应的数据包,使修改后数据包中包含本地终端对应的设备标识信息;通过所述http隧道客户端将所述修改后数据包发送给所述目标网关的http隧道服务端,以便所述目标网关根据所述修改后数据包内的所述设备标识信息对所述用户进行权限控制。由上可见,本实施例中终端内的sdp终端代理在接收到敲门结果后,根据敲门结果修改终端的路由表,使得物理网卡根据上述路由表将用户发送的应用访问请求转发给终端上的http隧道客户端,并由终端上的http隧道客户端向上述应用访问请求中添加上述终端对应的设备标识信息,然后再转发给目标网关上的http隧道服务端,由此目标网关可以根据应用访问请求中携带的设备标识信息进行权限管理,实现对终端的四层流量的鉴权控制,没有权限的流量不能通过网关到达真实服务,解决了传统零信任sdp存在的敲门放大和四层流量无法管控的问题,提高了网络安全性;并且本技术网关仅开放一个http端口即可实现流量传输,相比于现有技术中,传统的零信任sdp方案中只能针对终端ip和应用端口做访问策略控制,不同应用类型由于使用不同的端口(比如数据库端口、ftp(filetransferprotocol,文件传输协议)端口等),仅开放一个流量端口,减少了攻击面。附图说明14.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。15.图1为本技术提供的一种sdp终端流量代理方法流程图;图2为本技术提供的一种具体的sdp终端流量代理系统结构图;图3为本技术提供的一种sdp终端流量代理装置结构示意图;图4为本技术提供的一种电子设备结构图。具体实施方式16.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。17.现有技术中,sdp通过敲门的方式,逐步放开客户端ip到应用网关tcp端口的访问策略,但现实中多个终端的流量的出口ip可能相同,就会带来端口策略放大的问题,并且针对四层流量无法进行鉴权管控。为克服上述技术问题,本技术提出一种sdp终端流量代理方法,能够实现对终端的四层流量的鉴权控制,解决了传统零信任sdp存在的敲门放大和四层流量无法管控的问题。18.本技术实施例公开了一种sdp终端流量代理方法,参见图1所示,该方法可以包括以下步骤:步骤s11:通过sdp终端代理向sdp控制器发送敲门请求,并接收所述sdp控制器根据所述敲门请求访问目标网关后获取的敲门结果,然后根据所述敲门结果配置终端的路由表。19.本实施例中,首先终端的sdp终端代理向sdp控制器发送敲门请求,并接收sdp控制器根据上述敲门请求访问目标网关后获取的敲门结果,然后根据上述敲门结果配置终端的路由表。敲门结果具体包含敲门和端口策略开通结果。20.本实施例中,所述通过sdp终端代理向sdp控制器发送敲门请求,并接收所述sdp控制器根据所述敲门请求访问目标网关后获取的敲门结果,可以包括:通过sdp终端代理按照用户数据包协议向sdp控制器发送敲门请求,以便所述sdp控制器在接收到所述敲门请求后,通知目标网关所述敲门请求对应的敲门状态以及所述敲门请求对应的访问端口策略,并通过所述sdp控制器接收所述目标网关在执行所述访问端口策略后反馈的执行结果;通过所述sdp终端代理接收所述sdp控制器转发的所述执行结果,以得到所述敲门请求对应的敲门结果。其中,上述敲门请求具体可以为udp(userdatagramprotocol,用户数据包协议)敲门请求,即sdp控制器在接收到敲门请求后,会通知目标网关该敲门请求对应的敲门状态以及访问端口策略,并接收所述目标网关在执行访问端口策略后反馈的执行结果,然后将该执行结果反馈给sdp终端代理,执行结果即敲门和端口策略开通结果。21.本实施例中,所述根据所述敲门结果配置终端的路由表,可以包括:通过所述sdp终端代理,根据所述敲门结果配置终端的路由表,以便所述用户通过客户端软件访问应用的流量在经过所述物理网卡时转发给所述http隧道客户端。即此处配置终端路由表用于后续物理网卡将用户对目标应用的应用访问请求转发给终端的http隧道客户端。22.本实施例中,所述sdp控制器根据所述敲门请求访问目标网关,可以包括:所述sdp控制器根据所有网关的负载情况确定出目标网关,并根据所述述敲门请求访问所述目标网关。也就是说,本实施例中,应用网关的流量分发是有sdp控制器完成的,可以将流量负载均衡到多个应用网关,从而实现应用网关的横向扩展,解决应用网关负载均衡问题。23.步骤s12:通过物理网卡获取用户对目标应用的应用访问请求,并根据所述路由表将所述应用访问请求发送给http隧道客户端,以便通过所述http隧道客户端修改所述应用访问请求对应的数据包,使修改后数据包中包含本地终端对应的设备标识信息。24.本实施例中,当用户通过软件访问目标应用时,流量会经过物理网卡,物理网卡在获取到用户对目标应用的应用访问请求后,根据路由表将上述应用访问请求发送给http隧道客户端,以便通过http隧道客户端修改应用访问请求对应的数据包,使修改后数据包中包含本地终端对应的设备标识信息,上述数据包具体为tcp数据包。即路由表配置时,sdp终端代理会根据上述http隧道客户端对应的路由信息修改终端对应的路由表,以便上述用户通过客户端软件访问应用的流量在经过物理网卡时转发给上述http隧道客户端,在由http隧道客户端将终端对应的设备标识信息添加到应用访问请求对应的数据包内。protocol,文件传输协议)端口等),仅开放一个流量端口,减少了攻击面。32.进一步,以图2所示的一种具体的sdp终端流量代理系统结构图为例,对sdp终端流量代理过程进行说明,1、用户终端上的sdp终端代理(sdpagent)向sdp控制器(sdpcontroller)发起敲门请求;2、sdp控制器通知网关(dsg)sdp终端代理的敲门状态,以及相应的tcp访问端口策略;3、网关告知sdp控制器端口策略执行结果;4、sdp控制器通知sdp终端代理敲门和端口策略开通结果;5、sdp终端代理修改用户终端的路由表(routingtable);6、用户通过客户端软件访问应用(dsg代理后的地址),流量会经过物理网卡(physicaladapter);7、物理网卡的流量通过路由表策略导流到http隧道客户端(httptunnelclient);8、http隧道客户端修改流量数据包,添加设备标识信息系等,并通过端到端的方式将流量发送到网关的http隧道服务端(httptunnelserver);9、http隧道服务端(httptunnelserver)解析收到的流量并将数据包交给网关代理服务(dsgproxy)处理;10、网关代理服务根据收到的数据包的设备标识,对终端设备绑定的用户进行鉴权,判断流量是否允许经过,如果没有权限,则拒绝响应,有权限的流量则转发到应用的真实服务。对于端口策略放大的问题,因为有设备和绑定用户的鉴权,所以没有权限的终端流量不会代理到真实服务,从而对真实应用起到保护作用。33.可见,本实施例中使用http隧道技术,通过修改终端路由表,零信任sdpagent代理并修改(附加终端设备信息)终端四层流量和http流量的数据包并通过隧道发送到应用网关,实现在流量在应用网关的访问控制和代理,解决传统零信任sdp存在的敲门放大和四层流量无法管控的问题。34.相应的,本技术实施例还公开了一种sdp终端流量代理装置,参见图3所示,该装置包括:敲门请求发送模块11,用于通过sdp终端代理向sdp控制器发送敲门请求,并接收所述sdp控制器根据所述敲门请求访问目标网关后获取的敲门结果,然后根据所述敲门结果配置终端的路由表;数据包修改模块12,用于通过物理网卡获取用户对目标应用的应用访问请求,并根据所述路由表将所述应用访问请求发送给http隧道客户端,以便通过所述http隧道客户端修改所述应用访问请求对应的数据包,使修改后数据包中包含本地终端对应的设备标识信息;数据包发送模块13,用于通过所述http隧道客户端将所述修改后数据包发送给所述目标网关的http隧道服务端,以便所述目标网关根据所述修改后数据包内的所述设备标识信息对所述用户进行权限控制。35.由上可见,本实施例中终端内的sdp终端代理在接收到敲门结果后,根据敲门结果修改终端的路由表,使得物理网卡根据上述路由表将用户发送的应用访问请求转发给终端上的http隧道客户端,并由终端上的http隧道客户端向上述应用访问请求中添加上述终端对应的设备标识信息,然后再转发给目标网关上的http隧道服务端,由此目标网关可以根据应用访问请求中携带的设备标识信息进行权限管理,实现对终端的四层流量的鉴权控制,没有权限的流量不能通过网关到达真实服务,解决了传统零信任sdp存在的敲门放大和四层流量无法管控的问题,提高了网络安全性;并且本技术网关仅开放一个http端口即可实现流量传输,相比于现有技术中,传统的零信任sdp方案中只能针对终端ip和应用端口做访问策略控制,不同应用类型由于使用不同的端口(比如数据库端口、ftp(filetransferprotocol,文件传输协议)端口等),仅开放一个流量端口,减少了攻击面。36.在一些具体实施例中,所述敲门请求发送模块11具体可以包括:敲门请求发送单元,用于通过sdp终端代理按照用户数据包协议向sdp控制器发送敲门请求,以便所述sdp控制器在接收到所述敲门请求后,通知目标网关所述敲门请求对应的敲门状态以及所述敲门请求对应的访问端口策略,并通过所述sdp控制器接收所述目标网关在执行所述访问端口策略后反馈的执行结果;敲门结果接收单元,用于通过所述sdp终端代理接收所述sdp控制器转发的所述执行结果,以得到所述敲门请求对应的敲门结果。37.在一些具体实施例中,所述敲门请求发送模块11具体可以包括:路由表修改单元,用于通过所述sdp终端代理,根据所述http隧道客户端对应的路由信息修改终端对应的路由表,以便所述用户通过客户端软件访问应用的流量在经过所述物理网卡时转发给所述http隧道客户端。38.在一些具体实施例中,所述数据包修改模块12具体可以包括:设备标识信息获取单元,用于获取本地终端对应的设备标识信息;所述设备标识信息包括设备唯一标识、设备型号、设别识别码中的任意一项或多项;设备标识信息添加单元,用于将所述设备标识信息添加到所述应用访问请求对应的数据包内。39.在一些具体实施例中,所述数据包发送模块13具体可以包括:数据包发送单元,用于通过所述http隧道客户端,按照端到端的数据传输方式将所述修改后数据包发送给所述目标网关的http隧道服务端。40.在一些具体实施例中,所述sdp终端流量代理装置具体可以包括:权限控制单元,用于通过所述目标网关的http隧道服务端解析所述修改后数据包,并将解析后数据包发送给所述目标网关的网关代理服务,以便所述网关代理服务根据所述解析后数据包内的所述设备标识信息对所述用户进行权限控制。41.在一些具体实施例中,所述权限控制单元具体可以包括:权限判断单元,用于通过所述网关代理服务,根据所述解析后数据包内所述设备标识信息判断所述终端绑定的用户是否具有访问所述目标应用的权限;请求转发单元,用于若所述用户具有访问所述目标应用的权限,则将所述应用访问请求转发给对应的应用服务;拒绝响应单元,用于若所述用户不具有访问所述目标应用的权限,则拒绝响应。42.进一步的,本技术实施例还公开了一种电子设备,参见图4所示,图中的内容不能被认为是对本技术的使用范围的任何限制。43.图4为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的sdp终端流量代理方法中的相关步骤。44.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。45.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及包括应用访问请求在内的数据223等,存储方式可以是短暂存储或者永久存储。46.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windowsserver、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的sdp终端流量代理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。47.进一步的,本技术实施例还公开了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述任一实施例公开的sdp终端流量代理方法步骤。48.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。49.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd‑rom、或
技术领域
:内所公知的任意其它形式的存储介质中。50.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。51.以上对本发明所提供的一种sdp终端流量代理方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1