基于安全GRE隧道的Site-to-Site VPN构建方案研究与实现

2012-11-08 06:55刘景林
长春大学学报 2012年8期
关键词:路由器数据包密钥

刘景林

(泉州经贸职业技术学院 信息技术系,福建 泉州 362000)

基于安全GRE隧道的Site-to-Site VPN构建方案研究与实现

刘景林

(泉州经贸职业技术学院 信息技术系,福建 泉州 362000)

为了实现经由Internet连接的两个私有网络之间能够利用隧道技术以私有IP地址的方式相互访问其内部资源,并且可以在隧道中传递动态路由协议信息,在基于Cisco路由器的配置过程中,通过利用GRE与IPSec两种技术共同构建Site-to-Site VPN,即首先使用GRE协议对用户数据和路由协议报文进行隧道封装,然后通过IPSec提供的数据机密性、数据完整性验证以及数据源认证功能保护在GRE隧道中传送的敏感数据,以实现GRE隧道的安全传输。通过结合GRE可支持承载IP组播流量与IPSec提供的安全特性创建Site-to-Site VPN,既解决动态路由协议在IPSec VPN隧道内正常通告的问题,又可以保护敏感数据穿越不安全通道的安全性。

GRE;IPSec;Site-to-Site VPN

0 引言

在经济全球化的背景下,企业、单位总部与其分支机构或合作伙伴之间经常需要通过Internet开展网上业务,针对如何保护敏感数据通过不安全的公共通道以实现安全通信的问题成了研究的热点。虚拟专用网络(VPN)提供了一种使用公共网络安全地对内部私有网络进行远程访问的连接方式。VPN技术通过使用特定的数据封装协议对原有的传输协议数据包进行重新封装,并利用相关数据安全传输机制为IP流量提供一系列的安全防护措施,实现创建了一条数据传输的安全通道。Cisco在其IOS路由器、PIX、ASA防火墙和VPN集中器等产品上支持丰富的IPSec特性,可以提供多种创建Site-to-Site VPN的解决方案,包括动态多点VPN(DMVPN)、Easy VPN、GRE隧道、标准IP安全(IPsec)和全新的群组加密传输VPN(GET-VPN),分别用于满足特定的部署需求,实现安全、可靠的加密数据传输。由于传统基于路由器建立的IPSec VPN不支持IP组播数据包的加密,使得IPSec隧道无法传送动态路由协议信息,针对Internet连接的双方站点为相对复杂的私有网络,两端的内网网段希望能依靠某些动态路由协议来分发与传递路由信息,要求在VPN上能够支持传递动态路由信息的情形,提出了在Cisco路由器上利用GRE(Generic Routing Encapsulation,通用路由封装)和IPSec(Internet Protocol Security)技术共同构建基于安全GRE隧道的Site-to-Site VPN,该方案既可实现在VPN隧道内交换动态路由协议信息,又可以保护敏感数据在Internet公共网络中传输的安全性。

1 IPSec安全体系结构及其相关协议

IPSec是针对OSI/RM参考模型中网络层IP协议所提出的安全协议,是一种可以广泛应用于局域网或广域网中实现保护IP网络通信的安全解决方案。IPSec协议既可以为主机到主机的点对点IP通信,也可以为网络到网络的站点至站点IP通信提供安全保障,主要用于实现数据机密性、数据完整性验证和用户身份认证等方面的安全保护。IPSec协议簇主要包括AH协议、ESP协议以及负责密钥管理的IKE协议,各协议之间的关系如图1所示。

2 IPSec的安全特性

2.1 数据机密性

数据机密性是指对于需要在不安全的公共通道上传输的数据利用加密算法和密钥进行保护,使其免受窃听攻击。IPSec支持常见的对称加密算法DES、3DES和AES,IPSec对等体加解密的过程都需要双方拥有相同的共享密钥,为了防止密钥的泄漏,通信双方并没有直接传输所需的共享密钥,而是通过利用D-H密钥交换算法交换密钥生成材料,以使得双方各自生成相同的加密密钥。

图1 IPSec安全体系结构

2.2 数据完整性验证

数据完整性验证主要是利用Hash算法计算散列值来检查通信双方所传送的数据在传输过程中是否被修改,典型Hash算法有HMAC-MD5和HMAC-SHA-1两种,在进行散列值计算时,前者使用128位共享密钥,而后者则使用160位共享密钥,因此后者的安全性较高。

2.3 数据源认证

数据源认证是指接收者能够确认数据发送者的身份,这里主要是指验证远程VPN设备的身份,目前较为常用的有预共享密钥和RSA签名两种类型的验证方法[1]。预共享密钥是指在IPSec对等体事先设置好相同的密钥,通信双方利用Hash函数对预共享密钥和身份信息进行散列计算并发送给对方,接收方使用Hash函数对相同的预共享密钥和收到的明文身份信息再次计算散列值,并通过比较两次计算的Hash值实现身份验证。另一种是RSA签名,主要是指发送方使用自己的私钥对身份进行加密,并生成签名,接收方使用发送方的公钥对签名进行解密,将解密得到的身份信息与收到的明文身份信息进行比较,若相同,则发送方的身份即可成功验证,整个验证过程需要使用CA认证中心的证书服务。

3 IPSec工作模式

无论是AH还是ESP协议都有两种工作方式:传输模式和隧道模式。这两种协议数据报的具体封装格式如图2所示。传输模式主要为上层协议数据提供保护,原始的IP头部没有受保护,即AH和ESP两种协议在传输模式下均没有对原始的IP报头进行封装,只是将AH或ESP报头插入在IP报头与传输层协议报头之间。在隧道模式下,原始的整个IP包都封装在一个新的IP包中,外部新的IP报头的IP地址为隧道端点的IP,IPSec头部(AH/ESP)插入在新的IP报头和原始的IP报头之间[2]。二者的主要区别是:传输模式保护的是VPN站点间所传输的数据包内容,而隧道模式保护的是包括原始IP头部在内的整个数据包,为整个IP数据包提供安全性。

图2 AH/ESP协议的两种工作模式

4 GRE及其安全隧道的构建

4.1 GRE协议的功能及应用

GRE通用路由封装协议是一种网际层隧道封装协议,提供了用一种网络协议去封装另一种网络协议并进行传输的机制,即将其他协议的数据包重新封装在新的包头中发送,新的包头提供了路由信息,从而使封装的负载数据能够通过Internet传送[3]。它的最大优点是可以使用统一的格式封装多种协议、多种类型的报文,并在隧道中传输。虽然IPsec自身也可以实现隧道功能,但其隧道功能存在着不能传递动态路由协议信息的局限性,而GRE既可以实现隧道功能,又可支持静态路由和IP组播流量,可承载RIP、EIGRP和OSPF等多种动态路由协议,所以GRE通常可用于需要在VPN隧道中传递动态路由信息的场合。

4.2 构建安全GRE隧道

由于GRE协议只是用于实现数据报的封装,并不能为传输的数据提供安全保护,故GRE隧道并不是一种安全的通道。而IPSec则可以为IP数据通信提供安全保护,然而,由于IPSec在实际应用中默认不支持组播,即不能够对网络中的组播报文进行封装,而常用的路由协议报文又是通过组播进行协商和通信的,所以路由协议报文通常是无法在IPSec隧道中传输。因此,可以将GRE与IPSec两种技术结合起来使用,即利用GRE对用户数据和路由协议报文进行隧道封装,因为有了GRE便可在VPN隧道内交换动态路由协议信息,然后通过IPSec提供的安全措施保护GRE隧道中的IP通信流量,二者结合即构成安全GRE隧道,共同实现构建Site-to-Site VPN。

4.3 基于安全GRE隧道的数据包封装

基于安全GRE隧道的数据包在IPSec传输模式下具体的封装格式见图3,即最内层是原始IP包,表示穿越两个站点的数据,然后是GRE层,即原始的IP包被封装在GRE头部之内,从而允许路由协议在GRE隧道内传输,然后是提供安全性的IPSec,这样便可实现在两个站点之间安全地交换路由信息和IP包。基于安全GRE隧道的VPN中IPSec运行模式既可以使用传输模式,也可以使用隧道模式,一般使用传输模式即可,这是因为GRE与IPsec的端点是一样的,已经封装了公网IP[4]。

图3 基于IPsec传输模式的安全GRE隧道数据包封装格式

5 基于安全GRE隧道的Site-to-Site VPN的构建

IPSec VPN整个操作过程主要有五个步骤,首先在通信双方路由器上使用扩展ACL定义感兴趣的流量,即指定需要IPSec提供安全保护的流量,接下来由双方路由器协商IKE第一阶段的会话,主要用于协商IKE策略、交换密钥以及认证对等体,在对等体之间建立一个已通过身份验证和安全保护的通道[5],实现建立IKE SA,该SA将用于保护后面协议SA的协商过程;然后双方路由器协商IKE第二阶段的会话,通过使用IPSec转换集协商数据传输过程中与加密和认证相关的IPSec安全参数,实现建立IPSec SA。这样,路由器感兴趣的流量便可以通过VPN安全隧道进行交换,结束之后VPN隧道终止。

5.1 IPSec Site-to-Site VPN实验环境的搭建与GRE隧道的配置

为了真实地模拟Site-to-Site VPN网络,通过在GNS3模拟器上搭建如图4所示的实验拓扑,其中R1和R3路由器分别模拟位于不同地点的两个私有网络的出口路由器,R2模拟位于Internet公网上的路由器,然后利用SecureCRT软件分别连接三台路由器,进行路由器的基本配置与GRE隧道配置,最后是IPSec的配置。用于通信测试的两台内网PC分别由VPCS软件模拟实现。本实验最终实现通过Internet连接的两个私有网络之间如同是直连网络,双方的内部主机可以直接以私网IP地址进行通信,其流量经过GRE隧道并受到IPSec的保护。另外,位于两个私有网络的内部主机也可以通过出口路由器上配置的路由策略,使用PAT地址转换,实现与公网计算机的正常通信,这部分的流量一般不必经过VPN隧道的保护。

在R1和R3两台路由器上分别配置各接口的IP,并启用相应接口。在路由器基本配置完成之后,此时还无法实现位于不同内网的两台主机之间的正常通信,接下来进行隧道口Tunnel 0的创建与配置,隧道口默认采用GRE协议进行数据包的封装。由于GRE支持动态路由协议,所以可以分别在两个路由器上配置动态路由协议,使得两主机之间可以实现正常通信。

图4 Site-to-Site VPN拓扑图

R2作为公网上的路由器只要配置其接口即可,无须配置任何路由信息,这里除了配置其F0/0与F1/0接口IP地址之外,另外配置一个Loopback 0回环口(IP:200.1.1.1/32)用于模拟公网上的主机。R3路由器的配置方法与R1类似,具体配置如下:

5.2 配置IPSec VPN的IKE两个阶段

在完成创建隧道与配置动态路由协议之后,R1与R3路由器之间的IP数据包便可以经由GRE隧道封装后进行正常通信,此时必须要配置IKE的两个阶段以实现对GRE隧道所传输数据包的安全保护。首先,在IKE第一阶段配置ISAKMP策略,可以分别指定完整性验证的Hash算法、身份认证方法以及对称加密算法和D-H算法等。在IKE第二阶段配置转换集,主要用于协商IPSec传输过程中数据加密和认证的相关参数,然后使用双方用来建立GRE隧道的公网IP地址来定义路由器感兴趣的流量,最后创建加密映射图,并在路由器指定的物理接口上应用该加密图。在IKE的两个阶段都可以指定加密算法和验证算法,区别在于IKE第一阶段指定的加密算法与验证算法是用于通信双方的身份鉴别与建立安全通道,并非用于对真正所要传送的IP数据包的加密与验证,而IKE第二阶段指定的加密算法与验证算法才是用于真正实现对ACL中所定义的路由器感兴趣的IP数据包进行加密与完整性验证,保护指定IP流量的安全传输。

当路由器R1与R3分别完成IKE两阶段的配置之后,双方在通信过程中就会自动建立IKE SA与IPSec SA,并按照指定的安全协议和算法创建安全通道以实现保护路由器感兴趣的流量。接下来使用VPCS软件分别配置两站点内网主机的IP地址(如图5所示),并使用Ping命令分别测试两台内部主机能否直接以私网IP地址进行通信以及内部主机经PAT地址转换访问公网主机的连通情况,最后再通过命令测试SA的创建情况,显示结果表明已经成功创建两阶段的SA,通信过程中的感兴趣数据包也可以正常实现封装与解封装、加密与解密。由于PC1与PC2两主机之间通信的数据包是属于路由器感兴趣的流量,在GNS3模拟器中可以通过Wireshark工具进行抓包验证,二者之间所传输的流量均采用IKE第二阶段所定义转换集中指定的IPSec协议封装方式、加密算法与验证算法进行保护,而当PC1或PC2分别与公网主机进行通信时,其流量是不受保护的。

图5 PC1与PC2、公网主机的连通测试

6 结语

在基于Cisco路由器建立站点互连的IPSec VPN的过程中,通过利用GRE隧道可以支持IP组播流量和承载动态路由协议的特性,实现交换双方站点内网网段的路由信息,同时使用IPSec提供的安全特性保护GRE隧道所传输IP数据包,有效地保证站点间所传输数据的安全性。结合GRE和IPSec技术构建的Siteto-Site VPN具有较好的灵活性,不仅可以解决IPSec VPN的扩展问题,而且极大地方便本地站点与远程站点之间通过Internet实现VPN连接的正常和安全的通信,可以广泛应用于需要在VPN隧道中传递动态路由协议信息的场合,由于GRE只可支持Cisco路由器,不支持PIX、ASA以及VPN集中器等其他Cisco设备,故该方案只限于在Cisco路由器中实现。

[1] Richard Deal.姚军玲,郭稚晖译.Cisco VPN完全配置指南[M].北京:人民邮电出版社,2007.

[2] 迟恩宇,刘天飞,杨建毅,等.网络安全与防护[M].北京:电子工业出版社,2009.

[3] 雷震甲.网络工程师教程 [M].3版.北京:清华大学出版社,2009.

[4] Brian Morgan Neil Lovering.夏俊杰译.CCNP ISCW 认证考试指南[M].北京:人民邮电出版社,2008.

[5] 崔北亮,陈家迁.非常网管:网络管理从入门到精通(修订版)[M].北京:人民邮电出版社,2010.

Research and Implementation of Site-to-Site VPN Construction Scheme Based on Secure GRE Tunnel

LIU Jing-lin

(Department of Information Technology,Quanzhou Vocational and Technical College of Economics and Trade,Quanzhou 362000,China)

In order to realize the two private networks to mutually access to the local resources in private IP address by using tunnel technology of Internet,and transfer the dynamic routing protocol message in tunnel,during the process of Cisco router configuration,GRE and IPSec techniques are used to establish Site-to-Site VPN.Firstly,the GRE protocol is used to encapsulate the user data and the message of router protocol.Secondly,to transmit the sensitive data in GRE tunnel safely under the protection of IPSec,which can guarantee data confidentiality,data integrity verification,and data origin authentication function to realize the safe transmission of data.The Site-to-Site VPN is constructed by GRE,which can support IP multicast traffic and the safety feature of the IPSec.It not only solves the normal notice problems of dynamic routing protocol in IPSec VPN tunnel,but also protects the security of sensitive data through unsafe channels.

GRE;IPsec;Site-to-Site VPN

TP393.08

A

1009-3907(2012)08-0949-07

2012-05-12

刘景林(1971-),男,福建泉州人,讲师,硕士,主要从事网络设备配置与管理、网络安全技术研究。

责任编辑:吴旭云

猜你喜欢
路由器数据包密钥
买千兆路由器看接口参数
二维隐蔽时间信道构建的研究*
幻中邂逅之金色密钥
维持生命
基于Jpcap的网络数据包的监听与分析
路由器每天都要关
路由器每天都要关
密码系统中密钥的状态与保护*
SmartSniff
TPM 2.0密钥迁移协议研究