透明代理技术简述


一、什么是代理服务器? 

    所谓代理服务器是指代表内部私有网中的客户连接互联网www资源的外部服务器的程序。客户与代理服务器对话,它们接收客户请求,然后连接真实的服务器,请求得到数据并将响应数据返回给客户。代理服务器发挥了中间转接作用。 

    在代理方式下,私有网络的数据包从来不能直接进入互联网,而是需要经过代理的处理。同样,外部网的数据也不能直接进入私有网,而是要经过代理处理以后才能到达私有网。

图一 代理服务

    在代理方式下,内部网络中电脑发送的IP通信包,包括IP包头和TCP包头,都将被代理服务器丢弃,不能到达公网。代理服务器只把电脑发送IP包中除去IP包头和TCP包头后的实际有效数据取出,转发到公网上网站服务器。代理服务器甚至可能中途篡改内部电脑发送到公网的数据。

    同样,在代理方式下,公网服务器上发回内部电脑的IP包,IP包头和TCP包头,都被代理服务器丢弃。代理服务器只把实际有效的数据取出,转发到内部电脑。代理服务器甚至也可能中途篡改公网服务器发送给内部电脑的数据。

    代理服务器,是属于应用层的通信过程。IP路由,则是网络层的通信过程。

    正因为代理服务器只转发实际有效数据、不转发IP包头和TCP包头,在IP报头和TCP包头中的信息,就不能被通信双方接收,所以某些特殊的通信过程,就无法通过代理服务器实现。但路由IP通信,IP包头和TCP包头,都会被转发,对通信就几乎没有任何限制。

    代理服务器都在一个固定的端口提供服务。每一种应用通信,可能都使用不同的代理服务端口。使用代理服务器时,每个用户需要在客户端程序中指明要使用代理服务器的IP地址和代理端口。

    原则上每一个应用程序,需要和公网通信,都需要指定使用的代理服务器属性。但多个应用程序,可以共用同样的代理服务器设置参数,如同一个注册表参数、同一个配置文件。

    使用代理服务器时,内部电脑上的应用程序,还必须支持代理通信。应用程序不支持代理通信时,即使存在代理服务器,也不能和公网通信。

    所以,使用代理服务器有2大缺点。一是需要设置代理服务器参数,增加使用负担。二是对应用程序有要求,必须支持代理服务器通信方式。

二、透明代理

    透明代理技术,是为了克服上面所讲普通代理服务技术的2大缺点,而开发的一种增强代理服务技术。

    透明代理技术中,透明有2个含义。一是内部电脑上的应用程序不需要设置代理服务器IP地址和代理服务端口参数。二是对应用程序无限制,不需要硬性要求应用程序一定要支持代理通信方式,应用程序只需要按照标准的TCP/IP标准通信即可。

    实际上就是,内部电脑完全是按照IP路由通信方式通信,和应用无关,对应用透明。普通代理服务技术,则和应用有关,对应用不透明。

    但实际通信过程的实现,透明代理服务器还是只把内部电脑发送的IP包中的实际有效数据取出来,转发到公网服务器,IP包头和TCP包头都被丢弃。公网服务器发回内部电脑的IP包,也是由透明代理服务器把实际有效数据取出,转发到内部电脑,IP包头和TCP包头也都被丢弃。这一工作过程,又和普通代理服务技术相同,所以称这种通信方式为透明代理。

    实际举例。假设A为内部网络客户机,B为外部网络服务器,C为透明代理服务器。当A对B有连接请求时,TCP连接请求被透明代理服务器C截取。那么C就首先冒充B,和A之间建立起连接。但A此时并不知道实际是C冒充B在和A通信。C然后识别出A要去访问B,C再和目标B去建立连接。由此通过C的中介作用,建立起A和目标B之间的数据传输途径。A发送到B的数据,实际都是发送到C,再由C转发到B。反之,B发送到A的数据,实际都是发送到C,再由C转发到A。

    从用户的角度看,A和B的连接是直接的,而实际上A 是通过C和B建立连接的。整个过程都是在通信底层实现的,客户机A根本不知道中间有个C的存在,对客户机A就表现出透明性来。

图二 透明代理服务

    既然A和B之间的数据交互,都是由中间的C在传递,C都知道传递的数据,C当然可以任意控制哪些数据才能传递,哪些数据不能传递。甚至C在中间篡改数据,A和B两边都不会知道数据被篡改。

    SIPFilter产品,正是利用透明代理的此项功能,来达到通信数据分析、记录、过滤和修改的功能,从而满足上网行为管理的实际需求。现在国际上先进的过滤产品,都是基于透明代理技术来实现通信数据过滤。

    但透明代理和普通代理一样,只转发实际有效数据,双方通信的IP包头和TCP包头都会被丢弃,所以某些在IP包头或TCP包头中附加信息的通信应用,就不能正常进行。这种通信应用,就需要对SIPFilter系统进行设置,让这种通信,不经过透明代理,直接IP路由转发。


版权所有:深圳市飞沃软件有限公司    

电话:0755-25849097,邮件:webmaster@feware.com