VPN理论入门及GRE、L2TP、IPsec(HCIP)
一、VPN概述
IPsec-VPN:
1、应用范围:用于分公司和总部之间。
2、作用:机密性、证书(身份认证)
VPN概述
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基本构成三要素
VPN基本构成三要素:乘客协议、封装协议、运输协议
乘客协议 | 用户传输数据使用的原始网络协议。 |
封装协议 | “包装”乘客协议d对应的报文,使原始报文能够在新网络上传输。 |
运输协议 | 指被封装后的报文在新网络中传输时所使用的网络协议。 |
二、GRE
GRE支持组播
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 (目标地址)
GRE特点
1、优点
- 支持多种上层协议如IP和IPX
- 支持组播
2、缺点
- 不支持报文加密,抓包可以看到全部报文内部信息
- 无法确定发送者身份
- 无法对报文ip源发送者进行身份认证
- 弱完整性验证
三、VPN
VPN的优势
安全:在远端用户、驻外机构、合作伙伴、供应商与公司总部之间建立可靠的连接,保证数据传输的安全性。这对于实现电子商务或金融网络与通讯网络的融合特别重要。
廉价:利用公共网络进行信息通讯,企业可以用更低的成本连接远程办事机构、出差人员和业务伙伴。
支持移动业务:支持驻外外VPN用户在王何时间、任何地点的移动接入,能够满足不断增长的移动业务需求。
可扩展性:由于VPN为逻辑上的网络物理网络中增加或修改节点,不影响VPN的部署。
VPN分类
1、按组网类型分类
- 网关与网关之间
- 主机与网关之间
- 主机与主机之间
2、按照现实网络层次分类
- L3VPN
- L2VPN
- 应用层
四、L2TP-VPN
L2TP-VPN(Layer Two Tunneling Protocal)二层隧道协议:L2TP用于承载PPP报文的隧道技术,其主要应用在远程办公场景中为出差员工远程访问企业内网资源提供接入服务。支持认证、支持承载多种三层协议。
L2TP特点
优点:
- 灵活的身份验证机制以及高度的安全性
- 多协议传输,多亏了ppp(ppp没有mac地址概念)
- 支持RADIUS服务器的验证
- 支持内部地址分配(可以拿到内部网段)NCP
- 可靠性L2TP支持主备LNS
- 能封装PPP协议
缺点:
- 不支持加密
L2TP角色
有的场景用户 角色可以没有,有的时候LAC角色可以没有。
有PPPoE拨号就叫NAS,没有就叫LAC,多用户单独拨号,每一个拨号会建立一条隧道,浪费资源。
L2TP应用场景
1、L2TP应用场景——NSA-initiated VPN
2、L2TP应用场景——LAC自动拨号
3、L2TP应用场景——Client-initiated VPN
L2TP隧道和会话建立过程
在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,需要放通。
五、IPsec
IPsec的产生背景
企业分支之间经常有互联的需求,企业互联的方式很多,可以使用广域网专线或者Internet线路部分企业从成本和需求出发会选择使用lnternet进行互联,但是存在安全风险,如何保障数据在传输时不会被窃取或者被算改?
IPsec通过将数据报文进行加密传输,达到保障企业安全互联的目的。
IPsec简介
IPsec (Internet Protocol Security,因特网协议安全协议) 是ETF (Internet Engineering Task Force)制定的一组开放的网络安全协议(标准,厂商共同支持)。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合。
IPsec通过加密与验证等方式,从以下几个方面保障了用户业务数据在internet中的安全传输:
- 数据来源验证:接收方验证发送方身份是否合法(带ID)。
- 数据加密:发送方对数据进行加密,以密文的形式在开放网络上传送,接收方对接收的加密数据进行解密后处理或直接转发(第一阶段5、6包秘钥加密)。
- 数据完整性:接收方对接收的数据进行验证,以判定报文是否被算改(带秘钥的哈希)。
- 抗重放:接收方拒绝旧的或重复的数据包,防止恶意用户通过重复发送捕获到的数据包所进行的攻击。
IPsec协议框架
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协议体系:
IPSec通过验证头AH (Authentication Header) 和封装安全载荷ESP (Encapsulating Security Payload)两个安全协议实现IP报文的安全保护。
IPsec安全协议AH
认证头协议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来标识
IPsec安全协议ESP
- 除提供AH的功能之外,还提供对有效载荷的加密功能。
- ESP的工作原理是在每一个数据包的标准IP报头后面添加一个ESP报头(ESP Header),并在数据包后面追加一个ESP尾(ESP Tail和ESP Auth data)。与AH不同的是,ESP尾中ESP Authdata用于对数据提供来源认证和完整性校验,并且ESP将数据中的有效载荷进行加密后再封装到数据包中,以保证数据的机密性,但ESP没有对IP头的内容进行保护。
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协议封装模式对比:
封装模式对比:
安全性:
- 隧道模式隐藏原IP头信息,安全性更好
性能:
- 隧道模式有一个额外的IP头,隧道模式比传输模式占用更多带宽。
具体选择哪种封装模式,需要在性能和安全之间做权衡。
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生存周期不同
手工方式创建的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
- IKEv1使用两个阶段为IPSec进行密钥协商并建立IPSecSA。
- 第一阶段,通信双方协商和建立IKE本身使用的安全通道,建立一个IKESA。
- 第二阶段,利用这个已通过了认证和安全保护的安全通道,建立一对IPSec SA。
IKEv2
- IKEv2则简化了协商过程。加入安全机制康DDOS、防中间人、速度快、加入ESP认证。
- 在一次协商中可直接产生IPSec的密钥,生成IPSec SA。
IKE简介:因特网密钥交换IKE(lnternet Key Exchange) 协议建立在Internet安全联盟和密钥管理协议ISAKMP定义的框架上,是基于UDP (User Datagram Protocol)的应用层协议。它为IPSec提供了自动协商密钥(Oakley和SKEME基于DH算法实现)、建立IPSec安全联盟的服务,能够简化IPSec的使用和管理,大大简化IPsec的配置和维护工作。
Oakley和SKEME基于DH算法实现自动协商秘钥。
IKE的三个组件:
- SKEME:提供了DH算法支持,对DH算法做了优化,防止中间人攻击(加了认证对数字签名、公开秘钥加密、对称秘钥加密)。
- ISAKMP:定义了IKE报文格式。
- Oakley:确认加密秘钥机制。
IKE分两个阶段实现:
- 第一阶段为建立IKE本身使用的安全信道而相互交换SA(采用ISAKMP)--ISAKMP SA(双向)
- 第二阶段利用第一阶段建立的安全信道交换IPSec通信中使用的SA--IPSec SA (单向)
IKEv1的三种模式:
主模式:九个报文,主模式六个报文,快速模式三个报文。
野蛮模式:六个报文,野蛮模式三个报文,快速模式三个报文。
IKEv1包:
IKEv1有主模式和野蛮模式,IKEv2没有。
野蛮模式与主模式对比:
IKEv1的过程定义了主模式(Main Mode)和野蛮模式 (Aggressive Mode)两种交换模式主模式包含三次双向交换,用到了六条信息。
- 消息1和2用于策略交换。
- 消息3和4用于密钥信息交换。
- 消息5和6用于身份和认证信息交换(5和6包被秘钥加密)。
野蛮模式只用到三条信息。
- 前两条消息1和2用于协商提议与秘钥信息交换,消息3用于响应方认证发起方。
身份保护:
- 主模式的最后两条消息有加密,可以提供身份保护功能,而野蛮模式消息集成度过高,因此无身份保护功能。
对等体标识:
- 主模式只能采用IP地址方式标识对等体,而野蛮模式可以采用IP地址方式或者Name方式标识对等体。
主模式域共享秘钥认证:第一阶段
野蛮模式:
与主模式相比,野蛮模式减少了交换信息的数目,提高了协商的速度,但是没有对身份信息进行加密保护。虽然野蛮模式不提供身份保护,但它可以满足某些特定的网络环境需求。
- 当IPSec隧道中存在NAT设备时,需要启用NAT穿越功能,而NAT转换会改变对等体的IP地址,由于野蛮模式不依赖于IP地址标识身份,使得采用预共享密钥验证方法时,NAT穿越只能在野蛮模式中实现。
- 如果发起方的IP地址不固定或者无法预先知道,而双方都希望采用预共享密钥验证方法来创建IKE SA,则只能采用野蛮模式。
- 如果发起方已知响应方的策略,或者对响应者的策略有全面的了解,采用野蛮模式能够更快地创建IKE SA。
总结:
IKE作用:
IKE负责自动建立和维护IKE SAS和IPSec SAs。功能主要体现在如下几个方面:
- 对双方进行认证(主模式5&6包HASH_I/R)。
- 交换公共密钥,产生密钥资源,管理密钥。
- 协商协议参数(封装,加密,验证.....)。
主模式九个报文(IKE阶段六个【协商IKE-SA】,快速模式三个【协商IPsec-SA】),野蛮模式六个报文(IKE阶段三个【协商IKE-SA】,快速模式三个【协商IPsec-SA】)。
两个安全联盟SA,IKE安全联盟SA和IPsec安全联盟SA。
IKE主模式和野蛮模式区别:
IKEv1建立IKESA的过程定义了主模式(Main Mode) 和野蛮模式(Aggressive Mode)两种交换模式。
主模式包含三次双向交换,用到了六条信息:
- 消息1和2用于策略交换,协商提议;SA
- 消息3和4用于密钥信息交换;ke nonce
- 消息5和6用于身份和认证信息交换;id hash
野蛮模式只用到三条信息:
- 前两条消息1和2用于协商提议。
- 消息3用于响应方认证发起方。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!