一、IPSec VPN基本知识
完整的IPSec协议由加密、摘要、对称密钥交换、安全协议四个部分组成。
两台路由器要建立IPSecVPN连接,就需要保证各自采用加密、摘要、对称密钥 交换、安全协议的参数一致。但是IPSec协议并没有确保这些参数一致的手段。 同时,IPSec没有规定身份认证,无法判断通信双方的真实性,这就有可能出现 假冒现象.
因此,在两台IPSec路由器交换数据之前就要建立一种约定,这种约定称为SA (Security Association, 安全关联),它是单向的,在两个使用IPSec的实体(主机或路由器)间建立逻辑连接,定义了实体间如何使用安全服务(如加密) 进行通信。SA 包含安全参数索引 (Security Parameter Index,SPI)、IP目的地 址、安全协议 (AH 或者ESP) 三个部分。
二、构建IKE SA (第一阶段)
协商创建一个通信信道 (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)参数协商。
该阶段协商以下参数:
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。
(2)交换密钥。
(3)双方身份认证。
(4)构建安全的IKE通道。
三、构建IPSec SA (第二阶段)
第二阶段采用快速模式,利用第一阶段协商出来的共同的秘钥来进行加密,使 用已建立的IKE SA,协商IPSec参数,为数据传输建立IPSec SA。
构建IPSec SA的步骤如下:
(1)参数协商。
该阶段协商以下参数:
1)加密算法。可以选择DES、3DES。
2)Hash 算法。可以选择MD5、SHA1。
3)生存时间 (life time)。
4)安全协议。可以选择AH或ESP。
5)封装模式。可以选择传输模式或隧道模式。
上述参数称为变换集 (Transform Set)。
(2)创建、配置加密映射集并应用,构建IPSec SA。
第二阶段如果响应超时,则重新进行第一阶段的IKE SA协商。
四、IP sec VPN 配置
基于IPSec的VPN 隧道 配置通常用于企业分支与企业总部之间。如图所示,某企业的总部 与分支机构之间需要通过IPSecVPN 建立连接。其中RouterA为企业分支机 构的网关, RouterB为企业总部的网关,分支与总部通过公网建立基于IPSec的安全通信。假设分支子网为<10.1.1.0>/24,总部子网为<10.1.2.0>/24。
1、配置采用IKE协商方式建立IPSec 隧道步骤
(1)配置接口的IP地址和到对端的静态路由,保证两端路由可达。
(2)配置ACL, 以定义需要IPSec保护的数据流。
(3)配置IPSec安全提议,定义IPSec的保护方法。
(4)配置IKE对等体,确定对等体间IKE协商时的参数。
(5)配置安全策略,并引用ACL、IPSec 安全提议和IKE对等体,确定对每种数据流采取的保护方法。
(6)在接口上应用安全策略组,使接口具有IPSec的保护功能。
2、配置接口,确保IP网络是连通的
(1)分别在RouterA 和RouterB 上配置接口的IP地址和到对端的静态路由,确保IP网络是连通的。
在RouterA 上配置接口的IP地址,命令如下:
<Huawei>system-view
[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>system-view
[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相对应的配置:
3、配置ACL, 定义需要保护的数据流
在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
4、创建IPSec安全提议
在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
6、创建安全策略
在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