引言:IIS信息服務器在網絡上應用的很廣泛,很多網站都是基于其管理和發布的,正因為如此,IIS服務器也成了黑客重點攻擊的目標。因此,提高IIS服務器的安全性,是保證網站安全運行的基本條件。
IIS信息服務器在網絡上應用的很廣泛,很多網站都是基于其管理和發布的,正因為如此,IIS服務器也成了黑客重點攻擊的目標。因此,提高IIS服務器的安全性,是保證網站安全運行的基本條件。對于Windows Server 2012中提供的IIS 8.0來說,其擁有多層次的安全體系結構。例如,但客戶端訪問Web網站時,客戶端將訪問請求發送給服務器,服務器將處理結果發送回客戶端,完成客戶端和服務器的交互過程。實際上,對于該過程,從安全控制角度來看,可以劃分為不同的層級。

圖1 添加必要的功能項目
例如,從IP層面來說,可以設置是否允許客戶端訪問Web網站。當某客戶端在規定的時間內連續訪問服務器,就會被服務器視為可疑用戶,通過將其放置到黑名單中,該用戶就無法繼續訪問服務器。從HTTP以及HTTPS層面來說,IIS就可以通過設置特定的HTTP/HTTPS協議的特性,對用戶的訪問進行管控。例如,可以限制用戶使用Get,Post,Put等方式提交數據,來有效保護服務器安全。從IIS層面來說,可以設置相關的身份驗證協議,來檢測客戶端是否是合法的用戶。從業務程序層面來說,同樣可以限制用戶的訪問權限。例如當用戶訪問網站上的開設的論壇時,就會按照身份的不同,被劃分到管理員預設的不同的賬戶組中,用戶只能在規定的權限內,對資源進行訪問。
當然,要提高IIS的安全性,必須保證安裝好啟用了對應的功能。在Windows Server 2012中打開服務器管理器,點擊“添加角色和功能”項,在向導界面中的“角色”列表中打開“Web服務 器(IIS)”→“Web服 務器”→“安全性”分支,在其中選擇所有的功能項(如圖1)。點擊安裝按鈕,執行安裝操作。
打開IIS管理器,在其中可以針對服務器級別或者具體的網站,執行所需的安全設置。例如,選擇某個網站,從IP層面設置其安全屬性的話,在窗口中部雙擊“IP地址和域限制”項,在右側點擊“編輯功能設置”鏈接,在彈出窗口中可以看到,在默認情況下,沒有指定的限制條件的客戶端都是可以訪問該網站的。點擊“添加拒絕條目”鏈接,在彈出窗口中可以設置特定的IP地址或者地址段。這樣,這些IP客戶端將無法訪問服務器。
點擊“編輯動態限制設置”鏈接,在彈出窗口中選擇“基于并發請求數量拒絕IP地址”項,在其下可以設置并發連接的數量。當客戶端在特定的時間內并發訪問次數超過該值后,IIS就會視為惡意的請求并對其進行攔截,選擇“基于一段時間內的請求數量拒絕IP地址”項,在其下可以設置特定的時間段以及最大的請求數量。如果客戶端違法了該設置,同樣會被IIS視為惡意請求。
從HTTP/HTTPS層面來說,可以在窗口中部的“IIS”欄中雙擊“請求篩選”項,在“文件擴展名”面板右側點擊“拒絕文件擴展名”鏈接,在彈出窗口中輸入特定的擴展名(例如“.asa”),這樣當客戶端試圖在瀏覽器地址欄訪問該類型的文件(例如“http://www.xxx.com/form/1.asa”等),IIS就會返回“HTTP 錯誤404.7-Not Found”之類的錯誤信息,拒絕用戶訪問這類文件。
在網站結構中,存在各種目錄和文件。當不希望用戶查看和訪問某些目錄和文件時,可以在“隱藏段”面板右側點擊“添加隱藏段”連接,輸入對應的文件和目錄名稱,就可以實現上述目的。對于黑客來說,經常使用SQL注入的方式,對SQL數據庫進行攻擊。其原理是利用SQL Server數據庫的一些漏洞,通過構造和提交特定的URL地址,來注入相關的信息,對數據庫進行滲透。為此,可以在“URL”面板右側點擊“拒絕序列”項,在其中窗口中輸入對應的 URL,例 如“/Default.aspx?jobid=1'or'1'='1”等。這樣,當黑客提交這樣的URL時,就會遭到IIS的攔截。當然,也可以添加特定的目錄和文件路徑(例如“/admin/index.asp”), 當用戶試圖訪問這些受限制的路徑時,服務器就會返回“HTTP 錯誤404.5 –NOT Found”之類的警告信息。
在“HTTP謂詞”面板中點擊“拒絕謂詞”鏈接,在彈出窗口中輸入對應的謂詞(例 如‘Post”),這 樣,當用戶在對應頁面中輸入所需內容,點擊“提交”按鈕后,服務器就會返回“HTTP 錯誤 404.6-Not Found”之類的警告信息。當用戶訪問目標網站時,在發送的數據包中存在一些標頭信息,例 如“Host”,“ACCEPT”,“CONTENT-TYPE”,“SET-COOKIE”等。在對應標頭后面跟隨對應的數據信息,例如在“Content-Length”標頭后面跟隨數據包內容的長度等。如果黑客使用專用工具攔截了數據包內容,并對其標頭信息進行了修改(例如寫入超長數據),之后將該數據包發送給服務器,就很容易造成服務器發生溢出問題,給黑客入侵帶來了可乘之機。
在“標頭”面板右側點擊“添加標頭”鏈接,在彈出窗口中的“標頭”欄中輸入具體的標頭名(例如“Host”),在“大小限制”欄中輸入其數據的大?。ɡ纭?”)。這樣,如果用戶提交的數據包中“Host”標頭的數據長度超過該值,服務器就會返回“HTTP 錯誤 404.10-Not Found”之類的錯誤信息。在網站中可以設置查詢欄,允許用戶查詢所需的內容。為了防止用戶輸入提交非法數據,可以對其進行必要的限制。在“查詢字符串”面板右側點擊“拒絕查詢字符串”鏈接,在彈出窗口中需要拒絕的內容。這樣,當用戶在網站頁面中查詢限制的內容時,服務器就會返回“HTTP 錯誤 404.18-Not Found”之類的錯誤。
實際上,在“規則”面板中,可以對各種限制條件進行集成處理。在右側點擊“添加篩選規則”鏈接,在彈出窗口中輸入規則名稱,選擇“掃描url”和“掃描查詢字符串”項,在“掃描標頭”,“文件擴展名”以及“字符串”欄中輸入對應的內容,針對的特定的標頭,允許訪問特定的文件擴展名,拒絕訪問特定的字符串。除了使用請求篩選保護HTTP/HTTPS訪問之外,還可以使用授權規則來強化安全性。在“IIS”欄中雙擊“授權規則”項,可以看到存在默認的授權規則。點擊右側的“編輯”鏈接,可以查看其屬性,了解到其允許所有的用戶進行訪問。

圖2 添加拒絕訪問項目

圖3 用戶身份驗證模式窗口
當然,可以添加所需的拒絕訪問規則。點擊右側的“添加拒絕訪問”項,在彈出窗口(如圖2)中可以選擇限制的用戶類型,包括所有用戶,所有匿名用戶,指定的角色或者用戶組,指定的用戶等。例如當使用了基本身份驗證模式后,當用戶訪問網站時,就需要輸入賬戶名和密碼,通過認證后,才可以瀏覽網站。例如,當需要對用戶“fwyongh”進行控制,可以選擇“指定的用戶”項,輸入“fwyongh”,選擇“將此規則應用于特定謂詞”項,輸入“Get”謂詞。這樣當該用戶在網頁中查詢內容,執行提交操作時,服務器就會返回“HTTP錯誤401.2-Unauthorized”之類的錯誤信息,說明該用戶的訪問收到了服務器的限制。同請求篩選相比,授權規則可以將系統賬戶和HTTP/HTTPS特定的謂詞進行關聯,讓指定的用戶只能訪問允許的謂詞,來使用HTTP/HTTPS協議中相應的屬性。使用授權規則和請求篩選,可以在HTTP/HTTPS層面有力的保護IISS服務器的安全。
使用相關的身份驗證協議,可以從IIS層面上提高安全性。在“IIS”欄中雙擊“身份驗證”項,可以看到起提供了各種身份驗證模式(如圖3)。啟用的匿名身份驗證方式,允許所有用戶訪問Web服務器。
當然,您可以根據需要對其進行控制。例如點擊右側的“編輯”按鈕,可以看到與其對應的是名為“IUSR”賬戶。點擊“設置”,可以將其更改為別的用戶。以“IUSR”賬戶為例,打開網站根目錄中的屬性窗口,在“安全”面板中點擊“編輯”按鈕,在“組或用戶名”列表中選擇“IIS_IUSRS”賬戶,在權限列表中的“拒絕”列中選擇讀取和執行,列出文件夾內容,讀取等項目。保存配置信息后,當以匿名方式訪問網站時,服務器就會返回“HTTP錯誤401.3-Unauthorized”的錯誤提示。
對于ASP.NET模擬方式來說,會使用IIS應用程序池使用的標識信息進行驗證。使用Windows身份驗證,會將訪問者的賬戶名和密碼提交給IIS服務器,并將其密碼進行加密處理。之后服務器會驗證該賬戶身份合法性,如果驗證通過,就可以訪問服務器,這適用于內部的或者加入域的客戶端。對于基本身份驗證來說,當用戶訪問時,需要輸入對應的賬戶名和密碼,這些內容會以Base64方式進行加密,之后將其提交給服務器。不過這種加密方式安全性很低,為了安全起見,需要將其和SSL加密結合起來使用,其適用于未加入域或者外部的客戶端。
對于摘要式身份驗證,其支持HTTP 1.0協議,該模式將用戶提交的憑據進行MD5加密,之后將其哈希值提交給IIS服務器,通過驗證后,可以訪問網站。適用于域環境,IIS服務器必須使活動目錄域的成員服務器或者域控制器,用戶賬戶必須使活動目錄域賬戶,并且該賬戶必須和IIS服務器位于相同的或者信任的域。選擇所需的身份驗證協議,點擊“啟用”,可以激活該驗證方式。當激活多個身份驗證協議,其使用是由順序的。一般匿名身份驗證方式優先級最高,之后依次為Windows驗證方式,摘要式驗證方式,基本身份驗證方式。