六、IPSec VPN IKEL2L
1 概念
- IPSec : Internet Protocol Security基于IP协议的安全,IPsec是个协议组内含多种协议
IPSec详细介绍
- 在网络层为ip数据包提供安全服务的协议组,包括私密性,完整性,防重放攻击,以及身份认证;
- 优点∶
■ 对下层没有要求(与物理层和数据链路层无关)
■ 对上层没有要求( 与传输层和应用无关)
■ 易于扩展(与网络规模无关)
- VPN : Virtual Private Network 虚拟专用网络
- IPSec VPN : IPSec协议组实现IP数据包传输安全的一种VPN技术
2 IPSec VPN的类型
site-to-Site VPN
- 用于两个站点的内部网络可以安全的相互通信
- 特点:站点通常都具备固定的公网ip地址
- 包括:L2L, DMVPN,GETVPN,GRE over IPSec, SVTL, EZVPN
Remote Access VPN
- 用于移动用户或者远程办公的个体用户连接到中心网络.
- 特点:中心网络具备固定的公网IP地址,远端用户P地址不固定心
- 包括:SSLVPN,EZVPN,DVTI(其中 SSLVPN不属于IPSec VPN)
3 IPSec协议组的组成
IPSec由三部分组成
- IKE(Intermet Key Exchange)互联网秘钥交换
- AH(Authentication Header)认证头部
- ESP(Encapsulation Security Protocol)封装安全协议
3.1 IKE(控制层面)
作用
- IPSec使用IKE来完成对等体之间的认证(PSK)和秘钥的生成与交换(DH算法)
- 协商和维护安全关联SA (Security Association)
- 参数SA是一个集合,包含了加密算法,认证方式等等,可以手动配置里面内容
- 通过认证,排除伪装者
- 自动产生秘钥,并自动更新秘钥
- 动态,安全的交换秘钥
组成部分
- Oakley
- SKEME
- ISAKMP
工作原理
- Oakley负责支持现有或新的算法
- SKEME负责定义秘钥交换方式
- ISAKMP (Internet Security Association and KeyManagement Protocol)负责Message交互.
- Oakley, SKEME相当于是后台程序,ISAKMP相当于前台执行者.(类似OSPF通过LSDB计算出RIB表项)
- 可以简单的认为ISAKMP = IKE
3.2 AH /ESP(数据层面)
概念
- 用做封装实际数据包的头部的两种形式
4 控制层面——IKE详细说明
ISAKMP(IKE)在Peer之间建立一个安全通道来协商Key需要两个阶段来协商完成
4.1 阶段1
- 工作原理
■ 通过Main Mode(6个包)或Aggressive Mode(3个包),协商产生一个双向的ISAKMP SA,该SA内算法用于保护IKE协商过程
【Main Mode协商来回需要6个报文,而Aggresive Mode协商来回只需要3个报文,后者多用在轻量设备(如手机,pos机)】
■ 在这个安全通道中使用非对称密钥算法(DH).得到秘钥(Ka, Kd,Ke, a=Authentication,d=Data, e=Encryption)
■ 使用Ke来保护阶段1的第五个和第六个,以及阶段2的所有Message交互
■ 使用Ka来完成Peer之间的身份认证
■ 使用Kd来产生将来实际加密数据的Key
- 流程图
M1/M2
- 包含通信双方各自的Cookie (8bytes),作为协商序列号,Cqokie=Hash (P,Port,Protocol,Date,Time, Random),阶段1,2均使用相同Cookie
- M1包含发送方的所有SA,M2包含接收方选择的匹配的一个SA(因为可能存在一个总部对多个分公司的情况,所以可以是一对多的情况,只需要匹配SA)
- SA包含对协商消息保护所采用的加密算法,Hash算法,DH秘钥长度,身份认证方式,以及协商的有效期
M3/M4
- 通信双方开始交换DH计算出的公开值,即DH的公钥
- 交换公钥的过程中携带一个随机数Nonce
- (现时标识)交换完以上两个参数以后,开始各自计算Ka, Kd, Ke
- 该交互过程通常不存在故障性
M5/M6
- 通信双方利用计算出的Ke完成对Message的加密
- 通信双方完成身份认证过程
- 故障可能性∶身份认证出现错误,该原因通常是因为PSK不一致造成.
- 排错——第一阶段失败的原因?
收不到
■ 外层IP(通信点IP)路由不可达
收的到
■ 双方没有匹配的SA(停在SA协商阶段,即一二个包)
■ 双方PSK没有设置(停在计算Ka、Kd、Ke时即三四个包,因为计算需要PSK+DH参数)
■ 双方PSK设置不一致(停在身份认证阶段,即五六个包)
4.2 阶段2
- 工作原理
■ 通过Quick Mode(3个包)构建IPSec SA,该SA用于保障后续真实数据的传输,包含对数据封装使用什么协议,加密算法,HMAC算法,工作模式以及感兴趣流量
■ 在ISAKMP的保护下,产生两个单向的IPSec SA,一个用于发送数据,一个用于接收数据
■ 基于阶段1的Kd结合IPSec SA内定义的算法来产生加密实际数据的Key,不过加密需要基于ESP的封装方式,如果是AH则不具备加密的功能,但是他们都有检验完整性的功能
- 流程图
IPSec SA内容
以下探讨的是真实数据的封装和加密方式
■ 使用什么协议封装(ESP,AH)【后面会细说】
■ 使用什么加密算法以及秘钥长度( DES,3DES,AES)
■ 使用什么认证算法以及输出长度(MD5,SHA)
■ 工作模式(Tunnel,Transport)
■ 感兴趣流量,即哪些数据需要进行加密
■ 保护阶段2协商的有效期,也就是秘钥的有效期
■ 是否启用DH算法.(可选项)工作模式
■ Transport Mode传输模式∶加密点等于通信点
■ Tunnel Mode隧道模式:加密点不等于通信点.
■ 如果加密点与通信点地址不相同,那么必须使用Tunnel模式
■ 如果加密点与通信点地址相同,那么可以使用Transport模式,也可以是Tunnel模式
■ 针对第二种情况,如果使用Tunnel模式,那么会多出一层包头,导致载荷减少
■ 工作模式的不同会影响真实数据中报文的封装格式感兴趣流
■ 需要使用类似ACL的工具来吸取感兴趣流
5 数据层面——AH/ESP详细说明
-
AH (Authentication Header)
■ 提供源认证,完整性校验,但是不提供加解密,现在基本不使用
■ 所有数据都是明文传输R1将IP头部,载荷.KEYMAT,一起做Hash,结果都放到AH头部,再将头部放在IP包头与载荷之间.
■ R2收到也将IP头部,载荷,KEYMAT—起做Hash,将结果与收到的AH头部记录的Hash值进行比对来完成身份认证以及完整性校验.
■ AH头部包含Hash值与序列号

-
ESP (Encapsulation Security Payload)
■ 提供私密性,完整性,源认证功能,数据载荷加密传输
■ ESP头部包含:SPI和序列号
■ ESP尾部用于表明填充长度以及后面是否存在认证字段
■ Authentication Data用于存放HMAC的结果(抓包看不到字段)

-
两者的区别


6 IKE命令

下面为CE1的IPSec VPN的配置部分;基础配置如接口和默认路由不再展示,CE2配置类似于CE1也不再展示
- 修改ISAKMP 中的SA属性
CE1#conf t
CE1(config)#crypto isakmp policy ? <1-10000> Priority of protection suiteCE1(config)#crypto isakmp policy 10CE1(config-isakmp)#?
ISAKMP commands:authentication Set authentication method for protection suite //设置认证方式default Set a command to its defaultsencryption Set encryption algorithm for protection suite //设置对称加密算法的秘钥exit Exit from ISAKMP protection suite configuration modegroup Set the Diffie-Hellman group //设置DH要生成的最终秘钥的长度hash Set hash algorithm for protection suite //设置hash的具体方式 lifetime Set lifetime for ISAKMP security association //设置协商时间no Negate a command or set its defaultsCE1(config-isakmp)#authentication ?pre-share Pre-Shared Keyrsa-encr Rivest-Shamir-Adleman Encryptionrsa-sig Rivest-Shamir-Adleman Signature
CE1(config-isakmp)#authentication pre-shareCE1(config-isakmp)#encryption ?3des Three key triple DESaes AES - Advanced Encryption Standard.des DES - Data Encryption Standard (56 bit keys)
CE1(config-isakmp)#encryption 3desCE1(config-isakmp)#group ?//设置K的长度1 Diffie-Hellman group 12 Diffie-Hellman group 25 Diffie-Hellman group 5
CE1(config-isakmp)#group 1CE1(config-isakmp)#hash ?md5 Message Digest 5sha Secure Hash Standard
CE1(config-isakmp)#hash md5
设置PSK值
CE1(config)#crypto isakmp key 0 cisco address 200.64.0.3//前面的cisco是设置PSK,后面设置的IP地址是对端通信IP
设置IPSec SA
//可以设置认证的类型和加密的形式,以及报头的封装类型
CE1(config)#crypto ipsec transform-set ?WORD Transform set tagCE1(config)#crypto ipsec transform-set 10 ?ah-md5-hmac AH-HMAC-MD5 transformah-sha-hmac AH-HMAC-SHA transformcomp-lzs IP Compression using the LZS compression algorithmesp-3des ESP transform using 3DES(EDE) cipher (168 bits)esp-aes ESP transform using AES cipheresp-des ESP transform using DES cipher (56 bits)esp-md5-hmac ESP transform using HMAC-MD5 authesp-null ESP transform w/o cipheresp-seal ESP transform using SEAL cipher (160 bits)esp-sha-hmac ESP transform using HMAC-SHA authCE1(config)#crypto ipsec transform-set 10 esp-md5-hmac ?ah-md5-hmac AH-HMAC-MD5 transformah-sha-hmac AH-HMAC-SHA transformcomp-lzs IP Compression using the LZS compression algorithmesp-3des ESP transform using 3DES(EDE) cipher (168 bits)esp-aes ESP transform using AES cipheresp-des ESP transform using DES cipher (56 bits)esp-null ESP transform w/o cipheresp-seal ESP transform using SEAL cipher (160 bits)CE1(config)#crypto ipsec transform-set 10 esp-3des esp-md5-hmac
设置工作模式
CE1(config)#crypto ipsec transform-set 10 esp-3des esp-md5-hmac
CE1(cfg-crypto-trans)#mode ?transport transport (payload encapsulation) modetunnel tunnel (datagram encapsulation) modeCE1(cfg-crypto-trans)#mode tunnel
设置感兴趣流
CE1(config)#access-list 100 permit ip host 172.16.0.1 host 192.168.0.1
整合ISAKMP SA和IPSec SA
//isakmp不需要匹配,因为所有的都发
CE1(config)#crypto map CCIE ?<1-65535> Sequence to insert into crypto map entryCE1(config)#crypto map CCIE 10 ? ipsec-isakmp IPSEC w/ISAKMPCE1(config)#crypto map CCIE 10 ipsec-isakmp
CE1(config-crypto-map)#match address 100
CE1(config-crypto-map)#set transform-set 10//匹配这个IPSec SA
CE1(config-crypto-map)#set peer 200.64.0.3//设置对等体
//此处还可以再set peer和原本的是Backup的关系,要想
设置新的对等体需要CE1(config)#crypto map CCIE 20 ipsec-isakmp
接口开启IPSec VPN
CE1(config)#int s2/0
CE1(config-if)#crypto map CCIE
查看命令
- 查看ISAKMP 中SA属性
默认的SA属性
CE1#show crypto isakmp policy Global IKE policy
Default protection suiteencryption algorithm: DES - Data Encryption Standard (56 bit keys).hash algorithm: Secure Hash Standardauthentication method: Rivest-Shamir-Adleman SignatureDiffie-Hellman group: #1 (768 bit)lifetime: 86400 seconds, no volume limit
正确的SA属性
CE1#show crypto isakmp policy Global IKE policy
Protection suite of priority 10encryption algorithm: Three key triple DEShash algorithm: Secure Hash Standardauthentication method: Pre-Shared KeyDiffie-Hellman group: #1 (768 bit)lifetime: 86400 seconds, no volume limit
Default protection suiteencryption algorithm: DES - Data Encryption Standard (56 bit keys).hash algorithm: Secure Hash Standardauthentication method: Rivest-Shamir-Adleman SignatureDiffie-Hellman group: #1 (768 bit)lifetime: 86400 seconds, no volume limit
- 查看加密和解密的数据
CE1#show crypto engine connections active
- 查看隧道情况
CE1#show crypto isakmp sa
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!



