书城教材教辅电子商务安全与实训
32285200000033

第33章 防火墙技术

互联网的发展给政府机构、企事业单位带来了革命性的改革和开放。他们正努力通过利用互联网来提高办事效率和市场反应速度,以便更具竞争力。通过互联网,企业可以从异地取回重要数据,同时又要面对互联网开放带来的数据安全的新挑战和新危险:即客户、销售商、移动用户、异地员工和内部员工的安全访问;以及保护企业的机密信息不受“黑客”和工业间谍的入侵。因此,企业必须加筑安全的“战壕”,而这个“战壕”就是防火墙。防火墙技术是建立在现代通信网络技术和信息安全技术基础上的应用性安全技术,越来越多地应用于专用网络与公用网络的互联环境之中,尤其以接入互联网网络为甚。

6.2.1防火墙的定义和功能

防火墙(Fire Wall)一词,源于早期欧式建筑中,是为了防止火灾的蔓延而在建筑物之间修建的矮墙。在网络中,防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。它是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力。它是提供信息安全服务,实现网络和信息安全的基础设施。

在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器,有效地监控了内部网和Internet之间的任何活动,保证了内部网络的安全。

防火墙系统决定了哪些内部服务可以被外界访问;外界的哪些人可以访问内部的服务以及哪些外部服务可以被内部人员访问。防火墙必须只允许授权的数据通过,而且防火墙本身也必须能够免予渗透。一般来说,防火墙具有以下几种功能:

(1)允许网络管理员定义一个中心点来防止非法用户进入内部网络。

(2)可以很方便地监视网络的安全性,并报警。

(3)可以作为部署NAT(Network Address Translation,网络地址变换)的地点,利用NAT技术,将有限的IP地址动态或静态地与内部的IP地址对应起来,用来缓解地址空间短缺的问题。

(4)是审计和记录Internet使用费用的一个最佳地点。网络管理员可以在此向管理部门提供Internet连接的费用情况,查出潜在的带宽“瓶颈”位置,并能够依据本机构的核算模式提供部门级的计费。

6.2.2防火墙的分类

认识了防火墙之后,我们就来对当前市场上的防火墙进行一下分类。目前市场的防火墙产品非常之多,划分的标准也比较杂。在此我们对主流的分类标准进行介绍。

1.按防火墙的软、硬件形式划分

从防火墙的软、硬件形式来分,防火墙可以分为软件防火墙和硬件防火墙。

最初的防火墙与我们平时所看到的集线器、交换机一样,都属于硬件产品,它在外观上与平常我们所见到的集线器和交换机类似,只是仅有少数几个接口,分别用于连接内、外部网络,那是由防火墙的基本作用决定的。硬件防火墙产品可以采用纯硬件设计或固化计算机的方式。

随着防火墙应用的逐步普及和计算机软件技术的发展,为了满足不同层次用户对防火墙技术的需求,许多网络安全软件厂商开发出了基于纯软件的防火墙。软件防火墙一般安装在隔离内网与外网的主机或服务器上,通过图形化的界面实现规则配置、访问控制、日志管理等数据包过滤型防火墙的基本功能。

2.按防火墙技术划分

防火墙技术虽然出现了许多,但总体来讲可分为“包过滤型”和“应用代理型”两大类。前者以以色列的Checkpoint防火墙和Cisco公司的PIX防火墙为代表,后者以美国NAI公司的Gauntlet防火墙为代表。

(1)包过滤(Packet Filtering)型。

包过滤型防火墙工作在OSI网络参考模型的网络层和传输层,它根据数据包头的源地址,目的地址、端口号和协议类型等标志确定是否允许通过。只有满足过滤条件的数据包才被转发到相应的目的地,其余数据包则从数据流中丢弃。

包过滤方式是一种通用、廉价和有效的安全手段。之所以通用,是因为它不是针对各个具体的网络服务采取特殊的处理方式,适用于所有网络服务;之所以廉价,是因为大多数路由器都提供数据包过滤功能,所以这类防火墙多数是由路由器集成的;之所以有效,是因为它在很大程度上满足了绝大多数企业安全要求。

在整个防火墙技术的发展过程中,包过滤技术出现了两种不同版本,称为“第一代静态包过滤”和“第二代动态包过滤”。

第一代静态包过滤类型防火墙。

这类防火墙几乎是与路由器同时产生的,它是根据定义好的过滤规则审查每个数据包,以便确定其是否与某一条包过滤规则匹配。过滤规则基于数据包的报头信息进行制定。报头信息中包括IP源地址、IP目标地址、传输协议(TCP、UDP、ICMP等)、TCP/UDP目标端口、ICMP消息类型等。

第二代动态包过滤类型防火墙。

这类防火墙采用动态设置包过滤规则的方法,避免了静态包过滤所具有的问题。这种技术后来发展成为包状态监测技术。采用这种技术的防火墙对通过其建立的每一个连接都进行跟踪,并且根据需要可动态地在过滤规则中增加或更新条目。

包过滤方式的优点是不用改动客户机和主机上的应用程序,因为它工作在网络层和传输层,与应用层无关。但其弱点也是明显的:过滤判别的依据只是网络层和传输层的有限信息,因而各种安全要求不可能充分满足;在许多过滤器中,过滤规则的数目是有限制的,且随着规则数目的增加,性能会受到很大的影响;由于缺少上、下文关联信息,不能有效地过滤如UDP、RPC一类的协议;另外,大多数过滤器中缺少审计和报警机制,它只能依据报头信息,而不能对用户身份进行验证,很容易受到“地址欺骗型”攻击。对安全管理人员素质要求高,建立安全规则时,必须对协议本身及其在不同应用程序中的作用有较深入的理解。因此,过滤器通常是和应用网关配合使用,共同组成防火墙系统。

(2)应用代理(Application Proxy)型。

应用代理型防火墙是工作在OSI的最高层,即应用层,其特点是完全“阻隔”了网络通信流,通过对每种应用服务编制专门的代理程序,实现监视和控制应用层通信流的作用。在代理型防火墙技术的发展过程中,它也经历了两个不同的版本,即:第一代应用网关型代理防火墙和第二代自适应代理防火墙。

第一代应用网关(Application Gateway)型防火墙。

这类防火墙是通过一种代理(Proxy)技术参与到一个TCP连接的全过程。从内部发出的数据包经过这样的防火墙处理后,就好像是源于防火墙外部网卡一样,从而可以达到隐藏内部网结构的作用。这种类型的防火墙被网络安全专家和媒体公认为是最安全的防火墙。它的核心技术就是代理服务器技术。

第二代自适应代理(Adaptive Proxy)型防火墙。

它是近几年才得到广泛应用的一种新防火墙类型。它可以结合应用代理型防火墙的安全性和包过滤型防火墙的高速度等优点,在毫不损失安全性的基础之上将代理型防火墙的性能提高10倍以上。组成这种类型防火墙的基本要素有两个:自适应代理服务器(Adaptive Proxy Server)与动态包过滤器(Dynamic Packet Filter)。

在“自适应代理服务器”与“动态包过滤器”之间存在一个控制通道。在对防火墙进行配置时,用户仅将所需要的服务类型、安全级别等信息通过相应Proxy的管理界面进行设置就可以了。然后,自适应代理就可以根据用户的配置信息,决定是使用代理服务从应用层代理请求还是从网络层转发包。如果是后者,它将动态地通知包过滤器增减过滤规则,满足用户对速度和安全性的双重要求。

代理类型防火墙的最突出的优点就是安全。由于它工作于最高层,所以它可以对网络中任何一层数据通信进行筛选保护,而不是像包过滤那样,只是对网络层的数据进行过滤。

另外,代理型防火墙采取的是一种代理机制,它可以为每一种应用服务建立一个专门的代理,所以内、外部网络之间的通信不是直接的,而是需先经过代理服务器审核,通过后再由代理服务器代为连接,根本没有给内、外部网络计算机任何直接会话的机会,从而避免了入侵者使用数据驱动类型的攻击方式入侵内部网。包过滤型防火墙是很难彻底避免这一漏洞的。就像你要向一个陌生人递交一份声明一样,如果你先将这份声明交给你的律师,然后律师就会审查你的声明,确认没有什么负面影响后才由他交给那个陌生人。在此期间,陌生人对你的存在一无所知,因为他仅与你的律师进行交接。如果要对你进行侵犯,他直接面对的将是你的律师,而你的律师当然比你更加清楚该如何对付这种人。

代理防火墙的最大缺点就是速度相对比较慢,当用户对内、外部网络网关的吞吐量要求比较高时,代理防火墙就会成为内、外部网络之间的“瓶颈”。其原因是防火墙需要为不同的网络服务建立专门的代理服务,在自己的代理程序为内、外部网络用户建立连接时需要时间,所以给系统性能带来了一些负面影响,但通常不会很明显。

3.按防火墙结构划分

从防火墙结构上分,防火墙主要有:单一主机防火墙、路由器集成式防火墙和分布式防火墙三种。

单一主机防火墙是最为传统的防火墙,这种防火墙其实与一台计算机结构差不多,同样包括CPU、内存、硬盘等基本组件,当然主板更是不能少了,且主板上也有南、北桥芯片。它与一般计算机最主要的区别就是一般防火墙都集成了两个以上的以太网卡,因为它需要连接一个以上的内、外部网络。其中的硬盘就是用来存储防火墙所用的基本程序,如包过滤程序和代理服务器程序等,有的防火墙还把日志记录也记录在此硬盘上。虽然如此,但我们不能说它就与我们平常的PC机一样,因为它的工作性质,决定了它要具备非常高的稳定性、实用性,具备非常高的系统吞吐性能。正因如此,看似与PC机差不多的配置,价格相差甚远。

随着防火墙技术的发展及应用需求的提高,原来作为单一主机的防火墙现在已发生了许多变化。最明显的变化就是现在许多中、高档的路由器中已集成了防火墙功能,还有的防火墙已不再是一个独立的硬件实体,而是由多个软、硬件组成的系统,这种防火墙,俗称“分布式防火墙”。

原来单一主机的防火墙由于价格非常昂贵,仅有少数大型企业才能承受得起,为了降低企业网络投资,现在许多中、高档路由器中集成了防火墙功能。如Cisco IOS防火墙系列。但这种防火墙通常是较低级的包过滤型。这样企业可以只购买路由器和防火墙,大大降低了网络设备购买成本。

分布式防火墙再也不是只位于网络边界,而是渗透于网络的每一台主机,对整个内部网络的主机实施保护。在网络服务器中,通常会安装一个用于防火墙系统管理软件,在服务器及各主机上安装有集成网卡功能的PCI防火墙卡,这样一块防火墙卡同时兼有网卡和防火墙的双重功能。这样一个防火墙系统就可以彻底保护内部网络。各主机把任何其他主机发送的通信连接都视为“不可信”的,都需要严格过滤。而不是传统边界防火墙那样,仅对外部网络发出的通信请求“不信任”。关于这一点,我们将在防火墙新技术篇中详细介绍。

4.按防火墙的应用部署位置划分

如果从防火墙的应用部署位置分,可以分为边界防火墙、个人防火墙和混合防火墙三大类。

边界防火墙是最传统的那种,它们位于内、外部网络的边界,所起的作用是对内、外部网络实施隔离,保护边界内部网络。这类防火墙一般都是硬件类型的,价格较贵,性能较好。

个人防火墙安装于单台主机中,防护的也只是单台主机。这类防火墙应用于广大的个人用户,通常为软件防火墙,价格最便宜,性能也最差。

混合式防火墙可以说就是“分布式防火墙”或者是“嵌入式防火墙”,它是一整套防火墙系统,由若干个软、硬件组件组成,分布于内、外部网络边界和内部各主机之间,既对内、外部网络之间通信进行过滤,又对网络内部各主机间的通信进行过滤。它属于最新的防火墙技术之一,性能最好,价格也最贵。

5.按防火墙性能划分

如果按防火墙的性能划分可以分为百兆级防火墙和千兆级防火墙两类。因为防火墙通常位于网络边界,所以不可能只是十兆级的。这主要是指防火墙的通道带宽,或者说是吞吐率。当然通道带宽越宽,性能越高,这样的防火墙因包过滤或应用代理所产生的延时就越小,对整个网络通信性能的影响也就越小。

6.2.3防火墙的体系结构

防火墙的经典体系结构主要有三种形式:双重宿主主机体系结构、被屏蔽主机体系结构和被屏蔽子网体系结构。

1.双重宿主主机体系结构

防火墙的双重宿主主机体系结构是指以一台双重宿主主机作为防火墙系统的主体,执行分离外部网络与内部网络的任务。

在基于双重宿主主机体系结构的防火墙中,带有内部网络和外部网络接口的主机系统就构成了防火墙的主体,该台双重宿主主机具备了成为内部网络和外部网络之间路由器的条件,但是在内部网络与外部网络之间进行数据包转发的进程是被禁止运行的。为了达到防火墙的基本效果,在双重宿主主机系统中,任何路由功能是禁止的,甚至前面介绍的数据包过滤技术也是不允许在双重宿主主机上实现的。双重宿主主机唯一可以采用的防火墙技术就是应用层代理,内部网络用户可以通过客户端代理软件以代理方式访问外部网络资源,或者直接登录至双重宿主主机成为一个用户,再利用该主机直接访问外部资源。

双重宿主主机体系结构防火墙的优点在于网络结构比较简单,由于内、外网络之间没有直接的数据交互而较为安全;内部用户账号的存在可以保证对外部资源进行有效控制;由于应用层代理机制的采用,可以方便地形成应用层的数据与信息过滤。其缺点在于,用户访问外部资源较为复杂,如果用户需要登录到主机上才能访问外部资源,则主机的资源消耗较大;用户机制存在着安全隐患,并且内部用户无法借助于该体系结构访问新的服务器或者特殊服务;一旦外部用户入侵了双重宿主主机,则会导致内部网络处于不安全状态。

2.被屏蔽主机体系结构

被屏蔽主机体系结构是指通过一个单独的路由器和内部网络上的堡垒主机共同构成防火墙,主要通过数据包过滤实现内、外部网络的隔离和对内网的保护。

在被屏蔽主机体系结构中,有两道屏障,一道是屏蔽路由器,另外一道是堡垒主机。屏蔽路由器位于网络的最边缘,负责与外网连接,并且参与外网的路由计算。屏蔽路由器不提供任何服务,仅提供路由和数据包过滤功能,因此屏蔽路由器本身较为安全,被攻击的可能性较小。由于屏蔽路由器的存在,使得堡垒主机不再是直接与外网互联的双重宿主主机,增加了系统的安全性。

堡垒主机存放在内部网络中,是内部网络中唯一可以连接到外部网络的主机,也是外部用户访问内部网络资源必须经过的主机设备。在经典的被屏蔽主机体系结构中,堡垒主机也通过数据包过滤功能实现对内部网络的防护,并且该堡垒主机仅仅允许通过特定的服务连接。主机也可以不提供数据包过滤功能,而是提供代理功能,内部用户只能通过应用层代理访问外部网络,而堡垒主机就成为外部用户唯一可以访问的内部主机。

3.被屏蔽子网体系结构

在防火墙的双重宿主主机体系结构和被屏蔽主机体系结构中,主机都是最主要的安全缺陷,一旦主机被入侵,则整个内部网络都处于入侵者的威胁之中,为解决这种安全隐患,出现了屏蔽子网体系结构。

被屏蔽子网体系结构将防火墙的概念扩充至一个由两台路由器包围起来的特殊网络(周边网络),并且将容易受到攻击的堡垒主机都置于这个周边网络中。

被屏蔽子网体系结构的防火墙比较复杂,主要由四个部件构成,分别为:周边网络、外部路由器、内部路由器以及堡垒主机。

除了经典的三种体系结构之外,防火墙还存在着多种经典结构的变化形式,这些变化形式主要是针对被屏蔽子网体系结构的扩展,在不同的网络环境和不同的安全需求下的运用。通常的变化形式有:合并内部和外部路由器、合并堡垒主机和外部路由器、合并堡垒主机和内部路由器、多台内部路由器、多台外部路由器、多个周边网络等。

6.2.4防火墙的基本技术

1.分组过滤器

分组过滤器又称为包过滤或筛选路由器,它工作在网络层上,有选择地让数据包在内部网络与外部网络之间进行交换。分组过滤器并不保留交互的记录及以前分组的历史,而是分别考虑每个数据包。包过滤型系统通常基于IP数据包的源或目的IP地址、协议类型、协议端口号等对数据流进行过滤,并按信息过滤规则对进、出内部网络的信息进行限制,允许授权信息通过,拒绝非授权信息通过。它有着较高的网络性能和较好的应用程序透明性,实现方便,速度快,但也存在一些缺点:①包过滤规则比较复杂;②不具备自身认证功能,安全性能较差;③利用TCP和UDP端口号来限制某些类型的服务,在不同操作系统环境下兼容性差;④对于一些RPC服务的有效过滤十分困难,这是因为服务器使用的端口是系统启动时随机选择的。

2.代理服务

为了克服包过滤路由器的一些缺点,防火墙需要一些服务的转发功能,这样的应用软件称为代理服务[Proxy Server,也称为应用网关(Application Gateway)]。它是运行在防火墙主机上的一些特定的应用程序或服务器程序。代理服务器是一种增加了安全功能的应用层网关,位于Intranet和Internet之间,自动截取内部用户访问Internet的请求,验证其有效性,代表用户建立访问外部网络的连接。代理服务器在很大程度上对用户是透明的,如果内、外部网络各站点之间的连接被切断了,必须通过代理方可相互联通。

代理服务器是筛选路由器技术和软件技术结合在一起的一个应用级网关,代理客户是普通客户程序的特别版本,它与代理服务器交互但并不真正与外部服务器相连。代理服务器根据一定的安全规则来评测代理客户的网络服务请求,以决定是支持还是拒绝。如果支持该请求,代理服务器就代表客户与真正的外部服务器相连,并将外部服务器的响应传递给代理客户。代理服务器把内部网络完全屏蔽起来,当代理服务器代表内部用户同Internet建立连接时,可以用自己的IP地址代替内部网络的IP地址,这样所有Intranet中的网站对外部都是不可见的。外部网站对Intranet的访问要通过代理服务器,并且需进行IP地址转换,故对外部网站而言,认为是代理服务器提供的服务。代理服务器既能进行安全控制,又可加速访问,但实现较困难,需要对每一种服务设计一个代理软件模块来进行安全控制。

6.2.5创建防火墙的步骤

成功创建一个防火墙系统一般需要六个步骤:定制安全策略、搭建安全体系结构、制定规则次序、制定规则集、注意更换控制和做好审计工作。

1.定制安全策略

防火墙和防火墙规则集只是安全策略的技术实现。安全策略一般由管理人员制定,主要考虑三个方面的内容:内部员工访问互联网不受限制;互联网用户有权访问公司的Web服务器和邮件服务器;任何进入公司内部网络的数据必须经过安全认证和加密。实际的安全策略要远远比这复杂。在实际应用中,需要根据公司的实际情况制定详细的安全策略。

2.搭建安全体系结构

作为一个安全管理员,需要将安全策略转化为安全体系结构。为实现“互联网用户有权访问公司的Web服务器和邮件服务器”,首先为公司建立Web和邮件服务器。由于任何人都能访问Web和邮件服务器,所以这些服务器必须受到防火墙保护。

3.制定规则次序

在建立规则集时,需要注意规则的次序。因为同样的规则,以不同的次序放置,可能会完全改变防火墙的运转情况。大多数防火墙以顺序方式检查信息包,当防火墙收到一个信息包时,它与第1个规则相比较,然后是第2条、第3条、第4条……当发现一个相匹配的规则时,就停止检查,应用这条规则。所以,防火墙的规则顺序通常是比较特殊的在前,比较普通的在后,防止在找到一个特殊的规则之前与一个普通规则相匹配。

4.制定规则集

一个典型的规则集主要包含以下的内容:

①切断默认。

②允许内部出网。允许内部网络的任何人出网,与安全策略中所规定的一样,所有服务都被许可。

③添加锁定。阻塞对防火墙的任何访问,这是所有规则集都应有的一条标准规则,除了防火墙管理员,任何人都不能访问防火墙。

④丢弃不匹配的信息包。丢弃所有不能与任何规则匹配的信息包。但这些信息包并没有被记录。把它添加到规则集末尾来改变这种情况,这是每个规则集都应有的标准规则。

⑤丢弃并不记录。网络上大量被防火墙丢弃并记录的通信、通话会很快将日志填满。创立一条规则丢弃/拒绝这种通话但不记录它。这是一条重要的标准规则。

⑥允许DNS访问。允许互联网用户访问DNS服务器。

⑦允许邮件访问。允许互联网和内部用户通过SMTP(简单邮件传递协议)访问邮件服务器。

⑧允许Web访问。允许互联网和内部用户通过HTTP(服务程序所用的协议)访问Web服务器。

⑨允许内部的POP访问。允许内部用户通过POP(邮局协议)访问邮件服务器。

⑩允许管理员访问。允许管理员(受限于特殊的资源IP)以加密方式访问内部网络。

5.注意更换控制

制定好规则之后,应写上注释并经常更新,注释可以帮助理解每一条规则做什么。对规则理解得越好,错误配置可能性就越小。对那些有多重防火墙管理员的大机构来说,建议当规则被修改时,把下列信息加入注释中,这可以帮助管理员跟踪谁修改了哪条规则以及修改的原因。注释可以包含规则更改者的名字;规则变更日期/时间;规则变更的原因。

6.做好审计工作

建立好规则集后,检测它是否可以安全地工作是很关键的一步。防火墙实际上是一种隔离内外网的工具。在防火墙实现过程中很容易犯配置错误。通过建立一个可靠的、简单的规则集,可以创建一个更安全的被防火墙所隔离的网络环境。