扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
来源: 2006年12月10日
1.摘要
与ISA Server 2000简单的信任与不信任网络模型相比,ISA Server 2004使用了更为成熟灵活的网络模型。因此,ISA Server 2004定义网络和防火墙策略的方式完全不同,其处理访问规则的逻辑亦是如此。这可能会导致你的防火墙策略的配置结果与你的期望不同,我们将在这篇文章中探讨ISA Server 2004如何处理不同的规则列表以及某条特定规则是如何被选取以满足特定出站请求的。
2.总论
为了从功能角度描述在被定义的网络间何种通讯是被允许的,ISA Server 2004使用了一组三个规则列表的集合:
网络规则:此列表定义并描述了网络的拓扑结构。这些规则用于决定两个网络实体间是否 具有路由关系、以及何种路由关系被定义(路由还是NAT)。当网络实体间没有配置任何关系,那么ISA Server将丢弃两个网络间的所有通讯数据。正确 定义网络对象和它们之间的路由关系对于ISA 2004的显得尤为重要。
系统策略:此列表包含了30条ISA Server 2004预定义的、应用于本地主机的访问策略。因此,它们控制着ISA Server本身“从/到”的通讯,并启用需要的诸如验证、网络诊断、日志、远程管理等功能。记住:这些规则 只是“允许”规则,你只可以启用或者禁用这些规则,或者对其中的一些规则属性进行少量的修改。
防火墙策略:此列表包含了你 自定义的所有规则。这是一个经过排序的简单列表,包含了两种可能的规则类型:访问规则和发布规则。在此列表的最后包含了一条预定义的默认规则:Deny 4 ALL(Deny ALL users use ALL protocols from ALL networks to ALL networks),拒绝 所有用户发起的从所有网络到所有网络的所有协议的访问。这个默认规则不能修改或者删除,所以,对于任何允许或者阻止的通讯都由ISA Server 2004的一条明确的规则来完成。
注意:系统策略和防火墙策略的组合定义并描述了 完整的防火墙策略系统。
对于所有的访问请求,ISA Server 2004如何应用上述三条规则列表 可以用下图来表述:
注意:连接点1,2,3将在第六部分的另一个流程图中使用。
首先,ISA Server检查网络规则以确定两个网络 实体间是否定义了路由关系,如果源网络和目的网络之间定义了路由关系,ISA Server将进一步处理 客户的出站请求,否则拒绝。
然后,ISA Server按顺序检查系统策略规则和防火墙策略规则。如果某个系统或者防火墙策略规则允许了此请求,ISA Server将进一步处理出站请求,否则 拒绝。
最后,ISA Serve再次检查网络规则 以确定数据包的路由方式是路由还是NAT,如果是Web Proxy客户端请求对象,ISA Server也检查Web链路规则 ,以确定请求如何被处理。
很明显,网络规则处理的逻辑是 简单明了的:要么定义了两者之间的路由关系要么没有。但是对于ISA Server如何确定 有一个系统策略或者防火墙策略的规则允许或者禁止此通讯却并没有那么简单明了。到此为止,我们所知道的只有系统策略优先于防火墙策略进行处理以及ISA Server对系统 策略和防火墙策略的处理方式是一致的。
3.防火墙策略
ISA Server的主要工作是控制源网络和目标网络之间的通讯。以下是一个重要的概念和结论:源 主机和目标主机必须位于不同的网络。换言之,你不能通过ISA Server去回环访问与你主机在同一个网段的资源(虽然这样可以实现,但是会给ISA Server带来很大的性能负担)。另一个重要概念是ISA Server是严格 按照顺序评估防火墙策略。如果一条访问规则匹配某个请求的参数,此规则将被应用,然后ISA Server将不再将此请求与其它 任何规则进行匹配。
同样,需要记住的是系统策略优先于防火墙策略进行处理,并且ISA Server对系统 策略和防火墙策略的处理方式是一致的。换言之,一个完整的防火墙策略系统可以被认为一个单一排序的序号从1到30的系统策略规则加上从 序号31开始的防火墙策略规则以及 最后的默认规则LAST的列表。因此,如果一条系统策略规则和一条防火墙策略规则同时 匹配某个客户发起的请求,那么总是会应用系统策略规则。
需要注意的是,访问规则是按照出站方向的主要连接 端口来进行处理。因此,在创建访问规则时,不能使用入站方向的协议。
在进一步讨论规则评估前,有必要先总结一下几种ISA客户端类型的不同点。下表 总结了三种ISA客户端 是如何发送请求以及是否支持身份认证:
备注:对于所有的非HTTP/HTTPS请求来说是正确的 ,对于HTTP/HTTPS请求,ISA Server总是检查HTTP头中的主机字段,而不是请求 的目标主机地址(3层地址)。 对于Web代理客户 ,HTTP主机头的值依赖于用户的输入。
ISA 客户发送请求到ISA Server的方式将决定ISA是否必须执行正向/反向DNS解析以 将客户的请求匹配到某个访问规则,因此,拥有一个稳定的DNS服务显得极为重要。
4.匹配标准
现在的问题在于 客户的访问请求怎样才能够匹配访问规则中定义的策略元素?如果请求匹配访问规则的策略元素,ISA Server则运用此规则 处理客户的访问请求。检查规则元素的顺序如下:
协议:访问规则中为出站方向定义的主要连接 端口范围,可以为一个或者多个协议;
从(源网络): 发起连接的一个或者更多的网络对象,可以包含网络、网络集、计算机、计算机集、地址范围或者子网;
计划时间:定义的任何计划时间;
到(目的网络): 连接到的一个或者更多的目的网络,可以包含网络、网络集、计算机、计算机集、地址范围、子网、域名集或者URL集;
用户:一个或者更多的用户对象,可以包含所有用户、所有经过认证的用户、系统和网络服务和其他自定义的用户集;
内容类型: 定义的任何内容类型;
上面的有些元素项可以很好的理解,例如协议、从(源网络)和计划时间,对于它们很容易区分匹配还是不匹配。但是,对于 到(目的网络)、用户集和内容类型这三个条件,则不是那么容易理解的。例如,在一条访问规则要求认证而客户端发起的请求不能通过认证时,ISA会对这个请求采取什么方法呢?在一条允许指定的URL或者内容类型并且包含HTTP或非HTTP协议的访问规则中,ISA将会怎么处理呢?让我们再对它们的细节做进一步的描述。
4.1. 到(目的网络)
如果你检查策略元素,你可以发现对于到(目的网络),会有三个候选值:IP地址、完全限定域名(FQDN)或者URL地址。让我们先分析使用IP地址或者FQDN时的情况,再分析使用URL时的情况。
域名集和计算机集
为了进行分析,我们将限制只能对目的地址www.cevi.be和www.pouseele.be进行访问,并且做好了以下DNS解析:
在ISA中已经做好了以下的防火墙策略:
注意: 域名集是www.cevi.be和www.pouseele.be;IP地址是193.75.143.142和194.150.224.42。我们使用CMD下的Ftp命令(非封装的FTP)和IE浏览器来 分别进行FTP和HTTP访问。
不管内部网络中的客户配置为防火墙客户还是SNat客户,对于它们 发起的FTP访问,结果如下:
到达目的集www.cevi.be的FTP访问将被规则1允许
当ISA按照顺序进行规则评估时,ISA发现内部客户的请求匹配规则1的协议、从(源网络)和计划时间这三个元素。为了检查是否匹配到(目的网络),ISA会对客户 请求连接到的IP地址193.75.143.142进行反向DNS解析。这个IP地址反向解析为域名www.cevi.be,匹配这条规则的到(目的网络),然后ISA Server检查用户集和内容类型,这也都是匹配的。所以客户的请求完全匹配第1条访问规则,然后ISA根据规则1定义的动作,允许客户的连接。
到达目的集www.pouseele.be的FTP访问将被规则2允许
当ISA按照顺序进行规则评估时,ISA发现内部客户的请求匹配规则1的协议、从(源网络)和计划时间这三个元素。为了检查是否匹配到(目的网络),ISA会对客户端连接到的IP地址194.150.224.42执行反向DNS解析。这个IP地址反向解析为域名comsec17.win2k.combell.com,和规则1中的到(目的网络)中的FQDN不匹配,所以ISA停止对规则1的匹配,然后开始对下一条规则的 评估。
现在ISA对规则2进行匹配检查,首先,ISA发现客户的请求匹配规则2的协议、从(源网络)和计划时间这三个元素,同时,也匹配剩下的到(目的网络)、用户集和内容类型,所以,ISA执行规则2定义的动作,允许客户的连接。
HTTP访问和上面的FTP访问是有很大区别的,ISA会试图匹配HTTP主机头而不仅仅是第三层的目的地址。HTTP主机头是用户在浏览器的地址栏输入的值,无论内部客户是作为Web代理客户、防火墙客户还是SNat客户,对于它们的HTTP访问,结果如下:
对于http://www.cevi.be和http://www.pouseele.be的访问,会通过规则1允许;因为HTTP主机头和规则1中的FQDN完全匹配。
对于http://193.75.143.142的访问将被规则1允许;同样通过反向DNS解析后,目的地址匹配规则1中的到(目的网络)。
对于http://194.150.224.42的访问将被规则2允许;原理同FTP的访问。
通过上面的分析,我们可以看出,DNS服务对于ISA Server是至关重要的,所以,如果你需要使用FQDN来建立防火墙策略,请确保DNS能够正确的进行 前向和反向的解析。