微軟IIS 7安全的最佳做法
多年來,微軟的互聯(lián)網(wǎng)信息服務(wù)(IIS)Web服務(wù)器給許多企業(yè)帶來了大量的安全問題,包括十二年前臭名昭著的Code Red蠕蟲病毒。IIS的一個重要安全隱患是它會默認(rèn)安裝和啟用很多功能,比如腳本和虛擬目錄等,但這其中的許多功能又被證實(shí)是很容易被利用,從而導(dǎo)致重大安全事故。
幾年前發(fā)布的IIS 6采用了一種“默認(rèn)鎖定”的方法,即不安裝某些功能,或者安裝以后將其默認(rèn)禁用,而最新版本IIS 7則采取了更多措施。Windows Server 2008甚至沒有默認(rèn)安裝IIS 7,而在安裝的時候,IIS 7網(wǎng)絡(luò)服務(wù)器經(jīng)過配置后只提供具有匿名身份驗(yàn)證和本地管理的靜態(tài)內(nèi)容,雖然生成的只是最簡單的網(wǎng)絡(luò)服務(wù)器,但卻把受到安全攻擊的幾率降至最小。
做到這一點(diǎn)是可能的,因?yàn)镮IS 7已被完全模塊化。讓我們簡單的研究一下IIS 7更加安全的原因,以及它的安全性是如何實(shí)現(xiàn)的。通常而言,管理員可以從40多個單獨(dú)的功能模塊中做出選擇,實(shí)現(xiàn)完全自定義的安裝。通過只安裝某個網(wǎng)站所需要的功能,管理員可以大大減小潛在的攻擊面,并且節(jié)省資源。
然而,請注意這只適用于清潔安裝(clean install)。如果你在運(yùn)行老版本的IIS,你又要升級你的Windows操作系統(tǒng),所有的元數(shù)據(jù)庫和IIS狀態(tài)信息都會被收集并保存。結(jié)果,許多不必要的Web服務(wù)器功能會在升級時被安裝到系統(tǒng)中。因此,企業(yè)在升級之后最好重新查看應(yīng)用程序?qū)IS功能的依賴性,并卸載不需要的IIS模塊。
更少的組件意味著更少的設(shè)置管理,以及更少的問題修補(bǔ),因?yàn)槿藗冎恍枰S護(hù)那些正在使用的模塊附屬內(nèi)容。這樣可以減少停機(jī)時間并提高可靠性。此外,標(biāo)簽混亂的IIS管理控制臺已經(jīng)被更加直觀的GUI工具所取代,這讓安全設(shè)置的可視化更加簡單,理解起來也更加容易。比如,如果支持基本身份驗(yàn)證的組件沒有安裝在你的系統(tǒng)中,該組件的配置設(shè)置就不會出現(xiàn),以免混淆視聽。
那么,安全運(yùn)行IIS可能需要哪些組件呢?下面列出的九個組件中,運(yùn)行靜態(tài)網(wǎng)頁以及其他功能的網(wǎng)站都需要前六個;而需要加密服務(wù)器與客戶端之間數(shù)據(jù)的人則需要第七和第八項(xiàng);當(dāng)你擁有一個Web farm,并且想要farm中每個Web服務(wù)器都使用相同的配置文件和加密密鑰時,你將需要第九項(xiàng)共享配置:
1、驗(yàn)證組件,其中包括集成Windows驗(yàn)證、客戶端證書驗(yàn)證以及基于ASP.NET格式的驗(yàn)證,這些驗(yàn)證可以讓你在應(yīng)用層上管理客戶端注冊和驗(yàn)證,而不是依靠Windows賬戶。
2、URL驗(yàn)證,它很好地與ASP.NET會員和角色管理整合,然后根據(jù)用戶名和角色來授權(quán)或者拒絕應(yīng)用程序中的URL,防止沒有授權(quán)的用戶去訪問受限制的內(nèi)容。
3、IPv4地址和域名規(guī)則(Domain Name Rules)提供了基于IP地址和域名的內(nèi)容訪問管理。新屬性“allowUnlisted”可以更容易的阻止人們訪問所有的IP地址,除非列表中允許。
4、CGI和ISAPI約束,它們允許你用CGI文件方式(.exe)和ISAPI擴(kuò)展方式(.dll)啟用或禁用動態(tài)內(nèi)容。
5、請求過濾器,它結(jié)合了UrlScan工具中限制HTTP請求類型的功能,IIS 7將會拒絕這些包含可疑數(shù)據(jù)的請求。像Apache的mod_rewrite屬性一樣,它可以用正則表達(dá)式來阻止攻擊或者基于動詞、文件擴(kuò)展名、大小、命名空間和時序的修改請求。
6、日志,它現(xiàn)在可以提供有關(guān)應(yīng)用程序池、進(jìn)程、網(wǎng)站、應(yīng)用程序域和運(yùn)行請求的實(shí)時狀態(tài)信息,并且能夠在整個請求與應(yīng)答過程中跟蹤某個請求。
7、服務(wù)器證書
8、安全套接層
9、共享配置
其他增強(qiáng)IIS 7安全性的功能還包括:Web服務(wù)器專用的新型內(nèi)置用戶帳戶和組帳戶。該功能啟用了一個系統(tǒng)之間通用的安全標(biāo)識符(SID),從而簡化了訪問控制列表管理,以及應(yīng)用程序池保護(hù)機(jī)制(sandboxing)。同時,應(yīng)用程序管理員可以配置哪些設(shè)置,服務(wù)器管理員都能完全控制,同時讓他們直接在應(yīng)用程序上做出配置的改變,無需使用管理權(quán)限去訪問服務(wù)器。
IIS 7與以前的產(chǎn)品相比非常不同,這對用戶來說是一件好事。它的設(shè)計(jì)與創(chuàng)建遵循了經(jīng)典的安全原則,它為使用Windows系統(tǒng)的企業(yè)提供了一個比過去更加安全的、更容易配置和管理的Web服務(wù)器。從安全的角度看,它可能還做得不夠,還不能動搖Linux和Apache工作站的地位,但是微軟的確已經(jīng)縮小了與它們的差距。管理員可能還需要一段時間來適應(yīng)新的模塊化方式以及管理工具和任務(wù)。盡管管理員都熟悉Windows操作系統(tǒng)和框架,但仍需要培訓(xùn)和進(jìn)行系統(tǒng)測試。
【編輯推薦】