背景介绍
经过永恒之蓝这么一闹,客户开始重视系统补丁更新,由于客户保密级别很高,内网不允许与互联网连接,而使用wsusoffline工具对每台服务器手动更新补丁工作量大,而客户也没有预算购买第三方补丁更新软件,于是尝试使用WSUS服务器在不连接公网的情况下进行补丁更新。
环境介绍
客户服务器都处于工作组环境下,内网的服务器由Windows Server 2003R2和Windows Server 2008R2两种,而Windows Server 2008R2自带的WSUS3.0SP1已不再受支持,添加WSUS角色时总会报错,如果一定要用Windows Server 2008R2需要去微软下载WSUS3.0SP2完成WSUS服务器的搭建,所以WSUS服务器选择使用Windows Server 2012R2进行搭建。
操作步骤
1.在公网环境搭建一台WSUS服务器,以便下载补丁包(搭建过程略),搭建完成后设置更新文件和更新语言选项,语言选项是选择下载那些语言版本的操作系统补丁,更新文件方式分为:
(1)只有在审更新后批后,才能将文件下载到此服务器。该选项是在审批允许下载前只下载补丁包的源数据而非补丁本身,优点是节省带宽,缺点是只有审批后才会真正下载补丁包,微软建议使用该选项,它也是默认选项。
(2)下载快速安装文件。该选项是审批前直接将补丁包下载到本地,待审批通过后再进行安装,它的优点是如果内网中的计算机已安装过旧的补丁包,它只会安装就补丁包与新补丁包之间差异的部分,缓解内网网络负担,缺点是对外网带消耗大。
结合实际环境,此处选择下载安装文件,需要注意的是:后期在内网中WSUS服务器的更新文件和更新语言选项设置必须和此处的选项保持一致。而更新源和代理服务器、产品和分类、同步计划设置可以不用考虑。
为方便下载,将自动审批选项设置为任何分类,然后开始进行补丁包下载。
2.下载完成后在指定的补丁存放路径下找到WsusContent目录,该目录中存放的就是下载下来的补丁,可以使用各种备份软件或Xcopy工具进行备份,然后到内网的WSUS服务器上进行恢复,注意不要更改该目录下的层级结构,此处选择最原始的方法直接复制一份。
3.只复制WsusContent目录到内网的WSUS服务器上内网计算机依然无法正常下载补丁,还需要使用WSUS自带的wsusutil工具将外网WSUS服务器上补丁包间的源数据导出,该工具位于C:\Program Files\Update Services\Tools目录下,该工具无法通过双击打开,在命令行模式下可以执行,命令格式为:
wsusutil.exe export packagename logfile #packagename为.cab格式,logfile为.log格式,packagename和logfile名称必须完全一致
4.在内网搭建一个WSUS服务器,补丁包存放的位置设置建议和外网服务器保持一致,将复制的WsusContent目录考到内网WSUS服务器上
5.再使用wsusutil工具导入外网WSUS服务器补丁包的源数据,此时内网WSUS服务器补丁就算更新完成,以后每次更新补丁时都需要更新源数据
6.打开IIS管理器,确认WSUS使用的端口号
7.在内网中找一台计算机,将组策略中WSUS服务器地址指向设置为实际的地址,完成后运行gpupdate /force刷新组策略
8.打开这台计算机的注册表,将Windows update键值导出成为一个reg注册表文件,发给内网中其他计算机,双击运行完成WSUS服务器的指向,至此操作完成
补充说明
1.内网中其他计算机运行完reg文件后,注册表的键值完成修改,但组策略中依然显示未设置,此时可以正常从WSUS服务器获取补丁,推测组策略和注册表不是存放在同一位置。
2.经过反复测试,内网中其他计算机运行注册表文件后是可以找到WSUS服务器的,只是有时候执行完注册表后立即可以进行更新,有时候出现错误后重启下系统也可以恢复正常,有时候反复重启、刷新组策略始终报这个错误,网上查了下这个错误说是网络故障引起的,因为都是处于同一个网络环境下,就很奇怪这个故障怎么解决,感觉这个故障的出现有很大的随机性。
3.WSUS是通过计算机名来标识PC的,如果环境中存在2台相同计算机名的PC,后向WSUS服务器报告的会被记录在WSUS的所有计算机列表中,尽管这2台PC都能从WSUS服务器获取到补丁包。