反向代理

代理服务器的一种
收藏
0有用+1
0
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。 [1]
中文名
反向代理
外文名
Reverse Proxy
本    质
代理服务器的一种

定义

播报
编辑
随着网盛嫌络技术与计算机的兵元朽普及与发展,代理服务成为网上应用较多的形式。代理服务凳墓催是指内部网络对Internet发出连接请求,需要制定代理服务将原本直接传输至Web服务器的HTTP发送至代理服务器中。换句话来说,代理服务就是网络信息的中转站。代理服务器作为浏览器与Web服务器之间的另一类服务器,配备代理服务器,浏览器无需直接至Web服务器获取网页,只需向代理服务器发出所需的请求,由代理愉套服务器传送给访问者所需的浏览器。普通的Web代理服务骗循充器仅支持内部网络的访问请求,反承促茅乎向代理服务与普通的代理方法并不存在明显冲突。如果一个代理服务器可以代理外部网络主机访问内部网络,这类代理服务模式称之为反向代理服务。因此,系统的防火墙中可以同时配备两种方式,反向代理用来服务外部网络访问,以及提供内部网络访问外部网络的能力。将反向代理功能与拒绝外部访问防火墙软件合理结合,从而构建一种既包含内部网络、也能向外部发布Web信息防火墙系统。反向代理功能可以提供全面的连接肯汽杠记录,从而提供预防、捕获信息的能力。 [2]
反向代理的工作原理是,代理服务器来接受客户端的网和才络访问连接请求,然后服务器将请求有策略的转发给网络中实际工作的业务服务器,并将从业务服务器处理的结果,返回给网络上发起连接请求的客户端。 [3]

工作方式

播报
编辑
反向代理
通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。由于外部网络上的主机并不会配置并使用这个代理服务器,普通代理服务器也被设计为在Internet上搜寻多个不确定的服务器,而不是针对Internet上多个客户机的请求访问某一个固定的服务器,因此普通的Web代理服务器不支持外部对内部网络的访问请求。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。此时代理服务器对外就表现为一个Web服务器,外部网络就可以简单把它当作一个标准的Web服务器而不需要特定的配置。不同之处在于,这个服务器没有保存任何网页的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对反向代理服务器的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。 [3]
反向代理方式与包过滤方式或普通代理方式并无冲突,因此可以在防火墙设备中同时使用这两种方式,其中反向代理用于外部网络访问内部网络时使用,正向代理或包过滤方式用于拒绝其他外部访问方式并提供内部网络对外部网络的访问能力。因此可以结合这些方式提供最佳的安全访问方式。 [3]

优点

播报
编辑
1)提高了内部服务器的安全
外部网络用户通过反向代理访向内部服务器,只能看到反向代理服务器的IP地址和端口号,内部服务器对于外部网络来说是完全不可见。而且反向代理服务器上没有保存任何的信息资源,所有的网页程序都保存在内部服务器上,对反向代理服务器的攻击并不能使真的网页信息系统受到破坏,这样就提高了内部服务器的安全性。
2)加快了对内部服务器的访问速度
在内部服务器前放置两台反向代理服务器,分别连接到教育网和公网,这样公网用户就可以直接通过公网线路访问学校服务器,从而避开了公网和教育网之间拥挤的链路。同时反向代理服务器的缓存功能也加快了用户的访问速度。 [4]
3)节约了有限的IP资源
校园网内部服务器除使用教育网地址外,也会采用公网的IP地址对外提供服务,公网分配的IP地址数目是有限的,如果每个服务器有分配-个公网地址,那是不可能的,通过反向代理技术很好的解决了IP地址不足的问题。 [4]

代理服务器

播报
编辑
如果您的内容服务器具有必须保持安全的敏感信息,如信用卡号数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。当外部客户机尝试访问内容服务器时,会将其送到代理服务器。实际内容位于内容服务器上,在防火墙内部受到安全保护。代理服务器位于防火墙外部,在外部客户机看来就像是内容服务器。 [4]
当客户机向站点提出请求时,请求将转到代理服务器。然后,代理服务器通过防火墙中的特定通路,将客户机的请求发送到内容服务器。内容服务器再通过该通道将结果回传给代理服务器。代理服务器将检索到的信息发送给客户机,好像代理服务器就是实际的内容服务器(参见图1)。如果内容服务器返回错误消息,代理服务器会先行截取该消息并更改标头中列出的任何 URL,然后再将消息发送给客户机。如此可防止外部客户机获取内部内容服务器的重定向 URL。 [4]
这样,代理服务器就在安全数据库和可能的恶意攻击之间提供了又一道屏障。与有权访问整个数据库的情况相对比,就算是侥幸攻击成功,作恶者充其量也仅限于访问单个事务中所涉及的信息。未经授权的用户无法访问到真正的内容服务器,因为防火墙通路只允许代理服务器有权进行访问。 [4]
可以配置防火墙路由器,使其只允许特定端口上的特定服务器(在本例中为其所分配端口上的代理服务器)有权通过防火墙进行访问,而不允许其他任何机器进出。 [4]
安全反向代理 当代理服务器与其他机器之间有一个或多个连接使用安全套接字层(SSL) 协议加密数据时,即会进行安全反向代理。 [4]

配置方法

播报
编辑
配置安全反向代理服务器的方法有三种: [4]
Secure client to proxy。如果未经授权的用户很少或根本没有机会访问代理服务器与内容服务器之间交换的信息,则此方案很有效。 [4]
Secure proxy to content server。如果客户机在防火墙外部而内容服务器在防火墙内部,则此方案很有效。在此方案中,代理服务器可以充当站点之间的安全通道。 [4]
Secure client to proxy and secure proxy to content server。如果需要保护服务器、代理服务器和客户机三者间所交换信息的安全,则此方案很有效。在此方案中,代理服务器既可起到站点间安全通道的作用,又可增加客户机验证的安全性。 [4]
除了 SSL 之外,代理服务器还可以使用客户机验证,这种方法要求向代理服务器提出请求的计算机提供证书(或标识表单)以核实其身份。 [4]

资源保护措施

播报
编辑
(一)反向代理服务器
反向代理
反向代理服务器对外的表现是Web服务器,其主要的技术就是地址转换。通过反向代理,客户端计算机无需任何设置就可以使用数字资源。反向代理技术中每个Web服务器现代感与反向代理服务器的某个目录。反向代理可以把服务器的目录映射在需要进行代理的服务器上。但是,这种设置只能解决用户一次访问出现的问题,无法让用户借助反向代理连续访问。因此,必须借助正规表达式检测、替换所用的链接,达到借助反向代理实现连续访问的效果。 [2]
(二)访问控制
借助反向代理技术构建Web缓存,从而提升Web站点自身的安全性及访问速度。采用反向代理设置在原服务器前端,配备较大容量的内存及高速磁带,缓存用户的请求。反向代理服务器可以访问用户的源地址,从而拒绝非法用户恶意骚扰和访问。依据实现设置的控制策略及用户表或IP地址控制参数达到合理控制的目的。访问控制模式可根据服务器控制策略、IP地址等参数掌控代理服务器和Web资源控制系统的记录。用户源地址信息可采用accept函数获取,可以借助getpeername函数获得。进行配置文件时,把拒绝IP地址全部罗列出来,在启动反向代理服务器时读入其中,随之把用户源IP地址与列表内的地址进行比较,如果相同则拒绝该用户访问。为了节约内存并提升网速,对于IP地址列表使用子网/子网掩码的结构,从而使用子网/子网掩码对源IP地址进行连续性描述。因部分服务器无法合理管理用户控制和访问数,极易出现盗用信息资源的情况。 [2]
(三)流量计算
反向代理服务器及时统计流量的功能,因内部用户可以免费运用反向代理服务器,因此,反向代理服务器可以判定访问者是否为内部用户。如果是内部用户,则无需统计其所用流量。如果并非内部用户,及时读取客户端所发出的请求信息,统计其流量作为输入量。向客户端返回结果后,累计流量看做流出量。如果一次TCP之间的连接结束,把所累积的流量量或流出量进行存盘。因CERNET可以对国内、国外流入量实施相应的计费价格,因此,反向代理服务器可以区别所用国内流量或国际流量。服务器统计的流量数据采用二进制文件进行存盘,由专门的程序观看其数据信息。 [2]
(四)设置域名解析
Web服务器应用反向代理技术时,必须设置合理的域名解析,对于外界的网站域名服务器均解析为同一个IP地址,这些地址都指向代理服务的IP地址。同时,必须设置内部的DNS,通过Web服务器区分各种服务器。 [2]

反向代理和正向代理

播报
编辑
(1)正向代理和代理服务器
正向代理即通常所说的代理,用于代表内部网络用户向Internet上的服务器(或称外部服务器,通常为Web服务器)发出连接请求,并接收响应结果,执行该代理功能的服务器称为代理服务器。使用代理服务器访问外部网络时,客户端必须在局域网设置中指明代理服务器的地址以及要代理的服务的端口号。 [5]
(2)反向代理和代理服务器
反向代理的方向与正向代理相反,指代表外部网络用户向内部服务器发出请求,即接收来自Internet上用户的连接请求,并将这些请求转发给内部网络上的服务器,然后将从内部服务器上得到的响应返回给Internet上请求连接的客户:执行反向代理服务的服务器称为反向代理服务器,反向代理服务器对外部用户表现为一个服务器。 [5]