淺析反向代理

淺析反向代理

  反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的鏈接請求,而後將請求轉發給內部網絡上的服務器,並將從服務器上獲得的結果返回給internet上請求鏈接的客戶端,此時代理服務器對外就表現爲一個反向代理服務器。html

工做方式

  一般的 代理服務器,只用於代理內部網絡對Internet的鏈接請求,客戶機必須指定代理服務器,並將原本要直接發送到Web服務器上的http請求發送到代理服務器中。因爲外部網絡上的 主機並不會配置並使用這個代理服務器,普通代理服務器也被設計爲在Internet上搜尋多個不肯定的服務器,而不是針對Internet上多個客戶機的請求訪問某一個固定的服務器,所以普通的Web代理服務器不支持外部對內部網絡的訪問請求。當一個代理服務器可以代理外部網絡上的主機,訪問內部網絡時,這種代理服務的方式稱爲反向代理服務。此時代理服務器對外就表現爲一個Web服務器,外部網絡就能夠簡單把它看成一個標準的Web服務器而不須要特定的配置。不一樣之處在於,這個服務器沒有保存任何網頁的真實數據,全部的靜態網頁或者CGI程序,都保存在內部的Web服務器上。所以對反向 代理服務器的攻擊並不會使得網頁信息遭到破壞,這樣就加強了Web服務器的安全性。
反向代理方式和包過濾方式或普通代理方式並沒有衝突,所以能夠在 防火牆設備中同時使用這兩種方式,其中反向代理用於外部網絡訪問內部網絡時使用,正向代理或包過濾方式用於拒絕其餘外部訪問方式並提供內部網絡對外部網絡的訪問能力。所以能夠結合這些方式提供最佳的安全訪問方式。

CDN

   CDN的全稱是Content Delivery Network,即內容分發網絡。其基本思路是儘量避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩定。經過在網絡各處放置反向代理 節點服務器所構成的在現有的互聯網基礎之上的一層智能 虛擬網絡,CDN系統可以實時地根據 網絡流量和各節點的鏈接、負載情況以及到用戶的距離和響應時間等綜合信息將用戶的請求從新導向離用戶最近的服務節點上。其目的是使用戶可就近取得所需內容,解決 Internet 網絡擁擠的情況,提升用戶訪問網站的響應速度。

代理服務器

  若是您的內容服務器具備必須保持安全的敏感信息,如信用卡號數據庫,可在 防火牆外部設置一個 代理服務器做爲內容服務器的替身。當外部客戶機嘗試訪問內容服務器時,會將其送到代理服務器。實際內容位於內容服務器上,在防火牆內部受到安全保護。代理服務器位於防火牆外部,在外部客戶機看來就像是內容服務器。
當客戶機向站點提出請求時,請求將轉到代理服務器。而後,代理服務器經過防火牆中的特定通路,將客戶機的請求發送到內容服務器。內容服務器再經過該通道將結果回傳給代理服務器。代理服務器將檢索到的信息發送給客戶機,好像代理服務器就是實際的內容服務器(參見圖 14-1)。若是內容服務器返回錯誤消息, 代理服務器會先行截取該消息並更改標頭中列出的任何 URL,而後再將消息發送給客戶機。如此可防止外部客戶機獲取內部內容服務器的重定向 URL。
這樣,代理服務器就在 安全數據庫和可能的惡意攻擊之間提供了又一道屏障。與有權訪問整個數據庫的狀況相對比,就算是僥倖攻擊成功,做惡者充其量也僅限於訪問單個事務中所涉及的信息。未經受權的用戶沒法訪問到真正的內容服務器,由於 防火牆通路只容許代理服務器有權進行訪問。
圖 14-1 反向代理服務器就像是真正的內容服務器
反向代理服務器就像是真正的內容服務器 反向代理服務器就像是真正的內容服務器
能夠配置 防火牆路由器,使其只容許特定端口上的特定服務器(在本例中爲其所分配端口上的 代理服務器)有權經過防火牆進行訪問,而不容許其餘任何機器進出。
安全反向代理 當代理服務器與其餘機器之間有一個或多個鏈接使用 安全套接字層(SSL) 協議加密數據時,即會進行安全反向代理。

用途

安全反向代理有許多用途:
能夠提供從 防火牆外部 代理服務器到防火牆內部安全內容服務器的加密鏈接。
能夠容許客戶機安全地鏈接到代理服務器,從而有利於安全地傳輸信息(如信用卡號)。
安全反向代理會形成各安全鏈接因加密數據所涉及的 系統開銷而變慢。可是,因爲 SSL 提供了高速緩存機制,因此鏈接雙方能夠重複使用先前協商的安全參數,從而大大下降後續鏈接的系統開銷。

配置方法

配置安全反向 代理服務器的方法有三種:
Secure client to proxy。若是未經受權的用戶不多或根本沒有機會訪問代理服務器與內容服務器之間交換的信息,則此方案頗有效(參見圖 14-2)。
圖 14-2 客戶機安全鏈接到代理服務器
Secure proxy to content server。若是客戶機在 防火牆外部而內容服務器在防火牆內部,則此方案頗有效。在此方案中, 代理服務器能夠充當站點之間的安全通道(參見圖 14-3)
圖 14-3 代理服務器安全鏈接到內容服務器
Secure client to proxy and secure proxy to content server。若是須要保護服務器、 代理服務器和客戶機三者間所交換信息的安全,則此方案頗有效。在此方案中,代理服務器既可起到站點間安全通道的做用,又可增長客戶機驗證的安全性(參見圖 14-4)。
圖 14-4 客戶機安全鏈接到代理服務器而且代理服務器安全鏈接到內容服務器
有關如何設置上述每種配置的信息,參見設置反向代理服務器。
除了 SSL 以外, 代理服務器還可使用客戶機驗證,這種方法要求向代理服務器提出請求的計算機提供證書(或標識表單)以覈實其身份。

比較

下面將對幾種典型的代理服務做一個簡單的比較。在網絡上常見的 代理服務器有三種:
1. 標準的代理緩衝服務器
一個標準的代理緩衝服務被用於緩存靜態的網頁(例如:html文件和圖片文件等)到本地網絡上的一臺主機上(即代理服務器)。當被緩存的頁面被第二次訪問的時候,瀏覽器將直接從本地代理服務器那裏請求數據而再也不向原web站點請求數據。這樣就節省了寶貴的網絡帶寬,並且提升了訪問速度。可是,要想實現這種方式,必須在每個內部主機的瀏覽器上明確指明代理服務器的IP地址和端口號。客戶端上網時,每次都把請求送給代理服務器處理,代理服務器根據請求肯定是否鏈接到遠程web服務器獲取數據。若是在本地緩衝區有目標文件,則直接將文件傳給用戶便可。若是沒有的話則先取回文件,先在本地保存一份緩衝,而後將文件發給客戶端瀏覽器。
2. 透明代理緩衝服務器
透明代理緩衝服務和標準 代理服務器的功能徹底相同。可是,代理操做對客戶端的瀏覽器是透明的(即不需指明代理服務器的IP和端口)。透明代理服務器阻斷網絡通訊,而且過濾出訪問外部的HTTP(80端口)流量。若是客戶端的請求在本地有緩衝則將緩衝的數據直接發給用戶,若是在本地沒有緩衝則向遠程web服務器發出請求,其他操做和標準的代理服務器徹底相同。對於Linux操做系統來講,透明代理使用Iptables或者Ipchains實現。由於不須要對瀏覽器做任何設置,因此,透明代理對於ISP(Internet服務器提供商)特別有用。
3. 反向代理緩衝服務器
反向代理是和前兩種代理徹底不一樣的一種代理服務。使用它能夠下降原始WEB服務器的負載。反向 代理服務器承擔了對原始WEB服務器的靜態頁面的請求,防止原始服務器過載。它位於本地WEB服務器和Internet之間,處理全部對WEB服務器的請求,阻止了WEB服務器和Internet的直接通訊。若是互聯網用戶請求的頁面在代理服務器上有緩衝的話,代理服務器直接將緩衝內容發送給用戶。若是沒有緩衝則先向WEB服務器發出請求,取回數據,本地緩存後再發送給用戶。這種方式經過下降了向WEB服務器的請求數從而下降了WEB服務器的負載。
相關文章
相關標籤/搜索