複製鏈接
請複製以下鏈接發送給好友

反向代理

鎖定
反向代理服務器位於用户與目標服務器之間,但是對於用户而言,反向代理服務器就相當於目標服務器,即用户直接訪問反向代理服務器就可以獲得目標服務器的資源。同時,用户不需要知道目標服務器的地址,也無須在用户端作任何設定。反向代理服務器通常可用來作為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] 
參考資料
  • 1.    姜大慶主編;鄧榮副主編.Linux系統與網絡管理:中國鐵道出版社,2012.05:第282頁
  • 2.    周武陽.反向代理技術在Web服務器保護中的有效應用[J].大觀,2015,(10):227-227.
  • 3.    周泉.反向代理淺析[J].計算機光盤軟件與應用,2014,(22):98-99.
  • 4.    沈忠誠.反向代理技術在校園網中的應用[J].電腦知識與技術,2011,07(29):7102-7103.
  • 5.    姚宣霞,劉振華,武濤編著.網絡安全技術與應用:中國鐵道出版社,2012.12:第86頁