找回密码
 注册
快捷导航
查看: 4749|回复: 16

[转帖]打造安全的Windows安装盘

[复制链接] |自动提醒
阅读字号:

928

回帖

29

积分

21

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2002-7-22
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2003-9-16 09:21:46| 字数 5,462| - 北京市朝阳区 联通/西城区联通 | 显示全部楼层 |阅读模式
每次安装好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发布目录>,命令执行完毕后,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文件,检查前面提到的包含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安装文件应该已经加载了最新的Service Pack和Hotfix了。如果用这些安装文件来添加或重新安装Windows组件,安装完成后不必另行安装Service Pack和Hotfix。
四、编写Winnt.sif
  在需要高度安全的场合,安装Win 2K/XP时最好先用最小安装方式安装,然后依次加入各种必要的组件和服务。例如,如果要配置一个Web服务器,首先用最小方式安装一个Windows,然后加入IIS Web服务,让IIS服务正常运行起来并采取必要的安全保障措施,在此基础上再添加其他需要的服务,如SMTP和DNS服务,每次添加一个。
  用全新安装方式安装Windows时,安装程序要用到一个特殊的文件,即winnt.sif文件。winnt.sif其实与unattend.txt文件一样,两者除了文件名字不同之外,另一个不同之处是winnt.sif存放在\i386目录下,而且它是自动起作用的,即使从CD-ROM启动并开始安装也一样。要精简Windows自动安装的可选组件,关键就是要修改winnt.sif的[Components]小节,在这里禁止安装所有多余的组件.
  前面我们只复制了hotfix的文件,但没有修改注册表,有些工具(例如Windows Update)可能报告Hotfix还没有安装。为避免这类问题,确保系统正确安装了Hotfix,除了直接复制Hotfix文件之外,还必须在安装期间运行Hotfix的安装过程,而运行Hotfix安装过程的最好办法就是利用winnt.sif文件的[GuiRunOnce]小节。
  由于我们把所有Hotfix复制到了\%systemroot%\hotfixes目录,因此现在要从该目录运行Hotfix的安装程序。
  注意[GuiRunOnce]小节的最后调用了qchain.exe,它保证了在安装多个Hotfix的时候,不管各个Hotfix是以什么次序安装,系统总是复制了正确的文件。
  现在,我们已经成功地把Service Pack和Hotfix加载到了Windows安装文件,接下来就可以利用发布目录中的安装文件安装Windows了。虽然这个过程看起来极其繁琐,不一定对谁都适用,但如果你经常需要安装/重装Windows,一份天生安全的安装CD是必不可少的。

6599

回帖

62

积分

1万

资产值

荣誉版主 Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

注册时间
2002-4-19
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2003-9-16 11:41:18| 字数 17| - 北京市 鹏博士BGP | 显示全部楼层
不错,可惜不是原创的,要不有分加的
Thinkpad T400 AB5 | iMac | FJ S2 pro
Everything that has a beginning has an end.
回复 支持 反对

使用道具 举报

4260

回帖

102

积分

8782

资产值

荣誉版主 Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

注册时间
2002-4-24
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2003-9-16 15:18:20| 字数 41| - 福建省厦门市 电信 | 显示全部楼层
虽然不是原创,但是转载有功呀。也加一分吧。

偶尔越界操作,hsz76别生气呀。呵呵。
TP 专门网三原则:
1、兄弟我先抛块砖,有玉的尽管砸过来。
2、偷一个人的主意是剽窃,偷很多人的主意是研究。
3、有困难要帮,没有困难制造困难也要帮。
回复 支持 反对

使用道具 举报

3万

回帖

369

积分

27万

资产值

超级版主 Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

注册时间
2002-8-15
发表于 2003-9-16 15:45:45| 字数 16| - 广东省广州市 盈联宽带 | 显示全部楼层
折腾这么多分,我看了有扣分的冲动
回复 支持 反对

使用道具 举报

928

回帖

29

积分

21

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2002-7-22
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
 楼主| 发表于 2003-9-16 15:58:43| 字数 98| - 北京市朝阳区 联通/西城区联通 | 显示全部楼层
QUOTE:
Originally posted by 折腾 at 2003-9-16 15:18:
虽然不是原创,但是转载有功呀。也加一分吧。

偶尔越界操作,hsz76别生气呀。呵呵。


感谢啊!:lol::lol:
回复 支持 反对

使用道具 举报

904

回帖

32

积分

1万

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2002-12-21
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2003-10-8 15:54:07| 字数 13| - 新疆克拉玛依市 电信 | 显示全部楼层
想问一声,有人按着做过吗?
回复 支持 反对

使用道具 举报

6599

回帖

62

积分

1万

资产值

荣誉版主 Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

注册时间
2002-4-19
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2003-10-8 16:02:11| 字数 86| - 北京市 鹏博士BGP | 显示全部楼层
QUOTE:
Originally posted by 矛盾 at 2003-10-8 15:54:
想问一声,有人按着做过吗?


看看geely后面的帖子,他实际完成了一个ISO,步骤很详细
Thinkpad T400 AB5 | iMac | FJ S2 pro
Everything that has a beginning has an end.
回复 支持 反对

使用道具 举报

826

回帖

1

积分

1330

资产值

初级会员 Rank: 1

注册时间
2002-3-11
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2003-10-9 16:18:34| 字数 32| - 上海市卢湾区 电信 | 显示全部楼层
geely的oem xp在我的x31导致系统严重崩溃。。。搞不明白
T60 2007BF6   1g ddr2 667
回复 支持 反对

使用道具 举报

91

回帖

0

积分

119

资产值

入门会员 Rank: 1

注册时间
2004-4-22
发表于 2004-6-8 20:41:27| 字数 14| - 黑龙江省哈尔滨市 联通 | 显示全部楼层
看到精品就要虚心好好的学学!
回复 支持 反对

使用道具 举报

3316

回帖

50

积分

7291

资产值

钻石会员 Rank: 3Rank: 3Rank: 3

注册时间
2003-3-14
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2004-6-8 21:02:24| 字数 93| - 江苏省南京市 电信 | 显示全部楼层
QUOTE:
Originally posted by 矛盾 at 2003-10-8 03:54 PM:
想问一声,有人按着做过吗?


确实做过,所有Service Pack,热修补程序和OEM驱动全部集成。
thinking...
回复 支持 反对

使用道具 举报

5239

回帖

23

积分

1万

资产值

荣誉版主 Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

注册时间
2003-1-30
铜牌荣誉勋章(注册8年以上会员)
发表于 2004-6-8 21:30:47| 字数 28| - 上海市南汇区 电信/惠南镇FTTB | 显示全部楼层
这个看起来比较复杂,做个Service Pack还算方便的
//  I THINK SO I   //   我思故我在 //
回复 支持 反对

使用道具 举报

2万

回帖

3

积分

5116

资产值

初级会员 Rank: 1

注册时间
2005-8-8
铜牌荣誉勋章(注册8年以上会员)
发表于 2006-3-16 13:33:44| 字数 9| - 广东省佛山市三水区 电信 | 显示全部楼层
收藏,回去研究一些
向死而生
一粒砂中三千界 合目内观礼毗卢
茶气氤氲尘内外 何须槽场问生熟
回复 支持 反对

使用道具 举报

2万

回帖

229

积分

13万

资产值

至尊会员II Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2005-3-29
银牌荣誉勋章(注册10年以上会员)
发表于 2006-3-16 13:47:41| 字数 62| - 江西省赣州市 电信/江西理工大学 | 显示全部楼层
QUOTE:
原帖由 DarkClouds 于 2006-3-16 13:33 发表
收藏,回去研究一些

**\太强了,这也挖出来了
一起学习
T60p T7600,4GB,UXGA
X41 PM778, 2G,32G,IPS
X61 T8100,2G,120G,SXGA
X61s T9300,4G,120G,SXGA
X62s I7-5500U,16G,250G,SXGA
X62-16 I7-5600U,32G,180G+1T,SXGA
回复 支持 反对

使用道具 举报

682

回帖

31

积分

5356

资产值

白金会员 Rank: 3Rank: 3Rank: 3

注册时间
2004-8-16
铜牌荣誉勋章(注册8年以上会员)
发表于 2006-3-16 14:06:29| 字数 7| - 北京市 联通 | 显示全部楼层
厉害,学习一下
T42/PM 745/2G/160G/CDRW+DVD/14. 1/Win7SP1X86
X200/P8600/8G/SSD120G/14.1/Win7SP1X64
QQ:83713767
回复 支持 反对

使用道具 举报

396

回帖

0

积分

2034

资产值

入门会员 Rank: 1

注册时间
2005-9-27
发表于 2006-3-17 02:09:59| 字数 11| - 江西省抚州市 电信/东华理工大学(本部) | 显示全部楼层
很有用哦,耐心的看下哈
回复 支持 反对

使用道具 举报

1898

回帖

0

积分

5901

资产值

入门会员 Rank: 1

注册时间
2005-1-17
发表于 2006-3-17 12:06:33| 字数 9| - 北京市丰台区 联通 | 显示全部楼层
先收藏,抽空慢慢看
IBM T410
IBM X61T
回复 支持 反对

使用道具 举报

429

回帖

0

积分

619

资产值

入门会员 Rank: 1

注册时间
2005-12-5
发表于 2006-3-17 12:38:04| 字数 12| - 浙江省金华市 电信 | 显示全部楼层
太长了,看了两次都没看完
T43
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2024-5-21 18:42 , Processed in 0.165954 second(s), 58 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|联系我们|专门网

返回顶部