7.1引言 需要一种方法来控制互联网中网络流量的流向。今天,这项工作由防火墙来完成,它是一种能够限制所转发的流量类型的路由器。
随着部署防火墙来保护企业,可用的IPv4地址数量正面临枯竭的威胁这一问题变得越来越重要,除了IPv6之外,一种最为重要的解决机制就是网络地址转换(NAT)。采用NAT之后,互联网地址就不再需要是全球唯一的,因此可以在互联网的不同部分(称为地址范围)被重复使用。允许在多个范围中的同一地址重复使用,大大缓解了地址耗尽的问题。正如我们所看到的,NAT与防火墙相结合生成的复合设备,已经演变成用于连接终端用户的最为常见的路由器类型,包括连接家庭网络和小型企业网络至互联网的。
7.2防火墙 保证终端系统的软件是最新的和不存在任何错误需要承担巨大的管理压力,因此确保终端系统免受攻击的焦点转为如何利用防火墙来过滤部分流量以限制流量流向终端系统。
最为常用的两种防火墙是代理防火墙和包过滤防火墙。它们之间的主要区别是所操作的协议栈的层次及由此决定的IP地址和端口号的使用。包过滤防火墙是一个互联网路由器,能够丢弃符合(或者不符合)特定条件的数据包。从Internet客户端的角度来看,代理防火墙则是一个多宿主的服务器主机。也就是说,它是TCP和UDP传输关联的终点,通常不会在IP协议层中路由IP数据报。
7.2.1包过滤防火墙 包过滤防火墙作为互联网路由器,能够过滤(丢弃)一些网络流量,它们一般都可以配置为丢弃或转发数据包头中符合(或不符合)特定标准的数据包,这些标准称为过滤器。简单的过滤器包括网络层或传输层报头中各个部分的范围比较。最流行的过滤器包括IP地址或者选项、ICMP报文的类型,以根据数据包中端口号确定的各种UDP或TCP服务。正如我们将看到的,最简单的包过滤防火墙是无状态的,而更复杂的防火墙是有状态的。无状态的包过滤防火墙单独处理每一个数据报,而有状态的防火墙能够通过关联已经或者即将到达的数据包来推断流或者数据报的信息,即那些属于同一个传输关联的数据包或构成同一个IP数据报的IP分片。IP分片使得防火墙的工作变得更为复杂,无状态包过滤防火墙极易被其混淆。
包过滤防火墙是一个有着三个网络接口的互联网路由器:一个内接口、一个外接口和第三个“非军事区”(DMZ)接口。DMZ子网能够访问外联网或DMZ,其中部署的服务器可供互联网用户访问。网络管理员会安装过滤器或访问控制列表(ACL,ACL列出了是什么类型的数据包需要被丢弃或转发的基本政策)到防火墙中。通常情况下,这些过滤器将会全力拦截来自外网的恶意流量,但不会限制从内网到外网的流量。 外出规则(多数是允许的) 进来规则(多数是不允许的)
7.2.2代理防火墙 包过滤的防火墙作为一个路由器可以选择性地丢弃数据包。其他类型的防火墙,如代理防火墙,并不是真正意义上的互联网路由器。相反,它们本质上是运行一个或多个应用层网关(ALG)的主机,该主机拥有多个网络接口,能够在应用层中继两个链接/关联之间的特定类型的流量。它们通常不像路由器那样做IP转发,虽然现在已经有结合了各种功能的更复杂的代理防火墙。
在代理防火墙中,防火墙内的客户端通常会做特殊配置以便关联(或者链接)到代理防火墙,而不是连接到实际提供所需服务的真正的终端主机。(能够和代理防火墙以这种方式交互的应用需要提供相应的配置选项)。通常这些防火墙作为多宿主主机,即便具备IP转发的能力也是被禁用的。与包过滤防火墙一样,一种常见的配置是为外接口分配一个全局路由的IP地址,为内接口分配一个私有的IP地址。因此,代理防火墙支持使用私有地址范围。
代理防火墙作为一个多宿主的Internet主机,终止在应用层的TCP和UDP的连接。它不像一个传统的IP路由器,而更像一个ALG(应用层网关防火墙)。单个应用程序或代理为了其所支持的每个服务,必须具备和代理防火墙进行通信交互的能力。
虽然这种类型的防火墙是非常安全的,但它是以脆性和缺乏灵活性为代价的。
代理防火墙的两种最常见的形式是HTTP代理防火墙和SOCKS防火墙。第一种类型也称为Web代理,只能用于HTTP和HTTPS协议(Web),这些协议是非常普遍的,因此这些代理会被经常使用。
这些代理对于内网用户来说就像是Web服务器,对于被访问的外部网站来说就像是 Web客户端。这种代理往往也提供Web缓存功能。
一些Web代理也经常被用作内容过滤器,能够基于“黑名单”来阻止用户访问某些Web网站。相反,在互联网上还可以找到一些所谓的隧道代理服务器,这些服务器(例如psiphon和CGIProxy)本质上执行相反的功能,以避免用户被内容过滤器封阻。
SOCKS协议比HTTP代理访问使用更广泛,可用于Web之外的其他服务。目前正在使用的SOCKS有两个版本:版本4和版本5。
7.3网络地址转换
NAT本质上是一种允许在互联网的不同地方重复使用相同的IP地址集的机制。建立NAT的主要动机是正在急剧减少的有限IP地址空间。
NAT尽管很流行,但是存在几个缺点。最明显的是,需要做特殊配置才能使处于NAT内部的主机能够提供可供互联网访问的服务,因为互联网上的用户无法直接访问具备私有地址的主机。
NAT的工作原理就是重写通过路由器的数据包的识别信息。这种情况通常发生在数据传输的两个方向上,在这种最基本的形式中,NAT需要重写往一个方向传输的数据包的源IP地址,重写往另一个方向传输的数据包的目的IP地址。
大多数的NAT同时执行转换和包过滤,包过滤的标准取决于NAT的动态状态。
7.5配置包过滤防火墙和NAT NAT通常只需要很少的配置(除非端口转发正在使用),但是防火墙通常需要进行配置,有时它们需要大量的配置。大多数家庭网络中,同一台设备需要同时提供NAT、IP路由和防火墙等功能,并可能需要一些配置。虽然每个配置在逻辑上是独立的,但是配置文件、命令行界面、网页控件或其他网络管理工具有时会合并。
7.5.1防火墙规则 包过滤防火墙,必须给予一套说明匹配条件的指令来选择丢弃或者转发流量。现在配置一个路由器,网络管理员通常配置一个或多个ACL(访问控制列表)。每个ACL包含一个规则列表,其中每个规则通常包含模式匹配条件及其对应的动作。