广域网技术之VPN

VPN(Virtual Private Network)即虚拟专用网络。虚拟专用网络可以把它理解成是虚拟出来的企业内部专线。它可以通过特殊的加密的通讯协议在连接Internet上的位于不同地方的两个或者多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是他并不需要真正的去铺设光缆之类的物理线路。这就好比去电信局申请专线,但是不用给网络建立虚拟私有网,虚拟专用网(VPN)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业公司分支机构、商业伙伴及供应商公司的内部网建立可信的安全连接,并保证数据的安全传输。因此VPN称为虚拟专用网络,其实质上就是利用加密技术在公网上封装出一个数据通讯隧道,有了VPN技术,用户无论在外地出差还是在家办公,只要能上互联网就能利用VPN访问内网资源,这就是VPN在企业中应用得如此广泛的原因,隧道技术是VPN的基本技术,类似于点到点的连接技术。它的基本过程就是在数据进入源VPN网关后,将数据“封装”后通过公网传输到目的VPN网关后再对数据“解封装”。“封装/解封装”过程本身就可以为原始报文提供安全防护功能,所以被封装的数据包在互联网上传递时所经过的逻辑路径被称为“隧道”。不同的VPN技术封装/解封装的过程完全不同。VPN可以分为远程访问VPN、站点到站点的VPN两种。

 

第一种远程访问的VPN:
1、PPTP:点对点隧道协议,是由包括微软和3Com等公司组成的PPTP论坛开发的一种点对点隧道协议,基于拨号的PPP协议使用PAP或CHAP之类的加密算法,或者使用Microsoft的点对点加密算法MPPE。PPTP将PPP框架封装在IP数据报中便通过网络传输。PPTP使用TCP联机进行通道管理,并使用Generic Routing Encapsulation(GRE)的修改版本来封装信道数据之PPP框架。封装之后PPP框架可以加密、压缩或者两者皆使用。虚拟专用网客户端必须使用MS-CHAP v2或者EAP-TLS验证通讯协议,次啊能够加密PPP框架的承载。PPTP支持通过公共网络(例如Internet)建立按需的、多协议的、虚拟专用网络、PPTP只支持IP 作为传输协议,PPTP允许加密IP 通讯,然后再要跨越公司IP 网络或公共IP网络(如Internet)发送的IP头中对其进行封装。PPTP只能再两端点间建立单一隧道,可以再跟IPSec结合使用。
2、L2TP:第2层隧道协议是IETF基于L2F(Cisco的第二层转发协议)开发的PPTP的后续版本。是一种工业标准Internet隧道协议,其可以为跨越面向数据包的媒体发送点到点协议(PPP)框架提供封装。PPTP和L2TP都使用PPP协议对数据进行封装,然后添加附加包头用于数据再互联网络上的传输。和PPTP不同的是PPTP只能在两端点之间建立单一隧道。L2TP支持在两端点间使用多隧道,而且Microsoft所执行的L2TP不使用MPPE来加密PPP数据报,L2TP仰赖传输模式中的因特网通讯协议安全性(IPSec)来进行加密服务。L2TP和IPSec的组合即所谓L2TP/IPSec。用户可以针对不同的服务质量创建不同的隧道。L2TP可以提供隧道验证,而PPTP则不支持隧道验证。PPTP要求换脸网络为IP网络。L2TP只要求隧道媒介提供面向数据包的点对点的连接,L2TP可以在IP(使用UDP),帧中继永久虚拟电路(PVCs),X.25虚拟电路(VCs)或ATMVCs网络上使用。L2TP主要由LAC(L2TPAccessConcentrator)和LNS(L2TPNetworkServer)构成,LAC(L2TP访问集中器)支持客户端的L2TP,他用于发起呼叫,接收呼叫和建立隧道;LNS(L2TP网络服务器)是所有隧道的终点。在传统的PPP连接中,用户拨号连接的终点是LAC,L2TP使得PPP协议的终点延伸到LNS。L2TP的建立过程是:
2a、用户通过公共电话网或ISDN拨号至本地的接入服务器LAC;LAC接收呼叫并进行基本的辨别,这一过程可以采用几种标准,如域名、呼叫线路识别(CLID)或拨号ID业务(DNIS)等。
2b、当用户被确认为合法企业用户时,就建立一个通向LNS的拨号VPN隧道。
2c、企业内部的安全服务器如TACACS+、RADIUS鉴定拨号用户。
2d、LNS与远程用户交换PPP信息,分配IP地址。LNS可采用企业专用地址(未注册的IP地址)或服务提供商的地址空间分配IP地址。因为内部源IP地址与目的地IP地址实际上都通过服务提供商的IP网络在PPP信息包内传送,企业专用地址对提供者的网络是透明的。
2e、端到端的数据从拨号用户传送到LNS。在实际应用中,LAC将拨号用户的PPP帧封装后,传送到LNS,LNS去掉封装包头,得到PPP帧,再去掉PPP帧头,得到网络层数据包。
3、Easy VPN:又名EzVPN,是Cisco专用VPN技术,Cisco EzVPN部署分为服务端和客户端两部分。Cisco EzVPN是i一种远程访问VPN解决方案,它能够为在PC上安装的软件客户端提供远程接入服务,还能够为Cisco的网络设备提供EzVPN硬件客户端VPN服务(即Site to Site VPN)。EzVPN提供了中心的VPN管理,动态的策略分发,降低了远程访问VPN部署的复杂程度,并且增加了扩展和灵活性。注意EzVPN4并不支持路由和组播。
3a、Easy VPN特点介绍:
3aa、Easy VPN是Cisco私有技术,只能运用在Cisco设备之间。
3ab、Easy VPN适用于中心站点固定IP地址,客户端动态IP地址的环境,并且客户端身后网络环境需要尽可能简单。
3ac、Easy VPN在中心站点配置策略,并且当客户连接的时候推送给客户,降低了分支站点的管理压力。
3b、EzVPN硬件客户端的三种操作模式:(也就是实现站点到站点VPN的方式)、EzVPN硬件客户端的三种操作模式:(也就是实现站点到站点VPN的方式)
3ba、Client Mode(也叫做PAT模式):中心站点VPN网关通过MODE-CFG技术,推送地址池地址给分支站点的EzVPN硬件客户端,client获取地址,分支站点的EzVPN硬件客户端PAT转换内部网络到获取地址池的地址,然后访问中心站点,由于分支站点通过PAT隐藏了身后网络,所以中心站点无法主动发起向分支站点的访问。
3bb、Network Extension Plus+ Mode(网络扩展加模式):类似于Network Extension Mode,只是客户会获取一个用于网管的目的IP地址。
4、Virtual Tunnel Interface(VTI)技术。VTI技术一共分为两大部分SVTI和DVTI,SVTI运用于站点到站点VPN,在ISO 12.4以前,只能做GRE over IPSec,12.4之后推荐使用SVTI(Virtual Tunnel Interface),SVTI比GRE over IPSec节省了GRE头部的4个字节,能承载更多的数据。它与ISAKAMP Profile结合使用可替代传统静态crypto map的配置,并且创建一个虚拟隧道接口,我们可以在这个虚拟隧道接口上对VPN流量运用各种网络技术,例如:ISO防火墙、QoS、NAT,动态路由协议等等。ISAKMP Profile技术为IKE第一阶段协商提供了一种新的配置模型,它主要的作用就是映射第一阶段的ISAKMP参数到一个IPSec隧道(主要任务是映射第一阶段的身份认证信息到第二阶段策略),ISAKMP Profile对于一个设备运行多种类型VPN的时候特别有用。DVTI技术与SVTI技术类似,只是DVTI技术运用于远程访问的EzVPN,DVTI的特点如下。
4a、替代传统的Dynamic map配置。
4b、支持加密单播与组播。
4c、支持QoS、FW、NetFlow、ACL、NAT和VRF技术(注意不支持在DVTI接口上的动态路由协议)。
4d、支持RADIUS服务器推送基于用户和组的策略。
4e、克隆虚拟模板(virtual template)配置,动态创建虚拟访问接口(virtual access interfaces)。
5、SSL VPN(SSTP)。SSL(安全套接层)协议是一种在Internet上保证发送信息安全的通用协议,采用B/S结构(Browser/Server,浏览器/服务器模式)。它处在应用层,SSL用公钥加密通过SSL连接传输的数据来工作。SSL协议指定了在应用程序协议和TCP/IP之间进行数据交换的安全机制,为TCP/IP连接提供数据加密、服务器认证以及可选择的客户机认证。SSL协议可分为两层:SSL记录协议(SSL Record PROtocol):它建立了可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。SSL独立于应用,因此任何一个应用程序都可以享受他的去安全性而不必理会执行细节。SSL置身于网络结构体系的传输层和应用层之间。此外,SSL本身就被几乎所有Web浏览器支持。这意味着客户端不需要为了支持SSL连接安装额外的软件。这两个特征就是SSL能应用于VPN的关键点。通常SSL VPN分为以下几类:
5a、Clientless SSL VPN科一进行网关地址或者协议的转换以及内容的解析和重写。支持基于浏览器的应用服务,允许用户访问Web应用程序,Outlook Web Access等。例如公司内部启用了http或https的资源,远程用户通过VPN接入到内部网络后,就可以直接通过浏览器对制定的http或https资源进行访问。Clientless SSL VPN还支持Common Internet File System(CIFS),允许用户浏览共享文件夹。
5b、Thin-Client SSl VPN(port-forwarding Java applet)使用Thin、Client SSL VPN时,远程用户必须下载一个基于JAVA的小应用程序。通过JAVA的小应用程序可以建立端口映像表,使用户可以访问使用静态端口的TCP应用服务,例如:POP3、SMTP、IMAP、SSH、Telnet等。Thin-Client SSL VPN不支持基于UDP协议的应用服务。使用Thin-Client SSL VPN连接服务器时,用户需要本地计算机的管理员特权,因为对文件的修改是在本地机器中进行。Thin-Client SSL VPN不能为使用动态端口的应用提供支持,如FTP服务。
5c、SSL VPN Client(SVC-Tunnel Mode)在这种技术中,用户的计算机需要下载Java或者ActiveX程序,一个小的客户端软件(大概500kB)。SSL VPN Client支持所有基于IP 流量的应用程序,允许对公司内部指定的资源进行安全访问。客户端软件可以永久地被下载到远程工作站,也可以在安全会话结束后就被删除。远程用户使用的SSL隧道在network(IP)layer移动数据。因此,隧道模式支持大多数基于IP 的应用,支持多种流行的企业应用。

 

第二种站点到站点VPN:
1、LAN to LAN IPSec VPN:站点到站点VPN连接是一种请求拨号连接,它使用VPN隧道协议(PPTP或L2TP/IPSec)来连接不同的专用网络,连接两端的每个VPN服务器提供一个达到自己所属本地专用网络的路由连接。和远程访问VPN将一台单独的计算机连接到网络中不同,站点到站点VPN连接整个网络。当两台VPN服务器创建站点到站点VPN连接后,连接两端的VPN所属的专用网络均可以访问另一端的远程网络,就像访问本地网络一样。两端的加密和验证由IPSec完成。不支持组播和广播。每一对peers之间需要建立独立的IKE/IPsec通道,两端需要固定IP。
2、GRE over IPSec VPN:GRE(Generic Routing Encapsulation)即通用路由封装协议,是对某些网络层协议(如IP和IPX)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输。GRE是VPN(Virtual Private Network)的第三层隧道协议,即在协议层之间采用一种被称之为Tunnel(隧道)的技术。它规定了怎样用一种网络层协议去封装另一种网络层协议的方法。GRE的隧道由两端的源IP地址和目的IP地址来定义,它允许用户使用IP封装IP、IPX、AppleTalk,并支持全部的路由协议如RIP、OSPF、IGRP、EIGRP。通过GRE,用户可以利用公共IP网络连接IPX网络、AppleTalk网络,还可以使用保留地址进行网络互连,或者对公网隐藏企业网的IP地址。GRE在包头中含了协议类型,这用于标明乘客协议类型;校验和包括了GRE的包头和完整的乘客协议与数据;密钥用于接收端验证接收的数据;序列号用于接收端数据包的排序和差错控制;路由用于本数据包的路由。GRE只提供了数据包的封装,他并没有加密功能来防止网络侦听和攻击。所以在实际环境中它场合IPSec在一起使用,由IPSec提供用户数据加密,从而给用户提供更好的安全性。GRE是一个标准的协议,支持多种协议和多播,能够用来创建弹性的VPN,支持多点隧道,能够实施QoS。两端需要固定IP。
3、DMVPN(动态多点VPN):是通过多点GRE(mGRE)和下一跳解析协议(NHRP)与IPSec相结合实现的。在DMVPN解决方案中,利用IPSec实现加密功能,利用GRE或多点GRE(mGRE)建立隧道,利用NHRP解决分支节点的动态地址问题。DMRP只要求中心节点必须申请静态的公共IP地址。(如果用DNS的话,中心节点也可以动态了)GRE隧道支持多播或广播(multicast/broadcast)IP包在隧道内传输。因此,DMVPN网络支持在IPSec和mGRE隧道之上运行动态路由协议。需要指出的是,NHRP必须被配置为动态多播映射,这样,当分支路由器在NHRP服务器(中心路由器)上注册单播影像地址时,NHRP会同时为这个分支路由器建立一个多播/广播(multicast/broadcast)映射。DMVPN网络中,中心路由器上没有关于分支的GRE或IPSec配置信息,而在分支路由器上则必须依据中心路由器的公网IP地址和NHRP协议来配置GRE隧道。当分支路由器加电启动时,由ISP处通过DHCP获取IP地址,并自动建立IPSec加密的GRE隧道,通过NHRP向中心路由器注册自己的外网端口IP地址。分支到中心(Spoke to Hub)的隧道一旦建立便持续存在,但是各分支之间并不需要直接配置持续的隧道。当一个分支需要向另一个分支传递数据包时,它利用NHRP来动态获取目的分支的IP地址。该过程中,中心路由器充当NHRP服务器的角色,响应NHRP请求,向源分支提供目标分支的公网地址。于是,两个分支之间通过mGRE端口动态建立IPSec隧道,进行数据传输。该隧道在预定义的周期之后将自动拆除。分支路由器的路由表中到达其它分支子网的“下一跳”地址仍是中心路由器的隧道端口地址,而不是其它分支路由器的隧道端口地址。如此一来,分支与分支之间的数据传输还是会通过中心路由器,要解决这一问题,必须在中心路由器上设置为在mGRE隧道端口上宣告某一分支之王的可达路由时“下一跳”地址是该分支路由器的隧道端口地址,而非中心路由器的地址。在RIP路由器协议中,必须关闭水平分割(split horizon)功能;在EIGRP路由协议中需要关闭水平分割和no ip next-hop-self eigrp;在OSPF中需要配置为广播型而不要使用点到多点型。
4、MPLS VPN:指采用MPLS(多协议标记转换)技术在骨干的宽带IP网络上构建企业IP专网,实现跨地域、安全、高速、可靠的数据、语音、图像多业务通信,并结合差别服务、流量工程等相关技术,将公共网可靠的性能、良好的扩展性、丰富的功能与专用网的安全、灵活、搞笑结合在一起。MPLS VPN的网络采用标签交换,一个标签对应一个用户数据流,非常易于用户之间数据的隔离,利用区分服务体系可以轻易地解决困扰传统IP 网络的QoS/CoS问题,MPLS自身提供流量工程的能力,可以最大限度地优化配置网络资源,自动快速修复网络故障,提供高可用性和高可靠性。
5、GET VPN(群组加密传输虚拟专网):是一种新型的VPN,专门用于加密广域网网上传输的数据。该网络能预测用户对点到点隧道的需求,使分布式网络能够将企业VPN扩展到几千个站点,同时支持对确保语音和视频质量而言至关重要的网络只能,如服务质量、路由和组播。由于GET VPN的主要应用运行在基于多协议标签交换的网络上,GET VPN的固有灵活性使关注安全性的企业能够通过电信运营商的广域网络管理其网络安全性,或者将加密服务委托给他们的供应商,主要与MPLS VPN结合使用。
VPN的安全保障IPSec:IPSec(Internet Protocol Sercurity)是安全联网的长期方向。它通过端对端的安全性来提供主动的保护以防止专用网络与Internet的攻击。在通信中,只有发送方和接收方才是唯一必须了解IPSec保护的计算机。IPSec提供了一种能力,以保护工作组、局域网计算机、域客户端和服务器、分支机构(物理上为远程机构)、Extranet以及漫游客户端之间的通信。IPSec协议工作在OSI模型的第三层,使其在单独使用时适于保护基于TCP或UDP的协议(如安全套子层[SSL]就不能保护UDP层的通信流)。这就意味着,与传输层或更高层的协议相比,IPSec协议必须处理可靠性和分片。IPSec协议不是一个单独的协议,它给出了应用于IP层网络数据安全的一整套体系结构,包括网络认证协议Authentication Header(AH)、封装网络载荷协议Encapsulating Security Payload(ESP)、密钥管理协议Internet Key Entrance(IKE)和用于网络认证及加密的一些算法等。这些协议用于提供数据认证、数据完整性和加密性三种保护形式。AH和ESP都可以提供认证服务,但AH提供的认证服务要强于ESP。二IKE主要是对密钥进行交换管理,对算法、协议和密钥3各方面进行协商。
IPsec规定了如何在对等层之间选择安全协议、确定安全算法和密钥交换,向上提供了访问控制、数据源认证、数据加密等网络安全服务。

 

IPsec的安全特性主要有:
(1)不可否认性。可以证实消息发送方是唯一可能的发送者,发送者不能否认发送过消息。“不可否认性”是采用公钥技术的一个特征,当使用公钥技术时,发送方用私钥产生一个数字签名随消息一起发送,接收方用发送者的公钥来验证数字签名。由于在理论上只有发送者才唯一拥有私钥,也只有发送者才能产生该数字签名,所以只要数字签名通过验证,发送者就不能否认曾发送过该消息。但“不可否认性”不是基于认证的共享密钥技术特征,因为在基于认证的共享密钥技术中,发送方和接收方掌握相同的密钥。
(2)反回放性。“反回放”确保每一个IP包的唯一性,保证信息万一被截取复制后,不能再被重新利用、重新传输回目的地址。该特性可以防止攻击者截取破译信息后,再用相同的信息包冒取非法访问权(即使这种冒取行为发生在数月之后)。
(3)数据完整性。防止传输过程中数据被篡改,确保发出的数据和接收的数据的一致性。IPSec利用Hash函数为每个数据包产生一个加密检查和,接收方再打开包前先计算检查和,若包遭篡改导致检查和不相符,数据包即被丢弃。
(4)数据可靠性。(加密)在传输前,对数据进行加密,可以保证在传输过程中,即使数据包遭截取,信息页无法被读。该特性在IPSec中为可选项,与IPSec策略的具体设置相关。
(5)认证。数据源发送信任状,由接收方验证信息状的合法性,只有通过认证的系统才可以建立通信连接。

 

IPSec两种封装模式:(加密点不等于通信点是隧道模式,加密点等于通信点是传输模式)
隧道模式(Tunnel Mode):在隧道模式中,IPSec的AH头或者ESP头插入原来的IP头之前,在整个过程中,加密和认证之后会重新产生一个新的IP头加到AH头或ESP头之前。也就是说,真正的IP源地址和目的地址都可以隐藏为因特网发送的普通数据。因此隧道模式比传输模式具有更高的安全性。同时,隧道模式加密的复杂性也占有了一定的网络带宽。通常,隧道模式应用在两个安全网关之间的通讯。
传输模式(Transport Mode):IPSec的AH头或ESP头插入原来的IP头之后,而整个过程当中,原来的IP并没有进行认证和加密。也就是说,源和目的IP以及所有的IP包头域都是不加密发送的。通常,传输模式应用在两台主机之间的通讯,或一台主机和一个安全网关之间的通讯。

 

IPSec中的crypto map(加密图映射)
它的功能就是将所有必要的信息组织在一起来构建一个IPSec会话–管理和数据连接–到远端的对等设备。一个接口只能激活一个crypto map,不同的接口可以同时应用同一个crypto map。有两种类型的crypto map,一种静态的crypto map通常用于对方是静态IP时;动态的crypto map用于远程访问会话或对方时动态IP时。注意只有静态crypto 能用于接口下。如果是动态crypto map必须关联到静态crypto map后,然后才能在接口下调用这个静态crypto map。