每次開機,Windows XP都要啟動80多個服務,而一般用戶對這些在後台運行的服務所知甚少。它們究竟是干什麼的?我是否真的需要所有的這些服務?本文將告訴你哪些服務是必須運行的,哪些服務是不必運行的。去掉那些不需要啟動的服務一方面會提高電腦的運行速度,另一方面也減少了被黑客攻擊的可能。
近兩年來,很多人已經親身體驗到網絡蠕蟲的危害,比如2003年8月發作的沖擊波(Worm.Blaster)以及2004年5月發作的震蕩波(Worm.Sasser)。這兩個病毒都屬於網絡蠕蟲,它們利用了Windows服務中的漏洞來進行傳播和破壞。沖擊波(Worm.Blaster)病毒利用了RPC(Remote Procedure Call,遠程過程調用)服務的漏洞,而RPC服務正是Windows XP必須運行的服務之一。Blaster病毒發作時,你的機器會在60秒鐘內自動關閉。而Sasser病毒則利用了Windows的LSASS(Local Security Authority Subsystem Service,安全性授權子系統服務)服務進行攻擊和傳染。按照反病毒機構的說法,如果不加以防范,這些網絡蠕蟲可以在1小時內通過Internet傳遍地球上的所有電腦。
問題的關鍵在於實際上我們離不開這些服務,Windows XP的很多功能都是通過這些服務來實現的。簡單地講,你可以把這些服務理解為在後台完成系統任務的程序,比如獲取自動更新或者管理打印任務。與一般應用程序的最大區別是它們都是在“後台”運行的,因此你基本上感知不到它們的存在。
為了實現Windows XP的各種功能,Microsoft會在安裝Windows系統時對這些服務進行自動配置。Windows會把其中的一些服務設置為“開機自動運行”狀態,另一些則是在需要時再加載,還有一些服務則只有當用戶選擇加載時才會加載。絕大多數電腦並不需要運行所有的“開機自動運行”服務,這些不必要的服務會增加系統被攻擊的危險,還會占用寶貴的系統資源。如果想看到所有服務的運行狀態,你可以依次打開“控制面板” “管理工具” “服務”(如圖1所示)。
圖一 理解這些服務 在圖1中,你可以看到每一個服務都有以下幾個屬性:名稱、描述、狀態、啟動類型、登錄身份、依存關系。有些屬性沒有在圖1中顯示,你可以用鼠標雙擊某個服務,就能看到更多的屬性。比如Task Scheduler服務的作用是“使用戶能在此計算機上配置和制定自動任務的日程。如果此服務被終止,這些任務將無法在日程時間裡運行。如果此服務被禁用,任何依賴它的服務將無法啟動。”默認狀態下,Task Scheduler服務的啟動狀態是“自動”,它會隨著Windows的啟動而啟動。而在依存關系中,你可以看到它依賴於Remote Procedure Call (RPC)服務。Task Scheduler服務的可執行文件的路徑是“C:\Windows\System32\svchost.exe -k netsvcs”,因此它在任務管理器中的進程名就是“svchost.exe”,由於有好幾個服務都是用svchost.exe來調用的,因此你會在任務管理器中看到多個“svchost.exe”進程(如圖2所示)。
圖二 如果你重新安裝一份Windows XP Professional Service Pack 2的話,你會發現一共安裝了79個系統服務:34個服務會自動運行,38個服務會在需要時啟動,只有7個服務沒有被激活。如果你安裝的是Windows XP或者Windows XP SP1,它總共會安裝77個系統服務,其中34個服務會自動運行,41個服務會在需要時啟動,只有2個服務沒有被激活。實際上在多數情況下,有大約20個自動運行的服務是不必非要運行的,關掉它們會提高系統運行效率和安全性。
潛在危險 也許你對Windows服務所帶來的安全性危險還沒有足夠的認識,由於這些服務與系統的核心相關並擁有各種權限,因此一旦被不法份子掌握,很可能造成操作系統崩潰。為了盡可能地保護你的電腦不受侵害,關閉那些不需要的服務是很有必要的。而這樣做還能減少系統資源占用,提高系統運行效率,何樂而不為呢?讓我們先利用一個工具來查看一下哪些服務是可以從外部訪問到的,來自www.nmap.org(現在已改為www.insecure.org)的nmap工具可以對端口進行掃描(如圖3),從而檢查出某台機器上對外開放的服務。另一款免費掃描工具SuperScan v4.0(
http://www.foundstone.com/resources/freetools.htm)也可以幫助你(如圖4)。
圖三
圖四 新安裝的Windows XP通常有5個開放端口,SP1也是如此,到了SP2,Microsoft加強了對端口的保護,你只能找到三個開放端口(如果沒有啟動防火牆的話)。而如果你打開了SP2的防火牆,端口掃描器甚至無法掃描出任何結果。不過沒有什麼防火牆是萬能的,使用防火牆並關閉不必要的服務,電腦的安全性才會更有保障。
服務管理工具 除了通過“控制面板” “管理工具” “服務”來查看服務之外,還有很多種其他的方式可以對Windows服務進行管理。在命令行方式下,你可以使用sc.exe(Service Control的縮寫)來管理服務,該命令需要參數才能運行,常用的運行參數有:sc.exe query(顯示所有的服務一覽表);sc.exe queryex(顯示更多的狀態信息,比如進程ID和設置標記);sc.exe query state=all(顯示所有安裝的服務)。如果不加參數運行sc.exe,它會顯示各個參數選項的說明。Sc.exe的最大作用是可以啟動或關閉某個服務,或者將某個服務發送到運行隊列。在本文的後面我們將教你如何利用sc.exe和自動腳本來配置這些服務。
另一個命令netstat—可以讓Windows XP顯示當前所有被激活的網絡連接。使用默認方式安裝的Windows XP SP2會存在三個開放端口的服務,分別是Epmap(端口135)、Microsoft-ds(端口445)和NetbiOS-ssn(端口139)。TCPvIEw(
http://www.sysinternals.com/ntw2k/source/tcpvIEw.sHtml)是另一款免費的網絡監測工具,它與Windows XP自帶的Netstat功能類似,但提供了圖形化的界面(如圖5所示)。
圖五 自動啟動的服務 使用上述各種工具,你就能查閱有關Windows服務的各種信息。首先讓我們把注意力集中在默認狀態下被Windows設置為隨電腦自動啟動的那34個服務。為了找出優化的辦法,我們需要先了解一下它們的作用。一般而言,我們可以按照功能將這34個服務分為幾大類:聯網、安全、錯誤處理、通信和易用性。
聯網 一台Windows PC要想正確連接網絡,需要在後台運行很多程序。Workstation服務用於創建與服務器的連接;TCP/IP NetBIOS Helper服務提供了對“TCP/IP 上 NetBIOS (NetBT)”服務以及 NetBiOS 名稱解析的支持;Computer Browser服務維護網絡上計算機的更新列表,並將列表提供給計算機浏覽,它還管理文件和打印機共享信息;DHCP Client服務通過注冊和更改IP地址以及DNS名稱來管理網絡配置;DNS ClIEnt服務為計算機解析IP地址和緩沖域名系統(DNS);如果你想要通過網絡遠程操作注冊表,就必須打開Remote Registry服務;如果想要共享文件和打印機,則需要啟動Server服務;Windows Time服務可以維護在網絡上的所有客戶端和服務器的時間和日期同步。
安全 還有些服務與PC安全性相關。Automatic Updates服務能夠自動搜尋最新的Windows XP更新並從Microsoft的服務器進行下載和安裝;IPSEC Services服務管理 IP 安全策略以及啟動 ISAKMP/Oakley (IKE) 和 IP 安全驅動程序;Secondary Logon服務可以允許普通身份用戶執行一些需要管理員權限的操作;Security Center是Windows XP SP2新增的一項服務,用於管理Windows防火牆、Windows更新和病毒掃描;System Restore Service服務則用來創建和恢復系統的還原點。
通信 各個程序之間和操作系統各個組件之間的通信都要依賴於一些重要的通信服務。DCOM 服務器進程啟動器是Windows XP SP2引入的一個新服務,它可以讓程序與另一個程序進行協作;因沖擊波(Worm.Blaster)病毒的發作而鼎鼎大名的Remote Procedure Call(RPC)服務也是Windows所不可缺少的通信服務;Distributed Link Tracking ClIEnt服務能在計算機內 NTFS 文件之間保持鏈接或在網絡域中的計算機之間保持鏈接;Windows Management Instrumentation服務提供統一的界面和對象模式以便訪問有關操作系統、設備、應用程序和服務的管理信息。
錯誤處理 錯誤處理也是Windows服務的一項重要職能:Error Reporting Service負責對應用程序在非標准環境下運行時的錯誤進行記錄、識別和處理。