前文介紹了IIS
的安裝和Web服務器的新型體系結構
IIS
新特性的數量多得令人驚奇
其中一些特性是如此引人注目
以至於人們的大部分注意力都被它們吸引
在這第二篇介 紹IIS
的文章中
我們不僅將了解這些已成為
明星
的特性
還將關注一下IIS
各種較少有人注意卻同樣重要的改進之處
一安全 微軟一次又一次地做著同樣一件事情——某個軟件產品出了問題
飽受人們诟病
於是趕緊發布新的版本將問題解決
例如
發布Windows NT
之後
因穩定性問題而飽受批評
於是微軟發布了Windows
新操作系統的穩定性頗受好評
但Win
K服務器默認安裝的IIS
卻成了巨大的安全隱患
需要下大力氣加以整治才能解決問題
IIS
默認不安裝
如果按照缺省方式安裝
Web服務器只能提供靜態內容服務
因此
從這個角度看
即使以後IIS
應用引擎和組件突然出現了問題
IIS
還是極大地降低了安全風險
另外
Windows Server
還有一個新的組策略
禁止安裝IIS
有了該組策略
我們就可以禁止Windows
在活動目錄(AD)森林中禁止不准備作Web服務器用的機器上安裝IIS
防止網絡上出現根本無用的
不安全的IIS
服務器
不過
目前這個組策略只對Windows
服務器有效
不能防止Windows XP Pro和Win
K的機器安裝IIS
當然
由於剛剛安裝好的IIS
不支持動態內容
所以出現了第二個人們經常會問的問題
為什麼我的服務器不能運行ASP?
(前文提到
第一個人們經常會問的問題是
IIS
可以在Win
K服務器上運行嗎
?答案是
不
)
要想在IIS
上運行程序
必須使用IIS
的一種新特性
即Web服務擴展
或Web Service Extension(這個名字似乎意味著它與XML Web服務有某種關系
實際情況並非如此
)
如果要為某個程序啟用Web服務擴展
首先打開IIS管理器(在
控制面板
→
管理工具
中
以前叫做Internet服務管理器或ISM)
如圖一
點擊
添加一個新的Web服務擴展
啟動向導創建一個新的規則
為規則指定一個名字
然後找到想要啟用的執行文件
另外
\system
\inetsrv下有一個iisext
vbs腳本
它也能夠配置並管理運行帶有IIS
的Windows Server
的Web服務擴展
應用程序和單獨的文件
管理員可以使用此腳本來啟用和列出應用程序
添加和刪除應用程序依賴性
啟用
禁用和列出 Web 服務擴展
添加
刪除
啟用
禁用和列出單獨文件
圖 在圖一中
注意
所有未知ISAPI擴展
和
所有未知CGI擴展
這兩種Web服務擴展
默認情況下
這兩種擴展是禁用的
意味著除非明確地允許一個應用在IIS
上運行
否則它就不能運行
如果一個用戶請求了某個沒有啟用的文件
IIS
將向用戶返回
錯誤——文件或目錄沒有找到
同時在W
SVC日志中記錄
文件或目錄無法找到
鎖定策略禁止該請求
在IIS
中
和其他子狀態代碼是W
SVC日志文件的一項可選功能
用來幫助排解故障
疑難(IIS
和IIS
中也有子狀態代碼
不過不會在日志文件中記錄
但可以將它們轉到定制的錯誤頁面
便於根據子狀態代碼執行特殊的處理)
IIS
的子狀態代碼很有用
它們提供了描述問題的詳細信息
例如
禁止訪問
Passport登錄失敗
禁止訪問
無法在當前應用程序池中執行請求的URL
文件或目錄無法找到
MIME映射策略禁止該請求
服務器錯誤
該文件的數據在配置數據庫中配置不正確
所有這些錯誤和其他錯誤都映射到定制的錯誤頁面
錯誤頁面不會把子狀態代碼發送給用戶
攻擊者無法獲知具體的錯誤信息
另一個安全方面的改進之處是IIS
允許指派一個加密服務提供者(Cryptographic Service Provider
CSP)
能夠將基於硬件的安全套接字層(SSL)加速器集成到IIS
從而把加密任務從服務器的通用CPU轉移到了專門為加密操作而優化的專用設備
有利於提高性能和可靠性
二配置數據 在IIS
和IIS
中
配置數據庫采用二進制文件結構
但IIS
放棄了這一做法
IIS
的配置數據由兩個XML文件構成
一個是Metabase
xml
包含IIS
服務器的配置信息
另一個是mbschema
xml
包含配置數據的模式定義
IIS管理器提供了一項新的功能
允許保存配置數據副本
只要右擊Web網站
然後選擇
所有任務
→
將配置保存到一個文件
然後指定配置數據副本的文件名字和保存路徑即可
按照這種方式保存配置數據時
IIS
利用系統的機器碼(Machine Key)加密配置數據的某些部分
因此
配置數據的副本只對創建該副本的機器有用
不過
在
將配置保存到一個文件
對話框中
我們可以選中
用密碼對配置進行加密
選項
然後指定密碼
用密碼來保護導出的配置文件
如果提供了密碼
IIS
將用密碼來替代機器碼
以後只要提供同一個密碼
就可以將配置數據導入到另一個服務器
另外
我們可以使用命令行腳本iisback
vbs(在systemroot\System
中)創建和管理遠程或本地計算機的IIS配置的備份副本
管理員可以使用此腳本工具創建其IIS配置的備份副本
從備份副本還原IIS配置以及列出和刪除備份副本
有些時候
我們只要保存某個應用程序池
Web網站或虛擬目錄的配置
而不是保存全部的配置信息
這時可以按照如下步驟操作
右擊要保持配置信息的對象
選擇菜單
所有任務
→
將配置保存到一個文件
如圖二所示
如果准備將配置數據導入到另一個服務器
必須提供加密文件的密碼
圖 如果右擊一個應用程序池
Web網站組或單個網站
然後選擇
新建
→
應用程序池(來自文件)
或者
新建
→
網站
→
來自文件
或者
新建
→
虛擬目錄(來自文件)
就可以從保存的配置文件創建新的應用程序池
Web網站或虛擬目錄
因此
必要的時候
我們可以只創建和配置一個對象
利用
將配置保存到一個文件
功能導出對象的配置信息
然後利用
新建
→
虛擬目錄(來自文件)
等功能將配置信息導入到多個Web網站
這就是說
我們可以先精心配置一個模板
然後用它來創建和配置新的網站
當然
出現問題時
配置信息副本還可以用來恢復網站的設置
由於IIS
配置信息是可移植的
它還有另外一個好處
這就是方便了升級
假設我們升級時不能直接在Win
K/IIS
上安裝Windows
/IIS
必須換一台機器
這時就要解決如何將IIS
不可移植的配置數據轉移到新的IIS
服務器的問題
利用IIS
配置數據的可移植性
解決辦法是
首先安裝好新的Windows
服務器
為原來的Win
K服務器做一個完整的備份
然後在Win
K服務器上安裝第二個Windows
服務器將它升級
導出第二個Windows
服務器的配置數據(用密碼加密)
然後將配置數據導入到新的Windows
服務器
新安裝的Windows
服務器必須作一些調整
例如允許IUSR帳戶等
但至少現在不必重新執行全部配置操作了
IIS
的配置數據是標准的文本文件(XML文件)
所以可以用記事本之類的文本編輯器打開和編輯
如果修改了IIS
或IIS
的配置數據
有時必須重新啟動IIS
如果系統上網站的數量很多
可能需要不少時間
例如ISP的服務器就屬於這類情況
為了解決這個問題
IIS
支持一種
運行時允許編輯
功能
運行時允許編輯
功能按照如下方式啟用
在IIS管理器中
右擊服務器
選擇菜單
屬性
然後選中
允許直接編輯配置數據庫
選項
如圖三所示
啟用了這個功能之後
如果我們用記事本打開配置數據文件
插入一個虛擬目錄的配置
然後保存並關閉配置文件
IIS
幾乎立即就能根據配置文件的設置作相應的修改
根本無需重新啟動
圖 既然允許直接編輯配置文件
因配置文件不合法造成的服務器
應用程序故障也必然增多
為此
IIS
提供了配置文件歷史版本目錄
即\system
\inetsrv\history
每次修改配置數據或重新啟動IIS
IIS
都會在該目錄中保存一份原有的配置數據
三IIS管理器 每次產品重大升級
人們都會試圖從用戶界面尋找令人激動的新功能
IIS
的管理器確實有了變化
不過改動之處出乎意料地少
其中一個改動之處雖小
但很實用
如果在IIS管理器中右擊一個文件夾
現在可以選擇
權限
菜單打開文件夾的
安全
對話框
在這個對話框中可以設置文件夾的NTFS授權
不必再離開IIS管理器
雖然這是一個小小的改動
也許它今年會為全世界所有的IIS管理員總共節省數千小時的工作時間
右擊一個Web網站
選擇
屬性
轉到
目錄安全性
頁
點擊
安全通信
下面的
編輯
按鈕
在這裡可以找到另一個重要的改動之處——安全通信屬性頁允許配置SSL
證書信任列表(CTL)
客戶證書
在IIS
和IIS
中
除非在Web網站上安裝一個證書
否則不能訪問該屬性頁
這一限制令人不快
因為從技術上看
配置CTL
客戶證書並不要求服務器上安裝了證書
換句話說
在IIS
中我們安裝證書的唯一用途可能就是因為用戶界面需要它
IIS
改正了這一多余的要求
現在我們不必在Web服務器上安裝證書也可以訪問和使用該屬性頁了
四通配符應用程序 如果你熟悉IIS
和IIS
的ISAPI篩選器
可能也熟悉它們的缺點
ISAPI篩選器不僅編寫困難
而且由於它們在Inetinfo進程內運行
如果編寫時不小心留下了一點錯誤
很容易導致災難性的後果
出錯的代碼可
From:http://tw.wingwit.com/Article/os/fwq/201311/10312.html