完整的IPSec协议由加密、摘要、对称密钥交换、安全协议四个部分组成。
两台路由器要建立IPSecVPN连接,就需要保证各自采用加密、摘要、对称密钥 交换、安全协议的参数一致。但是IPSec协议并没有确保这些参数一致的手段。 同时,IPSec没有规定身份认证,无法判断通信双方的真实性,这就有可能出现 假冒现象.
因此,在两台IPSec路由器交换数据之前就要建立一种约定,这种约定称为SA (Security Association, 安全关联),它是单向的,在两个使用IPSec的实体(主机或路由器)间建立逻辑连接,定义了实体间如何使用安全服务(如加密) 进行通信。SA 包含安全参数索引 (Security Parameter Index,SPI)、IP目的地 址、安全协议 (AH 或者ESP) 三个部分。
协商创建一个通信信道 (IKE SA),并对该信道进行验证,为双方进一步的IKE通信 提供机密性、消息完整性及消息源验证服务,即构建一条安全的通道。
IKE第一阶段的协商可以采用两种模式:主模式 (Main Mode) 和野蛮模式(Aggressive Mode),对于IP地址不是固定的情况(如ADSL 拨号上网,内置SIM 卡拨号运营商网络上网),并且双方都希望采用预共享密钥验证方法来创建IKE SA, 就需要采用野蛮模式。主模式一般采用IP地址方式标识对端设备,两端都是固定IP 地址的情况。
主模式在IKE协商的时候要经过三个阶段: SA交换、密钥交换、ID 交换和验证;
野蛮模式只有两个阶段: SA交换和密钥生成、ID交换和验证。
主模式一般采用IP地址方式标识对端设备;野蛮模式可以采用IP地址方式或者域 名方式标识对端设备。相对而言,主模式更安全,而野蛮模式协商速度更快,VPN 的两个或多个设备都要设置成相同的模式VPN 才能建立成功。
该阶段协商以下参数:
1)加密算法。可以选择DES 、3DES、AES等。
2)摘要 (hash) 算法。可以选择MD5或SHA1。
3)身份认证方法。可以选择预置共享密钥 (pre-share)认证或Kerberos方式认证。
4)Diffie-Hellman密钥交换 (Diffie-Hellman key exchange,DH)算法一种确保 共享密钥安全穿越不安全网络的方法,该阶段可以选择DH1(768bit 长的密钥)、DH2(1024bit 长的密钥)、DH5 (1536bit 长的密钥)、DH14(2048bit 长的密钥)、DH15(3072bit 长的密钥)、DH16(4096bit 长的密钥)。
5)生存时间 (life time)。选择值应小于86400秒,超过生存时间后,原有的SA就 会被删除。
上述参数集合就称为IKE策略 (IKE Policy),而IKE SA就是要在通信双方之间找到相同的Policy。
第二阶段采用快速模式,利用第一阶段协商出来的共同的秘钥来进行加密,使 用已建立的IKE SA,协商IPSec参数,为数据传输建立IPSec SA。
该阶段协商以下参数:
1)加密算法。可以选择DES、3DES。
2)Hash 算法。可以选择MD5、SHA1。
3)生存时间 (life time)。
4)安全协议。可以选择AH或ESP。
5)封装模式。可以选择传输模式或隧道模式。
上述参数称为变换集 (Transform Set)。
第二阶段如果响应超时,则重新进行第一阶段的IKE SA协商。
基于IPSec的VPN 隧道 配置通常用于企业分支与企业总部之间。如图所示,某企业的总部 与分支机构之间需要通过IPSecVPN 建立连接。其中RouterA为企业分支机 构的网关, RouterB为企业总部的网关,分支与总部通过公网建立基于IPSec的安全通信。假设分支子网为10.1.1.0/24,总部子网为10.1.2.0/24。
(1)配置接口的IP地址和到对端的静态路由,保证两端路由可达。
(2)配置ACL, 以定义需要IPSec保护的数据流。
(3)配置IPSec安全提议,定义IPSec的保护方法。
(4)配置IKE对等体,确定对等体间IKE协商时的参数。
(5)配置安全策略,并引用ACL、IPSec 安全提议和IKE对等体,确定对每种数据流采取的保护方法。
(6)在接口上应用安全策略组,使接口具有IPSec的保护功能。
(1)分别在RouterA 和RouterB 上配置接口的IP地址和到对端的静态路由,确保IP网络是连通的。
在RouterA 上配置接口的IP地址,命令如下:
[Huawei]sysname RouterA
[RouterA]interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0]ip address 202.138.163.1 255.255.255.0 //配置接口的IP地址
[RouterA-GigabitEthernet1/0/0]quit
[RouterA]interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0]ip address 10.1.1.1255.255.255.0
[RouterA-GigabitEthernet2/0/0]quit
在RouterA上配置到对端的静态路由,为了配置简洁,此处假设到对端的下一跳地址为202.138.163.2。因此添加去往外网和内网的静态路由即可。
[RouterA]ip route-static 202.138.162.0 255.255.255.0 202.138.163.2
[RouterA]ip route-static 10.1.2.0 255.255.255.0 202.138.163.2
[Huawei]sysname RouterB
[RouterB]interface gigabitethernet 1/0/0
[RouterB-GigabitEthernet1/0/0]ip address 202.138.162.1 255.255.255.0
[RouterB-GigabitEthernet1/0/0]quit
[RouterB]interface gigabitethernet 2/0/0
[RouterB-GigabitEthernet2/0/0]ip address 10.1.2.1255.255.255.0
[RouterB-GigabitEthernet2/0/0]quit
[RouterB]ip route-static 202.138.163.0 255.255.255.0 202.138.162.2
[RouterB]ip route-static 10.1.1.0 255.255.255.0 202.138.162.2
同样在 RouterB上配置与RouterA相对应的配置:
在RouterA上配置ACL, 定义由子网10.1.1.0/24到子网10.1.2.0/24的数据流。
[RouterA]acl number 3100
[RouterA-acl-adv-3100]rule 5 permit ip source 10.1.1.00.0.0.255 destination 10.1.2.00.0.0.255
[RouterA-acl-adv-3100]quit
在RouterB上配置ACL, 定义由子网10.1.2.0/24到子网10.1.1.0/24的数据流。
[RouterB]acl number 3100
[RouterB-acl-adv-3100]rule 5 permit ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[RouterB-acl-adv-3100]quit
在RouterA上配置IPSec安全提议。
[RouterA]ipsec proposal tran1//创建名为tran1的安全提议
[RouterA-ipsec-proposal-tran1]esp authentication-algorithm sha2- 256//配置ESP的认证算法为SHA2-256
[RouterA-ipsec-proposal-tran1]esp encryption-algorithm aes-128//配置ESP的加密算法为AES-128
[RouterA-ipsec-proposal-tran1]quit
同样在RouterB上配置相关的IPSec安全提议。
[RouterB]ipsec proposal tran1
[RouterB-ipsec-proposal-tran1]esp authentication-algorithm sha2- 256
[RouterB-ipsec-proposal-tranl]esp encryption-algorithm aes-128
[RouterB-ipsec-proposal-tran1]quit
(4)配置IKE对等体
在RouterA上配置IKE安全提议。
[RouterA]ike proposal 5
[RouterA-ike-proposal-5]encryption-algorithm aes-128
[RouterA-ike-proposal-5]authentication-algorithm sha2-256
[RouterA-ike-proposal-5]dh group14 //配置DH 算法参数
[RouterA-ike-proposal-5]quit
在RouterA上配置IKE对等体,并根据默认配置,配置预共享密钥和对端ID。 [RouterA]ike peer spub
[RouterA-ike-peer-spub]undo version 2
[RouterA-ike-peer-spub]ike-proposal 5
[RouterA-ike-peer-spub]pre-shared-key cipher Huawei //配置预共享密 钥为Huawei
[RouterA-ike-peer-spub]remote-address 202.138.162.1 //配置远端地址
[RouterA-ike-peer-spub]quit
在RouterB 上配置IKE安全提议
[RouterB]ike proposal 5
[RouterB-ike-proposal-5]encryption-algorithm aes-128
[RouterB-ike-proposal-5]authentication-algorithm sha2-256
[RouterB-ike-proposal-5]dh group14
[RouterB-ike-proposal-5]quit
在RouterB上配置IKE对等体,并根据默认配置,配置预共享密钥和对端ID。
[RouterB]ike peer spua
[RouterB-ike-peer-spua]undo version 2
[RouterB-ike-peer-spua]ike-proposal 5
[RouterB-ike-peer-spua]pre-shared-key cipher huawei
[RouterB-ike-peer-spua]remote-address 202.138.163.1
[RouterB-ike-peer-spua]quit
在RouterA上配置IKE动态协商方式安全策略。
[RouterA]ipsec policymap110 isakmp
[RouterA-ipsec-policy-isakmp-map1-10]ike-peer spub
[RouterA-ipsec-policy-isakmp-map1-10]proposal tran1
[RouterA-ipsec-policy-isakmp-map1-10]security acl 3100
[RouterA-ipsec-policy-isakmp-map1-10]quit
在RouterB上配置IKE动态协商方式安全策略。
[RouterB]ipsec policy usel 10 isakmp
[RouterB-ipsec-policy-isakmp-use1-10]ike-peer spua
[RouterB-ipsec-policy-isakmp-usel-10]proposal tran1
[RouterB-ipsec-policy-isakmp-use1-10]security acl 3100
[RouterB-ipsec-policy-isakmp-use1-10]quit
此时分别在RouterA和RouterB上执行display ipsec policy, 将显示所配置的信息。
在RouterA的接口上引用安全策略组。
[RouterA]interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0]ipsec policy map1
[RouterA-GigabitEthernet1/0/0]quit
在RouterB的接口上引用安全策略组。
[RouterB]interface gigabitethernet 1/0/0
[RouterB-GigabitEthernet1/0/0]ipsec policy use1
[RouterB-GigabitEthernet1/0/0]quit