一种匿名中间代理服务器及其通信方法与流程

文档序号:17758465发布日期:2019-05-24 21:29阅读:159来源:国知局
一种匿名中间代理服务器及其通信方法与流程

本发明涉及网络通信技术领域,特别地,涉及一种匿名中间代理服务器及其通信方法。



背景技术:

随着人们的网络安全意识日益增强,很多网站都采用加密的方式进行数据传输以确保数据在网络中传输的安全性。通用的网络安全审计产品通过镜像数据包或串接的方式,无法对这种加密数据进行监控,从而给不法分子有了可乘之机,在网络上传播违规、违法信息。

为了解决该问题,很多安全审计产品通过“中间人代理”技术来解决该问题:将用户访问目标服务器的数据发送到中间人代理服务器,中间人服务器再转发给目标服务器;目标服务器的应答数据到达中间人代理服务器后,中间人代理服务器再转发给对应的用户,在中间人负责转发的过程中,对网络数据进行篡改,达到可以审计的目的。将该技术引用到网络中可以实现对加密网站的数据分析,从而实现数据监控。但是,目前采用中间人代理时,与目标服务器通信的地址都是中间人代理服务器的地址,从而存在以下问题:

1、有些网站为了防止恶意的攻击,对来源对象的地址进行了限制,在有限时间内访问次数不能超出指定阈值;在大流量的情况下,所有用户的数据都通过中间人代理进行通信,访问同一目标服务器的源地址都为中间人的地址,从而存在服务器拒绝访问的风险,从而影响前端用户的上网体验;

2、中间人代理服务的地址会被恶意破坏者发现,攻击代理服务器,从而导致网络故障,影响用户上网。



技术实现要素:

本发明的目的在于提供一种匿名中间代理服务器及其通信方法。

本发明解决其技术问题采用的技术方案是:提供一种匿名中间代理服务器,用于客户端与服务器端之间的通信,所述客户端通过专用串接设备连接于所述服务器端,所述专用串接设备连接于所述中间代理服务器,所述专用串接设备通过配置规则将需要代理的数据包引流到所述中间代理服务器,所述中间代理服务器包括数据传输模块、数据处理模块和中间代理模块,其中,

所述数据传输模块,用于实时抓取所述专用串接设备引流过来的数据包发送给所述数据处理模块,还用于将所述数据处理模块提交的数据包转发到所述专用串接设备;

所述数据处理模块,用于根据数据包的类型和连接跟踪表对数据包进行地址转换,并将地址转换后的数据包发送到所述中间代理模块或所述数据传输模块;

所述中间代理模块,用于对数据包的通信内容进行审计,并将审计后的数据包发送到所述数据处理模块。

在本发明提供的匿名中间代理服务器中,当接收到的数据包为所述客户端发往所述服务器端的数据时,所述数据处理模块将数据包的目的地址和目的端口修改为所述中间代理模块的地址和端口后发送到所述中间代理模块;当接收到的数据包为所述服务器端发往所述客户端的数据时,所述数据处理模块根据数据包的目的地址和目的端口查找连接跟踪表,将数据包的目的ip和目的端口修改为查询到的记录中的代理地址和代理端口后发往所述中间代理模块;当接收到的数据包为所述中间代理模块发送到所述客户端的数据时,所述数据处理模块根据目的ip和目的端口查询连接跟踪表,将数据包中的源地址和源端口修改为查询到的记录中的目标地址和目标端口后发往所述数据传输模块;当接收到的数据包为所述中间代理模块发往所述服务器端的数据时,所述数据处理模块根据源地址和源端口查找连接跟踪表,将数据包中的源地址和源端口修改为查询到的记录中的用户地址和用户端口后发往所述数据传输模块。

在本发明提供的匿名中间代理服务器中,所述连接跟踪表包括多个记录,每个记录包括用户地址、用户端口、目标地址、目标端口、代理地址和代理端口。

在本发明提供的匿名中间代理服务器中,所述数据处理模块还用于在接收到数据包时,提取数据包中的源地址、源端口、目的地址和目的端口,使用源地址和源端口在连接跟踪表中进行查找,如果没有查找到,则根据该源地址和源端口在所述连接跟踪表中创建新的记录,并填写用户地址、用户端口、目标地址和目标端口。

在本发明提供的匿名中间代理服务器中,所述中间代理模块还用于在接收到数据包时,提取数据包中的源地址和源端口,根据源地址和源端口查找连接跟踪表,找到相应的记录,在记录中不包含代理地址和代理端口时,将代理地址和代理端口补充完整。

相应地,本发明还提供一种匿名中间代理服务器的通信方法,所述代理服务器用于客户端与服务器端之间的通信,所述客户端通过专用串接设备连接于所述服务器端,所述专用串接设备连接于所述中间代理服务器,所述专用串接设备通过配置规则将需要代理的数据包引流到所述中间代理服务器,包括以下步骤:

s1、由数据传输模块实时抓取所述专用串接设备引流过来的数据包发送给数据处理模块;

s2、由所述数据处理模块根据数据包的类型和连接跟踪表对数据包进行地址转换,并将地址转换后的数据包发送到所述中间代理模块;

s3、由所述中间代理模块对数据包的通信内容进行审计,并将审计后的数据包发送到所述数据处理模块;

s4、由所述数据处理模块根据数据包的类型和连接跟踪表对数据包进行地址转换,并将地址转换后的数据包发送到所述数据传输模块;

s5、由数据传输模块将所述数据处理模块提交的数据包转发到所述专用串接设备。

在本发明提供的匿名中间代理服务器的通信方法中,所述步骤s2包括:

当接收到的数据包为所述客户端发往所述服务器端的数据时,所述数据处理模块将数据包的目的地址和目的端口修改为所述中间代理模块的地址和端口后发送到所述中间代理模块;当接收到的数据包为所述服务器端发往所述客户端的数据时,所述数据处理模块根据数据包的目的地址和目的端口查找连接跟踪表,将数据包的目的ip和目的端口修改为查询到的记录中的代理地址和代理端口后发往所述中间代理模块;

所述步骤s4包括:

当接收到的数据包为所述中间代理模块发送到所述客户端的数据时,所述数据处理模块根据目的ip和目的端口查询连接跟踪表,将数据包中的源地址和源端口修改为查询到的记录中的目标地址和目标端口后发往所述数据传输模块;当接收到的数据包为所述中间代理模块发往所述服务器端的数据时,所述数据处理模块根据源地址和源端口查找连接跟踪表,将数据包中的源地址和源端口修改为查询到的记录中的用户地址和用户端口后发往所述数据传输模块。

在本发明提供的匿名中间代理服务器的通信方法中,所述连接跟踪表包括多个记录,每个记录包括用户地址、用户端口、目标地址、目标端口、代理地址和代理端口。

在本发明提供的匿名中间代理服务器的通信方法中,还包括:

所述数据处理模块在接收到数据包时,提取数据包中的源地址、源端口、目的地址和目的端口,使用源地址和源端口在连接跟踪表中进行查找,如果没有查找到,则根据该源地址和源端口在所述连接跟踪表中创建新的记录,并填写用户地址、用户端口、目标地址和目标端口。

在本发明提供的匿名中间代理服务器的通信方法中,还包括:所述中间代理模块在接收到数据包时,提取数据包中的源地址和源端口,根据源地址和源端口查找连接跟踪表,找到相应的记录,在记录中不包含代理地址和代理端口时,将代理地址和代理端口补充完整。

本发明的匿名中间代理服务器及其通信方法具有以下有益效果:本发明提供的匿名中间代理服务器,通过数据传输模块进行数据采集与传输;通过数据处理模块对数据包的地址进行转换;通过中间代理模块对数据进行审计;由此,审计后的内容通过数据包的源地址发送到服务器端,将中间代理服务器的地址进行了隐藏,解决了现有的中间人代理技术,与目标服务器通信时使用的自己的ip地址,会出现由于同一ip地址访问过频繁被拒绝访问,以及会被恶意破坏者探测到该代理服务器,从而进行网络攻击的问题。此外,通过建立连接跟踪表,数据处理模块在进行地址转换时,可以快速有效的将数据包的内容进行转换,由此,可以提高网络传输效率,避免重复劳动,提升用户体验。

附图说明

图1为本发明一实施例提供的匿名中间代理服务器的应用场景示意图;

图2为本发明一实施例提供的匿名中间代理服务器的原理图。

具体实施方式

为了使本技术领域的技术人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

以下结合附图和实施例对本发明做进一步的解释说明。

图1为本发明一实施例提供的匿名中间代理服务器的应用场景示意图;如图1所示,本发明提供的中间代理服务器10用于客户端20与服务器端30之间的通信,所述客户端20通过专用串接设备40连接于所述服务器端30,所述专用串接设备40连接于所述中间代理服务器10,所述专用串接设备40通过配置规则将需要代理的数据包引流到所述中间代理服务器10,不需要代理的流量直接转发出去,确保网络的畅通;中间人服务器10负责实现代理功能。需要说明的是,这里需要代理的数据包是指需要进行审计的数据包。

图2为本发明一实施例提供的匿名中间代理服务器的原理图。如图1和图2所示,中间代理服务器10包括数据传输模块110、数据处理模块120和中间代理模块130,其中,所述数据传输模块110用于实时抓取所述专用串接设备40引流过来的数据包发送给所述数据处理模块120,还用于将所述数据处理模块120提交的数据包转发到所述专用串接设备40;所述数据处理模块120用于根据数据包的类型和连接跟踪表对数据包进行地址转换,并将地址转换后的数据包发送到所述中间代理模块130或所述数据传输模块110;所述中间代理模块130用于对数据包的通信内容进行审计,并将审计后的数据包发送到所述数据处理模块120。

具体地,在本发明一实施例中,数据传输模块110通过需要两个物理网卡(nic)和两个虚拟网卡(tun)进行数据传输。其中,nic1连接专用串接设备40中负责客户端数据的网卡;nic2连接转串接设备40中负责服务端数据的网卡;tun1用于中间代理模块130与客户端20的数据通信;tun2用于中间代理模块130与服务器端30的数据通信。进一步地,nic1用来接收客户端20发往服务器端30的数据和发送tun1发往客户端的数据;nic2用来接收服务器端发往客户端的数据和发送tun2发往服务端的数据;tun1用来接收数据处理模块将客户端数据发往中间代理模块的数据和发送中间代理模块发往客户端的数据;tun2用来接收数据处理模块将服务器端数据发往中间代理模块的数据和发送中间代理模块发往服务器端的数据。

具体地,在本发明一实施例中,数据包中包括了目的地址、目的端口、源地址和源端口,数据处理模块120根据数据包的类型将对数据包的端口和地址进行转换,以保证数据包能够正常的到达下一节点。进一步地,当接收到的数据包为所述客户端发往所述服务器端的数据时,所述数据处理模块将数据包的目的地址和目的端口修改为所述中间代理模块的地址和端口后发送到所述中间代理模块;当接收到的数据包为所述服务器端发往所述客户端的数据时,所述数据处理模块根据数据包的目的地址和目的端口查找连接跟踪表,将数据包的目的ip和目的端口修改为查询到的记录中的代理地址和代理端口后发往所述中间代理模块;当接收到的数据包为所述中间代理模块发送到所述客户端的数据时,所述数据处理模块根据目的ip和目的端口查询连接跟踪表,将数据包中的源地址和源端口修改为查询到的记录中的目标地址和目标端口后发往所述数据传输模块;当接收到的数据包为所述中间代理模块发往所述服务器端的数据时,所述数据处理模块根据源地址和源端口查找连接跟踪表,将数据包中的源地址和源端口修改为查询到的记录中的用户地址和用户端口后发往所述数据传输模块。通过数据处理模块进行地址转换,保证了中间代理服务器发往服务器端的数据中携带的地址为数据的本身的地址,而不是中间代理服务器的地址。

进一步地,在本发明一实施例中,所述连接跟踪表包括多个记录,每个记录包括用户地址、用户端口、目标地址、目标端口、代理地址和代理端口。

进一步地,在本发明一实施例中,需要通过数据处理模块和中间代理模块来建立和维护连接跟踪表。具体地,所述数据处理模块120在接收到数据包时,提取数据包中的源地址、源端口、目的地址和目的端口,使用源地址和源端口在连接跟踪表中进行查找,如果没有查找到,则根据该源地址和源端口在所述连接跟踪表中创建新的记录,并填写用户地址、用户端口、目标地址和目标端口;如果查找到,说明为该用户建立了连接,无需再次创建。所述中间代理模块130在接收到数据包时,提取数据包中的源地址和源端口,根据源地址和源端口查找连接跟踪表,找到相应的记录,在记录中不包含代理地址和代理端口时,将代理地址和代理端口补充完整;中间代理模块在收到数据包时,首先判断数据包对应的连接跟踪表中的记录是否完整,为不完整的记录补充对应的代理地址和代理端口。通过建立连接跟踪表,数据处理模块在进行地址转换时,可以快速有效的将数据包的内容进行转换,由此,可以提高网络传输效率,避免重复劳动,提升用户体验。

本发明提供的匿名中间代理服务器,通过数据传输模块进行数据采集与传输;通过数据处理模块对数据包的地址进行转换;通过中间代理模块对数据进行审计;由此,审计后的内容通过数据包的源地址发送到服务器端,将中间代理服务器的地址进行了隐藏,解决了现有的中间人代理技术,与目标服务器通信时使用的自己的ip地址,会出现由于同一ip地址访问过频繁被拒绝访问,以及会被恶意破坏者探测到该代理服务器,从而进行网络攻击的问题。此外,通过建立连接跟踪表,数据处理模块在进行地址转换时,可以快速有效的将数据包的内容进行转换,由此,可以提高网络传输效率,避免重复劳动,提升用户体验。

本发明还提供一种匿名中间代理服务器的通信方法,所述代理服务器用于客户端与服务器端之间的通信,所述客户端通过专用串接设备连接于所述服务器端,所述专用串接设备连接于所述中间代理服务器,所述专用串接设备通过配置规则将需要代理的数据包引流到所述中间代理服务器,其特征在于,括以下步骤:

s1、由数据传输模块实时抓取所述专用串接设备引流过来的数据包发送给数据处理模块;

s2、由所述数据处理模块根据数据包的类型和连接跟踪表对数据包进行地址转换,并将地址转换后的数据包发送到所述中间代理模块;

s3、由所述中间代理模块对数据包的通信内容进行审计,并将审计后的数据包发送到所述数据处理模块;

s4、由所述数据处理模块根据数据包的类型和连接跟踪表对数据包进行地址转换,并将地址转换后的数据包发送到所述数据传输模块;

s5、由数据传输模块将所述数据处理模块提交的数据包转发到所述专用串接设备。

具体地,在本发明一实施例中,步骤s2包括:

当接收到的数据包为所述客户端发往所述服务器端的数据时,所述数据处理模块将数据包的目的地址和目的端口修改为所述中间代理模块的地址和端口后发送到所述中间代理模块;当接收到的数据包为所述服务器端发往所述客户端的数据时,所述数据处理模块根据数据包的目的地址和目的端口查找连接跟踪表,将数据包的目的ip和目的端口修改为查询到的记录中的代理地址和代理端口后发往所述中间代理模块。

具体地,在本发明一实施例中,所述步骤s4包括:

当接收到的数据包为所述中间代理模块发送到所述客户端的数据时,所述数据处理模块根据目的ip和目的端口查询连接跟踪表,将数据包中的源地址和源端口修改为查询到的记录中的目标地址和目标端口后发往所述数据传输模块;当接收到的数据包为所述中间代理模块发往所述服务器端的数据时,所述数据处理模块根据源地址和源端口查找连接跟踪表,将数据包中的源地址和源端口修改为查询到的记录中的用户地址和用户端口后发往所述数据传输模块。

具体地,在本发明一实施例中,所述连接跟踪表包括多个记录,每个记录包括用户地址、用户端口、目标地址、目标端口、代理地址和代理端口。

具体地,在本发明一实施例中,还包括:

所述数据处理模块在接收到数据包时,提取数据包中的源地址、源端口、目的地址和目的端口,使用源地址和源端口在连接跟踪表中进行查找,如果没有查找到,则根据该源地址和源端口在所述连接跟踪表中创建新的记录,并填写用户地址、用户端口、目标地址和目标端口。

具体地,在本发明一实施例中,还包括:所述中间代理模块在接收到数据包时,提取数据包中的源地址和源端口,根据源地址和源端口查找连接跟踪表,找到相应的记录,在记录中不包含代理地址和代理端口时,将代理地址和代理端口补充完整。

需要说明的是:上述实施例提供系统在实现方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的系统和方法实施例属于同一构思,其具体实现过程详见方法实施例的描述,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中。上面所提到的控制或者实现的切换功能都是通过控制器实现,控制器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。上面所提到的存储器可以是终端内置的存储设备,例如硬盘或内存。本发明系统还包括了存储器,存储器也可以是系统的外部存储设备,插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。存储器还可以既包括系统的内部存储单元,也包括外部存储设备,用于存储计算机程序以及所需的其他程序和信息。存储器还可以用于暂时地存储已经输出或者将要输出的信息。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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