◆趙凱
基于云環(huán)境的代理服務(wù)研究
◆趙凱
(北京電子科技職業(yè)學(xué)院 北京 100176)
網(wǎng)絡(luò)改變了人們的生活,給人們的生活帶來了諸多便利,云計算和大數(shù)據(jù)技術(shù)的應(yīng)用加速了技術(shù)的革新,越來越多的數(shù)據(jù)走上云端,客戶享受的服務(wù)越來越豐富,同時網(wǎng)絡(luò)中的安全問題日益突出,解決安全問題的方案及設(shè)備較多,本文針對最為廣泛的Web應(yīng)用,提出性價比較高的解決方案,即增加安全網(wǎng)關(guān),用代理技術(shù)提高網(wǎng)絡(luò)的安全性能,文中對代理服務(wù)的類型及工作過程予以闡述,結(jié)合流行的代理服務(wù)軟件,給出了具體的實(shí)現(xiàn)過程。
代理;信息安全;防火墻
網(wǎng)絡(luò)技術(shù)的發(fā)展正在改變著人們的生活,網(wǎng)絡(luò)已經(jīng)成為生活中不可或缺的一部分,通過網(wǎng)絡(luò)可以方便獲取想要的信息,方便彼此間的溝通,提高效率。云計算技術(shù)推動了網(wǎng)絡(luò)技術(shù)的加速發(fā)展,在享受云服務(wù)帶來便利的過程中,安全問題日益突出,網(wǎng)絡(luò)中的信息和設(shè)備成了不法分子攻擊的主要目標(biāo)。提高安全意識,安裝防火墻,設(shè)置合理的安全策略以及定期殺毒成了主要的防范措施,其中防火墻技術(shù)是最廣泛的安全應(yīng)用之一。防火墻的主要作用是控制網(wǎng)絡(luò)之間的數(shù)據(jù)流動,防止網(wǎng)絡(luò)外部用戶以非法手段進(jìn)入內(nèi)部網(wǎng)絡(luò),保護(hù)網(wǎng)絡(luò)內(nèi)部的操作系統(tǒng)及網(wǎng)絡(luò)設(shè)備,對網(wǎng)絡(luò)間傳輸?shù)臄?shù)據(jù)進(jìn)行檢查并監(jiān)控網(wǎng)絡(luò)的運(yùn)行狀態(tài),從而保護(hù)內(nèi)部網(wǎng)絡(luò)數(shù)據(jù)的安全。
常見的防火墻產(chǎn)品有堡壘主機(jī)、通用防火墻、包過濾路由器、安全網(wǎng)關(guān)等[1],其中安全網(wǎng)關(guān)又以代理服務(wù)器為代表。
代理服務(wù)器(proxy server)作為內(nèi)網(wǎng)和外網(wǎng)的橋梁在實(shí)際應(yīng)用中發(fā)揮著非常重要的作用[2],相當(dāng)于網(wǎng)絡(luò)信息的中轉(zhuǎn)站,可以用作防火墻,負(fù)責(zé)轉(zhuǎn)發(fā)合法網(wǎng)絡(luò)信息,并對轉(zhuǎn)發(fā)的信息進(jìn)行檢查和控制,將代理服務(wù)器放在云端,可以有效隱藏云中的主機(jī)信息,如圖1所示。
圖1 代理服務(wù)器
根據(jù)用途,代理服務(wù)器可以分為以下幾類:
(1)Web代理:代理客戶機(jī)的HTTP或HTTPS訪問,常用的端口為80、8080、3128、443等。
(2)FTP代理:代理客戶機(jī)訪問FTP服務(wù)器,常用的端口為21。
(3)RTSP代理:代理客戶機(jī)訪問流媒體服務(wù)器,端口為554。
(4)SOCKS代理:分為SOCK4和SOCK5兩種,是一個C/S環(huán)境的代理協(xié)議,SOCKS代理可以快速傳輸數(shù)據(jù)包,對傳輸數(shù)據(jù)的應(yīng)用協(xié)議不敏感,傳遞數(shù)據(jù)包的速度高于其他類型的代理服務(wù)。
根據(jù)使用方式可以分為正向代理、反向代理及透明代理。
(1)正向代理:其功能類似于防火墻,可以屏蔽掉指定的網(wǎng)站,需要在客戶機(jī)中設(shè)置代理服務(wù)器的地址及端口,客戶的請求會由代理服務(wù)器轉(zhuǎn)發(fā)給目標(biāo)資源,再將目標(biāo)資源的響應(yīng)轉(zhuǎn)發(fā)給客戶端。
(2)反向代理:對外表現(xiàn)為真實(shí)的服務(wù)器[3],其作用是接收來自網(wǎng)絡(luò)的數(shù)據(jù),將這些數(shù)據(jù)轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò),同時將內(nèi)部網(wǎng)絡(luò)的響應(yīng)數(shù)據(jù)轉(zhuǎn)發(fā)給客戶端,反向代理設(shè)置在服務(wù)器端,客戶端不需要設(shè)置,反向代理經(jīng)常用于負(fù)載平衡、緩存靜態(tài)內(nèi)容、安全外網(wǎng)發(fā)布等。
(3)透明代理:對客戶端透明,客戶端需要設(shè)置正確的DNS信息并將網(wǎng)關(guān)設(shè)置為透明代理的地址即可,透明代理與正向代理類似,用于攔截客戶端發(fā)送的數(shù)據(jù)并代為訪問服務(wù)器,將獲得的響應(yīng)再轉(zhuǎn)發(fā)給客戶端。
Web代理服務(wù)是以HTTP協(xié)議為基礎(chǔ)的,是建立在TCP/IP協(xié)議應(yīng)用層上的一種服務(wù)類型,代理服務(wù)器作為外網(wǎng)和內(nèi)網(wǎng)的緩沖地帶,對網(wǎng)絡(luò)安全起到了非常重要的作用。對于Web客戶端,代理服務(wù)器扮演的是服務(wù)器角色,接收請求報文,返回響應(yīng)報文;對于Web服務(wù)器,代理服務(wù)器扮演的是客戶端角色,發(fā)送Web請求報文,接收Web響應(yīng)報文。代理服務(wù)器的工作過程如下:
(1)客戶端將請求數(shù)據(jù)發(fā)送給代理服務(wù)器。
(2)代理服務(wù)器根據(jù)策略檢查客戶端請求的合法性,如請求合法則檢索自己的數(shù)據(jù),如請求不合法則拒絕請求。如果代理服務(wù)器中有相應(yīng)的數(shù)據(jù),則將結(jié)果直接返回給客戶端;如果代理服務(wù)器沒有符合要求的數(shù)據(jù),代理服務(wù)器會代替客戶端向網(wǎng)絡(luò)中其他服務(wù)器提出請求并與網(wǎng)絡(luò)中的其他服務(wù)器進(jìn)行交互。
(3)代理服務(wù)器將獲取的數(shù)據(jù)存儲在本地并把相應(yīng)的數(shù)據(jù)轉(zhuǎn)發(fā)給客戶端。
代理服務(wù)作為提高網(wǎng)絡(luò)安全的主要方法被廣泛應(yīng)用于網(wǎng)絡(luò)環(huán)境中,根據(jù)應(yīng)用場景的不同將其功能總結(jié)為以下幾點(diǎn):
(1)隱藏IP地址,提高網(wǎng)絡(luò)安全性能
代理服務(wù)器可以減少對IP地址數(shù)量的需求并可以隱藏內(nèi)部IP地址,外部網(wǎng)絡(luò)只能看到代理服務(wù)器,從而減少內(nèi)部網(wǎng)絡(luò)被攻擊的概率。代理服務(wù)器對內(nèi)部網(wǎng)絡(luò)起到了較好的屏障作用。
(2)提高訪問速度
代理服務(wù)器需要有較大的磁盤空間作為緩沖區(qū),當(dāng)用戶訪問外部網(wǎng)絡(luò)資源時,會先在代理服務(wù)器的緩沖區(qū)中查找,如果能找到,則由代理服務(wù)器將數(shù)據(jù)傳輸給用戶,如找不到,則代理服務(wù)器會到外網(wǎng)查找,將數(shù)據(jù)返給客戶的同時也會將找到的資源存儲于自己的緩沖區(qū)中,方便用戶的下一次查詢,由于信息是從代理服務(wù)器傳輸給用戶,減少了到網(wǎng)絡(luò)中查找相關(guān)資源的過程,從而節(jié)約了帶寬,提高了訪問速度。
(3)對信息進(jìn)行監(jiān)控,控制流量
代理服務(wù)器可以設(shè)置用戶驗(yàn)證和記賬功能,只有得到合法授權(quán)的用戶才可以訪問Internet,同時代理服務(wù)器可以控制這些用戶訪問哪些服務(wù),在什么時間內(nèi)訪問這些服務(wù)等,通過這些控制也可以實(shí)現(xiàn)用戶流量的計費(fèi)功能。通過代理服務(wù)器還可以過濾Internet與內(nèi)網(wǎng)間的數(shù)據(jù)信息并對用戶的行為進(jìn)行監(jiān)控。
代理服務(wù)可以由硬件實(shí)現(xiàn)也可以由軟件實(shí)現(xiàn),提供代理服務(wù)的軟件較多,下面對常用代理軟件做一介紹。
(1)Wingate:是一個綜合互聯(lián)網(wǎng)網(wǎng)關(guān)和通信服務(wù)器的軟件,應(yīng)用于Windows平臺,是集控制、安全和通信的企事業(yè)級軟件,可以支持絕大多數(shù)類型的網(wǎng)絡(luò)連接,允許多個用戶同時上網(wǎng),可以實(shí)現(xiàn)Internet共享、訪問控制及防火墻功能。
(2)Microsoft Proxy Server:微軟代理服務(wù)器,應(yīng)用于Windows平臺,包括Web Proxy服務(wù)器、Winsock 服務(wù)器和Socks Proxy服務(wù)器,安裝簡單,可以很好利用Windows Server內(nèi)建的安全性,允許網(wǎng)絡(luò)管理員對進(jìn)入網(wǎng)絡(luò)或來自Internet的訪問做出有效控制,支持全部的Internet協(xié)議。
(3)WinProxy:功能強(qiáng)大,方便易用,支持透明代理,應(yīng)用于Windows平臺,可以實(shí)現(xiàn)復(fù)雜的用戶控制、緩存與防火墻技術(shù)及NAT技術(shù),除保護(hù)局域網(wǎng)不受外來攻擊外還提供了防病毒保護(hù)。WinProxy可以阻塞廣告,通過黑名單或白名單方式過濾站點(diǎn),調(diào)整用戶的流量。
(4)WinRoute:應(yīng)用于Windows平臺的代理軟件,除實(shí)現(xiàn)代理功能外,該軟件還提供了NAT功能及DHCP功能,網(wǎng)絡(luò)功能強(qiáng)大,但幫助系統(tǒng)不完善,操作界面較簡單。
(5)Squid:一款高性能的代理緩存服務(wù)器軟件,應(yīng)用于Unix/Linux平臺,支持FTP、Https、Gopher等協(xié)議,能夠?qū)崿F(xiàn)正向代理、反向代理及透明代理應(yīng)用,可用于網(wǎng)絡(luò)服務(wù)器的前置Cache服務(wù)器來提高Web服務(wù)器的速度,也可用于流量的控制和數(shù)據(jù)的審計,還可用作防火墻提高安全性能,是應(yīng)用廣泛的自由軟件。
(6)Varnish:是一款高性能的反向代理服務(wù)器和HTTP加速器軟件,主要應(yīng)用于Unix/Linux平臺,支持多種協(xié)議,支持對虛擬內(nèi)存的使用,可以控制緩存的時間屬性,具有速度快,管理方便等特點(diǎn),是應(yīng)用廣泛的自由軟件。
(7)Nginx:是一款高性能的HTTP和反向代理Web服務(wù)器軟件,也可作為電子郵件代理服務(wù)器,由俄羅斯設(shè)計師開發(fā),主要應(yīng)用于Unix/Linux平臺,支持多種協(xié)議,軟件的穩(wěn)定性非常好,對系統(tǒng)資源占用較少,適合用作并發(fā)量較大的前臺服務(wù)器場景,具有負(fù)載均衡功能,是優(yōu)秀的自由軟件。
代理服務(wù)作為提高網(wǎng)絡(luò)安全性能的重要措施之一得到了廣泛的應(yīng)用,常見的代理服務(wù)軟件有Microsoft Proxy,Microsoft ISA,WinProxy、WinGate、WinRoute、Squid、Nginx等,本文基于Linux系統(tǒng)以Squid軟件為例,實(shí)現(xiàn)代理服務(wù),控制客戶機(jī)對Web服務(wù)器的訪問,如圖2所示,圖中各設(shè)備的地址詳見表1。
圖2 代理應(yīng)用舉例
表1 設(shè)備地址表
配置分別在Web服務(wù)器、代理服務(wù)器及客戶機(jī)中完成,演示的代理功能的使用,具體操作如下:
(1)指定Web服務(wù)器IP地址
[root@localhost ~]# ifconfig eth0 200.1.1.200 netmask 255.255.255.0
(2)指定默認(rèn)網(wǎng)頁
[root@localhost ~]# echo this is Web site > /var/www/html/index.html
(3)啟動Web服務(wù)器
[root@localhost ~]# service httpd start
(1)指定代理服務(wù)器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)安裝代理服務(wù)軟件
[root@localhost ~]# yum install squid –y
(3)配置代理服務(wù)
[root@localhost ~]# vim /etc/squid/squid.conf
修改參數(shù):http_access allow all
http_port 3128
(4)啟動代理服務(wù)
[root@localhost ~]# service squid start
(5)檢查代理服務(wù)的運(yùn)行情況
[root@localhost ~]# netstat -anpt | grep "squid"
tcp 0 0 :::3128:::* LISTEN 2963/(squid)
(6)設(shè)置地址轉(zhuǎn)換
[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
(1)設(shè)置代理服務(wù)器
在客戶端中可以使用firefox瀏覽器也可以使用curl命令完成,以firefox為例,設(shè)置代理服務(wù)器地址及端口,路徑為“編輯”à“首選項”à“網(wǎng)絡(luò)”à“設(shè)置”,如圖3所示。
圖3 客戶端設(shè)置
(2)測試
在瀏覽器中輸入Web服務(wù)器的地址,如代理服務(wù)配置正確,則可以看到圖4的結(jié)果。
圖4 配置成功截圖
如果代理服務(wù)器配置不正確,則會出現(xiàn)圖5的結(jié)果。
圖5 客戶配置失敗截圖
針對Web的應(yīng)用越來越廣泛,結(jié)合日益突出的網(wǎng)絡(luò)安全問題,使用代理服務(wù)提高網(wǎng)絡(luò)安全性能是最為常見也是性價比最高的方法,代理服務(wù)器具有防火墻的功能,按使用方式可以分為正向代理、反向代理和透明代理,不同的代理方式,其工作原理略有差異,正向代理更多用于控制內(nèi)網(wǎng)對外網(wǎng)的訪問,反向代理更多用于負(fù)載均衡及安全外網(wǎng)發(fā)布等,透明代理功能與正向代理類似,但比正向代理應(yīng)用更加廣泛,通過代理服務(wù)器的方法可以有效提高網(wǎng)絡(luò)安全,這也是針對Web安全最廣泛最重要的防護(hù)措施之一。
[1]張馨蕊.論防火墻技術(shù)在計算機(jī)網(wǎng)絡(luò)安全中的應(yīng)用[J].電腦編程技巧與維護(hù),2021(1):18.
[2]陳志鵬,張鵬,等.一種基于多維特征分析的網(wǎng)頁代理服務(wù)發(fā)現(xiàn)方法[J].信息安全學(xué)報,2018(07):15.
[3]粟毅.Linux系統(tǒng)下Web網(wǎng)站服務(wù)器反向代理設(shè)計與實(shí)現(xiàn)[J].信息與電腦(理論版),2018(09):25.
北京電子科技職業(yè)學(xué)院院內(nèi)課題“基于云計算的代理技術(shù)研究”(編號:2020Z076-KXY)