当前位置: 首页 > news >正文

实例详解ISA防火墙策略元素:ISA2006系列之五


详解防火墙策略元素

 
我们在前面的工作中已经实现了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
 
创建好的计算机集如下图所示。
 
创建完网络对象后,我们来修改访问规则。在规则的属性中切换至“到”标签,如下图所示,在“例外“处点击添加,将域名集百度和计算机集百度都添加进来,这样百度就不再被访问规则所允许了。
 
修改后的规则如下图所示,这就是我们想要的访问规则,只有人事部和财务部的员工在午休时间才可以访问除百度之外的网站,而且不允许访问音频及视频内容。
 
经过这个访问规则的实现,我们对策略元素已经有了一些基本的认识,应该能写出一些常用的访问规则了。但访问规则的具体执行过程是什么样的?我们写出的规则是否真正符合自己的设计要求呢?这些问题我们在下篇博文中加以介绍。



















本文转自yuelei51CTO博客,原文链接: http://blog.51cto.com/yuelei/84574,如需转载请自行联系原作者

相关文章:

  • 调查称没互联网35.8%的人将手足无措,您呢?
  • 实现.NET Core配置Provider之EF
  • hbase shell 启动报错
  • Ubuntu 16下安装zabbix agent
  • python2中MySQLdb加入超时及其重试功能
  • Redis实战(1)入门和适用场合
  • dell 1088 安装 windows xp 蓝屏的解决方法
  • Apache服务器之------https功能
  • mongodb3.4.4安装副本集,wt引擎配置优化(二)
  • PLSql使用
  • Tomcat
  • 44、BGP配置实验之Weight选路
  • 3星|《未来公司》:Uber简史
  • 洛谷——P1348 Couple number
  • Java MongoDB基本操作
  • [deviceone开发]-do_Webview的基本示例
  • __proto__ 和 prototype的关系
  • CentOS7简单部署NFS
  • E-HPC支持多队列管理和自动伸缩
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Phpstorm怎样批量删除空行?
  • Python进阶细节
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • windows下使用nginx调试简介
  • 成为一名优秀的Developer的书单
  • 分布式熔断降级平台aegis
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 前嗅ForeSpider中数据浏览界面介绍
  • 移动端唤起键盘时取消position:fixed定位
  • const的用法,特别是用在函数前面与后面的区别
  • ​【已解决】npm install​卡主不动的情况
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #微信小程序:微信小程序常见的配置传值
  • (09)Hive——CTE 公共表达式
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • .aanva
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET MVC 验证码
  • .net 程序发生了一个不可捕获的异常
  • .NET 发展历程
  • .NET 使用配置文件
  • .net中应用SQL缓存(实例使用)
  • [Android]创建TabBar
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [BeginCTF]真龙之力
  • [C#] 如何调用Python脚本程序
  • [C++从入门到精通] 14.虚函数、纯虚函数和虚析构(virtual)
  • [CISCN2019 华东北赛区]Web2
  • [fsevents@^2.1.2] optional install error: Package require os(darwin) not compatible with your platfo
  • [IMX6DL] CPU频率调节模式以及降频方法
  • [Java]快速入门二叉树,手撕相关面试题