防火墙技术是安全技术中的一个具体体现。
防火墙原本是指房屋之间修建的一道墙,用以防止火灾发生时的火势蔓延。
我们这里讨论的是硬件防火墙,它是将各种安全技术融合在一起,采用专用的硬件结构,选用高速的CPU、嵌入式的操作系统,支持各种高速接口(LAN接口),用来保护私有网络(计算机)的安全,这样的设备我们称为硬件防火墙。
硬件防火墙可以独立于操作系统(HP-UNIX、SUN OS、AIX、NT等)、计算机设备(IBM6000、普通PC等)运行。
它用来集中解决网络安全问题,可以适合各种场合,同时能够提供高效率的“过滤”。
同时它可以提供包括访问控制、身份验证、数据加密、VPN技术、地址转换等安全特性,用户可以根据自己的网络环境的需要配置复杂的安全策略,阻止一些非法的访问,保护自己的网络安全。
现代的防火墙体系不应该只是一个“入口的屏障”,防火墙应该是几个网络的接入控制点,所有进出被防火墙保护的网络的数据流都应该首先经过防火墙,形成一个信息进出的关口,因此防火墙不但可以保护内部网络在Internet中的安全,同时可以保护若干主机在一个内部网络中的安全。
在每一个被防火墙分割的网络内部中,所有的计算机之间是被认为“可信任的”,它们之间的通信不受防火墙的干涉。
而在各个被防火墙分割的网络之间,必须按照防火墙规定的“策略”进行访问。
防火墙发展至今已经历经三代,分类方法也各式各样,例如按照形态划分可以分为硬件防火墙及软件防火墙;按照保护对象划分可以分为单机防火墙及网络防火墙等。
但总的来说,最主流的划分方法是按照处理方式进行分类。
防火墙按照处理方式可以分为以下三类:包过滤防火墙包过滤是指在网络层对每一个数据包进行检查,根据配置的安全策略转发或丢弃数据包。
包过滤防火墙的基本原理是:通过配置访问控制列表(ACL, Access Control List)实施数据包的过滤。
主要基于数据包中的源/目的IP地址、源/目的端口号、IP 标识和报文传递的方向等信息。
包过滤防火墙的设计简单,非常易于实现,而且价格便宜。
包过滤防火墙的缺点主要表现以下几点:1. 随着ACL 复杂度和长度的增加,其过滤性能呈指数下降趋势。
2. 静态的ACL 规则难以适应动态的安全要求。
3. 包过滤不检查会话状态也不分析数据,这很容易让黑客蒙混过关。
例如,攻击者可以使用假冒地址进行欺骗,通过把自己主机IP地址设成一个合法主机IP地址,就能很轻易地通过报文过滤器。
代理防火墙代理服务作用于网络的应用层,其实质是把内部网络和外部网络用户之间直接进行的业务由代理接管。
代理检查来自用户的请求,用户通过安全策略检查后,该防火墙将代表外部用户与真正的服务器建立连接,转发外部用户请求,并将真正服务器返回的响应回送给外部用户。
代理防火墙能够完全控制网络信息的交换,控制会话过程,具有较高的安全性。
其缺点主要表现在:1. 软件实现限制了处理速度,易于遭受拒绝服务攻击。
2. 需要针对每一种协议开发应用层代理,开发周期长,而且升级很困难。
状态检测防火墙状态检测是包过滤技术的扩展。
基于连接状态的包过滤在进行数据包的检查时,将每个数据包看成是独立单元,并且还要考虑前后报文的历史关联性。
我们知道,所有基于可靠连接的数据流(即基于TCP协议的数据流)的建立都需要经过“客户端同步请求”、“服务器应答”以及“客户端再应答”三个过程(即“三次握手”过程),这说明每个数据包都不是独立存在的,而是前后有着密切的状态联系的。
基于这种状态联系,从而发展出状态检测技术。
基本原理简述如下:1. 状态检测防火墙使用各种会话表来追踪激活的TCP(Transmission Control Protocol)会话和UDP(User Datagram Protocol)伪会话,由访问控制列表决定建立哪些会话,数据包只有与会话相关联时才会被转发。
其中UDP伪会话是在处理UDP协议包时为该UDP数据流建立虚拟连接(UDP是面对无连接的协议),以对UDP 连接过程进行状态监控的会话。
2. 状态检测防火墙在网络层截获数据包,然后从各应用层提取出安全策略所需要的状态信息,并保存到会话表中,通过分析这些会话表和与该数据包有关的后续连接请求来做出恰当决定。
状态检测防火墙具有以下优点:后续数据包处理性能优异状态检测防火墙对数据包进行ACL 检查的同时,可以将数据流连接状态记录下来,对该数据流中的后续包则无需再进行ACL检查,只需根据会话表对新收到的报文进行连接记录检查即可。
检查通过后,该连接状态记录将被刷新,从而避免重复检查具有相同连接状态的数据包。
连接会话表里的记录可以随意排列,与记录固定排列的ACL 不同,于是状态检测防火墙可采用诸如二叉树或哈希(Hash)等算法进行快速搜索,提高了系统的传输效率。
安全性较高连接状态清单是动态管理的。
会话完成后防火墙上所创建的临时返回报文入口随即关闭,保障了内部网络的实时安全。
同时,状态检测防火墙采用实时连接状态监控技术,通过在会话表中识别诸如应答响应等连接状态因素,增强了系统的安全性。
安全区域(Zone)是防火墙所引入的一个在安全领域方面的概念,是防火墙区别于路由器的主要特征。
安全区域是一个或多个接口的组合,不同安全区域具有互不相同的安全级别。
对于路由器,各个接口所连接的网络在安全上可以视为是平等的,没有明显的内外之分,所以即使进行一定程度的安全检查,也是在接口上完成的。
一个数据流单方向通过路由器时有可能需要进行两次安全策略的检查:入接口的安全检查和出接口的安全检查,以便使其符合每个接口上独立的安全定义。
而这种思路对于防火墙来说显然不适合,因为防火墙放置于内部网络和外部网络之间,可以保护内部网络不受外部网络上恶意用户的侵害,有着明确的内外之分。
当一个数据流通过防火墙的时候,根据其发起方向的不同,所引起的操作是截然不同的。
由于这种安全级别上的差别,采用在接口上检查安全策略的方式已经不适用,将造成用户在配置上的混乱。
因此,防火墙提出了安全区域的概念。
一个安全区域包括一个或多个接口的组合,具有一个安全级别。
安全区域有如下特点:1. 安全级别用1~100的数值表示,数值越大表示安全级别越高。
2. 不存在两个具有相同安全级别的安全区域。
幻灯片 11只有当数据在分属于两个不同安全级别的区域(或区域包含的接口)之间流动的时候,才会激活防火墙的安全策略检查功能。
数据在属于同一个安全区域的不同接口间流动时不会触发安全策略检查。
业界很多防火墙一般都提供受信安全区域(trust)、非受信安全区域(untrust)、非军事化区域(DMZ)三个独立的安全区域,这样的保护模型可以适应大部分的组网要求。
其中DMZ 这一术语起源于军方,指的是介于严格的军事管制区和松散的公共区域之间的一种有着部分管制的区域。
防火墙引用了这一术语,指代一个逻辑上和物理上都与内部网络和外部网络分离的区域。
该区域可以放置需要对外提供网络服务的设备,如WWW Server、FTP Server 等。
DMZ 区域很好地解决了服务器的放置问题。
上述服务器如果放置于外部网络,则防火墙无法保障它们的安全;如果放置于内部网络,外部恶意用户则有可能利用某些服务的安全漏洞攻击内部网络。
华为赛门铁克防火墙缺省提供四个安全区域:local(优先级为100)、trust(优先级为85)、DMZ(优先级为50)、untrust(优先级为5),在提供三个最常用的安全逻辑区域的基础上还新增加了本地逻辑安全区域(local),本地安全区域可以定义到防火墙本身的报文,保证了防火墙本身的安全防护,使得对防火墙本身的安全保护得到加强。
例如,通过对本地安全区域的报文控制,可以很容易的防止不安全区域对防火墙本身的Telnet、ftp等访问。
在一些安全策略要求较高的场合,这样的保护模型可能还是不能满足要求,因此华为赛门铁克防火墙还提供自定义安全区域,可以最大定义12个自定义安全区域,每个安全区域都可以加入独立的接口。
接口、网络与安全区域的关系接口与安全区域的关系一个安全区域可以包括一个或多个接口,具有一个安全级别。
除Local区域外,使用其他安全区域前,都需要将安全区域分别与防火墙的特定接口关联,即将接口加入安全区域,这代表接口所连接的网络属于指定的安全区域。
另外,Local 区域不能添加任何接口,但防火墙接口本身都属于Local区域。
网络与安全区域的关系安全区域与各网络的关联遵循如下原则:1. 需要保护的网络应安排在安全级别较高的区域,如Trust区域。
2. 外部网络应安排在安全级别较低的区域,如Untrust区域。
3. 对外提供有条件服务的网络应安排在中等安全级别的区域,如DMZ区域。
安全区域之间的方向两个安全区域之间(简称安全域间)的数据流分两个方向:入方向(Inbound)以及出方向(Outbound)。
入方向是指数据由低安全级别的安全区域向高安全级别的安全区域传输的方向。
反之,出方向是指数据由高安全级别的安全区域向低安全级别的安全区域传输的方向。
不同安全级别的安全区域间的数据流动都将触发防火墙进行安全策略的检查。
如果事先为同一安全域间的不同方向设置不同的安全策略,当有数据流在此安全域间的两个不同方向上流动时,将触发不同的安全策略检查。
幻灯片 12ASPF是一种高级通信过滤技术,它检查应用层协议信息并且监控基于连接的应用层协议状态。
支持该技术的高级防火墙依靠这种基于报文内容的访问控制,能够对应用层的一部分攻击加以检测和防范,包括对于FTP命令字、SMTP命令的检测、HTTP的Java、ActiveX控件等的检测及过滤。
另外,ASPF技术还可以解决多通道协议引起的过滤问题。
多通道协议是指某个应用在进行通讯或提供服务时需要建立两个以上的会话(通道),其中有一个控制通道,其他的通道是根据控制通道中双方协商的信息动态创建的,一般我们称之为数据通道或子通道;多通道协议在防火墙应用以及NAT设备的应用中需要特殊处理,因为数据通道的端口是不固定的(协商出来的)其报文方向也是不固定的。
这种典型应用有很多,最典型的是ftp,其他的一般都是跟音频和视频通讯相关的协议,如:H.323(包括T.120、RAS、Q.931和H.245等)、SIP、MGCP等,此外许多实时聊天通讯软件也是多通道协议的,如MSN,QQ等。
在普通的场合,一般使用的是基于ACL的IP包过滤技术,这种技术比较简单,但缺乏一定的灵活性,在很多复杂应用的场合普通包过滤是无法完成对网络的安全保护的。
例如对于类似于应用FTP协议进行通信的多通道协议来说,配置防火墙则是非常困难的。
FTP包含一个预知端口的TCP控制通道和一个动态协商的TCP数据通道,对于一般的包过滤防火墙来说,配置安全策略时无法预知数据通道的端口号,因此无法确定数据通道的入口,这样就无法配置准确的安全策略。