1.2 VPN定义
Cisco VPN完全配置指南
我在前面的小节中曾经提到,VPN可以用来处理某种类型的攻击。因此,问题是:什么是虚拟专用网(VPN)?我在计算机领域已经工作了近20年,总有人让我解释各种技术以及这些技术可以用来做什么。在安全方面,我最常被问到的问题是“什么是VPN?”我见过所有对“VPN是什么”的解释,如:
它是一个加密的隧道;
它使用IPSec、GRE、PPTP、SSL、L2TP或者MPLS(在本章后面介绍);
它加密数据;
它保护通过Internet的流量;
它保护您的数据免遭黑客的攻击。
就像您所看到的,许多人对什么是VPN都有不同的看法或理解。例如,如果您在Internet上搜寻术语VPN,您会很容易地找到许多不同的、有时类似有时矛盾的定义。例如,在www.webopedia.com ,关于VPN的定义是:“一种网络,它是通过公网线路来连接节点而构建的。例如,有一些系统,它允许用户使用Internet作为介质来建立网络传输数据。这些系统使用加密和其他的安全机制来确保只有授权的用户可以访问网络,而且数据不能被截获。”
1.2.1 VPN描述
对我来说,webopedia的定义对于什么是VPN产生了更大的困惑。为了消除这种困惑,我将讨论VPN实际是什么和VPN的不同的归类。我会接着讨论某些不同类型的VPN的实施。从最简单的角度来说,VPN就是一种连接,通常是被保护的,位于两个通常没有必要直连的实体之间。这两个实体也可以通过点对点的链路直接连接,但是我们通常会看到它们会相隔超过一跳或者通过网络隔开。术语“实体”可以指一台特定的设备或者一个特定的网络(多台设备)。连接,在许多情况下,跨过一个公网;然而,VPN也可以很容易地达到内部使用的目的。
在我给VPN下的定义中,“受保护”一词需要稍微解释一下。许多人认为这意味着加密(保护流量防止窃听攻击),或者那个数据包还没有被损害(对于中间人攻击)。所有的这些说法通常都是正确的;然而,一个好的VPN的解决方案将会处理下面的许多(如果不是全部的)问题:
通过使用加密技术,例如RC-4、DES、3DES和AES来防止数据被窃听。
防止数据包被损坏是通过使用数据包完整性的散列函数,例如MD5和SHA来实现的。
通过使用个体认证机制来防止中间人攻击,例如预共享密钥或者数字证书。
防止回放攻击是通过在传输被保护的数据时使用序列号来实现的。
定义机制来规定数据是如何被封装和保护的,而且被保护的流量是如何在设备之间传输的。
定义什么样的流量实际上需要被保护。
就像您看到的,VPN负责所有种类的功能。
注意: 当然每种VPN实现方案并非都包括所有这些组件,也并非都能像其他方法那样安全地实现这些组件。连接是如何建立的,如何被保护的,如何被维护的以及如何被拆除的,这些都随着VPN解决方案而各不相同。因此,使用您公司的安全策略来决定什么样的VPN技术最适合您的特定情况这一点非常重要。在某些情况下,通常会看到在同一网络上会部署不止一个的VPN解决方案。
1.2.2 VPN连接模式
在我讨论4种VPN的通常类型和3种VPN分类之前,我首先要讨论两种基本类型的连接模式,它们用于在设备之间传输数据:
隧道模式;
传输模式。
如果您以前用过Internet协议安全(IPSec),您可能非常熟悉这两个术语。其他类型的VPN可能使用不同的术语来描述这两种连接模式,但自从我使用IPSec以来,每当我讨论VPN时,我更喜欢用IPSec的术语。
这两种模式都定义了在两台实体设备之间传输被保护的数据时基本的封装过程。我常看到人们使用“隧道”来描述这个过程,然而,我不喜欢用隧道这个词,因为对于VPN来说,它可能有其他的含义。因此,我喜欢用术语“封装”来描述数据是如何在两个VPN实体之间传输的。下面两个小节将会讨论这两种连接模式。
一、传输模式
传输模式连接用于在设备的真正源和目标IP地址之间传输数据时使用。图1-3解释了传输模式的使用。在这个例子中,网络管理员很担心从公司办公室的PIX安全设备到公司办公室内部的系统日志服务器之间发送的系统日志消息的安全性。网络管理员决定使用VPN来保护系统日志消息。
因为这是一种在实际传输数据的设备之间的VPN连接,所以采用了一种传输模式的连接。在传输模式的连接中,实际的用户数据(UDP段含有系统日志的信息)被封装在一个VPN数据包中。
图1-4显示了一个在传输模式中使用封装过程的例子。在这个例子中,具有系统日志数据的PIX UDP段。PIX将UDP段封装在VPN的数据包或者段里面。VPN封装包含的信息将帮助目标设备确认被保护的信息(如果使用了加密,可能会解密)。VPN信息接着会封装进一个IP数据包里,而源地址是PIX,目标设备是系统日志服务器。
注意: 在传输模式中,如果VPN保护的数据包被窃听攻击所检查,攻击者将会知道通信中的实际源和目标设备。当然,如果您正在使用加密作为VPN的一种保护方法,攻击者将不能解密在VPN设备之间传输的实际的负荷(在本例中,是系统日志数据)。
二、隧道模式
传输模式的一种限制是它不具备很好的扩展性,因为保护是基于每一台设备的。图1-3解释了一种情况,在这里传输模式不是一种很好的VPN连接方法。在这个例子中,假设在区域办公室有10台设备需要和总部办公室的10台设备通信,并且进一步假设,每一个站点内的10台设备都需要和远程站点内的10台设备通信。考虑到这种情况,您需要在每一台设备上建立9个VPN连接,而每一个站点有10台设备,这将需要180个连接。换句话说,当您建立这个场景的时候,您会将自己累垮。
因此,当您有许多设备在两个不同的区域需要以安全的方式互相通信时,您应当使用隧道模式,而不是传输模式。在隧道模式中,实际的源和目标设备通常不保护流量,相反,某些中间设备用于保护这些流量。从刚才的例子看,在总部办公室和区域办公室的设备需要保护流量,每一个位置的两台路由器可以负责VPN的保护。代表其他设备提供VPN保护的设备通常被称为VPN网关。
我将通过一个例子来解释隧道模式是如何工作的。在这个例子中,本地设备将建立一个正常的IP数据包,并且将这个数据包转发到本地的VPN网关。假设在区域办公室的PIX(在图1-3中显示)需要发送系统日志消息给位于总部办公室的系统日志服务器,在这里,在两个地点的边界路由器正在执行VPN网关的功能。
图1-5显示了一个使用封装过程的例子。在这个图中,区域的PIX产生了一个系统日志信息,把它封装到一个UDP中,并放入IP数据包,这个IP数据包里的源地址是PIX的本地地址,目标地址是总部日志服务器的IP地址。当区域路由器/VPN网关收到区域PIX的系统日志IP数据包后,VPN网关会封装这个带有VPN保护信息的数据包,可能是加密原始的整个PIX的数据包。下一步,VPN网关将这个信息放入到另一个IP数据包中,在这里,数据包的源地址是区域办公室路由器的IP地址,目标地址是总部办公室路由器的VPN网关(在本例中,是边界路由器)。一旦总部路由器收到这个被保护的数据包,它会验证保护并且删除它(如果您正在使用加密保护数据包,总部的VPN网关将解密数据包)。系统日志服务器接着会收到原始的IP数据包,而并不知道(或者关心)该数据包实际上从区域PIX设备到系统日志服务器一直是被保护的。
考虑到这种连接模式的过程,隧道模式提供了一些比传输模式优越的特性,如下所示。
提供了扩展性—您可以选择一台更合适的设备来执行保护过程,从您的设备上卸载了CPU消耗多的保护过程。
允许灵活性—当您在VPN网关后添加一台新的设备来保护从该设备发出的流量时,您通常不需要对您的VPN配置做任何变化。
隐藏了通信—在VPN网关设备之间执行网络上窃听攻击的攻击者知道流量是在VPN网关之间被保护的,但是没有办法知道VPN网关是否是此传输的真正的源和目标设备,或者这个数据是否已被其他设备传输。
使用私有地址—真正的源和目标设备可以使用公开的或者专用的地址,这是因为它们被VPN网关设备封装在另外一个数据包里。
使用现有的安全策略—因为设备是用其实际的IP地址与其他设备进行通信的,您通常不需要改变在您的防火墙和数据包过滤设备上已定义的任何内部的安全策略。
1.2.3 VPN类型
总的来说,VPN类型描述了实际参与VPN连接的实体的类型。有4种常见的VPN类型:
站点到站点VPN;
远程访问VPN;
防火墙VPN;
用户对用户VPN。
在下面小节中我将使用图1-3来解释4种VPN类型。
一、站点到站点VPN
站点到站点VPN在VPN网关之间使用隧道模式连接来保护两个或者更多的站点或者地点之间的流量。站点到站点的连接通常被称为局域网到局域网连接(L2L)。使用L2L VPN,在一个地点的中心设备提供了对站点之间流量的保护。这种保护过程,因此也包括位于两台VPN设备之间的传输网络,对两个站点的终端用户的设备来说是透明的。
关于何种类型的设备可以承担VPN网关的角色,Cisco有下面这些设备可供选择:
VPN 3000系列集中器;
具有VPN软件的基于IOS的路由器;
PIX和ASA安全设备。
在图1-3中,为了建立一个区域办公室和总部办公室之间的保护连接,您应当使用下面的这些配置:
在总部办公室,VPN网关设备应当是边界路由器、PIX,或者是VPN集中器;
在区域办公室,VPN网关设备应当是边界路由器或者是PIX。
注意:Cisco通常建议您用路由器作为VPN L2L的解决方案;然而,这是一句很笼统的话,在做出这个决定之前还应考虑其他的因素。就像您在整本书中看到的,每种类型的设备都有好处和缺点。例如,这里就是一些与其他设备相比,Cisco产品的基本优点:
IOS路由器—有先进的QoS、GRE隧道、路由选择以及扩展和先进的VPN L2L能力。
Cisco VPN 3000集中器**—易于建立和故障诊断与排除。
PIX安全设备防火墙**—有先进的防火墙和安全特性,包括有状态过滤、应用程序过滤和先进的地址转换能力。
二、远程访问VPN
远程访问VPN通常用于一台单用户设备,例如PC或者一个小型家用办公室(SOHO),一个硬件客户端(一个Cisco的VPN 3002硬件客户端,低端的PIX设备或者低端的基于IOS的路由器)和VPN网关设备之间的低带宽或者宽带连接的应用。远程访问VPN通常使用隧道模式作为连接模式。首先,这个看起来很奇怪,因为一台设备是VPN网关设备,另外一台不是。然而,如果您考虑有关传输连接模式是如何工作的,在这种模式中,被保护的数据是在真正的源和目标设备之间传输的,就会认为一个远程访问连接并不十分适用这种模型。使用远程访问连接,流量需要从源到某些中间设备之间被保护,它可以验证被保护的信息(并且如果加密了,可以解密)。真正的目标将会收到未保护的信息。要做到这一点,就要使用隧道模式。
使用远程访问,VPN端点或者客户端,连接到VPN网关将需要两个IP地址:一个是它自己的NIC地址;另外一个是内部地址,这个地址通常被称为虚拟的或者逻辑地址或者被分配的IP地址。
图1-6解释了一个关于远程访问连接的例子。在这个例子中,一位电缆调制解调器用户从家里正在使用一台PC通过一个VPN网关,即VPN3000集中器连接到总部办公室。ISP使用DHCP给在家里的PC用户的网卡分配一个IP地址。需要第二个地址与总部办公室需要被保护的设备通信;这是一个内部的地址,它有时可以由用户手动分配,或者更通常的是,在VPN会话建立时,从VPN网关获取的。通常,这个IP地址来自一个中心站点的DHCP服务器,或者一个本地定义的地址池。当远程访问客户想要发送信息给在总部办公室VPN网关后的设备时,例如一台Web服务器,远程访问客户建立一个IP数据包,这个数据包的源地址是内部地址,而目标地址是总部办公室网络设备的地址。这个数据包接着使用VPN信息被封装和保护,并且添加一个外部的IP头。在外部的IP头中,源地址是远程访问用户的ISP分配的NIC地址,而目标地址是VPN网关。VPN网关一旦收到被保护的数据包,就会验证这个数据包,解密封装的数据包,如果需要的话,会将这个封装的IP数据包转发给总部的内部设备。
因为这个内部地址是被保护的(那是因为您使用的是隧道模式),您可以很容易地使得远程访问的客户看起来就像是总部办公室网络的扩展。例如,如果总部办公室正在使用地址空间172.16.0.0/16,如图1-6所示,您可以使得客户使用一个地址池中的内部地址,如172.16.254.0/24,让客户看起来好像正在连接到一个172.16.0.0/16的网络中。从总部办公室设备的角度来看,看起来好像远程访问用户正在连接到一个172.16.0.0/16网络中。然而,实际上,客户和总部办公室之间可能隔着许多跳,如图6-1所示。
注意: Cisco建议对于远程访问连接,您应当使用Cisco VPN 3000系列的集中器来作为VPN网关产品。当做远程访问VPN网关解决方案时,我们把3000系列集中器和Cisco路由器或者PIX或ASA安全设备做一个比较,在集中器上建立和故障诊断与排除远程访问连接比其他两种产品容易得。然而,如果我只有一小部分用户需要远程访问连接,而我已经有PIX或者ASA设备或是IDS路由器已经安装到总部办公室,我将会使用现有的设备,而不是购买一台3000的集中器。一旦用户的数量开始增长到一个很高的值,我就必须认真考虑购买一台集中器。在其他时候,我需要考虑用路由器而不是集中器进行远程访问连接的原因可能是我需要先进的QoS能力,而这是集中器所缺乏的特性。
三、防火墙VPN
一个防火墙VPN本质上是一个带有增强的安全和防火墙功能的L2L或者远程访问VPN。防火墙VPN通常用于VPN连接的一端基于公司的安全策略,需要增强的安全和防火墙功能,并且它们管理或者拥有在目前网络中已经到位的安全解决方案。
由防火墙VPN执行的这些安全或者防火墙的功能包括:
有状态防火墙;
应用程序层过滤;
先进的地址转换策略;
与地址有关的问题较多的协议,例如多媒体和语音。
除了上述所列功能,一个防火墙VPN具有和L2L或者远程访问VPN相同的特性。从我的观点来看,我不喜欢将防火墙VPN作为一个单独的VPN分类;然而,Cisco在讨论VPN类型时通常使用这个术语。如果您正在部署Cisco的设备来实施防火墙VPN,VPN网关设备通常可能是PIX或ASA安全设备。
四、用户到用户VPN
一个用户到用户的VPN类型本质上是一个在两台设备之间的传输模式的VPN连接。这两台设备可以是PIX设备和一台系统日志服务器、一台路由器和一台TFTP服务器、一个使用Telnet访问Cisco路由器的用户,或者许多其他的连接对等体。
注意: Cisco官方并不认为用户到用户是一种VPN类型,但是自从我使用这种模式来保护特定设备之间的特定类型的流量以来,我已经把这种类型划归为现实世界中可以见到的VPN类型了。
1.2.4 VPN分类
有3种基本类型的VPN分类,这种分类说明了VPN可以用在哪里:
Intranet;
Extranet;
Internet。
图1-3中解释了这些术语和VPN一起使用时的含义。
一、Intranet
一个intranet VPN通过本公司的网络架构连接来自同公司的资源。这里是intranet VPN连接的一些简单的例子:
传输模式连接一个公司内部的网络架构,例如两台设备之间的VPN(路由器发送流量给一台系统日志服务器,一台PIX设备将它的配置文件备份到一台TFTP服务器,在一台PC上的用户使用Telnet登录到一台Catalyst 3550交换机上,等等)。
隧道模式在一个公司的网络架构的不同地点之间进行连接。例如通过专用的帧中继或者ATM网络在两个办公场所之间进行连接。
二、Extranet
一个extranet VPN将一个公司的资源和另外一个公司的资源进行连接,例如一个商业合作伙伴。这些通常都是L2L连接,但是也可以是其他的类型。一个关于extranet的例子就是一个公司外包了它的帮助桌面功能,并且建立了一个VPN来提供从它的总部办公室到外包公司的VPN连接。
三、Internet
一个Internet VPN使用公网作为骨干网在设备之间传输VPN的流量。例如,您可以使用Internet,它是一个公共的网络,来将两个站点连接在一起(L2L连接),或者家庭办公用户使用他们的本地ISP来建立到总部网络的VPN连接(远程访问连接)。
注意: 请记住,所有4种VPN类型都由这3种VPN分类支持。至于您应当使用那种类型,这是基于您的访问需求和您的公司对安全策略的要求。