ISA防火牆同時是網絡防火牆和Web代理服務器。ISA Server的防火牆組件容許它同時執行數據包過濾和應用層狀態識別;而Web代理組件容許它做爲CERN兼容的HTTP 1.1 Web代理服務器。Web代理組件(其實是ISA Server 2006防火牆內部的Web代理過濾器)能夠對HTTP通訊進行解碼,執行應用層狀態過濾,而後在轉發給外部的目的Web服務器時重建HTTP通訊。
但是,對於在受ISA防火牆保護的網絡中的主 機和一臺外部網絡的Web服務器間創建的SSL鏈接有點不同,當內部主機經過ISA防火牆的Web代理組件發起SSL請求時,ISA防火牆能夠檢查 HTTP頭或者根據訪問規則來執行過濾;可是,當它們之間的SSL鏈接創建後,因爲在它們之間傳輸的數據實行了SSL隧道加密,ISA防火牆將不能再檢查 它們之間傳輸的數據。
在內部Web客戶和目的Web服務器之間創建SSL隧道的過程以下所示:
一、內部的Web客戶經過在Web瀏覽器的地址欄中發起一個對目的Web服務器的SSL對象的請求,如
https:URL_Name
二、用戶將把這個請求發送到ISA防火牆的8080端口(默認的Web代理偵聽端口);
CONNECT URL_name:443 HTTP/1.1
三、ISA防火牆鏈接目的Web服務器的443端口;
四、當鏈接創建後,ISA防火牆返回數據給Web客戶;
HTTP/1.0 200 connection established
今後時開始,客戶直接和外部的Web服務器通訊,而再也不通過ISA防火牆的Web代理組件,所以,ISA防火牆不能再對封裝在SSL隧道中的數據和命令執行應用層狀態識別。
當外部Web服務器使用標準的 SSL端口TCP 443時,一切都是很正常的,可是,有時候你的Web代理客戶也會使用其餘的端口來訪問SSLWeb站點,例如,Web代理客戶可能會使用端口8433替 代443來訪問某個Web站點,這樣會致使SNAT客戶和防火牆客戶產生錯誤,由於ISA防火牆默認會轉發SNAT客戶和防火牆客戶的HTTP鏈接到 Web代理過濾器,客戶可能會看見空白頁或者指出該頁面不能訪問的錯誤頁。
這個問題就是Web代理過濾器會轉發SSL鏈接到TCP端口443。若是客戶想鏈接其餘不使用TCP 443端口的SSL站點,那麼鏈接嘗試將會失敗。你能夠經過擴展SSL隧道端口範圍來解決這個問題。爲了作到這一點,你須要下載ISA_tpr.js的腳本,而後運行時輸入你想讓ISA防火牆Web代理組件使用的SSL隧道端口範圍。
執行如下步驟以擴展SSL隧道端口範圍:
一、下載 isa_tpr.js 文件,而後將其複製到ISA防火牆計算機上。
二、在命令提示符下輸入:cscript isa_tpr.js /show 顯示以下。
C:\>cscript isa_tpr.js /show
Microsoft (R) Windows Script Host Version 5.6
版權全部(C) Microsoft Corporation 1996-2001。保留全部權利。
This is your current Tunnel Port Range list:
NNTP (single port): 563
SSL (single port): 443
三、輸入命令:C:\>cscript isa_tpr.js /add SSL8443 8443 顯示以下。
C:\>cscript isa_tpr.js /add SSL8443 8443
Microsoft (R) Windows Script Host Version 5.6
版權全部(C) Microsoft Corporation 1996-2001。保留全部權利。
The Web Proxy service should be restarted to pick up the change.
This is the definition for SSL8443:
SSL8443 (single port): 8443
四、再用C:\>cscript isa_tpr.js /show 命令能夠查看添加結果。
C:\>cscript isa_tpr.js /show
Microsoft (R) Windows Script Host Version 5.6
版權全部(C) Microsoft Corporation 1996-2001。保留全部權利。
This is your current Tunnel Port Range list:
NNTP (single port): 563
SSL (single port): 443
SSL8443 (single port): 8443
五、
端口添加完成後,記得重啓ISA Server服務。