我们在前面的工作中已经实现了ISA2006的代理服务器功能,接下来我们要实现ISA的访问控制功能。很多公司都有控制员工访问外网的需求,例如有的公司不允许员工访问游戏网站,有的公司不允许员工使用QQ等即时通讯工具,有的公司禁止员工下载视频文件,还有的公司只允许访问自家的门户网站…..这些需求都可以通过ISA2006防火墙策略中的访问规则来加以实现。既然如此,那我们赶紧来写上几条访问规则测试一下吧。别急,访问规则是由策略元素构成的,我们要想写出访问规则,首先要掌握策略元素,还是让我们从学习策略元素开始吧。
准备一下实验环境,拓扑如下图所示,DenverContoso.com的域控制器,Perth是域内的工作站,BeijingISA2006服务器,Beijing也加入了域。

 

我们的目标是先写出一条访问规则:允许在午休时间(12:00-13:00),人事部和财务部的员工可以访问互联网上除百度之外的网站,而且访问网站时不能访问视频和音频内容,我们通过这条规则的实现过程来学习策略元素。

如下图所示,打开ISA服务器管理,选中防火墙策略,此时右侧面板的工具箱中显示的就是策略元素,大家看到的有协议,用户,内容类型,计划,网络对象等,下面我们一一展开分析。

 

协议

协议元素限制了用户访问外网时所使用的网络协议。例如我们此次实验的目标是只允许部分用户访问一些特定网站,那我们就可以在访问规则的协议元素中限定用户只可以使用HTTPHTTPS,这样就保证了用户只能访问网站。当前ISA中有一个很宽泛的访问规则,如下图所示,允许内网和本地主机可以使用任何协议,在任何时间,以任何用户的身份,访问任意网络的任意内容。这条规则是我们在前面测试代理服务器的时候创建的,现在我们对它动动手术,只允许用户用HTTPHTTPS访问外网。
下图是当前的访问规则,我们可以看到ISA允许使用任何协议对外访问,右键点击规则,查看规则属性。

 

在规则属性中切换到“协议”标签,如下图所示,将规则的应用范围从原先的“所有出站通讯”改为“所选的协议“,只允许使用特定的协议。

 

点击“添加”按钮,在协议中选择HTTPHTTPS添加进来,如下图所示,添加完协议后点击确定。

 

如下图所示,访问规则已经被修改为ISA只允许HTTPHTTPS协议通过。

 

我们使用协议元素可以在访问规则中轻松实现对协议的控制,但如果我们要控制的协议没有在ISA的协议元素中被定义那该怎么办呢?我们可以自定义协议元素,例如我们希望禁止用户使用QQ的通讯协议,我们就可以在防火墙策略的工具箱中选择“新建协议”,如下图所示。

 

出现新建协议向导,我们为新建的协议命名为QQ,下一步。

 

接下来我们定义协议参数,点击“新建”。

 

我们定义QQ协议使用UDP,方向为发送接受,端口为8000

 

QQ不需要使用辅助连接,但有些协议例如FTP需要使用辅助连接。

 

结束新建协议向导。

 

这样我们就创建了一个自定义协议QQ,按照这种办法,我们可以将所需的协议元素都创建出来,然后就可以在访问规则中灵活地加以控制了。

 

用户

用户元素可以控制有哪些人能访问外网,尤其在域环境下,用户元素更是可以大显身手。依靠用户元素控制网络访问远比用IP控制来得更方便灵活。记得我刚工作时曾经在路由器上用IP控制用户上网,没过多久,就被很多人发现了秘密,一时间大家纷纷抢占那几个能上网的IPIP冲突此起彼伏。虽然可以用ARP静态绑定来解决,但处理起来还是感觉麻烦。因此奉劝诸位,部署网络架构时如果有可能还是应该上Active Directory,无论如何管理起来都感觉方便得多。
在本例中我们希望只允许人事部和财务部的员工在午休时间访问互联网,那应该怎么定义人事部和财务部的用户呢?这时用户元素就派上用场了,用户元素可以和Active Directory中的用户管理接合起来,如下图所示,Active Directory中已经为所有部门用户都创建了用户账号和组账号。

 

ISA防火墙策略的工具箱中,展开“用户”,如下图所示,选择“新建”。

 

为新创建的用户元素命名为“午休时间允许上网用户”,点击下一步。

 

点击“添加”按钮,选择添加“Windows用户和组”,如下图所示。

 

在活动目录中查找对象,输入组名hrusersfinanceusers,这是人事部和财务部用户所隶属的组,点击确定。

 

如下图所示,新创建的用户元素中已经列出了人事部和财务部两个组,点击下一步完成创建。

 

创建了用户元素,我们就可以修改访问规则了。如下图所示,在访问规则中切换到用户标签,选择“所有用户”,点击“删除”,然后再点击“添加”按钮。

 

添加“午休时间允许上网用户”。

 

如下图所示,修改后的规则离我们的目标又进了一步。

注意:要实现用户身份验证,必须使用Web代理客户端或防火墙客户端,SNAT客户端不支持用户身份验证。

 

计划

计划元素可以用来表示时间范围,例如我们的目标规则中打算限定财务部和人事部的用户在午休时间有限上网,这午休时间该如何表示呢?通过计划元素就可以轻松完成。在策略工具箱中展开“计划”对象,如下图所示,选择“新建”。

 

为新建的计划元素取名为“午休时间”,如下图所示,我们将午休时间定义为周一到周五的12点至13点。

 

创建了计划元素后,我们又来修改访问规则了,如下图所示,我们将计划从原先的“总是”改为“午休时间”,我们离目标越来越近了。

 

内容类型

内容类型元素负责将访问互联网的数据划分为音频,视频,文本,HTML文档等类型,利用内容类型我们可以更精细地控制用户对网络内容的访问,唯一有些遗憾的就是ISA在划分内容类型时,仍然采用了不可靠的文件名检测方法,这有可能会让某些用户有机可乘。我们此次实验的目标之一是不允许访问音频和视频内容,这个目标依靠内容类型可以很容易实现。在策略工具箱中展开“内容类型”,如下图所示,我们看到共有十一种类型,选择视频类型,编辑一下看看。

 

视频类型的文件扩展名如下图所示,我们发现了一个很大的问题,网络上很常用的rmrmvb文件怎么没有被包含进去,微软搞什么搞?这么常用的视频文件居然都漏掉了?只好由我们来DIY了。

 

在可用类型中输入rmvb,如下图所示,点击添加,即可将rmvb补充到视频类型中。用同样方法可将被疏漏的视频和音频文件都补充进去。

 

修改完内容类型后,我们在访问规则的内容类型处进行修改。如下图所示,我们选择使用自选的内容类型,在选定的内容类型中排除了音频和视频。

OK,我们离目标只有一步之遥了!

 

网络对象

网络对象中包括了很多策略元素,例如计算机,计算机集,域名集,URL集等,我们在访问规则中定义源和目标时经常会用到网络对象。本例中我们限定用户不能访问百度,那就必须先通过网络对象对百度进行定义,然后才能在访问规则中加以利用。
要想禁止访问百度,我们需要定义域名集和计算机集两种元素,从域名和IP地址两种角度描述百度。我们先创建域名集,如下图所示,在防火墙策略工具箱中展开网络对象,选择新建域名集。

 

域名集的名称为百度,内容为[url]www.baidu..com[/url],如果希望限制更多的百度内容,可以考虑使用通配符,例如*.baidu.com

 

限制百度只用域名是不够的,我们还需使用IP地址(具体原因在下一篇介绍策略执行过程的博文中加以介绍)。我们首先要知道百度网站的IP是多少,不要用ping [url]www.baidu.com[/url]的方法,这种方法不够全面。我们使用nslookup,如下图所示,输入[url]www.baidu.com[/url],我们得到了百度的两个IP202.108.22.43202.108.22.5

 

接下来创建计算机集,如下图所示,在工具箱中选择新建计算机集。

 

为新建的计算机集取名为百度,选择添加计算机。

 

添加一个计算机对象,名称为webserver1IP202.108.22.43。用同样的方法再添加一个webserver2IP202.108.22.5

 

创建好的计算机集如下图所示。

 

创建完网络对象后,我们来修改访问规则。在规则的属性中切换至“到”标签,如下图所示,在“例外“处点击添加,将域名集百度和计算机集百度都添加进来,这样百度就不再被访问规则所允许了。

 

修改后的规则如下图所示,这就是我们想要的访问规则,只有人事部和财务部的员工在午休时间才可以访问除百度之外的网站,而且不允许访问音频及视频内容。

 

经过这个访问规则的实现,我们对策略元素已经有了一些基本的认识,应该能写出一些常用的访问规则了。但访问规则的具体执行过程是什么样的?我们写出的规则是否真正符合自己的设计要求呢?这些问题我们在下篇博文中加以介绍。