一、IPSEC原理
(一)IPSEC的基本功能
1、  IPSEC的功能
IPSEC提供通过IP网络的数据安全传输的机制。确保数据的机密性、完整性、真实性。
IPSEC是一套协议,不一定特应的机密、认证和算法。

 

2IPSEC的安全性
  数据的机密性:IPSEC在传输时加密数据,保证不被窃听数据,即使被拦截也不可读。
  数据完整性:以确保数据没有被篡改。
  数据原始认证:即确保数据是希望发送者发送的。
  Anti-replay:确保每一个数据包是唯一的非复制的。

 

(二)ipsec协议

 

1、  IKE:提供一种安全参数协商和创建验证密钥的框架。提供安全密钥交换能力。
2、  ESP:提供加密和认证。ESP主要用于IPSEC。提供内容加密,也提供认证和完整性检查。提供DES,3DESAES加密。

3、 AH:是一种安全协议,提供数据认证。只提供认证和完整性检查,只能提供数据是合法者传送,且数据未被改。提供:HMAC-SHA1HMAC-MD5HMAC的认证

 

(三)IPSEC的两种模式
      1、隧道模式:加密和保护完整的IP数据包。隧道模式加密或隐藏数据包的IP头。加密设备自身拥有IP地址用于新的报头。可以被ESPAH或者两者一起部署。因新的IP报头导致增加了约20字节
      2、传输模式:因为隧道模式中数据包扩展约20字节。在转发小的数据包会出现问题。传输模式通过增加ESPAHIP头和传输协议和数据间,而 不是增加新的IP报头。所以会有更少的数据包扩展。这种模式和GRE合在一起用很好。因为GRE会增加自已的IP报头。隐藏终端的IP地址。

 

标准数据:
L2
IP
TCP/UDP  4层以上数据
 
传输模式:
L2
IP
ESP头或AH
TCP/UDP  4层以上数据
ESP

 

隧道模式:
L2
新的IP
ESP头或AH
IP
TCP/UDP  4层以上数据
ESP

 

 

(四)IKE(互联网密钥交换)

 

 

IKE的两个阶段:

 

1、 IKE SA:

 

1IKE第一阶段的作用:
IKE SA 。建立IKE两端的SA。协商IKE策略集,认证对端,为第二阶段IPSEC SA的传输,在端点间建一个安全通信通道。  第一阶段有两种模式:主模式和侵占模式。
2IKE 1 阶段有三次协商过程及主要参数:

 

(1)              IKE SA交换: 协商砍认有关安全策略的过程。交换加密算法、认证算法、认证方法。
加密算法:DES  3DES

认证算法:如:MD5 SHA等。

认证方法:如:pre-share(预共享密钥)rsa-sig(RSA签名认证)rsa-ener(RSA加密nonces认证)

   2Diffie-heleman密钥交换

 

        一种公钥交换模式。交换diffie-heleman公共值和辅助信息。加密密钥在这个时候产生。有两组:一组定义了768位算法;一组定义了1024位的MOPP算法。根据这些产生对称密钥。即配IKE中的 group 参数的配置

 

3)认证对端身份

 

 用于交换双方的ID信息和验证数据。进行身份验证和对整个一阶段的IKE SA交换进行验证。主要是配置这三种认证方法(pre-share(预共享密钥)rsa-sig(RSA签名认证)rsa-ener(RSA加密nonces认证))的具体认证参数。前面只是指定了用哪种认证方法,但没有确定每种认证方法的认证参数和内容。这里就是指定选中的认证方法的认证参数和内容。

 

 

 

2、  IPSEC SA阶段:第二阶段:

 

IKE SA第一阶段创建 IKE安全通道下,生成IPSEC SA

主要是协商IPSEC 参数,建立 IPSEC SA,及协商IPSEC 生命周期等。

 

安全联盟SA,也叫 ipsec sa ,也叫转换集。

 

SA SPI安全索引、目标IP地址、IPSEC 协议( 包括加密算法、认证算法、传输模式、生命周期)组成。这三项组成唯一的SA

 

 

   

二、配置步骤:

 

1、 IKE第一阶段的协商配置。ISAKMP的配置。

 

加密算法
认证算法

认证方法:如:pre-share(预共享密钥)rsa-sig(RSA签名认证)rsa-ener(RSA加密nonces认证)

            Diffie-helemen密钥交换

 

 

2、 配置IKE第二阶段。即ipsec sa的配置
       
         配置: 加密算法

认证算法

传输模式

生命周期

 

3、  配置加密映射表,并把ipsec sa关联于加密映射表
并把访问控制列表应用于加密映射表,设定对端IP地址
(还可以先配置一个动态加密映射表关联IPSEC SA,再把动态加密映射表关联到加密映射表)

 

 

4、  配置受保护的数据流的访问列表
配置需要加密的数据流,即受保护的数据。哪些数据可以通过×××隧道传输到另一方
用访问控制表列来控制

 

5、  把映射表应用于建立×××隧道的接口

 

 

 

 

 

 

 

 

 

 

三、配置实例:

 

(一)   IKE策略的配置

 

(config)#crypto isakmp enable                         //启用IKE
(config)#no crypto isakmp enable
(config)#crypto isakmp policy {policy_number}          //定义策略,后面是策略号
(isakmap)#encryption {des |3des}                      //定义加密算法
(isakmp)#hash  {sha|md5}                           //定义散列算法,即认证算法
(isakmp)#authentication {pre-share | rsa-sig  | rsa-encr }   //定义认证方法

 

Pre-share: 通过手工配置预共享密钥为认证方法。
Rsa-sig: 要求使用CA并且提供防止抵赖功能。默认值
Rsa-encr: 不要CA,提供防止抵赖功能。

 

(isakmp)#group {1 | 2}                              //定义diffie-heleman 密钥组
(isakmp)#lifetime {seconds}                         //定义IKE SA的生命周期  

 

 

三种认证方法的配置:

 

1、 pre-share

 

  (config)#crypto isakmp key {key-string } {address | hostname} {peer-address | peer-hostname }

 

Key-sting:共享密钥
例:
(config)#crypto isakmp key zj8s address 192.168.3.11    //指定对端路由器接口的IP地址或名称。

 

 

 

 

(二)   IPSEC SA的配置,即IKE第二步的配置

 

(config)# crypto ipsec transform-set  {name} {ah-md5-hmac | ah-sha-hmac } {esp-des |esp-3des |esp-rfc-1829}    //name为变换集名。 后面分别是认证算法和加密算法定义

 

crypto-transfom#mode {tunnel |transport }       //选择模式,是隧 道模式还是传输模式

 

config#crypto ipsec security-association liftmme seconds {seconds}  //按时间定义IPSEC SA全局生命期,当达到一定秒数则生命到期。

 

config#crypto ipsec security-association liftmme killobytes {killobytes}  //按字节数定义IPSEC SA全局生命期。当达到一定的秒数则生命到期。

 

 

()定义访问列表,以定义受保护的数据流

 

(config)#access-list 101 permit 192.168.9.0 0.0.0.255     192.168.3.0 0.0.0.255
(confgi)#access-list 101 deny any any

 

 

 

 

()定义保密图

 

   可先定义动态保密图,与变换集相关联,再把动态保密图应用到保密图中。
   也可直接把变换集关联到保密图中。

 

 

2、  定义动态保密图(也叫动态保密映射表)

 

 

(cryptomap)# set transform-set {transform-set-name}       //引用定义的变换集,即ipsec SA
(cryptomap)# match address access-list {lsit-number}      //引用受保护的数据流的访问列表                
(cryptomap)#set peer {hostmae |addrss }                //设置对端IP地址或名称

 

config#crypto map {map-name} {map-sequence} ipsec-isakmp  dynamic {dyn-map-name}

 

//把动态保密图加入到保密图中。
Ipsec-isakmp:指自动用IKE创建的策略。还可以手动创建IKE策略 
    Map-name map-sequence是保密图的名和序号
Dyn-map-name:是上面定义过的动态保密图的名称。

 

2、可以直接定义保密图
config)#crypto map { map-name} {map-sequence} {ipsec-isakmp | ipsec-manual}  //定义保密图名和序号。Ipsec-isakmp 是自动用IKE创建策略。 Ipsec-manual是手工创建

 

(cryptomap)# set transform-set {transform-set-name}       //引用定义的变换集,即ipsec SA
(cryptomap)# match address access-list {lsit-number}      //引用受保护的数据流的访问列表                
(cryptomap)#set peer {hostmae |addrss }                //设置对端IP地址或名称

 

 

 

(五)把保密映射表应用到接口

 

 

config-if# crypto map {map-name}    // 把保密图应用到接口