IPsec-VPN:
1、应用范围:用于分公司和总部之间。
2、作用:机密性、证书(身份认证)
VPN概述:VPN(Virtual Private Network)是指依靠Internet服务提供商ISP(Internet Service Provider)和网络服务提供商NSP(Network Service Provider)在公共网络中建立的虚拟专用网络.虚拟:用户通信是通过公共网络进行的,这个公共网络同时也被其他非VPN用户使用,VPN用户获得的只是一个逻辑意义上的专网。这个公共网络称为VPN骨干网Backbone。
专用网络:VPN与底层承载网络之间保持资源独立,即VPN资源不被网络中非该VPN的用户所使用。
隧道技术原理:隧道(Tunnel)类似于一座桥,可以在底层网络(比如Internet)之上构建转发通道,用户可以自行构建隧道网络,不需要底层网络的管理者(比如运营商)介入。
实现隧道的技术有很多,常见的隧道技术有: MPLS,GRE,L2TP,IPsec,VXLAN等,虽然有各种各样的隧道技术,但其基本实现思路是一致的。
VPN基本构成三要素:乘客协议、封装协议、运输协议
乘客协议 | 用户传输数据使用的原始网络协议。 |
封装协议 | “包装”乘客协议d对应的报文,使原始报文能够在新网络上传输。 |
运输协议 | 指被封装后的报文在新网络中传输时所使用的网络协议。 |
GRE支持组播
[AF1]interface Tunnel 0(创建隧道)
[AF1-Tunnel0]ip address 192.168.1.1 24(隧道地址,为了让隧道UP)
[AF1-Tunnel0]tunnel-protocol gre(指定隧道协议)
[AF1-Tunnel0]source GigabitEthernet 1/0/1(可以指定源地址或者源接口,tunnel调用这个地址)
[AF1-Tunnel0]destination 11.11.11.11 (目标地址)
安全:在远端用户、驻外机构、合作伙伴、供应商与公司总部之间建立可靠的连接,保证数据传输的安全性。这对于实现电子商务或金融网络与通讯网络的融合特别重要。
廉价:利用公共网络进行信息通讯,企业可以用更低的成本连接远程办事机构、出差人员和业务伙伴。
支持移动业务:支持驻外外VPN用户在王何时间、任何地点的移动接入,能够满足不断增长的移动业务需求。
可扩展性:由于VPN为逻辑上的网络物理网络中增加或修改节点,不影响VPN的部署。
1、按组网类型分类
2、按照现实网络层次分类
L2TP-VPN(Layer Two Tunneling Protocal)二层隧道协议:L2TP用于承载PPP报文的隧道技术,其主要应用在远程办公场景中为出差员工远程访问企业内网资源提供接入服务。支持认证、支持承载多种三层协议。
优点:
缺点:
有的场景用户 角色可以没有,有的时候LAC角色可以没有。
有PPPoE拨号就叫NAS,没有就叫LAC,多用户单独拨号,每一个拨号会建立一条隧道,浪费资源。
1、L2TP应用场景——NSA-initiated VPN
2、L2TP应用场景——LAC自动拨号
3、L2TP应用场景——Client-initiated VPN
在LNS和LAC对之间存在着两种类型的连接(Tunnel)连接:
它定义了互相通信的两个实体LNS和LAC。隧道在一对LAC和LNS之间可以建立多个L2TP隧道,隧道由一个控制连接和至少一个会话 (Session)组成。L2TP首先需要建立L2TP隧道,然后在L2TP隧道上建立会话连接,最后建立PPP连接。所有的L2TP需要承载的数据信息都是在PPP连接中进行传递的。
会话(Session)连接:它复用在隧道连接之上,用于表示承载在隧道连接中的每个PPP连接过程会话是有方向的,从LAC向LNS发起的会话叫做Incoming会话,从LNS向LAC发起的会话叫做Outgoing会话。
L2TP建立目的端口是UDP的1701,需要放通。
企业分支之间经常有互联的需求,企业互联的方式很多,可以使用广域网专线或者Internet线路部分企业从成本和需求出发会选择使用lnternet进行互联,但是存在安全风险,如何保障数据在传输时不会被窃取或者被算改?
IPsec通过将数据报文进行加密传输,达到保障企业安全互联的目的。
IPsec (Internet Protocol Security,因特网协议安全协议) 是ETF (Internet Engineering Task Force)制定的一组开放的网络安全协议(标准,厂商共同支持)。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合。
IPsec通过加密与验证等方式,从以下几个方面保障了用户业务数据在internet中的安全传输:
IPsec不是一个单独的协议,而是一种公开标准的技术解决方案(协议栈)。
数据来源验证 | 通过安全协议、加密、验证三种结合得出签名技术 | HMAC带秘钥的哈希 |
数据加密 | EDS、3EDS、AES、SM1/SM4 | |
数据完整性 | MD5、SHA1、SHA2、SM3 | |
抗重放 | ESP、AH | 比如以前的饭卡(IC卡),充了100,复制了一张饭卡也有100,这样就重放攻击了,通过IC卡加入序列号,每次刷卡修改序列号防止重复刷。【TCP、UDP都有抗重放】 |
TCP快重传:发1、2、3这三个包,同一个包1不停的发送,接收端会认为2和3一直没收到,一直是1,导致接收有问题,容易产生DOS。
防重放机制:序列号、时间。
IPsec协议体系:
IPSec通过验证头AH (Authentication Header) 和封装安全载荷ESP (Encapsulating Security Payload)两个安全协议实现IP报文的安全保护。
认证头协议AH:提供数据来源认证数据完整性校验和报文抗重放功能(通过序列号)。AH的工作原理是在每一个数据包的标准IP报头后面添加一个AH报头(AH Header)。 AH对数据包和认证密算结果的数据包后,执行同样的Hash计算并与原计钥进行Hash计算,接收方收到带有算结果比较,传输过程中对数据的何更改将使计算结果无效,这样就提供了数据来源认证和数据完整性校验。
AH字段:
Next Header协议号 | 指明乘客协议是谁 |
Payload Length长度 | 报文长度 |
RESERVED预留字段 | 没啥用 |
Security Parameter Index(SPI)安全参数索引 | 告诉对方我使用哪把key |
Sequence Number序列号 | 防重放攻击 |
Authentication Data(Variable)认证数据 |
提供数据源验证(真实性),完整性校验和抗重放。
不提供数据加密功能
AH用IP协议号51来标识
Securlty Parameter Index(SPI)安全索引 | 找秘钥,高速对端使用什么算法(机密性) |
Sequence Number序列号 | 防重放攻击 |
Payload Data(Variable)身份认证 | 身份认证,完整性校验 |
Padding(0-255)Bytes填充 | 对称算法中块加密必须满足256、64才能算出来,不够就填充 |
Pad Length填充位 | 描述填充了多少bit |
Report Handler | |
Authentication Data(Variable)认证数据 | 包发给你认证结果写进去,只有True或False |
ESP封装有一个ESP Header头部,然后一个ESP Trailer中包含(Pad Length和Report Handler完整性校验值),最后是ESP Authentication认证值。
提供数据真实性、数据完整性、抗重放、数据机密性
ESP 用IP协议号50来标识
IPsec两种模式:
隧道模式:在隧道模式下,AH头或ESP头被插到原AP头之前,另外生成一个新的报文头放到AH头或ESP头之前,保1P头和负载。道模式主要应用于两台VPN网关之间或一台主机与一台VPN网关之间的通信。
隧道模式下,AH协议的完整性验证范围为包括新增1P头在内的整个1P报ESP协议验证报文的完整性检查部分包括ESP包头、原IP头、传输层协议头、数居和ESP报尾,但不包括新IP头,因此ESP协议无法保证新IP头的安全。ESP的加密部分包括传输层协议头、数据和ESP报尾。新IP头(NewIP Header) 中,源IP地址为网关A的IP地址,目的IP地址为网关B的IP地址。
传输模式:在传输模式中,AH头ESP头被插P头与传输层协议头之间,保TCP/UDP/CMP负载。传输模式不改变报文头,故道的源和目的地址必须为IP报文头中的源和目的地址,所以只适合两台主机或一台主机和一台VPN网关之间通信。
传输模式封装方式局限性在于不能NAT穿越:
(1)、AH保护整个头,NAT替换头,网络层丢包。
(2)、ESP加密虽然没保护IP头,但是TCP Header有个字段叫Checksum,这个字段会把IP和data一起做运算,NAT后IP变了校验就会出问题,就会在传输层丢包。
IPsec协议封装模式对比:
封装模式对比:
安全性:
性能:
具体选择哪种封装模式,需要在性能和安全之间做权衡。
IPsec安全联盟
IPSec安全传输数据的前提是在IPSec对等体(即运行IPSec协议的两个端点)之间成功建立安全联盟SA (Security Association)。
SA是通信的IPSec对等体间对某些要素的约定。我们也形象的称呼SA为隧道。
A和B建立了一个SA安全联盟=A和B建立了一条隧道!
手工配置IPsec流程:
1、协商加密算法
2、封装模式
3、完整性验证算法
4、加密秘钥是什么
5、加密的数据流(匹配感兴趣流)
6、接口调用安全策略
安全联盟的定义
安全联盟是要建立IPSec隧道的通信双方对隧道参数的约定,包括隧道两端的IP地址,隧道采用的验证方式、验证算法、验证密钥、加密算法、加密密钥、共享密钥以及生存周期等一系列参数。
SA由三元组来唯一标识,包括:安全参数索引 SPI、目的IP地址、安全协议号
安全参数索引 SPI | 指导FW用什么秘钥及哪种算法解密报文及用哪种完整性算法去验证报文的完整性 |
安全协议号 | AH:51 ESP:50 用于指导FW封装报文的方式 |
安全参数索引 SPI包含:验证算法、加密算法、加密秘钥。
IPSec安全联盟是为安全目的创处的单向逻圳连接,这就要求在每一个方向上都需要拥有一个PSec安全联盟。
为了在网关A和网关B之问建立IPSec隧道,需要建立两个安全联盟,其中,安全联盟1规定了对从网关A发送到网关B数据采取的保护方式,安全联盟2规定了对从网关B发送到网关A数据采取的保护方式。安全联盟1对于网关A是Outbound方向,而对于网关B则是lnbound方向。安全联盟2则相反。
IPSec SA有两种类型:手工方式创建的SA和IKE自动协商方式(isakmp) 创建的SA。二者的主要区别为:
手工方式下:手工创建IPSec SA(隧道)所需的全部参数,包括加密算法、验证算法、加密密钥,都需要用户手工配置,也只能手工刷新。手工方式创建的IPSec SA一经创建永久存在。每一个对端都需要为之配置一个秘钥,当对端数量较多时,秘钥管理成本高且管理复杂。
IKE方式下:动态创建的IPSec SA(隧道)其加密、验证的密钥是通过DH算法动态生成的,可以动态刷新,密钥管理成本低,安全性较高。我们只需要指定自己支持的算法让对方和我协商,最后协商得到统一的加密算法、验证算法即可。
手工方式创建的IPSecSA一经创建永久存在
KE方式下,由数据流触发建立IPSec SA,SA的生存周期由双方配置的生存周期参数控制
IPsec加解密以及验证过程
HMAC(Keyed-Hash MessageAuthentication Code)在报文后面加上秘钥一起做Hash运算,由于秘钥只有通信双方才有,所以确定了这个Hash的值只有拥有秘钥的双方才能创造,其它人无法得出这个HMAC值,从而验证了发送者身份(验证报文完整性和身份)。
流量走隧道的两种方式:
1、ACL匹配路由走隧道
2、创建tunnel接口,使用路由方式下一跳指向tunnel接口,转发到隧道。
IKE负责自动建立和维护IKE SAS和IPSec SAs。功能主要体现在如下几个方面:
IKEv1和IKEv2
IKE协议分IKEv1和IKE2两个版本。V1不安全、没有抗ddos机制、慢
IKEv1
IKEv2
IKE简介:因特网密钥交换IKE(lnternet Key Exchange) 协议建立在Internet安全联盟和密钥管理协议ISAKMP定义的框架上,是基于UDP (User Datagram Protocol)的应用层协议。它为IPSec提供了自动协商密钥(Oakley和SKEME基于DH算法实现)、建立IPSec安全联盟的服务,能够简化IPSec的使用和管理,大大简化IPsec的配置和维护工作。
Oakley和SKEME基于DH算法实现自动协商秘钥。
IKE的三个组件:
IKE分两个阶段实现:
IKEv1的三种模式:
主模式:九个报文,主模式六个报文,快速模式三个报文。
野蛮模式:六个报文,野蛮模式三个报文,快速模式三个报文。
IKEv1包:
IKEv1有主模式和野蛮模式,IKEv2没有。
野蛮模式与主模式对比:
IKEv1的过程定义了主模式(Main Mode)和野蛮模式 (Aggressive Mode)两种交换模式主模式包含三次双向交换,用到了六条信息。
野蛮模式只用到三条信息。
身份保护:
对等体标识:
主模式域共享秘钥认证:第一阶段
野蛮模式:
与主模式相比,野蛮模式减少了交换信息的数目,提高了协商的速度,但是没有对身份信息进行加密保护。虽然野蛮模式不提供身份保护,但它可以满足某些特定的网络环境需求。
总结:
IKE作用:
IKE负责自动建立和维护IKE SAS和IPSec SAs。功能主要体现在如下几个方面:
主模式九个报文(IKE阶段六个【协商IKE-SA】,快速模式三个【协商IPsec-SA】),野蛮模式六个报文(IKE阶段三个【协商IKE-SA】,快速模式三个【协商IPsec-SA】)。
两个安全联盟SA,IKE安全联盟SA和IPsec安全联盟SA。
IKE主模式和野蛮模式区别:
IKEv1建立IKESA的过程定义了主模式(Main Mode) 和野蛮模式(Aggressive Mode)两种交换模式。
主模式包含三次双向交换,用到了六条信息:
野蛮模式只用到三条信息: