第七章 防火墙L2TP VPN技术v1.docx
《第七章 防火墙L2TP VPN技术v1.docx》由会员分享,可在线阅读,更多相关《第七章 防火墙L2TP VPN技术v1.docx(18页珍藏版)》请在冰豆网上搜索。
![第七章 防火墙L2TP VPN技术v1.docx](https://file1.bdocx.com/fileroot1/2022-12/15/100088f4-745c-4abb-9470-e85e03ffe371/100088f4-745c-4abb-9470-e85e03ffe3711.gif)
第七章防火墙L2TPVPN技术v1
第七章防火墙L2TPVPN技术v1.0
幻灯片1
幻灯片2
幻灯片3
幻灯片4
幻灯片5
VPDN(VirtualPrivateDialNetwork)是指利用公共网络(如ISDN和PSTN)的拨号功能及接入网来实现虚拟专用网,从而为企业、小型ISP、移动办公人员提供接入服务。
VPDN采用专用的网络通信协议,在公共网络上为企业建立有一定安全性的虚拟专网。
企业驻外机构和出差人员可从远程经由公共网络,通过虚拟隧道实现和企业总部之间的网络连接,而公共网络上其它用户则无法穿过虚拟隧道访问企业网内部的资源。
VPDN有下列两种实现方式:
1.客户端通过NAS与VPDN网关建立隧道的方式。
这种方式将客户的PPP连接直接连到企业的网关上,目前可使用的协议有L2F与L2TP等。
其好处在于:
对用户是透明的,用户只需要登录一次就可以接入企业网络,由企业网进行用户认证和地址分配,而不占用公共地址,用户可使用各种平台上网。
这种方式需要NAS支持VPDN协议,需要认证系统支持VPDN属性,网关一般使用防火墙或VPN专用服务器。
2.客户端与VPDN网关直接建立隧道的方式。
这种方式由客户机先建立与Internet的连接,再通过专用的客户软件(如Windows系统支持的L2TP客户端)与网关建立通道连接。
其好处在于:
用户上网的方式和地点没有限制,不需ISP介入。
缺点是:
用户需要安装专用的软件,受用户使用平台的限制,而且VPN维护难度较大。
幻灯片6
幻灯片7
L2TP(Layer2TunnelProtocol)称为二层隧道协议,是为在用户和企业的服务器之间透明传输PPP报文而设置的隧道协议。
PPP协议定义了一种封装技术,可以在二层的点到点链路上传输多种协议数据包,这时用户与NAS之间运行PPP协议,二层链路端点与PPP会话点驻留在相同硬件设备上。
L2TP协议提供了对PPP链路层数据包的通道(Tunnel)传输支持,允许二层链路端点和PPP会话点驻留在不同设备上并且采用包交换网络技术进行信息交互,从而扩展了PPP模型。
从某个角度来讲,L2TP实际上是一种PPPoIP的应用,就像PPPoE、PPPoA、PPPoFR一样,都是一些网络应用想利用PPP的一些特性,弥补本网络自身的不足。
另外,L2TP协议还结合了L2F协议和PPTP协议的各自优点,成为IETF有关二层隧道协议的工业标准。
幻灯片8
LAC表示L2TP访问集中器(L2TPAccessConcentrator),是附属在交换网络上的具有PPP端系统和L2TP协议处理能力的设备。
LAC一般是一个网络接入服务器NAS,主要用于通过STN/ISDN网络为用户提供接入服务。
LNS表示L2TP网络服务器(L2TPNetworkServer),是PPP端系统上用于处理L2TP协议服务器端部分的设备。
LAC位于LNS和远端系统(远地用户和远地分支机构)之间,用于在LNS和远端系统之间传递信息包,把从远端系统收到的信息包按照L2TP协议进行封装并送往LNS,将从LNS收到的信息包进行解封装并送往远端系统。
LAC与远端系统之间可以采用本地连接或PPP链路,VPDN应用中通常为PPP链路。
LNS作为L2TP隧道的另一侧端点,是LAC的对端设备,是LAC进行隧道传输的PPP会话的逻辑终止端点。
远程拨号用户发起。
用户通过PSTN/ISDN接入NAS,获得访问Internet权限然后直接向远端LNS服务器发起L2TP连接。
此时客户可直接向LNS发起通道连接请求,无需再经过一个单独的LAC设备。
LAC客户地址的分配由LNS来完成。
这种方式的L2TP协议允许移动用户直接发起L2TP隧道连接,要求移动用户安装VPDN的客户端软件,需要知道LNS的IP地址。
客户端软件可以是windows自带的L2TPVPN拨号软件,也可以是华赛的secowayVPNClient。
此类组网适用于单人上网访问企业网。
各组件的工作如下:
VPNClient:
首先获得公网地址,与LNS之间保持连通,向LNS发起建立隧道请求;
LNS:
为用户分配私网地址,准许用户接入内部网络。
幻灯片9
用户通过PSTN/ISDN接入NAS(LAC),LAC判断如果是VPN用户,由LAC通过Internet向LNS发起建立通道连接请求。
拨号用户地址由LNS分配;对远程拨号用户的验证与计费既可由LAC侧的代理完成,也可在LNS侧完成。
这种方式的L2TP协议,允许用户在接入到Internet的时候,通过BAS设备发起L2TP隧道连接。
这个时候移动用户是不需要安装额外的VPDN软件的,但是必须采用PPP的方式接入到Internet,也可以是PPPOE等协议。
当在LAC设备上对用户的用户名、密码进行验证的时候,根据用户名就可以知道是L2TP隧道用户,然后自动向LNS设备发起连接,用户自然就接入到了自己的企业VPN中了。
此方案适用于小型局域网访问公司总部网络。
各组件的工作如下:
VPNClient:
向LAC设备发起PPP连接;
LAC:
判断用户是否是L2TP用户,如果是,判断用户向哪个LNS发起隧道请求;
LNS:
为用户分配私网地址,准许用户接入内部网络。
对于这种方式的VPDN接入,主要有如下几个特点:
用户必须采用PPP的方式接入到Internet,比如PPPOE或者是传统的PPP拨号方式等。
在运营商的接入设备上(主要是BAS设备)需要开通相应的VPN服务。
用户需要到运营商出申请这个业务。
对客户端没有任何要求,用户自己也感知不到已经接入到了企业网,完全是运营商来提供L2TP隧道服务。
一个隧道承载多个会话。
幻灯片10
LAC封装来自Clinet的PPP报文时,封装过程如下:
1.封装L2TP头:
其中包含了用于标识该消息的TunnelID和SessionID,这两个ID信息都是Remote端的ID而不是本地ID信息。
2.封装UDP头:
用于标识上层应用,L2TP注册了UDP1701端口,当LNS收到了该端口的报文时能够辨别出这是L2TP报文从而送入L2TP处理模块进行处理。
3.封装公网IP头:
用于该报文在IP网(Internet)转发,注意LAC使用L2TP隧道的起点和终点地址来封装公网IP头.
LNS收到L2TP报文以后,解封装过程如下:
1.检查公网IP头和UDP头信息:
LNS首先通过UDP端口标识该报文为L2TP报文,然后检查公网IP头的源目的地址是否和本地已经建立成功的L2TP隧道源目的地址相同,如果相同则解封装公网IP头和UDP头,否则丢弃报文。
2.检查L2TP头信息:
LNS读取L2TP头中的TunnelID和SessionID信息,检查其是否和本地已经建立成功的L2TPTunnelID和L2TPSessionID相同,如果相同则解封装,否则丢弃报文。
3.检查PPP头信息:
LNS检查PPP头中的相关信息是否正确,然后解封装PPP头。
4.得到私网IP报文:
此时LNS处理报文的过程就和收到一个普通的IP报文处理过程一致,将私网IP报文送入上层模块或者进行路由处理。
LNS发往LAC的报文封装和解封装过程和上面类似,主要区别是LAC解封装过程中将公网IP头、UDP头和L2TP头解封装以后,不再解封装PPP头,而是直接将PPP报文通过PPPSession发往Client。
幻灯片11
L2TP中存在两种消息:
控制消息和数据消息。
控制消息用于隧道和会话连接的建立、维护以及传输控制;数据消息则用于封装PPP帧并在隧道上传输。
控制消息的传输是可靠传输,并且支持对控制消息的流量控制和拥塞控制;而数据消息的传输是不可靠传输,若数据报文丢失,不予重传,不支持对数据消息的流量控制和拥塞控制。
在所有的控制消息中必须包含序列号用于提供可靠的传输,即收到了控制信息的接收者必须回应ZLBACK或者其它的确认消息。
数据消息则可以可选的使用序列号来进行丢包检测及重传。
控制消息和数据消息共享相同的报文头,报文头各数据位的含义如下:
T:
标识了消息类型,0为数据消息,1为控制消息。
L:
对于控制消息必须为1,如果L为1,则Length字段必须存在。
X:
保留用于以后扩展。
S:
对于控制消息必须为1,如果S为1,则Ns和Nr字段必须存在。
O:
对于控制消息必须为0,如果O为1,则Offset字段必须存在。
P:
对于控制消息必须为1,之用于数据消息,表明该报文应该优先处理,对于某些时延或者丢包敏感的应用必须将其设为1,例如PPP的LCPEchoRequests等消息。
Version:
必须为2,标识版本号。
Length:
表明报文的整个长度。
TunnelID:
标识一个控制连接。
L2TP的Tunnel是在本地用ID消息标识的,并且是本地有效的。
对于同一个Tunnel,本地ID和远端的ID完全可能不同。
注意TunnelID是由接收者收到报文以后来定义的,而不是由发送者定义的。
TunnelID的选择和交换是在Tunnel建立时通过TunnelIDAVP完成的。
SessionID:
标识在一个Tunnel内部不同Session,和TunnelID一样,SessionID也是本地定义本地有效的。
SessionID的选择和交换是在Session建立时通过SessionIDAVP完成的。
Ns:
标识了数据或者控制消息的序列号,第一个消息Ns应该为0,然后每次增加1。
Nr:
控制消息使用,标识希望收到的下一个控制消息的序列号,Nr为上一次收到的Ns号码加1。
对于数据消息,Nr保留,如果数据消息收到了Nr则必须将其忽略。
OffsetSize:
标识Payload相对于L2TP报文头偏移量。
Offsetpad:
偏移填充项,填充内容无具体定义。
该字段仅仅是为了格式需要。
幻灯片12
1.用户端PC机发起呼叫连接请求。
2.PC机和LAC端进行PPPLCP协商。
3.LAC对PC机提供的用户信息进行PAP或CHAP认证。
4.LAC将认证信息(用户名、密码)发送给RADIUS服务器进行认证。
5.RADIUS服务器认证该用户,如果认证通过则返回该用户对应的LNS地址等相关信息,并且LAC准备发起Tunnel连接请求。
6.LAC端向指定LNS发起Tunnel连接请求。
7.LAC端向指定LNS发送CHAPchallenge信息,LNS回送该challenge响应消息CHAPresponse,并发送LNS侧的CHAPchallenge,LAC返回该challenge的响应消息CHAPresponse。
8.隧道验证通过。
9.LAC端将用户CHAPresponse、responseidentifier和PPP协商参数传送给LNS。
10.LNS将接入请求信息发送给RADIUS服务器进行认证。
11.RADIUS服务器认证该请求信息,如果认证通过则返回响应信息。
12.若用户在LNS侧配置强制本端CHAP认证,则LNS对用户进行认证,发送CHAPchallenge,用户侧回应CHAPresponse。
幻灯片13
第二层隧道协议(PPTP和L2TP)通常用于VPDN应用中,以完善的PPP协议为基础,继承了一整套的特性。
用户验证
第2层隧道协议继承了PPP协议的用户验证方式。
许多第3层隧道技术都假定在创建隧道之前,隧道的两个端点相互之间已经了解或已经经过验证。
一个例外情况是IPSec协议的ISAKMP协商提供了隧道端点之间进行的相互验证。
令牌卡(Tokencard)支持
通过使用扩展验证协议(EAP),第2层隧道协议能够支持多种验证方法,包括一次性口令(One-TimePassword),加密计算器(CryptographicCalculator)和智能卡等。
第3层隧道协议也支持使用类似的方法,例如,IPSec协议通过ISAKMP/Oakley协商确定公共密钥证书验证。
动态地址分配
第2层隧道协议支持在网络控制协议(NCP)协商机制的基础上动态分配客户地址。
第3层隧道协议通常假定隧道建立之前已经进行了地址分配。
目前IPSec隧道模式下的地址分配
数据压缩
第2层隧道协议支持基于PPP的数据压缩方式。
例如,微软的PPTP和L2TP方案使用微软点对点加密协议(MPPE)。
IETP正在开发应用于第3层隧道协议的类似数据压缩机制。
数据加密
第2层隧道协议支持基于PPP的数据加密机制。
微软的PPTP方案支持在RSA/RC4算法的基础上选择使用MPPE。
第3层隧道协议可以使用类似方法,例如,IPSec通过ISAKMP/Oakley协商确定几种可选的数据加密方法。
微软的L2TP协议使用IPSec加密保障隧道客户端和服务器之间数据流的安全。
密钥管理
作为第2层协议的MPPE依靠验证用户时生成的密钥,定期对其更新。
IPSec在ISAKMP交换过程中公开协商公用密钥,同样对其进行定期更新。
多协议支持
第2层隧道协议支持多种负载数据协议,从而使隧道客户能够访问使用IP,IPX或NetBEUI等多种协议企业网络。
相反,第3层隧道协议,如IPSec隧道模式只能支持使用IP协议的目标网络。
幻灯片14
幻灯片15