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