Internet防火墙技术及安全策略

Internet防火墙技术及安全策略


摘要:

    本文讨论了当前常见的各种防火墙技术的特点,及其适用范围;然后讨论了防火墙设置安全策略,及这些策略的优缺点。

  • Internet防火墙
  • Internet防火墙技术
  • Internet防火墙的好处
  • Internet防火墙的限制
  • Internet黑客的工具箱
  • 信息收集
  • 安全弱点的探测系统
  • 访问受保护系统
  • 基本的防火墙设计
  • 防火墙的姿态
  • 机构的安全策略
  • 防火墙系统的组成
  • 构件:包过滤路由器
  • 与服务相关的过滤
  • 与服务无过的过滤
  • 包过滤路由器的优点
  • 包过滤路由器的缺点
  • 构件:应用层网关
  • 堡垒主机(Bastion host)
  • 实例:Telnet Proxy
  • 应用层网关的优点
  • 应用层网关的缺点
  • 构件:电路层网关
  • 防火墙实例1:包过滤路由器
  • 防火墙实例2:屏蔽主机防火墙
  • 总结
  • 参考文献

---- 当一个机构将其内部网络与Internet连接之后,私有网的内部数据和网络设施暴露给Internet上的黑客时,网络管理员越来越关心网络的安全。为了提供所需级别的保护,机构需要有安全策略来防止非法用户访问内部网络上的资源和非法向外传递内部信息。即使一个机构没有连接到Internet上,它也需要建立内部的安全策略来管理用户对部分网络的访问并对敏感或秘密数据提供保护。

Internet防火墙

---- Internet防火墙是这样的系统(或一组系统),它能增强机构内部网络的安全性。防火墙系统决定了那些内部服务可以被外界访问;外界的那些人可以访问内部的那些可以访问的服务,以及那些外部服务可以被内部人员访问。要使一个防火墙有效,所有来自和去往Internet的信息都必须经过防火墙,接受防火墙的检查(图1)。防火墙必须只允许授权的数据通过,并且防火墙本身也必须能够免于渗透。但不幸的是,防火墙系统一旦被攻击者突破或迂回,就不能提供任何的保护了。

 


图1安全策略建立的防御范围

---- 应给予特别注意的是,Internet防火墙不仅仅是路由器、堡垒主机、或任何提供网络安全的设备的组合,它是安全策略的一个部分。安全策略建立了全方位的防御体系来保护机构的信息资源。这种安全策略应包括在出版的安全指南中,告诉用户们他们应有的责任,公司规定的网络访问、服务访问、本地和远地的用户认证、拨入和拨出、磁盘和数据加密、病毒防护措施,以及雇员培训等。所有有可能受到网络攻击的地方都必须以同样安全级别加以保护。仅设立防火墙系统,而没有全面的安全策略,那么防火墙就形同虚设。

Internet防火墙技术

    防火墙有两种:一种是硬件的,一种软件的。

代理技术

可以采用软件方式保护内部网络不受外来用户的攻击。在Web主机上或单独一台计算机上运行一类软件,监测、侦听来自网络上的信息,对访问内部网的数据起到过滤作用,从而保护内部网免受破坏。这类软件中,最常用的是代理服务器软件。

     在代理方式下,私有网络的数据包从来不能直接进入互联网,而是需要经过代理的处理。同样,外部网的数据也不能直接进入私有网,而是要经过代理处理以后才能到达私有网,因此在代理上就可以进行访问控制,地址转换等功能。下图是是用代理服务器的工作示意图:


    代理服务器的配置有多种方式,最常用的方式是在一台计算机中使用两块网络接口卡(NIC),一个与内部网相连,一个与INTERNET相连,两个接口卡具有不同的IP地址。其中与INTERNET相连的接口卡IP地址必须是有效的IP地址,在INTERNET上唯一。与内部网相连的接口卡可以分配一个自由的IP地址,如10.x.y.z,192.168.x.y,如图:

之后,根据代理服务器的内部地址(如192.168.0.1)给局域网的每台计算机分配一个唯一的IP地址,如192.168.0.2,192.168.0.3,

…… ,并做相应的设置。这样,当用户访问Internet时,其请求就被送到192.168.0.1网卡上,代理服务器将以有效的IP地址210.44.64.101向INTERNET请求服务,收到回答后再传给192.168.0.1,然后将结果传送到用户工作站。

目前,代理服务器软件有很多,如Netscape Suit Proxy,MS Proxy,Wingate,squid等。这些代理服务器不仅能起到防火墙的作用,而且还可以加速局域网用户对INTERNET的访问,因为代理服务器有一个大的缓冲器,将每次浏览的网页都保存起来,在下一次访问该页时就直接从缓冲器里调出

综上所述代理服务器(Proxy Server)主要功能有:

  1.设置用户验证和记帐功能,可按用户进行记帐,没有登记的用户无权通过代理服务器访问Internet网。并对用户的访问时间、访问地点、信息流量进行统计。

  2.对用户进行分级管理,设置不同用户的访问权限,对外界或内部的Internet地址进行过滤,设置不同的访问权限。

  3.增加缓冲器(Cache),提高访问速度,对经常访问的地址创建缓冲区,大大提高热门站点的访问效率。通常代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度。

  4.连接Internet与Intranet充当FireWall(防火墙):因为所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置IP地址过滤,限制内部网对外部的访问权限。

  5.节省IP开销:所有的数据经过代理时都被代理所改写(NAT),将源地址改写为自己的ip地址,所以所有的所有用户只占用一个真实IP,一方面可以节省ip开销,降低网络的维护成本,另一个方面可以隐藏内部网的拓扑结构,增强安全性。

从代理技术上讲,一般具有以下两种代理:传统代理和透明代理。

传统代理

    传统代理工作方式下,内部网络和外部网络之间的唯一连接是代理服务器,客户端要在浏览器中设置代理服务器的地址和端口号,客户浏览器在发出连接请求以前,会自动察看浏览器设置的代理地址及代理端口,若设置了代理端口和代理地址,则将连接请求发送给指定的代理服务器的指定端口。在这种方式的一个明显特点是客户机在连接以前的dns查询也由代理服务器去做。解析DNS的过程是根据代理服务器设置的dns查询顺序进行的。


    若代理服务器使用的是linux环境下的代理服务器,并且查询顺序设置为先查找/etc/hosts,然后找DNS数据库。在这种情况下的管理员就可以根据需要设定客户访问某个外部地址时,其实是访问本地某个服务器。要实现该功能,管理员只需要在/etc/hosts中设定要代换的外部地址的指定匹配。例如管理员在/etc/hosts中设置了192.168.0.3 www.sohu.com则客户在访问sohu时,其实访问的是本地的192.168.0.3的机器。

例如: 从私有网络中访问因特网上的 web.

  私有网络地址为192.168.1.*, 其中 客户机 是 192.168.1.100, 防火墙机器网卡是 192.168.1.1.
  web 代理 (eg. "squid") 被安装在防火墙机器上并配置端口为 8080.
  私有网络上运行的 Netscape 设置防火墙机器 8080 作为代理.
  私有网络的 DNS 无须设置.
  防火墙机器上的 DNS 必须设置.
  私有网络上的机器不设置默认路由(别名网关).
  客户机 机器上的 Netscape 访问 http://slashdot.org.

  Netscape 使用 客户机 机器的端口 1050 连接防火墙机器的端口 8080. 请求 "http://slashdot.org". 页面.
  代理去查找名字 "slashdot.org", 并得到地址 207.218.152.131. 它与那个地址建立一个连接(使用防火墙机器外部接口的端口 1025 ), 并向 web 服务器 (port 80) 索取页面.
  当它从 web 服务器得到页面后, 它把数据复制到与 Netscape 建立的连接.
  Netscape 提交此页面.
  从 slashdot.org' 来看, 连接是从 1.2.3.4 (防火墙机器的拨号接口)的端口 1025 到 207.218.152.131(slashdot.org) 的端口 80. 从 客户机 的角度来看, 连接是从 192.168.1.100 (客户机)的端口1050到192.168.1.1(防火墙机器的乙太网卡)的端口8080.

透明代理技术

    透明代理技术中的透明是指客户端感觉不到代理的存在,不需要在浏览器中设置任何代理,客户只需要设置缺省网关,客户的访问外部网络的数据包被发送到缺省网关,而这时缺省网关运行有一个代理服务器,数据实际上被被重定向到代理服务器的代理端口(如8080),即由本地代理服务器向外请求所需 数据然后拷贝给客户端。理论上透明代理可以对任何协议通用, 目前能实现的主要有:DNS, sendmail relay, 和 HTTP.


但是在这种情况下客户端必须正确设置DNS服务器。因为现在浏览器不设置任何代理。则DNS查询必须由browser来解析,也就是要由客户端必须在TCP/IP中设置的正确的DNS服务器,其完成dns解析。

例如: 从私有网络上访问因特网上的 web 站点.
    私有网络地址为192.168.1.*, 其中 客户机 是 192.168.1.100, 防火墙机器网卡是 192.168.1.1.
  透明web 代理 (我相信有 "squid"的补丁程序工作于此种方式, 或试试 "transproxy") 被安装在防火墙机器上并配置端口为 8080.
  核心使用 ipchains 把与防火墙端口80的连接重定向到代理服务.
私有网上的 Netscape 被配置为直接连接方式.
  私有网络的 DNS 需要设置(你需要在防火墙机器上运行DNS代理服务).
  防火墙机器上的 DNS 必须设置.
  私有网络上机器的默认路由(别名网关)指向防火墙机器.
  客户机机器上的 Netscape 访问 http://slashdot.org.

  1.Netscape通过查找"slashdot.org", 得到它的地址为207.218.152. 131. 然后它使用端口1050与此地址建立一个连接, 并向 web 站点索取页面.
  当包由 客户机 (port 1050) 通过防火墙送往 slashdot.org (port 80) 时, 它们重定向到代理服务重定的8080端口. 透明代理使用端口1025与 207.218.152.131的端口80(这是原始包发往的地址)建立一个连接.
  当代理服务收到从 web 站点传来的页面后, 通过已经建立的连接把它复制给 Netscape.
  Netscape 显示此页面.
  从 slashdot.org 的角度来看,连接是由 1.2.3.4 (防火墙的拨号连接 IP 地址)的端口 1025 到 207.218.152.131 的端口 80. 从 客户机 的角度来看,连接是从 192.168.1.100 (客户机) 端口 1050 连接到 207.218.152.131 (slashdot.org)的端口 80, 但是, 它实际是在与透明代理服务器对话.

软件ip伪装技术

    此方案中, 包不经特殊处理不会直接在私有网络和到因特网直接传输。私有网络中的IP地址应遵循RFC1597中为私有网络分配的.(象 10.*.*.*, 172.16.*.* 或192.168.*.*)。这里核心的伪装服务重写经过防火墙的包, 所以包看起来就象从防火墙自身发出的. 然后伪装服务器重写返回的包使他们看起来是发往原来的申请者.
  需要因特网访问的所有服务必须安装在作为防火墙的机器上.(看下面的 有限的因特网服务).
  例如: 从私有网络上访问因特网上的 web 站点.
  私有网络地址为192.168.1.*, 其中一台客户的地址是192.168.1.100, 防火墙机器网卡是 192.168.1.1.
  防火墙设置为实现对从私有网络中来的任何发往因特网上某主机80端口的包进行伪装。
  私有网上的客户机被配置为直接连接方式。私有网络机器的 DNS 必须正确设置。
  私有网络上机器的默认路由(网关)设定为指向防火墙机器.
  客户机机器上的 Netscape 访问 http://slashdot.org.

1.Netscape通过查找"slashdot.org", 得到它的地址为 207.218.152.131. 然后它使用端口1050与此地址建立一个连接, 并向 web 站点索取页面.
  当包由 客户机 (port 1050) 通过防火墙送往 slashdot.org (port 80) 时, 它们被重写为由PPP地址发出, 端口是 65000. 防火墙有合法的IP地址, 所以从 www.slashdot.com 返回的包可以找到正确的返回路径.
  当包从 slashdot.org (端口 80)来到 firewall.littlecorp.com (端口 65000)后, 它们被重写为发向 客户机, 端口 1050. 这是伪装的真正奥妙: 它可以记住它重写后发出去的包, 当此包的回复包返回来时改写它们, 再发给私有网络中的访问者.
  Netscape 显示此页面.
  从 slashdot.org 的角度来看,连接是由 1.2.3.4 (防火墙的拨号连接 IP 地址)的端口 65000 到 207.218.152.131 的端口 80. 从 客户机 的角度来看,连接是从 192.168.1.100 (客户机) 端口 1050 连接到 207.218.152.131 (slashdot.org)的端口 80.

 端口转发

    端口转发技术指园区网的各种信息服务器,如:www,dns,email等都被放置在内部网络中,且其地址为内部地址,如:192.168.0.1。而在DNS中这些服务器的地址指向防火墙。而当外部需要访问这些服务器时,防火墙进行了特定的设置,其会转发这个数据包包到内部特定的,而当内部服务器生成回复包朝外发出经过防火墙时,包被重写。

    具体过程如下: 在防火墙上设置端口转发规则,指定所有到防火墙外部地址194.160.1.1的TCP连接, 且目的端口为80的所有连接,重定向到内部机器192.168.11.2的端口80。假定任意一外部 连接进来的主机IP为 163.158.1.2。 则源和目的地址及端口号分别为 Source: 163.158.1.2/7890 Dest: 194.160.1.1/80 被转发到内部主机,重写目的地址部分 Source: 163.158.1.2/7890 Dest: 192.168.11.2/80 由内部主机回复后的包为: Source: 192.168.11.2/80 Dest: 163.158.1.2/7890 再经过防火墙时源地址被重写 Source 194.160.1.1/80 Dest: 163.158.1.2/7890。

反向代理技术

    反向代理和端口转发类似,区别在于反向代理工作在应用层,而端口转发工作在ip层。

各种代理方式的作用:

 1. IP伪装,Squid传统代理和透明代理适合让局域网上无真实IP地址的用户访问Internet. 2. Apache反向代理,plug-gw通用代理,端口转发适合让外部用户访问局域网内无真实IP 地址的服务器。

Internet防火墙的好处

---- Internet防火墙负责管理Internet和机构内部网络之间的访问(图2)。在没有防火墙时,内部网络上的每个节点都暴露给Internet上的其它主机,极易受到攻击。这就意味着内部网络的安全性要由每一个主机的坚固程度来决定,并且安全性等同于其中最弱的系统。

 


图2 Internet防火墙的好处
  • 集中的网络安全
  • 可作为中心“扼制点”
  • 产生安全报警
  • 监视并记录Internet的使用
  • NAT的理想位置
  • WWW和FTP服务器的理想位置
---- Internet防火墙允许网络管理员定义一个中心“扼制点”来防止非法用户,如黑客、网络破坏者等进入内部网络。禁止存在安全脆弱性的服务进出网络,并抗击来自各种路线的攻击。Internet防火墙能够简化安全管理,网络安全性是在防火墙系统上得到加固,而不是分布在内部网络的所有主机上。

---- 在防火墙上可以很方便的监视网络的安全性,并产生报警。应该注意的是:对一个内部网络已经连接到Internet上的机构来说,重要的问题并不是网络是否会受到攻击,而是何时会受到攻击。网络管理员必须审计并记录所有通过防火墙的重要信息。如果网络管理员不能及时响应报警并审查常规记录,防火墙就形同虚设。在这种情况下,网络管理员永远不会知道防火墙是否受到攻击。

---- 过去的几年里,Internet经历了地址空间的危机,使得IP地址越来越少。这意味着想进入Internet的机构可能申请不到足够的IP地址来满足其内部网络上用户的需要。Internet防火墙可以作为部署NAT(Network Address Translator,网络地址变换)的逻辑地址。因此防火墙可以用来缓解地址空间短缺的问题,并消除机构在变换ISP时带来的重新编址的麻烦。

---- Internet防火墙是审计和记录Internet使用量的一个最佳地方。网络管理员可以在此向管理部门提供Internet连接的费用情况,查出潜在的带宽瓶颈的位置,并能够根据机构的核算模式提供部门级的记费。

---- Internet防火墙也可以成为向客户发布信息的地点。Internet防火墙作为部署WWW服务器和FTP服务器的地点非常理想。还可以对防火墙进行配置,允许Internet访问上述服务,而禁止外部对受保护的内部网络上其它系统的访问。

---- 也许会有人说,部署防火墙会产生单一失效点。但应该强调的是,即使到Internet的连接失效,内部网络仍旧可以工作,只是不能访问Internet而已。如果存在多个访问点,每个点都可能受到攻击,网络管理员必须在每个点设置防火墙并经常监视。

Internet防火墙的限制

---- Internet防火墙无法防范通过防火墙以外的其它途径的攻击。例如,在一个被保护的网络上有一个没有限制的拨出存在,内部网络上的用户就可以直接通过SLIP或PPP连接进入Internet。聪明的用户可能会对需要附加认证的代理服务器感到厌烦,因而向ISP购买直接的SLIP或PPP连接,从而试图绕过由精心构造的防火墙系统提供的安全系统。这就为从后门攻击创造了极大的可能(图3)。网络上的用户们必须了解这种类型的连接对于一个有全面的安全保护系统来说是绝对不允许的。

 


图3 绕过防火墙系统的连接

---- Internet防火墙也不能防止来自内部变节者和不经心的用户们带来的威胁。防火墙无法禁止变节者或公司内部存在的间谍将敏感数据拷贝到软盘或PCMCIA卡上,并将其带出公司。防火墙也不能防范这样的攻击:伪装成超级用户或诈称新雇员,从而劝说没有防范心理的用户公开口令或授予其临时的网络访问权限。所以必须对雇员们进行教育,让它们了解网络攻击的各种类型,并懂得保护自己的用户口令和周期性变换口令的必要性。

---- Internet防火墙也不能防止传送已感染病毒得软件或文件。这是因为病毒的类型太多,操作系统也有多种,编码与压缩二进制文件的方法也各不相同。所以不能期望Internet防火墙去对每一个文件进行扫描,查出潜在的病毒。对病毒特别关心的机构应在每个桌面部署防病毒软件,防止病毒从软盘或其它来源进入网络系统。

---- 最后一点是,防火墙无法防范数据驱动型的攻击。数据驱动型的攻击从表面上看是无害的数据被邮寄或拷贝到Internet主机上。但一旦执行就开成攻击。例如,一个数据型攻击可能导致主机修改与安全相关的文件,使得入侵者很容易获得对系统的访问权。后面我们将会看到,在堡垒主机上部署代理服务器是禁止从外部直接产生网络连接的最佳方式,并能减少数据驱动型攻击的威胁。

黑客的工具箱

---- 要描述一个典型的黑客的攻击是很,因为入侵者们的技术水平和经验差异很大,各自的动机也不尽相同。某些黑客只是为了挑战,有一些是为了给别人找麻烦,还有一些是以图利为目的而获取机密数据。

信息收集

---- 一般来讲,突破的第一步是各种形式的信息收集。信息惧收集的目的是构造目标机构网络的数据库并收集驻留在网络上的各个主机的有关信息。黑客可以使用下面几种工具来收集这些信息:
  • SNMP协议,用来查阅非安全路由器的路由表,从而了解目标机构网络拓扑的内部细节。
  • TraceRoute程序能够得出到达目标主机所要经过的网络数和路由器数。
  • Whois协议是一种信息服务,能够提供有关所有DNS域和负责各个域的系统管理员数据。不过这些数据常常是过时的。
  • DNS服务器可以访问主机的IP地址表和它们对应的主机名。
  • Finger协议能够提供特定主机上用户们的详细信息(注册名、电话号码、最后一次注册的时间等)
  • Ping实用程序可以用来确定一个指定的主机的位置并确定其是否可达。把这个简单的工具用在扫描程序中,可以Ping网络上每个可能的主机地址,从而可以构造出实际驻留在网络上的主机的清单。

安全弱点的探测系统

---- 收集到目标机构的网络信息之后,黑客会探测每个主机以寻求一个安全上的弱点。有几种工具可能被黑客用来自动扫描驻留在网络上的主机:
  • 由于已经知道的服务脆弱性较少,水平高的黑客能够写出短小的程序来试图连接到目标主机上特定的服务端口上。而程序的输出则是支持可攻击的服务的主机清单。
  • 有几种公开的工具,如ISS(Internet Security Scanner, Internet安全扫描程序),SATAN(Security Analysis Tool for Auditing Networks,审计网络用的安全分析工具),可以对整个域或子网进行扫描并寻找安全上的漏洞。这些程序能够针对不同系统的脆弱性确定其弱点。入侵者利用扫描收集来的信息去获得对目标系统的非法访问权。
---- 聪明的网络管理员能够在其网络内部使用这些工具来发现潜藏的安全弱点并确定那个主机需要用新的软件补丁(Patches)进行升级。

访问受保护系统

---- 入侵者使用主机探测的结果对目标系统进行攻击。获得对受保护系统的访问权后,黑客可以有多种选择:
  • 入侵者可能试图毁掉攻击的痕迹,并在受损害的系统上建立一个新的安全漏洞或后门,以便在原始攻击被发现后可以继续访问这个系统。
  • 入侵者可能会安全包探测器,其包括特洛伊马程序,用来窥探所在系统的活动,收集Telnet和FTP的帐户名和口令。黑客用这些信息可以将攻击扩展到其它机器。
  • 入侵者可能会发现对受损系统有信任的主机。这样黑客就可以利用某个主机的这种弱点,并将攻击在整个机构网络上舱上展开。
  • 如果黑客能够在受损系统上获得特权访问权限,他,或她就可以读取邮件,搜索私人文件,盗取私人文件,毁掉或毁坏重要数据。

基本的防火墙设计

---- 在设计Internet防火墙时,网络管理员必须做出几个决定:
  • 防火墙的姿态(Stance)
  • 机构的整体安全政策
  • 防火墙的经济费用
  • 防火墙系统的组件或构件

防火墙的姿态

---- 防火墙的姿态从根本上阐述了一个机构对安全的看法。Internet防火墙可能会扮演两种截然相反的姿态:
  • 拒绝没有特别允许的任何事情。这种姿态假定防火墙应该阻塞所有的信息,而每一种所期望的服务或应用都是实现在case-by-case的基础上。这是一个受推荐的方案。其建立的是一个非常安全的环境,因为只有审慎选择的服务才被支持。当然这种方案也有缺点,就是不易使用,因为限制了提供给用户们的选择范围。

     

  • 允许没有特别拒绝的任何事情。这种姿态假定防火墙应该转发所有的信息,任何可能存在危害的服务都应在case-by-case的基础上关掉。这种方案建立的是一个非常灵活的环境,能提供给用户更多的服务。缺点是,由于将易使用这个特点放在了安全性的前面,网络管理员处于不断的响应当中,因此,随着网络规模的增大,很难保证网络的安全。

机构的安全策略

---- 如前所述,Internet防火墙并不是独立的--它是机构总体安全策略的一部分。机构总体安全策略定义了安全防御的方方面面。为确保成功,机构必须知道其所有保护的是什么。安全策略必须建立在精心进行的安全分析、风险评估以及商业需求分析基础之上。如果机构没有详尽的安全策略,无论如何精心构建的防火墙都会被绕过去,从而整个内部网络都暴露在攻击面下。

---- 机构能够负担起什么样的防火墙?简单的包过滤防火墙的费用最低,因为机构至少需要一个路由器才能连入Internet,并且包过滤功能包括在标准的路由器配置中。商业的防火墙系统提供了附加的安全功能,而费用在$4,000到$30,000之间,具体价格要看系统的复杂性和要保护的系统的数量。如果一个机构有自己的专业人员,也可以构建自己的防火墙系统,但是仍旧有开发时间和部署防火墙系统等的费用问题。还有,防火墙系统需要管理,一般性的维护、软件升级、安全上的补漏、事故处理等,这些都要产生费用。

 


图4 包过滤路由器

防火墙系统的组成

---- 在确定了防火墙的姿态、安全策略、以及预算问题之后,就能够确定防火墙系统的特定组件。典型的防火墙有一个或多个构件组成:
  • 包过滤路由器
  • 应用层网关(或代理服务器)
  • 电路层网关
---- 在后面我们将讨论每一种构件,并描述其如何一起构成一个有效的防火墙系统。

构件:包过滤路由器

---- 包过滤路由器(图4)对所接收的每个数据包做允许拒绝的决定。路由器审查每个数据报以便确定其是否与某一条包过滤规则匹配。过滤规则基于可以提供给IP转发过程的包头信息。包头信息中包括IP源地址、IP目标端F地址、内装协(ICP、UDP、ICMP、或IP Tunnel)、TCP/UDP目标端口、ICMP消息类型、包的进入接口和出接口如果有匹配并且规则允许该数据包,那么该数据包就会按照路由表中的信息被转发。如果匹配并且规则拒绝该数据包,那么该数据包就会被丢弃。如果没有匹配规则,用户配置的缺省参数会决定是转发还是丢弃数据包。

与服务相关的过滤

---- 包过滤路由器使得路由器能够根据特定的服务允许或拒绝流动的数据,因为多数的服务收听者都在已知的TCP/UDP端口号上。例如,Telnet服务器在TCP的23号端口上监听远地连接,而SMTP服务器在TCP的25号端口上监听人连接。为了阻塞所有进入的Telnet连接,路由器只需简单的丢弃所有TCP端口号等于23的数据包。为了将进来的Telnet连接限制到内部的数台机器上,路由器必须拒绝所有TCP端口号等于23并且目标IP地址不等于允许主机的IP地址的数据包。

---- 一些典型的过滤规则包括:

  • 允许进入的Telne会话与指定的内部主机连接
  • 允许进入的FTP会话与指定的内部主机连接
  • 允许所有外出的Telne会话
  • 允许所有外出的FTP会话
  • 拒绝所有来自特定的外部主机的数据包

与服务无关的过滤

---- 有几种类型的攻击很难使用基本的包头信息来识别,因为这几种攻击是与服务无关的。可以对路由器配置以便防止这几种类型的攻击。但是它们很难指定,因为过滤规则需要附加的信息,并且这些信息只能通过审查路由表和特定的IP选项、检查特定段的内容等等才能学习到。下面是这几种攻击类型的例子:

---- 源IP地址欺骗式攻击(Sowrce IP Address Spoofing Attacks)。这种类型的攻击的特点是入侵者从外部传输一个假装是来自内部主机的数据包,即数据包中所包含的IP地址为内部网络上的IP地址。入侵者希望借助于一个假的源IP地址就能渗透到一个只使用了源地址安全功能的系统中。在这样的系统中,来自内部的信任主机的数据包被接受,而来自其它主机的数据包全部被丢弃。对于源IP地址欺骗式攻击,可以利用丢弃所有来自路由器外部端口的使用内部源地址的数据包的方法来挫败。

---- 源路由攻击(Source Rowing Attacks)。这种类型的攻击的特点是源站点指定了数据包在Internet中所走的路线。这种类型的攻击是为了旁路安全措施并导致数据包循着一个对方不可预料的路径到达目的地。只需简单的丢弃所有包含源路由选项的数据包即可防范这种类型的攻击。

---- 极小数据段式攻击(Tiny Fragment Attacks)。这种类型的攻击的特点是入侵者使用了IP分段的特性,创建极小的分段并强行将TCP头信息分成多个数据包段。这种攻击是为了绕过用户定义的过滤规则。黑客寄希望于过滤器路由器只检查第一个分段而允许其余的分段通过。对于这种类型的攻击,只要丢弃协议类型为TCP,IP FragmentOffset等于1的数据包就可安然无恙。

包过滤路由器的优点

---- 已部署的防火墙系统多数只使用了包过滤器路由器。除了花费时间去规划过滤器和配置路由器之外,实现包过滤几乎不再需要费用(或极少的费用),因为这些特点都包含在标准的路由器软件中。由于Internet访问一般都是在WAN接口上提供,因此在流量适中并定义较少过滤器时对路由器的性能几乎没有影响。另外,包过滤路由器对用户和应用来讲是透明的,所以不必对用户进行特殊的培训和在每台主机上安装特定的软件。

包过滤路由器的缺点

---- 定义数据包过滤器会比较复杂,因为网络管理员需要对各种Internet服务、包头格式、以及每个域的意义有非常深入的理解。如果必须支持非常复杂的过滤,过滤规则集合会非常的大和复杂,因而难于管理和理解。另外,在路由器上进行规则配置之后,几乎没有什么工具可以用来难过滤规则的正确性,因此会成为一个脆弱点。

---- 任何直接经过路由器的数据包都有被用做数据驱动式攻击的潜在危险。我们已经知道数据驱动式攻击从表面上来看是由路由器转发到内部主机上没有害处的数据。该数据包括了一些隐藏的指令,能够让主机修改访问控制和与安全有关的文件,使得入侵者能够获得对系统的访问权。

---- 一般来说,随着过滤器数目的增加,路由器的吞吐量会下降。可以对路由器进行这样的优化抽取每个数据包的目的IP地址,进行简单的路由表查询,然后将数据包转发到正确的接口上去传输。如果打开过滤功能,路由器不仅必须对每个数据包作出转发决定,还必须将所有的过滤器规则施用给每个数据包。这样就消耗了CPU时间并影响系统的性能。

---- IP包过滤器可能无法对网络上流动的信息提供全面的控制。包过滤路由器能够允许或拒绝特定的服务,但是不能理解特定服务的上下文环境/数据。例如,网络管理员可能需要在应用层过滤信息以便将访问限制在可用的FTP或Telnet命令的子集之内,或者阻塞邮件的进入及特定话题的新闻进入。这种控制最好在高层由代理服务和应用层网关来完成。

构件:应用层网关

---- 应用层网关使得网络管理员能够实现比包过滤路由器更严格的安全策略。应用层网关不用依赖包过滤工具来管理Internet服务在防火墙系统中的进出,而是采用为每种所需服务而安装在网关上特殊代码(代理服务)的方式来管理Internet服务。如果网络管理员没有为某种应用安装代理编码,那么该项服务就不支持并不能通过防火墙系统来转发。同时,代理编码可以配置成只支持网络管理员认为必须的部分功能。

---- 这样增强的安全带来了附加的费用:购买网关硬件平台、代理服务应用、配置网关所需的时间和知识、提供给用户的服务水平的下降、由于缺少透明性而导致缺少友好性的系统。同以往一样,仍要求网络管理员在机构安全需要和系统的易于使用性方面作出平衡。允许用户访问代理服务是很重要的,但是用户是绝对不允许注册到应用层网关中的。假如允许用户注册到防火墙系统中,防火墙系统的安全就会受到威胁,因为入侵者可能会在暗地里进行某些损害防火墙有效性运动作。例如,入侵者获取Root权限,安装特洛伊马来截取口令,并修改防火墙的安全配置文件。

堡垒主机(Bastion host)

---- 与包过滤路由器(其允许数据包在内部系统和外部系统之间直接流入和流出)不同,应用层网关允许信息在系统之间流动,但不允许直接交换数据包。允许在内部系统和外部系统之间直接交换数据包的主要危险是驻留在受保护网络系统上的主机应用避免任何由所允许服务带来的威胁。

---- 一个应用层网关常常被称做“堡垒主机”(Bastion Host)。因为它是一个专门的系统,有特殊的装备,并能抵御攻击。有几种特点是专门设计给堡垒主机来提供安全性的:

  • 堡垒主机的硬件执行一个安全版本的操作系统。例如,如果堡垒主机是一个UNIX平台,那么它执行UNIX操作系统的安全版本,其经过了特殊的设计,避免了操作系统的脆弱点,保证防火墙的完整性。

     

  • 只有网络管理员认为必需的服务才能安装在堡垒主机上。原因是如果一个服务没有安装,它就不能受到攻击。一般来说,在堡垒主机上安装有限的代理服务,如Telnet,DNS,FTP,SMTP以及用户认证等。

     

  • 用户在访问代理服务之前堡垒主机可能要求附加认证。比如说,堡垒主机是一个安装严格认证的理想位置。在这里,智能卡认证机制产生一个唯一的访问代码。另外每种代理可能在授予用户访问权之前进行其自己的授权。

     

  • 对代理进行配置,使得其只支持标准应用的命令集合的子集。如果代理应用不支持标准的命令,那么很简单,被认证的用户没有使用该命令的权限。

     

  • 对代理进行配置,使得其只允许对特定主机的访问。这表明,有限的命令/功能只能施用于内部网络上有限数量的主机。

     

  • 每个代理都通过登记所有的信息、每一次连接、以及每次连接的持续时间来维持一个详细的审计信息。审计记录是发现和终止入侵者攻击的一个基本工具。

     

  • 每个代理都是一个简短的程序,专门为网络安全目的而设计。因此可以对代理应用的源程序代码进行检查,以确定其是否有纰漏和安全上的漏洞。比如说,典型的UNIX邮件应用可能包括20,000行代码,而邮件代理只有不到1,000行的程序。

     

  • 在堡垒主机上每个代理都与所有其它代理无关。如果任何代理的工作产生问题,或在将来发现脆弱性,只需简单的卸出,不会影响其它代理的工作。并且,如果一些用户要求支持新的应用,网络管理员可以轻而易举的在堡垒主机上安装所需应用。

     

  • 代理除了读取初始化配置文件之外,一般不进行磁盘操作。这使得入侵者很难在堡垒主机上安装特洛伊马程序或其它的危险文件。

     

  • 每个代理在堡垒主机上都以非特权用户的身份运行在其自己的并且是安全的目录中。

实例:Telnet Proxy

---- 图5说明了堡垒主机上的Telnet代理的操作。在这个例子中,外部的客户要Telnet到内部由应用层网关保护的服务器。

 


图5Telnet代理

---- 这个Telnet代理永远不会允许远地用户注册到内部服务器或直接访问内部服务器。外部的客户Telnet到堡垒主机,其用一次性口令技术认证该用户。在经过认证之后,外部的客户获得了Telnet代理用户接口的访问权。这个Telnet代理只允许部分Telnet命令可以使用,并决定了内部的那些主机可以提供给Telnet来访问。外部客户指定目标主机,然后Telnet代理建立一个其自己到内部服务器的连接,并替外部客户转发命令。外部客户认为Telnet代理是一个真正的内部服务器,而内部服务器也把Telnet代理看作是外部客户。

---- 图6显示的是在建立到内部服务器的连接时在外部客户终端上的输出。请注意,该客户并没有注册到堡垒主机上,该用户由堡垒主机认证,并在允许与Telnet代理通信之前受到挑战。通过挑战之后,代理服务器给出了可以使用的命令集合和可以提供约外部客户的目标主机。

Outside-Host > telnet bastionhost
Username:John Smith
Challenge Number "237936"
Challenge Response:723456
Trying 200.43.67.17...

Connecting to bastionhost
Escape character is '^]'
bastionhost telnet proxy (version 1.4) ready:
bh-telnet>help
Valid commands are:

Connect hostname
help/?
quit/exit

bh-telnet>connect insidehost
SunOS UNIX (insidehost)

login:John Smith
Password:######
Last login:Wednesday Dec 13 11:17:15
Welcome
Inside-Host


图6 Telnet“会话”在终端上的显示

---- 认证可以基于用户所知道的东西(如口令)或用户物理上所拥有的东西(如智能卡)。这两种技术都面临被偷窃,但是使用两种方法的组合可以增加用户认证的正确性。在Telnet这个例子中,代理发出一个挑战,而用户借助于智能卡获得对挑战的回答。典型情况下,用户可以通过输入他的PIN来解锁智能卡,而该卡根据共享的“秘密”加密密钥和其内部时钟,返回一个加密的数值给用户用来回答挑战。

应用层网关的优点

---- 部署应用层网关有许多优点。应用层网关能够让网络管理员对服务进行全面的控制,因为代理应用限制了命令集并决定那些内部主机可以被该服务访问。同时网络管理员可以完全控制提供那些服务,因为没有特定服务的代理就表示该服务不提供。应用层网关有能力支持可靠的用户认证并提供详细的注册信息。另外,用于应用层的过滤规则相对于包过滤路由器来说更容易配置和测试。

应用层网关的缺点

---- 应用层网关的最大缺点是要求用户改变自己的行为,或者在访问代理服务的每个系统上安装特殊的软件。比如,透过应用层网关Telnet访问要求用户通过两步而不是一步来建立连接。不过,特殊的端系统软件可以让用户在Telnet命令中指定目标主机而不是应用层网关来使应用层网关透明。

构件:电路层网关

---- 电路层网关是一个特殊的功能,可以由应用层网关来完成。电路层网关只依赖于TCP连接,并不进行任何附加的包处理或过滤。

---- 图7说明了通过进行的Telnet连接的操作。电路层网关简单地中继Telnet连接,并不做任何审查,过滤或Telnet协议管理。电路层网关就向电线一样,只是在内部连接和外部连接之间来回拷贝字节。但是由于连接似乎是起源于防火墙,其隐藏了受保护网络的有关信息。

 


图7电路层网关

---- 电路层网关常用于向外连接,这时网络管理员对其内部用户是信任的。它们的优点是堡垒主机可以被设置成混合网关,对于人连接支持应用层或代理服务,而对于外连接支持电路层功能。这样使得防火墙系统对于要访问Internet服务的内部用户来说使用起来很方便,同时又能提供保护内部网络免于外部攻击的防火墙功能。

防火墙实例1:包过滤路由器

---- 最常见的防火墙是放在Internet和内部网络之间的包过滤路由器(图8)。包过滤路由器在网络之间完成数据包转发的普通路由功能,并利用包过滤规则来允许或拒绝数据包。一般情况下,是这样来定义过滤规则的:内部网络上的主机可以直接访问Internet,Internet上的主机对内部网络上的主机进行访问是有限制的。这种类型的防火墙系统的外部姿态是对没有特别允许的数据包都拒绝。

 


图8包过滤路由器防火墙

---- 尽管这种防火墙系统有价格低和易于使用的优点,但同时也有缺点,如配置不当的路由器可能受到攻击,以及利用将攻击包裹在允许服务和系统内进行攻击等。由于允许在内部和外部系统之间直接交换数据包,那么攻击面可能会扩展到所有主机和路由器所允许的全部服务上。这就意味着可以从Internet上直接访问的主机要支持复杂的用户认证,并且网络管理员要不断地检查网络以确定网络是否受到攻击。另外,如果有一个包过滤路由器被渗透,内部网络上的所有系统都可能会受到损害。

防火墙实例2:屏蔽主机防火墙

---- 这第二个防火墙系统采用了包过滤路由器和堡垒主机组成(图9)。这个防火墙系统提供的安全等级比上一个例子中的防火墙系统要高,因为它实现了网络层安全(包过滤)和应用层安全(代理服务)。所以入侵者在破坏内部网络的安全性之前,必须首先渗透两种不同的安全系统。

 


图9屏蔽主机防火墙(单宿堡垒主机)

---- 对于这种防火墙系统,堡垒主机配置在内部网络上,而包过滤路由器则放置在内部网络和Internet之间。在路由器上进行规则配置,使得外部系统只能访问堡垒主机,去往内部系统上其它主机的信息全部被阻塞。由于内部主机与堡垒主机处于同一个网络,内部系统是否允许直接访问Internet,或者是要求使用堡垒主机上的代理服务来访问Internet由机构的安全策略来决定。对路由器的过滤规则进行配置,使得其只接受来自堡垒主机的内部数据包,就可以强制内部用户使用代理服务。

---- 这种防火墙系统的优点之一是提供公开的信息服务的服务器,如Web,FTP等,可以放置在由包过滤路由器和堡垒主机共用的网段上。如果要求有特别高的安全特性,可以让堡垒主机运行代理服务,使得内部和外部用户在与信息服务器通信之前,必须先访问堡垒主机。如果较低的安全等级已经足够,则将路由器配置让外部用户直接去访问公共的信息服务器。

---- 用双宿堡垒主机甚至可以构造更加安全的防火墙系统(图10)。双宿堡垒主机有两个网络接口,但是主机在两个端口之间直接转发信息的功能(其能旁路代理服务)被关掉了。这种物理结构强行将让所有去往内部网络的信息经过堡垒主机,并且在外部用户被授予直接访问信息服务器的权利时,提供附加的安全性。

 


图10屏蔽防火墙系统(双宿堡垒主机)
---- 由于堡垒主机是唯一能从Internet上直接访问的内部系统,所以有可能受到攻击的主机就只有堡垒主机本身。但是,如果允许用户注册到堡垒主机,那么整个内部网络上的主机都会受到攻击的威胁。这是因为,对于入侵者来说,如果允许注册,破坏堡垒主机相对比较容易。牢固可靠,避免被渗透和不允许用户注册对堡垒主机来说是至关重要的。

防火墙实例3:DMZ或屏蔽子网防火墙

---- 最后这个防火墙系统的实例采用了两个包过滤路由器和一个堡垒主机(图11)。这个防火墙系统建立的是最安全的防火墙系统,因为在定义了“非军事区”(DMZ)网络后,它支持网络层和应用层安全功能。网络管理员将堡垒主机,信息服务器,Modem组,以及其它公用服务器放在DMZ网络中。DMZ网络很小,处于Internet和内部网络之间。在一般情况下对DMZ配置成使用Internet和内部网络系统能够访问DMZ网络上数目有限的系统,而通过DMZ网络直接进行信息传输是严格禁止的。

 


图11屏子网防火墙系统

---- 对于进来的信息,外面的这个路由器用于防范通常的外部攻击(如源地址欺骗和源路由攻击),并管理Internet到DMZ网络的访问。它只允许外部系统访问堡垒主机(还可能有信息服务器)。里面的这个路由器提供第二层防御,只接受源于堡垒主机的数据包,负责的是管理DMZ到内部网络的访问。

---- 对于去往Internet的数据包,里面的路由器管理内部网络到DMZ网络的访问。它允许内部系统只访问堡垒主机(还可能有信息服务器)。外面的路由器上的过滤规则要求使用代理服务(只接受来自堡垒主机的去往Internet的数据包)。

---- 部署屏蔽子网防火墙系统有如下几个特别的好处:

  • 入侵者必须突破3个不同的设备(夫法探测)才能侵袭内部网络:外部路由器,堡垒主机,还有内部路由器。
  • 由于外部路由器只能向Internet通告DMZ网络的存在,Internet上的系统不需要有路由器与内部网络相对。这样网络管理员就可以保证内部网络是“不可见”的,并且只有在DMZ网络上选定的系统才对Internet开放(通过路由表和DNS信息交换)。
  • 由于内部路由器只向内部网络通告DMZ网络的存在,内部网络上的系统不能直接通往Internet,这样就保证了内部网络上的用户必须通过驻留在堡垒主机上的代理服务才能访问Internet。
  • 包过滤路由器直接将数据引向DMZ网络上所指定的系统,消除了堡垒主机双宿的必要。
  • 内部路由器在作为内部网络和Internet之间最后的防火墙系统时,能够支持比双宿堡垒主机更大的数据包吞吐量。
  • 由于DMZ网络是一个与内部网络不同的网络,NAT(网络地址变换)可以安装在堡垒主机上,从而避免在内部网络上重新编址或重新划分子网。

总结

---- 设计和部署Internet防火墙从来就没有唯一的正确答案。各个机构的网络安全决定可能会受到许多因素的影响,诸如安全策略、职员的技术背景、费用、以及估计可能受到的攻击等等。本文着重于构建Internet防火墙的诸多问题,包括它们的优缺点,构件,以及防火墙系统拓扑结构的实例。由于与Internet连接的好处很可能大于其费用支持,因此网络管理员应充分了解其危险,并采取适当的预防措施,保证网络有其必要的安全性。

参考文献

IPCHAINS-HOWTO

3COM技术白皮书

传统代理,透明代理,plug-gw,Apache反向代理,IP伪装,端口转发

你可能感兴趣的:(Linux,技术文章)