为了提高安全性和易用性,Win XP不仅改进了许多原有的GUI工具和命令行工具,同时还增加了一些新的工具,这些工具不再通过Resource Kit发布……
为了提高安全性和易用性,Win XP不仅改进了许多原有的GUI工具和命令行工具,同时还增加了一些新的工具,而且这些工具不再通过Resource Kit(资源工具包)发布,而是直接把最有用的工具作为Support Tools包装到了OS软件包,放在安装CD的Support\Tools目录下。如果你打算深入、全面地管理XP,这些工具能够帮你完成日常的监视、管理任务,加固Win XP的安全。
一、获得系统信息
知己知彼,百战不殆,这句话表明了要想百战不殆,一个重要的前提就是“知己”。以前,你需要运行一大堆工具才能获知操作系统已经安装了哪些Service Pack、Hotfix以及系统的网络配置。Win XP新增了一个命令行工具Systeminfo(Systeminfo.exe),帮你轻而易举地完成这些工作。Systeminfo通过WMI(Windows管理规范)API列举出系统配置信息,输出信息按照OS、硬件平台、安装配置、已安装的补丁分门别类,一目了然。
图一
图一是不带任何命令行参数运行Systeminfo的结果片断,如果要诊断远程机器,只要加上一个“/s <远程机器名字>”参数。另外,Systeminfo还允许通过“/u <用户名字>”和“/p <密码>”参数指定运行Systeminfo的用户身份,如果只提供用户名字但省略密码,Systeminfo将提示输入密码,输入密码时屏幕上不会有回显——如果旁边有人看着你运行Systeminfo,这个功能让你无所顾忌。
另一个检测系统配置的实用工具是Spcheck(Spcheck.exe),用于检测Service Pack级的组件信息,以前这个工具只通过 Product Support Service(PSS)提供,但现在加入到了Support Tools。Spcheck要用到一个数据文件spcheck.ini,这个文件包含了各个网络组件的每一个文件的信息,鉴于操作系统需要不断更新,所以spcheck.ini不随XP一起提供,而是通过网络发布,页面提供了针对Win XP/2K/NT 4和Exchange Server 5.5等的各个spcheck.ini版本的链接。
图二
下载spcheck.ini的XP版本,把它保存到安装Support Tools的目录,解开压缩,然后运行spcheck。spcheck将生成报告文件spcheck.rpt——其实这是一个文本文件,可以用记事本打开,图二显示了spcheck.rpt文件的一个片断。
二、监视系统
说到监视系统状态,人们最熟知的就是按Ctrl+Alt+Del弹出的“任务管理器”。不过任务管理器的功能有限,如果要了解哪个进程启动了子进程,或者有哪些进程服务在运行,你可能会想到tlist.exe命令行工具。
不过XP没有提供tlist.exe,代之以另一个工具Tasklist(Tasklist.exe)。Tasklist是针对XP多用户环境开发的,能够报告每一个正在运行进程的会话信息,但和tlist.exe不同的是,Tasklist不会列出父进程的每一个子进程(但愿以后的版本会增加这个非常实用的功能)。Tasklist能够查询远程系统,用/v参数可得到详细信息(包括窗口标题、用户名字)。如图三所示,用/m参数可以显示出装入某个DLL的进程——如果你怀疑某个DLL实际上是一个木马程序,这一功能非常有用。
图三
当网络防火墙/路由器的通信指示灯开始狂闪,在以前的Windows上,我用Netstat工具(netstat.exe)查找哪些TCP或UDP端点正在使用我的系统,然后大致地判断应该是哪个或哪些进程正在发送或接收数据,但如果要精确地判断端点和进程的从属关系就必须使用第三方工具。
在XP中,Netstat命令的功能已经改进,能够显示出哪些进程正在使用端点。只要加上/o参数,Netstat会在端点之后显示出进程ID,如图四所示。如果使用/a参数,Netstat能够显示出所有端点——不管是活动状态的,还是监听状态的。
图四
有时监视每一个进程打开了哪些文件也是非常有用的。在以前的Windows中,我们可以安装资源工具包的oh.exe。但在XP中,虽然Support Tools的帮助文件提到了oh.exe,安装好的Support Tools却不带oh.exe。但是,XP提供了一个新的Openfiles命令行工具(Openfiles.exe),它能够报告进程打开的各个文件。和oh.exe相似,Openfiles也要求打开系统内核监视,而这会消耗一些内存,降低文件、打印、邮件、数据库等操作的性能。打开系统监视的命令是openfiles /local on,它会启用系统全局标志“维护对象列表”,需要重新启动系统才能生效(你可以执行gflags.exe查看Openfiles命令设置了哪些标志)。
重新启动系统后,不带参数执行Openfiles就可以看到一个进程清单以及各个进程打开的文件(包括共享文件),图五就是Openfiles执行结果的一个片断。如果要查看哪个用户正在运行打开文件的进程,执行openfiles /query /v,如图六。
图五
图六
Openfiles还有其他一些命令行参数,主要用来控制输出格式,另外还可以用Openfiles来监视远程系统打开的文件,前提是远程系统必须启用监视功能。
就监视系统状态而言,事件日志属于最难的部分。在运行了大量应用软件或者启用了安全审计的系统上,审计/事件信息可能很快达到数兆之多,要在如此庞大的事件信息库中寻找特定的事件纪录是相当困难的——至少是相当耗时的。XP新增了一个Eventtriggers工具(eventtriggers.exe),能够在事件日志中发生任意事件时执行指定的命令。假设当有人试图登录系统但验证身份失败时,我们想要执行 C:\Admin\InvalidLogon.cmd脚本,可设置如下:eventtriggers /create /l security /eid 529 /tr“登录失败”/tk c:\admin\InvalidLogon.cmd /ru:administrator。
InvalidLogon.cmd脚本将在本地系统管理员的身份下运行。系统将要求为/ru参数指定的用户输入密码。如果不指定运行InvalidLogon.cmd脚本的用户,系统默认使用“Local System”,但使用Local System可能导致某些命令无法执行,所以本人的建议是最好指定一个具有适当权限的用户。经试验发现,从事件出现到触发/运行指定的命令之间会有约60秒的延迟。就象许多其他XP新增的工具一样,eventtriggers也能够操作远程的XP系统。
三、监视网络
如果你曾经排解过服务器/客户机之间的通信问题,可能已经熟悉网络监视工具Netmon.exe,不过这个工具是随着服务器操作系统提供的。XP的Support Tools有一个Netcap工具(netcap.exe),它和Netmon.exe一样也能够捕获网络通信。第一次运行Netcap时它会提示说正在安装网络监视驱动程序。Netcap能够读取Netmon 2.0以上版本创建的筛选文件,Netmon也能够读取Netcap捕获的数据。
在网络上运行IP Security(IPSec)的用户都知道,Ipsecmon是一个监视IPSec组件的实用工具。奇怪的是,XP并没有提供这个工具,不过不必担心,在XP中Ipsecmon已被一个称为“IP安全监视器”的MMC管理单元替代,后者的监视功能进一步加强,而且兼具监视本地/远程系统的能力。
选择菜单“文件”→“添加/删除管理单元”,点击“添加”打开“添加独立管理单元”对话框,从管理单元清单中找到并选中“IP安全监视器”,点击“添加”,再在“添加/删除管理单元”对话框中点击“确定”返回MMC控制台,如图七。本地机器的节点包含两个子节点:主模式,快速模式。两种模式分别对应IPSec协商过程的第一、二两个阶段。
图七
四、管理系统
在以前的Windows中,使用Support Tools中的kill.exe工具可以关闭一个进程。XP把kill.exe换成了taskkill.exe,增加了关闭远程系统上进程的能力,能够根据进程名称、窗口标题关闭进程,能够关闭子进程,甚至能够根据一组指定的条件关闭一系列进程,允许定义的条件包括:进程状态,内存使用情况,CPU使用情况,装入的DLL,用户名字,服务名字。
从最早的NT 3.1开始,Windows就能够注销连接到共享资源的用户或关闭用户打开的文件。在XP中,你可以要求操作系统关闭本地或远程用户打开的文件。例如,如果要关闭文件,只要执行Openfiles命令时加上/disconnect参数。就象tasklist.exe一样,Openfiles允许指定用户名字、文件名字和打开模式等条件。
利用Logoff命令行工具(logoff.exe)能够强行注销XP上的用户。虽然早期的Windows版本也提供了Logoff命令,但它们只能注销远程登录到服务器的用户;在XP中,Logoff命令能够注销控制台用户了。
总地看来,本文介绍的安全管理工具是人们长久以来盼望Windows提供的工具。虽然说操作系统的易用性在不断提高,但从另一方面理解,操作系统正变得越来越复杂——当你要穿过易用的界面深入掌握、控制Windows时,不得不运用大量的工具,即使你是一个普通的爱好者而不是专职管理员也一样。本文介绍的许多工具是从原来的资源工具包转移到安装操作系统CD,这本身就说明现在该是我们掌握这些工具的时候了。