规划部署以在 Azure 中更新 Windows VM
即使锁定 Azure 虚拟网络对 Internet 的访问权限,也可获取 Windows 更新,而不会危及安全性,也不需要作为整体开放对 Internet 的访问权限。 本文包含有关如何设置外围网络(也称为 DMZ)的建议,指导用户托管 Windows Server Update Service (WSUS) 实例,以便在没有 Internet 连接的情况下安全地更新虚拟网络。
如果使用 Azure 防火墙,请在应用程序规则中使用 WindowsUpdate FQDN 标记,以允许通过防火墙所需的出站网络流量。 有关详细信息,请参阅 FQDN 标记概述 和 规划软件更新 - 配置防火墙。
若要实现本文中的建议,你应该熟悉 Azure 服务。 以下部分介绍建议的部署设计,该设计在单个区域或多区域配置中使用中心辐射型配置。
Azure 虚拟网络中心辐射型网络拓扑
建议通过创建外围网络来设置中心辐射型模型网络拓扑。 在 Internet 和虚拟网络之间的中心内的 Azure 虚拟机上托管 WSUS 服务器。 该中心应具有开放端口。 WSUS 将端口 80 用于 HTTP 协议,将端口 443 用于 HTTPS 协议,以便从 Microsoft 获取更新。 分支指所有其他虚拟网络,它们会与中心通信,而不是与 Internet 通信。 可通过创建子网、网络安全组 (NSG) 和 Azure 虚拟网络对等互连(在允许 WSUS 流量的同时阻止其他 Internet 流量)实现此目的。 此图演示了中心辐射型拓扑的示例:
下载此体系结构的 Visio 文件。
在此图像中:
- snet-wsus 是包含 WSUS 服务器的中心辐射型拓扑中心的子网。
- nsg-ds 是一个网络安全组规则,允许 WSUS 流量,同时阻止其他 Internet 流量。
- Windows Server Update Service 虚拟机 是配置为运行 WSUS 的 Azure 虚拟机。
- snet-workload 是包含 Windows 虚拟机的对等辐射虚拟网络中的子网示例。
- nsg-ms 是一种网络安全组策略,允许流量流向 WSUS VM,但拒绝其他 Internet 流量。
可以重复使用现有服务器,也可以部署将成为 WSUS 的新服务器。 WSUS VM 必须满足记录 的系统要求。 由于这是一项安全敏感功能,因此应计划使用实时 (JIT) 访问此虚拟机。 请参阅使用即时功能管理虚拟机访问。
你的网络会有多个 Azure 虚拟网络,这些虚拟网络可能在相同区域中,也可能在不同区域中。 你需要评估所有 Windows Server VM,了解是否可将其中之一用作 WSUS 服务器。 如果有成千上万个要更新的 VM,建议让某个 Windows Server VM 专门充当 WSUS 角色。 我们还鼓励 VM 不要将不同区域中的 WSUS 服务器用作其主要源。
如果所有虚拟网络都处于同一区域,建议每 18,000 个 VM 设置一个 WSUS。 此建议是综合考虑 VM 的不同要求的结果,既考虑到要更新的客户端 VM 的数目,又考虑到虚拟网络之间的通信成本。 有关 WSUS 容量要求的详细信息,请参阅规划 WSUS 部署。
可以使用 Azure 定价计算器来确定这些配置的成本。 需要提供 WSUS 虚拟机和网络期望的规范;同一区域,跨区域。 对于数据传输,从 3 GB 开始。 请注意,价格将因区域而异。
手动部署
确定要使用的 Azure 虚拟网络或确定需要创建新的 Windows Server 实例后,需要创建 NSG 规则。 该规则将允许 Internet 流量,以便 Windows 更新的元数据和内容与要创建的 WSUS 服务器同步。 下面是需要添加的规则:
- 在端口 80 上允许进出 Internet 的流量的入站/出站 NSG 规则(适用于内容)。
- 在端口 443 上允许进出 Internet 的流量的入站/出站 NSG 规则(适用于元数据)。
- 在端口 8530 上允许来自客户端 VM 的流量的入站/出站 NSG 规则(默认规则,除非进行了配置)。
设置 WSUS
有两种方法可用于设置 WSUS 服务器:
- 若要自动设置配置为处理典型工作负载且只需最少管理的服务器,则可使用 PowerShell 自动化脚本。
- 如果需要处理成千上万个运行许多不同操作系统和语言的客户端,或者想要以 PowerShell 脚本无法处理的方式配置 WSUS,则可手动设置 WSUS。 两种方法均在本文后面部分进行介绍。
也可结合使用这两种方法,具体做法是:使用自动化脚本完成大部分工作,然后使用 WSUS 管理控制台微调服务器设置。
使用自动化脚本设置 WSUS
该 Configure-WSUSServer 脚本允许你设置一个 WSUS 服务器,该服务器将自动同步和批准所选产品和语言集的更新。
注意
该脚本始终将 WSUS 设置为使用 Windows 内部数据库来存储其更新数据。 这可以加快设置并降低管理复杂性。 但是,如果服务器需支持数以千计的客户端计算机(特别是在你还需要支持许多产品和语言的时候),则应改为手动设置 WSUS,这样就可以将 SQL Server 用作数据库。
此脚本的最新版本在 GitHub 上提供。
使用 JSON 文件配置脚本。 目前可以配置以下选项:
- 是应在本地存储更新有效负载(如果是的话,应将其存储在何处),还是应将其保留在 Microsoft 服务器上。
- 服务器上应提供哪些产品、更新分类和语言。
- 服务器是应自动批准要安装的更新,还是应让更新保持未经批准的状态,直至管理员批准。
- 服务器是否应自动从 Microsoft 检索新的更新,以及在应自动检索的情况下,检索频率如何。
- 是否应使用快速更新包。 (快速更新包可减少服务器到客户端的带宽,但代价是客户端 CPU/磁盘使用情况以及服务器到服务器的带宽受到影响。)
- 脚本是否应覆盖其以前的设置。 (通常情况下,为了避免无意中进行的可能会破坏服务器运行的重新配置,脚本在给定服务器上只运行一次。)
将脚本及其配置文件复制到本地存储,并根据需要编辑配置文件。
警告
编辑配置文件时请谨慎操作。 用于 JSON 配置文件的语法很严格。 如果无意中更改了文件的结构,而不仅仅是参数值,则不会加载配置文件。
可通过以下两种方式之一运行此脚本:
可通过 WSUS VM 手动运行脚本。
以下命令从提升的命令提示符窗口运行,并将安装和配置 WSUS。 该命令使用当前目录中的脚本和配置文件。
powershell.exe -ExecutionPolicy Unrestricted -File .\Configure-WSUSServer.ps1 -WSUSConfigJson .\WSUS-Config.json-
将脚本和 JSON 配置文件复制到自己的存储容器,该容器具有专用网络视线到 WSUS VM。
在典型的 VM 和 Azure 虚拟网络配置中,自定义脚本扩展只需要以下两个参数即可正确运行脚本。 (需要将此处所示的值替换为存储位置的 URL。)
settings: { fileUris: [ 'https://yourstorageaccount.blob.core.windows.net/wsus/Configure-WSUSServer.ps1' 'https://yourstorageaccount.blob.core.windows.net/container/WSUS-Config.json' ] commandToExecute: 'powershell.exe -ExecutionPolicy Unrestricted -File .\Configure-WSUSServer.ps1 -WSUSConfigJson .\WSUS-Config.json' }
此脚本会启动为客户端计算机提供更新所需的初始同步。 但是,它不会等待该同步完成。 根据所选的产品、分类和语言,初始同步可能需要数个小时。 之后的所有同步耗时应该会缩短。
手动设置 WSUS
在 WSUS VM 中,按照“安装 WSUS 服务器角色”中找到的说明进行作
在同步期间,WSUS 会确定自上次同步以来是否有任何新的更新可用。 如果你是第一次同步 WSUS,系统会立即下载元数据。 仅当启用了本地存储,并且已批准至少一个计算机组的更新时,才会下载有效负载。
注意
初始同步可能需要一小时以上时间。 之后的所有同步耗时应该会显著缩短。
配置与 WSUS 通信所需的虚拟网络
接下来,请设置 Azure 虚拟网络对等互连或全局虚拟网络对等互连,以便与中心通信。 建议在已部署的每个区域中设置 WSUS 服务器,最大程度地减少延迟。
在每个充当分支的 Azure 虚拟网络上,需要创建具有以下规则的 NSG 策略:
- 入站/出站 NSG 规则,允许流量发到端口 8530 上的 WSUS VM(除非已配置)。
- 用于拒绝流向 Internet 的流量的入站/出站 NSG 规则。
接下来,创建从分支到中心的 Azure 虚拟网络对等互连。
配置客户端虚拟机
WSUS 可用于更新运行 Windows 的任何虚拟机。 若要使用组策略设置客户端,请参阅 配置客户端计算机以从 WSUS 服务器接收更新。
如果你是管理大型网络的管理员,请参阅配置自动更新和更新服务位置,了解有关如何使用组策略设置来自动配置客户端的信息。
Azure 更新管理器
可以使用 Azure 更新管理器来管理和计划针对 WSUS 同步的 VM 的操作系统更新。 根据已将 VM 配置为与之同步的源评估 VM 的修补状态(即缺少哪些修补程序)。 如果将 Windows VM 配置为向 WSUS 报告,则结果可能不同于 Microsoft 更新所显示的内容,具体取决于 WSUS 上次通过 Microsoft 更新进行同步的时间。 配置 WSUS 环境后,即可启用更新管理。 有关详细信息,请参阅 Azure 更新管理器概述。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
首席作者:
- Paul Reed | Azure 合规性高级项目经理
后续步骤
- 有关规划部署的详细信息,请参阅规划 WSUS 部署。
- 若要详细了解如何管理 WSUS、设置 WSUS 同步计划以及其他内容,请参阅 WSUS 管理。