【IT168 技术】在上一篇中,我们介绍了ISA Server 2006的安装及客户端的使用方法,即ISA作为代理方面的应用,发现ISA标准版特别适合中小企业网络构建,三种客户端可以完全满足企业的需求。今天咱们来介绍一下ISA 作为最优秀的一款软件防火墙,如何为企业的网络安全助力。在此我们会介绍两大方面的内容:ISA的访问控制及服务器发布功能。
访问控制:
很多公司都有控制员工访问外网的需求,例如有的公司不允许员工访问游戏网站,有的公司不允许员工使用QQ等即时通讯工具,有的公司禁止员工下载视频文件,还有的公司只允许访问自家的门户网站等等,这些需求都可以通过ISA2006防火墙策略中的访问规则来加以实现。那么我们来看一下,这中间所涉及到的知识点。
一、策略元素:
每条防火墙策略都是由若干个策略元素组成的,每个策略元素都可以指定防火墙规则的某些参数,ISA已经为我们提供了比较丰富的策略元素,如:协议、用户、内容类型、计划、网络对象等,如下图所示:
▲
1、协议:协议元素限制了用户访问外网时所使用的网络协议。
2、用户:用户元素可以控制有哪些人能访问外网,特别适用于域环境下,用户元素更是可以大显身手。依靠用户元素控制网络访问远比用IP控制来得更方便灵活。但在工作组环境下则不太适合。因为工作组属于分散管理模式。
3、计划:计划元素可以用来表示时间范围,管理员可以根据需要创建相应的时间段。
4、内容类型:内容类型元素负责将访问互联网的数据划分为音频,视频,文本,HTML文档等类型,利用内容类型我们可以更精细地控制用户对网络内容的访问
5、网络对象:网络对象中包括了很多策略元素,例如计算机,计算机集,域名集,URL集等,在访问规则中定义源和目标时经常会用到网络对象。其中不太好理解的可能就是域名集和URL集。域名集:指的是像www.microsoft.com 形式的域名,可以支持通配符,如*.microsoft.com。这和URL集是有所区别的。URL集:所谓的URL,指的就是像http://www.microsoft.com的形式。说白了就是你访问某个网站时的网址。作用是用来在策略中限制哪些URL不可以访问,其他的URL可以访问。可以做到更精细的控制,小到某个站点内的某个链接。
二、网络规则:
一个数据包通过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只需检查网络规则就。
再如:管理员用ISA把DMZ区的一个FTP服务器发布到了外网和内网,结果外网用户访问正常,内网用户却无法访问。为什么,因为DMZ和外网是NAT关系,而DMZ和内网是路由关系。由于从DMZ到外网是NAT关系,外网用户无法通过访问规则直接访问,所以通过发布规则访问是合理的;而内网和DMZ是路由关系,因此内网用户就应该通过访问规则而不是发布规则来访问。
综上所述,网络规则是ISA进行访问控制时所要考虑的第一要务,只有从源网络到目标网络被网络规则许可了,ISA才会继续检查系统策略和防火墙策略;如果网络规则不许可,ISA会直接拒绝访问,根本不会再向下检查系统策略和防火墙策略。
三、系统策略:
如果一个数据包通过了网络规则的检查,ISA接下来就要看看它是否符合系统策略了。ISA2006标准版中预设了30条系统策略,系统策略应用于ISA本地主机,控制着从其他网络到本地主机或者从本地主机到其他网络的通讯,系统策略中启用了一些诸如远程管理,日志,网络诊断等功能。一般情况下,对系统策略只能允许或禁止,或对少数策略的某些属性作一些修改。查看系统策略方法:打开ISA服务器管理,右键点击防火墙策略,如下图所示,在查看中选择“显示系统策略规则”。如图所示:
▲
四、防火墙策略
防火墙策略用来控制源网络和目标网络的通讯,防火墙策略的优先级就是按照规则排列的顺序,而不是按照拒绝优先原则。由于系统策略优先级也是按照序号排列,和防火墙策略优先级完全一样,我们甚至可以把防火墙策略看成是从31开始编号的系统策略。
数据包通过网络规则的检查后,就要面临系统策略和防火墙策略的检查了。ISA将从第一条策略开始检查,检查数据包的访问请求是否匹配策略,如果匹配,就按照策略的规定执行,结果无非是禁止或允许。如果不匹配,ISA就将按顺序检查下一条策略,从第一条系统策略一直检查到最后一条防火墙策略。如果把所有策略都检查完了还不匹配,最后就落到ISA自带的最后一条防火墙策略上,内容是禁止所有网络间的一切通讯。所以,我们在分析防火墙策略时,我们要注意两点,一是策略顺序,二是策略匹配。
所谓策略顺序就是指排在前面的策略优先执行,根据这个原则,我们要好好设计一下防火墙策略的顺序。
所谓策略匹配是指当ISA检测到访问请求时,ISA会检查访问请求能否匹配防火墙策略中的策略元素,策略元素的检查顺序为 协议,从(源网络),计划时间,到(目标网络),用户,内容类型。如果和这些元素都能匹配,ISA就认为访问请求匹配防火墙策略。
介绍到这儿,估计大家限制通过ISA进行一般的访问控制是肯定没有问题的了。那如果要进行一些复杂的限制怎么办呢?例如,公司要限制员工在上班时间通过HTTP协议访问一些具有特定扩展名的文件,如声音文件,如图像文件等;有的企业可能需要禁用QQ或MSN等即时通讯软件;还有的企业禁止用户上网发贴等等,这些都可以通过ISA来完成。下面咱们就来看两个例如:
实例:限制QQ、MSN等即时通讯软件
这就要用到HTTP签名的功能。签名其实就是HTTP数据包中有规律出现的特征数据。我们想阻止一些HTTP应用程序,就可以分析一下这些程序在通讯时有哪些特征数据,然后把这些特征数据以签名的形式提交给ISA,这样ISA就可以阻止这些应用程序了。我们在此以微软的MSN为例:
XP中自带了一个MSN客户端软件Windows Messenger,以此软件为例,Windows Messenger登录服务器时有三种方式:
1、 使用MSN Messenger协议直接连接MSN服务器的 1863端口。
2、 使用HTTP协议连接MSN服务器的80端口。
3、 使用代理服务器连接到MSN服务器的80端口。
其中第一种和第二种连接方式是很容易控制的,我们在ISA上封掉MSN服务器即可,虽然MSN服务器数量不少,但毕竟只是时间问题。第三种方法就不太好控制了,访问者通过代理服务器绕到MSN服务器上,从ISA的角度来看这只是内网的一台客户机访问外网的一台服务器而已。我们不可能封掉所有的代理服务器,这时就要靠签名了,我们要找出MSN客户端通过代理服务器访问MSN服务器时的特征数据,依靠这个来封掉MSN。
那么关键问题来了,怎么找出这个特征数据,也就是咱们所说的签名呢,有的网站上已经公布出来一部分,如微软就已经把MSN的公布出来了:
▲ 图:MSN的部分签名
那如果有的应用程序没有公开的签名怎么办,那就需要大家自己动手来找出特征数据了,这就要用到协议分析软件,又称抓包软件,那如果我们要的签名在表中没有怎么办呢?我们可以通过抓包来分析。常用的抓包软件有Windows系统自带的网络监视器,或者是Ethereal,sniffer等。 但在此要求管理员非常熟练的使用协议分析软件。而且有些程序的签名也不是一承不变的。可能会发生改变。所以最好结合连接服务器列表,以QQ为例,可以找出所有的QQ连接服务器,做一个计算机列表。然后做一个访问规则,拒绝从内网到这些目标的通讯即可。但找出这些服务器地址,也是一个费神的工作。唉,不多说了。
以上咱们介绍的是ISA的访问控制,可以看到作为全球成熟品牌秀的软件防火墙,ISA在功能和易用性方面还是当之无愧的。下面我们再来介绍一下如何利用ISA的服务器发布功能来保护企业内部的服务器。
服务器发布:
服务器发布简单地说就是把内网或DMZ的服务器发布到ISA的外网网卡上,让外网用户通过ISA的外网IP就能访问到被发布的服务器。但为什么需要用发布规则呢?为什么不能用访问内规则呢?什么时候该用访问规则,什么时候该用发布规则取决于源网络和目标网络的网络规则如果源网络和目标网络间的网络规则允许访问,那我们就应该使用访问规则;如果源网络和目标网络间的网络规则不允许访问,那我们就应该使用发布规则。举个例子,内网到外网的网络关系是NAT,网络规则允许从内网到外网单向访问。如果内网访问外网的服务器,我们应该用访问规则;但如果外网要访问内网的服务器,就只能通过发布规则了。
什么是DMZ区域:
DMZ区域又称为“隔离区”或者“非军事化区”。它是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区,这个缓冲区位于企业内部网络和外部网络之间的小网络区域内,在这个小网络区域内可以放置一些公司对外开放的服务器,例如Web服务器,Ftp服务器,邮件服务器等。其实从ISA的角度来看,DMZ就是一个网络。为什么不把这些服务器直接放到内网呢?为什么需要DMZ这个单独的网络呢?被发布的服务器放在内网是可以的,但把发布服务器放在内网并非非常好的选择,因为内网中还有其他的计算机,这些计算机和发布服务器的安全设置并不相同。例如内网中的域控制器并不适合开放给外网用户,财务室人员使用的工作站更是要严加防护。但如果这些计算机和发布服务器都放在内网,对我们进行访问控制是不利的。一旦发布服务器出现安全问题,有可能会危及内网其他计算机的安全。因此比较安全的解决方法是把发布的服务器放在一个单独的隔离网络中,管理员针对隔离网络进行有别于内网的安全配置,这样一来的话显然对安全更加有利。
下面我们就结合一个实例来看一下如何发布DMZ区域中的服务器,各种服务器的发布步骤是大同小异,我们在此就以最常见的WEB服务器为例:
实例:发布DMZ区域中的WEB服务器
说明:
ISA 有三张网卡:
外网:192.168.2.157 内网:192.168.1.1 DMZ:192.168.2.1
WEB服务器:192.168.2.2
步骤1:创建DMZ网络
在ISA Server上手工创建DMZ网络,网络范围是192.168.2.0—192.168.2.255。这个工作我们也可以通过ISA2006自带的三向外围防火墙模板来进行,因为涉及到网络环境的问题,一般在国内大家都手动创建DMZ网络,因为国外公司的DMZ使用的往往是公网地址,而国内DMZ使用的大多是私网地址。
现在我们开始创建DMZ,在Beijing上打开ISA管理器,如下图所示,选择新建网络。
▲
为新创建的网络命名为DMZ。
网络类型是外围网络。
DMZ的地址范围是192.168.2.0-192.168.2.255。
如下图所示,我们成功地完成了DMZ网络的创建。
步骤2:创建网络规则
DMZ网络创建完毕后,我们需要创建DMZ网络和其他网络之间的网络规则。因为我们知道,ISA处理数据的访问请求,首先考虑的是这个数据包的源网络和目标网络的网络规则,因此网络规则决定了两个网络之间数据通讯的方向性和可能性。网络规则的设定取决于实际的访问需求,在此实例中,希望内网用户和外网用户都可以访问DMZ的资源,同时DMZ的服务器需要对外网进行访问。基于这个需求,我们可以把网络规则设定为从内网到DMZ是NAT,从DMZ到外网是NAT。为什么DMZ到外网不设定为路由呢?因为DMZ使用的是内网地址,外网用户无法直接访问这些IP地址。
上打开ISA管理器,如下图所示,选择“创建网络规则”。
为网络规则命名为“从内网到DMZ”。
源网络是内网。
目标网络是DMZ。
源网络到目标网络的网络关系设定为NAT。
这样我们就设定了从内网到DMZ的网络关系是NAT,用同样的方法,我们设定从DMZ到外网的网络关系是NAT。操作方法是相同的,只是注意一下源和目标,在此不再详细论述。
步骤3:创建防火墙访问规则
在此实例中,我们希望内网能够访问DMZ,由于内网和DMZ的网络关系是NAT,因此我们应该通过访问规则来完成这个任务。
下面我们来具体创建访问规则,打开ISA管理器,如下图所示,选择新建“访问规则”。
访问规则可以命名为“允许为内网访问DMZ”。
当访问请求符合规则时允许访问请求的操作、允许所有的出站通讯、规则源是内部、目标网络是DMZ、所有用户等, 如下图所示,即可完成访问规则的创建。
这个时候,如果DMZ区域有WEB服务或者是其他服务器就可以直接访问了,如我们在内网的客户机上访问DMZ的WEB服务器:
至于DMZ区域上WEB服务器的搭建,可以参考中小企业网络构建十步法之五:轻松组建WEB服务器, http://wireless.it168.com/a2011/1130/1281/000001281774.shtml
步骤4:创建发布规则
在此实例中我们还希望DMZ的服务器能够发布到外网,以让外网的客户也能够访问到此WEB服务器。在这种情况下我们应该使用发布规则来完成任务。
我们为发布规则命名为“发布DMZ上的WEB服务器”。
因为是WEB服务器,所以在此使用的是网站发布规则,否则就使用非WEB服务器协议发布规则。
输入名WEB发布规则名称及规则操作后,出现下图:
因为在此我们发布的是单独的网站,所以选择发布单个网站或负载平衡器。
因为没有启用HTTPS安全功能,所以选择第二项,使用HTTP连接到WEB服务器。
在此输入站点名称和IP地址。
路径:/*,如果要求用户使用域名访问的话,应该选中“转发原始主机头而不是前一页的内部站点名称字段中指定的实际主机头”。
在“公共名称细节”选项中选择“任何域名”,然后出现下图:
在此我们需要为此发布服务器创建一个侦听器,因为外网用户只能访问到ISA的外网网卡,那么就需要在外网网卡上进行侦听,如下图所示:
然后,回到发布规则中继续下面的操作:
在此界面中选择相应的“身份验证委派”类型,然后下一步。
在此,我们不对用户做限制,所以选择所有用户。
这个时候完成之后,我们就会看到,服务器的外网网卡会侦听80口,如图所示:
所以在前面安装的时候,我们强调80端口不要占用,就是在此使用,如果发布不成功的话,可以检查是否有其他应用在占用80端口。
整个过程完成后,我们在外网找台机器(10.168.2.158)上测试一下,用此客户端来访问DMZ上的WEB服务器,但客户访问的是ISA Server 外网网卡的80端口。如下图所示:
服务器的发布操作就这么简单,其他服务器的操作可参考此过程,操作过程基本相同,在此不再做论述,有问题欢迎留言讨论。