IPSec协议产生的背景
用户在互联网上传输的数据容易遭受窃取,需要安全手段保证通信的机密性、完整性、合法性。
IPSec (IP Security )是一种由IETF设计的端到端的确保IP层通信安全的机制。
IPSec协议可以为IP网络通信提供透明的安全服务,保护TCP/IP通信免遭窃听和篡改,保证数据的完整性和机密性,有效抵御网络攻击。
IPSec不是一个单独的协议,而是一组协议,IPSec协议已经成为工业标准的网络安全协议。
IPSec协议使用下面两种协议对IP报文进行保护
AH协议(Authentication Header ,IP协议号51 )
可以同时提供数据完整性确认、数据来源确认、防重放等安全特性;AH常用摘要算法HMAC-MD5和HMAC-SHA1实现该特性。
ESP协议(Encapsulating Security Payload ,IP协议号50 )
可以同时提供数据完整性确认、数据加密、防重放等安全特性;ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用HMAC-MD5或HMAC-SHA1来实现数据完整性。
SA
安全关联(Security Association ,简称SA )是两个IPSec实体(主机、安全网关)之间经过协商建立起来的一种协定,内容包括:采用何种IPSec协议(AH还是ESP )、运行模式(传输模式还是隧道模式)、验证算法、加密算法、加密密钥、密钥生存期、抗重放窗口,从而决定了保护什么、如何保护以及谁来保护。可以说SA是构成IPSec的基础。
AH和ESP都使用SA中的参数来对IP数据进行保护。
SA是单向的,入方向(inbound )SA负责处理接收到的数据包,出方向(outbound )SA负责处理要发送的数据包。因此每个通信方必须要有两种SA , 一个入方向SA ,一个出方向SA ,这两个SA构成了一个SA束(SA Bundle )。
两个IPSec实体之间的IKE协商的两个阶段
第一阶段:建立ISAKMP SA (也可称为IKE SA )
两种模式:
》主模式(main mode ):6条ISAKMP消息交互。
》积极模式(aggressive mode ):3条ISAKMP消息交互。
ISAKMP SA可以用来保护多个第二阶段IPSec SA协商的通信过程。
第二阶段:建立IPSec SA
一种模式:
》快速模式(quick mode ):3条ISAKMP消息交互。
IPSec SA是为IP数据提供安全保护,即前面概念中介绍的SA。
IKE协商第一阶段(主模式)
第一阶段无论是使用main mode还是aggressive mode ,目的都是产生ISAKMP/IKE SA ,用ISAKMP/IKE SA为产生第二阶IPSec SA的ISAKMP消息交互过程进行保护。
第1、2个ISAKMP报文:
IPSec实体双方交互SA载荷,选择相同ISAKMP消息的保护策略及认证方式,双方必须达成一致,否则第一阶段协商失败。
第3、4个ISAKMP报文:
IPSec实体双方交互DH算法的公共值及密钥计算材料,从而双方计算出一系列相同的密钥。
第5、6个ISAKMP报文:
第5、6个报文使用第3、4个报文交互后产生的相关密钥进行验证及加密处理。IPSec实体双方分别对对方进行验证,若使用pre-share key的验证方式,即判断对方是否拥有与本地相同的pre-share key。双方的Key配置必须一致,否则第一阶段协商失败。
IKE协商第二阶段总结(快速模式 )
第二阶段交互的ISAKMP消息均被第一阶段产生的ISAKMP/IKE SA保护。
确定IPSec SA的保护策略,使用AH还是ESP、传输模式还是隧道模式、被保护的数据是什么等,IPSec通信实体双方对于这些安全策略必须达成一致,否则IKE第二阶段协商将无法通过。
为降低密钥之间的关联性,第二阶段采用PFS重新进行DH交换,并计算出新的共享密钥,从而计算出IPSec SA中用于加密和验证的密钥。
第二阶段协商的目标就是产生真正用于保护IP数据的IPSec SA。
IPSec协议工作流程及配置命令总结
IPSEC静态隧道组网
组网拓扑
配置要点
1、配置路由器R1和R2,使R1和R2能够正常访问互联网,并互相能够ping通。
2、在R1配置静态IPSEC VPN隧道
(1)配置ipsec感兴趣流
access-list 101 permit ip 192.168.0.0 0.0.0.255 192.168.1.0 0.0.0.255 //指定感兴趣流为源地址192.168.0.0/24,目的地址为192.168.1.0/24的网段。
(2)配置isakmp策略
crypto isakmp keepalive 5 periodic //配置IPSEC DPD探测功能
crypto isakmp policy 1//创建新的isakmp策略
authentication pre-share //指定认证方式为“预共享密码”,如使用数字证书配置“authentication rsa-sig”,如使用数字信封配置“authentication digital-email”。
encryption 3des//指定使用3DES进行加密
group 2 //
(3)配置预共享密钥
crypto isakmp key 0 ruijie address 10.0.0.1//指定peer 10.0.0.1的预共享密钥为“ruijie”,对端也必须配置一致的密钥。如使用数字证书/信封认证则无需配置。
(4)配置ipsec加密转换集
crypto ipsec transform-set myset esp-des esp-md5-hmac //指定ipsec使用esp封装des加密、MD5检验
(5)配置ipsec加密图
crypto map mymap 5 ipsec-isakmp //新建名称为“mymap”的加密图
set peer 10.0.0.1//指定peer地址
set transform-set myset//指定加密转换集“myset”
match address 101//指定感兴趣流为ACL 101
(6)将加密图应用到接口
interface F0/0
crypto map mymap
3、在R1配置路由,将局域网2网段路由指向出口
4、在R2配置静态IPSEC VPN隧道(跟R1配置类似)
5、在R2配置路由,将局域网1网段路由指向出口
注意:内网1和内网2需要互访的IP网段不能重叠。
配置验证
1、在R1上以源地址192.168.0.1 ping 192.168.1.1,能够正常通信
R1# ping 192.168.1.1 source 192.168.0.1
Sending 5, 100-byte ICMP Echoes to 192.168.1.1, timeout is 2 seconds:
< press Ctrl+C to break >
!!!!
2、在R1上查看isakmp、ipsec sa是否已经协商成功
Ruijie# show crypto isakmp sa //查看isakmp sa协商情况
destination source state conn-id lifetime(second)
10.0.0.2 10.0.0.1 IKE_IDLE 084 129 //isakmp协商成功,状态为IKE_IDLE
Ruijie# show crypto ipsec sa //查看ipsec sa协商情况
Interface: GigabitEthernet 0/0
Crypto map tag:mymap //接口下所应用的加密图名称
local ipv4 addr 10.0.0.1 //进行isakmp/ipsec协商时所使用的IP地址
media mtu 1500
==================================
sub_map type:static, seqno:5, id=0
local ident (addr/mask/prot/port): (192.168.0.0/0.0.0.255/0/0)) //感兴趣流源地址
remote ident (addr/mask/prot/port): (192.168.1.0/0.0.0.255/0/0)) //感兴趣流目的地址
PERMIT
#pkts encaps: 4, #pkts encrypt: 4, #pkts digest 4//成功封装、加密、摘要报文个数
#pkts decaps: 4, #pkts decrypt: 4, #pkts verify 4//成功解封装,解密、检验报文个数
#send errors 0, #recv errors 0//发送、接收错误报文个数,正常情况下该统计不增加
Inbound esp sas:
spi:0x2ecca8e (49072782)//ipsec sa入方向的spi
transform: esp-des esp-md5-hmac //ipsec加密转换集为esp-des esp-md5-hmac
in use settings={Tunnel Encaps,}//采用隧道模式
crypto map mymap 5
sa timing: remaining key lifetime (k/sec): (4606998/1324) //生命周期到期还有
IV size: 8 bytes //IV向量长度为8
Replay detection support:Y //抗重播处理
Outbound esp sas:
spi:0x5730dd4b (1462820171)//只有看到入和出spi才说明ipsec sa已经协商成功。
transform: esp-des esp-md5-hmac
in use settings={Tunnel Encaps,}
crypto map mymap 5
sa timing: remaining key lifetime (k/sec): (4606998/1324)
IV size: 8 bytes
Replay detection support:Y
IPSEC动态隧道组网
组网需求
某企业使由于业务拓展,在全国各地建立了若干分支机构;总部出口路由器通过运营商专线连接到互联网,各分支可能通过专线或者ADSL方式接入互联网。分支机构在业务开展过程中需要访问位于总部的业务服务器,同时需要对分支与总部间通信的数据进行加密,保证业务安全。
该场景通过在总部出口路由器上布署动态的IPSEC VPN来接受各分支机构的拨入,满足分支与总部间的业务互访和数据加密需求。
组网拓扑
配置要点
1、配置总部路由器和各分支路由器,使其能够正常访问互联网
2、在总部出口路由器上配置动态态IPSEC VPN隧道
(1)配置isakmp策略
crypto isakmp policy 1 //创建新的isakmp策略
encryption 3des //指定使用3DES进行加密
authentication pre-share //指定认证方式为“预共享密码”,如使用数字证书配置“authentication rsa-sig”,如使用数字信封配置“authentication digital-email”。
(2)配置预共享密钥
crypto isakmp key 0 ruijie address 0.0.0.0 0.0.0.0 //配置预共享密钥为“ruijie”,IPSEC客户端也必须配置相同的密钥。由于对端的 ip地址是动态的,因此使用address 0.0.0.0 0.0.0.0代表所有ipsec客户端
(3)配置ipsec加密转换集
crypto ipsec transform-set myset esp-des esp-md5-hmac //指定ipsec使用esp封装des加密、MD5检验
(4)配置动态ipsec加密图
crypto dynamic-map dymymap 5 //新建名为“dymymap”的动态ipsec加密图
set transform-set myset //指定加密转换集为“myset”
(5)将动态ipsec加密图映射到静态的ipsec加密图中
crypto map mymap 10 ipsec-isakmp dynamic dymymap //将动态的“dymymap”ipsec加密图映射至静态ipsec加密图mymap中
(6)将加密图应用到接口
interface GigabitEthernet 0/0
crypto map mymap
3、在总部路由器上配置路由,将各分支网段路由指向出口
4、在分支路由器上配置静态IPSEC VPN隧道(同上静态隧道组网)
(1)配置ipsec感兴趣流
(2)配置isakmp策略
(3)配置预共享密钥
(4)配置ipsec加密转换集
(5)配置ipsec加密图
(6)将加密图应用到接口
5、在分支路由器上配置路由,将总部网段路由指向出口
注意:需要使用IPSEC互访的IP网段不能重叠。
配置验证
(同上静态隧道组网验证)