IPSEC VPN的总结

目录

IPSEC协议簇

IPSEC可以提供的安全服务

例子

IPSEC 协议簇的组成

两种工作模式

传输模式

隧道模式

​编辑

两种安全协议

AH

AH包头

AH的保护范围

传输模式

隧道模式

ESP

可以提供的安全服务

ESP的头部

ESP报尾----为什么会有尾部?

保护范围

传输模式

隧道模式

Gre

AH和ESP的区别​编辑

AH和ESP也可以同时使用

AH+ESP在传输模式

AH+ESP在隧道模式

IKE

IPSec安全策略

阶段一

主模式

野蛮模式

阶段二

PFS --- 密钥完美向前保密

VPN黑洞

IPSec安全策略组

配置

1,抓取感兴趣流

2,配置IKE的安全提议

3,配置IKE对等体

4,配置IPSEC安全提议

5,配置IPSEC的安全策略

6,接口调用

协议簇补充

IPSec协议族的组成

解释域

IKEV2

IPSEC VPN的应用场景

1,VPN的网关部署模式

2,VPN的单臂部署 --- 在NAT环境下的VPN部署

IKE协商阶段

数据传输阶段

NAT - T技术


IPSEC协议簇

-- 基于网络层的,应用密码学的安全通信协议组

它在ipv6中IPSEC是要求强制使用的,但是,IPV4中作为可选项使用

IPSEC可以提供的安全服务

可以怎么去答?

建议从信息安全要素去靠。

机密性 --- 数据加密

完整性 --- 防篡改

可用性

数据源鉴别 --- 身份认证

数字证书

PSK --- 预共享密钥

不可否认性 --- 数据源鉴别

重传攻击保护 --- 通过添加序列号 --- 一个一次性的数字 --- 用来防重放攻击

例子

截获加密的数据包,只需要在去复杂一份,在去服务器上面登入即可,这就是重传攻击保护。

解决办法:给数据包里面带一个时间戳即可,或者加一个一次性的序列号或者随机值。

有限的流量保密 --- 在IPSEC中可以抓取感兴趣流,即可以设定哪些流量需要进入IPSEC隧道,继续保密传输,哪些流量不需要进入到通道中。

IPSEC 协议簇的组成

两种工作模式

传输模式

封装方式:不改变原有的IP包头,在原始的数据包头后面添加IPSEC包头,将原来的数据封装成被保护的数据

因为没有添加新的IP头部,所以,无法跨 越公网建立隧道,适合在私网内部,数据传输时进行安全保障。

存在的目的:在私网内部进行保护和加密。

隧道模式

封装方式:需要增加新的IP头部,其后面是IPSEC的包头,之后,将原来的整个数据

包进行分装保护。

适用于需要跨越公网的环境。

两种安全协议

AH

鉴别头协议,无非就是Hash的玩法,属于网络层协议,但是,封装在IP协议之上 --- 协议号:51

可以提供的安全服务:

1,数据的完整性保证 --- 其最主要的工作是保证数据传输的完整性,所以,没有

办法对数据进行加密保护

2,数据源认证 --- 身份认证

3,抗重放攻击

AH包头

安全参数索引(SPI) --- 用来唯一的标识SA --- 安全联盟(也就是一个会话,因为会话是双向的,所以需要一个标识)

SA -- 安全联盟 --- IPSEC在建立通道之前,双方需要协商安全参数,安全参数协商

完成后,则建立对应的SA --- IPSEC SA

注意:IPSEC SA是分方向的,要想构建一个双向的安全通道,则需要建立两条方向相反的SA,则不同的SA需要使用不同的SPI来进行标识,相当于是SA的一ID

序列号 --- 用来防重放攻击

认证数据 --- AH要做的任务就是把后面的内容通过hash运算变成摘要值,然后把摘要值放在认证数据里。

AH的保护范围
传输模式

整个原始的数据包。

隧道模式

这个就是除了整个原始的数据部分,还有新加的ip头部

会不会应发什么问题?

1.进行完整性校验应该要保持不会发生变化,ip头部里面本身就会发生变化的

因为AH在进行完整性校验时会包含IP头部的内容,所以,在IP头部中,有一些在

传输过程中就会发生变化的数据,比如TTL,TOS这样的数据将不做校验。

2.NAT场景下原目ip就会变,一旦发生变化AH校验就会失败

因为会校验IP地址,所以,AH无法应用在NAT环境下。

ESP

封装安全载荷协议 --- 属于网络层协议,但是,封装在IP协议之上 --- 协议号:50

可以提供的安全服务

1,数据的完整性校验

2,数据源认证

3,抗重放的保护

4,数据保密 --- (注意)这个是AH所不具备的一个安全服务 --- 可以进行选择性加密

ESP的头部

ESP报头----SPI和序列号(跟AH那个一样的作用上面有提到过)

ESP报尾----为什么会有尾部?
  1. ESP会提供加密的,但是大多数加密是分组加密,分组加密就是要负载长度需要划分出固定值。要是不够长,就需要去部位,也就是用到ESP尾部进行部位。2.保证下一个头部,对于尾部进行加密了。

ESP认证----ESP头部到ESP尾部的内容进行完整性校验,然后将摘要值放到ESP认证里面去

保护范围

加密的范围是除了最外层的IP头部,ESP的头部以及最后ESP的认证数据部分不进行加密,其他内容都需要进行加密;

完整性校验的范围是加密的内容再增加ESP的头部内容

传输模式

隧道模式

Gre

是一种三层 VPN 技术,可以对某些网络层协议的报文进行封装,GRE的最大作用是对路由协议、语音、视频等组播报文或IPv6报文进行封装,另外 GRE 也可以与 IPSec 结合,来解决安全问题。的协议号是47。

AH和ESP的区别

AH和ESP也可以同时使用

AH+ESP在传输模式

AH+ESP在隧道模式

只要有AH校验的封装就会导致ip头部的信息备校验,就无法应对NAT环境。

IKE

IPSEC SA是可以手工创建的:

IPSec安全策略

1.创建一个acl去抓流量

2.Ipsec的提议

Transform:用的协议类型(ESP、AH)

    Esp encryption-algorithm:如果选择esp那么就要进行什么加密算法(AES、DES)

    Esp authenentication-algorithm:esp的完整性校验(md5、shA1、shA2)

  AH authenentication-algorithm:ah的完整性校验(md5、shA1、shA2)

Encapsulation-mode:封装模式,也就是用什么模式封装

3.ipsec的策略

上面两块要关联起来

Tunnel local:本端地址

Tunnel remote:对端地址

Sa spi inbound:因为sa是双向的,每一条sa需要用不同的spi去标识好

Sa spi outbound:因为sa是双向的,每一条sa需要用不同的spi去标识好

Sa string-key inbound:这个是做身份认证的,两边必须保持一致

Sa string-key outbound:这个是做身份认证的,两边必须保持一致

4.去接口上面去调用ipsec polic

IKE -- 互联网密钥交换 --- 动态建立IPSEC SA --- IKEV1,IKEV2

IKE协议中包含三个协议

SKEME  (提供计算秘钥的支持)

OAKLEY (提供加密算法的支持)

ISAKMP --- 互联网安全联盟密钥管理协议 --- UDP 500 --- 要求源和目标端口都

必须是UDP的500(提供安全参数的)

阶段一

协商构建IKE SA的参数(ISAKMP SA),建立这个参数联盟建立好了是为了协商ipsec sa这些参数,其主要目的是获得建 立IPSEC SA时参数协商过程中的安全通道,对协商参数进行安全保护。它是不区分方向的。它还可以做身份认证。

这里有个面试题:IKE SA 和IPSEC SA谁是双向的?

IKE sa是单向的,ipsec sa是双向的。

IKE SA:IKE SA通道两端只有一个SA,是单向的。 2、IPSec SA:IPSec SA通道两端不止一对SA,是双向的。

后面还有一张会话表可以证明

这个是display ipsec sa brief的结果

主模式

默认使用IP地址作为身份标识,需要经过6个数据包交互来完成IKE SA

的建立,安全性较高

第一,二个数据包:SA的交换

SA交换:无非就是协商参数

1,Ci,Cr --- cookie --- 这个是IKEV1版本中的做法,到了V2版本,这里使用的是SPI,在V1版本中,其作用是相似

2,Sai,Sar --- 进行安全参数协商 --- “五元组”

加密算法,哈希算法,身份认证,DH组,SA存活时间

DES  MD5 PSK DH2 86400S

注意:这里协商的所有参数,是为了构建IKE SA使用参数,两边需要对得上才行。

注意:如果是手工建立的SA,则将永久有效,但是,如果使用IKE建立的SA,则将存在老化时间,默认是86400S,如果时间到了,则将拆除通道,重新建立。

注意:DH算法分组,常用分组为DH1,DH2,DH5,DH14,组号越大,则安全性越高。

注意:这里的身份认证是在协商身份认证的方式

如果加密算法这个设备不支持,那么就会回一个负载拒绝的报文,那么没办去构建连接,你们的ike会话就断开。

如果对方在回复时,发现里面的参数本地不支持,则将回复一个负载拒绝报文,则中断SA的构建。但是,其中的SA存活时间可以不同,如果不同,则按照较小的来执行

第三,四个数据包

Ni,Nr --- 是两端发送时携带的一个随机数 (肯定去用来参与DH算法的秘钥计算中)

X,Y --- DH算法中需要交换的两个参数,如下图

明显每把秘钥生成的时候都是有关联的

SKEYID 种子密钥 ---- 计算时里面包含了预共享密钥所有其他密钥在计算时,都需要加入种子密钥PRF可以看做hash算法,里面包括三个参数预共享密钥、Ni、Nr然后得出来的参数就是种子秘钥。

注意:明显在第三第四个包的时候就开始身份认证(预共享密钥,如果对端能够解开,那也就是认证了身份)

SKEYID_e --- 加密密钥,用于第5、6个数据包以及第二阶段IPSEC SA协商过

程中的数据加密。

g^ir --- DH算法中计算出的Z (公共值)

CKY_I,CKY_R --- 前面过程中传递的cookie值 (Ci、Cr)

SKEYID_a --- 验证密钥 --- 在第一阶段5,6个数据包以及第二个阶段中进行

HASH算法时使用的密钥。(无非就是前面发过来的SAi和SAr进行去比对,无非就是一种融入秘钥的hash算法)

哈希算法也可以结合密钥一起使用,其技术叫做HMAC,这样做安全性更高 。

SKEYID_d --- 推导密钥 --- 用来计算最终密钥(用来加密数据的密钥)的一个

参数。无非就是最终秘钥的一个参数

  • 六个数据包

用来进行身份认证以及数据验证 --- 这两个数据包是进行加密的。

Idi/Idr --- 身份标识 (身份认证怎么做的?是一个运算包含了种子秘钥,只要发出后,对端能够解密,那么就可以验证了。)

Hashi/Hashr --- 使用哈希算法来校验之前传递的安全参数 --- 通过HMAC来进

行运算,使用之前计算的验证密钥

为什么主模式只能使用ip地址做为标识?

真正做身份认证是在5、6这个阶段开始做了,但是在3、4阶段里面我们就需要去提取这个psk去进行计算了,但是3、4阶段并不知道对端是谁,只知道ip地址。因为5、6阶段才发送IDi和IDr获得对方的id。5、6阶段在做无非就是可靠性,再次确定。

这种很怕NAT环境,可能会导致身份标识对应不上

野蛮模式

可以自定义身份标识,并且,速度较快,仅需使用3个数据包就可以

完成IKE SA的建立

注意:野蛮模式前两个数据包中的参数用来协商密钥信息,则第三个数据包可以进

行加密传输,因为,身份信息是通过明文传递的,所以,安全性较低

阶段二

通过阶段一构建的安全通道,传递需要建立IPSEC SA使用的安全参数,用来

协商最终的密钥。

快速模式 -- quick mode --- UDP 500

第二阶段需要协商的安全参数

1,加密算法 --- 最终进行数据加密使用的算法(协商完加密算法之后,需要计算出最终使用的加密密钥,需要根据第一阶段计算出来的推导密钥计算得出)

2,Hash算法 --- 最终进行数据传输时使用的hash算法

3,安全协议 --- AH/ESP

4,封装模式 --- 隧道/传输

5,存活时间

PFS --- 密钥完美向前保密

正常情况下,第二阶段计算的加密密钥是通过第一阶段计算出的推导密钥衍生出来的,但这样,可能导致第一阶段密钥泄露影响第二阶段密钥,所以,可以开启PFS的功能,之后,将不再使用之前的推导密钥,将重新使用DH算法计算出一个新的密钥 (第二阶段再去最终加密的秘钥,不用再去考虑第一阶段的算出的推导密钥了,而是重新去计算,而是第二阶段重新进行一次DH交换运算去得到一个新的秘钥。)

注意:PFS功能需要两边同时开启,方可生效

数据传输阶段

通过AH或者ESP来传输数据

VPN黑洞

隧道建立之后,如果其中一台设备出现异常,另一端还在SA的有效期内,

则数据将出现有去无回的情况,形成VPN黑洞

解决方案 --- DPD死亡对等体检测

类似于心跳检测机制

利用的是空闲计时器原理 --- 两边同时开启一个计时器,有数据包通过时,直接刷新计时器,如果计时器归0,则会开始发送DPD的探测报文,对方收到后,将回复应答,正常回复则刷新计时器,如果没有应答,则连续发送5次,都没有应答,则将拆掉通道;

IPSec安全策略组
配置

1,抓取感兴趣流
[r1]acl 3000 --- 注意,在IPSEC中只能调用高级ACL列表
[r1-acl-adv-3000]
[r1-acl-adv-3000]rule permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
2,配置IKE的安全提议
[r1]ike proposal 1 --- 创建IKE提议,注意后面需要添加一个数字作为区分标识
[r1-ike-proposal-1]
[r1-ike-proposal-1]encryption-algorithm aes-cbc-128 --- 缺省值是DES
[r1-ike-proposal-1]authentication-algorithm md5 --- 缺省值是SHA1
[r1-ike-proposal-1]authentication-method pre-share --- 缺省是预共享密钥
[r1-ike-proposal-1]dh group2 --- 缺省为组1
[r1-ike-proposal-1]sa duration 86400 --- 不要太小,最好大于600S
3,配置IKE对等体
[r1]ike peer aa v1 --- 需要给对等体起个名字,第一次进入时,需要选择使用的IKE版本
[r1-ike-peer-aa]ike-proposal 1 --- 关联安全提议
[r1-ike-peer-aa]pre-shared-key cipher 123456 --- 定义预共享密钥,注意,两边需要相同
[r1-ike-peer-aa]exchange-mode main --- 选择一阶段模式,缺省是主模式
[r1-ike-peer-aa]remote-address 23.0.0.2 --- 1,建立SA对等体的地址;2,参与查找预共
享密钥,3,身份标识
4,配置IPSEC安全提议
[r1]ipsec proposal aa --- 创建IPSEC提议
[r1-ipsec-proposal-aa]
[r1-ipsec-proposal-aa]transform esp --- 配置安全协议,默认ESP
[r1-ipsec-proposal-aa]encapsulation-mode tunnel --- 选择封装模式,默认隧道模式
[r1-ipsec-proposal-aa]esp encryption-algorithm aes-128 --- 配置esp加密算法,缺省des
[r1-ipsec-proposal-aa]esp authentication-algorithm md5 --- 配置esp鉴别算法,缺省md5
5,配置IPSEC的安全策略
[r1]ipsec policy aa 1 isakmp --- 需要定义名称和编号,首次进入还需要定义手工还
是IKE
[r1-ipsec-policy-isakmp-aa-1]
[r1-ipsec-policy-isakmp-aa-1]security acl 3000 --- 关联ACL列表
[r1-ipsec-policy-isakmp-aa-1]ike-peer aa --- 关联IKE对等体
[r1-ipsec-policy-isakmp-aa-1]proposal aa --- 关联IPSEC 提议
6,接口调用
[r1-GigabitEthernet0/0/0]ipsec policy aa

协议簇补充

IPSec协议族的组成

解释域

IKEV2

IKEV1协商效率较低;主模式(6个) + 快速模式(3个) = 9个,野蛮模式(3个) +
快速模式(3个) = 6个
IKEV2也存在两个阶段,这两个阶段均仅需两个数据包即可完成,总共4个数据包
第二点:
IKEV1是不支持远程用户接入认证。但是,可以结合L2TP VPN实现效果
IKEV2是支持用户认证的,加入了一种叫做EAP的认证。
防火墙上,默认是同时开启IKEV1和IKEV2的。发起连接时优先使用IKEV2,接受到IKEV1连
接也可以支持。

IPSEC VPN的应用场景

1,VPN的网关部署模式

由VPN设备防止在边界,存在安全风险
1,使用安全设备集成VPN功能作为边界(防火墙)
2,将VPN设备下沉到内网中
2,VPN的单臂部署 --- 在NAT环境下的VPN部署

IKE协商阶段

1,身份认证问题

解决方案:只能使用野蛮模式

2,因为IKE在协商时,要求,源目端口都必须是UDP 500,如果,NAT做了端口 转换技术,则将可能修改原先端口,导致对接失败

解决方案:使用NAT-T技术(NAT穿越技术)
数据传输阶段
1,在数据传输阶段,如果选择AH协议,因为AH协议在进行完整性校验时,会包
含IP头部或者新家的IP头部中的内容,如果在NAT环境下使用,将导致校验失败
解决方案:选择ESP协议
2,如果时ESP的传输模式封装
注意,因为TCP或者UDP的封装中,包含伪头部校验,会校验IP头部中包含IP地址在
内的12个字节的内容,一般NAT在进行转换时,会将地址和校验和一起更改,在
ESP加密之后的场景中,因为传输层的数据被加密,导致伪头部校验和无法修改,
最终会因为校验失败,导致数据传输失败

3.ESP和隧道模式

所以在NAT模式下的组合 --- 野蛮模式 + ESP + 隧道封装
NAT - T技术

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值