防火墙简介

防火墙是一类防范措施的总称,它使得内部网络与Internet之间或者与其他外部网络互相隔离、限制网络互访用来保护内部网络。这类防范措施简单的可以只用路由器实现,复杂的可以用主机甚至一个子网来实现。它可以在IP层设置屏障,也可以用应用层软件来阻止外来攻击。但无论如何配置,设置防火墙都是为了在内部网与外部网之间设立唯一的通道。这有点像把所有的鸡蛋放到一个篮子里的策略。但反过来想,它也是“一夫当关,万夫莫开”的关口。它简化了网络的安全管理。如果没有防火墙,就必须在每个主机上装安全软件,对每个主机都要定时检查,因为这时每个主机都处于直接受攻击范围内。

  归纳起来,防火墙的功能有:

  * 过滤掉不安全服务和非法用户

  * 控制对特殊站点的访问

  * 提供了监视Internet安全和预警的方便端点

  尽管防火墙有许多防范功能,但由于互连网的开放性,它也有一些力不能及的地方,表现在:

  * 防火墙不能防范不经由防火墙的攻击。例如,如果允许从受保护网内部不受限制的向外拨号,一些用户可以形成与Internet的直接的SLIP或PPP连接。从而绕过防火墙,造成一个潜在的后门攻击渠道。

  * 防火墙不能防止感染了病毒的软件或文件的传输。这只能在每台主机上装反病毒软件。

  * 防火墙不能防止数据驱动式攻击。当有些表面看来无害的数据被邮寄或复制到Internet主机上并被执行而发起攻击时,就会发生数据驱动攻击。例如,一种数据驱动的攻击可以使一台主机修改与安全有关的文件,从而使入侵者下一次更容易入侵该系统。

  总的来说,防火墙只是一种整体安全防范政策的一部分。这种安全政策必须包括公开的,以便用户知道自身责任的安全准则、职员培训计划以及与网络访问、当地和远程用户认证、拨出拨入呼叫、磁盘和数据加密以及病毒防护的有关政策。网络易受攻击的各个点必须以相同程度的安全防护措施加以保护。在无全面的安全政策的情况下设置Internet防火墙,就形同在一顶帐篷上装置一个防盗门。

  实现防火墙的技术

  防火墙的实现从层次上大体上可以分两种:报文过滤和应用层网关。

  报文过滤是在IP层实现的,因此,它可以只用路由器完成。报文过滤根据报文的源IP地址、目的IP地址、源端口、目的端口及报文传递方向等报头信息来判断是否允许报文通过。现在也出现了一种可以分析报文数据区内容的智能型报文过滤器。   报文过滤器的应用非常广泛,因为CPU用来处理报文过滤的时间可以忽略不计。而且这种防护措施对用户透明,合法用户在进出网络时,根本感觉不到它的存在,使用起来很方便。报文过滤另一个也是很关键的弱点是不能在用户级别上进行过滤,即不能识别不同的用户和防止IP地址的盗用。如果攻击者把自己主机的IP地址设成一个合法主机的IP地址,就可以很轻易地通过报文过滤器。

  报文过滤的弱点可以用应用层网关解决。在应用层实现防火墙,方式多种多样。下面分别介绍几种应用层防火墙的设计实现。

  1. 应用代理服务器(Application Gateway Proxy)

  这种防火墙是在网络应用层提供授权检查及代理服务。如图1所示,当外部某台主机试图访问(如Telnet)受保护网时,它必须先在防火墙上经过身份认证。通过身份认证后,防火墙运行一个专门为Telnet设计的程序,把外部主机与内部主机连接。在这个过程中,防火墙可以限制用户访问的主机、访问时间及访问的方式。同样,受保护网络内部用户访问外部网时也需先登录到防火墙上,通过验证后,才可使用Telnet或FTP等有效命令。

  应用网关代理的优点是既可以隐藏内部IP地址,也可以给单个用户授权,即使攻击者盗用了一个合法的IP地址,他也通不过严格的身份认证。因此应用网关比报文过滤具有更高的安全性。但是这种认证使得应用网关不透明,用户每次连接都要受到“盘问”,这给用户带来许多不便。而且这种代理技术需要为每个应用写专门的程序。

  2. 回路级代理服务器

  也就是通常所说的“一般”代理服务器,它适用于多个协议,但它不能解释应用协议,需要通过其他方式来获得信息,所以,回路级代理服务器通常要求修改过的用户程序。

  套接字服务器(Sockets Server)就是回路级代理服务器。套接字(Sockets)是一种网络应用层的国际标准。当受保护网络客户机需要与外部网交互信息时,在防火墙上的套服务器检查客户的User ID、IP源地址和IP目的地址,经过确认后,套服务器才与外部的服务器建立连接。对用户来说,受保护网与外部网的信息交换是透明的,感觉不到防火墙的存在,那是因为网络用户不需要登录到防火墙上。但是客户端的应用软件必须支持 “Sockets ified API”,受保护网络用户访问公共网所使用的IP地址也都是防火墙的IP地址。

  3. 代管服务器

  顾名思义,代管服务器技术是把不安全的服务如FTP、Telnet等放到防火墙上,使它同时充当服务器,对外部的请求作出回答。与应用层代理实现相比,代管服务器技术不必为每种服务专门写程序。而且,受保护网内部用户想对外部网访问时,也需先登录到防火墙上,再向外提出请求,这样从外部网向内就只能看到防火墙,从而隐藏了内部地址,提高了安全性。

  4. IP通道 (IP Tunnels)

  经常会出现这种情况,一个大公司的两个子公司相隔较远,通过Internet通信。这种情况下,可以采用IP Tunnels来防止Internet上的黑客截取信息。从而在Internet上形成一个虚拟的企业网。我们对照图 2来看一下它的工作原理。   子网A中一主机(IP地址为X.X.X.X)欲向子网B中某主机(IP地址为Y.Y.Y.Y)发送报文,该报文经过本网防火墙FW1(IP地址N.N.N.1)时,防火墙判断该报文是否发往子网B,若是,则再增加一报头,变成从此防火墙到子网B防火墙FW2(N.N.N.2)的IP报文,而将原IP地址封装在数据区内,同原数据一起加密后经 Internet发往FW2。FW2接收到报文后,若发现源IP地址是FW1的,则去掉附加报头,解密,在本网上传送。从Internet上看,就只是两个防火墙的通信。即使黑客伪装了从FW1发往FW2的报文,由于FW2在去掉报头后不能解密,会抛弃报文。

  5. 网络地址转换器(NAT Network Address Translate)

  当受保护网连到Internet上时,受保护网用户若要访问Internet,必须使用一个合法的IP地址。但由于合法Internet IP地址有限,而且受保护网络往往有自己的一套IP地址规划(非正式IP地址)。网络地址转换器就是在防火墙上装一个合法IP地址集。当内部某一用户要访问Internet时,防火墙动态地从地址集中选一个未分配的地址分配给该用户,该用户即可使用这个合法地址进行通信。同时,对于内部的某些服务器如Web服务器,网络地址转换器允许为其分配一个固定的合法地址。外部网络的用户就可通过防火墙来访问内部的服务器。这种技术既缓解了少量的IP地址和大量的主机之间的矛盾,又对外隐藏了内部主机的IP地址,提高了安全性。

  6. 隔离域名服务器(Split Domain Name Server )

  这种技术是通过防火墙将受保护网络的域名服务器与外部网的域名服务器隔离,使外部网的域名服务器只能看到防火墙的IP地址,无法了解受保护网络的具体情况,这样可以保证受保护网络的IP地址不被外部网络知悉。

  7. 邮件技术(Mail Forwarding)

  当防火墙采用上面所提到的几种技术使得外部网络只知道防火墙的IP地址和域名时,从外部网络发来的邮件,就只能送到防火墙上。这时防火墙对邮件进行检查,只有当发送邮件的源主机是被允许通过的,防火墙才对邮件的目的地址进行转换,送到内部的邮件服务器,由其进行转发。

  防火墙的体系结构

  1.屏蔽路由器(Screening Router)

  这是防火墙最基本的构件。它可以由厂家专门生产的路由器实现,也可以用主机来实现。屏蔽路由器作为内外连接的唯一通道,要求所有的报文都必须在此通过检查。路由器上可以装基于IP层的报文过滤软件,实现报文过滤功能。许多路由器本身带有报文过滤配置选项,但一般比较简单。

  单纯由屏蔽路由器构成的防火墙的危险带包括路由器本身及路由器允许访问的主机。它的缺点是一旦被攻陷后很难发现,而且不能识别不同的用户。   2.双穴主机网关(Dual Homed Gateway)

  这种配置是用一台装有两块网卡的堡垒主机做防火墙。两块网卡各自与受保护网和外部网相连。堡垒主机上运行着防火墙软件,可以转发应用程序,提供服务等。

  双穴主机网关优于屏蔽路由器的地方是:堡垒主机的系统软件可用于维护系统日志、硬件拷贝日志或远程日志。这对于日后的检查很有用。但这不能帮助网络管理者确认内网中哪些主机可能已被黑客入侵。

  双穴主机网关的一个致命弱点是:一旦入侵者侵入堡垒主机并使其只具有路由功能,则任何网上用户均可以随便访问内网。

  3.被屏蔽主机网关(Screened Host Gateway)

  屏蔽主机网关易于实现也很安全,因此应用广泛。如图3所示,一个分组过滤路由器连接外部网络,同时一个堡垒主机安装在内部网络上,通常在路由器上设立过滤规则,并使这个堡垒主机成为从外部网络唯一可直接到达的主机,这确保了内部网络不受未被授权的外部用户的攻击。进出内部网络的数据只能沿图中的虚线流动。

  如果受保护网是一个虚拟扩展的本地网,即没有子网和路由器,那么内网的变化不影响堡垒主机和屏蔽路由器的配置。危险带限制在堡垒主机和屏蔽路由器。网关的基本控制策略由安装在上面的软件决定。如果攻击者设法登录到它上面,内网中的其余主机就会受到很大威胁。这与双穴主机网关受攻击时的情形差不多。   4.被屏蔽子网 (Screened Subnet)

  这种方法是在内部网络和外部网络之间建立一个被隔离的子网,用两台分组过滤路由器将这一子网分别与内部网络和外部网络分开。在很多实现中,两个分组过滤路由器放在子网的两端,在子网内构成一个“非军事区”DMZ,如图4所示,内部网络和外部网络均可访问被屏蔽子网,但禁止它们穿过被屏蔽子网通信,像WWW和FTP服务器可放在DMZ中。有的屏蔽子网中还设有一堡垒主机作为唯一可访问点,支持终端交互或作为应用网关代理。这种配置的危险带仅包括堡垒主机、子网主机及所有连接内网、外网和屏蔽子网的路由器。

  如果攻击者试图完全破坏防火墙,他必须重新配置连接三个网的路由器,既不切断连接又不要把自己锁在外面,同时又不使自己被发现,这样也还是可能的。但若禁止网络访问路由器或只允许内网中的某些主机访问它,则攻击会变得很困难。在这种情况下,攻击者得先侵入堡垒主机,然后进入内网主机,再返回来破坏屏蔽路由器,整个过程中不能引发警报。   ERCIST防火墙系统

  ERCIST防火墙系统是中国科学院信息安全技术工程研究中心独立研究开发成功的,具有完全自主版权的国产防火墙产品。它已经获得了公安部颁发的销售许可证。下面将介绍ERCIST防火墙的功能和体系结构,希望读者能对防火墙技术的实现有具体了解。 ERCIST防火墙的整体结构如图5所示。

  ERCIST防火墙通过两种技术进行保护与隔离,即过滤器、代理。

  1.包过滤路由器

  对通过防火墙的IP包的地址、TCP/UDP的PortID(端口标识符)及ICMP 进行检查,即规定哪些网络节点何时可通过防火墙访问外部网络,哪些网络节点可访问内部网络;或者是哪些用户只能使用E-mail,而不能使用 Telnet和FTP;或者哪些用户只能使用Telnet,而不能使用FTP等等。可以利用安全策略形式语言描述安全配置规则,并对其进行一致性检查,达到灵活方便地配置安全策略的目的。另外,包过滤的外围管理部分是通过加密通道来与包过滤路由器进行通讯的。

  2.代理服务器

  在网络应用层提供授权检查及代理服务,内部(或外部)网络用户需首先登录到防火墙上,通过验证后,才可使用N etwork Browser、Telnet,rlogin或FTP等有效命令访问外部(或内部)网络。例如,内部网的用户使用Telnet访问外部网络时,首先登录到用作防火墙的主机上,防火墙检查其是否被授权访问外部网,在通过认证检查后,即可再使用Telnet访问外部网络的主机。内部网络用户访问公共网所使用的IP地址都是防火墙的IP地址,有效地防止黑客的攻击。

  代理服务器提供多种方法认证用户。当确认了用户名和口令后,服务器根据系统的设置对用户进行进一步的检查,验证其是否可以访问本服务器。从而为系统管理人员提供了手段保证系统的安全。您可以仅使用口令字方式,但是在某些情况下,这种方式不能保证足够安全。特别是当用户从一个非安全网络登录时,偷窃者可以轻易地翻译出该口令字。这里提供了一种强认证方式,它的用户口令是被加密的,而且加密变换是一次一密的。这样,即使网络黑客通过一个开放网络破获了您的口令字,他所窃取的口令字在下一次使用时也是无效的。

  代理服务器还对进出防火墙的信息进行记录,并可由网络管理员用来监视和管理防火墙的使用情况。

  ERCIST防火墙实现了FTP、TELNET、HTTP、SMTP、NNTP、FINGER、RLOGIN 、SSL、X-WINDOWS九种代理服务。

  ERCIST防火墙还集成了许多其他安全技术和公用技术,例如VPN(安全虚拟专用网)技术、智能卡安全集成技术、操作系统安全技术、抗抵赖协议、认证技术、自动全文检索技术、网络监视器技术、跨平台技术等,为ERCIST防火墙增添了光彩。