虚拟专用网VPN系列讲座.docx
- 文档编号:10430382
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:30
- 大小:192.20KB
虚拟专用网VPN系列讲座.docx
《虚拟专用网VPN系列讲座.docx》由会员分享,可在线阅读,更多相关《虚拟专用网VPN系列讲座.docx(30页珍藏版)》请在冰点文库上搜索。
虚拟专用网VPN系列讲座
虚拟专用网VPN系列讲座
VPN--虚拟专用网(VirtualPrivateNetwork)是专用网络在公共网络如Internet上的扩展。
VPN通过私有隧道技术在公共网络上仿真一条点到点的专线,从而达到安全的数据传输目的。
基于Internet的VPN也称为IP-VPN。
单纯仿真一条点到点的连接,数据只要经过封装,再加上一个提供路由信息的报头就可以了。
而如果要仿真一条专线,为保证传输数据的安全,通常还要对数据进行加密处理。
VPN连接必须同时包含数据封装和加密两方面。
图一、VPN示意图
有了VPN,用户在家里或在路途中也可以利用Internet或其他公共网络对企业服务器进行远程访问。
从用户的角度来看,VPN就是在用户计算机即VPN客户机和企业服务器即VPN服务器之间点到点的连接,由于数据通过一条仿真专线传输,用户感觉不到公共网络的实际存在,能够像在专线上一样处理企业部信息。
换言之,虚拟专用网不是真正的专用网络,但却能够实现专用网络的功能。
VPN可以使企业通过公共网络在公司总部和各远程分部以及客户之间建立快捷,安全、可靠的信息通信。
这种连接方式在概念上等同于传统广域网WAN的运作。
VPN技术的出现,使企业不再依赖于昂贵的长途拨号以及长途专线服务,而代之以本地ISP提供的VPN服务。
从企业中心站点铺设至当地ISP的专线要比传统WAN解决方案中的长途专线短得多,因而成本也低廉得多。
VPN的构成
一个典型VPN的组成部分如图二所示:
图二、VPN的构成
VPN服务器:
接受来自VPN客户机的连接请求。
VPN客户机:
可以是终端计算机也可以是路由器。
隧道:
数据传输通道,在其中传输的数据必须经过封装。
VPN连接:
在VPN连接中,数据必须经过加密。
隧道协议:
封装数据、管理隧道的通信标准。
传输数据:
经过封装、加密后在隧道上传输的数据。
公共网络:
如Internet,也可以是其他共享型网络。
注:
隧道里也可以发送未经加密的数据,但在这种情况下,专用数据没有经过加密处理而以易读形式在公共网络上传输,因而不属于VPN连接。
讲座2
一、点对点隧道协议PPTP(Point-to-PointTunnelingProtocol)
PPTP将PPP(Point-to-PointProtocol)帧封装进IP数据报中,通过IP网络如Internet或其他企业专用Intranet等发送。
PPTP具体文档请参阅RFC2637。
PPTP通过PPTP控制连接来创建、维护、终止一条隧道,并使用通用路由封装GRE(GenericRoutingEncapsulation)对PPP帧进行封装。
封装前,PPP帧的有效载荷即有效传输数据首先必须经过加密、压缩或是两者的混合处理。
PPTP协议假定在PPTP客户机和PPTP服务器之间有连通且可用的IP网络。
因此如果PPTP客户机本身已经是某IP网络的组成部分,那么即可通过该IP网络与PPTP服务器取得连接;而如果PPTP客户机尚未连入网络,譬如在Internet拨号用户的情形下,PPTP客户机必须首先拨打NAS以建立IP连接。
这里所说的PPTP客户机也就是使用PPTP协议的VPN客户机,而PPTP服务器亦即使用PPTP协议的VPN服务器。
在创建基于PPTP的VPN连接过程中,使用的认证机制与创建PPP连接时相同。
此类认证机制主要有:
扩展身份认证协议EAP(ExtensibleAuthenticationProtocol)、微软询问握手认证协议MS-CHAP(MicrosoftChallenge-HandshakeAuthenticationProtocol)、CHAP、Shiva口令字认证协议SPAP(ShivaPasswordAuthenticationProtocol)和口令字认证协议PAP(PasswordAuthenticationProtocol)。
PPTP继承PPP有效载荷的加密和压缩。
在Windows2000中,由于PPP帧使用微软点对点加密技术MPPE(MicrosoftPoint-to-PointEncryption)进行加密,因此认证机制必须采用EAP或MS-CHAP。
MPPE只提供连接加密,而不提供端-端加密。
端-端加密属于应用层的加密技术,如果应用中要现端-端加密,则可在PPTP隧道建立之后,使用IPSec对两端的IP数据流进行加密处理。
基于Internet的PPTP服务器即使用PPTP协议的VPN服务器,它的一个接口在Internet上,另一个接口在Intranet上。
二、PPTP控制连接与隧道维护
PPTP控制连接建立在PPTP客户机IP地址和PPTP服务器IP地址之间,PPTP客户机使用动态分配的TCP端口号,而PPTP服务器则使用保留TCP端口号1723。
PPTP控制连接携带PPTP呼叫控制和管理信息,用于维护PPTP隧道,其中包括周期性地发送回送请求和回送应答消息,以期检测出客户机与服务器之间可能出现的连接中断。
PPTP控制连接数据包包括一个IP报头,一个TCP报头和PPTP控制信息,数据包格式见图八。
图八所示的PPTP控制连接数据包还包括数据链路层报头和报尾。
图八、PPTP控制连接数据包
三、PPTP数据封装
PPTP数据的隧道化过程采用多层封装的方法。
图九显示了封装后在隧道中传输的数据包格式。
图九、在隧道中传输的PPTP数据包格式
1)PPP帧的封装
初始PPP有效载荷如IP数据报、IPX数据报或NetBEUI帧等经过加密后,添加PPP报头,封装形成PPP帧。
PPP帧再进一步添加GRE报头,经过第二层封装形成GRE报文。
GRE是采用第47号IP协议的客户端协议,为在IP网络上进行数据封装提供了一种简单,轻巧的通用机制。
有关GRE详细文档可参见RFC1701和RFC1702。
在GRE报头中,协议类型即PPP帧的EtherType值应设置为0x880B。
2)GRE报文的封装PPP有效载荷的第三层封装是在GRE报文外,再添加IP报头。
IP报头包含数据包源端及目的端IP地址。
3)数据链路层封装数据链路层封装是IP数据报多层封装的的最后一层,依据不同的外发物理网络再添加相应的数据链路层报头和报尾。
例如,如果IP数据报将在以太网上传输,则用以太网报头和报尾对IP数据报进行数据链路层封装;如果IP数据报将在点-点WAN上传输,如模拟网或ISDN等,则用PPP报头和报尾对IP数据报进行数据链路层封装。
4)PPTP数据包的接收处理PPTP客户机或PPTP服务器在接收到PPTP数据包后,将做如下处理:
1.处理并去除数据链路层报头和报尾
2.处理并去除IP报头
3.处理并去除GRE和PPP报头
4.如果需要的话,对PPP有效载荷即传输数据进行解密或解压缩。
5.对传输数据进行接收或转发处理
四、PPTP数据包和Windows2000网络体系结构
下图描述了某使用模拟modem进行远程访问的VPN连接中,VPN客户机端数据报在Windows2000网络体系结构中的封装流程。
图十、PPTP数据包的封装流程
具体步骤如下:
1.IP数据报、IPX数据报或NetBEUI帧由各自协议提交给对应于VPN连接的虚拟接口。
该接口符合网络驱动程序接口规NDIS。
2.NDIS将数据报提交给NDISWAN,由NDISWAN负责对数据进行加密、压缩处理后,添加PPP报头进行第一步封装。
该PPP报头仅含一个PPP协议标识域,不附加任何帧校正序列FCS或其他标记。
3.NDISWAN将PPP帧提交给PPTP协议驱动程序,该驱动程序负责在PPP帧外添加GRE报头进行第二步封装。
该GRE报头中,CallID域的值唯一地标识了一条隧道。
4.PPTP协议驱动程序将GRE报文提交给TCP/IP协议驱动程序。
5.TCP/IP协议驱动程序再对GRE报文添加IP报头进行第三步封装,封装后提交给拨往本地ISP的拨号连接接口,该接口符合网络驱动程序接口规NDIS。
6.NDIS再次将数据报提交给NDISWAN,NDISWAN给数据报添加PPP报头、报尾进行最后的数据链路层封装。
7.NDISWAN将最终形成的PPP帧提交给与拨号硬件相对应的WAN微端口驱动程序。
(例如modem连接中的异步端口)
讲座3
一、第二层隧道协议L2TP和IP安全IPSec
第二层隧道协议L2TP(LayerTwoTunnelingProtocol)是PPTP和第二层转发L2F两种技术的结合,后者是由Cisco公司提出的隧道技术。
为了避免PPTP和L2F两种互不兼容的隧道技术在市场上彼此竞争从而给用户造成困惑,带来不方便,IETF要求将两种技术结合在单一隧道协议中,并在该协议中糅合PPTP和L2F两者的优点,由此产生了L2TP。
有关L2TP协议标准详见RFC2661。
L2TP协议将PPP帧封装后,可通过IP,X.25,帧中继或ATM等网络进行传送。
目前,仅定义了基于IP网络的L2TP。
在IP网络中L2TP采用用户数据报协议UDP封装和传送PPP帧。
L2TP隧道协议可用于Internet,也可用于其他企业专用Intranet中。
IP网上的L2TP不仅采用UDP封装用户数据,还通过UDP消息对隧道进行维护。
PPP帧的有效载荷即用户传输数据,可以经过加密、压缩或两者的混合处理,但需要指出的是,与PPTP不同,在Windows2000中,L2TP客户机不采用MPPE对L2TP连接进行加密,L2TP连接加密由IPSecESP提供。
在Windows2000中,创建一条未经IPSec加密的L2TP连接是有可能的,但在这种情形下,由于用户私有数据没有经过加密处理,因此该L2TP连接不属于VPN连接。
非加密L2TP连接一般用于临时性的对基于IPSec的L2TP连接进行故障诊断和排除,在这种情况下,可以省略IPSec认证和协商过程。
与PPTP类似,L2TP协议假定在L2TP客户机和L2TP服务器之间有连通且可用的IP网络。
因此如果L2TP客户机本身已经是某IP网络的组成部分,那么即可通过该IP网络与L2TP服务器取得连接;而如果L2TP客户机尚未连入网络,譬如在Internet拨号用户的情形下,L2TP客户机必须首先拨打NAS建立IP连接。
这里所说的L2TP客户机也就是使用L2TP隧道协议和IPSec安全协议的VPN客户机,而L2TP服务器亦即使用L2TP隧道协议和IPSec安全协议的VPN服务器。
创建L2TP隧道时必须使用与PPP连接相同的认证机制,诸如EAP,MS?
CHAP,CHAP,SPAP,和PAP。
基于Internet的L2TP服务器亦即使用L2TP协议的拨号服务器,它的一个接口在外部网络Internet上,另一个接口在目标专用网络Intranet上。
L2TP隧道维护控制消息和隧道化用户传输数据具有相同的包格式。
二、基于L2TP控制消息的隧道维护
与PPTP不同,L2TP不是通过一条单独的TCP连接来进行隧道维护。
L2TP客户机和服务器之间的呼叫控制和管理均以发送UDP消息的方式进行。
在Windows2000中,L2TP客户机和服务器都使用UDP1701端口。
--------------------------------------------------------------------------注:
在Windows2000中,L2TP客户机和服务器始终使用UDP1701端口,但Windows2000L2TP服务器也支持使用非1701UDP端口的L2TP客户机。
--------------------------------------------------------------------------
IP网上的L2TP控制消息以UDP数据报形式发送。
在Windows2000实现中,L2TP控制消息即UDP数据报经过IPSecESP的加密,见下图:
图十一、L2TP控制消息
由于UDP提供的是无连接的数据包服务,因此L2TP采用将消息序列化的方式来保证L2TP消息的按序递交。
在L2TP控制消息中,Next-Received字段(类似于TCP中的确认字段)和Next-Sent字段(类似于TCP中序列号字段)用于维持控制消息的序列化。
无序数据包将被丢弃。
Next-Received字段和Next-Sent字段同样用于用户传输数据的按序递交和流控制。
L2TP支持一条隧道的多路呼叫。
在L2TP的控制消息中以及L2TP数据帧的报头,TunnelID标识了一条隧道而CallID标识了该隧道的一路呼叫。
下表列出了一些主要的L2TP控制消息。
表二、L2TP控制消息
L2TP控制消息的确切格式,请参阅L2TPInternet草案。
三、L2TP数据封装
L2TP用户传输数据的隧道化过程采用多层封装的方法。
图十二显示了封装后在隧道中传输的基于IPSec的L2TP数据包格式。
图十二、L2TP数据包封装
1)L2TP封装初始PPP有效载荷如IP数据报、IPX数据报或NetBEUI帧等首先经过PPP报头和L2TP报头的封装。
2)UDP封装L2TP帧进一步添加UDP报头进行UDP封装,在UDP报头中,源端和目的端端口号均设置为1701。
3)IPSec封装基于IPSec安全策略,UDP消息通过添加IPSec封装安全负载ESP报头、报尾和IPSec认证报尾(Authtrailer),进行IPSec加密封装。
4)IP封装在IPSec数据报外再添加IP报头进行IP封装,IP报头中包含VPN客户机和服务器的源端和目的端IP地址。
5)数据链路层封装数据链路层封装是L2TP帧多层封装的的最后一层,依据不同的外发物理网络再添加相应的数据链路层报头和报尾。
例如,如果L2TP帧将在以太网上传输,则用以太网报头和报尾对L2TP帧进行数据链路层封装;如果L2TP帧将在点-点WAN上传输,如模拟网或ISDN等,则用PPP报头和报尾对L2TP帧进行数据链路层封装。
6)基于IPSec的L2TP隧道化数据的解封装过程在接收到L2TP帧后,L2TP客户机或服务器将做如下解封装处理:
1.处理并去除数据链路层报头和报尾
2.处理并去除IP报头
3.用IPSecESP认证报尾对IP有效载荷和IPSecESP报头进行认证
4.用IPSecESP报头对数据报的加密部分进行解密
5.处理UDP报头并将数据报提交给L2TP协议
6.L2TP协议依据L2TP报头中TunnelID和CallID分解出某条特定的L2TP隧道
7.依据PPP报头分解出PPP有效载荷,并将它转发至相关的协议驱动程序做进一步处理
四、基于IPSec的L2TP数据包和Windows2000网络体系结构
下图描述了某使用modem进行远程访问的VPN连接中,VPN客户机端L2TP数据包在Windows2000网络体系结构中的封装流程。
图十三、L2TP数据包的封装流程
具体步骤如下:
1.IP数据报、IPX数据报或NetBEUI帧由各自协议提交给对应于VPN连接的虚拟接口。
该接口符合网络驱动程序接口规NDIS。
2.NDIS将数据报提交给NDISWAN,NDISWAN可选择对数据进行压缩处理后,添加PPP报头进行第一步封装。
该PPP报头仅含一个PPP协议标识域,不附加任何帧校正序列FCS或其他标记。
3.NDISWAN将PPP帧提交给L2TP协议驱动程序,该驱动程序负责在PPP帧外添加L2TP报头进行第二步封装。
在L2TP报头中,TunnelID和CallID的组合标识了一条隧道。
4.L2TP协议驱动程序再将封装后的数据报提交给TCP/IP协议驱动程序,并告之驱动程序,将L2TP数据报作为UDP消息发送,两端UDP端口号均为1701。
5.TCP/IP协议驱动程序对报文添加IP报头和UDP报头。
然后由IPSec对报文进行分析,选择与之相匹配的安全策略,并在此安全策略的基础上,给数据报的UDP消息部分添加相应的ESP报头、报尾,进行IPSec加密、封装。
完成IPSec封装后,将原先的IP报头中协议字段值设置为50,同时将该IP报头添加在ESP报文外。
之后,TCP/IP协议驱动程序将结果报文提交给拨往本地ISP的拨号连接接口,该接口符合网络驱动程序接口规NDIS。
6.NDIS再次将数据报提交给NDISWAN。
7.由NDISWAN提供数据链路层PPP报头、报尾,并将最终形成的PPP帧提交给与拨号硬件相对应的WAN微端口驱动程序。
讲座4
安全是VPN至关重要的组成部分。
下面分别就PPTP协议和基于IPSec的L2TP协议讨论VPN连接中的安全策略。
一、PPTP连接
PPTP协议提供的安全策略有用户认证和加密。
1)基于PPP的用户认证
PPTP连接采用基于PPP的用户认证协议,如EAP,MS-CHAP,CHAP,SPAP,和PAP。
对于PPTP连接,智能卡支持的交易层安全协议EAP-TLS和MS-CHAPv2版,由于提供双向认证,被认为是两种最安全的信任状交换的验证方法,因此得到大力推广,使用最为广泛。
2)基于MPPE的加密措施
PPTP承继MPPE加密技术,MPPE采用RSA/RC4加密算法,这是一种流式加密器(streamcipher)。
这里需要指出的是,仅当采用EAP-TLS或MS-CHAP认证协议时才能使用MPPE进行加密。
MPPE采用40位、56位、128位三种不同长度的密钥。
40位密钥提供与非Windows2000客户机的向后兼容性。
缺省情况下,在连接建立过程中,VPN客户机和服务器自动协商采用最高位数的密钥。
如果VPN服务器要求的密钥位数比VPN客户机所能支持的最大密钥位数还要高,则连接请求被拒绝。
最早MPPE是为点-点的连接加密设计的,在点-点连接中,数据包收发顺序相同,极少发生包丢失现象。
因此针对这种环境而设计的MPPE加密法,每个数据包的解密有赖于前一数据包的解密结果。
然而,对VPN而言,IP数据包通过Internet传输,无法确保收发同序,且数据包丢失比例较高。
因此,VPN连接中所使用的MPPE,其报头中包含了一个序列号,如果发生数据包丢失或到达时失序,MPPE则依据序列号对数据包密钥做修改,从而使得每个数据包的解密过程可以独立于前一数据包。
3)PPTP包过滤
一个典型的基于PPTP的VPN服务器有两个物理接口:
其中一个接口在诸如Internet这样的公共或共享网络上,另一个接口在企业专用Intranet上。
同时它还有一个面向所有VPN客户机连接的虚拟接口。
当VPN服务器需要在VPN客户机之间进行数据流转发时,必须在所有接口之间允许IP转发。
然而,允许两个物理接口之间的转发会导致VPN服务器将所有来自共享或公共网络上的IP数据包通过路由全部传送至部Intranet。
为了防止Intranet接收来自非特定VPN客户机以外的其他数据流,必须配置PPTP包过滤,使得VPN服务器仅在VPN客户机和企业专用Intranet之间进行路由转发,拒绝公共网络和Intranet之间所有其他用户,从而杜绝可能出现的的潜在恶意行为。
PPTP包过滤可以配置在VPN服务器上,也可以配置在中介防火墙上。
有关包过滤和防火墙的详细容,将在"VPN与防火墙"中做进一步介绍。
二、基于IPSec的L2TP连接
基于IPSec的L2TP提供的安全策略有用户认证、双向计算机认证、加密、数据验证和数据完整性。
1)基于IPSec的L2TP用户认证
VPN客户机认证分为两级:
计算机认证和用户认证。
a.IPSec计算机认证
使用基于IPSec的L2TP协议,需要在VPN客户机和服务器之间建立IPSecESP安全联系SA(securityassociation),这时要用到双向计算机认证。
所谓IPSecSA,是经过IPSec第一和第二阶段的协商,两端的VPN客户机和VPN服务器在加密算法、hash运算规则、加密密钥等方面取得一致后,建立起来的客户机和服务器之间的IPSec安全联系。
双向计算机认证,要求VPN客户机和服务器两端均安装有计算机认证书。
有两种途径可以获得证书,一是配置Windows2000组策略方案的自动注册,二是以手工方式使用证书插件(Certificatessnap-in)。
详细容,可参考Windows2000服务器帮助信息。
b.L2TP用户级认证
请求建立L2TP连接的用户由基于PPP的用户认证协议进行认证,此类认证协议主要有:
EAP,MS-CHAP,CHAP,SPAP,和PAP。
由于在L2TP连接建立过程中采用的是IPSec加密技术,因此可选择任意一种PPP认证协议进行用户认证,其中MS-CHAPv2版和EAP-TLS要现双向用户认证。
c.L2TP隧道认证
L2TP还提供在隧道建立过程中对L2TP隧道端点的认证。
但在缺省情况下,Windows2000并不要求对L2TP隧道进行认证。
有关L2TP隧道认证的详细信息,可参阅微软相关资料。
2)基于IPSec的L2TP加密
L2TP加密取决于IPSecSA的建立。
加密算法包括:
·基于56位密钥的数据加密标准DES
·3DES,使用3个56位密钥,适用于对安全要求更高的环境中。
由于在IP网络环境中,可能出现数据包丢失或数据包到达时失序等现象,因此在IP网络中,每个IPSec数据包都经过单独加密,加解密过程独立于其他IPSec数据包。
初始密钥在IPSec认证过程中获得。
此后密钥的产生在不同类型的连接中有所不同,在DES加密连接中,每隔5分钟或每传输250兆字节产生一个新密钥;在3DES加密连接中,每隔1小时或每传输2千兆字节产生一个新密钥;在AH保护连接中,每隔1小时或每传输2千兆字节产生一个新hash密钥。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 虚拟 专用网 VPN 系列 讲座