本节书摘来自异步社区《Cisco ASA设备使用指南》一书中的第1章,第1.1节,作者【美】Jazib Frahim , Omar Santos更多章节内容可以访问云栖社区“异步社区”公众号查看
1.1 防火墙
Cisco ASA设备使用指南
对网络安全领域的专业人士来说,清晰理解防火墙及相关技术的重要性不言而喻。因为这些知识能够帮助网络工程师更加精确和高效地对网络进行配置和管理。防火墙这个词一般是描述位于可靠网络和不可靠网络之间的系统或者设备。
许多网络防火墙的解决方案都可以通过加强用户策略和应用策略的方式,来对各类安全威胁提供保护功能。这些解决方案可以提供日志记录功能,这一功能使安全管理员能够识别、观测、证实,并最终缓解这些安全威胁。
不仅如此,管理员还可以将很多应用程序安装在一个系统上,以针对某一台主机进行保护。这类应用程序称为个人防火墙。这一节内容将对网络防火墙和个人防火墙及它们的相关技术进行概述。
1.1.1 网络防火墙
基于网络的防火墙可以提供一系列重要特性来保障网络的边界安全。防火墙的主要任务就是根据预先明确配置好的策略及规则,来阻塞或放行试图进入网络的流量。这个用来允许或阻断流量的进程可能会包含以下方式。
简单的包过滤技术。
复杂的应用代理。
状态化监控系统。
网络地址转换。
1.包过滤技术
包过滤的目的非常简单,它通过定义能够穿越防火墙的流量,来控制去往特定网段的流量。包过滤技术一般会在OSI(开放系统互联)模型的传输层中监控入站流量。比如,包过滤技术能够对TCP(传输控制协议)或UDP(用户数据报协议)数据包进行分析,并将这些数据包与一系列预先配置好的规则进行比较,这些规则就称为访问控制列表(ACL)。它会对数据包的以下字段进行监控。
源地址。
目的地址。
源端口。
目的端口。
协议。
注释:
包过滤一般不会监控附加的3层和4层字段,比如序号(sequence number)、TCP控制标记(TCP control flag)、ACK字段等。
各类包过滤防火墙也可以对数据包头部的信息进行监控,并以此发现这个数据包是来自一条业已存在的连接还是新的连接。不过,简单的包过滤防火墙有很多局限和缺陷,如下所示。
它们所包含的ACL或规则列表有时会因过于庞大而难以管理。
它们会放过那些经过精心伪装的数据包,使其在未经授权的情况下就可以访问网络。有鉴于此,黑客可以将数据包的IP地址伪装成得到ACL授权的地址,使其可以顺利地访问受保护的网络。
很多应用都可以在任意协商的端口上建立起多条连接,这就会使得防火墙很难在连接完成之前就判断出这些应用会选用哪些端口。这类应用程序通常为多媒体应用,如RealAudio,QuickTime及其他视频流和音频流应用。包过滤技术无法理解这类应用所使用的上层协议,而且对这类协议进行支持也非常困难,因为ACL需要在包过滤防火墙上手动进行配置。
2.应用代理
应用代理,或称代理服务器,是指那些为私有网络或受保护网络中的客户端充当中介代理的设备。受保护网络中的客户端向应用代理发送连接请求,要求与不受保护的网络或Internet传输数据包。于是,应用代理就会代替内部客户端发送请求。大部分代理防火墙都工作在OSI模型的应用层。多数代理防火墙都可以对信息进行缓存,以提升网络通信的速度。因此,对于那些大量服务器都处于繁忙状态的网络来说,这个是一个十分关键的功能。除此之外,代理防火墙还可以对一些特定的Web服务器攻击进行保护,不过在大多数情况下,它们无法对Web应用提供任何的保护功能。应用代理的另一个缺点是它们的扩展性很差。因此在大型环境中,它们也就很难得到部署。
3.网络地址转换
很多3层设备都可以提供网络地址转换(NAT)服务。这些3层设备可以将内部主机的私有(或本地)IP地址转换为公网可路由(或全球)的地址。NAT通常属于防火墙的功能,不过,除了防火墙之外,像路由器、无线接入点(WAP)等也可以提供NAT功能。通过这个功能,防火墙可以对不受保护的网络隐藏内部的私有地址,而只将防火墙自己的地址或公共地址范围暴露给外部网络。因此,网络领域的专业人士可以将任意IP地址空间作为它们网络的私有IP地址。不过,最佳做法1仍然是使用专为私有地址保留的空间来作为内部地址空间(详见RFC 1918,“Address Allocation for Private Internets[私有网络地址分配]”)。表1-1所示为RFC 1918所指定的私有地址空间。
在设计网络时,对不同地址空间分别进行考量是十分必要的(比如,可配置的主机和子网)。与其在实施的过程中再对网络设计进行修改,还不如一开始就对网络进行精心地设计和筹划,这样反倒可以节省大量的时间。
提示:
白皮书《围绕安全性进行IP编址的方法》(A Security-Oriented Approach to IP Addressing)为网络地址的设计和筹划提供了很多提示。读者可通过以下链接对该白皮书进行浏览:
http://www.cisco.com/Web/about/security/intelligence/security-for-ip-addr.html。
4.端口地址转换
一般来说,防火墙都可以执行一种叫做端口地址转换(PAT)的技术。这个特性可以看作是NAT的一个子集,它能够通过监控数据包的4层信息,使多个内部受保护网络的设备共享同一个IP地址。这个地址一般来说是防火墙的公网地址,不过也可以将其配置为其他的公共IP地址。图1-1所示为PAT的工作方式。
如图1-1所示,“内部网络”中多台受保护的主机都配置上了网络10.10.10.0的地址,子网掩码是24位。ASA正在为这些内部主机执行PAT转换,也就是将地址10.10.10.x转换为ASA自己的地址(209.165.200.228)。在这个例子中,主机A向位于“外部”不受保护网络的Web服务器发送了一个TCP 80端口的数据包。ASA对请求数据包执行地址转换,将主机A原本的地址10.10.10.8转换为防火墙自己的地址。同时在向Web服务器转发请求时,随机选择一个不同的4层源端口。在本例中,TCP源端口由1024被修改为了1188。
5.静态转换
如果不受保护网络(外部网络)中的主机需要向NAT设备后面的特定主机发起新的连接,还有一种不同的方法,这种方法就是在公共(全局)IP地址和内部(本地)受保护设备的地址之间建立一对一的静态映射。比如,一台位于内部网络,并且拥有一个私有IP地址的Web服务器需要与未受保护网络或Internet中的主机进行通信时,就可以配置静态NAT。图1-2所示为静态NAT的工作方式。
在图1-2中,Web服务器地址(10.10.10.230)被静态转换为了外部网络的地址(在本例中为209.165.200.230)。因此,外部主机只要将流量定位在209.165.200.230,就可以向Web服务器发起连接了。而后,执行NAT的设备就会负责转换地址,并将请求发送给内部网络的Web服务器。
地址转换不仅是防火墙的技术。今天,各类低端网络设备(如SOHO[小型及家庭办公环境]路由器及无线接入点)也可以执行各种不同的NAT技术。
1.1.2 状态化监控防火墙
与简单的包过滤防火墙相比,状态化监控防火墙拥有很多优势。这类防火墙可以跟踪每一个通过其接口的数据包,查看其是否已经建立连接,以及该连接是否可靠。它们不仅可以监控数据包头部的信息,也可以监控载荷部分的应用层信息。由于这种防火墙会对数据包的载荷部分进行检查,因此,在这类防火墙上可以创建不同的规则,这些规则可以基于特定的载荷模式,来判断是放行还是阻止该数据包。状态化监控防火墙会监测连接的状态,并根据相关信息来维护一个数据库,这个数据库通常称为状态列表(State table)。连接的状态可以提供该连接的具体信息,比如该连接是否已建立(established),是否已关闭(closed),是否被重置(reset),或是否正在协商(negotiated)。这些机制可以为不同类型的网络攻击提供保护。
通过配置防火墙,可以将网络划分为多个部分(或区域),这些区域通常称为非军事化区域(DMZ)。这些区域可以为不同区域中的系统提供相应的安全保护,因而使这些系统拥有不同的安全级别和安全策略。DMZ有很多作用,比如,它们可以用来部署Web服务器集群,或者作为与某个商业合作伙伴的外部连接。图1-3所示为一个有2个DMZ区域的防火墙(在本例中为Cisco ASA)。
由于DMZ的存在,使Internet只能访问到内网中的那些可识别并且可管理的服务,因此,内网的设备和客户端就不容易暴露给外部。
在图1-3中,位于DMZ1的Web服务器可以从内部和Internet上的主机访问。Cisco ASA负责控制从DMZ 2外联网商业合作伙伴发起的访问。
注释:
在大型企业中,管理员可以在不同网段和DMZ中部署多防火墙策略。
1.1.3 深度数据包监控
当数据包穿越防火墙时,很多应用都需要对它们进行一些特殊处理,包括在数据包的负载中嵌入IP寻址信息,或通过动态分配的端口开放第二信道。高级防火墙及安全设备(如Cisco ASA、Cisco PIX防火墙及Cisco IOS防火墙)都能够提供应用监控机制来处理嵌入的寻址信息,使前面提到的应用及协议可以正常工作。通过应用监控机制,这些安全设备就可以分辨出动态分配的端口,并使特定连接中的数据能够在这些端口间进行交换。
有了深度数据包监控功能,防火墙就能够查看特定的7层负载,以应对安全威胁。比如,管理员可以通过配置Cisco ASA或Cisco PIX(运行7.0及后续版本的产品)使其不支持在HTTP协议之上传递P2P应用。管理员也可以配置这些设备来拒绝特定的FTP命令、HTTP content type(内容类型)以及其他的应用协议。
注释:
运行7.0及后续版本的Cisco ASA和Cisco PIX防火墙可以支持MPF(模块化策略框架),它能够以一种灵活的方式来针对特定流量配置应用监控及其他特性,其方法类似于在Cisco IOS操作系统上配置QoS。
1.1.4 个人防火墙
个人防火墙是指安装在终端设备或服务器上,用以保护这些设备免遭外部安全威胁及入侵的常用软件。个人防火墙这个术语通常意指控制访问客户端3层及4层信息的软件。如今,也有一些高端的软件不仅可以提供基本的个人防火墙特性,还能够基于系统中所安装的软件的行为,来对系统进行保护。Cisco安全代理(CSA)就是这种类型的软件,它提供的安全功能远比传统的个人防火墙健全,除了一般功能之外,它还可以提供诸如主机入侵防御功能,及针对间谍软件、病毒、蠕虫、木马和其他恶意软件的保护功能。
1原文为a best practice。这是工业领域的通用英文表达。然而,很多企业、行业都将其误译为“最佳实践”,即使在Cisco官方网站的链接中,这种误译也常有出现,究其原因,大概是因为“practice”一词“实践”的意项过于深入人心。然而,根据翻译原则,只有当“practice”一词作为不可数名词出现时,它的汉语对译中才有“实践”(英文译为“action rather than ideas”,强调行动)这一意项。但通过本文中该词组前的冠词就可以明显看出,“best practice”是可数名词,因此不能译为所谓“最佳实践”。实际上,这个词组的正确译法早已存在于《牛津高阶英汉双解词典(第6版)》第1343页中,即“最佳做法的准则”,其中“practice”一词的对应意项为“做法”(英文译为“an expected way in a particular organization or situation”,强调方式的选择)。译者认为,在翻译该词时,如果“最佳做法的准则”过于拗口,不符合中文表达习惯,那么只要将“practice”译为“做法”,同时译文中包含了“行业惯例”的含义,就可以视为优秀译文,也不必为了与字典保持一致而过分教条。但“实践”显然歪曲了这一词组的本旨。
鉴于本译法有别于官方网站,因此,在这里给出如上解释。——译者注