正确理解防火墙策略的执行过程<?XML:NAMESPACE PREFIX = O />
很多初次接触ISA的管理员,经常会发现自己的管理意图没有得到贯彻。自己明明禁止用户使用QQ聊天,可你看这个老兄正在和多个MM聊得热火朝天;早就禁止在上班时间访问游戏网站,可这个家伙不正在和 别人下棋吗?最郁闷的是就连简单的禁止访问百度搜索引擎都做不到,照样有很多人用百度搜来搜去……不少深感智力受到侮辱的网管愤怒地发出了“ISA就是不灵”的吼声。ISA真是不灵吗?不是的,其实发生这些的主要原因是ISA管理员并没有真正理解防火墙策略的执行过程。今天我们就来好好地分析 一下ISA防火墙策略的执行过程,避免在以后 的工作中犯类似的错误。
首先声明,我们今天讨论的是ISA2006标准版的策略执行过程,企业版比标准版要复杂一些,以后我们再讨论。我们可以把ISA当作是信息高速公路上的一个检查站,当有数据包要通过ISA时,ISA就会利用策略对数据包进行检查,检查通过就放行,否则就拒绝。ISA检查数据包的顺序是:
一 检查是否符合网络规则
二 检查是否符合系统策略
三 检查是否符合防火墙策略
网络规则
一个数据包通过ISA时,ISA首先要检查的就是网络规则。网络规则是ISA中非常重要而又很容易被忽视的一个因素。ISA检查数据包时首先要考虑的就是这个数据包是从哪个网络到哪个网络,这 两个网络间的网络规则是什么。也就是说ISA是基于网络进行控制,而不是很多朋友认为的基于主机进行控制。网络规则只有两种,路由或NAT。如果A网络到B网络的网络规则为路由,那么数据包从A网络到B网络或者从B网络到A网络都有可能;如果A网络到B网络的网络规则为NAT,那么数据包只有可能从A到B,而不可能从B到A。我们可以把两个网络比喻为两个城市,网络规则就象是城市之间的高速公路,如果两个网络 之间的网络规则为路由,那就象是两个城市之间有一条双向高速公路;如果网络规则为NAT,则就相当于两个城市之间有一条单行高速公路。
明白了网络规则的作用,有些问题就很好解释了。有些ISA管理员问过这样一个问题:“我在ISA的防火墙策略中已经允许外网访问内网,为什么外网机器还是访问不进 来?”现在来看这个问题就很简单了,因为ISA认为内网和外网之间的网络规则是NAT,如下图所示,NAT规则决定了只有可能从内网到外网而不可能从外网到内网,因此当外网访问内网时,ISA只需检查网络规则就。因此如果你确实需要外网访问内网,你就应该先把 内网和外网之间的网络规则改为路由。
<?XML:NAMESPACE PREFIX = V />
还有一个网络规则的例子,有一个管理员用ISA把DMZ区的一个FTP服务器发布到了外网和内网,结果外网用户访问正常,内网用户却无法访问。为什么,因为DMZ和外网是NAT关系,而DMZ和内网是路由关系。由于从DMZ到外网是NAT关系,外网用户无法通过访问规则直接访问,所以通过发布规则访问是合理的;而内网和 DMZ是路由关系,因此内网用户就应该通 过访问规则而不是发布规则来访问。
综上所述,网络规则是ISA进行访问控制时所要考虑的第一要务,只有从源网络到目标网络被网络规则许可了,ISA才会继续检查系统策略和防火墙策略;如果网络规则不许可,ISA会直接拒绝访问,根本不会再向下检查系统策略和防火墙策略。大家写访 问规则时一定要注意这点。
系统策略
如果一个数据包通过了网络规则的检查,ISA接下来就要看看它是否符合系统策略了。ISA2006标准版中预设了30条系统策略,系统策略应用于ISA本地主机,控制着从其他网络到本地主机或者从本地主机到其他网络的通 讯,系统策略中启用了一些诸如远程管理,日志,网络诊断等功能。一般情况下,我们对系统策略只能允许或禁止,或对少数策略的某些属性作一些修改。
以前曾经有朋友问我,为什么ISA安装后防火墙策略中明明禁止了所有通讯,但ISA主机还是可以ping到其他计算机,是否ISA本机有某些特权呢?不是的,ISA能对其他网络进行有限访问完全是由系统策略决定的,只是由于系统策略没有显示出来,因此 安装完ISA后我们并没有注意到它。
我们来看看系统策略到底有哪些内容,打开ISA服务器管理,右键点击防火墙策略,如下图所示,在查看中选择“显示系 统策略规则”。

 
如下图所示,我们看到了30条系统策略的内容。

编辑系统策略也可以用系统策略编辑器,系统策略编辑器为 管理员提供了更为友好的管理界面,如下图所示,右键点击“防火墙策略”,选择“编辑系统策略”。

如下图所示,我们可以在系统策略编辑器中编辑系统策略。

系统策略的优先级比防火墙策略高,因此如果任务可以用系统策略完成,就不要用防火墙策 略。例如有时候我们为了测试需要,允许从内网ping ISA服务器,这种需求完全可以用系统策略完成,如下图所示,我们只要把内部网络添加到允许ping本地主机的集合中,就可以完成任务了。

防火墙策略
防火墙策略用来控制源网络和目标网络的通讯,是ISA管理员控制网络访问的常规武器,也是本文讨论的重点所在。防火墙策略 的优先级就是按照规则排列的顺序,而不是按照拒绝优先原则。由于系统策略优先级也是按照序号排列,和防火墙策略优先级完全一样,我们甚至可以把防火墙策略 看成是从31开始编号的系统策略。
数据包通过网络规则的检查后,就要面临系统策略和防火墙策略的考验了。ISA将从第一条策略开始检查,检查数据包的访问请求是否匹配策略,如果匹 配,就按照策略的规定执行,结果无非是禁止或允许。如果不匹配,ISA就将按顺序检查下一条策略,从第一条系统策略一直检查到最后一条防火墙策略。那有人要问 了,如果把所有策略都检查完了还不匹配怎么办?呵呵,这是不可能的,ISA自带的最后一条防火墙策略内容是禁止所有网络间的一切通讯,如下图所示,这条防火墙策略可以与所有的网络访问相匹配,因此ISA实际上使用了隐式拒绝,也就是说如果某个访问请求如果没有被策略显式允许,那肯定会被最后一条防火墙策略所拒绝。

看了上面的介绍,我们要注意两点,一是策略顺序,二是策略匹配。
A 策略顺序
防火墙策略的排列顺序决定了优先级,排在前面的策略优先 执行,根据这个原则,我们要好好设计一下防火墙策略的顺序。例如,我们写了两条防火墙策略,一条是允许内网用户任意访问,另外一条是拒绝内网用户访问联众 游戏网站。如果排列顺序如下图所示,允许策略排在拒绝策略之前,那就是个错误的决定。拒绝访问联众的策略永远不会被执行,因为当用户访问联众时,访问请求 匹配第一条防火墙策略,用户就被防火墙放行了,第二条策略根本没有执行的机会。正确的做法是将拒绝策略放到允许策略之前!

B 策略匹配
策略匹配是ISA管理员关注的核心问题。前面我们一直在提如果网络访问和防火墙策略匹配,则按防火墙策略 执行允许或禁止的操作。那么,问题是,怎么才算和防火墙策略匹配呢?
只有把这个问题搞清楚了,才能写出符合你设计初衷的策 略。
当ISA检测到访问请求时,ISA会检查访问请求能否匹配防火墙策略中的策略元素,策略元素的检查顺序为 协议,从(源网络),计划时间,到(目标网络),用户,内容类型。如果和这些元素都能匹 配,ISA就认为访问请求匹配防火墙策略。
从被检查的策略元素来看, 到(目标网络)元素最容易出问题。
目标网络元素的问题容易出在哪儿呢?容易出现在DNS上,确切地说是出现在DNS的反向解析上!这个结论估计是很多管理 员始料未及的,还是举个例子加以说明吧,假设我们要禁止内网访问百度,我见过很多管理员的处理方法都是这样的,首先创建一个域名集,将[url]www.baidu.com[/url]包含进去,如下图所示。

然后就写出一条拒绝内网访问百度的访问规则,如下图所示

我们在一台内网计算机Denver上测试一下,Denver使用Web代理访问百度,如下图所示,错误信息表明ISA拒绝了Denver访问百度的请求。这说明访问请求和拒绝百度访问的防火墙策略匹配成功,哈哈,看样子大功 告成了?且慢,再向下看。

我们在Denver上换用IP访问,在IE中输入202.108.22.5,如下图所示,熟悉的百度界面已经出来了,哈哈,貌似严谨的访问规则竟如此不堪一击!这 说明这次的访问请求没有和拒绝百度访问的防火墙策略匹配成功,而是和第二条允许内网用户任意访问的防火墙策略匹配成功了。

看到这儿,有些朋友可能得出结论了,哦,原来用域名禁止访问某个网站是不成立的。错!如 果202.108.22.5的反向解析结果为[url]www.baidu.com[/url],那么拒绝百度的防火墙 策略就是成立的!
还是来认真分析一下原理吧,当客户机用HTTP协议访问目标网络时,ISA判断目标网络的根据是HTTP主机头,主机头的内容显然源自我 们在浏览器中的输入。当我们在浏览器中输入[url]www.baidu.com[/url]时,ISA开始检查访问请求能否匹配第一条防 火墙策略,也就是拒绝内网访问百度的那条策略。ISA先检查协议,从(源网络),计划时间三个元素,这三个元素都能和访问请求匹配,然后ISA检查到(目标网络)元素,ISA根据主机头内容判断访问请求中的目标网络是[url]www.baidu.com[/url],而防火墙策略中的目标网络元素也包含了[url]www.baidu.com[/url],因此ISA判断访问请求和到(目标网络)元素 也能匹配上。然后ISA检查用户和内容类型两个元素也可以匹配,所以ISA判断访问请求和拒绝访问百度的防火墙策略完全匹配,于是按照防火墙策略的要求拒绝了这次访问请求。
当我们在浏览器中输入202.108.22.5时,ISA是这么检查的。首先还是判断 协议,从(源网络),计划时间三个元素匹配策略,然后检查到(目标 网络)元素,ISA判断访问请求的目标是202.108.22.5,而防火墙策略的目标网络是包含[url]www.baidu.com[/url]的域名集,这时ISA会对202.108.22.5进行DNS反向解析,如果解析的结果等于[url]www.baidu.com[/url]。,ISA就认为访问请求的目标网络和策略的 目标网络也是匹配的。如果反向解析的结果不等于[url]www.baidu.com[/url](解析的结果确实不是百度的域名),ISA就认为访问请求的目标网络和防火墙策略的目标网络不匹配。这样ISA就会停止匹配第一条拒绝访问百度的 防火墙策略,转而匹配第二条允许内网任意访问的防火墙策略,匹配结果是完全成功,因此ISA执行第二条防火墙策略规定的动作, 允许了对202.108.22.5的访问。
如果客户机不是用HTTP协议访问目标网络,那么匹配的过程 又稍微有些不同。例如客户机用FTP协议访问[url]www.baidu.com[/url],那么客户机在发送访问请求时不会把[url]www.baidu.com[/url]作为目标网络,而是先对[url]www.baidu.com[/url]进行域名解析,然后把解析出来的IP作为目标网络发送给ISA。ISA对访问请求进行匹配时,如果被匹配的防火墙策略用域名描述目标网络,ISA就会对访问请求发来的IP进行反向解析,看解析出的域名能否和防火墙策略的目标网络相匹配。根据这个结论,我们用IE访问[url]www.baidu.com[/url]会被拒绝,因为刚才分析过了,此时客户机将域名[url]www.baidu.com[/url]作为访问请求中的目标网 络发送给ISA,ISA认为访问请求和拒绝访问百度的防火墙策略完全匹配,因此客户机被拒绝 访问。但如果客户机在命令行下输入telnet [url]www.baidu.com[/url] 80,如下图所示,直接连接百度的80端口,ISA会如何处理呢?

如下图所示,ISA对访问请求放行了,显然这次的访问请求没有和拒绝访问百度的策略匹配上,原因是什么呢?

客户机telnet百度80端口时,我在ISA上启用了实时日志,日志记录的结果如下图所示。从日志上我们很清楚地看到,客户机先对[url]www.baidu.com[/url]进行了DNS解析,解析结果为202.108.22.5,然后客户机把202.108.22.5作为访问请求的目标网络发送给ISA,ISA对202.108.22.5进行反向解析,解析出的域名并不是[url]www.baidu.com[/url],因此ISA认为访问请求和第一条防火墙策略并不匹配。然后ISA将访问请求和第二条策略进行匹配,匹配成功后正从我们在日志中看到的 那样,访问请求被第二条允许内网用户任意访问的策略放行了。

我们可以总结一下,客户机使用HTTP协议访问时,目标网络取决于主机 头,而访问者输入的主机头既可能是域名也有可能是IP(一般以域名居多);。客户机使用其他协议访问时,目标网络一定是以IP进行描述!
现在我们考虑一下应该如果用ISA禁止用户访问某个目标网络,那这个 目标网络应该如何描述,显然只用域名描述是不严谨的,除非你确信DNS反向解析的结果对你有利(大部分情 况下你会失望的)。如果保险一些,我们应该用域名+IP来描述目标网络。以刚才的限制百度为例,用nslookkup查出[url]www.baidu.com[/url]的域名解析结果为202.108.22.43和202.108.22.5。创建一个计算机集将这两个地址包含进去,如下图所示。

然后就可以在拒绝访问百度的策略中加入刚创建的计算机 集,如下图所示,这样做效果如何大家可以自己试试看,肯定比只用域名要好得多。
本文出自 “岳雷的微软网络课堂” 博客,请务必保留此出处http://yuelei.blog.51cto.com/202879/84995

本文出自 51CTO.COM技术博客

转载于:https://blog.51cto.com/baitmwxf/290518

深入剖析防火墙策略的执行过程相关推荐

  1. 分享聚宽量化交易执行选股策略的执行过程

    分享聚宽量化交易执行选股策略的执行过程: 首先就是需要用不同的函数处理不同的数据,比如上市数据,要用run_query()函数处理,财务与估值数据要用get_fundamentals()函数处理.以及 ...

  2. 分享JoinQuant 量化策略代码执行过程

    JoinQuant 量化接口:https://gitee.com/l2gogogo 如果是第一次开发joinquant策略,所以先梳理好策略开发流程,再研究策略的编写. 以下是代码示例: import ...

  3. 深入剖析ISA防火墙策略执行过程

    深入剖析ISA防火墙策略执行过程 很多初次接触ISA的管理员,经常会发现自己的管理意图没有得到贯彻.自己明明禁止用户使用QQ聊天,可你看这个老兄正在和多个MM聊得热火朝天;早就禁止在上班时间访问游戏网 ...

  4. MyBatis核心源码剖析(SqlSession XML解析 Mapper executor SQL执行过程 自定义类型处理器 缓存 日志)

    MyBatis核心源码剖析 MyBatis核心源码剖析 1 MyBatis源码概述 1.1 为什么要看MyBatis框架的源码 1.2 如何深入学习MyBatis源码 1.3 源码分析的5大原则 2 ...

  5. 对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的边。说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度

    对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的 边.说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度

  6. MFC程序执行过程剖析

    一 MFC程序执行过程剖析 1)我们知道在WIN32API程序当中,程序的入口为WinMain函数,在这个函数当中我们完成注册窗口类,创建窗口,进入消息循环,最后由操作系统根据发送到程序窗口的消息调用 ...

  7. jav中什么是组织java程序_Java程序的执行过程中用到一套JDK工具,其中javaprof.exe是指()。A.Java调试器B.Java剖析工具C.Jav...

    Java程序的执行过程中用到一套JDK工具,其中javaprof.exe是指().A.Java调试器B.Java剖析工具C.Jav 更多相关问题 "投资收益"账户属于(). A.损 ...

  8. 教程篇(7.0) 03. FortiGate安全 防火墙策略 ❀ Fortinet 网络安全专家 NSE 4

     在本课中你将了解防火墙策略,以及如何应用它们来允许和拒绝通过FortiGate的流量.FortiGate的核心是一个防火墙,所以它对你的流量所做的几乎所有事情都与你的防火墙策略相关联.  本节课你将 ...

  9. ISA防火墙策略配置/服务器发布

    本文主要讲解了,ISA防火墙策略配置,发布内部Web/mail服务器,发布Exchange SSL OWA网站. 防火墙策略 策略元素 策略元素:每条防火墙策略都是由一些"零件"组 ...

最新文章

  1. julia有 pytorch包吗_有了Julia语言,深度学习框架从此不需要计算图
  2. C语言循环选择还有,C语言第五讲,语句 顺序循环选择.(示例代码)
  3. win8无线网服务器,Win8连接wifi受限
  4. vue组件化学习第三天
  5. mysql stragg_如何在MySQL中將子查詢行的結果顯示為一列?
  6. 什么?在 VSCode 里也能用 Postman了?
  7. 转 list三种遍历效率
  8. centos7 日志文件
  9. 佳能9100cdn故障_佳能 打印机故障代码大全
  10. [mybatis]Example的用法
  11. Windows桌面美化——记录我的设置
  12. C语言自学之路六(循环语句详解)
  13. 杭州/北京内推 | 蚂蚁集团数字身份及安全生态团队招聘学术实习生
  14. gen-cpp/.deps/ChildService.Plo: No such file or directory
  15. 力扣 532. 数组中的 k-diff 数对
  16. 优矩互动通过聆讯,靠抖音、京东养活的流量生意“二道贩子”?
  17. Python学习之学校教学(选择结构与循环结构)抓狐狸问题
  18. 作业盒子端AndrOid,作业盒子小学老师端
  19. 青龙面板的使用方法最新版
  20. Ubuntu 上使用Dreamweaver 8

热门文章

  1. Exchange Server 2007 移动邮件
  2. javaee 架构师之路
  3. [Hadoop][笔记]4个节点搭建Hadoop2.x HA测试集群
  4. 如何优化linux系统
  5. spring mvc 接收页面表单List
  6. 点到线段的距离计算方法
  7. How Tomcat Works(十一)
  8. jQuery 学习笔记一(认识jQuery jQuery选择器 jQuery中的DOM操作)
  9. 张雨生林志炫高音对比
  10. HTML:Browser 对象