网络防火墙

  • 简述

       防火墙(Firewall)是一类按照特定规则过滤网络流量以限制流量流向终端系统的网络安全系统。防火墙自1993年提出至今已演化出多种不同的类型。最为常用的两种防火墙是代理防火墙(proxy firewall)和包过滤防火墙(packet-filter firewall)。它们之间的主要区别是所操作的协议栈的层次及由此决定的IP地址和端口号的使用。包过滤防火墙是一个互联网路由器,能够按特定规则过滤数据包。从Internet客户端的角度来看,代理防火墙则是一个多宿主的服务器主机,它是TCP和UDP传输关联的终点,通常不会再IP协议层中路由IP数据报。

  • 包过滤防火墙

       包过滤防火墙作为互联网路由器,能够过滤一些网络流量。它们一般可以配置为丢弃或转发数据包头中符合(或不符合)特定标准的数据包,这些标准称为过滤器(filter)。简单的过滤器包括网络层或传输层报头中各个部分的范围比较。最流行的过滤器包括IP地址或者选项、ICMP报文的类型,以及根据数据包中端口号确定的各种UDP或TCP服务。最简单的包过滤防火墙是无状态的,这种防火墙单独处理每一个数据报,而另一种更复杂的有状态的包过滤防火墙能够通过关联已经或者即将到达的数据包来推断流或者数据报的信息,即那些属于同一个传输关联(transport association)的数据包或构成同一个IP数据报的IP分片。

       包过滤防火墙作为IP路由器位于一个“内”网和一个“外”网之间,有时是在第三个“DMZ”(非军事区)或外联网,只允许某些特定的流量通过。网络管理员会安装过滤器或访问控制列表(Access Control Lists,ACL)(ACL列出了什么类型的数据报需要被丢弃或转发的基本政策)到防火墙中。一种常见的配置是允许所有从内网到外网的流量通过,但相反方向只允许小部分的流量。当使用一个DMZ时,只允许从Internet访问其中的某些特定服务。

  • 代理防火墙

       包过滤防火墙作为一个路由器可以选择性地丢弃数据包。其他类型的防火墙,如代理防火墙,并不是真正意义上的互联网路由器。相反,它们本质上是运行一个或多个应用层网关(Application-Layer Gateways,ALG)的主机,该主机拥有多个网络接口,能够在应用层中继两个连接/关联之间的特定类型流量。它们通常不像路由器那样做IP转发,虽然现在已经有结合了各种功能的更复杂的代理防火墙。

       代理防火墙内的客户端通常会做特殊配置以便关联(或者连接)到代理防火墙,而不是连接到实际提供所需服务的真正的终端主机(能够和代理防火墙以这种方式交互的应用需要提供相应的配置选项)。通常这些防火墙作为多宿主主机,即便具备IP转发的能力也是被禁用的。与包过滤防火墙一样,一种常见的配置是位“外”接口分配一个全局路由的IP地址,为“内”接口分配一个私有的IP地址。因此,代理防火墙支持使用私有地址范围。

       虽然这种类型的防火墙比包过滤防火墙安全得多,但它是以脆性(brittleness)和缺乏灵活性为代价的。特别是,因为这种类型的防火墙必须为每个传输层服务设置一个代理,任何要使用的新服务必须安装一个相应的代理,并通过该代理来操作发起连接。此外,必须配置每个客户端以便能够找到代理(例如使用Web代理自动发现协议,当然也有一些替代方法,如捕捉代理就能够处理某种类型的所有流量,而不管其目标地址如何)。至于部署方面,这些防火墙在所有被访问的网络服务均能提前确定的环境中能工作得很好,但是添加额外的服务可能需要网络运营者的重大干预,即防火墙的部署和更新都需要较多的人工操作。

       代理防火墙的两种最常见的形式是HTTP代理防火墙和SOCKS防火墙。第一种类型也称为Web代理,只能用于HTTP和HTTPS协议(Web)。这些代理对于内网用户来说就像是Web服务器,对于被访问的外部网站来说就像是Web客户端。这种代理往往也能提供Web缓存(Web cache)功能,这些缓存保存网页的副本以便后续访问可以直接从缓存中获取,而不再需要访问原始的Web服务器,达到减少显示网页的延迟、提高用户访问网站速度的效果。一些Web代理也经常被用作内容过滤器(content filter),能够基于“黑名单”来阻止用户访问某些Web网站。相反,在互联网上还可以找到一些所谓的隧道代理服务器(tunneling proxy server)。这些服务器本质上执行相反的功能,以避免用户被内容过滤器封阻。

       SOCKS协议比HTTP代理使用更为广泛,可用于Web之外的其他服务。为使用SOCKS代理,应用程序在开发时必须添加SOCKS代理支持功能,同时通过配置应用程序能够获知代理的位置及其版本。一旦配置完成,客户端使用SOCKS协议请求代理进行网络连接,也可以选择性地进行DNS查找。

                                                                本文内容摘自《TCP/IP详解 卷1:协议(中文版)第2版》,有改动

猜你喜欢

转载自blog.csdn.net/qq_37653144/article/details/81517321