博文目录
一、虚拟专用网概述
二、虚拟专用网技术涉及的加密算法
三、数据报文验证
四、IPSec 虚拟专用网
五、ISAKMP/IKE阶段1和阶段2建立过程
六、详细配置实现IPSec 虚拟专用网

由于“Virtual Private Network”(请看首字母,就知道是什么了)是敏\感词,所以在博文中使用它的中文名字“虚拟专用网”来代替。

一、虚拟专用网概述

1、虚拟专用网的定义

虚拟专用网就是在两个网络实体之间建立的一种受保护的连接,这两个实体可以通过点到点的链路直接相连,但通常情况下他们会相隔较远的距离。

对于定义中提到的“受保护”一词,可以从以下几个方面理解:

  • 通过使用加密技术防止数据被窃听。

  • 通过数据完整性验证防止数据被破坏、篡改。

  • 通过认证机制实现通信方身份确认,来防止通信数据被截获和回放。

此外,虚拟专用网技术还定义了以下功能:

  • 何种流量需要被保护。

  • 数据被保护的机制。

  • 数据的封装过程。

实际生产环境中的虚拟专用网解决方案不一定包含上面所有功能,还要由具体的环境需求和实现方式决定,而且很多企业可能采用不止一种的虚拟专用网解决方案。

2、虚拟专用网的模式与类型

虚拟专用网的连接模式有两种:传输模式和隧道模式。这两种模式实际上定义了两台实体设备之间传输数据时采用的不同的封装过程。

1)传输模式:

在整个虚拟专用网的传输过程中,IP包头并没有被封装进去,这就意味着从源端的数据始终使用原有的IP地址进行通信。而传输的实际数据载荷被封装在虚拟专用网报文中,对大多数虚拟专用网传输而言,虚拟专用网的报文封装过程就是数据的加密过程,因此,第三者无法破解数据内容,但却可以清晰的知道通信双方的地址信息。
Cisco路由器IPSec 虚拟专用网原理与详细配置
由于传输模式封装结构相对简单,(每个数据报文较隧道模式封装结构节省20字节),因此传输效率较高,多用于通信双方在同一个局域网内的情况。

2)隧道模式:

隧道模式下与传输模式的区别显而易见,虚拟专用网设备将整个三层数据报文封装在虚拟专用网数据内,再为封装后的数据报文添加新的IP包头。由于在新IP包头中封装的是虚拟专用网设备的IP地址信息,所以当第三者截获数据后,不但无法了解实际载荷数据的内容,同时也无法知道实际通信双方的地址信息。数据包封装后如下:
Cisco路由器IPSec 虚拟专用网原理与详细配置
由于隧道模式的虚拟专用网在安全性和灵活性方面具有很大的优势,在企业环境中应用十分广泛,总公司和分公司跨广域网的通信等很多情况,都会应用隧道模式的虚拟专用网对数据传输进行加密。

3、虚拟专用网的类型

通常情况下,虚拟专用网的类型分为站点到站点虚拟专用网和远程访问虚拟专用网。

1)站点到站点虚拟专用网:

站点到站点虚拟专用网就是通过隧道模式在虚拟专用网网关之间保护两个或更多的站点之间的流量,站点间的流量通常是指局域网之间(L2L)的通信流量。L2L虚拟专用网多用于总公司与分公司、分公司之间在公网上传输重要的业务数据。

Cisco路由器IPSec 虚拟专用网原理与详细配置
如上图所示,对于两个局域网的终端用户来说,在虚拟专用网网关中间的网络是透明的,就好像通过一台路由器连接的两个局域网。总公司的终端设备通过虚拟专用连接访问分公司的网络资源,数据包封装的IP地址都是公司内网地址(一般为私有地址),而虚拟专用网网关对数据包进行的再次封装过程,客户端是全然不知的。

2)远程访问虚拟专用网:

远程访问虚拟专用网通常用于单用户设备与虚拟专用网网关之间的通信连接,单用户设备一般为一台PC或小型办公网络等。虚拟专用网连接的一端为PC,可能会让很多人误解远程访问虚拟专用网使用传输模式,但因为该种虚拟专用网往往也是从公网传输关键数据,而且单一用户更容易成为第三者的目标,所以远程访问虚拟专用网对安全性的要求较高,更适用于隧道模式。

要想实现隧道模式的通信,就需要给远程访问客户端分配两个IP地址:一个是它自己的网卡IP地址,另一个是内网地址,也就是说,远程客户端在虚拟专用网建立过程中同时充当虚拟专用网网关(使用本身的IP地址)和终端用户(使用内网地址)。
Cisco路由器IPSec 虚拟专用网原理与详细配置
如上图所示,当远端的移动用户与总公司的网络实现远程访问虚拟专用网连接后,就好像成为总公司局域网中一个普通用户,不仅使用总公司网段内的地址访问公司资源,而且因为其使用隧道模式,真实的IP地址被隐藏起来,实际公网通信的一段链路对于远端移动用户而言就像是透明的。

二、虚拟专用网技术涉及的加密算法

1、对称加密算法

对称加密算法使用同一密钥对信息提供安全的保护。如下图所示,假设对称加密算法的密钥为“k”,客户端传输的明文数据为“m”,虚拟专用网网关加密后的数据为“c”,而E、D分别为加密和解密函数。

数据加密过程如下:
(1)发送方和接收方共享密钥“k”。
(2)发送方的虚拟专用网网关通过加密函数E将明文数据“m”加密成为密文数据“c”。
(3)接收方的虚拟专用网网关通过解密函数D将数据还原为明文数据“m”。

Cisco路由器IPSec 虚拟专用网原理与详细配置

目前常见的加密算法有DES(Data Encryption Standard,数据加密标准)、3DES、AES(Advanced Encryption Standard,高级加密标准)等。

1)DES算法:

DES算法曾在虚拟专用网领域应用很广泛,其密钥长度为64位,其中8位用于奇偶校验,所以实际有效长度为56位。基本在实际工程实施过程中(如果设备硬件性能支持)这种算法已经使用不频繁了。

2)3DES算法:

NIST(National Institute of Standards and Technology,美国国家标准及技术协会)在1999年研发了3DES算法,理论上3DES算法是DES算法的增强版本,因为3DES使用了三个阶段的DES,即同时使用了三个不同的56位密钥,所以相当于产生了一个168位的有效密钥长度。这种级别的密钥执行效率虽然在软件环境中比较慢,但在硬件环境中并不明显。

3)AES算法:

3DES算法虽然目前为止是安全的,但随着计算机硬件的更新,总有一天被攻破,NIST在2002年研发了AES算法欲取代DES算法和3DES算法。该算法比3DES算法更安全,支持128、192和256位密钥长度,有效的密钥长度可达上千位。

2、非对称加密算法

1)算法的原理

非对称加密算法使用公钥和私钥两个不同的密钥进行加密和解密。用一个密钥和加密的数据仅能被另一个密钥解密,且不能从一个密钥推导出另一个密钥。如下图所示,假设接收方的公钥和私钥分别为“p”和“q”,客户端传输的明文数据为“m”,虚拟专用网网关加密后的数据为“c”,而D、E分别为加密和解密函数。

数据加密过程如下:
(1)通信双方交换公钥(图中只显示了一个方向的通信)。

(2)发送方的虚拟专用网网关通过公钥将明文数据“m”加密成为密文数据“c”。

(3)接收方的虚拟专用网网关通过自己的私钥解密数据。整个过程私钥始终没有在网络中传输。

Cisco路由器IPSec 虚拟专用网原理与详细配置

2)非对称加密算法的优、缺点

非对称加密算法最大的优势就在于其安全性。目前位置,还没有任何一种方法可以在合理的实际范围内攻破该种加密算法。

非对称加密算法也不是完美无缺的,由于其计算过程复杂,它的计算效率要比对称加密算法低得多(大约要慢1 500倍)。

3)DH算法

常用的非对称加密算法有RSA(使用三位数学家名字的首字母来命名)、DSA(Digital Signature Algorithm,数字签名算法)、DH(Diffie-Hellman,迪菲-赫尔曼)。前两种算法常用于验证功能,而DH算法一般被用来实现IPSec 中的Internet密钥交换(IKE)协议。

DH算法的原理与传统意义上的非对称加密算法有一点区别:通信双方交换公钥后,会用自己的密钥和对方的公钥通过DH算法计算出一个共享密钥,然后双方会使用这个共享密钥加密传输数据。

DH算法支持可变的密钥长度,由于公钥和私钥的长度不同,因此通过DH算法计算出的共享密钥的有效长度也就不同,这些都是通过DH算法的密钥组定义的。Cisco的路由器支持DH组1、2、5、14、15和16,其中DH组1的有效密钥长度为768,DH组2的有效密钥长度为1024,DH组5的有效密钥长度为1536。密钥的有效长度越长,安全性也就越强,同时CPU的资源占用率也就越高。

3、密钥交换

在探讨加密算法的过程中,忽略了一个关键的问题,密钥的交换。使用对称加密算法加密数据时,都会淡信密钥如何实现安全共享。

  • 一种解决方案就是带外共享,即通信双方通过一个磁盘、一张纸或打一个电话等方式实现密钥的共享。这种方案最大的缺陷时实施过程花费的实际较长,如果管理的虚拟专用网设备数量较多,或者公司对于密钥的安全要求较高,需要一小时更换一个密钥,这种方案基本就不可能实施了。

  • 另一种解决方案就是带内共享,即通过telnet、ssh等连接方式通过网络传输密钥。这种方式可以提高共享密钥的效率,但前提是必须保证传输密钥的通道决绝对安全,而传输密钥本身就是为了建立一条安全的通道,这似乎陷入一种死循环中。

  • 其实,解决这个问题并不难,可以通过非对称加密算法加密对称加密算法的密钥,再用对称加密算法加密实际要传输的数据。

三、数据报文验证

数据报文验证包括两个方面:

  • 数据来源验证(身份验证)。

  • 报文完整性验证。

1、HMAC功能实现验证功能

在虚拟专用网领域,对数据进行来源和完整性验证通常是借助散列算法实现的,HMAC(Hash-based Message Authentication Codes,散列消息验证码)功能专门用来处理数据及数据包相关的验证问题,它使用一个共享的对称密钥来产生固定的输出结果——数字签名。HMAC属于单向散列算法(Hash算法)的一个子集,区别于前面讲的加密算法,散列算法是不可逆的,即散列后的数据是无法还原的。

如下图所示,HMAC算法的原理如下:
(1)双方共享执行Hash算法的密钥key。
(2)路由器A的用户数据与共享密钥key通过Hash算法得到数字签名。
(3)路由器A将数字签名和用户数据一同传送给路由器B。
(4)路由器B执行相同的算法过程得到数字签名。
(5)路由器B比对数字签名是否一致。

Cisco路由器IPSec 虚拟专用网原理与详细配置
如果数据在传输过程中被篡改或者损坏,接收方通过Hash算法计算出来的数字签名就会和发送方的数字签名不同,于是便可以得知数据的内容在传输过程中被篡改。同理,如果窃听者想冒充其中一个通信方,他虽然可以伪造通信方的身份信息,但绝对无法伪造身份信息和共享密钥计算后的数字签名。

2、MD5和SHA

MD5和SHA是HMAC的两种常用算法,在包括虚拟专用网的很多领域得到广泛应用。

MD5(Message-digest Algorithm 5,信息-摘要算法)在RFC 1321中有明确规定,它创建了一个128位得签名,是目前HMAC功能中应用最为广泛得一种算法。

SHA(安全散列算法)是由NIST开发的,且已成为美国国家标准,一般称为SHA-1,它可以产生160位得签名(20字节得长度)。

四、IPSec 虚拟专用网

IPSec技术实现虚拟专用网是目前最为广泛的一种应用,为了可以在工作中快速的定位问题所在,所以了解IPSec的建立过程尤为重要。

1、IPSec连接过程:

IPSec的连接过程如下:

1、流量触发IPSec;

2、建立管理连接;

3、建立数据连接;

1)流量触发IPSec

一般来说,IPSec建立过程是由对等体之间发送的流量触发的。一旦有虚拟专用网的流量经过虚拟专用网网关,连接过程便开始建立了,当然,手动配置也可以实现这一过程。在配置设备实现此步骤前,需要明确哪些流量需要被“保护”。

2)建立管理连接

IPSec使用ISAKMP/IKE阶段1来构建一个安全的管理连接。这里需要注意的是,这个管理连接只是一个准备工作,它不被用来传输实际的数据。在配置设备实现此步骤前,需要明确设备如何实现验证,使用何种加密及认证算法,使用哪种DH组等问题。

3)建立数据连接

IPSec基于安全的管理连接协商建立安全的数据连接,而ISAKMP/IKE阶段2就是来完成这个任务的,数据连接用于传输真正的用户数据。在配置设备实现此步骤前,需要明确使用何种安全协议,针对具体的安全协议应使用加密或验证算法,以及数据传输的模式(隧道模式或传输模式)等问题。

经过IPSec建立的三部曲后,虚拟专用网流量就可以按照协商的结果被加密/解密了。但是虚拟专用网并不是一次性的,无论是管理连接还是数据连接都有一个生存周期与之关联,一旦到期连接会被中止,如果需要继续传输虚拟专用网数据,连接需要重新被构建,这种设计主要是处于安全考虑。

五、ISAKMP/IKE阶段1和阶段2建立过程

1、ISAKMP/IKE阶段1

1)阶段1(双向)的相关概念:

阶段1的交换过程有两个模式:主模式和积极模式。积极模式比主模式快,主模式比积极模式安全,我下面的配置是基于主模式进行的。

无论虚拟专用网的类型是站点到站点还是远程访问,都需要完成三个任务:

  • 协商采用何种方式建立管理连接。

  • 通过DH算法共享密钥信息。

  • 对等体彼此进行身份验证。

在主模式中,这三个任务是通过六个数据报文完成的:前两个数据包用于协商对等体间的管理连接使用何种安全策略(交换ISAKMP/IKE传输集);中间两个数据包通过DH算法产生并交换加密算法和HMAC功能所需的密钥;最后两个数据包使用预共享密钥等方式执行对等体间的身份验证。需要注意的是,前四个报文是明文传输的,后面两个报文才是密文传输,前四个数据包通过各种算法最终产生的密钥用于第5、和第6个数据包及后续数据的加密。

2)ISAKMP/IKE阶段1建立过程:

①、交换ISAKMP/IKE传输集

ISAKMP/IKE传输集就是一组用来保护管理连接的安全策略,也有人将它称之为IKE策略或ISAKMP策略。

ISAKMP/IKE传输集主要包括以下几个方面:

  • 加密算法:DES、3DES或AES(一般用AES,安全性更高些)。

  • HMAC功能:MD5或SHA-1(一般使用SHA-1,同样,因为安全性高)。

  • 设备验证的类型:预共享密钥或使用RSA签名(我这里使用预共享密钥,配置简单些)。

  • DH密钥组:Cisco支持1、2、5、7(Cisco的路由器不支持密钥组7)。

  • 管理连接的生存周期。

②、通过DH算法实现密钥交换

上一步只是协商管理连接的安全策略,而共享密钥的产生与交换就要通过DH算法来实现。

③、实现设备间的身份验证

设备身份验证时最常用的方法就是预共享密钥,即在对等体之间通过带外的方式共享密钥,并存储在设备的本地。设备验证的过程可以通过加密算法或HMAC功能两种方法实现,而加密算法很少用于身份验证,多数情况都会通过HMAC功能实现。

2、ISAKMP/IKE阶段2

1)阶段2(单向)的相关概念:

ISAKMP/IKE阶段2主要是在两个IPSec对等体间建立数据连接,其主要完成以下任务:

  • 定义对等体间需要保护何种流量(通过ACL来匹配)。

  • 定义用来保护数据的安全协议。

  • 定义传输模式。

  • 定义数据连接的生存周期及密钥刷新的方式。

2)ISAKMP/IKE阶段2建立过程:

①、安全关联

IPSec需要在两个对等体之间建立一条逻辑连接,这就要使用一个被称为安全关联的信令协议,这是因为IPSec需要无连接的IP协议在安全运行之前就要称为面向连接的协议。SA的连接是在源点和终点之间的单向连接,如果需要双向连接,就需要两个SA连接,每个方向一个。

SA连接由三个要素定义:

  • 安全参数索引(SPI):用于唯一标识每条SA连接。

  • 安全协议的类型:IPSec定义了两种安全协议,即AH(认证头协议)和ESP(封装安全载荷协议)。

  • 目的IP地址。

ISAKMP/IKE阶段2具有上面这种特性,也就是说ISAKMP/IKE的数据连接实际是通过两个单向连接建立的。而两个连接采用的加密或认证方式都是相同的,这就使ISAKMP/IKE阶段2这个特征不易被发现。

②、ISAKMP/IKE阶段2的传输集:

数据连接的传输集定义了数据连接是如何被保护的。与管理连接的传输集类似,对等体设备可以保存一个或多个传输集,但其内容完全不同。

数据连接的传输集内容如下:

  • 安全协议: AH 协议、ESP协议。

  • 连接模式:隧道模式,传输模式。

  • 加密方式:对于ESP而言,有DES、3DES、AES-128、AES-192、AES-256或不使用加密算法。

  • 验证方式:MD5或SHA-1。

③、ISAKMP/IKE阶段2的安全协议

IPSec的数据连接可以通过安全协议实现对数据连接的保护:AH协议和ESP协议。可以通过其中一个协议来实现数据的加密和验证,如使用ESP协议;也可以使用两个协议一起来实现。AH使用IP协议号51,ESP使用IP协议号50。

AH协议提供以下安全功能:

  • 数据完整性;

  • 数据验证;

  • 保护数据回放功能;

AH协议保护整个数据报文,但易变的字段除外,如IP包头中的TTL值等。

AH协议只是实现验证功能,而并未提供任何形式的数据加密;而且正因为其对于整个IP数据报文实现验证功能,所以它与NAT或PAT不能一起使用。

ESP在RFC 2402中有明确的定义,它与AH的区别如下:

  • ESP对用户数据实现加密功能。

  • ESP只对IP数据的有效载荷进行验证,不包括外部的IP包头。

因此,如果有第三者对IP包头内容进行更改,ESP是无法检测到的。而NAT也会修改外层的IP信息,所以ESP可以和NAT共用,所以,AH无论如何也不能和NAT共用,而ESP却可以,再配置NAT-T技术,ESP甚至还可以和PAT共用。

ESP默认情况下不能穿越PAT设备,因为PAT会修改传输层头部的端口信息,而传输层的头部在ESP的封装中是被加密的,所以PAT无法修改端口信息。而NAT-T技术就是通过额外增加一个传输层头部让PAT可以工作。

如下图所示位ESP包头字段的描述:

  • ESP头部:SPI字段、序列号与AH报文结构种对应字段的功能类似。

  • ESP尾部:补丁用于减少有效载荷被窃听并被猜测的可能性;补丁长度定义了补丁的字节数;下一个头与AH报文结构中对应字段的功能类似;ICV依然提供验证功能,但是ICV只是IP数据报文的有效载荷通过HMAC功能产生的数字签名。

Cisco路由器IPSec 虚拟专用网原理与详细配置

六、详细配置实现IPSec 虚拟专用网

拓扑图如下:
Cisco路由器IPSec 虚拟专用网原理与详细配置

环境分析:

1、总公司内网使用192.168.20.0/24网段地址,分公司使用192.168.10.0/24网段地址。ISP路由器为公网上的路由器,ISP路由器的loop back 0接口模拟Internet网。R1及R2分别为总公司及分公司的虚拟专用网网关服务器,所以一定会存在默认路由指向公网的路由器。
2、总公司的内网及分公司的内网之间要建立虚拟专用网,但如果不配置别的东西,是会影响内网访问Internet的,一般都是既可以建立虚拟专用网,也可以访问Internet,所以这个问题也要解决。

需求如下:

1、要求实现总公司192.168.20.0/24和分公司的192.168.10.0/24网段通过虚拟专用网实现互通,并且不要影响这两个网段访问公网,也就是ISP路由器(访问公网路由器,通过端口复用的PAT技术实现,不要在ISP路由器上配置任何路由)。

开始配置:

基本网络参数配置如下:

1)ISP配置如下:
ISP(config)#int f0/0     # 进入接口
ISP(config-if)#ip add 192.168.30.254 255.255.255.0   #接口配置IP地址
ISP(config-if)#no shutdown    #启用接口
ISP(config-if)#exit    #退出 
ISP(config)#int f1/0         #下面相关注释请参照上面注释
ISP(config-if)#ip add 192.168.40.254 255.255.255.0
ISP(config-if)#no shutdown 
ISP(config-if)#exit
ISP(config)#int loo0
ISP(config-if)#ip add 1.1.1.1 255.255.255.0
ISP(config-if)#no shutdown 
ISP(config-if)#exit

2)R1配置如下:
R1(config)#int f0/0
R1(config-if)#ip add 192.168.30.1 255.255.255.0
R1(config-if)#no shutdown 
R1(config-if)#exit
R1(config)#int f1/0
R1(config-if)#ip add 192.168.10.254 255.255.255.0
R1(config-if)#no shutdown 
R1(config-if)#exit
R1(config)#int f2/0
R1(config-if)#ip add 192.168.100.254 255.255.255.0
R1(config-if)#no shutdown 
R1(config-if)#exit
R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.30.254  #配置去往公网的路由,也就是ISP

3)R2配置如下:
R2(config)#int f0/0
R2(config-if)#ip add 192.168.40.1 255.255.255.0
R2(config-if)#no shutdown 
R2(config-if)#exit
R2(config)#int f1/0
R2(config-if)#ip add 192.168.20.254 255.255.255.0
R2(config-if)#no shutdown 
R2(config-if)#exit
R2(config)#int f2/0 
R2(config-if)#ip add 192.168.200.254 255.255.255.0
R2(config-if)#no shutdown 
R2(config-if)#exit
R2(config)#ip route 0.0.0.0 0.0.0.0 192.168.40.254   #配置去往公网的路由,也就是ISP

4)xiaoshou-pc1配置如下:
xiaoshou-pc1(config)#no ip routing   #关闭路由功能
xiaoshou-pc1(config)#int f0/0
xiaoshou-pc1(config-if)#ip add 192.168.10.1 255.255.255.0
xiaoshou-pc1(config-if)#no shutdown 
xiaoshou-pc1(config-if)#exit
xiaoshou-pc1(config)#ip default-gateway 192.168.10.254   #配置网关
xiaoshou-pc1(config)#exit

5)xiaoshou-pc2配置如下:
xiaoshou-pc2(config)#no ip routing
xiaoshou-pc2(config)#int f0/0
xiaoshou-pc2(config-if)#ip add 192.168.10.2 255.255.255.0
xiaoshou-pc2(config-if)#no shutdown 
xiaoshou-pc2(config-if)#exit
xiaoshou-pc2(config)#ip default-gateway 192.168.10.254   
xiaoshou-pc2(config)#exit

6)server1配置如下:
Server1(config)#int f0/0
Server1(config-if)#ip add 192.168.100.1 255.255.255.0
Server1(config-if)#no shutdown 
Server1(config-if)#exit

7)lan-pc1配置如下:
lan-pc1(config)#no ip routing
lan-pc1(config)#int f0/0
lan-pc1(config-if)#ip add 192.168.20.1 255.255.255.0
lan-pc1(config-if)#no shutdown 
lan-pc1(config-if)#exit
lan-pc1(config)#ip default-gateway 192.168.20.254
lan-pc1(config)#exit

8)lan-pc2配置如下:
lan-pc2(config)#no ip routing
lan-pc2(config)#int f0/0
lan-pc2(config-if)#ip add 192.168.20.2 255.255.255.0
lan-pc2(config-if)#no shutdown 
lan-pc2(config-if)#exit
lan-pc2(config)#ip default-gateway 192.168.20.254
lan-pc2(config)#exit

9)server2配置如下:
Server2(config)#int f0/0
Server2(config-if)#ip add 192.168.200.1 255.255.255.0
Server2(config-if)#no shutdown 
Server2(config-if)#exit

R1配置IPSec 虚拟专用网:

R1(config)#crypto isakmp policy 1   #策略序列号为“1”,范围是1~10000,数值越小,优先级越高
R1(config-isakmp)#encryption aes   #配置加密算法
R1(config-isakmp)#hash sha     #hash命令指定验证过程中采用的散列算法
R1(config-isakmp)#authentication pre-share  #配置共享密钥的方式为“预先共享密钥”
R1(config-isakmp)#group 2    #配置加密共享密钥方式使用dh算法
R1(config-isakmp)#lifetime 86400   #配置保持时间,默认保持时间为24小时
R1(config-isakmp)#exit
R1(config)#access-list 100 permit ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.255 #创建ACL抓取需要走虚拟专用网的流量
R1(config)#crypto isakmp key 0 pwd@123 address 192.168.40.1 #创建共享密钥和对等体IP地址建立IPSec 虚拟专用网连接
R1(config)#crypto ipsec transform-set bj-set ah-sha-hmac esp-aes#配置传输集,名字为bj-set,验证使用sha,加密使用aes
R1(cfg-crypto-trans)#exit
R1(config)#crypto map bj-虚拟专用网简写 1 ipsec-isakmp     #创建crypto map调用,名字为bj-虚拟专用网简写
R1(config-crypto-map)#set peer 192.168.40.1      #调用对等体的IP地址
R1(config-crypto-map)#match address 100       #调用ACL抓取本地走虚拟专用网的流量
R1(config-crypto-map)#set transform-set bj-set     #调用本地创建的传输集
R1(config-crypto-map)#exit
R1(config)#int f0/0        #进入到外网接口,也就是0/0接口
R1(config-if)#crypto map bj-虚拟专用网简写      #应用创建的map
R1(config-if)#exit

R2配置IPSec 虚拟专用网:

R2(config)#  crypto isakmp policy 1 #策略序列号为“1”,范围是1~10000,数值越小,优先级越高
R2(config-isakmp)# encryption aes  #配置加密算法
R2(config-isakmp)# hash sha     #hash命令指定验证过程中采用的散列算法
R2(config-isakmp)# authentication pre-share   #配置共享密钥的方式为“预先共享密钥”
R2(config-isakmp)# group 2   #配置加密共享密钥方式使用dh算法
R2(config-isakmp)# lifetime 86400   #配置保持时间,默认保持时间为24小时
R2(config-isakmp)# exit
R2(config)#access-list 100 permit ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255 #创建ACL抓取需要走虚拟专用网的流量     
R2(config)#crypto isakmp key 0 pwd@123 address 192.168.30.1  #创建共享密钥和对等体IP地址建立IPSec 虚拟专用网连接
R2(config)#crypto ipsec transform-set sh-set ah-sha-hmac esp-aes #配置传输集,名字为sh-set,验证使用sha,加密使用aes
R2(cfg-crypto-trans)#exit
R2(config)#crypto map sh-虚拟专用网简写 1 ipsec-isakmp  #创建crypto map调用,名字为sh-虚拟专用网简写
R2(config-crypto-map)#set peer 192.168.30.1  #调用对等体的IP地址
R2(config-crypto-map)#match address 100   #调用ACL抓取本地走虚拟专用网的流量
R2(config-crypto-map)#set transform-set sh-set  #调用本地创建的传输集
R2(config-crypto-map)#exit
R2(config)#int f0/0    #进入到外网接口,也就是0/0接口
R2(config-if)#crypto map sh-虚拟专用网简写     #应用创建的map
R2(config-if)#exit

IPSec虚拟专用网也就配置完成了,现在四个客户端可以互相通信了,验证完成后开始配置NAT所有主机可以访问Internet网(也就是ISP路由器的loop back0接口)。

验证IPSec 虚拟专用网
Cisco路由器IPSec 虚拟专用网原理与详细配置
Cisco路由器IPSec 虚拟专用网原理与详细配置

查看IPSec 虚拟专用网管理连接是否建立和crypto map
Cisco路由器IPSec 虚拟专用网原理与详细配置

开始配置NAT,实现所有主机都可以访问Internet网,如下图所示,现在是ping不通ISP路由器的loop back 0接口的。
Cisco路由器IPSec 虚拟专用网原理与详细配置

R1配置如下:

R1(config)#access-list 110 deny ip 192.168.10.0 0.0.0.255 192.168.20.0 0.0.0.20.0 0.0.0.255  #拒绝虚拟专用网的流量
R1(config)#access-list 110 permit ip any any  #放行其他任何流量
R1(config)#ip nat inside source list 110 int f0/0 overload  #采用端口复用的PAT方式,解决内网访问互联网的问题
R1(config)#int f0/0   #进入接口
R1(config-if)#ip nat outside  #启动nat功能,接口为outside
R1(config-if)#int f1/0  #进入接口
R1(config-if)#ip nat inside   #启用nat功能,接口为inside
R1(config-if)#exit

R2配置如下:(参考R1注释)

R2(config)#access-list 110 deny ip 192.168.20.0 0.0.0.255 192.168.10.0 0.0.0.255       
R2(config)#access-list 110 permit ip any any
R2(config)#ip nat inside source list 110 int f0/0 overload 
R2(config)#int f0/0
R2(config-if)#ip nat outside 
R2(config-if)#int f1/0
R2(config-if)#ip nat inside 
R2(config-if)#exit

至此实验需求已经全部满足,既可以访问Internet网,也不影响192.168.10.0/24和192.168.20.0/24网段通过虚拟专用网互通。

验证
Cisco路由器IPSec 虚拟专用网原理与详细配置

Cisco路由器IPSec 虚拟专用网原理与详细配置

相关的show命令如下:

R1#show crypto isakmp policy     #查看创建的安全策略
R1#show crypto isakmp sa            #查看IPSec 虚拟专用网管理连接状态是否建立
R1#show crypto ipsec transform-set        #查看IPSec传输集
R1#show crypto ipsec security-association lifetime    #查看数据连接建立的生存周期
R1#show crypto ipsec sa    #查看IPSec数据状态
R1#show crypto map    #查看crypto  Map的信息,超详细的
R1#show running-config   #查看历史敲过的命令

———————— 本文至此结束,感谢阅读 ————————