防火墙是目前最为流行也是使用最为广泛的一种网络安全技术。防火墙(Firewall),是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。它是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力。它是提供信息安全服务,实现网络和信息安全的基础设施。
一、网络防火墙概述
如果没有防火墙,内部网络上的服务器都暴露在局域网或Internet上,极易受到攻击。也就是说,内部网络的安全性要由每一台服务器来决定,并且整个内部网络的安全性等于其中防护能力最弱的系统。防火墙作为一个分离器、限制器和分析器,用于执行两个网络之间的访问控制策略,有效地监控了内部网和Internet之间的任何活动。
1. 网络防火墙的重要作用
在构建安全网络环境的过程中,防火墙作为第一道安全防线,既可为内部网络提供必要的访问控制,但又不会造成网络的瓶颈,并通过安全策略控制进出系统的数据,保护网络内部的关键资源。由此可见,对于联接到Internet的内部网络而言,选用防火墙是非常必要的。
● 网络安全的屏障
防火墙可通过过滤不安全的服务而降低风险,极大地提高内部网络的安全性。由于只有经过选择并授权允许的应用协议才能通过防火墙,所以网络环境变得更安全。防火墙可以禁止诸如不安全的NFS协议进出受保护网络,使攻击者不可能利用这些脆弱的协议来攻击内部网络。防火墙同时可以保护网络免受基于路由的攻击,如IP选项中的源路由攻击和ICMP重定向中的重定向路径。防火墙能够拒绝所有以上类型攻击的报文,并将情况及时通知防火墙管理员。
● 强化网络安全策略
通过以防火墙为中心的安全方案配置,能将所有安全软件(如口令、加密、身份认证、审计等)配置在防火墙上。与将网络安全问题分散到各个主机上相比,防火墙的集中安全管理更经济。例如,在网络访问时,一次一密口令系统和其它的身份认证系统完全可以不必分散在各个主机上,而集中在防火墙一身上。
● 对网络存取和访问进行监控审计
由于所有的访问都必须经过防火墙,所以防火墙就不仅能够制作完整的日志记录,而且还能够提供网络使用情况的统计数据。当发生可疑动作时,防火墙能进行适当的报警,并提供网络是否受到监测和攻击的详细信息。另外,收集一个网络的使用和误用情况也是一项非常重要的工作。这不仅有助于了解防火墙是否能够抵挡攻击者的探测和攻击,了解防火墙的控制是否充分有效,而且有助于作出网络需求分析和威胁分析。
● 防止内部信息的外泄
通过利用防火墙对内部网络的划分,可实现内部网中重点网段的隔离,限制内部网络中不同部门之间互相访问,从而保障了网络内部敏感数据的安全。另外,隐私是内部网络非常关心的问题,一个内部网络中不引人注意的细节,可能包含了有关安全的线索而引起外部攻击者的兴趣,甚至由此而暴露了内部网络的某些安全漏洞。使用防火墙就可以隐蔽那些透漏内部细节,如Finger、DNS等服务。Finger显示了主机的所有用户的用户名、真名、最后登录时间和使用shell类型等。但是Finger显示的信息非常容易被攻击者所获悉。攻击者可以知道一个系统使用的频繁程度,这个系统是否有用户正在连线上网,这个系统是否在被攻击时引起注意等等。防火墙可以同样阻塞有关内部网络中的DNS信息,这样一台主机的域名和IP地址就不会被外界所了解。
2. 硬件防火墙与软件防火墙
防火墙分为软件防火墙和硬件防火墙两种。软件防火墙是安装在PC平台的软件产品,它通过在操作系统底层工作来实现网络管理和防御功能的优化。硬件防火墙的硬件和软件都单独进行设计,有专用网络芯片处理数据包。同时,采用专门的操作系统平台,从而避免通用操作系统的安全性漏洞。并且对软硬件的特殊要求,使硬件防火墙的实际带宽与理论值基本一致,有着高吞吐量、安全与速度兼顾的优点。
硬件防火墙与软件防火墙相比较,有很多优越性,如下表所示。
3. 硬件防火墙的类型与选择
国内市场的硬件防火墙,大部分都是"软硬件结合的防火墙",即"定制机箱+X86架构+防火墙软件模块"(大多数基于Linux或UNIX系统开发)。其核心技术实际上仍然是软件,吞吐量不高,容易造成带宽瓶颈。由于PC架构本身不稳定,因此,往往难以适应7*24的不间断运行。所以,这种防火墙一般只能满足中低带宽的安全要求,在高流量环境下往往会造成网络堵塞甚至系统崩溃。
● 包过滤防火墙
包过滤防火墙是基于源地址和目的地址、应用或协议以及每个IP包的端口作出是否允许通过判断的防火墙。路由器便是传统的包过滤防火墙,大多数的路由器都能通过检查这些信息来决定是否将所收到的包转发,但它不能判断出一个IP包来自何方,去向何处。
先进的包过滤防火墙可以判断这一点,它可以提供内部信息以说明所通过的连接状态和一些数据流的内容,把判断的信息同规则表进行比较,在规则表中定义了各种规则来表明是否同意或拒绝包的通过。包过滤防火墙检查每一条规则直至发现包中的信息与某规则相符。如果没有一条规则能符合,防火墙就会使用默认规则,一般情况下,默认规则就是要求防火墙丢弃该包。其次,通过定义基于TCP或UDP数据包的端口号,防火墙能够判断是否允许建立特定的连接,如Telnet、FTP连接。
网络级防火墙的优点是简洁、速度快、费用低,并且对用户透明,缺点是对网络的保护很有限,因为它只检查地址和端口,对网络更高协议层的信息无理解能力。
● 应用网关防火墙
应用网关能够检查进出的数据包,通过网关复制传递数据,防止在受信任服务器和客户机与不受信任的主机间直接建立联系。应用网关能够理解应用层上的协议,能够做较为复杂的访问控制,并做精细的注册。但每一种协议需要相应的代理软件,使用时工作量大,效率不如网络级防火墙。
应用网关有较好的访问控制,是目前最安全的防火墙技术,但实现起来比较困难,而且通常对用户缺乏透明。另外,用户在受信任的网络上通过防火墙访问Internet时,经常会发现存在延迟,并且必须进行多次登录才能访问Internet或Intranet,令人感到未免有些美中不足。
● 规则检查防火墙
规则检查防火墙集包过滤和应用网关的特点于一身。与包过滤防火墙的相同之处在于,它能够在OSI网络层上通过IP地址和端口号,过滤进出的数据包。与应用网关的相同之处在于,它可以在OSI应用层上检查数据包的内容,查看这些内容是否能符合公司网络的安全规则。
规则检查防火墙不打破客户机/服务机模式来分析应用层的数据,允许受信任的客户机和不受信任的主机建立直接连接。另外,它也不依靠与应用层有关的代理,而是依靠某种算法来识别进出的应用层数据,这些算法通过已知合法数据包的模式来比较进出数据包,从而在理论上比应用级代理在过滤数据包上更有效。
由于规则检查防火墙在OSI最高层–应用层上加密数据,既无需修改客户端的程序,也无需对每个在防火墙上运行的服务额外增加一个代理,对于用户完全透明,所以,目前市场上流行的防火墙大多属于该类防火墙。