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