|
讓你的Web服務器不再裸奔 很多小型企業(yè)限于資金緊缺,無法讓Web服務器得到很好的安全防護,往往就把一臺Web服務器孤零零地扔在IDC機房里。這么處理的結果可想而知,Web服務器要么被黑客們當成了練兵場,要么淪為肉雞,成為下一次網(wǎng)絡攻擊的踏板,能夠毫發(fā)無傷全身而退的基本是鳳毛麟角。其實,只要在Web服務器上用防火墻保護一下,效果就要好上很多,一般普通的攻擊都可以擋住。提到這里,有些老板又要鄒眉頭了,“防火墻好是好,就是這個成本,太,太高了一些…..”。錯!今天我們提供的這種保護Web服務器的方案并不需要額外的硬件投入,只要在Web服務器上安裝上軟件防火墻ISA2006,利用ISA的Web服務器發(fā)布功能就能享受到低投入高安全的樂趣。 我們準備了一臺Web服務器SERVER1進行測試,如下圖所示,SERVER1有個測試用的網(wǎng)站,我們來看看如何利用ISA2006保護這個可憐的Web服務器。 ![]() 大致思路是這樣的,在Web服務器上安裝一塊虛擬網(wǎng)卡,將Web站點建在虛擬網(wǎng)卡上,在ISA上用Web發(fā)布規(guī)則把虛擬網(wǎng)卡上的Web站點發(fā)布到物理網(wǎng)卡上。這個過程聽起來平淡無奇,為什么還值得大書特書一番呢?關鍵就是要避免IIS和Web偵聽器的沖突。兩者都要監(jiān)聽80端口,前面安裝ISA時,我們提到過ISA服務器上不應該有進程守護80端口,就是為了避免和Web偵聽器沖突。但現(xiàn)在我們不得不考慮如何解決80端口的沖突問題,這篇文章關鍵之處就在這里。 解決沖突有兩種方法,端口重定向和取消HTTP套接字池,具體容我一一道來。但之前先將實驗環(huán)境搭好,包括創(chuàng)建虛擬網(wǎng)卡,安裝ISA2006等。搭好后的實驗拓撲如下圖所示。 ![]() 一 安裝虛擬網(wǎng)卡 要在Web服務器上安裝ISA,首先要有兩塊以上的網(wǎng)卡,這倒用不著專門去買一塊新網(wǎng)卡,我們在Web服務器上添加一塊虛擬網(wǎng)卡就可以了。微軟在系統(tǒng)中提供了Loopback回路網(wǎng)卡,Loopback網(wǎng)卡就是能提供協(xié)議綁定的虛擬網(wǎng)卡,我們只要添加一塊Loopback網(wǎng)卡就可以了。在Web服務器的控制面板中選擇“添加硬件”,如下圖所示,出現(xiàn)添加硬件向導。 ![]() 選擇硬件已連接好。 ![]() 選擇“添加新的硬件設備”。 ![]() 選擇手工添加硬件。 ![]() 硬件類型為網(wǎng)絡適配器。 ![]() 網(wǎng)卡型號要選擇微軟公司的Loopback網(wǎng)卡。 ![]() 安裝完Loopback網(wǎng)卡后,如下圖所示,計算機中有了兩塊網(wǎng)卡,Loopback網(wǎng)卡的IP地址為 ![]() 二 安裝ISA2006 既然Web服務器上已經(jīng)有了兩塊網(wǎng)卡,那安裝ISA2006就沒有問題了。ISA2006的安裝過程就不具體介紹了,前面的博文已經(jīng)提及,大家只要注意兩點: 1) ISA內(nèi)網(wǎng)的地址范圍是 2) ISA安裝之前要關閉IIS網(wǎng)站,如下圖所示,因為我們目前還沒有找到解決沖突的辦法,因此只能先把站點關閉。 ![]() ISA2006安裝完畢,如下圖所示,好了,環(huán)境已經(jīng)搭好,我們要開始了! ![]() 三 端口重定向 我們先考慮簡單的解決方法,如果Web站點不放在80端口,而放在其他端口如81,這樣就不會和Web偵聽器有沖突了。發(fā)布規(guī)則也恰好支持端口重定向,因此這個解決方法簡單易行,如果網(wǎng)站對80端口沒有特殊要求,建議用此方法解決問題。 首先我們修改網(wǎng)站端口,如下圖所示,在默認站點的屬性中將TCP端口改為81。 ![]() 然后就可以啟動Web站點了,如下圖所示,右鍵點擊默認網(wǎng)站,選擇“啟動”。 ![]() 接下來要在服務器上創(chuàng)建一條Web發(fā)布規(guī)則,如下圖所示,新建一條網(wǎng)站發(fā)布規(guī)則。 ![]() 為發(fā)布規(guī)則取個名字。 ![]() 當訪問請求匹配發(fā)布規(guī)則時允許訪問。 ![]() 發(fā)布單個網(wǎng)站。 ![]() 此次發(fā)布不使用證書加密。 ![]() 被發(fā)布的網(wǎng)站是 ![]() 發(fā)布整個網(wǎng)站,從根目錄開始。 ![]() 對訪問請求的格式不作任何限制,域名或IP均可。 ![]() 目前還沒有Web偵聽器,選擇“新建”。 為偵聽器取個名字。 ![]() 偵聽器不對訪問請求加密。 ![]() 偵聽器負責監(jiān)聽外網(wǎng)。 ![]() 不對用戶進行身份驗證。 ![]() 不使用SSO單一登錄設置。 ![]() 選擇使用新創(chuàng)建的Web偵聽器。 ![]() 被發(fā)布的服務器不要求身份驗證。 ![]() 發(fā)布規(guī)則適用于所有用戶。 ![]() 如下圖所示,發(fā)布規(guī)則已經(jīng)創(chuàng)建,只是此規(guī)則中認為發(fā)布的網(wǎng)站在 ![]() 切換到發(fā)布規(guī)則屬性的“橋接”標簽,如下圖所示,勾選“將請求重定向到HTTP端口”,端口值填寫81。 ![]() 好了,我們來測試一下發(fā)布規(guī)則,如下圖所示,客戶機訪問ISA的外網(wǎng)地址,訪問到了內(nèi)網(wǎng)網(wǎng)卡81端口上的網(wǎng)站,發(fā)布ISA服務器上的網(wǎng)站成功了! ![]() 四 配置HTTP套接字池 端口重定向為我們提供了一種簡單的解決方法,但它改變了發(fā)布網(wǎng)站的端口,如果某些網(wǎng)站出于某種原因必須在80端口,那我們就必須想想其他辦法了。我們能否讓IIS監(jiān)聽內(nèi)網(wǎng)的80端口,Web偵聽器監(jiān)聽外網(wǎng)的80端口,這樣不就可以和平共處了?有些朋友立刻想到了IIS中可以把網(wǎng)站綁定到一個指定的IP上,他們說干就干,立即動手,如下圖所示,在IIS中將網(wǎng)站綁定到了 ![]() 如下圖所示,我們用netstat檢查端口監(jiān)聽情況,如下圖所示,發(fā)現(xiàn)IIS監(jiān)聽的可不止 ![]() IIS的這種特性稱為Socket Pooling(套接字池)。套接字(Socket )是IP地址和端口的組合,用于進行網(wǎng)絡通訊,任何應用程序需要和網(wǎng)絡上的其他應用程序進行通訊時,必須具有相應的套接字。例如Web站點偵聽客 戶的HTTP請求,那么它就綁定在相應的套接字(IP地址和端口,例如端口為標準的TCP 80)上。在IIS 4.0中,微軟發(fā)現(xiàn)當多個Web站點分別通過不同的套接字綁定在不同的IP地址時,會占用較多的系統(tǒng)資源,于是在IIS 5.0中引入了Socket Pool(套接字池)這個概念。它的工作原理是這樣的:IIS啟動時會將所有Web站點配置的服務端口綁定在計算機的所有IP地址上,而不管這些IP地址是否分配給了這些 Web站點,IIS把綁定的這些套接字稱為套接字池;然后IIS再將套接字池中的套接字根據(jù)Web站點的配置分配到相應的Web站點,這樣 避免了不同Web站點占用不同IP地址的相同Web服務端口時需要不同的套接字,從而減少了系統(tǒng)資源的占用,提高了IIS的性能。 聽了上面的介紹,您明白了套接字池是怎么回事,在目前的實驗環(huán)境中,套接字池顯然起了負作用,我們要想辦法消除套接字池。Win2003安裝光盤的支持工具集中有一個工具httpcfg可以幫我們完成這個任務,我們先安裝支持工具,在服務器上放入Win2003的安裝光盤,如下圖所示,在安裝光盤的\Support\Tools目錄下,雙擊suptools.msi。 ![]() 啟動安裝向導。 ![]() 同意最終用戶許可協(xié)議。 ![]() 回答完軟件安裝路徑等問題后開始安裝支持工具了。 ![]() 支持工具很快安裝完成。 ![]() 在服務器上依次點擊 開始-程序-Windows Support Tools-Command Prompt,如下圖所示,輸入httpcfg set iplisten –i ![]() 重啟服務器讓配置生效,然后我們在IIS中將默認網(wǎng)站的端口從81改為80,如下圖所示,用netstat查看端口狀況,我們發(fā)現(xiàn)構想已經(jīng)實驗,ISA監(jiān)聽外網(wǎng)80端口,IIS監(jiān)聽內(nèi)網(wǎng)80端口。 ![]() 對發(fā)布規(guī)則進行修改,如下圖所示,將發(fā)布網(wǎng)站從81端口改為80端口。 ![]() 好了,現(xiàn)在測試一下,如下圖所示,發(fā)布網(wǎng)站工作正常,HTTP套接字池配置成功! ![]() 總結:兩種方法中端口重定向比較簡單,如果網(wǎng)站對端口沒有特殊要求,推薦使用這種方法,否則只能借助HTTPCFG配置套接字池了。理論上可以考慮讓Web偵聽器監(jiān)聽其他端口,但其實缺乏可行性。 本文出自 “岳雷的微軟網(wǎng)絡課堂” 博客,轉載請與作者聯(lián)系! |
|
|
來自: 知識藏園 > 《ISA 2006》