当前位置:操作系统 > Windows 2003 >>

打造安全的Windows安装盘

每次安装好Windows之后还有很重要的一件事情要做,那就是加固处理——配置系统,增强其安全性、稳定性。加固Windows 2000/XP的关键步骤包括安装各种Service Pack、Hotfix,修改注册表,改变不安全的默认配置。遗憾的是,不是每一个人都注意到了加固Windows的重要性,因此Internet上才会有数不清的计算机脆弱得不堪一击,甚至沦落为传播蠕虫病毒的温床。一种比较理想的解决办法是制作一个预装了各种Service Pack、Hotfix的Windows安装盘,然后用这种天生安全的安装盘安装Windows,安装好之后不必再另行安装Service Pack、Hotfix,从而实现Service Pack、Hotfix的一体化安装。遗憾的是,微软提供的这方面的工具很少,而且近期似乎不打算提供适当的工具来支持本文讨论的一体化安装。不过,只要借助于第三方工具,同时运用一些经验和技巧,我们还是可以手工制作出安全的Windows安装盘。但必须指出的是:本文不是为那些想要偷懒或胆小的用户写作的。特别地,为Windows安装盘加载Hotfix的过程极其繁琐,而且微软有可能在将来的某一天突然更改其补丁安装策略,使本文介绍的操作方式不再有效。不过,如果你需要安装大量的Windows系统,本文介绍的办法值得一试。一、准备安装文件安装Win 2K/XP的方式很多,如网络安装、无人值守安装、磁盘克隆等,但有一种方式微软至今尚未直接支持,那就是定制可启动的安装CD——它可以作为其他安装方式的基础,非常实用。第一步是创建一个Windows的发布目录,将它作为可启动安装CD的源目录,为保证文件的完整性,应当严格确保该目录的安全。以Win 2K为例,首先将Win 2K安装CD的所有内容复制到硬盘上的发布目录。通常,安装CD上有许多文件根本不会用到,为了给其他工具、Service Pack、Hotfix留出空间,最好将这些不用的文件和目录删除。一般而言,删除下列文件和目录不会带来任何问题:\bootdisk,\setuptxt,\support,\valueadd,read1st.txt,以及readme.doc。如果Windows安装盘只用于全新安装,不用于升级,还可以安全地删除下列文件和目录:\i386\win9xmig,\i386\win9xupg,\i386\winntupg,autorun.inf,以及setup.exe。另外,常用的小软件也可以直接放入Windows安装盘,例如,我们可以为Windows安装盘创建一个存放常用软件的\software目录、一个存放更新文件的\updates目录。二、加载Service Pack将Service Pack直接集成到Windows安装文件的好处很多,例如,Service Pack将成为Windows安装文件密不可分的一部分,安装好Windows以后如果要添加或删除某些组件,系统将自动使用经过Service Pack更新后的文件,而不是原始安装盘上的文件。当然,这种安装方式也有其缺点,这就是Service Pack不可卸载——所以如果有必要,首先应当确认一下安装Service Pack之后应用软件仍能正常运行。首先从微软网站下载一份最新的Service Pack(例如,Service Pack 4,即SP4),执行w2ksp4.exe -s:,命令执行完毕后,Windows发布目录中的安装文件已经被Service Pack更新了。三、加载Hotfix微软官方不支持将Hotfix加载到Windows安装文件,通常,当我们添加或重新安装了一个Windows组件(例如IIS),就必须重新安装所有的Hotfix,确保所有文件都是最新的。之所以如此,原因就在于添加组件时,安装程序会分析安装配置文件(.inf文件),据此确定从哪里获取当前安装的组件所需的文件。如果我们安装的是Service Pack,.inf文件会指向Service Pack提供的更新后的文件;但如果安装一个Hotfix,.inf文件不会被更新,因此,如果要将Hotfix加载到Windows安装文件,必须手工修改.inf文件。首先创建一个临时目录,将最新Service Pack之后发布的所有Hotfix下载到该目录。接着,重命名所有Hotfix文件,使之符合8.3命名规范(这是安装程序的要求):打开一个命令窗口,转到存放Hotfix的临时目录,执行命令:ren *.* ???????.*。该命令运行完毕后,Hotfix文件的名字就变成了8.3格式,例如q318593_w2k_sp3_x86_en.exe将变成q318593.exe。接下来解压缩所有Hotfix。从命令窗口中,执行:for %i in (q*.exe) do start /wait %i /x。按下Enter键之后,命令行上出现类如“C:\> start /wait q318593.exe /x”的提示,同时弹出一个窗口,要求指定一个目录来存放解压缩得到的文件。根据hotfix的编号指定目录名称,例如“\q318593”,点击“确定”。对每一个hotfix重复执行同样的操作。现在要开始把hotfix的文件复制到发布目录了。不过,在命令行窗口中,首先转到发布目录的i386子目录,执行expand -r *.in_,把所有压缩的.inf文件解开,以便随后修改。接下来,从最早的hotfix开始,把每一个文件复制到发布目录下的i386目录,除hotfix.exe、hotfix.inf、spmsg.dll、spuninst.exe和svcpack1.dll之外的所有文件都要复制。不过,有时\symbols和\update这两个目录也可以忽略,只是必须注意下面将会论及的例外情况。复制好文件之后,删除\i386目录之内相应的压缩版本。例如,如果复制了kernel32.exe文件,则删除对应的压缩版本kernel32.ex_文件。删除压缩版的文件之后,安装程序就不得不使用非压缩版了。如果\i386目录下没有对应的压缩版文件,则需要设法找出原始文件的位置——这就是我们要解开.inf文件的原因。在命令窗口中使用Find命令,或者使用资源管理器的查找功能,搜索所有.inf文件查找刚才复制的文件的名字。例如,假设把一个admin.dll文件复制到了\i386目录,但\i386目录之内却找不到对应的压缩文件admin.dl_,那就搜索所有.inf文件查找“admin.dll”。找到的结果可能有一个以上,不过我们要找的文件应当包含一行类如“admin.dll=1,,20540”的内容。经检查,这行内容位于fp40ext.inf文件的[SourceDisksFiles]小节。第一个数字(这里是1)是磁盘的编号,由同一.inf文件的[SourceDisksNames]小节定义。磁盘ID通常指向Win 2K的安装CD、Service Pack安装目录,或者.cab压缩文件。打开fp40ext.inf文件,可以看到类如图一所示的内容。


   本篇文章共3页,此页为首页   下一页




图一检查前面提到的包含admin.dll的行,可以发现磁盘ID指向了fp40ext.cab文件。不过,由于我们刚刚将新的admin.dll文件复制到了\i386目录,所以要修改这个位置。首先,在[SourceDisksNames](注意,它可能叫做SourceDisksNames.x86)节创建一个新的位置,即加入下面这行内容:0=%SERVICEPACK_NAME%" "",0,%34000%。注意该.inf文件只包含一个磁盘ID,它指向fp40ext.cab文件。在某些.inf文件中,你可能会发现已经有了一行类似的内容,如果这行内容已经存在,那就不必再加,直接进入下一步。找到包含admin.dll的这行内容,把原来的“admin.dll=1,,20540”改成“admin.dll=0,,20540”。现在,当安装程序搜索admin.dll文件,它将寻找主发布目录(磁盘ID是0),而不是原来的.cab文件(磁盘ID是1)。对于每一个在\i386目录下没有相应压缩版的文件,按照上述步骤执行类似的修改——这个过程已经很复杂了,不过下面还有更麻烦的。某些与IIS、SMTP、NNTP服务相关的文件在.cab文件中有不同的名字,通常是在原文件名字的基础上稍作变化,例如,mailmsg.dll在ims.cab文件中变成了smtp_mailmsg.dll,在ins.cab文件中变成了nntp_mailmsg.dll。如果搜索.inf文件寻找引用了mailmsg.dll的地方,不会有任何结果,但可以找到引用了smtp_mailmsg.dll和nntp_mailmsg.dll的地方。虽然系统更改文件名字的方式不存在严格、明确的规则,不过也不是随心所欲,不存在文件名字和原始文件毫无关联的情况。遇到这类文件名字变异的情况时,首先在\i386目录下复制一份文件(例如mailmsg.dll),更改该文件的名字,使其与.inf文件中出现的名字相同。然后,在[SourceDisksFiles]节找到对该文件的引用,按照前面的说明把磁盘ID改成指向新的位置。有一类文件无法在\i386目录或任何.cab文件中找到,这就是编目文件(Catalog File)。编目文件的扩展名是.cat,用于管理驱动程序的签名信息,例如sp3.cat文件包含了经过WHQL测试的驱动程序文件的校验和。微软每次更新了一个驱动程序,都会发布一个新的编目文件。仔细观察一下就可以发现,每一个Hotfix要么包含一个新的sp3.cat文件(或者,对于SP4基础上的hotfix,则是sp4.cat),要么包含一个根据Hotfix的编号命名的编目文件。因此,复制sp3.cat(或sp4.cat)文件时,必须使用该文件的最新版本。由于编目文件的内容是不断累积的,所以最新、最大的文件就是我们要用的文件。把最新的编目文件复制到\i386目录下,然后记下文件的名字,稍后还要用到。接下来,在发布目录的根目录之下创建一个\$OEM$\$$\hotfixes目录,把Hotfix的安装程序复制到该目录。注意该目录和\i386位于同一个目录层次,而不象某些微软文档提到的那样属于\i386的子目录。当我们运行安装程序时,系统会把\hotfixes目录复制到\%systemroot%目录(例如,C:\winnt\hotfixes目录)。把所有Hotfix复制到该目录之后,从http://support.microsoft.com/default.aspx?scid=kb;en-us;q296861下载qchain.exe,并把它保存到同一目录。最后一步是修改svcpack.inf文件,使其包含类如图二的内容,在[ProductCatalogsToInstall]小节中,修改清单内容,加入以前复制到\i386目录的所有编目文件。
计算机教程打造安全的Windows安装盘来自www.itwen.comIT WEN计算机教程网


图二只要按照上面的步骤正确操作,现在发布目录下的Windows安装文件应该已经加载了最新的Service" Pack和Hotfix了。如果用这些安装文件来添加或重新安装Windows组件,安装完成后不必另行安装Service Pack和Hotfix。四、编写Winnt.sif 在需要高度安全的场合,安装Win 2K/XP时最好先用最小安装方式

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,