仅具有基于 IP 的规则和通用出站连接的物理防火墙后面的 Windows 更新已关闭

仅具有基于 IP 的规则和通用出站连接的物理防火墙后面的 Windows 更新已关闭

我有一些盒子,除了 Windows 更新外,我不想允许任何进出互联网的流量。但是现有的防火墙 (Cisco ASA) 显然只支持基于 IP 的规则。据我所知,除了 Microsoft 根据需要列出的六个 URL 掩码之外,似乎无法通过任何其他方式访问 Microsoft 更新。

我曾考虑构建一个完整的 WSUS,然后手动将更新文件复制到其中,这样就不需要直接访问 Microsoft,但这对于涉及的极少数盒子来说听起来非常繁重。

我也尝试过各种手动更新,但不确定如何方便而自信地确保以正确的顺序应用正确的更新。

任何方向的任何想法都将不胜感激。我希望这尽可能简单/经济高效,但在唯一绝对必要的互联网访问策略上几乎没有灵活性。

答案1

启用 HTTP 检查后,Cisco ASA 可以执行 URL 过滤。他们有一篇很棒的文章展示了它的工作原理这里该文件中最相关的示例如下所示:

! Replace regex with all known MS Update hostnames
regex ms-updates "^update\.microsoft\.com|download\.windowsupdate\.com$"

! Match if the Host: header does not match the regex.
class-map type inspect http match-any not-ms-updates
 match not request header host regex ms-updates

! Drop packets matching the class-map (and thus not matching the regex).
policy-map type inspect http ms-update-policy
 parameters
 class not-ms-updates
  drop-connection log

! Configure HTTP inspection with the policy applied.
policy-map global_policy
 class inspection_default
  inspect http ms-update-policy

service-policy global_policy global

主要问题是 HTTP 检查只能处理未加密的 HTTP。无法使用 ASA 检查 HTTPS 流量。某些 Microsoft Update URL 以 HTTPS 形式提供,因此需要注意这一点。

使用检查策略仍然会给用户带来风险,他们可能会编写符合策略的自定义 HTTP 请求,但实际上不会转到授权站点。可以通过在访问列表中使用实际主机名来缓解这种情况,方法是使用FQDN 对象8.4(2) 中引入的功能。这允许您创建一个引用完全限定域名的对象,该对象又可用于访问列表。例如:

object network ms-update-1
 fqdn update.microsoft.com

access-list inside_access_out extended permit any object ms-update-1 eq 80
access-list inside_access_out extended deny ip any any log

access-group inside_access_out in interface inside

如果您采用这种方法,我建议将 FQDN 行放置在 ACL 中尽可能低的位置,以便它仅在实际更新流量时触发。ASA 确实执行 DNS 缓存,但如果查询的 FQDN 的 TTL 非常低,则可能导致 ASA 发出大量 DNS 请求。使用本地缓存 DNS 服务器应该有助于最大限度地减少任何延迟。

结合这两种方法,您可以利用现有资源满足您的需要,而且无需额外花费,但我强烈建议您阅读链接的文档,以便了解它们的局限性。

相关内容