最近论坛中有朋友提及通过 ISA Server 不能访问一些网站 。对于这种问题,我首先询问是否打上了最新的补丁 。补丁是故障排除的基础,只有在打上最新补丁的情况下,才能最好的分析并定位问题 。
然后,我们需要从以下两方面来进行分析:
1、首先分析 ISA Server 的警告和日志,看是否是被 HTTP 过滤器拒绝访问 。如果是被 HTTP 过滤器拒绝,那么你可以修改你的 HTTP 策略来允许访问,比如取消阻止高位字符、验证正则化或者你自定义的 HTTP 策略等 。HTTP 策略是基于访问规则配置的,你对 HTTP 策略的修改将会影响到通过此访问规则访问的所有 Web协议通信,因此在取消之前,你应该评估一下这样做以后的安全性,如果通过相同访问规则访问的其他服务器需要此 HTTP 策略,你最好在原有规则前面单独创建一个访问规则,允许客户访问原来不能访问的那个服务器,然后在此规则上修改 HTTP 策略以实现客户的访问 。
2、如果不是被 HTTP 过滤器拒绝访问,那么我们必须要确定是否是因为 ISA Server 的 HTTP 应用层过滤问题 。这个可以通过完全停止 ISA Server 服务后再访问外部网站进行测试,但是我不建议大家随意停止 ISA Server 的服务,而是建议大家直接采用我在后文中提供的解决方案来进行测试 。
在这篇文章中,我将重点来探讨一下第2个问题 。ISA Server 基于 Web 代理筛选器提供了 HTTP 应用层过滤功能 。其实 Web 代理筛选器是一个负责“装载”其他 Web 筛选器的应用程序筛选器,当 ISA Server 需要对 Web 协议进行应用层过滤时,Microsoft Firewall 服务会在用户模式下调用 Web 代理筛选器,然后 Web 代理筛选器会调用所有已启用的 Web 筛选器通过不同方面来对 Web 协议进行应用层过滤 。内置的 HTTP 协议绑定了 Web 代理筛选器,因此所有的 HTTP 协议均会接受 Web 代理筛选器的应用层过滤 。
ISA Server 完全按照 RFC 标准来进行开发,并且也完全按照 RFC 标准来进行应用层过滤 。但是在实际环境中,由于部分 Web 应用程序并未完全按照 RFC 标准进行开发或通信,因此导致了通过 ISA Server 无法访问这些 Web 站点 。例如比较常见的 Web 服务器使用了非法的 HTTP 头组合,对于普通的 IE 浏览器而言,它会忽略这种错误,但是对于 ISA Server 这种企业级的防火墙,安全是最重要的,它不能容忍有一丝的疏忽,因此它会阻止这种非法的数据包 。
服务与安全永远是相对的,ISA Server 这种安全行为也给用户带来了不便 。你可以配置 ISA Server 取消这种安全行为,但是这样也就降低了安全性,因此在做这种配置之前,你需要正确的进行评估 。
如果的确是因为 ISA Server 的应用层过滤导致无法访问某个 Web 站点,而且很不幸的是,用户必须要访问这个站点,那么我们也只有通过降低 ISA Server 的安全性来允许用户的访问 。对于这个问题,具有三种解决方案,我将按照安全性影响的大小来依次进行介绍 。
方案一 自定义协议
【HTTP 应用层过滤的兼容性问题及解决方案】由于内置的 HTTP 协议绑定了 Web 代理筛选器,因此我们可以自定义一个 TCP 80 出站的协议,然后允许用户使用此协议访问那个 Web 站点,这条规则需要放在其他允许用户访问此 Web 站点的规则之前 。
这种方案只是降低了访问此 Web 站点的安全性,对于其他站点的访问仍然保持 HTTP 应用层过滤,因此安全影响是最小的 。另外需要注意的是,如果是针对 ISA Server 本身到 Web 站点的访问,这个方案可能会出现问题,因此 ISA Server 可能会通过系统策略来访问,而不是通过你自定义的规则来访问 。这种时候,你需要禁用允许本地主机访问外部 HTTP 协议的系统策略 。
推荐阅读
- Firefox浏览器怎么安装插件获取Http请求详情?
- 以下哪种红树植物过滤盐分的效率高达99%?神奇海洋11月9日答案
- https://和http://区别
- 灵格斯词霸新增划词过滤器,带真人语音
- 腾讯TT全新TT4.0黑名单功能,恶意网址的过滤专家教程
- Google Chrome新版将移除“http://” 引争议
- chrome技巧汇总
- xx
- 妙用你的hosts文件过滤插件和广告
- 洗衣网袋有用吗 洗衣过滤网袋有用么?