WSUS的链式部署
在前面的博文中,我们介绍了如何进行WSUS2.0的部署以及如何利用WSUS进行补丁分发。今天我们要考虑这样一个场景,在一个大型企业中,一台WSUS服务器满足不了所有用户的更新需求,这时我们可以考虑进行WSUS服务器的链式部署,即分别设置WSUS上游服务器和下游服务器。链式部署的拓扑如下图所示,上游服务器从微软下载更新,下游服务器则从上游服务器下载更新。一般我们可以把总公司的WSUS服务器配置为上游服务器,把分支机构的WSUS服务器配置为下游服务器。
注意,链式部署很少超过两层,否则会引起性能下降。
我们今天的实验拓扑如下图所示,Florence是父域的域控制器,Berlin是父域的WSUS服务器,Berlin承担上游服务器的角色;perth是子域的域控制器,firenze是子域的WSUS服务器,Firenze承担下游服务器的角色。我们通过实验来看一下游服务器如何从上游服务器获取更新数据。
下游服务器同步上游服务器时需要访问上游服务器的ServerSyncWebService虚拟目录,如果我们不对下游服务器进行身份验证,允许任何计算机成为下游服务器,那么只需采用默认设置允许匿名访问ServerSyncWebService虚拟目录即可;如果想对下游服务器进行身份验证,那么需要在ServerSyncWebService虚拟目录上禁止匿名访问,同时需要配置上游服务器的web.config文件。现在我们先不考虑需要对下游服务器进行身份验证。
在同步选项的更新源中我们选择从上游服务器进行同步,如下图所示,填写好上游服务器的计算机名及端口后点击页面左侧的“保存设置”,然后点击“立即同步”。
如下图所示,Firenze已经开始从上游服务器同步了,同步的速度明显比从微软同步快。
同步结束后,查看管理页面中的更新,如下图所示,Firenze已经从上游服务器下载了更新元文件。
试着批准安装一些更新,看看下游服务器能否正常工作。我们在组策略中将Firenze设置为shanghai.wsustest.com域内的WSUS服务器,过了一段时间后,域内的计算机陆续找到了Firenze,开始从Frienze下载更新并安装。我们在WSUS服务器的报告中可以看到,如下图所示,已经有计算机从Firenze上安装更新了,这说明Firenze作为WSUS的下游服务器已经配置成功!
我们在下游服务器上可以自主审批更新,但却无法更改从上游服务器继承的某些设置,在下游服务器的WSUS管理页面上打开同步选项,如下图所示,我们发现无法对产品和分类进行更改。
更新文件和语言也无法更改,原因是这些设置会影响WSUS服务器的元数据库结构,而上下游服务器的元数据库结构需要保持一致,因此微软不允许你更改这些设置。
如果我们希望对下游服务器的人选进行限制,只允许指定的计算机成为下游服务器,那么上下游服务器必须在同一域内或在有信任关系的两个域内,而且我们还需要在上游服务器上进行下列操作:
1) 修改web.config
2) 修改虚拟目录ServerSyncWebService的身份验证方法
一 修改web.config
如果上游服务器只允许Firenze成为下游服务器,那么上游服务器应该修改C:\Program Files\Update Services\WebServices\serversyncwebservice\web.config,如下图所示,我们可以在此文件中使用< authorization>元素来定义一个认证列表,只有此认证列表中的WSUS服务器才能和上游服务器进行同步。注意,我们必须把< authorization>元素添加在<system.web>元素下!allow users=”shanghai\firenze$”意思是允许shanghai.wsustest.com域中的firenze与上游服务器同步,域内的计算机账号都是以$结尾的。Deny users=”*”意思是拒绝其他所有的计算机同步上游服务器。这两行语句的顺序决定了执行的优先级,如果我们一不小心弄错了顺序,把deny users=”*”放到了前面,那所有的计算机都会被上游服务器所拒绝,这点和ISA的防火墙策略执行顺序完全一样,切记!
二 修改虚拟目录ServerSyncWebService的身份验证方法
我们既然已经修改了web.config,只允许shanghai子域内的Firenze成为下游服务器,那么访问ServerSyncWebService虚拟目录的计算机必须证明自己是firenze才能成为下游服务器。匿名访问无法证明访问者的身份,因此我们需要更改虚拟目录的身份验证方式。由于下游服务器的同步选项中没有办法输入用户名和口令来向上游服务器证明自己的身份,因此下游服务器只能利用集成验证来验明正身了,这也是为什么要求上下游服务器在用一域内或在有信任关系的两个域内。在上游服务器依次点击开始-程序-管理工具-Internet信息服务(IIS)管理器,右键点击虚拟目录ServerSyncWebService,如下图所示,选择“属性”。
在虚拟目录属性中切换到“目录安全性”标签,如下图所示,选择“编辑”。
如下图所示,我们取消“启用匿名访问”,勾选“集成Windows身份验证”。
这样我们就完成了上游服务器对下游服务器的身份验证需求,以后Firenze可以同步上游服务器,其他WSUS服务器试图同步上游服务器时则会出现 401号错误(未经授权)。