Windows操作系統的IIS是大家最常用的Web服務器之一。IIS功能強大、簡單易用,但也容易受到惡意攻擊,它的安全性一直是大家談論的焦點,為了增強Web服務器的安全性,在Windows Server 2003操作系統的IIS6中增加了很多安全防范功能,“URL授權”就是其中之一。該功能可以使得IIS6更加安全穩定地工作,本文就向大家介紹一下有關URL授權的相關的知識。
一、為什麼使用URL授權
IIS網站為用戶工作提供便利,但它的安全性一直是管理員最關心的話題。眾所周知,IIS服務器組件存在一些漏洞,很多“不法之徒”利用這些漏洞對網站進行攻擊。雖然及時安裝IIS補丁可以修復這些漏洞,但新的漏洞又會不斷出現。很多管理員采用取消匿名訪問權限方式來控制訪問網站的用戶范圍,但此方式還是存在一定的安全隱患。為了增強IIS的安全性,在Windows Server 2003系統中提供URL授權功能,它可以通過授權管理器對浏覽網站的用戶進行嚴格的控制。如要想讓某個用戶賬戶能訪問啟用了URL授權功能的虛擬目錄,首先這個用戶賬號必須是Windows Server 2003系統合法的賬號。此外,還要將該賬號添加到授權管理器的角色分配項中。
二、配置URL授權功能
IIS6默認情況下並沒有啟用URL授權功能,必須結合授權管理器進行手工配置才能實現。下面筆者將一步步介紹如何實現。
1.禁用匿名訪問
在Windows Server 2003系統中,IIS6默認是允許用戶匿名訪問的,要想使用URL授權功能,首先必須禁用匿名訪問。點擊“開始→運行”,在運行對話框中輸入“%systemroot% \System32\InetSrv\IIS.msc”命令(其中“%systemroot%”表示操作系統所在目錄)。回車後彈出“Internet信息服務(IIS)管理器”窗口,然後依次展開“本地計算機→網站→默認網站”。下面筆者以默認網站的Online虛擬目錄為例,介紹如何配置URL授權功能。
右鍵點擊“Online文件夾”選項,在彈出的菜單中選擇“屬性”,在彈出的Online屬性對話框中,切換到“虛擬目錄”標簽頁,點擊“創建”按鈕。在“目錄安全性”標簽頁的身份驗證和訪問控制欄中點擊“編輯”按鈕,在彈出的身份驗證方法對話框中,取消“啟用匿名訪問”前的鉤選,確保“集成Windows身份驗證”選項被選中(如圖1),然後兩次點擊“確定”按鈕。
2.配置通配符應用程序映射
禁用了匿名訪問功能後,我們就正式開始進行配置。首先要為URL授權功能配置通配符應用程序映射。在Online屬性對話框的虛擬目錄標簽頁中,點擊“配置”按鈕,彈出“應用程序”對話框,點擊“通配符應用程序映射”欄中的“插入”按鈕(如圖2),在“添加/編輯應用程序擴展名映射”對話框中點擊“浏覽”按鈕,進入到“%systemroot% \System32\InetSrv”目錄,找到urlauth.dll文件後,點擊“打開”按鈕,最後點擊“確定”按鈕。
3.添加WEB服務擴展
接著我們要在IIS6中為URL授權添加一個Web服務擴展。在Internet信息服務(IIS)管理器窗口中,依次展開“本地計算機→網站→Web服務擴展”,在右側的WEB服務擴展框體中點擊“添加一個新的WEB服務擴展”鏈接,彈出新建WEB服務擴展對話框(如圖3)。在“擴展名”欄中輸入“URL授權”,然後點擊“添加”按鈕,在添加對話框中點擊“浏覽”,找到“%systemroot%\System32\ InetSrv”目錄下的urlauth.dll文件,打開後點擊“確定”按鈕。接著在新建WEB服務擴展對話框中選中“設置擴展狀態為允許”選項,最後點擊“確定”按鈕。
4.新建授權存儲
要想啟用URL授權功能,必須和授權管理器配合使用,授權管理器是用來管理訪問IIS網站的用戶賬號的,因此,對它要進行管理配置。首先要為它創建一個存儲授權信息的文件。在運行對話框中輸入“Azman.msc”命令,回車後彈出授權管理器窗口,右鍵點擊“授權管理器”選項,在彈出菜單中選擇“選項”,接著在選項對話框中選中“開發人員模式”後,點擊“確定”按鈕。接下來我們新建一個授權存儲文件,右鍵點擊“授權管理器”選項,選擇“新建授權存儲”選項,彈出授權存儲對話框(如圖4),選中“XML文件”單選項,在“存儲名稱”欄中輸入“C:\MyStore.xml”後,點擊“確定”按鈕。
接著在授權管理器窗口中,右鍵點擊MyStore.xml項。在彈出的菜單中選擇“新建應用程序”,在名稱欄中輸入“IIS6 URL授權”後,點擊“確定”按鈕。然後在授權管理器窗口中,依次展開“IIS6 URL授權→定義”,右鍵點擊“操作定義”,在彈出的菜單中選擇“新建操作定義”。然後在“名稱”欄中輸入“AccessURL”,在操作號碼欄中輸入“1”,最後點擊“確定”按鈕。
5.配置作用域
接著要為新建的應用程序IIS6 URL授權配置作用域。右鍵點擊“IIS6 URL授權”選項,在彈出菜單中選擇“新建作用域”,在名稱欄中輸入“WebApp”後,點擊“確定”按鈕。接著依次展開“IIS6 URL授權→定義”,右鍵點擊“角色定義”選項,在彈出菜單中選擇“新建角色定義”。下面在角色定義中創建作用域,在名稱欄中輸入“Viewer”後,點擊“確定”按鈕。然後點擊“角色定義”選項,在右側框體中右鍵點擊Viewer選項,彈出快捷菜單,選擇“屬性”選項,切換到“定義”標簽頁,點擊“添加”按鈕後,切換到“操作”標簽頁,在操作定義列表框中選中“AccessURL”選項後,連續兩次點擊“確定”按鈕。
然後依次展開“IIS6 URL授權→ WebApp”,右鍵點擊“角色分配”選項,在彈出的菜單中選中“分配角色”。在添加角色對話框中選中“Viewer”選項後,點擊“確定”按鈕。接著在右側框體中右鍵點擊“Viewer”選項,選擇“分配Windows用戶和組”選項,彈出選擇用戶或組對話框(如圖5),在“輸入對象名稱來選擇”欄中輸入訪問網站頁面需要的用戶賬號,然後點擊“確定”按鈕。
6.配置讀取器角色
默認情況下,IIS6是以Network Service賬號身份運行的。下面就對讀取器使用的賬號進行配置。右鍵單擊“MyStore.xml”項,在彈出的菜單中選擇“屬性”,切換到“安全”標簽頁,在“授權管理器用戶角色”下來列表中選中“讀取器”,接著點擊“添加”按鈕,在“輸入對象名稱來選擇”欄中輸入“Network Service”賬號,接著兩次點擊“確定”按鈕。
7.配置IIS Metabase文件
完成了以上配置過程後,URL授權功能依然還沒啟用,還需要修改IIS Metabase文件參數才行。下面我們就使用vbs腳本對IIS Metabase文件進行修改。進入到“C:\ Inetpub\AdminScripts”目錄下,新建一個名為“SetUrlAuth.vbs”的腳本文件。打開此文件後,將以下內容復制到腳本文件中,最後要保存文件。
腳本內容如下:
'SetUrlAuth.vbs 內容
Set objArgs= WScript.Arguments
If objArgs.count < 4 then
wscript.echo "Usage: SetUrlAuth VDirPath AzScopeName AzStoreName AzEnable
[ImpersonationLevel]"
wscript.echo ""
wscript.echo "Example:"
wscript.echo " SetUrlAuth w3svc/1/root/MyApp MyApp
msxml://d:\inetpub\wwwroot\AzStore.xml True 1"
wscript.echo ""
wscript.echo "Run with 'cscript' command in cmd.exe to avoid msgboxes"
Else
wscript.echo objargs(0)
DIM iis
set iis = GetObject("IIS://localhost/" & objArgs(0))
iis.AzScopeName = objArgs(1)
iis.AzStoreName = objArgs(2)
iis.AzEnable = objArgs(3)
If objArgs.count > 4 then
iis.AzImpersonationLevel = objArgs(4)
End if
iis.SetInfo
End if
接著點擊“開始→運行”,在運行對話框中輸入“Cmd.exe”命令,彈出命令提示符窗口。切換到“C:\ Inetpub\AdminScripts”目錄下,運行“Cscript SetUrlAuth.vbs W3svc\1\Root\WebApp WebApp msxml://C:\MyStore.xml true 1”命令,完成Metabase文件參數修改。
這樣就啟用了URL授權功能。只有在授權管理器的Viewer角色中指定的用戶賬號,才能訪問你網站Online虛擬目錄的頁面。