防火墙虽然是网络安全体系中最重要的一环,但是还是有很多用户没有对它有足够的重视。下面将介绍一下防火墙的原理及作用。
防火墙的本义原是指古代人们房屋之间修建的那道墙,这道墙可以防止火灾发生的时候蔓延到别的房屋。而这里所说的防火墙当然不是指物理上的防火墙,而是指隔离在本地网络与外界网络之间的一道防御系统,是这一类防范措施的总称。应该说,在互联网上防火墙是一种非常有效的网络安全模型,通过它可以隔离风险区域(即Internet或有一定风险的网络)与安全区域(局域网)的连接,同时不会妨碍人们对风险区域的访问。
防火墙可以监控进出网络的通信量,从而完成看似不可能的任务。仅让安全、核准了的信息进入,同时又抵制对企业构成威胁的数据。随着安全性问题上的失误和缺陷越来越普遍,对网络的入侵不仅来自高超的攻击手段,也有可能来自配置上的低级错误或不合适的口令选择。因此,防火墙的作用是防止不希望的、未授权的通信进出被保护的网络,迫使单位强化自己的网络安全政策。
一般的防火墙都可以达到以下目的:一是可以限制他人进入内部网络,过滤掉不安全的服务和非法用户;二是防止入侵者接近用户的防御设施;三是限定用户访问特殊站点;四是为监视Internet安全提供方便。由于防火墙假设了网络边界和服务,因此更适合于相对独立的网络,例如Intranet等种类相对集中的网络。防火墙正在成为控制对网络系统访问的非常流行的方法。事实上,在Internet上的Web网站中,超过三分之一的Web网站都是由某种形式的防火墙加以保护,这是对黑客防范最严,安全性较强的一种方式,任何关键性的服务器,都建议放在防火墙之后。
防火墙可以使用户的网络划规划更加清晰明了,全面防止跨越权限的数据访问(因为有些人登录后的第一件事就是试图超越权限限制)。如果没有防火墙的话,用户可能会接到许许多多类似的报告,比如单位内部的财政报告刚刚被数万个E-mail邮件炸烂,或者用户的个人主页被人恶意连接到Playboy,而报告链接上却指定了另一家色情网站。一套完整的防火墙系统通常是由屏蔽路由器和代理服务器组成。
屏蔽路由器是一个多端口的IP路由器,它通过对每一个到来的IP包依据组规则进行检查来判断是否对之进行转发。屏蔽路由器从包头取得信息,例如协议号、收发报文的IP地址和端口号、连接标志以至另外一些IP选项,对IP包进行过滤。代理服务器是防火墙中的一个服务器进程,它能够代替网络用户完成特定的TCP/TP功能。一个代理服务器本质上是一个应用层的网关,一个为特定网络应用而连接两个网络的网关。用户就一项TCP/TP应用,比如Telnet或者FTP,同代理服务器打交道,代理服务器要求用户提供其要访问的远程主机名。当用户答复并提供了正确的用户身份及认证信息后,代理服务器连通远程主机,为两个通信点充当中继。整个过程可以对用户完全透明。用户提供的用户身份及认证信息可用于用户级的认证。最简单的情况是:它只由用户标识和口令构成。但是,如果防火墙是通过Internet可访问的,应推荐用户使用更强的认证机制,例如一次性口令或回应式系统等。
屏蔽路由器的最大优点就是架构简单且硬件成本较低,而缺点则是建立包过滤规则比较困难,加之屏蔽路由器的管理成本及用户级身份认证的缺乏等。好在路由器生产商们已经认识到并开始着手解决这些问题,他们正在开发编辑包过滤规则的图形用户界面,制订标准的用户级身份认证协议,以提供远程身份认证拨入用户服务(REDIUS)。
代理服务器的优点在于用户级的身份认证、日志记录和账号管理。其缺点关系到这样一个事实:要想提供全面的安全保证,就要对每一项服务都建立对应的应用层网关。这个事实严重地限制了新应用的采纳。
屏蔽路由器和代理服务器通常组合在一起构成混合系统,其中屏蔽路由器主要用来防止IP欺骗攻击。目前采用最广泛的配置是Dualhomed防火墙、被屏蔽主机型防火墙以及被屏蔽子网型防火墙。
通常架设防火墙需要数千甚至上万美元的投入,而且防火墙需要运行于一台独立的计算机上,因此只用一台计算机连入互联网的用户是没必要架设防火墙的,况且这样做即使从成本方面讲也太不划算。目前观之,防火墙的重点还是用来保护由许多台计算机组成的大型网络,这也是黑客高手们真正感兴趣的地方。
防火墙可以是非常简单的过滤器,也可能是精心配置的网关,但它们的原理是一样,都是监测并过滤所有通向外部网和从外部网传来的信息,防火墙保护着内部敏感的数据不被偷窃和破坏,并记下来通信发生的时间和操作等等,新一代的防火墙甚至可以阻止内部人员故意将敏感数据传输到外界。当用户将单位内部的局域网连入互联网时,而通过设置防火墙,管理员就可以限定单位内部员工使用E-mail、浏览WWW以及文件传输,但不允许外界任意访问单位内部的计算机,同时管理员也可以禁止单位中不同部门之间互相访问。
将局部网络放置防火墙之后可以阻止来自外界的攻击。而防火墙通常是运行在一台单独的计算机之上的一个特别的软件,它可以识别并屏蔽非法的请求。例如一台WWW代理服务器,所有的请求都间接地由代理服务器处理,这台服务器不同于普通的代理服务器,它不会直接地处理请求,它会验证请求发出者的身份、请求的目的地和请求内容。
如果一切符合要求,这个请求会被批准并送到真正的WWW服务器上。当真正的WWW服务器处理完这个请求后并不会直接把结果发送给请求者,它会把结果送到代理服务器,代理服务器会按照事先的规定检查这个结果是否违反了安全规定,当这一切都通过后,返回结果才会真正地送到请求者的手里。
实现防火墙体系结构的具体功能作以下介绍。
屏蔽路由器可以由厂家专门生产的路由器实现,也可以用主机来实现。屏蔽路由器作为内外连接的唯一通道,要求所有的报文都必须在此通过检查。路由器上可以安装基于IP层的报文过滤软件,实现报文过滤功能。许多路由器本身带有报文过滤配置选项,但一般比较简单。单纯由屏蔽路由器构成的防火墙的危险包括路由器本身及路由器允许访问的主机。屏蔽路由器的缺点是一旦被攻击后很难发现,而且不能识别不同的用户。
双穴主机网关是用一台装有两块网卡的堡垒主机做防火墙。两块网卡各自与受保护网和外部网相连。堡垒主机上运行着防火墙软件,可以转发应用程序,提供服务等。与屏蔽路由器相比,双穴主机网关堡垒主机的系统软件可用于维护护系统日志、硬件拷贝日志或远程日志。但弱点也比较突出,一旦黑客侵入堡垒主机并使其只具有路由功能,任何网上用户均可以随便访问内部网。
屏蔽主机网关易于实现也最为安全。一个堡垒主机安装在内部网络上,通常在路由器上设立过滤规则,并使这个堡垒主机成为从外部网络唯一可直接到达的主机,这确保了内部网络不受未被授权的外部用户的攻击。如果受保护网是一个虚拟扩展的本地网,即没有子网和路由器,那么内部网的变化不影响堡垒主机和屏蔽路由器的配置。危险带限制在堡垒主机和屏蔽路由器。网关的基本控制策略由安装在上面的软件决定。如果攻击者没法登录到它上面,内网中的其余主机就会受到很大威胁。这与双穴主机网关受攻击时的情形差不多。
被屏蔽子网就是在内部网络和外部网络之间建立一个被隔离的子网,用两台分组过滤路由器将这一子网分别与内部网络和外部网络分开。在很多实现中,两个分组过滤路由器放在子网的两端,在子网内构成一个DNS,内部网络和外部网络均可访问被屏蔽子网,但禁止它们穿过被屏蔽子网通信。有的屏蔽子网中还设有一堡垒主机作为唯一可访问点,支持终端交互或作为应用网关代理。这种配置的危险仅包括堡垒主机、子网主机及所有连接内网、外网和屏蔽子网的路由器。如果攻击者试图完全破坏防火墙,他必须重新配置连接三个网的路由器,既不切断连接又不要把自己锁在外面,同时又不使自己被发现,这样也还是可能的。但若禁止网络访问路由器或只允许内网中的某些主机访问它,则攻击会变得很困难。在这种情况下,攻击者得先侵入堡垒主机,然后进入内网主机,再返回来破坏屏蔽路由器,并且整个过程中不能引发警报。
如今市场上的防火墙林林总总,形式多样。有以软件形式运行在普通计算机之上的,也有以固件形式设计在路由器之中的。总的来说可以分为三种:包过滤防火墙、代理服务器和状态监视器,下面主要介绍前两种。
包过滤(Packet Filter)是在网络层中对数据包实施有选择的通过,依据系统事先设定好的过滤逻辑,检查数据流中的每个数据包,根据数据包的源地址、目标地址以及包所使用端口确定是否允许该类数据包通过。
在互联网这样的信息包交换网络上,所有往来的信息都被分割成许许多多一定长度的信息包,包中包括发送者的IP地址和接收者的IP地址。当这些包被送上互联网时,路由器会读取接收者的IP并选择一条物理上的线路发送出去,信息包可能以不同的路线抵达目的地,当所有的包抵达后会在目的地重新组装还原。包过滤式的防火墙会检查所有通过信息包里的IP地址,并按照系统管理员所给定的过滤规则过滤信息包。如果防火墙设定某一IP为危险的话,从这个地址而来的所有信息都会被防火墙屏蔽掉。
这种防火墙的用法很多,比如国家有关部门可以通过包过滤防火墙来禁止国内用户去访问那些违反我国有关规定或者“有问题”的国外站点,例如www.playboy.com、www.cnn.com等等。包过滤路由器的最大的优点就是它对于用户来说是透明的,也就是说不需要用户名和密码来登录。
这种防火墙速度快而且易于维护,通常作为第一道防线。包过滤路由器的弊端也是很明显的,通常它没有用户的使用记录,这样用户就不能从访问记录中发现黑客的攻击记录。而攻击一个单纯的包过滤式的防火墙对黑客来说是比较容易的,他们在这一方面已经积累了大量的经验。“信息包冲击”是黑客比较常用的一种攻击手段,黑客们对包过滤式防火墙发出一系列信息包,不过这些包中的IP地址已经被替换掉了(FakeIP),取而代之的是一串顺序的IP地址。
一旦有一个包通过了防火墙,黑客便可以用这个IP地址来伪装他们发出的信息。在另一些情况下黑客们使用一种他们自己编制的路由器攻击程序,这种程序使用路由器协议(Routing Information Protcol)来发送伪造的路由信息,这样所有的包都会被重新路由到一个入侵者所指定的特别地址。对付这种路由器的另一种技术被称之为“同步淹没”,这实际上是一种网络炸弹。攻击者向被攻击的计算机发出许许多多个虚假的“同步请求”信号包,当服务器响应了这种信号包后会等待请求发出者的回答,而攻击者不做任何的响应。如果服务器在45秒钟里没有收到反应信号的话就会取消掉这次请求。但是当服务器在处理成千上万个虚假请求时,它便没有时间来处理正常的用户请求,处于这种攻击下的服务器和死锁没什么两样。
此种防火墙的缺点是很明显的,通常它没有用户的使用记录,这样用户就不能从访问记录中发现黑客的攻击记录。此外,配置烦琐也是包过滤防火墙的一个缺点。它阻挡别人进入内部网络,但也不告诉用户何人进入用户的系统,或者何人从内部进入网际网路。它可以阻止外部对私有网络的访问,却不能记录内部的访问。包过滤另一个关键的弱点就是不能在用户级别上进行过滤,即不能鉴别不同的用户和防止IP地址盗用。包过滤型防火墙是某种意义上的绝对安全的系统。
代理服务器通常也称作应用级防火墙。包过滤防火墙可以按照IP地址来禁止未授权者的访问。但是它不适合单位用来控制内部人员访问外界的网络,对于这样的企业来说应用级防火墙是更好的选择。
所谓代理服务,即防火墙内外的计算机系统应用层的链接是在两个终止于代理服务的链接来实现的,这样便成功地实现了防火墙内外计算机系统的隔离。代理服务是设置在Internet防火墙网关上的应用,是在网管员允许下或拒绝的特定的应用程度或者特定服务,同时,还可应用于实施较强的数据流监控、过滤、记录和报告等功能。
一般情况下可应用于特定的互联网服务,如超文本传输(HTTP)、远程文件传输(FTP)等。代理服务器通常拥有高速缓存,缓存中存有用户经常访问站点的内容,在下一个用户要访问同样的站点时,服务器就用不着重复地去抓同样的内容,既节约了时间也节约了网络资源。