*  博文大纲
*  虚拟专用网实现的各种安全特性
*  理解ISAKMP/IKE两个阶段的协商建立过程

1.虚拟专用网概述

虚拟专用网技术起初是为了解决明文数据在网络上传输所带来安全隐患而产生的,

2.虚拟专用网的定义

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

3.虚拟专用网的模式与类型

(1)虚拟专用网的连接模式
有两种基本的连接模式:分为传输模式和隧道模式,

  • 传输模式(适用与公有网络或私有网络)

IPSec 虚拟专用网原理与配置

传输模式一个最显著的特点就是,在整个虚拟专用网的过程中,IP包头并没有被封装进去,这就意味着从源端到目的端数据始终使用原有IP地址进行通信。

  • 隧道模式(适用公有地址和私有地址混合环境)

IPSec 虚拟专用网原理与配置

隧道模式与传输模式的区别明显,隧道模式保护IP包头与数据,传输模式只保护数据

4.虚拟专用网的类型

  • 站点到站点(L2L ) (Lna to Lna)

站点到站点虚拟专用网就是通过隧道模式在虚拟专用网网关之间保护两个或多个站点之间的流量,站点的流量通常是指局域网之间(L2L)的通信流量。
如图:

IPSec 虚拟专用网原理与配置

  • 远程访问虚拟专用网(Ra)

远程访问虚拟专用网通常用于单用户设备与虚拟专用网的网关之间的通信连接,单用户设备一般为一台PC或小型办公网络等

IPSec 虚拟专用网原理与配置

5.加密算法

DES
3DES
AES

加密就是一种将数据转化成另一种形式的过程,如果不了解加密算法,解密是不可能得

  • 对称加密算法(使用同一密钥对信息提供安全得保护)

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

IPSec 虚拟专用网原理与配置

DES算法

DES算法曾经在虚拟专用网领域应用很广,属于IBM公司的研发产品,其密钥长度为64位,其中8位用于奇偶校验,所以实际有效长度为56位。虽然该算法目前没有找到更好的方法破解,但是通过一些技术手段已经可以在较短的时间内破解DES算法,所以在实际工程实施过程中已经不建议使用该种算法

3DES算法

理论上将3DES算法就是DES算法的增强版本,因为3DES使用了三个阶段的DES,即同时使用三个不同的56位密钥,所以相当于产生了一个168位的有效密钥长度,这种级别的密钥目前还没有计算机有能力在较短时间内破解,而且其执行效率虽然在软件环境中比较慢,但是在硬件环境中并不明显

AES算法

3DES算法虽然目前为止是安全的,但随着计算机硬件的更新,总有一天也会变的不安全。AES算法比3DES算法更安全,它支持128、192和256为密钥程度,有效的密钥长度可达千位。更重要的是,AES算法那采用更为高效的编写方法,对CPU的占有lv较少,所以诸如IPSec 虚拟专用网等实际工程的实施过程中趋向于使用AES来提供更好的加密功能

  • 非对称加密算法

1)算法原理

非对称算法使用公钥和私钥两个不同的密钥进行加密和解密。用一个密钥加密的数据仅能被另一个密钥解密,且不能从一个密钥推算出另一个密钥。非对称加密算法数据加密、解密过程如图:

IPSec 虚拟专用网原理与配置

算法的优、缺点

非对称加密算法最大的优势就在于其安全性。目前为止,还没有任何一种方式可以在合理的时间范围内破解该算法。

非对称加密的算法也不是完美的,由于其计算过程复杂,它的计算效率要比对称加密算法低很多。

DH算法

常用的非对称算法有RSA、DSA、DH。前两种算法常用于验证功能,而DH算法一般被用来实现IPSec中的internet密钥交换(IKE)协议。

6.数据报文验证

数据报文验证包括两个方面:数据库来源验证(身份验证)和报文完整性验证。

MD5和SHA

MD5(信息——摘要算法)在REC 1321中有明确规定,它创建了一个128位的数字签名,是目前HMAC功能中最为广泛的一种算法

7.IPSec 虚拟专用网

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

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

3)建立数据连接(阶段2)

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

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

ISAKMP/IKE阶段1

三个任务:
* 协商采用任何方式建立管理连接
* 通过DH算法共享密钥信息
* 对等体彼此进行身份验证

ISAKMP/IKE阶段1建立过程

SAKMP/IKE传输集就是一组用来保护管理连接的安全措施,主要包括以下几个方面:

加密算法:DES、3DES和AES;
HMAC算法:MD5或SHA-1;
设备验证的类型:预共享密钥;
DH密钥组:Cisco支持1、2、5、7(Cisco路由器不支持密钥组7);
管理连接的生存周期;

配置安全策略
ISAKMP/IKE策略包含以下参数:策略的序列号、加密算法、散列算法、验证方法、DH组、生存周期等

R1(config)#crypto isakmp policy 1
//用于建立建立ISAKMP/IKE的管理连接策略;
//每个策略对应一个序列号,范围从1~10000,数值越低,优先级越高;
R1(config-isakmp)#encryption des
//用于指定管理连接建立的最后两个报文(身份验证)采用何种加密算法(des、3des、aes)
R1(config-isakmp)#hash sha
//指定了验证过程采用的散列算法(sha、md5)
R1(config-isakmp)#authentication pre-share
//指定设备身份验证的方式{pre-shara(预共享密钥)| rsa-encr | rsa-sig}
R1(config-isakmp)#group 1
//用于指定DH密钥组,默认使用DH1;
//组号也大,算法越安全,占用设备的资源也就越多。范围(1、2、5、14、15、16)
R1(config-isakmp)#lifetime 86400  
//指定管理连接的生存周期,默认值为86400s(24小时)
R1#show crypto isakmp policy
//查看配置安全策略的相关配置
Global IKE policy
Protection suite of priority 1      //这里都是策略1指定的各项参数
        encryption algorithm:   DES - Data Encryption Standard (56 bit keys).
        hash algorithm:         Secure Hash Standard
        authentication method:  Pre-Shared Key
        Diffie-Hellman group:   #1 (768 bit)
        lifetime:               86400 seconds, no volume limit
Default protection suite             //这里则显示了设备默认的配置参数
        encryption algorithm:   DES - Data Encryption Standard (56 bit keys).
        hash algorithm:         Secure Hash Standard
        authentication method:  Rivest-Shamir-Adleman Signature
        Diffie-Hellman group:   #1 (768 bit)
        lifetime:               86400 seconds, no volume limit

配置预共享密钥

R1(config)#crypto isakmp key 0 123456 address 192.168.1.1
//其中0表示明文,6表示密文
//123456就是密钥的具体内容
//192.168.1.1就是对端与之共享密钥的对等体设备地址
//IP地址后面如果不加子网掩码的话,默认使用32位掩码
R1#show crypto isakmp key                   //查看预共享密钥的配置
Keyring               Hostname/Address                   Preshared Key
//明文状态下,如果是密文状态下,密钥内容将不会显示
default               192.168.1.1                        123456

ISAKMP/IKE阶段2

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

定义对等体间需要保护何种流量;
定义用来保护数据的安全协议;
定义传输模式;
定义数据连接的生存周期及密钥刷新的方式;

IPSec对等体一般是通过ACL来匹配那些需要加密传输的虚拟专用网流量。

ISAKMP/IKE阶段2建立过程

SA连接由三个要素定义:

安全参数索引(SPI):用于唯一标识每条SA连接;
安全协议的类型:IPSec定义了两种安全协议,即AH(认证头协议)和ESP(封装安全载荷协议);
目的IP地址;

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。

8.配置实现IPSec 虚拟专用网

要求:
(1)如上图所示,配置相关的地址,使用路由器充当PC机。除了ISP不用配置默认路由,其他都需要配置默认路由。
(2)分别在R2和R4上配置Ipsec虚拟专用网,注意配置相关的参数需要一致。
(3)在R1上ping R5 测试是否能通信。
(4)使用NAT实现,内部主机能访问ISP。

IPSec 虚拟专用网原理与配置

先配置IP,r1,r2,r4,r5都做下一跳
如r1:

ip route 0.0.0.0 0.0.0.0 192.168.1.1

在r2上配置管理连接

crypto isakmp policy 1
 encr aes               加密算法
 hash  sha          认证算法
 authentication pre-share   声明设备认证方式为“预先共享密钥”
 group 2            采用DH算法的强度为group2
 lifetime 10000         管理连接生存周期

crypto isakmp key benet.123 address 201.0.0.2 配置“预先共享密钥”

access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 (虚拟专用网保护的流量)

crypto ipsec transform-set test-set ah-sha-hmac esp-aes  (数据连接协商参数)

crypto map test-map 1 ipsec-isakmp   将数据连接相关配置设定为MAP
 set peer 201.0.0.2         虚拟专用网对端地址
 set transform-set test-set         数据传输采用的传输集
 match address 101          匹配的ACL
将MAP在外部接口应用:
int F1/0
crypto map test-map

在r4上配置

crypto isakmp policy 1
 encr aes               加密算法
 hash  sha          认证算法
 authentication pre-share   声明设备认证方式为“预先共享密钥”
 group 2            采用DH算法的强度为group2
 lifetime 10000         管理连接生存周期

crypto isakmp key benet.123 address 201.0.0.2  配置“预先共享密钥”
access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255 (虚拟专用网保护的流量)

crypto ipsec transform-set test-set ah-sha-hmac esp-aes  (数据连接协商参数)

crypto map test-map 1 ipsec-isakmp   将数据连接相关配置设定为MAP
 set peer 200.0.0.1         虚拟专用网对端地址
 set transform-set test-set         数据传输采用的传输集
 match address 101          匹配的ACL
3、将MAP在外部接口应用:
int F0/0
crypto map test-map

做完上面 r1与r5可以通过虚拟专用网互通

解决内部主机访问internet

access-list 102 deny   ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255(拒绝虚拟专用网的流量)
access-list 102 permit ip any any (放行所有流量)

注明:当有NAT和虚拟专用网时,先匹配NAT,后匹配虚拟专用网。所以要拒绝虚拟专用网的流量。

ip nat inside source list 102 interface FastEthernet1/0 overload

接口上启用nat功能:
  int  f0/0
    ip nat  inside

   int  f1/0
    ip nat  outside

这时r1就能访问r3了

r5访问r3配置如下

access-list 102 deny   ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255(拒绝虚拟专用网的流量)
access-list 102 permit ip any any (放行所有流量)

ip nat inside source list 102 interface FastEthernet0/0 overload

接口上启用nat功能:
  int  f1/0
    ip nat  inside

   int  f0/0
    ip nat  outside

完成!!!!!!!!!!