论文部分内容阅读
中图分类号:TP3文献标识码:A文章编号:1671-7597(2010)1120176-03
1 总述
信息科技的迅速发展,Internet已成为全球重要的信息传播工具。据不完全统计,Internet现在遍及200多个国家,容纳近80万个网络,提供了包括1000多个大型联网图书馆,800个联网的学术文献库,20000种网上杂志,9000种网上新闻报纸,5000多万个Web网站在内的多种服务,总共近1000万个信息源为世界各地的网民提供大量信息资源交流和共享的空间。安全是当今IT相关头条新闻的一个重要话题。在计算机网络日益普及的今天,计算机安全不但要求防治计算机病毒,提高抵抗黑客非法入侵的能力,还要提高对远程数据传输的保密性,避免在传输途中遭受非法窃取。因此确保Web服务器的安全,对于减少入侵破坏而引起的数据窃取或丢失而言是至关重要的。
Web赖以生成的环境包括计算机硬件、操作系统、计算机网络、许多的网络服务和应用,所有这些都存在着安全隐患,最终威胁到Web的安全。Web的安全体系结构非常复杂主要包括以下几个方面:
1)客户端软件的安全运行浏览器的计算机设备及其操作系统的安全(主机系统安全)
2)客户端的局域网(LAN)
3)服务器端的局域网(LAN)
4)运行服务器的计算机设备及操作系统的安全(主机系统的安全)
5)服务器的运行环境
6)服务器硬件设备的安全
7)服务器上的Web服务器软件
在分析Web服务器的安全性时,一定要考虑到所有这些方面,因为它们是相互联系的,每个方面都会影响到Web服务器的安全性,它们中安全性最差的决定了服务器的安全级别。由于篇幅的限制不能够详细地讨论所有影响Web安全的因素。考虑到影响Web安全的最直接的因素,下面主要讨论Web服务器软件及支撑服务器运行的操作系统的安全。
2 代理服务器和反向代理技术
2.1 代理服务器
代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,是直接联系到目的站点服务器,然后由目的站点服务器把信息传送回来。代理服务器是介于浏览器和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。
代理服务器是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层,从而起到防火墙的作用。鉴于上述原因,代理服务器大多被用来连接INTERNET(国际互联网)和INTRANET(局域网)。在国内,所谓中国多媒体公众信息网和教育网都是独立的大型国家级局域网,是与国际互联网隔绝的。出于各种需要,某些集团或个人在两网之间开设了代理服务器,如果我们知道这些代理服务器的地址,就可以利用它到达国外网站。
2.2 反向代理技术
代理服务器是使用非常普遍的一种将局域网主机联入互联网的一种方式,使用代理上网可以节约紧缺的IP地址资源而且可以阻断外部主机对内部主机的访问,使内部网主机免受外部网主机的攻击。但是如果想让互联网上的主机访问内部网的主机资源(例如Web站点),又想使内部网主机免受外部网主机攻击,一般的代理服务是不能实现的,这就需要使用反向代理来实现。如图表1所示,反向代理也就是通常所说的Web服务器加速,它是一种通过在繁忙的Web服务器和Internet之间增加一个高速的Web缓中服务器(即Web反向代理服务器)来降低实际的Web服务器的负载。
2.3 反向代理的应用
反向代理的方式主要是为了缓解繁忙服务器的负担,将Cache部署在服务器前面,将自己的内容与服务器保持同步,当收到用户的请求时,直接用Cache中的内容进行回复,从而减轻网络服务器的负担。
反向代理设备提高了前端Web服务器处理客户连接的能力,为电子商务、后台生成的HTML新闻公布、软件下载等提供了快速的服务。这种部署方式经常用于静态Web内容占很大比例的环境中。大型ISP为了加速网络的响应都会架设大量的前置高速缓冲服务器(forward proxy cache server),但是,对于无法识别内容的缓存集群来说,所有的缓存服务器节点都必须保存整个被访网络的全部内容(理论上,所有的网络中的站点都被缓存过)。
反向代理负载均衡能以软件方式来实现,如Apache mod_proxy、ISA proxy等,也可以在高速缓存器、负载均衡器等硬件设备上实现,例如硬件解决方案:基于软件技术的反向代理负载均衡可以将优化的负载均衡策略和代理服务器的高速缓存技术结合在一起,提升静态网页的访问速度,提供有益的性能。
由于网络外部用户不能直接访问真实的服务器,同时也就具备额外的安全性。其缺点主要表现为反向代理是工作在OSI参考模型第七层(应用层),所以就必须为每一种应用服务专门开发一个反向代理服务器。以硬件技术为主的解决方案多数将各种应用平台集成到一台或多台设备中,在功能强大的同时价格也相对较高。以思科提供的Cisco缓存方案为例,WCCP(Web缓存通讯协议)是构成缓存方案的核心,WCCP2被承载与Cisco Cache Engine500系列之上。
2.4 反向代理的工作流程
如果内容服务器具有必须保持安全的敏感信息,如信用卡数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。当外部客户机尝试访问内容服务器时,会将其送到代理服务器。实际内容位于内容服务器上,在防火墙内部受到安全保护。代理服务器位于防火墙外部,在客户机看来就像是内容服务器。
当客户机向站点提出请求时,请求将转到代理服务器。然后,代理服务器通过防火墙中的特定通路,将客户机的请求发送到内容服务器。内容服务器再通过该通道将结果回传给代理服务器。代理服务器将检索到的信息发送给客户机,好像代理服务器就是实际的内容服务器。如果内容服务器返回错误消息,代理服务器会先行截取该消息并更改标头中列出的任何URL,然后再将消息发送给客户机。如此可防止外部客户机获取内部内容服务器的重定向URL。
这样,代理服务器就在安全数据库和可能的恶意攻击之间提供了又一道屏障。与有权访问整个数据库的情况相对比,就算是侥幸攻击成功,作恶者充其量也仅限于访问单个事务中所涉及的信息。未经授权的用户无法访问到真正的内容服务器,因为防火墙通路只允许代理服务器有权进行访问(如图表1)。
图表1
3 反向代理的配置
3.1 反向代理的实现
反向代理是访问控制系统最核心的部分,其核心技术就是地址转换。通过它可以保证使用者对客户端计算机不进行任何设置的情况下就使用访问控制系统。从外观看来,也就是从普通用户看来,反向代理就像普通的Web服务器一样。而反向代理所代理的每一个Web服务器都好像是反向代理服务器中的一个目录。例如反向代理服务器本身的URL是http://reverse-proxy,它可以代理清华主页服务器(http://www.tsinghua.edu.cn/index.
Html),普通的用户想通过反向代理服务器来访问清华主页服务器就只需要访问http://reverse-proxy/www.tsinghua.edu.cn/index.html就行了。
在反向代理中,等于把反向代理服务器中的目录映射到其它需要被代理的服务器上。这样做只能解决用户的一次访问问题,不能做到让用户通过反向代理连续访问。因为被代理的服务器上的信息是未知的,对于HTTP协议来讲,很有可能出现绝对地址或者绝对链接,这样的话,普通用户的下一次访问将会跳过反向代理而直接访问真实的服务器。这是我们不希望看到的。因此,必须对服务器返回给用户的信息进行过滤,将所有的绝对URL更改成为通过反向代理的相对URL。为此,我们使用了正则表达式对所有的链接进行检测、替换。于是就实现了通过反向代理连续访问的功能。
当用户的请求到达反向代理服务器之后,反向代理通过一定的规则将URL中的目录信息解析成服务器以及端口的信息,从而进行socket链接,即反向代理服务器模拟一个客户端向真正的Web服务器发出http请求。当得到回应信息的时候,通过HTTP头中的Content-Type和文件的扩展名来判断得到的信息的类别。若是非HTML信息(如jpg,gif,zip等),则将其原样照发还给用户,若是HTML(html,htm,shtml等),则用先用正则表达式建立字符串识别自动机,查找html文本中所有的链接信息。
3.2 使用Squid配置反向代理
3.2.1 Squid反向代理单个后台WEB服务器
如果WEB服务器和反向代理服务器是两台单独的机器(一般的反向代理应该有两块网卡分别连接了内外部网络)。那么,应该修改下面的内容来设置反向代理服务。
http_port 80 # squid 监听的端口
httpd_accel_host 172.16.250.250 # 内部WEB服务器的IP地址
httpd_accel_port 80 # WEB服务器的IP地址
httpd_accel_single_host on # 转发为缓冲的请求到一台单独的机器
httpd_accel_with_proxy on #
httpd_accel_uses_host_header off
如果WEB服务器和反向代理服务器是同一台机器。那么,应该设置WEB服务器的监听端口为非80端口(比如:81端口)。要修改的内容如下:
http_port 80 # squid监听的端口
httpd_accel_host localhost # 内部WEB服务器的IP地址
httpd_accel_port 81 # WEB服务器的IP地址
httpd_accel_single_host on # 转发为缓冲的请求到一台单独的机器
httpd_accel_with_proxy on #
httpd_accel_uses_host_header off
下面解释一下配置指令。
http_port 80
选项 http_port 指定squid监听HTTP请求的端口,一般都设置成80端口,这样使用户感觉不到反向代理的存在,就像访问真正的WEB服务器一样。
httpd_accel_host 172.16.250.250 和 httpd_accel_port 80
选项httpd_accel_host 和 httpd_accel_port 指定WEB服务器的IP地址和端口号,可以根据自己的WEB服务器的实际情况而定。
httpd_accel_single_host on
选项httpd_accel_single_host 为on 时,squid被设置成仅对单一的web服务器作反向代理。不考虑HTTP头信息,Squid转发所有的未被缓冲的页面请求到这个web服务器。如果squid需要做多个web服务器反向代理,必须将此选项设置为off,并且使用转向器或者DNS去映射请求到合适的后台WEB服务器。
httpd_accel_with_proxy on
如果希望squid既作反向代理服务器又作本地机器的上网代理,要将httpd_accel_with_proxy 改为 on,默认情况下是off
httpd_accel_uses_host_header off
在HTTP协议1.1中,HTTP请求包括一个主机头信息,指定URL的主机名或者主机的IP地址。这个选项可以用来完成多个后台WEB服务器的反向代理功能。
3.2.2 设置安全反向代理服务器
设置安全反向代理服务器需要具备数字证书、证书授权机构和验证方面的知识。
设置安全反向代理服务器大体上与设置非安全反向代理服务器相同。唯一的区别是需要指定HTTPS作为要加密文件的协议。
如何根据所选择的配置方案来设置安全反向代理服务器呢?假定您有一个称为http.site.com的Web服务器,并且您想要设置一个称为proxy.site.com的安全反向代理服务器:
Secure Client to Proxy
1)访问 Server Manager,然后单击 "URLs" 选项卡。
2)单击 "Create Mapping" 链接。将显示 "Create Mapping" 页面。
3)在出现的页面中,采用以下方式设置正则映射和反向映射:
Regular mapping:
Source prefix: https://proxy.mysite.com
Source destination: http://http.mysite.com/
Reverse mapping:
Source prefix: http://http.mysite.com/
Source destination: https://proxy.mysite.com/
4)保存并应用所做的更改。
要查看刚刚创建的映射,请单击称为"View/EditMappings"的链接。
注:此配置仅在代理服务器以安全模式运行时才起作用。换言之,必须启用加密,而且必须从命令行重新启动代理服务器。要从命令行重新启动代理服务器,请转到代理目录,然后键入./start。
Secure Proxy to Content Server
① 访问 Server Manager,然后单击 "URLs" 选项卡。
② 单击 "Create Mapping" 链接。将显示 "Create Mapping" 页面。
③ 在出现的页面中,采用以下方式设置正则映射和反向映射:
Regular mapping:
Source prefix: http://proxy.mysite.com
Source destination: https://http.mysite.com/
Reverse mapping:
Source prefix: https://http.mysite.com/
Source destination: http://proxy.mysite.com/
④ 保存并应用所做的更改。要查看刚刚创建的映射,请单击称为"View/EditMappings"的链接。
注:此配置仅在内容服务器以安全模式运行时才起作用。
Secure Client to Proxy and Secure Proxy to Content Server
① 访问 Server Manager,然后单击 "URLs" 选项卡。
② 单击 "Create Mapping" 链接。将显示 "Create Mapping" 页面。
③ 在出现的页面中,采用以下方式设置正则映射和反向映射:
Regular mapping:
Source prefix: https://proxy.mysite.com
Source destination: https://http.mysite.com/
Reverse mapping:
Source prefix: https://http.mysite.com/
Source destination: https://proxy.mysite.com/
④ 保存并应用所做的更改。要查看刚刚创建的映射,请单击称为"View/EditMappings"的链接。
注:此配置仅在代理服务器和内容服务器以安全模式运行时才起作用。换言之,必须为代理服务器启用加密,而且必须从命令行重新启动代理服务器。要从命令行重新启动代理服务器,请转到代理目录,然后键入./restart。
WWW是目前Internet上最流行的服务,其安全问题也越来越突出,尤其是对资源的访问控制。比如很多网站免费提供EI、SCI等多种电子资源,但发现有少部分人乘机进行盗版活动。针对这种情况利用服务器的反向代理技术,可以记录、控制用户对.pdf、.zip、.jpg等文件的访问次数,有效地防止了用户的恶意访问,保护了Web服务器的安全,取得了良好的效果。
参考文献:
[1]任昱衡、于欣、段红,《基于移动商务的企业管理系统探析》[J].商业文化(学术版),2008,05.
[2]任昱衡、赵立响,《建立基于环境的电子商务安全体系》[J].科技创新导报,2008,09.
[3]任昱衡,《GCIE服务器评测体系的国内应用现状及替代设计》[J].中国学术亚洲版,2007(8).
[4]任昱衡、曾莹,《制造业电子商务信息系统的安全建设》[J].现代商贸工业,2010(8).
[5]任昱衡,《我国域名的法律地位研究》[J].商业文化(学术版),2008,06.
[6]任昱衡,《安防行业网站的SEO项目实施》[J].硅谷,2008,12.
[7]任昱衡,《服务器测评体系的国内应用分析及设计》[J].计算机应用研究,2008,25.
[8]陈向阳、方汉,《Linux实用大全》(第二版)[M].北京科学出版社,2004.
[9]朱前线,《基于反向代理技术的Web服务器保护机制研究与实现》[J].武汉理工大学学刊,2006.
[10]蓝强、唐莉,《反向代理技术服务器安全方案与实施》[J].重庆文理学院,2006,5.
[11]张琦,《反向代理快速入门》,网络管理员世界 [J].2006,1.
[12]杜家兴,《反向代理服务器的概念与实施》[J].网络管理员世界,2004,12.
[13]孙晓莹、郑珂、马玉军,《反向的代理》[M].南阳理工学院,2005,9.
[14]曹江华,《全面监控Squid服务器》[J].开放系统世界,2006,12.
[15]Fuji.K Li.Anonymity Revocable Proxy Signature SchemeNational Key Laboratory of Integrated Service Networks2006.15(4).
[16]Hinckley, C. Martin . Selecting the best defect reduction methodology . Quality and Reliability Engineering International v 12 n 6 . Nov-Dec1996.p 411-420.
[17]Dave Harrold, Frank J Bartos . Publicly Verifiable Distributed Proxy Blind Signature Scheme, Barrington . Mar2002.
[18]Ward, Andrew. An Authentication Method of Distinguishing Proxy's Secure Accident ResponsibilityManufacturing Computer Solutions v 8 n 5 . May 2005.p 34-35+37.
[19]Coronado, Ricardo Banuelas, Antony . Proxy Multisignature Scheme with (t, m) Threshold Shared Verification. College of Information and Technology,2006.p 92-99.
作者简介:
刘鹏(1984-),硕士研究生,复旦大学软件学院,研究方向为:企业信息化、软件工程;薛颖俊(1985-),硕士研究生,复旦大学软件学院研究方向为:电子商务、软件工程;任昱衡(1985-),副研究员,中国电子商务协会专家组成员,中国信息协会会员,中国船舶工业集团公司信息科技中心,研究方向为:企业电子商务、企业。
1 总述
信息科技的迅速发展,Internet已成为全球重要的信息传播工具。据不完全统计,Internet现在遍及200多个国家,容纳近80万个网络,提供了包括1000多个大型联网图书馆,800个联网的学术文献库,20000种网上杂志,9000种网上新闻报纸,5000多万个Web网站在内的多种服务,总共近1000万个信息源为世界各地的网民提供大量信息资源交流和共享的空间。安全是当今IT相关头条新闻的一个重要话题。在计算机网络日益普及的今天,计算机安全不但要求防治计算机病毒,提高抵抗黑客非法入侵的能力,还要提高对远程数据传输的保密性,避免在传输途中遭受非法窃取。因此确保Web服务器的安全,对于减少入侵破坏而引起的数据窃取或丢失而言是至关重要的。
Web赖以生成的环境包括计算机硬件、操作系统、计算机网络、许多的网络服务和应用,所有这些都存在着安全隐患,最终威胁到Web的安全。Web的安全体系结构非常复杂主要包括以下几个方面:
1)客户端软件的安全运行浏览器的计算机设备及其操作系统的安全(主机系统安全)
2)客户端的局域网(LAN)
3)服务器端的局域网(LAN)
4)运行服务器的计算机设备及操作系统的安全(主机系统的安全)
5)服务器的运行环境
6)服务器硬件设备的安全
7)服务器上的Web服务器软件
在分析Web服务器的安全性时,一定要考虑到所有这些方面,因为它们是相互联系的,每个方面都会影响到Web服务器的安全性,它们中安全性最差的决定了服务器的安全级别。由于篇幅的限制不能够详细地讨论所有影响Web安全的因素。考虑到影响Web安全的最直接的因素,下面主要讨论Web服务器软件及支撑服务器运行的操作系统的安全。
2 代理服务器和反向代理技术
2.1 代理服务器
代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,是直接联系到目的站点服务器,然后由目的站点服务器把信息传送回来。代理服务器是介于浏览器和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。
代理服务器是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层,从而起到防火墙的作用。鉴于上述原因,代理服务器大多被用来连接INTERNET(国际互联网)和INTRANET(局域网)。在国内,所谓中国多媒体公众信息网和教育网都是独立的大型国家级局域网,是与国际互联网隔绝的。出于各种需要,某些集团或个人在两网之间开设了代理服务器,如果我们知道这些代理服务器的地址,就可以利用它到达国外网站。
2.2 反向代理技术
代理服务器是使用非常普遍的一种将局域网主机联入互联网的一种方式,使用代理上网可以节约紧缺的IP地址资源而且可以阻断外部主机对内部主机的访问,使内部网主机免受外部网主机的攻击。但是如果想让互联网上的主机访问内部网的主机资源(例如Web站点),又想使内部网主机免受外部网主机攻击,一般的代理服务是不能实现的,这就需要使用反向代理来实现。如图表1所示,反向代理也就是通常所说的Web服务器加速,它是一种通过在繁忙的Web服务器和Internet之间增加一个高速的Web缓中服务器(即Web反向代理服务器)来降低实际的Web服务器的负载。
2.3 反向代理的应用
反向代理的方式主要是为了缓解繁忙服务器的负担,将Cache部署在服务器前面,将自己的内容与服务器保持同步,当收到用户的请求时,直接用Cache中的内容进行回复,从而减轻网络服务器的负担。
反向代理设备提高了前端Web服务器处理客户连接的能力,为电子商务、后台生成的HTML新闻公布、软件下载等提供了快速的服务。这种部署方式经常用于静态Web内容占很大比例的环境中。大型ISP为了加速网络的响应都会架设大量的前置高速缓冲服务器(forward proxy cache server),但是,对于无法识别内容的缓存集群来说,所有的缓存服务器节点都必须保存整个被访网络的全部内容(理论上,所有的网络中的站点都被缓存过)。
反向代理负载均衡能以软件方式来实现,如Apache mod_proxy、ISA proxy等,也可以在高速缓存器、负载均衡器等硬件设备上实现,例如硬件解决方案:基于软件技术的反向代理负载均衡可以将优化的负载均衡策略和代理服务器的高速缓存技术结合在一起,提升静态网页的访问速度,提供有益的性能。
由于网络外部用户不能直接访问真实的服务器,同时也就具备额外的安全性。其缺点主要表现为反向代理是工作在OSI参考模型第七层(应用层),所以就必须为每一种应用服务专门开发一个反向代理服务器。以硬件技术为主的解决方案多数将各种应用平台集成到一台或多台设备中,在功能强大的同时价格也相对较高。以思科提供的Cisco缓存方案为例,WCCP(Web缓存通讯协议)是构成缓存方案的核心,WCCP2被承载与Cisco Cache Engine500系列之上。
2.4 反向代理的工作流程
如果内容服务器具有必须保持安全的敏感信息,如信用卡数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。当外部客户机尝试访问内容服务器时,会将其送到代理服务器。实际内容位于内容服务器上,在防火墙内部受到安全保护。代理服务器位于防火墙外部,在客户机看来就像是内容服务器。
当客户机向站点提出请求时,请求将转到代理服务器。然后,代理服务器通过防火墙中的特定通路,将客户机的请求发送到内容服务器。内容服务器再通过该通道将结果回传给代理服务器。代理服务器将检索到的信息发送给客户机,好像代理服务器就是实际的内容服务器。如果内容服务器返回错误消息,代理服务器会先行截取该消息并更改标头中列出的任何URL,然后再将消息发送给客户机。如此可防止外部客户机获取内部内容服务器的重定向URL。
这样,代理服务器就在安全数据库和可能的恶意攻击之间提供了又一道屏障。与有权访问整个数据库的情况相对比,就算是侥幸攻击成功,作恶者充其量也仅限于访问单个事务中所涉及的信息。未经授权的用户无法访问到真正的内容服务器,因为防火墙通路只允许代理服务器有权进行访问(如图表1)。
图表1
3 反向代理的配置
3.1 反向代理的实现
反向代理是访问控制系统最核心的部分,其核心技术就是地址转换。通过它可以保证使用者对客户端计算机不进行任何设置的情况下就使用访问控制系统。从外观看来,也就是从普通用户看来,反向代理就像普通的Web服务器一样。而反向代理所代理的每一个Web服务器都好像是反向代理服务器中的一个目录。例如反向代理服务器本身的URL是http://reverse-proxy,它可以代理清华主页服务器(http://www.tsinghua.edu.cn/index.
Html),普通的用户想通过反向代理服务器来访问清华主页服务器就只需要访问http://reverse-proxy/www.tsinghua.edu.cn/index.html就行了。
在反向代理中,等于把反向代理服务器中的目录映射到其它需要被代理的服务器上。这样做只能解决用户的一次访问问题,不能做到让用户通过反向代理连续访问。因为被代理的服务器上的信息是未知的,对于HTTP协议来讲,很有可能出现绝对地址或者绝对链接,这样的话,普通用户的下一次访问将会跳过反向代理而直接访问真实的服务器。这是我们不希望看到的。因此,必须对服务器返回给用户的信息进行过滤,将所有的绝对URL更改成为通过反向代理的相对URL。为此,我们使用了正则表达式对所有的链接进行检测、替换。于是就实现了通过反向代理连续访问的功能。
当用户的请求到达反向代理服务器之后,反向代理通过一定的规则将URL中的目录信息解析成服务器以及端口的信息,从而进行socket链接,即反向代理服务器模拟一个客户端向真正的Web服务器发出http请求。当得到回应信息的时候,通过HTTP头中的Content-Type和文件的扩展名来判断得到的信息的类别。若是非HTML信息(如jpg,gif,zip等),则将其原样照发还给用户,若是HTML(html,htm,shtml等),则用先用正则表达式建立字符串识别自动机,查找html文本中所有的链接信息。
3.2 使用Squid配置反向代理
3.2.1 Squid反向代理单个后台WEB服务器
如果WEB服务器和反向代理服务器是两台单独的机器(一般的反向代理应该有两块网卡分别连接了内外部网络)。那么,应该修改下面的内容来设置反向代理服务。
http_port 80 # squid 监听的端口
httpd_accel_host 172.16.250.250 # 内部WEB服务器的IP地址
httpd_accel_port 80 # WEB服务器的IP地址
httpd_accel_single_host on # 转发为缓冲的请求到一台单独的机器
httpd_accel_with_proxy on #
httpd_accel_uses_host_header off
如果WEB服务器和反向代理服务器是同一台机器。那么,应该设置WEB服务器的监听端口为非80端口(比如:81端口)。要修改的内容如下:
http_port 80 # squid监听的端口
httpd_accel_host localhost # 内部WEB服务器的IP地址
httpd_accel_port 81 # WEB服务器的IP地址
httpd_accel_single_host on # 转发为缓冲的请求到一台单独的机器
httpd_accel_with_proxy on #
httpd_accel_uses_host_header off
下面解释一下配置指令。
http_port 80
选项 http_port 指定squid监听HTTP请求的端口,一般都设置成80端口,这样使用户感觉不到反向代理的存在,就像访问真正的WEB服务器一样。
httpd_accel_host 172.16.250.250 和 httpd_accel_port 80
选项httpd_accel_host 和 httpd_accel_port 指定WEB服务器的IP地址和端口号,可以根据自己的WEB服务器的实际情况而定。
httpd_accel_single_host on
选项httpd_accel_single_host 为on 时,squid被设置成仅对单一的web服务器作反向代理。不考虑HTTP头信息,Squid转发所有的未被缓冲的页面请求到这个web服务器。如果squid需要做多个web服务器反向代理,必须将此选项设置为off,并且使用转向器或者DNS去映射请求到合适的后台WEB服务器。
httpd_accel_with_proxy on
如果希望squid既作反向代理服务器又作本地机器的上网代理,要将httpd_accel_with_proxy 改为 on,默认情况下是off
httpd_accel_uses_host_header off
在HTTP协议1.1中,HTTP请求包括一个主机头信息,指定URL的主机名或者主机的IP地址。这个选项可以用来完成多个后台WEB服务器的反向代理功能。
3.2.2 设置安全反向代理服务器
设置安全反向代理服务器需要具备数字证书、证书授权机构和验证方面的知识。
设置安全反向代理服务器大体上与设置非安全反向代理服务器相同。唯一的区别是需要指定HTTPS作为要加密文件的协议。
如何根据所选择的配置方案来设置安全反向代理服务器呢?假定您有一个称为http.site.com的Web服务器,并且您想要设置一个称为proxy.site.com的安全反向代理服务器:
Secure Client to Proxy
1)访问 Server Manager,然后单击 "URLs" 选项卡。
2)单击 "Create Mapping" 链接。将显示 "Create Mapping" 页面。
3)在出现的页面中,采用以下方式设置正则映射和反向映射:
Regular mapping:
Source prefix: https://proxy.mysite.com
Source destination: http://http.mysite.com/
Reverse mapping:
Source prefix: http://http.mysite.com/
Source destination: https://proxy.mysite.com/
4)保存并应用所做的更改。
要查看刚刚创建的映射,请单击称为"View/EditMappings"的链接。
注:此配置仅在代理服务器以安全模式运行时才起作用。换言之,必须启用加密,而且必须从命令行重新启动代理服务器。要从命令行重新启动代理服务器,请转到代理目录,然后键入./start。
Secure Proxy to Content Server
① 访问 Server Manager,然后单击 "URLs" 选项卡。
② 单击 "Create Mapping" 链接。将显示 "Create Mapping" 页面。
③ 在出现的页面中,采用以下方式设置正则映射和反向映射:
Regular mapping:
Source prefix: http://proxy.mysite.com
Source destination: https://http.mysite.com/
Reverse mapping:
Source prefix: https://http.mysite.com/
Source destination: http://proxy.mysite.com/
④ 保存并应用所做的更改。要查看刚刚创建的映射,请单击称为"View/EditMappings"的链接。
注:此配置仅在内容服务器以安全模式运行时才起作用。
Secure Client to Proxy and Secure Proxy to Content Server
① 访问 Server Manager,然后单击 "URLs" 选项卡。
② 单击 "Create Mapping" 链接。将显示 "Create Mapping" 页面。
③ 在出现的页面中,采用以下方式设置正则映射和反向映射:
Regular mapping:
Source prefix: https://proxy.mysite.com
Source destination: https://http.mysite.com/
Reverse mapping:
Source prefix: https://http.mysite.com/
Source destination: https://proxy.mysite.com/
④ 保存并应用所做的更改。要查看刚刚创建的映射,请单击称为"View/EditMappings"的链接。
注:此配置仅在代理服务器和内容服务器以安全模式运行时才起作用。换言之,必须为代理服务器启用加密,而且必须从命令行重新启动代理服务器。要从命令行重新启动代理服务器,请转到代理目录,然后键入./restart。
WWW是目前Internet上最流行的服务,其安全问题也越来越突出,尤其是对资源的访问控制。比如很多网站免费提供EI、SCI等多种电子资源,但发现有少部分人乘机进行盗版活动。针对这种情况利用服务器的反向代理技术,可以记录、控制用户对.pdf、.zip、.jpg等文件的访问次数,有效地防止了用户的恶意访问,保护了Web服务器的安全,取得了良好的效果。
参考文献:
[1]任昱衡、于欣、段红,《基于移动商务的企业管理系统探析》[J].商业文化(学术版),2008,05.
[2]任昱衡、赵立响,《建立基于环境的电子商务安全体系》[J].科技创新导报,2008,09.
[3]任昱衡,《GCIE服务器评测体系的国内应用现状及替代设计》[J].中国学术亚洲版,2007(8).
[4]任昱衡、曾莹,《制造业电子商务信息系统的安全建设》[J].现代商贸工业,2010(8).
[5]任昱衡,《我国域名的法律地位研究》[J].商业文化(学术版),2008,06.
[6]任昱衡,《安防行业网站的SEO项目实施》[J].硅谷,2008,12.
[7]任昱衡,《服务器测评体系的国内应用分析及设计》[J].计算机应用研究,2008,25.
[8]陈向阳、方汉,《Linux实用大全》(第二版)[M].北京科学出版社,2004.
[9]朱前线,《基于反向代理技术的Web服务器保护机制研究与实现》[J].武汉理工大学学刊,2006.
[10]蓝强、唐莉,《反向代理技术服务器安全方案与实施》[J].重庆文理学院,2006,5.
[11]张琦,《反向代理快速入门》,网络管理员世界 [J].2006,1.
[12]杜家兴,《反向代理服务器的概念与实施》[J].网络管理员世界,2004,12.
[13]孙晓莹、郑珂、马玉军,《反向的代理》[M].南阳理工学院,2005,9.
[14]曹江华,《全面监控Squid服务器》[J].开放系统世界,2006,12.
[15]Fuji.K Li.Anonymity Revocable Proxy Signature SchemeNational Key Laboratory of Integrated Service Networks2006.15(4).
[16]Hinckley, C. Martin . Selecting the best defect reduction methodology . Quality and Reliability Engineering International v 12 n 6 . Nov-Dec1996.p 411-420.
[17]Dave Harrold, Frank J Bartos . Publicly Verifiable Distributed Proxy Blind Signature Scheme, Barrington . Mar2002.
[18]Ward, Andrew. An Authentication Method of Distinguishing Proxy's Secure Accident ResponsibilityManufacturing Computer Solutions v 8 n 5 . May 2005.p 34-35+37.
[19]Coronado, Ricardo Banuelas, Antony . Proxy Multisignature Scheme with (t, m) Threshold Shared Verification. College of Information and Technology,2006.p 92-99.
作者简介:
刘鹏(1984-),硕士研究生,复旦大学软件学院,研究方向为:企业信息化、软件工程;薛颖俊(1985-),硕士研究生,复旦大学软件学院研究方向为:电子商务、软件工程;任昱衡(1985-),副研究员,中国电子商务协会专家组成员,中国信息协会会员,中国船舶工业集团公司信息科技中心,研究方向为:企业电子商务、企业。