如何使用IIS Web應(yīng)用池保護(hù)你的企業(yè)?
問(wèn):你能描述一下IIS Web應(yīng)用池是怎樣工作的嗎?Web應(yīng)用池怎樣與企業(yè)的安全相關(guān)聯(lián),它是一個(gè)值得使用的功能嗎?
答:在任何運(yùn)行多個(gè)應(yīng)用或站點(diǎn)的IIS Web服務(wù)器上,IIS的Web應(yīng)用池都是一個(gè)值得實(shí)施的功能。因?yàn)樗軐⒍鄠€(gè)應(yīng)用彼此隔離,即使它們位于同一個(gè)服務(wù)器上。它能提高服務(wù)器和運(yùn)行在其上應(yīng)用的整體可靠性,并且同樣能用于提高安全性。
一個(gè)應(yīng)用池是由按照URL定義的一個(gè)或多個(gè)應(yīng)用構(gòu)成的組,共享同樣的工作進(jìn)程。工作進(jìn)程運(yùn)行web站點(diǎn)。每個(gè)應(yīng)用池?fù)碛幸粋€(gè)或多個(gè)工作進(jìn)程。這些工作進(jìn)程對(duì)于應(yīng)用池來(lái)說(shuō)是唯一的且不會(huì)跨應(yīng)用池共享。
由于每個(gè)工作進(jìn)程作為一個(gè)單獨(dú)的實(shí)例運(yùn)作,它提供了一個(gè)進(jìn)程邊界,使在應(yīng)用池中的單個(gè)應(yīng)用不會(huì)受到其它池問(wèn)題的影響。如果某個(gè)應(yīng)用崩潰或是內(nèi)存泄漏,它不會(huì)影響到在其它應(yīng)用池中的站點(diǎn),因?yàn)槊總€(gè)應(yīng)用池?fù)碛凶约旱墓ぷ鬟M(jìn)程和服務(wù)器資源。
多個(gè)應(yīng)用池能同時(shí)運(yùn)行,根據(jù)資源使用率對(duì)其進(jìn)行不同的配置,甚至可以在一段靜止期后關(guān)閉直到再次需要它。CPU監(jiān)控能預(yù)防某個(gè)站點(diǎn)耗盡服務(wù)器的CPU,且工作進(jìn)程循環(huán)地更換應(yīng)用在內(nèi)存中的實(shí)例,這有助于讓有問(wèn)題的應(yīng)用保持順利地運(yùn)行,同時(shí)減小問(wèn)題的發(fā)生,比如內(nèi)存泄漏。
多個(gè)應(yīng)用池不僅增加了應(yīng)用的可用性,它們還有助于安全性。例如,你可能想為需要更高安全級(jí)別的每個(gè)應(yīng)用創(chuàng)建單獨(dú)的應(yīng)用池,同時(shí)允許需要較低安全級(jí)別的多個(gè)應(yīng)用共享同一個(gè)應(yīng)用池。這種類型的配置讓你充分使用應(yīng)用池的身份,這允許你以唯一的虛擬帳戶來(lái)運(yùn)行應(yīng)用池,而不用必須創(chuàng)建和管理域或本地帳戶,后者對(duì)于建立理想的特權(quán)訪問(wèn)級(jí)別來(lái)說(shuō)通常是乏味和不適用的。
默認(rèn)情況下,工作進(jìn)程以本地的NetworkService帳戶運(yùn)行,它是在Windows中內(nèi)建立的具有相對(duì)較低特權(quán)的身份。盡管以較低特權(quán)的帳戶運(yùn)行服務(wù)是一項(xiàng)好的安全實(shí)踐,但許多Windows的系統(tǒng)服務(wù)同樣使用這個(gè)帳戶。任何以NetworkService身份運(yùn)行的服務(wù)都可能訪問(wèn)它擁有的其它服務(wù)。一個(gè)IIS工作進(jìn)程通常運(yùn)行定制的代碼如ASP.NET和PHP,它們應(yīng)該通過(guò)使用不同的應(yīng)用池身份來(lái)和其它的Windows系統(tǒng)服務(wù)分隔開(kāi)來(lái)。
我當(dāng)然推薦你定制應(yīng)用池并使用不同的身份,從而實(shí)現(xiàn)根據(jù)你的特殊環(huán)境建立所需要的應(yīng)用隔離程度。
【編輯推薦】