ISA2004關於HTTP 應用層過濾的兼容性問題及解決方案

最近論壇中有朋友提及通過 ISA Server 不能訪問一些網站。對於這種問題,我首先詢問是否打上了最新的補丁。補丁是故障排除的基礎,只有在打上最新補丁的情況下,才能最好的分析並定位問題。
然後,我們需要從以下兩方面來進行分析:
1、首先分析 ISA Server 的警告和日誌,看是否是被 HTTP 過濾器拒絕訪問。如果是被 HTTP 過濾器拒絕,那麼你可以修改你的 HTTP 策略來允許訪問,比如取消阻止高位字符、驗證正則化或者你自定義的 HTTP 策略等。HTTP 策略是基於訪問規則配置的,你對 HTTP 策略的修改將會影響到通過此訪問規則訪問的所有 Web協議通信,因此在取消之前,你應該評估一下這樣做以後的安全性,如果通過相同訪問規則訪問的其他服務器需要此 HTTP 策略,你最好在原有規則前面單獨創建一個訪問規則,允許客戶訪問原來不能訪問的那個服務器,然後在此規則上修改 HTTP 策略以實現客戶的訪問。
2、如果不是被 HTTP 過濾器拒絕訪問,那麼我們必須要確定是否是因爲 ISA Server 的 HTTP 應用層過濾問題。這個可以通過完全停止 ISA Server 服務後再訪問外部網站進行測試,但是我不建議大家隨意停止 ISA Server 的服務,而是建議大家直接採用我在後文中提供的解決方案來進行測試。
 
在這篇文章中,我將重點來探討一下第2個問題。ISA Server 基於 Web 代理篩選器提供了 HTTP 應用層過濾功能。其實 Web 代理篩選器是一個負責“裝載”其他 Web 篩選器的應用程序篩選器,當 ISA Server 需要對 Web 協議進行應用層過濾時,Microsoft Firewall 服務會在用戶模式下調用 Web 代理篩選器,然後 Web 代理篩選器會調用所有已啓用的 Web 篩選器通過不同方面來對 Web 協議進行應用層過濾。內置的 HTTP 協議綁定了 Web 代理篩選器,因此所有的 HTTP 協議均會接受 Web 代理篩選器的應用層過濾。
ISA Server 完全按照 RFC 標準來進行開發,並且也完全按照 RFC 標準來進行應用層過濾。但是在實際環境中,由於部分 Web 應用程序並未完全按照 RFC 標準進行開發或通信,因此導致了通過 ISA Server 無法訪問這些 Web 站點。例如比較常見的 Web 服務器使用了非法的 HTTP 頭組合,對於普通的 IE 瀏覽器而言,它會忽略這種錯誤,但是對於 ISA Server 這種企業級的防火牆,安全是最重要的,它不能容忍有一絲的疏忽,因此它會阻止這種非法的數據包。
服務與安全永遠是相對的,ISA Server 這種安全行爲也給用戶帶來了不便。你可以配置 ISA Server 取消這種安全行爲,但是這樣也就降低了安全性,因此在做這種配置之前,你需要正確的進行評估。
如果的確是因爲 ISA Server 的應用層過濾導致無法訪問某個 Web 站點,而且很不幸的是,用戶必須要訪問這個站點,那麼我們也只有通過降低 ISA Server 的安全性來允許用戶的訪問。對於這個問題,具有三種解決方案,我將按照安全性影響的大小來依次進行介紹。
方案一 自定義協議
由於內置的 HTTP 協議綁定了 Web 代理篩選器,因此我們可以自定義一個 TCP 80 出站的協議,然後允許用戶使用此協議訪問那個 Web 站點,這條規則需要放在其他允許用戶訪問此 Web 站點的規則之前。
這種方案只是降低了訪問此 Web 站點的安全性,對於其他站點的訪問仍然保持 HTTP 應用層過濾,因此安全影響是最小的。另外需要注意的是,如果是針對 ISA Server 本身到 Web 站點的訪問,這個方案可能會出現問題,因此 ISA Server 可能會通過系統策略來訪問,而不是通過你自定義的規則來訪問。這種時候,你需要禁用允許本地主機訪問外部 HTTP 協議的系統策略。
 
方案二 禁用 Web 過濾器
Web 代理篩選器通過調用不同的 Web 過濾器來實現 HTTP 應用層過濾,如果可以確定是某個 Web 篩選器的問題,那麼你可以直接禁用此 Web 篩選器,例如在 ISA Server 2004 的 HTTP 壓縮補丁未出來時,ISA Server 2004 SP2 的 HTTP 壓縮功能導致了部分 Web 站點無法訪問,此時你就可以禁用壓縮篩選器和壓縮內存緩存篩選器來禁止 HTTP 壓縮功能,從而避免這種訪問問題。
這種方案是在 ISA Server 上全局禁用了 Web 篩選器,但是其他篩選器仍然可以使用,使用這種方案應慎重,我建議大家儘量不要使用這種方案。
 
方案三 禁用 HTTP 協議應用層過濾
內置的 HTTP 協議綁定了 Web 代理篩選器,因此所有的 HTTP 協議均會接受 Web 代理篩選器的應用層過濾。你可以取消 HTTP 協議的 Web 代理篩選器綁定,這樣除了 Web 代理客戶以外,ISA Server 不再對 HTTP 協議進行任何應用層過濾。
這種方案是在 ISA Server 上全局禁用了 HTTP 協議應用層過濾,這樣的安全影響太大,我建議大家只是使用前面的兩種方案,而不使用這種方案。

0

收藏

無盡空虛

50篇文章,7W+人氣,0粉絲

Ctrl+Enter 發佈

發佈

取消

掃一掃,領取大禮包

0

1
分享
無盡空虛
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章