IPSec是一系列为IP网络提供完整性、安全性的协议和服务的集合,通过使用IPSec可以安全地进行IP业务的传输,实现VPN网络互连,他并不是一个单独的协议
IPSec体系结构:
IPSec包括认证头协议(AH)、封装载荷协议(ESP)、因特网密钥交换协议(IKE),用于保护主机与主机之间、主机与网关之间、网关与网关之间的一个或多个数据流。AH和ESP用于提供安全服务,IKE协议用于密钥交换。
IPSec VPN只能对单播流量进行加密,不能加密组播流量
IPSec协议体系:安全协议,加密,验证,密钥交换
安全协议包括AH和ESP
加密包括DES/3DES/AES/SM1/SM4(都是ESP支持的,加密是对称加密,AH不支持加密)
验证包括MD5/SHA1/SHA3/SM3(ESP支持的验证),MD5/SHA1/SHA2/SM3(AH支持的验证)
密钥交换算法IKE(ISAKMP,DH)
IPSec通过验证头部AH和封装安全载荷ESP两个安全协议实现IP报文的安全保护
AH主要提供数据源认证,数据完整性验证,报文防重放功能,不提供加密功能协议号51
ESP提供加密功能,数据完整性验证,数据源认证,报文防重放功能,协议号50
IPSec加密和验证算法所使用的密钥可以手工配置,也可以通过因特网密钥交换协议(IKE)动态协商,发送isakmp报文协商密钥,用DH算法计算得出密钥,用ESP协议传输用户流量
部署IPSec的目的:
网络中部署IPSec以后,可以对传输的数据进行加密保护,防止信息泄露
IPSec安全传输数据的前提是在IPSec对等体(运行IPSec的两个端点)之间建立安全联盟SA
安全联盟SA由三元组来进行标识:安全参数索引(SPI)、目的IP地址、使用的安全协议号(AH或ESP)
SPI是为唯一标识SA而生成的一个32位比特的数值,在AH和ESP包头中传输,手工配置SA时,需要指定SPI数值,使用IKE协商时,SPI将随机生成
SA是单向的逻辑链接,因此两个IPSec对等体之间的双向通信最少需要建立两个SA来分别对两个方向的数据流进行安全保护
SA的个数还与安全协议相关,如果只使用AH或ESP来保护两个对等体之间的流量,则对等体之间就有两个SA,每个方向上各一个。如果对等体同时使用AH和ESP,那么对等体之间就需要四个SA,每个方向上两个,分别对应AH和ESP
两种方式建立IPSec安全联盟:手工方式和IKE自动协商,二者区别:
密钥生成方式不同:手工方式下,建立SA所需的全部参数,包括加密,验证密钥都需要用户手工配置,也只能手工刷新,在大型网络中,这种方式管理成本高;IKE方式下所有的配置通过DH算法生成,可动态刷新,密钥管理成本低,安全性高
生存周期不同:手工方式建立的SA永久存在,IKE协商生存周期由双方配置的生存周期参数控制
两个对等体之间若要建立IPSec VPN,首先得在两个IPSec对等体上都要有IPSec SA,才能建立IPSec VPN
封装模式:传输模式和隧道模式
传输模式:在传输模式中,AH头或ESP头被插入到IP层和传输层头部之间,保护TCP/UDP/ICMP等。传输模式不改变报文头,故隧道的源目地址必须与IP报文头中的源目地址一致,所以只适合两台主机或一台主机和一台VPN网关之间的通信
传输模式下报文封装:
AH:
| IP | AH | TCP | DATA |
| 认证范围(IP头中可变域除外) |(整个头部都是认证范围)
ESP:
| IP | ESP | TCP | DATA | ESP Tail | ESP Auth data |
| ESP加密范围 |(从TCP头到ESP Tail这个范围)
| ESP认证范围 |(从ESP到ESP Tail这个范围)
| 认证范围加算出哈希值放到auth data中 |(只有ESP Auth data这个范围)
AH-ESP:
| IP | AH | ESP | TCP | DATA | ESP Tail | ESP Auth data |
| AH认证范围 (IP头中可变域除外) |(整个封装全部为AH认证范围)
| ESP加密范围 |(从TCP到ESP Tail为ESP加密范围)
| ESP认证范围 |(从ESP到ESP Tail为ESP认证范围)
隧道模式封装:
AH:
| New IP | AH | Raw IP | TCP | DATA |
|认证范围(New IP头中可变域除外) |(整个封装全部为认证范围)
ESP:
| New IP | ESP | Raw IP | TCP | DATA | ESP Tail | ESP Auth data |
| ESP加密范围 |(从Raw IP到ESP Tail为ESP加密范围)
| ESP认证范围 |(从ESP到ESP Tail为ESP认证范围)
AH-ESP:
| New IP | AH | ESP | Raw IP | TCP | DATA | ESP Tail | ESP Auth data |
| ESP加密范围 |(从Raw IP到ESP Tail为ESP加密范围)
| ESP认证范围 |(从ESP到ESP Tail为ESP认证范围)
| AH认证范围(New IP头中可变域除外) |(整个封装全部为AH认证范围)
传输模式和隧道模式比较:
从安全性来讲,隧道模式优于传输模式,他可以对原始IP数据包进行验证和加密,隧道模式下可以隐藏内部IP地址,协议类型和端口。从性能来讲,隧道模式因为有一个额外的IP头,他将比传输模式占用更多带宽
当安全协议同时采用AH和ESP时,AH和ESP协议必须采用相同的封装模式
ESP报文头结构:
AH报文头结构:
AH与ESP对比:
IKEv1使用两个阶段为IPSec进行密钥协商并建立IPSec SA
第一阶段:通信双方协商和建立IKE 本身使用的安全通道,建立一个IKE SA(主模式或野蛮模式)
第二阶段:利用已经建立好的IKE通道,建立一对IPSec SA,用来安全传输数据并生成密钥(快速模式)
IKE SA是双向的,所以只需要建立一个IKE SA,IPSec SA需要建立两个
IKE SA与IPSec SA联系:IKE SA使用DH密钥交换算法算出密钥,建立一个安全的通道用来协商IPSec SA,IPSec SA建立好以后就能对数据进行加密处理
主模式和野蛮模式:
主模式包括三次双向交换,6条iskmp信息,1、2、3、4条消息不加密,5、6加密
野蛮模式用到三条信息,三条信息都未加密
与主模式相比,野蛮模式减少了信息交换数量,提高了协商速度,但是没有对身份信息进行加密保护
IKEv2:四条消息
实验:点到点IPSec
拓扑图:
IPSec配置流程:
1.定义acl
2.配置ike proposal
3.配置ike peer,调用ike proposal,配置预共享密钥,指定对等体
4.配置ipsec proposal
5.配置ipsec policy,调用ike peer,调用ipsec proposal,调用acl
6.接口调用ipsec policy
配置默认路由
配置ACL:定义数据流
配置ike sa:
配置IPSec SA
接口调用IPSec policy
查看ike sa和IPSec sa
实验二:策略模板实验:
拓扑图:
配置默认路由:
配置acl
配置HUB的ike sa
配置HUB的IPSec sa(策略模板)
接口调用ipsec policy
配置Spoke1的ike sa
配置Spoke1的ipsec sa
接口调用ipsec policy
配置Spoke2的ike sa
配置Spoke2的ipsec sa
接口调用ipsec policy
配置多策略(不需要用到策略模板)
配置acl:
配置ike sa
配置ipsec sa
接口调用ipsec policy
配置spoke1的ike sa
配置spoke1的ipsec sa
接口调用ipsec policy
配置spoke2的ike sa
配置spoke2的ipsec sa
接口调用ipsec policy
查看hub的ike sa
查看hub的ipsec sa
查看spoke1的ike sa
查看spoke1的ipsec sa
查看spoke2的ike sa
查看spoke2的ipsec sa