了解防火墙
月亮宝宝
何谓防火墙?防火墙是一个或一组在两个网络之间执行访问控制策略的系统,包括硬件和软件,目的是保护网络不被可疑的人侵扰。本质上,它遵从的是一种允许或阻止业务来往的网络通信安全机制,也就是提供可控的过滤网络通信,只允许授权的通讯。
当今市场上有两类主导性的防火墙:应有代理(application proxy)和包过滤网关(packet filtering gateway)。尽管应有代理被广泛地认定比包过滤网关安全,他们的限制特性和对性能的影响却使得它们的应有场合局限于从因特网上其它公司外的分组流动,而不是从本公司的Web服务器外出的分组流动。相反,包过滤网关或者更尖端的有状态分组过滤网关则能在许多具有高性能要求的较大机构中找到。
防火墙自诞生以来以保护无数的网络或计算机多过了窥视的眼睛和邪恶的破坏者,然而他们还远远不是治理安全的万灵丹。市场上每个防火墙产品几乎每年都有安全脆弱点被发现。更糟糕的是,大多数防火墙往往配置不当且无人维护和监视,从而把它们转化成了电子制门器(保持大门敞开着)。而黑客的责任就是攻克这些脆弱的或无人看管的防火墙,然后告诉它的主人,你的门烂了,还是再换个更好的吧!这次是个警告,如果下次进来的人没有良心,你就惨了。
那防火墙的工作原理又是什么呢?
防火墙常常就是一个具备包过滤功能的简单路由器,支持Internet安全。这是使Internet连接更加安全的一种简单方法,因为包过滤是路由器的固有属性。
包是网络上信息流动的单位。网络上传输的文件一般在发出端被划分成一个一个的IP包,经过网上的中间站,最终传到目的地,然后这些IP包中的数据又重新组成原来的文件。
每个IP包有两个部分:数据部分和包头。包头中含有源地址和目标地址等信息。(这一部分的内容要有TCP/IP的基础)
IP包的过滤一直是一种简单而有效的方法,它通过件包头信息和管理员设定的规则表比较,读出并拒绝那些不符合标准的包,过滤掉不应入站的信息。
IP包过滤规则一般基于部分的或全部的IP包信息,例如对于TCP包头信息为:
1. IP协议类型
2. IP源地址
3. IP目标地址
4. IP选择域的内容
5. TCP源端口号
6. TCP目标端口号
7. TCP ACK标识,指出这个包是否是联接中的第一个包,是否是对另一个包的响应
IP包过滤的一个重要的局限是它不能分辨好的和坏的用户,只能区分好的饱和坏的包。包过滤只能工作在由黑白分明安全策略的网中,即内部是好的,外部是可疑的。对于FTP协议,IP包过滤就不十分有效。FTP允许联接外部服务器并使联接返回到端口20,这几乎毫不费力的通过那些过滤器。
防火墙/应用网关(Application Gateways)还有一种常见的防火墙是应用代理防火墙(有时也称为应用网关)。这些防火墙的工作方式和过滤数据报的防火墙、以路由器为基础的防火墙的工作方式稍有不同。它是基于软件的;当某远程用户想和一个运行应用网关的网络建立联系时,此应用网关会阻塞这个远程联接,然后对联接请求的各个域进行检查。如果此联接请求符合预定的规则,网关便会在远程主机和内部主机之间建立一个"桥","桥"是指两种协议之间的转换器。例如,一个典型的网关一般不将IP数据报转发给内部网络,而是自己作为转换器和解释器进行转换过程。这种方式的时被称之为man-in-the-middle configuration。这种应用网关代理模型的长处是不进行IP报文转发,更为重要的是可以在"桥"上设置更多的控制,而且这种工具还能提供非常成熟的日志功能。然而所有的这些优点都是通过牺牲速度换取的,因为每次联接请求和所有发往内部网的报文在网关上经历接受、分析、转换和再转发等几个过程,完成这些过程所需时间显然比完成以路由器为基础的数据报过滤的时间长得多。
IP转发(IP forwarding)是指收到一个外部请求的服务器将此请求信息以IP报文的格式转发给内部网。让IP转交功能有效是一个严重的错误:如果你允许IP转发,那么入侵者便能从外部进入你的内部网络并访问其上的工作站。
透明性是代理服务器的主要优点。用户端,代理服务给用户的假象是:用户是直接与真正的服务器连接;而在服务器端代理服务给用户的假象是:服务器是直接面对连在代理服务器上的用户。要注意的是,代理服务器只有在需要严格控制内部与外部主机直接联接的场合才是一个比较有效的机制。而双宿主主机与包过滤也是具有这种特性的另外两种机制。如果内、外部主机能够直接相互通信,那么用户就没有必要使用代理服务,在这种情况下,代理服务也不可能起作用。而这种由旁路的拓扑与网络的信息安全是相矛盾的。
最常见的防火墙是按照基本概念工作的逻辑设备,用于在公共网上保护私人网络。配置一堵防火墙是很简单的,步骤如下:
1. 选择一台具有路由能力的PC
2. 加上两块接口卡,例如以太网卡或串行卡等
3. 禁止IP转发
4. 打开一个网卡通向Internet
5. 打开另一个网卡通向内部网
现在,两个不同的网络被这个防火墙分割开来。由于内部网不能再访问Internet,所以访问网际空间就必须经过防火墙。欲进入内部网络,必须先通过防火墙。
而且,若站点正处于防火墙保护之下,对它的访问也是被禁止的,用户不得不先登陆防火墙后在进入Internet,这时便需要代理服务器了。因此,为了使防火墙有效,必须超越其概念设计。
防火墙的设计列有好几种,但都可分为两类:网络级防火墙及应用级防火墙。它们采用不同的方式提供相同的功能,任何一种都能适合站点防火墙的保护需要。而且现在有些防火墙产品具有双重性能。
1. 网络级防火墙
这一类型的防火墙,通常使用简单的路由器,采用包过滤技术,检查个人的IP包并决定允许或不允许基于资源的服务、目的地址及时用端口。
最新式的防火墙较之以前更为复杂,它能监控通过防火墙的联接状态等等。这是一类快速且透明的防火墙,易于实现。
2. 应用级防火墙
应用级防火墙通常是运行在防火墙上的软件部分。这一类的设备也称为应用网关。它是运行代理服务器软件的计算机。由于代理服务器在同一级上运行,所以它对采集访问信息并加以控制是非常有用的。因此,此类防火墙能提供关于出入站访问的详细信息,从而较之网络级防火墙,安全性更强。
若打算将服务器安在内部网内,由于代理服务器将阻塞大多数连结,因此与服务器的连结受到很大限制。但这是一个高度安全的设计,适用于内部网上高水平的保护。
若站点上已实现了类似的防火墙,也许想将Web服务器至于防火墙之外(Web A),并且可能通过一个代理服务器在内部网与Web服务器之间建立联接。但这很可能使站点出现安全漏洞。
还有许多种类的防火墙,它们都有自己的特色:
1. 隔离式过滤器
2. 堡垒主机
3. 双宿主机网关
4. 安全IP通道
5. IP过滤
6. Circuit网关
防火墙可以极大的增强Web站点的安全。根据不同的需要,防火墙在网络中配置有很多方式。根据防火墙和Web服务器所处的位置,总可以分为3种配置:Web服务器置于防火墙之内、Web服务器置于防火墙之外和Web服务器置于防火墙之上。
将Web服务器装在防火墙内的好处是它得到了安全保护,不容易被黑客闯入,但不易被外界所用。当Web站点主要用于宣传企业形象时,显然这不是好的配置,这时应当将Web服务器放在防火墙之外。
事实上,为了保证组织内部网络的安全,将Web服务器完全置于防火墙之外使比较合适的。在这种模式中,Web服务器不受保护,但内部网则处于保护之下,即使黑客进入了你的Web站点,内部网仍是安全的。代理支持在此十分重要,特别是在这种配置中,防火墙对Web站点的保护几乎不起作用。
一些管理员试图在防火墙机器上运行Web服务器,以此增强Web站点的安全性。这种配置的缺点是,一旦服务器有一点毛病,整个系统全处于危险之中。
这种基本配置有多种变化,包括利用代理服务器、双重防火墙、利用成对的"入"、"出"服务器提供对公众信息的访问及内部网络的私人文档的访问。
有一些防火墙的结构不允许将Web服务器设置其外。在这种情况下将不得不打通防火墙。可以这样作:
1. 允许防火墙传递对端口80的请求,访问请求或被限制到Web站点或从Web站点返回(假定你正使用"screened host"型防火墙;
2. 可以在防火墙机器上安装代理服务器,但需一个"双宿主网关"类型的防火墙。来自Web服务器的所有访问请求在被代理服务器截获之后才传给服务器。对访问请求的回答直接返回给请求者。
现实世界要想绕过配置得当的防火墙可能难以置信的困难。然而使用诸如traceroute、hping 和nmap之类信息汇集工具,共记者可以发现(或者至少能够推断)经由目标网点的路由器和防火墙的访问通路,并确定所用防火墙的类型。当前发现的许多脆弱点的根源在于防火墙的误配置和缺乏管理性监视,然而这两种条件一旦被发掘,所导致的后果可能是毁灭性的。
代理和包过滤这两种防火墙中都存在一些特定的脆弱点,包括未加认证的Web和telnet访问以及本地主机登录。对于其中大多数脆弱点,可采取相应的对策防止对它们的发掘,然而有些脆弱点却只能监测是否有人在发掘它们而已。
许多人深信防火墙不可逆转的将来是应用代理和有状态分组包过滤技术的有机结合,这种结合提供了限制误配置的一些技巧。反应性特性也将成为下一代防火墙的部分内容。NAI已在他们的Active Security体系结构上实现了某种形式的反应性特性。它允许一个被检测到的入侵活动引发受影响防火墙的预想设计好的变动。举例来说,如果某个IDS系统检测到了ICMP隧道攻击,它就会接着指导防火墙关闭对进入ICMP回射请求分组的响应。这样的情形总是存在拒绝服务性攻击的机会,这也是需要知识丰富的所谓安全人员的原因。
最后,了解防火墙有助于我们了解网络,为我们纵横网络提供方便。