熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows服務器 >> 正文

深入剖析Windows IIS 6.0(3)

2013-11-11 22:56:48  來源: Windows服務器 

  前文介紹了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下有一個iisextvbs腳本它也能夠配置並管理運行帶有IIS 的Windows Server 的Web服務擴展應用程序和單獨的文件管理員可以使用此腳本來啟用和列出應用程序添加和刪除應用程序依賴性啟用禁用和列出 Web 服務擴展添加刪除啟用禁用和列出單獨文件
  
 

  

  在圖一中注意所有未知ISAPI擴展所有未知CGI擴展這兩種Web服務擴展默認情況下這兩種擴展是禁用的意味著除非明確地允許一個應用在IIS 上運行否則它就不能運行如果一個用戶請求了某個沒有啟用的文件IIS 將向用戶返回錯誤——文件或目錄沒有找到同時在WSVC日志中記錄文件或目錄無法找到鎖定策略禁止該請求在IIS 和其他子狀態代碼是WSVC日志文件的一項可選功能用來幫助排解故障疑難(IIS 和IIS 中也有子狀態代碼不過不會在日志文件中記錄但可以將它們轉到定制的錯誤頁面便於根據子狀態代碼執行特殊的處理)IIS 的子狀態代碼很有用它們提供了描述問題的詳細信息例如禁止訪問Passport登錄失敗禁止訪問無法在當前應用程序池中執行請求的URL文件或目錄無法找到MIME映射策略禁止該請求服務器錯誤該文件的數據在配置數據庫中配置不正確所有這些錯誤和其他錯誤都映射到定制的錯誤頁面錯誤頁面不會把子狀態代碼發送給用戶攻擊者無法獲知具體的錯誤信息
  
  另一個安全方面的改進之處是IIS 允許指派一個加密服務提供者(Cryptographic Service ProviderCSP)能夠將基於硬件的安全套接字層(SSL)加速器集成到IIS 從而把加密任務從服務器的通用CPU轉移到了專門為加密操作而優化的專用設備有利於提高性能和可靠性
  
  配置數據
  在IIS 和IIS 配置數據庫采用二進制文件結構但IIS 放棄了這一做法IIS 的配置數據由兩個XML文件構成一個是Metabasexml包含IIS 服務器的配置信息另一個是mbschemaxml包含配置數據的模式定義IIS管理器提供了一項新的功能允許保存配置數據副本只要右擊Web網站然後選擇所有任務將配置保存到一個文件然後指定配置數據副本的文件名字和保存路徑即可按照這種方式保存配置數據時IIS 利用系統的機器碼(Machine Key)加密配置數據的某些部分因此配置數據的副本只對創建該副本的機器有用
  
  不過將配置保存到一個文件對話框中我們可以選中用密碼對配置進行加密選項然後指定密碼用密碼來保護導出的配置文件如果提供了密碼IIS 將用密碼來替代機器碼以後只要提供同一個密碼就可以將配置數據導入到另一個服務器另外我們可以使用命令行腳本iisbackvbs(在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
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.