從去年年底開始,我開始負責公司的ISA2006服務器升級項目,目標是把ISA2006升級到最新版的TMG2010 SP1。經過三個多月的努力,終于基本達到了預期目標。任務完成之余,回顧項目經歷,有一些經驗和大家分享一下,供有意升級ISA2006的朋友們參考。
一、TMG升級評估
現有的ISA2006是否需要升級到TMG?工程師只要想升級ISA2006,一定會被領導問這個問題。要回答這個問題,首先要評估升級后的收益。俗話說,無利不起早嘛。相比ISA2006,TMG2010的新增功能大致有下列內容:
1、企業級的安全整合和管理
2、架構變更與提升
3、Web非法軟件掃描與過濾
4、路由架構改進
5、網絡入侵保護系統
6、郵件安全傳輸與過濾
7、人性化管理與集成操作
這些功能乍一看都不錯,但究竟能用到哪些,這就要結合自己的實際環境好好分析分析了。我們升級TMG主要是基于哪些考慮呢?首先,TMG的架構變更對我們很有吸引力。ISA2006使用X86架構,X86架構管理高性能服務器時有些力不從心。我們ISA2006服務器的硬件很好,4顆4核CPU的刀片服務器,16G內存,但ISA2006只使用了3G內存,讓人感覺硬件資源浪費得很嚴重。ISAf2006升級到TMG之后,TMG2010使用X64架構,管理硬件資源要好上很多。至少內存使用達到8G以上了,感覺硬件利用率提升了不少,小賺了一筆。
其次,TMG提供的ISP冗余功能我們也很感興趣。ISP冗余支持TMG服務器使用兩條ISP鏈路,而且可以在兩條ISP鏈路上選擇故障轉移模式或負載平衡模式。我們公司的業務對互聯網有很強的依賴性,雖然我們選擇的電信運營商可靠性不錯,很少掉鏈子,但畢竟不能把雞蛋都放到一個籃子里啊。所以對使用單ISP接入方案我們還是有些小小的忐忑不安,現在有了ISP冗余,那就可以選擇兩家可靠的電信運營商來設計一套高可用的ISP接入環境,這下就可以踏踏實實地把心放到肚子里了。
我們升級還有一個技術之外的原因,那就是我們的領導是微軟的骨灰級粉絲,對微軟產品的最新版本有非常濃厚的興趣。一般來說,只要微軟服務器出了SP1,基本上領導就要督促我們考慮升級問題了。這些年我們總是第一時間體驗微軟的服務器產品,積極升級,積極測試,積極排錯,給微軟產品改進做出了相當大的貢獻啊。
看到這兒,有些朋友可能就要問了:“不對啊,TMG還有很多改進功能啊,怎么沒聽到你提啊,是不是你這家伙偷懶啊”?其實還真不是我偷懶,有些功能不錯,但并不適合我們的環境。比如,網絡入侵檢測保護是個不錯的功能,可是這個功能需要專門的許可證,是收費的,現在這年頭,一提到錢就容易傷感情…..所以還是算了吧。再舉個例子,Web非法軟件掃描中包括了一個URL篩選功能,其實就是微軟做的一個上網行為管理系統。這個功能看起來也不錯,系統可以根據用戶的訪問地址,自動判斷出用戶是訪問一個正常的商業站點,還是訪問一個娛樂站點,甚至是訪問非法的色情,賭博站點。如果用戶訪問的目標地址異常,例如在上班時間訪問playboy的網站,URL篩選可以自動限制用戶的訪問行為。這個功能看起來不錯,可是我們測試了一下,發現這套系統對國內互聯網公司的識別準確率實在是差點意思。在URL篩選中輸入我們公司的網址,結果把我們這個金融公司識別成了房地產公司,這也就算了。我們再用www.163.net測試一下,居然把這個老牌的郵件運營商識別成了色情公司(目前這個問題已經被修正),我們想了又想,實在是不敢啟用這個功能。萬一哪天這個功能導致用戶無法訪問正常的業務系統,我們就麻煩了。算了,不求有功,但求無過,還是別折騰了。大家一定要相信一點,穩定是壓倒一切的!
說了這么多,其實就一個意思,ISA2006是否需要升級并沒有標準答案,應該根據自己的使用環境,因地制宜地進行決策。如果目前使用的產品可以滿足需求,新產品的功能又基本使用不上,那我的建議是可以考慮不升級,畢竟升級是有風險的,沒有明顯的收益就沒必要去做了。如果目前的產品無法滿足需求,而且我們又擁有升級所需要的資源(往往升級后對硬件資源的需求會提高),那就不妨積極地體驗一下最新版本帶來的新功能。
二、TMG升級注意事項
ISA2006是32位的服務器產品,TMG是64位產品。因此,我們不可能從ISA2006就地升級到TMG2010,只能考慮把ISA2006的配置遷移到TMG2010。好在從ISA2006遷移到TMG2010并不困難,微軟支持多種場景下的遷移方案。相比較從ISA2004升級到ISA2006,TMG的遷移方案可以設計得更加靈活。TMG的遷移要注意下列事項:
1、 TMG2010標準版可以升級到TMG2010企業版。也就是說,我們可以從ISA2006標準版遷移到TMG2010標準版,然后從TMG2010標準版再升級到TMG2010企業版。在ISA2006中,標準版和企業版差別非常大,企業版的配置存儲在配置存儲數據庫(CSS)中,而標準版根本就沒有CSS。因此ISA2006如果想從標準版升級到企業版,只能是先卸載ISA2006標準版,然后重新安裝ISA2006企業版。在TMG中,標準版和企業版之間的鴻溝已經消失了,標準版也擁有CSS!從標準版升級到企業版,只需要輸入一個序列號就OK了。看起來,TMG標準版和企業版的區別主要體現在版權上,技術上已經沒有區別了。這種設計方案對企業其實更加有利,企業完全可以先購買低價的TMG標準版。如果隨著企業的發展,標準版產品不堪重負了,企業可以從容地把TMG升級為企業版,完全沒有后顧之憂!
2、 從ISA2006導出配置數據時,必須導出機密信息和用戶配置數據,如下圖所示。如果導出數據中沒有包括加密的機密信息,TMG導入時會報錯。另外,我們也不能僅僅導出ISA2006的防火墻策略,TMG也不支持這種導入方式。其實我們做TMG項目時最初僅僅想把ISA的防火墻策略遷移到TMG上,因為我們有些擔心整體導入ISA2006的配置信息后會對TMG的健康狀態產生影響。為什么這樣說呢,主要是因為之前的ISA2006服務器上發生過一些莫名其妙的問題,例如只要一啟用WPAD,就會影響用戶連接WSUS服務器。這個奇怪的問題在微軟開了CASE,微軟也一直沒有搞定,因此我們對ISA2006的健康狀況就有些隱隱約約的擔心。我們特別害怕ISA2006的這種亞健康狀態會隨著配置的遷移傳染給TMG,這樣我們可就沒有退路了。以前ISA2006有問題時,大家總是很期盼地說:等到升級TMG就歐了!一旦TMG再有問題,那就要被群眾扁死啊。所以啊,我們被迫在TMG上整體導入ISA配置后,立即在TMG上對防火墻策略單獨進行了備份,以防萬一。好在TMG導入ISA配置后工作得不錯,到目前為止狀態保持得還是相當穩定的。(圖1)
三、TMG新功能
1、ISP-R
ISP-R是TMG中一個非常好用的新增功能,我們對這個功能仰慕已久,可惜ISA一直沒有提供這個功能。無數管理員曾經在論壇上無助地詢問:ISA服務器能否使用兩條ISP鏈路啊?答案是否定的!四年等一回,TMG終于給我們帶來了ISP-R。現在ISP-R既可以利用兩條ISP鏈路實現負載平衡,也可以實現故障轉移。如下圖所示,TMG服務器上同時使用了兩條活動的ISP鏈路。(圖2)
使用ISP-R要特別注意DNS服務器的配置。ISP-R檢測鏈路狀態的方法是通過被檢測鏈路隨機訪問DNS根服務器,如果訪問成功,鏈路狀態就是健康的;如果一連三次訪問失敗,TMG會把鏈路狀態標注為不可用。如果你不想讓TMG檢測DNS根服務器,希望TMG檢測一個國內的DNS服務器,你可以參考下列腳本進行修改。還有一點要注意的是,ISP-R只對NAT數據有效。也就是說,ISP-R對TMG本地主機是不起作用的。如果你希望TMG服務器通過電信的ISP鏈路訪問電信的DNS服務器,通過網通的ISP鏈路訪問網通的DNS服務器,你需要使用route add命令寫靜態路由。
Configuring verification of link status
In the default setting, TMG checks the status of the ISP link by trying to establish a TCP connection on port 53 (DNS zone transfer) to a list* of root DNS server on a round robin basis. If a connection can be established, TMG will consider the link active.
Although, the IP addresses and the TCP port used for the verification cannot be configured directly from the management console, If you need to modify these settings, e.g. because you setup your TMG server without direct access to the internet, you can do this by using the TMG COM, through simple Visual Basic script like this one:
Note: Please take an export of TMG configuration prior to running the script. To get the original behavior you need to import the original configuration
‘ ==================================================================
‘ we need to get the ISP Redundancy configuration object first:
set oRoot = CreateObject(“FPC.Root”)
set oArray = oRoot.GetContainingArray()
set oExternalNetwork = oArray.NetworkConfiguration.Networks(“External”)
set oISPRCfg = oExternalNetwork.ISPRedundancyConfig
‘ ===================================================================
‘ if you want to remove the complete list of connectivity verification
‘addresses:
oISPRCfg.ConnectivityVerificationRemoteIpAddresses.RemoveAll()
‘ To add a new address (in this case 192.168.1.1) to check the connectivity:
oISPRCfg.ConnectivityVerificationRemoteIpAddresses.Add “192.168.1.1”
‘ To change the TCP port for connectivity verification (default: 53)
oISPRCfg.ConnectivityVerificationRemotePort = 53
‘ To save the changes
oISPRCfg.Save
2、監控
TMG的報表功能得到了增強,我們可以在TMG中針對重要用戶輸出單獨的訪問報表。如下圖所示,我們可以在TMG中創建用戶活動報告,訪問報告中將輸出用戶的訪問內容,訪問時間,訪問類別等參數。我們既可以輸出單個用戶的訪問報告,也可以針對多個用戶進行輸出。(圖3)
報告輸出的效果如下圖所示。通過這種報告,我們可以很容易地針對用戶進行上網行為監控,輔導用戶在上班時間合理使用互聯網鏈路。(圖4)
四、TMG產品缺陷
微軟的服務器產品以補丁總多而著稱,因此大家在使用過程中慢慢有了這樣一個習慣,如果一個服務器產品沒有出SP1,一般不會考慮在生產環境中應用。但這次我發現即使有了SP1也不一定包打天下,SP1仍然會有一些缺陷,下面是我使用TMG2010 SP1的經歷。
TMG2010安裝完成后,我馬上在第一時間安裝TMG2010 SP1。SP1安裝完成后,立刻發現重啟服務器后10多分鐘還沒能進入系統,我的冷汗立刻就流下來了。額的娘啊,不會剛打完SP1就崩潰了吧。還好,又等了幾分鐘,終于進入系統了,最奇怪的是,查看一下還沒有發現有什么錯誤,難道TMG要休息一下?感覺去微軟論壇看看,這才發現有類似問題的還大有人在,看來這是TMG2010 SP1的通病。解決方法微軟也提供了,TMG2010 SP1 Update1就可以解決這個問題,打了Update1之后,TMG算是恢復正常了。只能感嘆這個TMG2010 SP1是怎么測試的,難道測試時沒有重啟過系統?
TMG服務器安裝完成后,我們使用兩個TMG服務器組成了一個陣列,然后又配置了負載平衡。負載平衡的效果非常好,1500個用戶,分布在兩臺服務器上的人數分別是740和760。但是,在TMG的控制臺上觀察,發現目前只使用了第一臺TMG服務器的Web緩存,第二臺TMG服務器的Web緩存利用率為零。Web緩存非常重要,這可不是鬧著玩的,我趕緊對TMG服務器上的緩存內容進行檢測。如果想檢測TMG的緩存內容,可以去微軟下載TMG Tools。TMG Tools中有一個名為Cachedir的工具,可以實時查看TMG服務器的緩存內容。我用Cachedir檢查了兩臺服務器,發現內容很正常,而且兩臺服務器緩存都有用戶訪問。那TMG控制臺上又怎么解釋呢?查了半天,也沒有結果,算了,去微軟開個CASE吧。還好,微軟很快就在測試環境中復現了這個故障。過了幾天,微軟工程師正式答復:這是個產品Bug,這個CASE我們免費。現在我們只能等產品組出Hotfix,但什么時候能提供hotfix,就沒有具體的時間表了,請您耐心等待…我又奇怪了,這個現象非常明顯啊,難道一直沒有針對陣列進行測試?這微軟到底是怎么做產品測試的!
過了一段時間,SCOM服務器也開始來找麻煩了。SCOM服務器基本每天都會報幾個TMG Web緩存的錯誤,大致內容是這樣的:
警報: Forefront TMG 服務器 - 緩存: “當前每個請求的緩存提取平均毫秒數”錯誤
來源: Caching - HQ-TMG2
路徑: HQ-TMG2.chamc.com.cn
上次修改者: 系統
上次修改時間: 2011/1/19 19:04:18
警報描述: 800.375927734375
這個警報并不復雜,意思是SCOM服務器三分鐘內隨機統計了5個客戶機向TMG服務器發起一個Web請求后所需要的平均響應時間,TMG服務器發現客戶機平均需要經過800豪秒才能從TMG服務器收到回應。這就有些不對了,SCOM服務器認為這個平均值應該在300毫秒以下。考慮到客戶機發起請求后,如果請求的內容在TMG的Web緩存中,那響應速度應該在10毫秒以內。因此,看到這個警報,我就考慮是否TMG的緩存性能出現了問題。可是,我很快就發現一個難以自圓其說的現象。SCOM服務器發起這個警報的時間,基本都是在夜間或雙休日,工作時間內反而沒有警報。那就不對了, TMG服務器應該在工作時段負載重啊,怎么反而在工作時段沒有這個警報呢?沒轍了,再去微軟開個CASE吧。微軟工程師的水平還是挺高的,查了一番資料后給了我一個挺好的解釋:是這樣的,如果用戶訪問的內容在TMG的緩存中,那TMG的響應速度是很快的;如果用戶訪問的內容不在TMG的緩存中,例如用戶下載文件,或者用戶使用視頻點播,這種情況下TMG就得先從互聯網服務器下載數據,然后才能響應用戶,這樣響應時間就會很長,需要上千甚至上萬毫秒都有可能。在工作時間內,很多用戶提交的Web請求都可以在TMG緩存中得到響應,因此緩存的利用率高。平均一下,每個用戶提交Web請求所需要的平均響應時間就會非常短,SCOM就不容易報警。非工作時間呢,使用TMG服務器的用戶少了,TMG的Web緩存利用率就低了,用戶的Web請求就不容易從TMG緩存中獲得響應(你可以想象一下,非工作時間用戶訪問的是神馬內容),因此統計出來的平均響應時間就長,這時就有可能觸發SCOM警告了。
聽了微軟的解釋,我覺得豁然開朗。哦,原來TMG服務器的緩存性能沒問題,這時好事,值得高興啊。但是,但是,仔細一想就不對了,TMG服務器沒問題,你SCOM報什么警啊!存心騷擾是不是?我向微軟的工程師咨詢:既然如此,SCOM的這個警報到底有什么意義呢?這回輪到微軟的工程師張口結舌了,只能推說要和產品組反映這個問題,然后給我答復。過了幾天,微軟工程師來電話了:經過和產品組確認,確定這又是一個產品Bug!解決方法是等待產品組的Hotfix,Hotfix沒出來之前建議先把SCOM的這個警報禁用,免得收到無意義的警報。既然是Bug,那這個CASE還是免費的……
五、TMG升級總結
雖然TMG產品還存在一些小缺陷,但不能否認TMG相比之前的ISA2006還是有很大進步的。至少在產品穩定性方面,TMG比ISA2006強大了很多。以前我們使用ISA2006時,隔上一段時間就會出現ISA2006不堪重負,不工作了,必須重啟服務器才能恢復正常。VPN用戶也經常抱怨ISA的穩定性不佳,時常掉線。升級到TMG之后,這些問題再也沒有出現過。三個月以來TMG堅如磐石地提供著Web代理,服務器發布,VPN接入等服務,盡情地顯示著64位系統的優越性。總體來看,TMG2010做為新一代的企業級路由防火墻,在產品架構,防火墻核心性能,安全防護,穩定性方面比前一代產品都有了本質上的提高。如果硬件條件許可,我們建議還是盡可能把ISA2006升級到TMG2010,TMG不會令你失望的!
原文鏈接:http://server.it168.com/a2011/0328/1170/000001170920_all.shtml