您的当前位置:首页正文

网络安全技术】——VPN技术及应用

2024-11-18 来源:个人技术集锦

? 1. 概述
虚拟专用网(VPN)建立在公用网上,由某个组织或某些用户专用

虚拟性:没有专用物理连接
专用性:在VPN之外的用户无法访问VPN内部的网络资源
VPN的概念:IETF草案对基于IP网络的VPN定义为:使用IP机制仿真出一个私有的广域网。

从实现方法来看,VPN是指依靠Internet服务提供商ISP和网络服务提供商NSP的网络基础设施,在公共网络中建立专用的数据通信通道。

? 1.1 VPN的基本类型及应用
根据应用环境的不同,VPN主要分为三种典型的应用方式:内联网VPN、外联网VPN和远程接入VPN。

? 1.1.2 外联网VPN
外联网VPN(Extranet VPN)的组网方式如下图所示。与内联网VPN相似,外联网VPN也是一种网关对网关的结构。在内联网VPN中位于LAN1和LAN2中的主机是平等的,可以实现彼此之间的通信。但在外联网VPN中,位于不同内部网络(LAN1、LAN2和LAN3)的主机在功能上是不平等的。


外联网VPN是随着企业经营方式的发展而出现的一种网络连接方式。现代企业需要在企业与银行、供应商、销售商以及客户之间建立一种联系(即电子商务活动),但是在这种联系过程中,企业需要根据不同的用户身份(如供应商、销售商等)进行授权访问,建立相应的身份认证机制和访问控制机制。

外联网VPN其实是对内联网VPN在应用功能上的延伸,是在内联网VPN的基础上增加了身份认证、访问控制等安全机制。

? 1.1.3 远程接入VPN
远程接入VPN(Access VPN)的组网方式如下图所示。远程接入VPN也称为移动VPN,即为移动用户提供一种访问单位内部网络资源的方式,主要应用于单位内部人员在外(非内部网络)访问单位内部网络资源的情况下,或为家庭办公的用户提供远程接入单位内部网络的服务。

? 1.2 VPN的实现技术
VPN是在Internet等公共网络基础上,综合利用隧道技术、加密技术和身份认证技术来实现的。

? 1.2.1 隧道技术
隧道(Tunneling)技术是VPN的核心技术,它是利用Internet等公共网络已有的数据通信方式,在隧道的一端将数据进行封装,然后通过已建立的虚拟通道(隧道)进行传输。在隧道的另一端,进行解封装操作,将得到的原始数据交给对端设备。
在进行数据封装时,根据在OSI参考模型中位置的不同,可以分为第二层隧道技术和第三层隧道技术两种类型。其中,第二层隧道技术是在数据链路层使用隧道协议对数据进行封装,然后再把封装后的数据作为数据链路层的原始数据,并通过数据链路层的协议进行传输。第二层隧道协议主要有:
(1)L2F(Layer 2 Forwarding,主要在RFC 2341文档中进行了定义)
(2)PPTP(Point-to-Point Tunneling Protocol,主要在RFC 2637文档中进行了定义)
(3)L2TP(Layer 2 Tunneling Protocol,主要在RFC 2661文档中进行了定义)
第三层隧道技术是在网络层进行数据封装,即利用网络层的隧道协议将数据进行封装,封装后的数据再通过网络层的协议(如IP)进行传输。第三层隧道协议主要有:
(1)IPSec(IP Security,主要在RFC 2401文档中进行了定义)
(2)GRE(Generic Routing Encapsulation,主要在RFC 2784文档中进行了定义)

? 1.2.2 加密技术
通过Internet等公共网络传输的重要数据必须经过加密处理,以确保信息的保密性
最普遍使用的对称加密算法有DES、3DES、AES、RC4和RC5\IDEA等
使用的公钥加密算法有RSA、椭圆曲线等
? 1.2.3 密钥管理技术
建立隧道和保密通信都需要密钥管理技术的支撑,通常采用密钥交换协议动态分发。

? 1.2.4 身份认证技术
VPN系统中的身份认证技术包括用户身份认证和信息认证两个方面。其中,用户身份认证用于鉴别用户身份的真伪,而信息认证用于保证通信双方的不可抵赖性和信息的完整性。从实现技术来看,目前采用的身份认证技术主要分为非PKI体系和PKI体系两类,其中非PKI体系主要用于用户身份认证,而PKI体系主要用于信息认证。

? 1.3 VPN的应用特点
VPN的优势

节约成本
提供了安全保障
易于扩展
VPN的不足

主要是安全问题,VPN扩展了网络的安全边界
VPN中密钥的产生、分配、使用和管理,以及用户身份的认证方式都会影响VPN系统的安全性,
在实际应用中,可以将VPN和防火墙配合应用,通过防火墙
增强VPN系统的安全性。
? 2. 隧道技术
? 2.1 概念
VPN的隧道技术是VPN的核心技术,VPN的加密和身份认证等安全技术都需要与隧道技术相结合来实现

网络隧道(Tunneling)技术的核心内容是指利用一种网络协议(该协议称为隧道协议)来传输另一种网络协议。在面向非连接的公共网络上建立一个逻辑的、点对点连接的过程称为建立了一个隧道。目前,隧道技术在计算机网络中的应用非常广泛,除本章介绍的VPN隧道外,隧道技术在IPv4与IPv6互联等应用领域大量使用。隧道有多种实现方式,本章主要介绍基于IP网络的VPN隧道技术。

? 2.1.1 隧道的组成
要形成隧道,需要有以下几项基本的要素:
(1)隧道开通器(TI)。隧道开通器的功能是在公用网中创建一条隧道。
(2)有路由能力的公用网络。由于隧道是建立在公共网络中,要实现VPN网关之间或VPN客户端与VPN网关之间的连接,这一公共网络必须具有路由功能。
(3)隧道终止器(TT)。隧道终止器的功能是使隧道到此终止,不再继续向前延伸。

? 2.1.2 隧道的实现过程


如上图所示的是一个基于IP网络的VPN隧道,通过隧道将LAN1和LAN2连接起来,使位于LAN1和LAN2中的主机之间可以像在同一网络中一样利用IP进行通信。为了便于对隧道的工作过程进行描述,现假设与LAN1连接的VPN网关为隧道开通器,而与LAN2连接的VPN网关为隧道终止器,用户数据从LAN1发往LAN2,具体过程如下:

(1)封装:封装操作发生在隧道开通器上。当用户数据(包括有IP头部和数据两部分)到达隧道开通器时,隧道开通器将用户数据作为自己的净载荷,并对该净载荷利用隧道协议进行第1次封装。这一次封装其实是利用隧道协议对上层数据(用户数据)进行加密和认证处理。
第1次封装后形成的数据成为第2次封装的净载荷。为了使第1次封装后的数据能够通过具有路由功能的公共网络(如Internet)进行传输,还需要给它添加一个IP头部,即进行第2次封装。第2次封装后的数据根据其IP头部信息进行路由选择,并传输到与LAN2连接的VPN网关。
(2)解封装:解封装操作发生在隧道终止器上。解封装操作是封装操作的逆过程,第1次解封装去掉最外层用于在公共网络中进行寻址的IP头部信息,第2次解封装去掉隧道协议,最后得到的是用户数据。用户数据再根据其头部信息在LAN2中找到目的主机,完成通信过程。

在数据封装过程中,虽然出现了两个“IP头部”,但用户数据中的“IP头部”在隧道中是不可见的,即在隧道中传输时主要依靠第2次封装时添加的“IP头部”信息进行路由寻址。所以,用户数据中的“IP头部”对隧道来说是透明的。

? 2.1.3 隧道的功能
从以上隧道的工作原理可以看出,隧道通过封装和解封装操作,只负责将LAN1中的用户数据原样传输到LAN2,使LAN2中的用户感觉不到数据是通过公共网络传输过来的。通过隧道的建立,可实现以下功能:

? 2.2.1 主动式隧道

这是一种最为常用的隧道建立方式。对于专线接入ISP的用户,由于客户端计算机本身已经建立到Internet的连接,则免去了以上的第1步操作,可以直接建立起与隧道服务器的连接,然后进行数据的传输。
Access VPN中用户与VPN网关之间的隧道建立一般采用主动式隧道。

? 2.2.2 被动式隧道


被动式隧道的工作过程类似于如上图所示的结构。在主动式隧道模式中,客户端计算机根据需要与隧道服务器之间建立临时的隧道。与主动式隧道不同的是,被动式隧道主要用于两个内部网络(LAN1与LAN2)之间的固定连接。所以,当LAN1中的某一客户端计算机需要与LAN2中的计算机进行通信时,数据全部被交给隧道服务器A。隧道服务器A在接收到该数据后,将其强制通过已建立的隧道传输到对端的隧道服务器B。与主动式隧道的另一个不同是,被动式隧道可以被多个客户端共享,而主动式隧道只能供建立该隧道的客户端计算机独立使用。
在被动式隧道中,两个内部网络之间的隧道在用户传输数据之前就已经建立,所有发往另一个内部网络的用户数据都自动地汇集到已建立的隧道中传输。所以,将被动式隧道也称为强制式隧道。
Intranet VPN和Extranet VPN中,VPN网关之间的隧道属于被动式隧道。

? 3. 实现VPN的第二层隧道协议
第二层隧道协议是在OSI参考模型的第二层(数据链路层)实现的隧道协议。由于数据链路层的数据单位为帧,所以第二层隧道协议是以帧为数据交换单位来实现的。用于实现VPN的第二层隧道协议主要有PPTP、L2TP和L2F。本节仅介绍L2TP。

? 3.1 L2TP
? 3.1.1 L2TP的组成
L2TP(Layer 2 Tunneling Protocol,第二层隧道协议)是典型的被动式隧道协议,它结合了L2F和PPTP的优点,可以让用户从客户机或接入服务器端发起VPN连接。L2TP是把链路层PPP帧封装在公共网络设施(如IP、ATM、帧中继、X.25等)中进行隧道传输的封装协议。本章仅介绍基于IP网络的L2TP。
L2TP主要由LAC(L2TP Access Concentrator,L2TP接入集中器)和LNS(L2TP Network Server,L2TP网络服务器)构成。其中:
(1) LAC。LAC支持客户端的L2TP,用于发起呼叫、接收呼叫和建立隧道。LAC要求具有PPP端系统和L2TP协议处理功能,一般是一个NAS(Network Access Server,网络接入服务器),为用户提供通过PNST、ISDN、xDSL等多种方式接入网络的服务。
(2) LNS。LNS是所有隧道的终点。在正常的非使用隧道的PPP连接中,用户拨号连接的终点是LAC, 而L2TP将PPP连接的终点延伸到LNS。LNS一般是一台能够处理L2TP服务器端协议的主机。

? 3.1.2 L2TP的工作过程

? 3.1.3 L2TP的报文格式
L2TP客户机与LNS之间的报文也有两种:控制报文和数据报文。与PPTP不同的是,L2TP的两种报文采用UDP来封装和传输。下面,以Windows Server操作系统中的L2TP为例,介绍基于IPSec的L2TP的报文格式。

(1)L2TP控制报文:Windows Server中使用IPSec加密的L2TP控制报文的结构如图所示。与PPTP一样,L2TP的控制报文用于隧道的建立、维护与断开。但与PPTP不同的是,Windows Server中的L2TP控制报文在L2TP服务器端使用了UDP 1701端口,L2TP客户端系统默认也使用UDP 1701端口,但也可以使用其他的UDP端口。另外,与PPTP不同的是,在L2TP的控制报文中,对封装后的UDP数据报使用IPSec ESP进行了加密处理,同时对使用IPSec ESP对加密后的数据进行了认证。其他操作与PPTP基本相同。

ESP是IPSec安全体系中使用的一个安全协议,主要用来处理IP数据报的加密,同时还可以实现对数据的认证等功能。

? 3.1.4 L2TP的特点
在安全性考虑上,L2TP对传输中的数据(控制报文和数据报文)并不加密,所以L2TP并不能满足用户对安全性的需求。为了消除L2TP协议的安全隐患,在实际应用中可以使用IPSec安全协议对L2TP控制报文和L2TP数据报文提供安全保护。所以,在部署基于L2TP的VPN系统时,一般都通过IPSec加强系统的安全性。

L2TP解决了多个PPP链路的捆绑问题。L2TP隧道建立在LAC和LNS之间,在同一对LAC和LNS之间可以建立多个L2TP隧道,同时在同一个L2TP隧道中可以绑定多个PPP链路。这是因为L2TP头部信息中包含有隧道标识(Tunneling ID)和会话标识(Session ID),分别用来识别不同的隧道和会话,可以将隧道标识相同而会话标识不同的多个PPP链路复制到同一条隧道中。隧道标识在建立隧道时被分配,而会话标识是在隧道建立后分配并用于传输用户数据。

? 4. 实现VPN的第三层隧道协议
第三层隧道协议对应于OSI参考模型中的第三层(网络层),使用分组(也称为包)作为数据交换单位。与第二层隧道协议相比,第三层隧道协议在实现方式上相应要简单些。用于实现VPN的第三层隧道协议主要有GRE和IPSec。

? 4.1 IPsec
? 【信息安全原理】——IP及路由安全(学习笔记)

? 4.2 GRE(Generic Routing Encapsulation,通用路由封装)
? 4.2.1 GRE的工作原理


在最简单的情况下,路由器接收到一个需要封装和路由的原始数据报文(Payload,净载荷)后,这个报文首先被GRE封装成GRE报文,接着被封装在IP协议中,然后完全由IP层负责路由寻址和转发。由此可以看出,GRE在封装过程中不用关心原始数据包的具体格式和内容。原始数据包和IP头部都将成为封装后数据包的一部分。

GRE除封装IP报文外,还支持对IPX/SPX、Appletalk等多种网络通信协议的封装,同时还广泛支持对RIP、OSPF、BGP、EBGP等路由协议的封装。

? 4.2.2 GRE的安全性
由于GRE提供的安全特性较弱,所以可以将IPSec安全体系应用到GRE中,以提高GRE的安全性。

? 5. VPN的实现技术
? 5.1 MPLS VPN
MPLS(Multiprotocol Label Switch,多协议标签交换)VPN是基于MPLS协议构建的一种站点到站点的VPN技术,它继承了MPLS网络的优势,具有扩展性强、易于实现服务质量、服务等级和流量工程等特点,目前在电信网络中得到了广泛应用,同时在大型企业等园区网络中的应用也非常普及。

MPLS VPN是利用MPLS中的LSP作为实现VPN的隧道,用标签和VPN ID将特定VPN的数据包进行唯一识别。在无连接的网络上建立的MPLS VPN,所建立的隧道是由路由信息的交互而得的一条虚拟隧道(即LSP)。

与本章前面介绍的基于第二层和第三层隧道协议的VPN相比较,MPLS VPN可以充分利用MPLS技术的一些优势,为用户提供更安全、可靠的隧道连接服务。例如,MPLS的流量工程控制、服务质量(QoS)等。对于电信运营商来说,只需要在网络边缘设备(LER)上启用MPLS服务,对于大量的中心设备(LSR)不需要进行配置,就可以为用户提供MPLS VPN等服务业务。根据电信运营商边界设备是否参与用户端数据的路由,运营商在建立MPLS VPN时有两种选择:

第二层的解决方案,通常称为第二层MPLS VPN;
第三层解决方案,通常称为第三层MPLS VPN。
在实际应用中,MPLS VPN主要用于远距离连接两个独立的内部网络,这些内部网络一般都提供有边界路由器,所以多使用第三层MPLS VPN来实现。下面将以第三层MPLS VPN为例进行介绍。如下图所示,一个MPLS VPN系统主要由以下几个部分组成:

(1)用户边缘(Custom Edge,CE)设备。CE设备属于用户端设备,一般由单位用户提供,并连接到电信运营商的一个或多个PE路由器。通常情况下,CE设备是一台IP路由器或三层交换机,它与直连的PE路由器之间通过静态路由或动态路由(如RIP、OSPF等)建立联系。之后,CE将站点的本地路由信息广播给PE路由器,并从直连的PE路由器学习到远端的路由信息。
(2)提供商边缘(Provider Edge,PE)设备。PE路由器为其直连的站点维持一个虚拟路由转发表(VRF),每个用户链接被映射到一个特定的VRF。需要说明的是,一般在一个PE路由器上同时会提供多个网络接口,而多个接口可以与同一个VRF建立联系。PE路由器具有维护多个转发表的能力,以便每个VPN的路由信息之间相互隔离。PE路由器相当于MPLS中的LER。
(3)提供商(Provider,P)设备。P路由器是电信运营商网络中不连接任何CE设备的路由器。由于数据在MPLS主干网络中转发时使用第二层的标签堆栈,所以P路由器只需要维护到达PE路由器的路由,并不需要为每个用户站点维护特定的VPN路由信息。P路由器相当于MPLS中的LSR。
(4)用户站点(site)。是在一个限定的地理范围内的用户子网,一般为单位用户的内部局域网。

综上所述,MPLS VPN的优势在于可以通过相同的网络结构来支持多种VPN,并不需要为每一个用户分别建立单独的通道。同时,MPLS VPN 将基于IP网络的VPN功能内置于网络本身,无须进行复杂的配置和管理。
————————————————

                            ❗ 转载请注明出处 作者:HinsCoder 博客链接:
                        
原文链接:https:///HinsCoder/article/details/137448444

显示全文