Win2003 IIS6 asp aspnet安全詳細配置

本文來自Web開發網,轉載請標明出處http://www.w3dev.cn/article/20090523/29.aspx

 

 

      爲了研究下asp和asp.net虛擬主機更好的安全配置,決定對自己的機子下手。
  下面對win2003+SP2+IIS6配置成功,系統安裝在c盤下,所有盤的文件系統都爲ntfs,如果是fat32就沒什麼意思了。

第一步,系統盤的權限。
1)C盤中除了administrators,system外其他的組或者用戶全部刪除。

2)C盤下的所有文件和文件夾(包括windows)把除了administrators,system外其他的組或者用戶全部刪除【以前看的一些文章說需要把user組加載windows上,其實並不需要】。

3)C:/Program Files/Common Files/System下的所有dll文件加上user組的讀取和運行權限。(對asp的,server.createobject時需要,如adodb.connection什麼的之類的dll在此文件夾下放着。),如果想偷懶,可以直接加載system目錄上。

4)c:/windows下的所有文件和文件夾把除了administrators,system外其他的組或者用戶全部刪除。
【可以安全設置的高級選項中的“允許父項的繼承權限傳播到該對象和所有子對象,包括哪些在此明確定義的項目”和“用在此顯示的可以應用到子對象的項目替代所有子對象的權限項目”複選框】


在下面就是重點了。是asp和asp.net程序運行時要用到的權限。

asp.net程序
1)增加iis工作進程組IIS_WPG對c:/windows/assembly的讀取和運行權限(由於assembly是特殊目錄,不能直接使用右鍵然後屬性來添加,需要使用cacls命令來添加),要不訪問asp.net程序會出現“服務器應用程序不可用”的錯誤。運行命令“cacls c:/windows/assembly /T /G IIS_WPG:R administrators:F SYSTEM:F”【命令就是給iis_wpg組的讀權限,administrators和system的完全控制權限並且更改當前目錄及其所有子目錄中指定文件的ACL。】,加上權限後需要重新啓動對應的應用程序池或者從任務管理器中結束對應的w3wp.exe進程使用權限生效,要不刷新網頁還是出現如上錯誤。
2)C:/WINDOWS/Microsoft.NET/Framework目錄,加上IIS_WPG的讀取和運行權限。此時只剩下了IIS_WPG,administrators和system。C:/WINDOWS/Microsoft.NET/Framework目錄下的你對應的framework版本文件夾加上user的讀取和運行權限,其他的文件夾如URTInstallPath_GAC可以不加。又到重點了,asp.net編譯生成的文件在C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files下,所以需要給user組對Temporary ASP.NET Files的寫權限。如果你用到了其他版本的framework(如1.1的),注意對應的Temporary ASP.NET Files也要有user組的寫權限。
3)IIS_WPG需要有對C:/WINDOWS/WinSxS目錄的讀取和運行權限。要不訪問時應用池程序會自動停止。事件查看器中出現“啓動應用池失敗"的錯誤。
附:如果Temporary ASP.NET Files下出現編譯文件有多個文件的提示錯誤【大概是這個意思吧,公司服務器沒安裝中文幫助文檔,顯示的英文信息。。】,可以先停止iisadmin,刪除Temporary ASP.NET Files 文件夾下的asp.net編譯生成的所有文件和文件夾,然後啓動iis讓asp.net重新編譯即可。【要注意停止iis,要不刪除了Temporary ASP.NET Files下的文件和文件夾,提示文件被佔用】。

asp程序
1)如果你使用的數據庫是mssql什麼的非access數據庫,可以忽略此步驟。如果你使用的是access數據庫那就要注意,需要給C:/WINDOWS/temp加上user組的寫權限。要不連接access數據庫時會出現“Microsoft JET Database Engine 錯誤 '80004005' 未指定的錯誤 ”次錯誤。
2)給C:/WINDOWS/system32加上user組的讀取和運行權限,這是fso要用到的,如scrrun.dll。【當然如果你有時間,可以找到對應的dll文件加上user組的讀取和運行權限,個人是直接加system32上了。】

asp程序和asp.net共同需要的
1)IIS_WPG組需要對C:/WINDOWS/IIS Temporary Compressed Files有讀權限。這個好像是iis壓縮網頁需要的。如果沒有IIS_WPG組的讀權限,在“時間查看器”的系統那欄目那裏會出現一條“指定的用來緩存壓縮的內容 C:/WINDOWS/IIS Temporary Compressed Files 的目錄無效。將禁用靜態壓縮。”警告信息。
2)user組需要擁有對c:/windows/Registration文件夾的讀取和運行權限,要不當使用了session對象時會提示“http1.1無法建立新的會話”的錯誤。需要重新啓動iis或者對應的應用程序池才能消除此錯誤。

到此已經完成系統盤的安全配置了。

第二步,其他盤(包括放asp,asp.net程序的盤)
盤和盤下面的所有文件和文件夾全部設置爲只有administators組有完全控制權限,其他的組和用戶全部刪除。

第三步,IIS和用戶部分(建立測試應用程序池,測試站點和系統用戶)
1)運行compmgmt.msc打開計算機管理,找到本地用戶和組,點擊用戶,然後新建用戶。(爲了簡便我就把密碼和用戶名都設置一樣了)
useriis:用來運行iis的,隸屬於IIS_WPG組。
userweb:用來訪問web站點的,隸屬於GUESTS組,權限最低。
2)打開iis,新建應用程序池。然後右鍵剛纔建的應用池,選擇屬性。在“標誌”頁,選擇“配置”,而不是“預定義賬戶”【預定義是使用默認的network service用戶來運行IIS】。然後輸入用戶名useriis或者瀏覽找到useriis,並且輸入密碼。
3)_建立一個測試站點,站點指向“e:/iisdebug”。右鍵此站點選擇屬性,目錄安全性,編輯。勾選“啓用匿名訪問”,然後輸入剛纔建立的userweb用戶名和密碼。
4)選擇iis的“web 服務擴展”,允許"Active Server Pages"和"ASP.NET v2.0.50727",iis6默認是禁止asp的,後面安裝framework2.0也不會自動允許。

到此完成第三步。

第四步,放置asp,asp.net程序的文件夾的權限(我的放到e:/iisdebug,下面均直接稱爲iisdebug)
給iisdebug加上剛纔建立的兩個用戶名useriis和userweb,權限爲讀寫和運行。
在iisdebug下建立兩個文件,test.asp和test.aspx和t.mdb(access數據庫文件)用來測試剛纔的配置是否成功。
test.asp文件可以把useriis用戶刪除,但是test.aspx文件不能刪除,需要useriis和userweb。【意思就是asp程序只需要加上訪問網站的用戶名即可,asp.net程序需要訪問網站的用戶和運行iis的用戶】。t.mdb需要加上userweb的寫權限,如果你需要向access數據庫寫數據或者更新裏面的數據時。還有一點注意的是如果有上傳文件到某個文件夾時,此文件夾需要有useriis和userweb的寫入權限。


到此基本上已經完成配置了,下面是test.asp和test.aspx的代碼。

 

test.asp

test.aspx

 

 

相關文章

如何防止ASP木馬在服務器上運行

iis虛擬主asp機設置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章