一种应用访问方法及代理服务器与流程

文档序号:26545826发布日期:2021-09-07 23:25阅读:142来源:国知局
一种应用访问方法及代理服务器与流程

1.本发明涉及互联网技术领域,特别涉及一种应用访问方法及代理服务器。


背景技术:

2.随着交互式web应用的兴起,与web应用相关的网络安全问题也引起关注。目前,远程用户可以通过vpn来访问内网环境中的应用资源。具体地,在应用服务器中可以部署vpn服务端,为了使得远程用户能够连接上vpn服务端,通常需要在vpn服务端上配置公网ip地址,或者在应用服务器的出口设备上进行端口映射,以供用户进行访问。如此一来,无论是配置公网ip地址或者端口映射,这些信息都需要暴露给用户,应用服务器很可能因此遭受来自公网的恶意攻击。鉴于此,目前亟需一种更加安全的应用访问方法。


技术实现要素:

3.本技术的目的在于提供一种应用访问方法及代理服务器,能够在资源访问过程中保障应用服务器的安全。
4.为实现上述目的,本技术一方面提供一种应用访问方法,所述方法应用于代理服务器中,所述代理服务器部署在公网中,所述方法包括:接收客户端发来的第一访问请求,其中,所述第一访问请求中的请求域名为代理域名;将第一访问请求中的请求域名替换为所述代理域名对应的应用域名,生成第二访问请求;根据所述应用域名对应的所述ip地址,确定用于转发所述第二访问请求的访问器,其中,所述访问器与所述应用域名对应的应用服务器部署在同一个局域网中;将所述第二访问请求发送至所述访问器,以通过所述访问器将所述第二访问请求转发至所述应用服务器。
5.为实现上述目的,本技术另一方面还提供一种代理服务器,所述代理服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的应用访问方法。
6.为实现上述目的,本技术另一方面还提供一种分布式代理服务集群,所述集群包含上述的代理服务器。
7.为实现上述目的,本技术另一方面还提供应用访问传输系统,所述系统包括控制器、上述的代理服务器或上述的分布式代理服务集群、至少一应用服务器,和与所述应用服务器部署在同一局域网的访问器,其中,所述控制器下发所述应用服务器对应的租户信息至所述代理服务器或所述集群,并下发连接指令至所述访问器,所述连接指令用于指示访问器与所述代理服务器或所述集群中的一代理服务器建立隧道连接。
8.由上可见,本技术提供的技术方案,可以在公网部署代理服务器,通过访问器与应用服务器进行通信,其中访问器与应用服务器部署在同一局域网中,例如可以在同一个数据中心(internet data cent,idc)内,从而避免应用服务器的地址暴露在公网,保证应用服务器的安全。
9.在整个资源访问过程中,客户端只会通过代理域名与代理服务器进行交互,真实
的应用服务器的信息并不会暴露给客户端。此外,与应用服务器处于同一局域网内的访问器只要能够达到公网环境即可,并不需要配置公网ip地址,也不需要进行端口映射,使得访问器能够避免来自公网的攻击。此外,访问器与应用服务器之间的通信属于数据中心内部的通信,具备较高的安全性,能够进一步地避免应用服务器被恶意用户攻击。
10.在一实施中,所述代理服务器上创建有多个应用管理器,所述生成第二访问请求还包括:所述代理服务器根据所述应用域名选择对应的所述应用管理器;将所述第二访问请求转发至所述应用管理器。
11.在一实施中,所述应用管理器为代理服务器基于控制器下发的客户信息为各个客户对应创建的,其中,所述客户信息中包含有应用域名及代理域名的映射关系,所述将第一访问请求中的请求域名替换为所述代理域名对应的应用域名包含:基于所述映射关系确定出所述代理域名对应的应用域名。
12.在一实施中,每个所述应用管理器分别与不同的所述访问器建立隧道连接,并从建立连接的所述访问器上获取业务网段,所述根据所述应用域名的对应的所述ip地址,确定用于转发所述第二访问请求的访问器具体包括:所述应用管理器接收所述第二访问请求;获取所述第二访问请求中的所述应用域名对应的所述ip地址;根据所述业务网段及所述ip地址,确定所述业务网段中包含有所述ip地址的所述访问器为用于转发所述第二访问请求的访问器。
13.在一实施中,若所述业务网段中包含有所述ip地址的所述访问器为多个,则根据与所述访问器对应的应用服务器的服务状态,确定出所述用于转发所述第二访问请求的访问器。
14.在一实施中,所述获取所述第二访问请求中的所述应用域名对应的所述ip地址的方法具体包含:所述应用管理器从本地缓存中获取所述应用域名对应的所述ip地址;或者,基于所述应用域名发起dns解析请求,以从所述dns解析请求的响应信息中,获取所述ip地址。
15.在一实施中,所述每个所述应用管理器分别与不同的所述访问器建立隧道连接具体包括:所述应用管理器接收所述访问器发送的隧道建立请求,与所述访问器建立隧道连接,其中所述访问器基于控制器下发的连接指令,发出所述隧道建立请求。
16.在一实施中,所述从建立连接的所述访问器上获取业务网段具体包括:所述应用管理器基于动态路由协议学习所述访问器发布的所述业务网段。
附图说明
17.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1是本发明实施方式中应用访问系统的架构示意图;
19.图2是本发明实施方式中应用访问方法的步骤示意图;
20.图3是本发明实施方式中代理服务器的结构示意图。
具体实施方式
21.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
22.本技术提供一种应用访问方法,该方法可以应用于如图1所示的系统架构中。请参阅图1,该系统架构中可以包括客户端、部署在公网的代理服务器、控制器、dns服务器、以及部署在内网的应用服务器和访问器,其中,图示中以部署在客户内网数据中心内的应用服务器和访问器为例。
23.其中,控制器可用于对客户的管理,包括新增、变更及删除客户,具体而言,控制器可提供一客户管理平台,用于接收对客户的管理操作,例如,新增、更新及删除,相应的,控制器可根据接收到的客户管理操作,向代理服务器和对应的访问器下发控制命令,以实现对应的客户管理操作,以新增客户为例,管理人员,可通过控制器提供的客户管理平台输入新增客户的信息,包括客户id、客户局域网内的应用信息、以及应用域名与代理域名的映射关系,例如,需要为企业a的应用m1和m2提供代理服务,应用m1的应用域名为m1.a.com,那么可对应生成代理域名p1.vpn.com,并建立m1.a.com与p1.vpn.com的映射关系,同样的,应用m2的应用域名为m2.a.com,那么可对应生成代理域名p2.vpn.com,并建立m2.a.com与p2.vpn.com的映射关系,值得注意的是,基于应用域名生成代理域名的方式可包括基于随机算法、或加密算法等计算得到应用域名对应的标识符,如m1.a.com对应的标识符为p1,同时将该标识符与预设的代理标志组成对应的代理域名p1.vpn.com,其中,代理标志为预设确定的,在于标识符组成代理域名时,代理标志需以上级域名的形式存在,如此一来,可保证基于应用域名生成的代理域名的泛域名都相同,便于后续进行dns规则的配置。
24.控制器在接收到该些客户新增信息后,可向代理服务器下发客户新增指令,以指示代理服务器为该客户提供代理服务,以及下发该客户名下的应用域名与代理域名的映射关系;控制器还可向部署在该客户局域网内的访问器下发连接控制指令,以指示访问器主动与代理服务器建立连接。从而完成客户新增的操作。本领域技术人员可以理解的是,客户删除与更新可对应参照新增的操作流程,不再赘述。
25.客户端可以是用户的终端设备,用户可通过安装在客户端的浏览器向内网应用服务器发送访问请求,其中,该访问请求中的请求域名为内网应用服务器对应的代理域名,访问请求可以是基于用户直接在输入url生成的,也可以是基于代理服务器反馈的页面发起的,其中,代理服务器反馈的页面中的应用域名已被替换为对应的代理域名。
26.dns服务器可提供dns解析服务,在本技术的实施例中,可通过在dns服务器上配置域名解析规则,将代理域名对应的解析地址配置为代理服务器的ip地址,使得客户端向代理域名发出的访问请求可被代理服务器接收,例如,配置的域名解析规则可以是将泛域名包含代理标志的的域名解析为代理服务器的ip地址。
27.应用服务器可以为存储应用资源的源站服务器,运行有提供服务的应用程序,可对访问请求进行响应,本技术实施例中的应用服务器均部署在客户内网,为了保证数据安全,外网用户不能直接访问应用服务器,而需经由代理服务器对应用服务器发起访问,其中,代理服务器与应用服务器之间基于vpn隧道进行通信。
28.访问器与应用服务器部署在相同的局域网中,即与应用服务器位于同一内网,可以作为代理服务器与同一局域网中的应用服务器之间的中转设备。具体可以为具备路由功
能的网络连接设备,如路由器,较佳的,为了保证访问器的安全,本技术实施例中,访问器仅需具备可达公网的能力,无需配置有公网ip或映射端口,换言之,访问器可主动访问公网中的设备,但不接受公网设备的主动访问,基于此,可避免访问器遭受公网攻击,保证网络访问安全。值得注意的是,在同一客户局域网中,可部署有多台应用服务器,相应的,访问器可同时对接对台应用服务器。在本技术的实施例中,部署在公网的代理服务器需通过访问器与应用服务器进行数据交互,可避免直接将应用服务器的信息暴露给代理服务器,进一步加强了通信安全性。
29.当访问器接收到控制器下发的连接控制指令后,可主动向连接控制指令中指定的代理服务器发起连接建立请求,具体可以为vpn隧道建立请求,如ipsec、gre隧道建立请求,使得代理服务器与访问器之间可基于该建立好的vpn隧道进行通信。值得注意的是,由于vpn隧道是由访问器主动请求建立的,代理服务器仅需进行响应即可,因此,在本技术的实施例中,无需为访问器配置公网ip或端口映射,从而保证了访问器的安全性。
30.代理服务器可以作为vpn网关,接收客户端的各项请求,并可通过vpn网络与内网数据中心的访问器建立通信连接,以将外网用户通过客户端发送的访问请求转发至对应的应用服务器,并将应用服务器响应的数据发送至客户端。可见,代理服务器可实现外网客户端与内网应用服务器之间的数据代理。值得注意的是,在一个实施方式中,代理服务器与访问器之间建立的vpn隧道可以是基于vpn加速网络实现的,其中所使用的vpn加速网络可基于sd

wan(software

defined wide area network)技术实现。
31.在一些实际应用场景中,为了节省设备资源,一台代理服务器往往需要同时服务多个客户,在此需要下,代理服务器可以通过租户隔离技术(例如namespace技术)为不同的客户创建不同的租户空间,即为不同的客户创建对应的应用管理器,分别用于处理各个客户的访问请求。基于租户隔离技术,不同的租户空间之间的数据可以相互隔离,这样多个不同的客户便可以共用同一台代理服务器,从而满足多租户场景需求。
32.可以理解的是,在一些应用场景中,同一客户可拥有多个局域网络,例如,可拥有多个部署在不同内网的数据中心,例如在图1中,企业a可以拥有两个部署在不同局域网的数据中心,这两个数据中心内可以分别包含应用m1和应用m2。企业b可以仅拥有一个数据中心,该数据中心内部署有应用n1。相应的,代理服务器上对应创建有服务于企业a的应用管理器a,和服务于企业b的应用管理器b。
33.请参阅图1和图2,本技术一个实施方式提供的应用访问方法,可以应用于上述的代理服务器中,该方法可以包括以下多个步骤。
34.s1:接收客户端发来的第一访问请求,其中,所述第一访问请求中的请求域名为代理域名。
35.如上所述,用户通过客户端向内网应用发送的第一访问请求中,请求域名为应用域名对应的代理域名,如此一来,经由dns解析后,该第一访问请求将被发送至代理服务器,从而可被代理服务器接收。
36.s2:将第一访问请求中的请求域名替换为所述代理域名对应的应用域名,生成第二访问请求。
37.具体的,代理服务器在接收到控制器下发的应用域名与代理域名的映射关系后,可将这些信息保存在本地,当接收到第一访问请求时,可基于本地保存的记录,查询与请求
域名对应的应用域名,从而确定出用户真实想访问的应用,并将第一访问请求中的请求域名替换为对应的应用域名,以生成第二访问请求。
38.在实施中,由于客户信息可能会发生变化,包括客户的增减、信息的更改,或客户应用的增减和信息更改,代理服务器会根据控制器下发的相应指令对本地保存的应用域名与代理域名的映射关系进行适应性的变更。如果代理服务器未在本地保持的记录中查找到第一访问请求中的代理域名对应的应用域名,则表示该第一访问请求为非法请求,可直接拒绝访问。
39.s3:根据所述应用域名对应的所述ip地址,确定用于转发所述第二访问请求的访问器,其中,所述访问器与所述应用域名对应的应用服务器部署在同一个局域网中。
40.针对单一租户的场景,代理服务器在生成第二访问请求时,需进一步获取该应用域名对应的ip地址,其中代理服务器获取应用域名对应的ip地址的方式可包含从本地缓存获取应用域名对应的ip地址、基于应用域名发起dns解析请求来获取,在一实施中,代理服务器可先从本地缓存中获取该应用域名对应的ip地址;若获取失败,则基于该应用域名发起dns解析请求,以从dns解析请求的响应信息中,获取对应的ip地址,即应用域名指向的应用服务器的ip地址。可以理解的是,由于应用服务器部署在内网,且无需配置公网ip,因此,应用域名对应的ip地址一般为内网ip地址,因此为了让代理服务器可获取到对应的ip地址,可预先将应用域名及对应的ip地址保存在代理服务器本地,或者配置在dns服务器上。
41.由于代理服务器只能通过应用服务器对应的访问器与应用服务器进行通信,因此,代理服务器需先确定出应用域名对应的访问器。具体而言,如上文所述,访问器在接收到控制器下发的连接指令后,会主动与代理服务器建立隧道连接,同时,访问器可基于动态路由协议将与其对应的各应用服务器的业务网段同步给代理服务器,其中该些应用服务器与该访问器部署在相同的局域网内,动态路由协议可选自ospf(open shortest path first border gateway protocol,开放式最短路径优先协议)、rip(routing information protocol,路由信息协议)、is

is(intermediate system

to

intermediate system,中间系统到中间系统)、igrp(interior gateway routing protocol,内部网关路由协议)、eigrp(enhanced interior gateway routing protocol,增强内部网关路由协议)、bgp(border gateway protocol,边界网关协议)等,具体可以根据实际的应用场景灵活选用。如此一来,代理服务器可基于动态路由协议从各建立连接的访问器处获取各访问器对应的各应用服务器的业务网段作为各访问器的业务网段,基于此,代理服务器可根据获取到的各访问器的业务网段及应用域名对应的ip地址,确定出业务网段中包含有该ip地址的访问器,作为用于转发第二访问请求的访问器。
42.针对多租户的场景,代理服务器在接收到控制器下发的客户新增指令后,可对应创建应用管理器,用于专门服务该新增客户,同时在本地新增一对虚拟网卡接口(virtual ethernet,veth),用于代理服务器中的代理程序与应用管理器的数据交互,可以理解的是,本技术实施例中,代理服务器所实现的功能是通过运行在其上的代理程序来实现的。为了实现各租户间的数据隔离,访问器在根据控制器下发的连接指令与代理服务器建立隧道连接时,可与对应的应用管理器建立隧道连接,并基于动态路由协议将其对应的业务网段同步给该应用管理器,如此一来,应用管理器可获知与其建立隧道连接的各访问器对应的业务网段。
43.代理服务器在确认出第一访问请求中的请求域名对应的应用域名后,可根据该应用域名从本地多个应用管理器中选择出对应的应用管理器,并将生成的第二访问请求转发给该应用管理器,具体的,可通过创建的虚拟网卡接口对实现第二访问请求的转发。
44.应用管理器在接收到第二访问请求后,可先对其中的请求域名,即应用域名进行解析,以获取对应的ip地址,其中,ip地址的获取方法可参照上文实施例所述,不再赘述。同样的,当应用管理器获取到应用域名对应的ip地址后,可根据自身获取到的各访问器对应的业务网段及该ip地址,确定业务网段中包含有该ip地址的访问器为用于转发所述第二访问请求的访问器。在本实施例中,针对多租户的应用场景,可通过在代理服务器上创建对应的应用管理器来实现各租户间的数据隔离,从而保证各租户的数据安全,同时可提高设备利用率,节省设备资源。
45.在一实施中,为了保证数据的安全性和系统的高可用,客户会将相同的应用服务器部署在不同的局域网中,如此一来,可能出现相同的ip地址属于不同的访问器的业务网段,在这种情况下,可通过加入探测机制来监控各应用服务器的服务状态,例如,实时或定期通过tcping的方式来检查应用服务器的服务状态,并基于服务状态来选择用于转发第二访问请求的访问器,从而进一步保证客户端的访问请求可获得正常的响应,提升用户体验。
46.s4:将所述第二访问请求发送至所述访问器,以通过所述访问器将所述第二访问请求转发至所述应用服务器。
47.具体而言,代理服务器或应用管理器在确定出访问器后,可通过与该访问器建立的隧道转发第二访问请求至该访问器,通过该访问器将第二访问请求转发至对应的应用服务器,以及接收应用服务器反馈的响应数据,最终将接收到的响应数据发送给客户端,从而完成访问代理的过程。
48.综上所述,基于本技术实施例所提供的应用访问方法,可通过部署在公网的代理服务器和部署在内网的访问器预先建立隧道连接,用于传输客户端向内网应用发起的访问请求,不仅无需暴露应用服务器的信息给用户,而且访问器也无需配置公网ip或进行端口映射,可避免内网服务设备因地址暴露而遭受恶意攻击,保证了内网数据安全。更进一步的,针对多租户的应用场景,代理服务器可通过在本地对应创建应用管理器来处理针对不同客户的访问请求,不仅实现了租户之间的数据隔离,还保证了各租户的数据传输安全,提升设备利用率。
49.基于相同的发明构思,本技术还提供一种代理服务器,请参阅图3,所述代理服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的应用访问方法。
50.本技术还提供一种分布式代理服务集群,所述集群包含上述的代理服务器。
51.本技术还提供一种应用访问传输系统,所述系统包括控制器、上述的代理服务器或上述的分布式代理服务集群、至少一应用服务器,和与所述应用服务器部署在同一局域网的访问器,其中,所述控制器下发所述应用服务器对应的租户信息至所述代理服务器或所述集群,并下发连接指令至所述访问器,所述连接指令用于指示访问器与所述代理服务器或所述集群中的一代理服务器建立隧道连接。
52.在一个实施方式中,所述控制器在下发连接指令前,根据地理位置信息从所述集群中选择出一优选的代理服务器,并通过所述连接指令指示所述访问器与所述代理服务器
建立隧道连接。
53.在一个实施方式中,所述系统包含至少两台相同的应用服务器,所述至少两台应用服务器归属于同一租户,并部署在不同的局域网中。
54.由上可见,本技术提供的技术方案,可以在用户的客户端与存储应用资源的应用服务器之间部署代理服务器,同时,代理服务器也不会直接与应用服务器进行通信连接,而是与访问器建立通信,后续可以通过访问器对应用服务器发起资源访问。其中,访问器与应用服务器可以部署于同局域网内,访问器与应用服务器之间的通信安全比较有保障。
55.在整个资源访问过程中,客户端只会通过代理域名与代理服务器进行交互,真实的应用服务器的资源并不会暴露给客户端。此外,与应用服务器处于同一局域网的访问器只要能够达到公网环境即可,并不需要配置公网ip地址,也不需要进行端口映射,使得访问器能够避免来自公网的攻击。此外,访问器与应用服务器之间的通信属于数据中心内部的通信,具备较高的安全性,能够进一步地避免应用服务器被恶意用户攻击。
56.本说明书中的各个实施方式均采用递进的方式描述,各个实施方式之间相同相似的部分互相参见即可,每个实施方式重点说明的都是与其他实施方式的不同之处。尤其,针对代理服务器的实施方式来说,均可以参照前述方法的实施方式的介绍对照解释。
57.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
58.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1