實驗目標
反向代理有兩個模型。一個模型利用 Proxy Server 的安全功能來處理作業事件,
而另一個模型則利用其快取功能在高用量伺服器上提供負載平衡。
這兩種模型與常規的代理伺服器用法不同的是它們不會嚴格地在防火牆上作業。
代理伺服器是伺服器的替身
若某台內容伺服器帶有必須確保安全的敏感資訊,例如信用卡號碼的資料庫,
則可以在防火牆之外設定一台代理伺服器做為內容伺服器的替身。
當外部用戶端嘗試存取內容伺服器時,其會被傳送至代理伺服器。
真正的內容安全地儲存在防火牆之內的內容伺服器中。
代理伺服器位於防火牆之外,對於用戶端來說就好像內容伺服器一樣。
節錄敘述參考網頁來源: http://docs.sun.com/source/819-3163/agrvprx.html
實驗拓樸準備
本例將修改下圖DNS與Proxy Server角色合併為一台Server(Mail:192.168.0.196)
Trust 內部Web Site: 將 192.168.2.20/24 與192.168.2.30/24 合併為一台
Fedora 14: 192.168.2.20 內底下含有以下三個虛擬主機
VirtualHost: http://s1.lohas.com
VirtualHost: http://s2.lohas.com
VirtualHost: http://s3.lohas.com
DNS & Proxy Server:
使用CentOS 5.5: 將三台主機A Record 指向對應Proxy Server IP:192.168.0.196/24
首先我們將編輯/var/named/chroot/var/named/lohas.com
將三筆虛擬主機IP A Record 指向 Proxy Server(本Lab將Proxy與DNS合併為一台*.196)
Nslookup 檢測上三筆紀錄是否OK
(2) 建立虛擬目錄配置 (Name-Base Virtual Host)192.168.2.20(Fedora 14)
從下圖中,我們建立s1.lohas.com ,s2.lohas.com,s3.lohas.com 三個虛擬主機配置
vi /etc/httpd/conf/httpd.conf
(3) 編輯Squid Server 組態(CentOS 5.5:192.168.0.196)以完成Reverse Proxy設定
vi /etc/squid/sduid.conf
http_port 80 vhost #預設Squid 採用3128 port號,我們將其更改為80
#vhost: Accelerator mode using Host header for virtual domain support. Implies accel.
cache_peer 192.168.2.20 parent 80 0 no-query originserver #定義web Site 實際位置
cache_peer_domain 192.168.2.20 s1.lohas.com s2.lohas.com s3.lohas.com
#client 端存取s1.lohas.com時,squid 將至192.168.2.20 取得Data,再允回覆client
acl s2_vir dstdomain s2.lohas.com
acl s3_vir dstdomain s3.lohas.com
acl web_port port 80 #定義web_port:80
http_access allow s1_vir web_port #開放存取此三台虛擬主機權限
http_access allow s2_vir web_port
http_access allow s3_vir web_port
*修改完成設定後請重新啟動Squid*
(4 .Final: Clinet 端測試連線s1 ,s2,s3 三台主機是否Reverse Proxy運行OK? 如下圖Test
http://s1.lohas.com
http://s2.lohas.com
http:/s3.lohas.com

LAB設計實作時參考資料:
Linux 網路安全技術與實現/恆逸資訊/陳勇勳著