基于云环境的代理服务研究
2021-10-29赵凯
◆赵凯
基于云环境的代理服务研究
◆赵凯
(北京电子科技职业学院 北京 100176)
网络改变了人们的生活,给人们的生活带来了诸多便利,云计算和大数据技术的应用加速了技术的革新,越来越多的数据走上云端,客户享受的服务越来越丰富,同时网络中的安全问题日益突出,解决安全问题的方案及设备较多,本文针对最为广泛的Web应用,提出性价比较高的解决方案,即增加安全网关,用代理技术提高网络的安全性能,文中对代理服务的类型及工作过程予以阐述,结合流行的代理服务软件,给出了具体的实现过程。
代理;信息安全;防火墙
1 绪论
网络技术的发展正在改变着人们的生活,网络已经成为生活中不可或缺的一部分,通过网络可以方便获取想要的信息,方便彼此间的沟通,提高效率。云计算技术推动了网络技术的加速发展,在享受云服务带来便利的过程中,安全问题日益突出,网络中的信息和设备成了不法分子攻击的主要目标。提高安全意识,安装防火墙,设置合理的安全策略以及定期杀毒成了主要的防范措施,其中防火墙技术是最广泛的安全应用之一。防火墙的主要作用是控制网络之间的数据流动,防止网络外部用户以非法手段进入内部网络,保护网络内部的操作系统及网络设备,对网络间传输的数据进行检查并监控网络的运行状态,从而保护内部网络数据的安全。
常见的防火墙产品有堡垒主机、通用防火墙、包过滤路由器、安全网关等[1],其中安全网关又以代理服务器为代表。
2 代理服务简介
代理服务器(proxy server)作为内网和外网的桥梁在实际应用中发挥着非常重要的作用[2],相当于网络信息的中转站,可以用作防火墙,负责转发合法网络信息,并对转发的信息进行检查和控制,将代理服务器放在云端,可以有效隐藏云中的主机信息,如图1所示。
图1 代理服务器
根据用途,代理服务器可以分为以下几类:
(1)Web代理:代理客户机的HTTP或HTTPS访问,常用的端口为80、8080、3128、443等。
(2)FTP代理:代理客户机访问FTP服务器,常用的端口为21。
(3)RTSP代理:代理客户机访问流媒体服务器,端口为554。
(4)SOCKS代理:分为SOCK4和SOCK5两种,是一个C/S环境的代理协议,SOCKS代理可以快速传输数据包,对传输数据的应用协议不敏感,传递数据包的速度高于其他类型的代理服务。
根据使用方式可以分为正向代理、反向代理及透明代理。
(1)正向代理:其功能类似于防火墙,可以屏蔽掉指定的网站,需要在客户机中设置代理服务器的地址及端口,客户的请求会由代理服务器转发给目标资源,再将目标资源的响应转发给客户端。
(2)反向代理:对外表现为真实的服务器[3],其作用是接收来自网络的数据,将这些数据转发给内部网络,同时将内部网络的响应数据转发给客户端,反向代理设置在服务器端,客户端不需要设置,反向代理经常用于负载平衡、缓存静态内容、安全外网发布等。
(3)透明代理:对客户端透明,客户端需要设置正确的DNS信息并将网关设置为透明代理的地址即可,透明代理与正向代理类似,用于拦截客户端发送的数据并代为访问服务器,将获得的响应再转发给客户端。
3 Web代理服务器工作过程
Web代理服务是以HTTP协议为基础的,是建立在TCP/IP协议应用层上的一种服务类型,代理服务器作为外网和内网的缓冲地带,对网络安全起到了非常重要的作用。对于Web客户端,代理服务器扮演的是服务器角色,接收请求报文,返回响应报文;对于Web服务器,代理服务器扮演的是客户端角色,发送Web请求报文,接收Web响应报文。代理服务器的工作过程如下:
(1)客户端将请求数据发送给代理服务器。
(2)代理服务器根据策略检查客户端请求的合法性,如请求合法则检索自己的数据,如请求不合法则拒绝请求。如果代理服务器中有相应的数据,则将结果直接返回给客户端;如果代理服务器没有符合要求的数据,代理服务器会代替客户端向网络中其他服务器提出请求并与网络中的其他服务器进行交互。
(3)代理服务器将获取的数据存储在本地并把相应的数据转发给客户端。
4 代理服务器的功能
代理服务作为提高网络安全的主要方法被广泛应用于网络环境中,根据应用场景的不同将其功能总结为以下几点:
(1)隐藏IP地址,提高网络安全性能
代理服务器可以减少对IP地址数量的需求并可以隐藏内部IP地址,外部网络只能看到代理服务器,从而减少内部网络被攻击的概率。代理服务器对内部网络起到了较好的屏障作用。
(2)提高访问速度
代理服务器需要有较大的磁盘空间作为缓冲区,当用户访问外部网络资源时,会先在代理服务器的缓冲区中查找,如果能找到,则由代理服务器将数据传输给用户,如找不到,则代理服务器会到外网查找,将数据返给客户的同时也会将找到的资源存储于自己的缓冲区中,方便用户的下一次查询,由于信息是从代理服务器传输给用户,减少了到网络中查找相关资源的过程,从而节约了带宽,提高了访问速度。
(3)对信息进行监控,控制流量
代理服务器可以设置用户验证和记账功能,只有得到合法授权的用户才可以访问Internet,同时代理服务器可以控制这些用户访问哪些服务,在什么时间内访问这些服务等,通过这些控制也可以实现用户流量的计费功能。通过代理服务器还可以过滤Internet与内网间的数据信息并对用户的行为进行监控。
5 常用代理软件介绍
代理服务可以由硬件实现也可以由软件实现,提供代理服务的软件较多,下面对常用代理软件做一介绍。
(1)Wingate:是一个综合互联网网关和通信服务器的软件,应用于Windows平台,是集控制、安全和通信的企事业级软件,可以支持绝大多数类型的网络连接,允许多个用户同时上网,可以实现Internet共享、访问控制及防火墙功能。
(2)Microsoft Proxy Server:微软代理服务器,应用于Windows平台,包括Web Proxy服务器、Winsock 服务器和Socks Proxy服务器,安装简单,可以很好利用Windows Server内建的安全性,允许网络管理员对进入网络或来自Internet的访问做出有效控制,支持全部的Internet协议。
(3)WinProxy:功能强大,方便易用,支持透明代理,应用于Windows平台,可以实现复杂的用户控制、缓存与防火墙技术及NAT技术,除保护局域网不受外来攻击外还提供了防病毒保护。WinProxy可以阻塞广告,通过黑名单或白名单方式过滤站点,调整用户的流量。
(4)WinRoute:应用于Windows平台的代理软件,除实现代理功能外,该软件还提供了NAT功能及DHCP功能,网络功能强大,但帮助系统不完善,操作界面较简单。
(5)Squid:一款高性能的代理缓存服务器软件,应用于Unix/Linux平台,支持FTP、Https、Gopher等协议,能够实现正向代理、反向代理及透明代理应用,可用于网络服务器的前置Cache服务器来提高Web服务器的速度,也可用于流量的控制和数据的审计,还可用作防火墙提高安全性能,是应用广泛的自由软件。
(6)Varnish:是一款高性能的反向代理服务器和HTTP加速器软件,主要应用于Unix/Linux平台,支持多种协议,支持对虚拟内存的使用,可以控制缓存的时间属性,具有速度快,管理方便等特点,是应用广泛的自由软件。
(7)Nginx:是一款高性能的HTTP和反向代理Web服务器软件,也可作为电子邮件代理服务器,由俄罗斯设计师开发,主要应用于Unix/Linux平台,支持多种协议,软件的稳定性非常好,对系统资源占用较少,适合用作并发量较大的前台服务器场景,具有负载均衡功能,是优秀的自由软件。
6 代理服务应用举例
代理服务作为提高网络安全性能的重要措施之一得到了广泛的应用,常见的代理服务软件有Microsoft Proxy,Microsoft ISA,WinProxy、WinGate、WinRoute、Squid、Nginx等,本文基于Linux系统以Squid软件为例,实现代理服务,控制客户机对Web服务器的访问,如图2所示,图中各设备的地址详见表1。
图2 代理应用举例
表1 设备地址表
配置分别在Web服务器、代理服务器及客户机中完成,演示的代理功能的使用,具体操作如下:
6.1 Web服务器配置
(1)指定Web服务器IP地址
[root@localhost ~]# ifconfig eth0 200.1.1.200 netmask 255.255.255.0
(2)指定默认网页
[root@localhost ~]# echo this is Web site > /var/www/html/index.html
(3)启动Web服务器
[root@localhost ~]# service httpd start
6.2 代理服务器配置
(1)指定代理服务器IP地址
[root@localhost ~]# ifconfig eth0 192.168.1.100 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth1 200.1.1.100 netmask 255.255.255.0
(2)安装代理服务软件
[root@localhost ~]# yum install squid –y
(3)配置代理服务
[root@localhost ~]# vim /etc/squid/squid.conf
修改参数:http_access allow all
http_port 3128
(4)启动代理服务
[root@localhost ~]# service squid start
(5)检查代理服务的运行情况
[root@localhost ~]# netstat -anpt | grep "squid"
tcp 0 0 :::3128:::* LISTEN 2963/(squid)
(6)设置地址转换
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 200.1.1.100
[root@localhost ~]# iptables -t nat -A PREROUTING -i eth1:1 -d 200.1.1.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100
6.3 客户端设置
(1)设置代理服务器
在客户端中可以使用firefox浏览器也可以使用curl命令完成,以firefox为例,设置代理服务器地址及端口,路径为“编辑”à“首选项”à“网络”à“设置”,如图3所示。
图3 客户端设置
(2)测试
在浏览器中输入Web服务器的地址,如代理服务配置正确,则可以看到图4的结果。
图4 配置成功截图
如果代理服务器配置不正确,则会出现图5的结果。
图5 客户配置失败截图
7 结语
针对Web的应用越来越广泛,结合日益突出的网络安全问题,使用代理服务提高网络安全性能是最为常见也是性价比最高的方法,代理服务器具有防火墙的功能,按使用方式可以分为正向代理、反向代理和透明代理,不同的代理方式,其工作原理略有差异,正向代理更多用于控制内网对外网的访问,反向代理更多用于负载均衡及安全外网发布等,透明代理功能与正向代理类似,但比正向代理应用更加广泛,通过代理服务器的方法可以有效提高网络安全,这也是针对Web安全最广泛最重要的防护措施之一。
[1]张馨蕊.论防火墙技术在计算机网络安全中的应用[J].电脑编程技巧与维护,2021(1):18.
[2]陈志鹏,张鹏,等.一种基于多维特征分析的网页代理服务发现方法[J].信息安全学报,2018(07):15.
[3]粟毅.Linux系统下Web网站服务器反向代理设计与实现[J].信息与电脑(理论版),2018(09):25.
北京电子科技职业学院院内课题“基于云计算的代理技术研究”(编号:2020Z076-KXY)