今天我講更深入一些,談談網站安全性和穩定性。對於很多接觸過Linux和Windows的朋友,對比Linux的apache來說,應該很清楚IIS是很不穩定了。什麼死循環、堆棧溢出等問題一出現IIS就掛掉了,其他網站就受影響了。那我為什麼還要講IIS的安全性和穩定性呢?還是那句話,針對目前的市場來寫文章做分享。
以下是使用IIS 部署網站的建議
1、將IIS目錄&數據與系統磁盤分開放,如C盤放系統,D盤放數據,E盤只放網頁文件。
2、網站目錄只Administrators/SYSTEM/WEB用戶/FTP用戶權限,特殊目錄除外。
3、啟用父級路徑
4、在IIS管理器中刪除必須之外的任何沒有用到的映射(保留asp、aspx等必要映射即可),如果不懂不要刪除。
5、在IIS中將HTTP404等出錯頁面通過URL重定向到一個定制HTML文件
6、建議使用W3C擴充日志文件格式,每小時記錄客戶IP地址,用戶名等所有記錄分類,而且每天均要審查日志,可用日記工具閱讀。(IIS日志不要存放在默認的C盤,建議更換一個非系統盤日志的路徑,同時設置日志的訪問權限,只允許管理員和system為Full Control)。
7、程序安全:
1) 涉及用戶名與口令的程序最好封裝在服務器端,盡量少的在ASP文件裡出現,涉及到與數據庫連接地用戶名與口令應給予最小的權限;
2) 需要經過驗證的ASP頁面,可跟蹤上一個頁面的文件名,只有從上一頁面轉進來的會話才能讀取這個頁面。
3) 防止ASP主頁.inc文件洩露問題;
4) 防止UE等編輯器生成conn.asp.bak文件洩露問題。
8、設置IIS的服務恢復,減少IIS出問題時,自動重啟服務。
1)將IIS Admin Service的恢復 第一次失敗 設置為 重新啟動服務,第二次失敗和後續失敗 設置為 運行一個程序,重置失敗計數為 1天以後,重新服務啟動服務為0分鐘,然後在運行程序中復制以下地址 C:/WINDOWS/system32/iisreset.exe 命令行參數 /start
2)將World Wide Web Publishing Services 第一次失敗、第二次失敗、後續失敗 設置為 重新啟動服務,重置失敗計數為 1天以後,重新服務啟動服務為0分鐘
9、刪除C:/WINDOWS/system32/inetsrv目錄下的adsiis.dll的user權限,可以禁止遍歷IIS。
10、Web站點權限設定(建議)
讀 允許
寫 不允許
腳本源訪問 不允許
目錄浏覽 建議關閉
日志訪問 建議關閉
索引資源 建議關閉
11、控制網站目錄的權限,以下詳細介紹。
一、新建Web訪問用戶
0、右擊 我的電腦--計算機管理--本地用戶和組/用戶--右擊 新建用戶
1、如 用戶名web001、密碼:123abc!@# (如果是真實運行盡量使用32位 復雜密碼,另外用記事本保存好)
2、將 用戶不能更改密碼 和 密碼永不過期 打勾。
二、修改Web用戶權限
1、右擊 web001 屬性--隸屬於--將Users刪除,添加IIS_WPG (www.111cn.net)
2、切換到 環境 頁面,將客戶端設備的三個打勾 取消掉
3、切換到 遠程控制 頁面,將啟用遠程控制 取消打勾。
三、新建 應用程序池並設置權限
1、打開 Internet 信息服務(IIS)管理器 右擊 應用程序池 新建--應用程序池
2、填寫新應用程序池的名稱,如web001 或者默認AppPool #1(關於網站獨立使用應用程序池會比較好,一出現問題其他網站不會受它影響,也建議不同類型的網站不要使用同一個應用程序池)
3、右擊 AppPool #1 屬性--標識--應用程序池標識/配置--填寫剛才新建的WEB用戶:web001和密碼:123abc!@# 應用--再一次密碼輸入:123abc!@# --確定。(建議關於服務器相關的賬號和密碼用記事本保存好)
四、設置網站的應用程序池和目錄安全性權限
1、右擊 www.paipat.com網站的屬性--主目錄--應用程序池--選擇剛才新建的AppPool #1
2、切換到 目錄安全性--身份驗證和訪問控制/編輯--輸入剛才新建的用戶和密碼,點擊確定時再輸入一次密碼
3、進入網站目錄,如D:/wwwroot/web001,右擊web001屬性--安全--添加web001用戶--權限只留下讀取和寫入,點擊 高級--選擇Web001--編輯--添加 刪除權限。