[摘要] 電子商務網(wǎng)站是企業(yè)開展電子商務的基礎平臺,網(wǎng)站資源的安全是企業(yè)能否成功實施電子商務的關鍵,本文介紹了一種利用反向代理技術來保證網(wǎng)站資源安全的方法。
[關鍵詞] 電子商務 反向代理 網(wǎng)站資源 安全 DNS
一、引言
電子商務是利用先進的電子技術進行商務活動的總稱。它通過網(wǎng)絡、使用先進的信息處理工具,利用計算機這種載體,將買賣雙方的商務信息、產(chǎn)品信息、銷售信息、服務信息,以及電子支付等活動,用相互認同的交易標準來實現(xiàn)。進行電子商務活動的最基礎平臺是電子商務網(wǎng)站,電子商務網(wǎng)站在企業(yè)的電子商務體系中有著重要的作用,其安全直接關系企業(yè)實施電子商務能否成功。
目前,對電子商務網(wǎng)站的保護,采用最多的方法是使用防火墻技術,只允許用戶訪問網(wǎng)站的WEB服務,過濾掉對網(wǎng)站服務器其他服務的訪問。這種方法有一個問題:網(wǎng)站的WEB服務對外來說是完全暴露的,用戶可以直接和網(wǎng)站服務器通信。
二、反向代理技術
通常的代理一般稱為正向代理,只用于代理內(nèi)部網(wǎng)絡對外部網(wǎng)絡的連接請求,不支持外部網(wǎng)絡對內(nèi)部網(wǎng)絡的訪問請求(因為內(nèi)部網(wǎng)絡對外部網(wǎng)絡來說是不可見的)。當一個代理服務器能夠代理外部網(wǎng)絡上的主機訪問內(nèi)部網(wǎng)絡時,這種代理的方式稱為反向代理。
反向代理就是通常所說的WEB服務器加速,它是一種通過在繁忙的WEB服務器和外部網(wǎng)絡之間增加一個高速的WEB緩沖服務器來降低實際的WEB服務器的負載的一種技術。反向代理是針對WEB服務器提供加速功能的,作為代理緩存,它并不是針對瀏覽器用戶,而針對一臺或多臺特定WEB服務器,它可以代理外部網(wǎng)絡對內(nèi)部網(wǎng)絡的訪問請求。
反向代理服務器會強制將外部網(wǎng)絡對要代理的服務器的訪問經(jīng)過它,這樣反向代理服務器負責接收客戶端的請求,然后到源服務器上獲取內(nèi)容,把內(nèi)容返回給用戶并把內(nèi)容保存到本地,以便日后再收到同樣的信息請求時,它會把本地緩存里的內(nèi)容直接發(fā)給用戶,以減少后端WEB服務器的壓力,提高響應速度,代理的服務器對外部網(wǎng)絡來說是不可見的。
反向代理服務器的工作流程歸納如下:
1.用戶通過域名發(fā)出訪問WEB服務器的請求,該域名被DNS服務器解析為反向代理服務器的IP地址,因此用戶的請求被重定向到反向代理服務器。
2.反向代理服務器接受用戶的請求。
3.反向代理服務器在本地緩存中查找請求的內(nèi)容,找到后直接把內(nèi)容發(fā)送給用戶。
4.如果本地緩存里沒有用戶所請求的信息內(nèi)容,反向代理服務器會代替用戶向源WEB服務器請求同樣的信息內(nèi)容,并把信息內(nèi)容轉發(fā)給用戶,如果信息內(nèi)容是可緩存的還會把它保存到緩存中。
實施反向代理,只要將反向代理服務器放置在要代理的WEB服務器前端并在DNS系統(tǒng)中將要代理的服務器域名解析為反向代理服務器IP地址(達到強制將外部網(wǎng)絡對要代理服務器的訪問經(jīng)過反向代理服務器的目的)即可,如圖1所示:
在企業(yè)的電子商務網(wǎng)站建設中采用反向代理技術后,解決了網(wǎng)站服務器對外可見的問題,還有如下幾個突出優(yōu)點:
1.節(jié)約了有限的IP地址資源。企業(yè)內(nèi)所有的網(wǎng)站共享一個在Internet中注冊的IP地址,這些服務器分配私有地址,采用虛擬主機的方式對外提供服務。
2.保護了真實的WEB服務器。企業(yè)內(nèi)所有網(wǎng)站服務器對外都不可見,外網(wǎng)只能看到反向代理服務器,而反向代理服務器上并沒有存放實際的資源,因此,可以保證真實WEB服務器上資源的安全。
3.加快了對網(wǎng)站的訪問速度,減輕WEB服務器的負擔。反向代理服務器具有緩存網(wǎng)頁的功能,如果用戶需要的內(nèi)容在緩存中,則可以直接從代理服務器中取得,減輕了WEB服務器的負荷,同時也加快了用戶的訪問速度。
三、反向代理服務器的部署
目前,能夠實現(xiàn)反向代理的軟件有很多,但用的最多還是由美國政府大力助的Squid開源免費軟件,該軟件可運行在任何平臺上,本文選擇Linux操作系統(tǒng)來部署Squid,因為Linux系統(tǒng)也是開源免費的。
1.Squid軟件的獲取。可以從http://www.squid-cache.org網(wǎng)站下載squid軟件的最新版本,本文下載的是squid-2.6.STABLE13.tar.gz。
2.Squid軟件的安裝。
(1)將獲取的文件squid-2.6.STABLE13.tar.gz拷貝到/tmp目錄;
(2)解壓該文件,運行tar xvzf squid-2.6.STABLE13.tar.gz命令,在/tmp目錄中生成名為squid-2.6.STABLE13的目錄;
(3)進入該目錄,執(zhí)行./configure,系統(tǒng)缺省將軟件安裝在/usr/local/Squid目錄,用戶也可以用--prefix=目錄,指定安裝目錄;
(4)運行make;
(5)運行make install;
(6)如沒有錯誤,安裝結束,Squid的可執(zhí)行文件在安裝目錄的bin子目錄下,配置文件在ctc子目錄下。
3.Squid軟件的配置。通過squid配置反向代理主要就是配置“squid.conf”這個配置文件,Squid2.6中和反向代理配置相關的主要包含以下三項(詳細配置可參考http://www.squid-cache.org):
(1)http_port 配置反向代理服務器的IP地址(和外網(wǎng)相連地址)和監(jiān)聽端口http_port 202.115.144.30:80 vhost vport。
(2)cache_peer配置內(nèi)部的WEB服務資源,該資源可以是真實WEB服務器的IP地址,也可以是的域名(內(nèi)部可見的域名),一般都采用IP地址,需要反向代理幾個WEB服務器就要有幾個對應。的配置cache_peer 192.168.1.254 parent 80 0 no-query originserver
(3)cache_peer_domain指定對外部發(fā)布的資源(外網(wǎng)可見的域名)與真實資源的對應關系,同樣,需要反向代理幾個WEB服務器就要有幾個對應的配置cache_peer_domain 192.168.1.254 www.example.com。
4.DNS系統(tǒng)的配置。在DNS服務器中將所有需要代理的真實WEB服務器的域名對應于反向代理服務器的IP地址www.example.com IN A 202.115.144.30,經(jīng)過這樣對Squid配置和DNS的修改后,對www.example.com的訪問都會由反向代理服務器202.115.144.30定向到192.168.1.254這臺真實的WEB服務器。
四、反向代理服務器的安全
Squid本身不具有認證程序,但是可以通過外部認證程序來實現(xiàn)用戶認證,最常用的是采用NCSA認證,因為NCSA認證是Squid源代碼包自帶的一個外部認證程序。操作方法如下:
1.cd /tmp/squid-2.6.STABLE13/auth-modules/NCSA。
2.make;make install。
3.編譯成功后,會生成ncsa-auth的可執(zhí)行文件,拷貝生成的執(zhí)行文件ncsa-auth到/usr/local/squid/bin目錄cp ncsa_auth /usr/local/squid/bin。
4.修改squid.conf中的相關選項如下所示:
Authenticate_program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd。
5.定義相關的用戶類acl auth_user proxy_auth REQUIRED。
注意,REQUIRED關鍵字指明了接收所有合法用戶的訪問。
6.設置http_access。
http_access allow auth_user。
7.利用apache攜帶的工具軟件htpasswd在/usr/local/squid/etc下生成密碼文件并添加相應的用戶信息,該密碼文件每行包含一個用戶的用戶信息,即用戶名和密碼; htpasswd -c /usr/local/squid/etc/passwd test test。這樣就在密碼文件passwd中添加用戶和密碼都是test的用戶。然后重新啟動Squid,密碼認證就生效了,訪問代理服務器就需要輸入賬號和密碼。
五、結束語
反向代理方式不單是一種WEB服務器加速器,而且使也一種對外提供WEB發(fā)布時使用的有效的防火墻技術,使用它不但能節(jié)約緊缺的IP地址資源,加速WEB服務器的訪問速度,而且能夠保護WEB服務器,因此能夠適應多種應用場合,特別是應用在電子商務這種對安全要求特別高的場合。
參考文獻:
[1]何世曉田鈞:Linux系統(tǒng)管理員.北京:機械工業(yè)出版社, 2007
[2]孫青:代理服務器安裝配置與應用.北京:冶金工業(yè)出版社,2002
[3]http://www.squid-cache.org