我有一些箱子,我不想允许任何进出口stream量到互联网除了Windows更新。 但是防火墙(Cisco ASA)显然只支持基于IP的规则。 尽我所能告诉微软更新通过任何其他的事情,然后按需要微软列出的半打url掩码不会出现的可能。
我已经开始构build完整的WSUS,然后手动复制更新文件,以便不需要直接访问Microsoft,但对于涉及的极less数框,这听起来非常重要。
我也围绕手动更新四处奔波,但我不确定如何方便和自信地确保正确的更新正在按正确的顺序应用。
任何方向的任何想法,将不胜感激。 我希望尽可能简单/有成本效益,但是对于唯一绝对需要的互联网接入政策来说,灵活性很小。
当启用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检测只能处理未encryption的HTTP。 使用ASA检查HTTPSstream量是不可能的。 某些Microsoft更新URL可用作HTTPS,所以这是要注意的事情。
使用检查策略仍然会让用户打开一个与策略相匹配的自定义HTTP请求,但实际上并不会访问授权的站点。 这可以通过使用8.4(2)中介绍的FQDN对象function在访问列表中使用实际主机名来缓解。 这使您可以创build一个引用完全限定的域名的对象,这个域名又可以在访问列表中使用。 例如:
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
如果采用这种方法,我build议将FQDN线尽可能低地放在ACL中,这样只会触发实际的更新stream量。 ASA确实执行DNScaching,但如果查询的FQDN的TTL非常低,则可能会导致来自ASA的大量DNS请求。 使用本地cachingDNS服务器应该有助于减less任何延迟。
这两种方法的组合应该做你所需要的和你没有额外的成本,但我强烈build议阅读链接的文件,所以你了解自己的局限性。