Red Hat Enterprise Linux 5.0服务器构建与故障排除
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第10章 Linux防火墙的构建和故障排除

本章要点

● 防火墙简介。

● Linux防火墙。

● iptables配置实战。

● 升级iptables控制BT。

● NAT服务器配置。

● Iptable常见问题解答。

10.1 防火墙简介

10.1.1 什么是防火墙

防火墙指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合,它是不同网络或网络安全域之间信息的唯一出入口。通过监测、限制并更改跨越防火墙的数据流,尽可能地对外部屏蔽网络内部的信息、结构和运行状况。有选择地接受外部访问,对内部强化设备监管,并控制对服务器与外部网络的访问。在被保护网络和外部网络之间架起一道屏障,以防止发生不可预测且潜在的破坏性侵入。防火墙有两种,即硬件防火墙和软件防火墙,它们都能起到保护作用并筛选出网络上的攻击者。

10.1.2 防火墙的功能

从逻辑上说,防火墙是一个分离器、限制器和分析器,建立防火墙可以达到以下目的。

(1)管理进、出网络的访问:防火墙允许网络管理员定义一个中心“扼制点”来防止非法用户进入内部网络,禁止存在安全脆弱性的服务进出网络并抗击来自各种路线的攻击。防火墙能够简化安全管理,因为网络安全性是在防火墙系统上得到实施,而不是分布在内部网络的各台主机上。

(2)保护网络中脆弱的服务:防火墙通过过滤存在安全缺陷的网络服务来降低内部网遭受攻击的威胁,因为只有经过选择的网络服务才能通过防火墙。

(3)检测和报警:在防火墙上可以很方便地监视网络的安全性,并产生报警。网络管理员通过防火墙日志可以审查常规记录并及时响应报警,以便知道防火墙或内部网络是否正受到攻击。

(4)集中安全性:如果一个内部网络的所有或大部分需要改动的安全程序都能集中放在防火墙系统中,而不是分散到每台主机中,这样防火墙的保护范围就相对集中,安全成本也相对降低了。

(5)内部地址隐藏:Internet防火墙是部署NAT(Network Address Translation,网络地址转换)的合适位置,因此防火墙可以用来缓解地址空间短缺的问题,也可以隐藏内部网络的结构。

(6)增强保密性并强化私有权:对一些内部网络节点而言,保密性是很重要的,finger和DNS服务常常会暴露内部节点的信息。使用防火墙系统可阻塞finger及DNS服务,从而使得外部主机无法获取这些有利于攻击的信息。

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

10.1.3 防火墙技术分类

传统意义上的防火墙技术分为3大类,即包过滤(Packet Filtering)、应用代理(Application Proxy)和状态检测(Stateful Inspection)。无论一个防火墙的实现过程多么复杂,归根结底都是在这3种技术的基础上进行功能扩展的。

1.包过滤技术

包过滤是最早使用的一种防火墙技术,其第1代模型是“静态包过滤”(Static Packet Filtering)。使用包过滤技术的防火墙通常工作在OSI模型中的网络层(Network Layer),后来发展更新的“动态包过滤”(Dynamic Packet Filtering)增加了传输层(Transport Layer)。简而言之,包过滤技术工作在各种基于TCP/IP的数据报文进出的通道。它把这两层作为数据监控的对象,对每个数据包的头部、协议、地址、端口及类型等信息进行分析,并与预先设定的防火墙过滤规则(Filtering Rule)进行核对。一旦发现某个包的某个或多个部分与过滤规则匹配,并且条件为“阻止”时,这个包就会被丢弃。

适当地设置过滤规则可以让防火墙工作得更安全有效,但是这种技术只能根据预设的过滤规则进行判断。为了解决这个鱼与熊掌的问题,人们改进了包过滤技术,这种改进后的技术称为“动态包过滤”。动态包过滤功能在保持原有静态包过滤技术和过滤规则的基础上,会对已经成功与计算机连接的报文传输进行跟踪,并且判断该连接发送的数据包是否会对系统构成威胁。一旦触发其判断机制,防火墙就会自动产生新的临时过滤规则或者修改已经存在的过滤规则,从而阻止该有害数据的继续传输。但是由于动态包过滤需要消耗额外的资源和时间来提取数据包内容进行判断处理,所以与静态包过滤相比,它会降低运行效率。但是静态包过滤已经几乎退出市场了,我们能选择的大部分也只有动态包过滤防火墙。

基于包过滤技术的防火墙的缺点是很显著的,它得以正常工作的一切依据都在于过滤规则的实施,但是又不能满足建立精细规则的要求(规则数量和防火墙性能成反比)。而且它只能工作在网络层和传输层,并不能判断高级协议中的数据是否有害。但是由于它廉价且容易实现,所以依然服务在各种领域,在技术人员频繁的设置下工作。

2.应用代理技术

由于包过滤技术无法提供完善的数据保护措施,而且一些特殊的报文攻击仅仅使用过滤的方法并不能消除危害(如SYN攻击及ICMP洪水等),因此人们需要一种更全面的防火墙保护技术。在这样的需求背景下,采用“应用代理”技术的防火墙诞生了。代理服务器作为一个为用户保密或者突破访问限制的数据转发通道在网络上广泛应用,一个完整的代理设备包含一台服务器端和客户端。服务器端接收来自用户的请求,调用自身的客户端模拟一个基于用户请求的连接到目标服务器。然后把目标服务器返回的数据转发给用户,完成一次代理工作过程。在一台代理设备的服务器端和客户端之间连接一个过滤措施的思想造就了“应用代理”防火墙,这种防火墙实际上就是一台小型的带有数据检测过滤功能的透明代理服务器(Transparent Proxy)。但是它并不是单纯的在一个代理设备中嵌入包过滤技术,而是一种被称为“应用协议分析”(Application Protocol Analysis)的新技术。

“应用协议分析”技术工作在OSI模型的最高层——应用层上,该层能接触到的所有数据都是最终形式,即防火墙“看到”的数据和我们看到的是一样的。而不是一个个带着地址端口协议等原始内容的数据包,因而它可以实现更高级的数据检测过程。整个代理防火墙把自身映射为一条透明线路,在用户方面和外界线路看来,它们之间的连接并没有任何阻碍,但是这个连接的数据收发实际上经过了代理防火墙转向。当外界数据进入代理防火墙的客户端时,“应用协议分析”模块便根据应用层协议处理这个数据,通过预置的处理规则查询这个数据是否带有危害。由于这一层面已经不再组合有限的报文协议,所以防火墙不仅能根据数据层提供的信息判断数据,更能如同管理员分析服务器日志那样“看”内容辨危害。而且由于工作在应用层,所以防火墙还可以实现双向限制,在过滤外部网络有害数据的同时也监控内部网络的信息。管理员可以配置防火墙实现一个身份验证和连接时限的功能,进一步防止内部网络信息泄露的隐患。

最后,由于代理防火墙采取代理机制工作,内外部网络之间的通信都需先经过代理服务器审核。通过后由代理服务器连接,所以根本没有给分隔在内外部网络两边的计算机直接会话的机会,可以避免入侵者使用“数据驱动”攻击方式(一种能通过包过滤技术防火墙规则的数据报文,当其进入计算机处理后,变成能够修改系统设置和用户数据的恶意代码)渗透内部网络。可以说,“应用代理”是比包过滤技术更完善的防火墙技术。

但是代理型防火墙的结构特征偏偏正是其最大缺点,由于它基于代理技术,所以通过防火墙的每个连接都必须建立在为之创建的代理程序进程上。而代理进程自身要消耗一定时间,更何况代理进程中还有一套复杂的协议分析机制在同时工作,于是数据在通过代理防火墙时就不可避免地发生数据迟滞现象。所以代理防火墙的普及范围还远远不及包过滤型防火墙,而在软件防火墙方面更是几乎没有类似产品。单机并不具备代理技术所需的条件,所以就目前整个庞大的软件防火墙市场来说,代理防火墙很难有立足之地。

3.状态检测技术

这是继“包过滤”和“应用代理”技术后的防火墙技术,它是Check Point技术公司在基于“包过滤”原理的“动态包过滤”技术发展而来的,与之类似的有其他厂商联合发展的“深度包检测”(Deep Packet Inspection)技术。这种防火墙技术通过一种称为“状态检测”的模块,在不影响网络安全正常工作的前提下采用抽取相关数据的方法对网络通信的各个层次实行监测,并根据各种过滤规则做出安全决策。

“状态检测”技术在保留了对每个数据包的头部、协议、地址、端口及类型等信息进行分析的基础上,进一步发展了“会话过滤”(Session Filtering)功能。在建立每个连接时,防火墙会为这个连接构造一个会话状态,其中包含这个连接数据包的所有信息。以后这个连接都基于这个状态信息,这种检测的高明之处是能对每个数据包的内容进行监视。一旦建立了一个会话状态,则此后的数据传输都要以此会话状态作为依据。例如,一个连接的数据包源端口是8000,那么在以后的数据传输过程中防火墙都会审核这个包的源端口还是不是8000;否则这个数据包就被拦截。而且会话状态的保留是有时间限制的,在限制的范围内如果没有再进行数据传输,这个会话状态就会被丢弃。状态检测可以对包内容进行分析,从而摆脱了传统防火墙仅局限于检测几个包头部信息的弱点。而且这种防火墙不必开放过多端口,进一步杜绝了可能因为开放端口过多而带来的安全隐患。

由于状态检测技术相当于结合了包过滤技术和应用代理技术,因此是最先进的。但是由于实现技术复杂,在实际应用中还不能做到真正完全有效的数据安全检测。

4.其他

世界上没有一种事物是唯一的,防火墙也一样。为了更有效地应对网络上各种不同攻击手段,防火墙也派分出几种防御架构。根据物理特性,防火墙分为两大类,即硬件和软件防火墙;从结构上又分为单一主机防火墙、路由集成式防火墙和分布式防火墙3种;按工作位置分为边界防火墙、个人防火墙和混合防火墙;按防火墙性能分为百兆级防火墙和千兆级防火墙两类。虽然看似种类繁多,但这只是因为业界分类方法不同。例如,一台硬件防火墙就可能由于结构、数据吞吐量和工作位置而规划为“百兆级状态监视型边界防火墙”。因此上面主要介绍的是技术方面的分类,即“包过滤”、“应用代理”和“状态检测”防火墙技术。