全面认识WindowsXP各种服务(上)
每次开机,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负责对应用程序在非标准环境下运行时的错误进行记录、识别和处理。