伪装代理方法、装置、设备及介质与流程
未命名
09-09
阅读:78
评论:0

1.本技术属于网络安全技术领域,尤其涉及伪装代理方法、装置、设备及介质。
背景技术:
2.在传统的客户端-服务器模型中,客户端直接连接到服务器以获取服务。然而,随着网络规模和复杂性的增加,这种简单模型面临挑战。服务器负载过高可能导致性能下降或服务不可用。此外,服务器暴露在公共网络中,容易受到各种网络攻击。
3.为了解决上述问题,一种可行的方案是引入反向代理,然而,使用反向代理会改变访问真实服务器的客户端地址,使得服务器无法获知真正访问的客户端。服务器的审计日志中的源地址将显示为反向代理服务器的地址,导致审计结果不可靠。
4.因此,如何更为可靠地解决大流量请求下服务器负载高的问题和服务器暴露于公共网络导致的安全性不足问题,成为了业内亟需解决的技术问题。
技术实现要素:
5.本技术实施例提供了伪装代理方法、装置、设备及介质,可以可靠地解决大流量请求下服务器负载高的问题和服务器暴露于公共网络导致的安全性不足问题。
6.第一方面,本技术实施例提供了一种伪装代理方法,应用于代理端,包括:获取客户端发送的第一流量,所述第一流量的源地址为所述客户端的地址,所述第一流量的目的地址为所述代理端的地址;将所述第一流量的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量经由寻址端发送至所述服务端;其中,所述第二流量用于向所述服务端请求服务;所述第二流量的源地址用于供所述寻址端记录响应地址,所述响应地址用于修正第三流量的目的地址,所述第三流量为所述服务端响应于所述第二流量生成的数据。
7.上述方法通过代理端直接接收客户端的请求,即第一流量,使得服务端相对于客户端被隐藏,从而避免了服务器暴露在公共网络中,容易受到各种网络攻击的问题;在此基础上,通过修改第一流量的目的地址得到第二流量,使得客户端的请求能够被正常转发至服务端完成服务;进一步地,通过寻址端转发第二流量,为第二流量信息(或者说,客户端及其请求信息)的记录和转发提供了良好的基础,解决了反向代理方案中存在的客户端源地址无法记录的问题。
8.在第一方面的一种可能的实现方式中,所述将所述第二流量经寻址端发送至服务端的步骤后,还包括:获取所述寻址端转发的所述第三流量,并且:将所述第三流量发送至所述客户端;和,确定所述第三流量的解析结果为预设类型文件,则将未解析的所述第三流量缓存为所述第一流量的响应数据。
9.在第一方面的一种可能的实现方式中,所述获取客户端发送的第一流量的步骤后,还包括:确定本地缓存中存在所述第一流量的响应数据,则将所述响应数据发送至所述客户端,并生成服务记录发送至所述寻址端;其中,所述服务记录包括所述第一流量请求的源地址,且所述服务记录用于供所述寻址端记录所述客户端请求的服务。
10.上述方法通过添加缓存数据的方式,减少了服务端处理重复请求所需的计算资源,一方面降低了服务端的负载,另一方面加快了客户端得到响应数据的速度。
11.在第一方面的一种可能的实现方式中,所述将所述第一流量中的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量经寻址端发送至所述服务端的步骤包括:在源地址约束下,将所述第一流量中的目的地址修改为指定服务端的地址,得到所述第二流量,并将所述第二流量经寻址端发送至所述指定服务端;其中,所述源地址约束是指:具有相同源地址的流量被转发至同一个所述服务端。
12.上述方法通过源地址约束保证了连续会话场景下,基于同一服务端对客户端的系列请求进行响应,对于上下文存在关联的服务场景具有更好的适配性,同时,客户端与服务端对应的服务方式也能为多个服务端间的负载均衡提供良好的基础,即考虑多个服务器的负载均衡时,可以通过与其绑定的客户端数量进行快速统计,并减少绑定客户端数量多的服务端的新请求接入量,增加绑定客户端数量少的服务端的新请求接入量。
13.第二方面,本技术实施例提供了一种伪装代理方法,应用于寻址端,包括:接收代理端发送的第二流量,将所述第二流量的源地址记录为响应地址,根据所述第二流量的目的地址将所述第二流量发送至服务端;接收服务端响应于所述第二流量生成的第三流量;确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,经由所述代理端发送所述第三流量至所述客户端;确定所述第三流量的目的地址与所述响应地址相同,则经由所述代理端发送所述第三流量至所述客户端。
14.上述方法通过接收到第二流量后,记录第二流量的源地址作为响应地址,以在服务端响应第二流量生成的第三流量的目的地址有误时(例如,目的地址被设置为寻址端的地址或代理端的地址),作为客户端地址的正确校验基础,从而提供了更为可靠的代理通信方案;此外,响应地址的记录还能够提供客户端的真实地址,从而解决反向代理方案中审计结果不可靠的问题。
15.在第二方面的一种可能的实现方式中,所述代理端至少具有不同网段内的第一ip地址和第二ip地址;所述客户端具有第三ip地址,所述服务端具有第四ip地址,所述寻址端具有第五ip地址;其中,所述第一ip地址与所述第三ip地址同网段,所述第二ip地址、所述第四ip地址以及所述第五ip地址同网段。
16.在第二方面的一种可能的实现方式中,同网段内的流量基于mac地址通信,跨网段的流量基于ip地址通信。
17.上述方法通过将客户端和服务端设置在不同的网段以隔离服务端,提升了服务端
的安全性和隐蔽性,同时,通过具有至少两个网段ip的代理端实现客户端所在网段至服务端所在网段的通信,以实现可靠的代理通信功能。
18.在第二方面的一种可能的实现方式中,所述客户端的地址包括用于同网段通信的mac地址和用于跨网段通信的ip地址;所述确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,经由所述代理端发送所述第三流量至所述客户端的步骤包括:确定所述第三流量的目的地址中的mac地址与所述响应地址中的mac地址不同,则根据所述响应地址修改所述第三流量的目的地址中的mac地址后,经由所述代理端发送所述第三流量至所述客户端。
19.上述方法通过mac地址和ip地址实现跨网段的通信,服务端所在网段内,服务端至寻址端的通信基于寻址端的mac地址进行,而客户端所在网段内,代理端至寻址端的通信基于客户端的mac地址进行,因此,寻址端接收到第三流量后,第三流量中寻址端的mac地址这一信息已经达到目的,将其修改为客户端的mac地址,以便客户端所在网段内代理端至客户端的通信。
20.第三方面,本技术实施例提供了一种伪装代理方法,应用于网关端,包括:获取客户端发送的第一流量,所述第一流量的源地址为所述客户端的地址,所述第一流量的目的地址为所述代理端的地址;将所述第一流量的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量的源地址记录为响应地址;根据所述第二流量的目的地址将所述第二流量发送至服务端以请求服务;接收服务端响应于所述第二流量生成的第三流量;确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,发送所述第三流量至所述客户端;确定所述第三流量的目的地址与所述响应地址相同,则经由所述代理端发送所述第三流量至所述客户端。
21.第四方面,本技术实施例提供了一种伪装代理装置,应用于代理端,包括:获取模块,用于获取客户端发送的第一流量,所述第一流量的源地址为所述客户端的地址,所述第一流量的目的地址为所述代理端的地址;代理转发模块,用于将所述第一流量的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量经由寻址端发送至所述服务端;其中,所述第二流量用于向所述服务端请求服务;所述第二流量的源地址用于供所述寻址端记录响应地址,所述响应地址用于修正第三流量的目的地址,所述第三流量为所述服务端响应于所述第二流量生成的数据。
22.第五方面,本技术实施例提供了一种伪装代理装置,应用于寻址端,包括:寻址转发模块,用于接收代理端发送的第二流量,将所述第二流量的源地址记录为响应地址,根据所述第二流量的目的地址将所述第二流量发送至服务端;接收模块,用于接收服务端响应于所述第二流量生成的第三流量;响应模块,用于:
确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,经由所述代理端发送所述第三流量至所述客户端;确定所述第三流量的目的地址与所述响应地址相同,则经由所述代理端发送所述第三流量至所述客户端。
23.第六方面,本技术实施例提供了一种伪装代理装置,应用于网关端,包括:客户请求模块,用于获取客户端发送的第一流量,所述第一流量的源地址为所述客户端的地址,所述第一流量的目的地址为所述代理端的地址;地址修改模块,用于将所述第一流量的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量的源地址记录为响应地址;服务请求模块,用于根据所述第二流量的目的地址将所述第二流量发送至服务端以请求服务;服务接收模块,用于接收服务端响应于所述第二流量生成的第三流量;服务转发模块,用于:确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,发送所述第三流量至所述客户端;确定所述第三流量的目的地址与所述响应地址相同,则经由所述代理端发送所述第三流量至所述客户端。
24.第七方面,本技术实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一至第三方面中任一项所述的伪装代理方法。
25.第八方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一至第三方面中任一项所述的伪装代理方法。
26.第九方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一至第三方面中任一项所述的伪装代理方法。
27.可以理解的是,上述第三方面至第九方面的有益效果可以参见上述第一方面和第二方面中的相关描述,在此不再赘述。
附图说明
28.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1是本技术实施例提供的应用于代理端的伪装代理方法的流程示意图;图2是本技术实施例提供的应用于寻址端的伪装代理方法的流程示意图;图3是本技术实施例提供的应用于网关端的伪装代理方法的流程示意图;图4是本技术实施例提供的伪装代理系统的结构示意图;图5是本技术实施例提供的反向代理的数据流示意图;图6是本技术实施例提供的应用于代理端的伪装代理系统的数据流示意图;
图7是本技术实施例提供的应用于寻址端的伪装代理装置的结构示意图;图8是本技术实施例提供的应用于网关端的伪装代理装置的结构示意图;图9是本技术实施例提供的伪装代理装置的结构示意图;图10是本技术实施例提供的终端设备的结构示意图;附图标记:反向代理端501;反向代理服务端502;反向代理客户端503;第一代理端611;第二代理端612;寻址端620;第一服务端631;第二服务端632;第一客户端641;第二客户端642;获取模块701,代理转发模块702;寻址转发模块801,接收模块802,响应模块803;客户请求模块901,地址修改模块902,服务请求模块903,服务接收模块904,服务转发模块905;终端设备100,处理器1001,存储器1002,计算机程序1003。
具体实施方式
30.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
31.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
32.还应当理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
33.如在本技术说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0034]
另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0035]
在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0036]
本技术实施例提供一种伪装代理方法,如图1所示,应用于代理端,包括:步骤102,获取客户端发送的第一流量,所述第一流量的源地址为所述客户端的地址,所述第一流量的目的地址为所述代理端的地址;步骤104,将所述第一流量的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量经由寻址端发送至所述服务端;其中,所述第二流量用于向所述服务端请求服务;所述第二流量的源地址用于供
所述寻址端记录响应地址,所述响应地址用于修正第三流量的目的地址,所述第三流量为所述服务端响应于所述第二流量生成的数据。
[0037]
首先对本实施例的执行主体,即代理端进行说明。
[0038]
本实施例中,代理端的作用之一在于为客户端提供流量接口,即客户端请求服务端的服务是,将请求流量发送至代理端,由代理端对请求流量(例如,第一流量)转发至服务器,从而获得服务的响应流量(例如,第三流量)。
[0039]
然而,由于这种代理式的架构中,客户端发送的第一流量的目的地址为代理端地址,故本实施例在步骤102获取第一流量后,执行步骤104对第一流量的目的地址进行修改,使其能够被转发至服务端。
[0040]
进一步地,步骤104中,第二流量经寻址端被转发至服务器,其中寻址端可以理解为对第二流量的源地址和第三流量的目的地址进行一致化的功能模块,对于服务端而言,不论是代理端还是寻址端将第二流量发送至服务端后,一些服务端可能生成目的地址为代理端或寻址端的响应第三流量,则这种情况下第三流量将无法被正确返回至客户端,因此需要执行上述寻址端的功能。
[0041]
其中,步骤104中的修正应当理解为:若第三流量的目的地址不为响应地址,则将第三流量的目的地址修改为响应地址;若第三流量的目的地址为响应地址,则不修改第三流量;本实施例的有益效果在于:通过代理端直接接收客户端的请求,即第一流量,使得服务端相对于客户端被隐藏,从而避免了服务器暴露在公共网络中,容易受到各种网络攻击的问题;在此基础上,通过修改第一流量的目的地址得到第二流量,使得客户端的请求能够被正常转发至服务端完成服务;进一步地,通过寻址端转发第二流量,为第二流量信息(或者说,客户端及其请求信息)的记录和转发提供了良好的基础,解决了反向代理方案中存在的客户端源地址无法记录的问题。
[0042]
对应于上述应用于代理端的实施例,下面将提供一应用于寻址端的实施例,具体地:本技术实施例提供了一种伪装代理方法,如图2所示,应用于寻址端,包括:步骤202,接收代理端发送的第二流量,将所述第二流量的源地址记录为响应地址,根据所述第二流量的目的地址将所述第二流量发送至服务端;步骤204,接收服务端响应于所述第二流量生成的第三流量;步骤206,确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,经由所述代理端发送所述第三流量至所述客户端;步骤208,确定所述第三流量的目的地址与所述响应地址相同,则经由所述代理端发送所述第三流量至所述客户端。
[0043]
本实施例的执行主体寻址端可以理解为对第二流量的源地址和第三流量的目的地址进行一致化的功能模块。通过接收到第二流量后,记录第二流量的源地址作为响应地址,以在服务端响应第二流量生成的第三流量的目的地址有误时(例如,目的地址被设置为寻址端的地址或代理端的地址),作为客户端地址的正确校验基础,从而提供了更为可靠的
代理通信方案;此外,响应地址的记录还能够提供客户端的真实地址,从而解决反向代理方案中审计结果不可靠的问题。
[0044]
本实施例和上一实施例配合共同构成伪装代理系统的至少一部分;伪装代理系统中,寻址端的数量可以设置为一个,代理端的数据可以设置为多个,也就是说,一个优选的实施方式中,多个代理端的数据经同一个寻址端转发至对应的服务器,这种实施方式可以根据客户端所在的网段对应配置代理端,以实现对用户的良好响应,同时,客户端的数据经由寻址端汇总,必要的信息能够被记录,在隐藏了服务端的前提下,保证了审计数据的安全性。
[0045]
当然,在另一些可选的实施例中,寻址端和代理端可以设置为同一个硬件设备,例如可以为网关,本技术实施例同样提供了一种应用于网关的伪装代理方法,具体地:本技术实施例提供一种伪装代理方法,如图3所示,应用于网关端,包括:步骤302,获取客户端发送的第一流量,所述第一流量的源地址为所述客户端的地址,所述第一流量的目的地址为所述代理端的地址;步骤304,将所述第一流量的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量的源地址记录为响应地址;步骤306,根据所述第二流量的目的地址将所述第二流量发送至服务端以请求服务;步骤308,接收服务端响应于所述第二流量生成的第三流量;步骤310,确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,发送所述第三流量至所述客户端;步骤312,确定所述第三流量的目的地址与所述响应地址相同,则经由所述代理端发送所述第三流量至所述客户端。
[0046]
本实施例的方案目的、实施方式以及有益效果可以理解为本技术其它应用于代理端的实施例和应用于寻址端的实施例的对应内容的集合,在此不再赘述。
[0047]
下面将针对应用于代理端的伪装代理方法提供更多的实施例。
[0048]
在又一实施例中,所述将所述第二流量经寻址端发送至服务端的步骤后,还包括:获取所述寻址端转发的所述第三流量,并且:将所述第三流量发送至所述客户端;和,确定所述第三流量的解析结果为预设类型文件,则将未解析的所述第三流量缓存为所述第一流量的响应数据。
[0049]
所述获取客户端发送的第一流量的步骤后,还包括:确定本地缓存中存在所述第一流量的响应数据,则将所述响应数据发送至所述客户端,并生成服务记录发送至所述寻址端;其中,所述服务记录包括所述第一流量请求的源地址,且所述服务记录用于供所述寻址端记录所述客户端请求的服务。
[0050]
本实施例中,在代理端引入了缓存功能,考虑到代理端通常至少存在一个与客户端同网段的ip地址,则对于常见服务请求,通过设置合理的缓存机制能够有效提升服务的响应速度,减少服务端负载。
[0051]
将代理端理解为伪装代理系统中的伪装代理模块,则其具体设置可以为:
伪装代理模块采用探针形式安装于代理服务器,具有伪装代理和缓存的功能;伪装代理模块接收平台控制模块(伪装代理系统的控制平台)下发的代理规则并保存到本地。
[0052]
在接收到请求后,首先检查缓存中是否存在对应的缓存数据。如果缓存中存在对应的缓存数据,直接从缓存中获取响应并返回给客户端,跳过后续的请求转发和处理过程。如果缓存中不存在对应的缓存数据,执行正常的请求处理逻辑,根据代理规则通过dnet将请求转发给实际的目标服务器,并获取响应数据。在获得响应后,通过解析流量判断是否是http静态文件资源、ftp文件、smb文件等;如果是,在获得响应数据后,将流量进行文件还原操作以备将来的请求使用。可以根据需求设置缓存的过期时间、缓存的最大容量、缓存的清理机制等,以确保缓存的有效性和性能。
[0053]
本实施例的有益效果在于:通过添加缓存数据的方式,减少了服务端处理重复请求所需的计算资源,一方面降低了服务端的负载,另一方面加快了客户端得到响应数据的速度。
[0054]
根据上述任一应用于代理端的实施例,在又一实施例中:所述将所述第一流量中的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量经寻址端发送至所述服务端的步骤包括:在源地址约束下,将所述第一流量中的目的地址修改为指定服务端的地址,得到所述第二流量,并将所述第二流量经寻址端发送至所述指定服务端;其中,所述源地址约束是指:具有相同源地址的流量被转发至同一个所述服务端。
[0055]
在本实施例的一个可选的实施方式中,当被代理的服务有多个是相同的时候(比如5个相同的ftp服务),则可使用伪装代理的负载均衡模式。伪装代理模块根据客户端的 ip 地址进行哈希计算,将同一客户端的请求通过dnet转发分配给同一台后端服务(被代理的服务)。也就是说,所述在源地址约束下,将所述第一流量中的目的地址修改为指定服务端的地址,得到所述第二流量的步骤包括:获取所述第一流量的源地址的哈希值,并将源地址哈希值相同的第一流量的目的地址修改为相同的服务端地址;此外,目的地址修改后的所述第一流量通过dnet(dnat)接口被转发至所述服务端。
[0056]
这样可以确保来自同一客户端的请求始终由同一台服务器处理,有助于保持会话的连续性。被代理的相同服务可以是一个,也可以是多个,所以具有扩展性。
[0057]
本实施例的有益效果在于:通过源地址约束保证了连续会话场景下,基于同一服务端对客户端的系列请求进行响应,对于上下文存在关联的服务场景具有更好的适配性,同时,客户端与服务端对应的服务方式也能为多个服务端间的负载均衡提供良好的基础,即考虑多个服务器的负载均衡时,可以通过与其绑定的客户端数量进行快速统计,并减少绑定客户端数量多的服务端的新请求接入量,增加绑定客户端数量少的服务端的新请求接入量。
[0058]
下面将针对应用于寻址端的伪装代理方法提供更多的实施例。
[0059]
本技术实施例提供一种伪装代理方法,所述代理端至少具有不同网段内的第一ip地址和第二ip地址;所述客户端具有第三ip地址,所述服务端具有第四ip地址,所述寻址端具有第五ip地址;
其中,所述第一ip地址与所述第三ip地址同网段,所述第二ip地址、所述第四ip地址以及所述第五ip地址同网段。
[0060]
同网段内的流量基于mac地址通信,跨网段的流量基于ip地址通信。
[0061]
所述客户端的地址包括用于同网段通信的mac地址和用于跨网段通信的ip地址;所述确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,经由所述代理端发送所述第三流量至所述客户端的步骤包括:确定所述第三流量的目的地址中的mac地址与所述响应地址中的mac地址不同,则根据所述响应地址修改所述第三流量的目的地址中的mac地址后,经由所述代理端发送所述第三流量至所述客户端。
[0062]
类似地,将寻址端理解为伪装代理系统中的流量寻址模块,则其具体可以配置为:进行流量抓包,并记录流量的源ip地址与源mac,形成对应的键值对。然后判断是否为代理规则中的响应流量,如果是,则修改响应报文的目的mac,并重新发送流量。
[0063]
则使用目的ip为键去匹配对应mac地址值,找到mac地址值后判断mac地址是否与目的mac相同,如果不相同,则修改该流量包的mac地址值为匹配后的mac地址值,并重新计算校验和值。
[0064]
其中,基于校验和值的校验算法可以被替换为其它的用于校验的算法。
[0065]
对于同网段的流量通信,通过mac进行通信;对于跨网段的流量,通信是通过 ip地址进行的,流量默认会走网络中的网关。出来后,而由于网关只在单个网段中(为了起到隔离效果,隔离被代理的网络,保证安全和隐蔽),不知道跨网段的流量下一跳,所以需要修改mac地址让流量知道下一跳(通过修改mac地址知道让流量返回到哪台服务器)。
[0066]
也就是说,对于同网段的流量通信而言,mac地址与该网段内的设备是严格一一对应的,仅通过mac地址即可准确地完成通信,然而,a网段内的mac地址可能在b网段内并不存在对应设备,此时,若不对mac地址进行调整,则即使通信信号已经通过代理端自a网段转发至b网段,b网段中的网关也无法得知该通信信号应当发送至何处(或者说,发送至哪一个具体设备,这将导致跨网段的下一跳通信无法被执行,原因在于通信信号的mac地址在b网段内不存在对应设备)。
[0067]
本实施例的有益效果在于:通过将客户端和服务端设置在不同的网段以隔离服务端,提升了服务端的安全性和隐蔽性,同时,通过具有至少两个网段ip的代理端实现客户端所在网段至服务端所在网段的通信,以实现可靠的代理通信功能。
[0068]
通过mac地址和ip地址实现跨网段的通信,服务端所在网段内,服务端至寻址端的通信基于寻址端的mac地址进行,而客户端所在网段内,代理端至寻址端的通信基于客户端的mac地址进行,因此,寻址端接收到第三流量后,第三流量中寻址端的mac地址这一信息已经达到目的(即将第三流量通过寻址端的mac地址送达寻址端的任务已经执行完毕,寻址端的mac地址的功能已经完成),将其修改为客户端的mac地址,以便客户端所在网段内代理端至客户端的通信。
[0069]
下面将从伪装代理系统的角度出发,提供又一实施例。
[0070]
图4示出了本实施例提供的伪装代理系统,其具体包括伪装代理模块(对应于代理
端)、流量寻址模块(对应于寻址端)以及平台控制模块。
[0071]
其中,平台控制模块主要用于下载伪装代理安装包和对伪装代理模块和流量寻址模块的代理规则进行管理和控制。
[0072]
本实施例的伪装代理系统架构是从解决传统服务器-客户端模型中的问题(服务器负载过高可能导致性能下降或服务不可用的问题,和服务器暴露在公共网络中容易受到各种网络攻击的问题)的角度出发的。
[0073]
为了解决这一问题,一个可选实施方式是直接采用反向代理(如图5所示,反向代理客户端503与反向代理服务端502的全部交互均通过反向代理端501实现),然而,使用反向代理会改变访问真实服务器的客户端地址,使得服务器无法获知真正访问的客户端。
[0074]
为了进一步解决上述反向代理新引入的问题,可以选择在nginx等特定类型的服务器中设置代理头,但这一方式仅适用于使用http协议的访问,不是通用的解决方案。
[0075]
因此,考虑提供伪装代理模块(对应于代理端)、流量寻址模块(对应于寻址端)以及平台控制模块架构的伪装代理系统。
[0076]
作为示例而非限定,图6示出了本实施例伪装代理系统的架构。
[0077]
图6的示例中,伪装代理系统包括:多个伪装代理模块,即:第一代理端611;第二代理端612;一个流量寻址模块,即寻址端620;多个服务器,即第一服务端631;第二服务端632;这一伪装代理系统用于服务多个客户端,例如:第一客户端641;第二客户端642。
[0078]
下面将从任一客户端发送请求流量的角度出发对本技术方案进行更好的说明,参考图6,具体实施中,网络至少应当包括如下组件:1.客户端(示例性地,本实施例中令该客户端的ip地址为192.168.99.8)2.代理服务器(即代理端,示例性地,本实施例中代理端被设置为具有两个ip地址、且部署了伪装代理模块的设备,用以实现跨网段通信,令这两个ip地址分别为192.168.99.10和10.5.5.4)3.流量寻址网关(即部署了平台控制模块和流量寻址模块的寻址端,示例性地,令其ip地址为10.5.5.1)4.服务端(示例性地,令服务端的ip地址为10.5.5.3)现在我们来描述整个流程(即上述任一方法实施例中的伪装代理步骤流程):1.平台控制模块下发代理任务,将服务端的10.5.5.3:80端口代理到192.168.99.10:80端口上。
[0079]
2.客户端通过192.168.99.10:80访问代理服务器。
[0080]
3.代理服务器使用dnet将请求流量的目的地址改为10.5.5.3:80,并将其发送给流量寻址网关10.5.5.1。
[0081]
4.流量寻址网关中的流量寻址模块进行网络抓包,捕获到源ip为192.168.99.8,源mac地址为74-d8-3e-79-0c-b6,目的ip为10.5.5.3,目的端口为80的流量包。
[0082]
5.流量寻址模块将这条流量记录在字典中,使用192.168.99.8作为键,值为74-d8-3e-79-0c-b6。
[0083]
6.根据目的ip10.5.5.3,在服务端找到80端口。
[0084]
7.当服务端处理完请求流量后,通过80端口返回响应流量(源ip:10.5.5.3,源端口80,目的ip:192.168.99.8)。
[0085]
8.响应流量的目的地址跨网段,因此首先进入网关。
[0086]
9.流量寻址模块进行网络抓包时,捕获到源ip:10.5.5.3,源端口80,目的ip:192.168.99.8的流量包。
[0087]
10.流量寻址模块根据匹配源ip10.5.5.3和源端口80,发现符合代理规则(被代理的服务端10.5.5.3:80)。
[0088]
11.流量寻址模块使用目的ip192.168.99.8在字典中匹配对应的mac地址值74d8-3e-79-0c-b6,并判断是否与该条响应流量的目的mac地址相同。
[0089]
12.如果mac地址不相同,则修改该流量包的mac地址值为匹配后的mac地址值,并重新计算修改后流量包的校验和值。
[0090]
13.修改完成后,通过流量寻址模块将流量发送到代理服务器,代理服务器将其返回给客户端。
[0091]
14.这样完成了整个代理操作流程。
[0092]
15.同样的原理也适用于图中的其他组件:服务端(10.5.5.20)、代理服务器(192.168.99.9、10.5.5.21)和客户端(192.168.99.80)。
[0093]
可见,本实施例既能实现反向代理的负载均衡、缓存、安全性和可扩展性,又能隐藏服务端的真实ip地址,同时保证服务器能够获得客户端的真实ip地址,使得服务端的审计日志真实可靠。
[0094]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0095]
对应于上文实施例所述的伪装代理方法,图7示出了本技术实施例提供的应用于代理端的伪装代理装置的结构框图,图8示出了本技术实施例提供的应用于寻址端的伪装代理装置的结构框图,图9示出了本技术实施例提供的应用于网关端的伪装代理装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。
[0096]
参照图7,该应用于代理端的装置包括:获取模块701,用于获取客户端发送的第一流量,所述第一流量的源地址为所述客户端的地址,所述第一流量的目的地址为所述代理端的地址;代理转发模块702,用于将所述第一流量的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量经由寻址端发送至所述服务端;其中,所述第二流量用于向所述服务端请求服务;所述第二流量的源地址用于供所述寻址端记录响应地址,所述响应地址用于修正第三流量的目的地址,所述第三流量为所述服务端响应于所述第二流量生成的数据。
[0097]
在一种可选的实施方式中,该装置还包括:缓存模块,用于:获取所述寻址端转发的所述第三流量,并且:将所述第三流量发送至所述客户端;和,确定所述第三流量的解析结果为预设类型文件,则将未解析的所述第三流量缓存
为所述第一流量的响应数据。
[0098]
在一种可选的实施方式中,该装置还包括:缓存响应模块,用于:确定本地缓存中存在所述第一流量的响应数据,则将所述响应数据发送至所述客户端,并生成服务记录发送至所述寻址端;其中,所述服务记录包括所述第一流量请求的源地址,且所述服务记录用于供所述寻址端记录所述客户端请求的服务。
[0099]
在一种可选的实施方式中,代理转发模块702包括:源地址约束单元,用于在源地址约束下,将所述第一流量中的目的地址修改为指定服务端的地址,得到所述第二流量,并将所述第二流量经寻址端发送至所述指定服务端;其中,所述源地址约束是指:具有相同源地址的流量被转发至同一个所述服务端。
[0100]
参照图8,该应用于寻址端的装置包括:寻址转发模块801,用于接收代理端发送的第二流量,将所述第二流量的源地址记录为响应地址,根据所述第二流量的目的地址将所述第二流量发送至服务端;接收模块802,用于接收服务端响应于所述第二流量生成的第三流量;响应模块803,用于:确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,经由所述代理端发送所述第三流量至所述客户端;确定所述第三流量的目的地址与所述响应地址相同,则经由所述代理端发送所述第三流量至所述客户端。
[0101]
在一个可选的实施方式中,所述代理端至少具有不同网段内的第一ip地址和第二ip地址;所述客户端具有第三ip地址,所述服务端具有第四ip地址,所述寻址端具有第五ip地址;其中,所述第一ip地址与所述第三ip地址同网段,所述第二ip地址、所述第四ip地址以及所述第五ip地址同网段。
[0102]
在一个可选的实施方式中,同网段内的流量基于mac地址通信,跨网段的流量基于ip地址通信。
[0103]
在一个可选的实施方式中,所述客户端的地址包括用于同网段通信的mac地址和用于跨网段通信的ip地址;所述响应模块803包括:mac修改单元,用于确定所述第三流量的目的地址中的mac地址与所述响应地址中的mac地址不同,则根据所述响应地址修改所述第三流量的目的地址中的mac地址后,经由所述代理端发送所述第三流量至所述客户端。
[0104]
参照图9,该应用于网关端的装置包括:客户请求模块901,用于获取客户端发送的第一流量,所述第一流量的源地址为所述客户端的地址,所述第一流量的目的地址为所述代理端的地址;地址修改模块902,用于将所述第一流量的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量的源地址记录为响应地址;服务请求模块903,用于根据所述第二流量的目的地址将所述第二流量发送至服
务端以请求服务;服务接收模块904,用于接收服务端响应于所述第二流量生成的第三流量;服务转发模块905,用于:确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,发送所述第三流量至所述客户端;确定所述第三流量的目的地址与所述响应地址相同,则经由所述代理端发送所述第三流量至所述客户端。
[0105]
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
[0106]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0107]
本技术实施例还提供了一种终端设备,如图10所示,该终端设备100包括:至少一个处理器1001、存储器1002以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序1003,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
[0108]
本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
[0109]
本技术实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
[0110]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
[0111]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记
载的部分,可以参见其它实施例的相关描述。
[0112]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0113]
在本技术所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0114]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0115]
以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
技术特征:
1.一种伪装代理方法,其特征在于,应用于代理端,包括:获取客户端发送的第一流量,所述第一流量的源地址为所述客户端的地址,所述第一流量的目的地址为所述代理端的地址;将所述第一流量的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量经由寻址端发送至所述服务端;其中,所述第二流量用于向所述服务端请求服务;所述第二流量的源地址用于供所述寻址端记录响应地址,所述响应地址用于修正第三流量的目的地址,所述第三流量为所述服务端响应于所述第二流量生成的数据。2.如权利要求1所述的伪装代理方法,其特征在于,所述将所述第二流量经寻址端发送至服务端的步骤后,还包括:获取所述寻址端转发的所述第三流量,并且:将所述第三流量发送至所述客户端;和,确定所述第三流量的解析结果为预设类型文件,则将未解析的所述第三流量缓存为所述第一流量的响应数据。3.如权利要求2所述的伪装代理方法,其特征在于,所述获取客户端发送的第一流量的步骤后,还包括:确定本地缓存中存在所述第一流量的响应数据,则将所述响应数据发送至所述客户端,并生成服务记录发送至所述寻址端;其中,所述服务记录包括所述第一流量请求的源地址,且所述服务记录用于供所述寻址端记录所述客户端请求的服务。4.如权利要求1至3中任一项所述的伪装代理方法,其特征在于,所述将所述第一流量中的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量经寻址端发送至所述服务端的步骤包括:在源地址约束下,将所述第一流量中的目的地址修改为指定服务端的地址,得到所述第二流量,并将所述第二流量经寻址端发送至所述指定服务端;其中,所述源地址约束是指:具有相同源地址的流量被转发至同一个所述服务端。5.一种伪装代理方法,其特征在于,应用于寻址端,包括:接收代理端发送的第二流量,将所述第二流量的源地址记录为响应地址,根据所述第二流量的目的地址将所述第二流量发送至服务端;接收服务端响应于所述第二流量生成的第三流量;确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,经由所述代理端发送所述第三流量至客户端;确定所述第三流量的目的地址与所述响应地址相同,则经由所述代理端发送所述第三流量至客户端。6.如权利要求5所述的伪装代理方法,其特征在于,所述代理端至少具有不同网段内的第一ip地址和第二ip地址;所述客户端具有第三ip地址,所述服务端具有第四ip地址,所述寻址端具有第五ip地址;其中,所述第一ip地址与所述第三ip地址同网段,所述第二ip地址、所述第四ip地址以及所述第五ip地址同网段。
7.如权利要求6所述的伪装代理方法,其特征在于,同网段内的流量基于mac地址通信,跨网段的流量基于ip地址通信。8.如权利要求7所述的伪装代理方法,其特征在于,所述客户端的地址包括用于同网段通信的mac地址和用于跨网段通信的ip地址;所述确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,经由所述代理端发送所述第三流量至所述客户端的步骤包括:确定所述第三流量的目的地址中的mac地址与所述响应地址中的mac地址不同,则根据所述响应地址修改所述第三流量的目的地址中的mac地址后,经由所述代理端发送所述第三流量至所述客户端。9.一种伪装代理方法,其特征在于,应用于网关端,包括:获取客户端发送的第一流量,所述第一流量的源地址为所述客户端的地址,所述第一流量的目的地址为代理端的地址;将所述第一流量的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量的源地址记录为响应地址;根据所述第二流量的目的地址将所述第二流量发送至服务端以请求服务;接收服务端响应于所述第二流量生成的第三流量;确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,发送所述第三流量至所述客户端;确定所述第三流量的目的地址与所述响应地址相同,则经由所述代理端发送所述第三流量至所述客户端。10.一种伪装代理装置,其特征在于,应用于代理端,包括:获取模块,用于获取客户端发送的第一流量,所述第一流量的源地址为所述客户端的地址,所述第一流量的目的地址为所述代理端的地址;代理转发模块,用于将所述第一流量的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量经由寻址端发送至所述服务端;其中,所述第二流量用于向所述服务端请求服务;所述第二流量的源地址用于供所述寻址端记录响应地址,所述响应地址用于修正第三流量的目的地址,所述第三流量为所述服务端响应于所述第二流量生成的数据。11.一种伪装代理装置,其特征在于,应用于寻址端,包括:寻址转发模块,用于接收代理端发送的第二流量,将所述第二流量的源地址记录为响应地址,根据所述第二流量的目的地址将所述第二流量发送至服务端;接收模块,用于接收服务端响应于所述第二流量生成的第三流量;响应模块,用于:确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,经由所述代理端发送所述第三流量至客户端;确定所述第三流量的目的地址与所述响应地址相同,则经由所述代理端发送所述第三流量至客户端。12.一种伪装代理装置,其特征在于,应用于网关端,包括:客户请求模块,用于获取客户端发送的第一流量,所述第一流量的源地址为所述客户
端的地址,所述第一流量的目的地址为代理端的地址;地址修改模块,用于将所述第一流量的目的地址修改为服务端的地址,得到第二流量,并将所述第二流量的源地址记录为响应地址;服务请求模块,用于根据所述第二流量的目的地址将所述第二流量发送至服务端以请求服务;服务接收模块,用于接收服务端响应于所述第二流量生成的第三流量;服务转发模块,用于:确定所述第三流量的目的地址与所述响应地址不同,则将所述第三流量的目的地址修改为所述响应地址后,发送所述第三流量至所述客户端;确定所述第三流量的目的地址与所述响应地址相同,则经由所述代理端发送所述第三流量至所述客户端。13.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项、权利要求5至8中任一项或者权利要求9所述的方法。14.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任一项、权利要求5至8中任一项或者权利要求9所述的方法。
技术总结
本申请属于软件通信技术领域,尤其涉及伪装代理方法、装置、设备及介质。其中方法包括:获取客户端发送的第一流量,第一流量的源地址为客户端的地址,第一流量的目的地址为代理端的地址;将第一流量的目的地址修改为服务端的地址,得到第二流量,并将第二流量经由寻址端发送至服务端;本申请通过代理端直接接收客户端的请求,使得服务端被隐藏;在此基础上,通过修改第一流量的目的地址得到第二流量,使得客户端的请求能够被正常转发至服务端完成服务;进一步地,通过寻址端转发第二流量,为第二流量信息的记录和转发提供了良好的基础,解决了反向代理方案中存在的客户端源地址无法记录的问题。的问题。的问题。
技术研发人员:龚亮华 方永成
受保护的技术使用者:烽台科技(北京)有限公司
技术研发日:2023.08.07
技术公布日:2023/9/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种电蓄热装置的制作方法 下一篇:基于多重光滑度量因子的数值模拟方法及装置与流程