1、IPSEC协议簇cu:--这是一个VPN协议簇,他是专门用于VPN的,
这里SA联盟就相当于VPN通道;IPSEC就是来创建SA通道的;
IPSEC SA我们统称为IPSEC VPN
--1、一个家族,一个集合,搞出来是专门为了tcp/ip协议簇进行加密的
--2、IPSEC可以提供的安全服务:(面试官问到这种就直接往信息安全要素上面靠)
1、机密性 ---数据安全
2、完整性 ---数据不能修改
3、可用性
--数据源鉴别 --身份鉴别
数字证书/PSK---预共享密钥,跟数字证书的效果类似
--不可否认性 --跟数据源鉴别类似
4、重传攻击保护 --利用用户的信息,在自己这边进行一个登录;
5、有限流量保护
--IPSEC协议簇(vpn)有哪些功能来支持VPN----->
本章讲解都是根据这个图进行讲解的,没有逻辑顺序;
真正的逻辑顺序是:1、先IKE SA的阶段1:用来传输IKE SA的各种参数,用来建立IKE SA通道
2、IKE SA通道建立好了之后,这个通道就是用来传输IPSEC SA的参数的;
这里面的包含的参数其中就有AH或ESP,传输模式/隧道模式
等IKE SA将IPSEC SA的协商参数建立好了之后,我们的IPSEC SA通道就算建立好了
3、之后我们的数据就是通过IPSEC SA通道进行传输的;
其中传输数据时,我们会进行选择AH算法/ESP算法;同时我们还会选择工作模式为传输模式/隧道模式
2、首先来看IPSEC协议簇的两种工作模式
--1、传输模式;
1、传输模式的封装方式:不改变原有的数据包头,在原始的数据包头后面添加IPSEC包头,将原来的数据封装成被保护的数据,最后再加一个的IP头;
--所以IPSEC的传输模式是不能跨越公网的,只适合在私网进行数据的传输
2、隧道模式
封装方式:在原始IP封装模型下后面再加一个IPsec包头,最后还要加一个新的用于跨越公网的新IP包头
3、IPSEC的两个安全协议
--1、AH --鉴别头协议,属于网络层,因为IPSEC都是数据网络层的;---协议号:51(gre的协议号是47)
--2、ESP ---封装安全载荷协议 ---协议号50,也属于网络层
ospf端口号:89
rip端口号:520
dhcp端口号:67/68
dns端口号:53
telnet端口号:23
4、细讲IPSEC的通信保护协议AH协议,这个子服务具有哪些功能
--1、可以提供安全的服务
1、数据的完整性的保证
// ---其主要的工作是保证数据传输的完整性,他是一个简单的协议的子协议,侧重保障了数据的完整性,就不管数据加密
2、数据源认证 --身份认证
3、抗重放的保护(就是防止别人利用你的信息进行重复登录服务器,这里是用的你的信息,如同攻击者利用cookie信息),这里解决重放攻击就是在用户信息里面加了 一个随机序列号;有点像cookie值里面的token参数
--2、AH的包头
1、AH包头中的安全参数索引SPI:用来唯一标识SA安全联盟;
SA安全联盟就相当于以前的会话(联盟就是你和我的三观都一致就相当于一个联盟),就是在IPSEC的建立通道之前,双方会需要协商安全参数,协商完后,则建立对应的SA ---IPSEC SA;
还可以说,SA就是VPN通道,IPSEC就是VPN
注意:IPSEC SA是分方向的,要想构建一个双向的安全通道,则需要建立两条方向相反的SA,不同的SA需要使用不同的SPI来进行唯一标识,SPI相当于SA的一个id;
2、AH的保护范围/AH的数据验证范围
---1、AH在传输模式的数据验证范围+封装体现
---2、AH在隧道模式的数据验证范围+封装体现
总结:1、AH进行数据完整性验证是将整个数据包都进行了hash,也就是说对整个数据包部分都进行了验证
2、正因为AH会校验整个数据包,因此AH在校验时会排除ttl值,tos值(单个数据包的优先级,通常由上级设备打的标记)等这些参数的校验,因为这些参数值在传输过程中一定会变;但不会排除IP地址
3、正因为AH在数据包校验时会考虑到IP地址的校验,那么AH协议必将不能进行NAT地址转换;
4、AH不具有数据加密,所以AH其实不是很安全
5、细讲IPSEC协议的子协议ESP ---封装安全载荷协议,网络层协议 ---协议号50,AH是51;gre是47
--1、可以提供的安全协议
1、数据的完整性校验
2、数据认证
3、抗重放的保护(就是防止别人利用你的信息进行重复登录服务器,这里是用的你的信息,如同攻击者利用cookie信息)
4、数据的加密 ---非常灵活,可以进行选择性加密,数据加密是AH不具有的
--2、ESP头部
因为没有对新IP头部进行校验,所以nat不会影响esp协议
--3、ESP保护的范围/验证数据完整性的范围
1、传输模式的数据验证范围+封装体现
--hash之后的数据验证部分放到了ESP认证部分那里
--这里是没有将内层IP包头进行hash来数据验证的
2、隧道模式的数据验证范围+封装体现
这里隧道模式是将内层IP进行了hash来数据验证的;而传输模式时没有对内层IP进行一个数据验证
总结:1、esp子协议因为没有对外层IP头进行一个数据验证,所以可以进行NAT地址转换;hash算法有:mad5算法
2、ESP有加密算法,所以更加安全
--3、IPSEC中的两个子协议AH和ESP的区别
6、两个IPSEC子协议AH和ESP可以同时使用
--1、AH+ESP传输模式的报文封装
--2、AH+ESP隧道模式
--不管是传输模式还是隧道模式,他都是先ESP封装,再AH封装
-- 因为外层IP被hash算法用来验证了,所以AH-ESP也不能用来NAT验证
7、 IPSEC SA的子协议IKE(协议簇),用来动态的建立IPSEC SA联盟的
--1、IPSEC的SA(联盟)可以手工创建--->
因为是SA是双向的:因此--->
这边的出与对端的入一样
这边的入与对端的出一样
--2、IKE,互联网交换协议;有两个版本:IKEV1,IKEV2;用于动态的建立IPSEC SA联盟
1、IKE协议中包含三个协议:
1】SKEME
2】OAKLEY
3】ISAKMP ---互联网安全联盟密钥管理协议---基于UDP500传输信息;
源和目标端口都必须是500才能建立通道
//真正协商联盟创建之间的参数是通过这个协议来实现的;剩下两个协议只是为了支持这个协议
--3、IKE建立IPSEC SA通道分为阶段1和阶段2,这里就先讲阶段1
1、阶段1(IKE SA/ISAKMP SA)
解释作用:
--这个阶段先去协商安全参数,这个安全参数协商好了后就代表安全IKE SA安全通道建立成功,后续就可以通过这个IKE SA安全通道传输创建SA联盟这个通道建立所需要的参数
IKE SA不分源和目标,就是说IKE SA是单向;注意IPSEC SA是双向,这个要搞清楚,子协议IKE SA才是单向的
2、阶段1主要是协商构建IKE SA(ISAKMP SA)
阶段1分为主模式和野蛮模式(不同场景选择不同模式)
--1、主模式 ---默认使用IP地址作为身份标识,身份标识不是身份验证,举例:身份验证是编号,身份标识是在身份验证编号后面还写一个对应值,如B,就代表这个编号就是代表B; 123(编号)B(标识)
第一、二个数据包:
解释作用:协商的参数都是用来构建IKE SA 所使用的参数
如果是手工建立的SA则将永久有效,但是如果是IKE SA创建的SA,则将存在老化时间,默认86400s,如果时间到了,则将拆除通道,重新建立
1,Ci,Cr --- cookie --- 这个是IKEV1版本中的做法,到了V2版本,那就使用的是SPI
2,Sai,Sar --- 进行安全参数协商 --- “五元组”
加密算法,哈希算法,身份认证,DH组,SA存活时间
DES MD5 PSK DH2 86400S
第三、四个数据包
Ni,Nr --- 是两端发送时携带的一个随机数
X,Y --- DH算法中需要交换的两个参数
SKEYID 种子密钥 ---- 计算时里面包含了预共享密钥,也就是说种子密钥的计算包含了预共享密钥
所有其他密钥在计算时,都需要加入种子密钥,也间接说明所有密钥都包含了预共享密钥
SKEYID _e ---加密密钥 --用于后续数据包5/6以及第二阶段的IPSEC SA协商过程中的数据加密
SKEYID_a --验证密钥--HMAC --说白了就是通过种子密钥形成,种子密钥是通过预共享密钥(preshared key)形成
SKEYID_d --推导密钥,他是作为用来计算最终密钥->加密密钥的一个参数
第5/6个数据包 --用来进行身份验证和数据验证;因为前面3/4个数据包的加密算法的生成;所以这两个数据包是进行加密的
IDi/IDr ---身份标识的传递,而这里是用IP作为的ID,所以传递的就是IP地址
HAshi/hashr --使用验证密钥来校验之前传递过来的所有安全参数在传输过程中是否被改动过;验证密钥就是对预共享值进行的一些计算形成的
注意:各种密钥都是在第一阶段的3/4包才生成传递的
总结:主模式:不适用与nat地址转换,因为身份标识ID是IP,IP变了阶段1的连接就会断开=
--2、野蛮模式 --可以自定义身份标识,且速度较快,仅需使用三个数据包就可以完成IKE SA的建立
总结:1、野蛮模式因为可以自定义身份标识,所以适应nat地址转换
2、野蛮模式的所有密钥是在第二个数据包发功过来才构建的,所以在第三个数据包才可以进行加密传输;而前面两个数据包已经几乎把所有信息都发送完了,所以野蛮模式安全性较低
---阶段1的两种模式:主模式和野蛮模式的区别
从这里可以看出为什么主模式必须以IP地址作为ID:因为我们的主模式在第3/4包就已经在生成各种密钥了,就已经在需要预共享密钥,而预共享密钥需要ID值;如果将不将IP作为ID的话,ID在主模式中又是第5/6包才传递,第3/4包需要。前后时间就会矛盾;所以主模式必须以IP作为ID;因为第3/4包就需要ID值了,而IP值是刚刚进行传输数据的时候就已经知道的,所以将IP作为ID值
当阶段1正常进行完了之后,我们的IKE SA通道就算已经建立成功了
3、阶段2 --通过阶段1构建的安全通道IKE SA,传递需要建立IPSEC SA联盟协商所需要的参数 ---快速模式 --quick mode,udp500传输;第二阶段完成则也代表IPSEC SA通道完成
--1、第二阶段需要协商的安全参数
1、加密算法 --最终进行数据加密使用的算法
2、hash算法 --最终进行数据传输时使用数据完整性验证的hash算法
3、安全协议 --AH/ESP
4、封装模式 --隧道/传输
5、存活时间
第二阶段完结后,就代表所有协商参数已经完成,就代表IPSEC SA通道已经建立成功;如同ospf的所有参数协商完成就是直接进入邻接关系;
--2、注意:PFS --- 密钥完美向前保密 --- 正常情况下,第二阶段计算的加密密钥是通过第一阶段计算出的推导密钥衍生出来的,但这样,可能导致第一阶段密钥泄露影响第二阶段密钥, 所以,可以开启PFS的功能,之后,将不再使用之前的推导密钥,将重新使用DH算法计算出一个新的密钥来加密第二阶段传输的所有数据
4、数据传输阶段 ---通过前面IKE SA的两个阶段,已经将IPSEC SA的通过建立成功了,下面就是真正通过IPSEC SA通道(IPSEV VPN)进行的一个数据传输了
1、传输数据是通过AH/ESP来传输数据
2、VPN黑洞 --隧道建立之后,如果其中一台设备出现异常,另一端还在SA的有效期内,则数据会出现有去无回--俗称VPN黑洞
3、VPN黑洞的解决方案:DPD死亡对等体检测,类似于心跳检测机制,利用的是空闲计时器原理,就是最长空闲时间是假如是5s,如果倒计时5s过了之后还没有数据来,那么对方就可能有问题,那么我就会发送探测报文;如果探测报文对方多次也没有返回,则拆掉通道
8、部署IPSEC SA防火墙的两种场景(边界和内网下层):
--1、IPSEC SA部署在边界上
1、首先我们的两个边界接口是必须要能通信的,这个是建立IKE SA的前提
2、我们的IKE SA隧道是基于UDP 500端口进行工作的,所以注意要安全策略放行UDP 500端口才能让IKE SA传输参数,才能让IPSEC SA成功建立邻居;
在放行UDP500中,我们的源区域和目标区域是一个外界,一个本端local;因为是边界上配置的,就是说建立邻居是在本边界防火墙上,就是通过IKE SA传输参数的流量到我防火墙就会停止转发了,目的是为了IPSEC SA建立邻居;所以是外端到本地local
外界到本端local;注意是双向的,还有本端到外界
3、IPSEC SA邻居建立好了之后,我们第二阶段也已经完成,接下来就是通过IPSEC SA进行传输内层的数据;
内层数据不是边界,所以传输数据时必须是隧道模式+esp(不对整个封装全加密);
4、传输数据时,是分为的三个板块:1、两边的私网,所以在安全策略的时候,注意写好源区域和目标区域;或者直接不写源区域和目标区域,直接就只写IP地址;
这里讲讲数据流量到达防火墙的进行的过程:1、首先匹配路由表
2、发现只能缺省,就做好准备发往外界
3、NAT地址转换完了之后,准备进入隧道, 进行封装
1、从内向公网,则先安全策略,再NAT
从公网到内,则先NAT,再安全策略
2、NAT永远优于隧道
因此,出去先NAT再隧道;
回来的时候,先隧道解开,再NAT
---IPSec SA部署在内网中
1、首先还是要两个接口可以正常通信,就是建立IKE SA的两个接口能正常通信;
注意这里的两个接口地址:本端必须是本端真实地址,对端必须都是公网地址,你写私网地址来到公网之后,公网也不知道你的私网地址是在哪里的;所以建立SA通道的地址必须是公网地址,真正建立邻居的数据包了来到边界后,再用服务器映射将公网地址映射到私网VPN设备上;
2、建立IKE SA的时候,就是在第一阶段的时候,必须选择野蛮模式;
因为主模式的IP和ID 必须保持一致,那么IP如果被NAT转换了,那么后面发过来的ID就会和IP地址不一致,就会IKE SA建立不成功;
因此在第一阶段IKE SA的建立过程中必须用野蛮模式建立IKE SA
3、依然是要放行UDP 500接口,为了IKE SA的正常工作;注意因为这里部署了VPN的防火墙要放行UDP 500,还要在边界设备上也要放行UDP 500;
注意在部署VPN的内网设备和在边界上的设备的安全策都不是local和外端了;都是从内到外,从外到内;因为是内网里面的设备进行的IPSEC SA建立邻居
4、IPSEC SA建立好了之后,接下来就是传输数据了;
在传输数据的时候,我们依然是必须选择:隧道模式+esp算法
5、我们的内网IPSEC SA传输数据也是分为了三个板块:
1、中间的隧道里面的流量
//注意安全策略放行esp流量
2、两边的VPN里面的私网数据流量
//两边私网流量也要放行,这里因为用户要进行不同的服务,所以要放行any
这里讲讲数据流量到达VPN防火墙是,防火墙的处理过程:
1、从内到公网,则先安全策略,再NAT;
从公网到内,则先NAT,再安全策略;
2、NAT永远优于隧道,因此出去的时候先NAT,再封隧道;
的时候先解隧道,再NAT
非常注意:
VPN在内网环境中,且内网SA中本端是私网地址,那么对端想要来到本端就必须做一个服务器映射;将边界的公网地址映射到本端真实私网地址上
为什么在内网VPN中,不能把本端写成公网IP地址?
SA协商过程中数据包发出去的源目IP和数据包回复的源目IP必须完全相反;只能相反不能不一样
1、----------------就是说!:SA VPN设备上的协商数据包在发出去的源目IP和回来的数据包的源目IP必须刚好相反,不能其他情况!!!
2、---SA VPN设备在发送协商数据包的时候,源IP必须为真实IP,回来不管真实与否,只管他回来的数据包是我发送数据包的目的IP即可
3、内网的VPN设备是私网IP,那么在该私网边界上就应该做一个服务器映射;
4、或者做两个个双向NAT也可以;只要保证针对本VPN设备发送的数据包和接收的数据包的源目IP刚好相反即可;不用保证两边设备的两边数据包的源目IP相反;
你看:针对左边VPN设备,我的发送的包和接收的包的源IP和目标IP完全相反;
针对右边的VPN设备,我的发送的数据包和接收的数据包的源IP和目标完全相反
但是我左边的VPN设备发送数据包里面的源IP不是右边设备接收到的源IP
我右边VPN设备发送的数据包里面的源IP,不是我左边VPN设备接收到的源IP;
但是就算是这样,两边都还是可以建立IPSEC SA的!!
---------------------------------我们只讲思路,不讲详细过程;
过程是背,思路是理解;
想要走多远,10%背+90%理解
祝你年薪百万,成绩辉煌!!!