
l2tp协议
宝宝睡觉突然大哭-我爱你英文
2023年3月20日发(作者:笔画顺序口诀)VPN(虚拟专用网)发展至今已经不在是一个单纯的经过加密的访问隧道了,它已经融合
了访问控制、传输管理、加密、路由选择、可用性管理等多种功能,并在全球的信息安全
体系中发挥着重要的作用。也在网络上,有关各种VPN协议优缺点的比较是仁者见仁,智
者见智,很多技术人员由于出于使用目的考虑,包括访问控制、安全和用户简单易用,灵
活扩展等各方面,权衡利弊,难以取舍;尤其在VOIP语音环境中,网络安全显得尤为重要,
因此现在越来越多的网络电话和语音网关支持VPN协议。
PPTP
点对点隧道协议(PPTP)是由包括微软和3Com等公司组成的PPTP论坛开发的一种点
对点隧道协,基于拨号使用的PPP协议使用PAP或CHAP之类的加密算法,或者使用
Microsoft的点对点加密算法MPPE。其通过跨越基于TCP/IP的数据网络创建VPN实现了
从远程客户端到专用企业服务器之间数据的安全传输。PPTP支持通过公共网络(例如
Internet)建立按需的、多协议的、虚拟专用网络。PPTP允许加密IP通讯,然后在要跨越公
司IP网络或公共IP网络(如Internet)发送的IP头中对其进行封装。
L2TP
第2层隧道协议(L2TP)是IETF基于L2F(Cisco的第二层转发协议)开发的PPTP的
后续版本。是一种工业标准Internet隧道协议,其可以为跨越面向数据包的媒体发送点到
点协议(PPP)框架提供封装。PPTP和L2TP都使用PPP协议对数据进行封装,然后添加附
加包头用于数据在互联网络上的传输。PPTP只能在两端点间建立单一隧道。L2TP支持在
两端点间使用多隧道,用户可以针对不同的服务质量创建不同的隧道。L2TP可以提供隧道
验证,而PPTP则不支持隧道验证。但是当L2TP或PPTP与IPSEC共同使用时,可以由IPSEC
提供隧道验证,不需要在第2层协议上验证隧道使用L2TP。PPTP要求互联网络为IP网络。
L2TP只要求隧道媒介提供面向数据包的点对点的连接,L2TP可以在IP(使用UDP),桢中
继永久虚拟电路(PVCs),X.25虚拟电路(VCs)或ATMVCs网络上使用。
IPSec
隧道模式隧道是封装、路由与解封装的整个过程。隧道将原始数据包隐藏(或封装)在
新的数据包内部。该新的数据包可能会有新的寻址与路由信息,从而使其能够通过网络传
输。隧道与数据保密性结合使用时,在网络上窃听通讯的人将无法获取原始数据包数据(以
及原始的源和目标)。封装的数据包到达目的地后,会删除封装,原始数据包头用于将数据
包路由到最终目的地。
隧道本身是封装数据经过的逻辑数据路径,对原始的源和目的端,隧道是不可见的,而
只能看到网络路径中的点对点连接。连接双方并不关心隧道起点和终点之间的任何路由器、
交换机、代理服务器或其他安全网关。将隧道和数据保密性结合使用时,可用于提供VPN。
封装的数据包在网络中的隧道内部传输。在此示例中,该网络是Internet。网关可以是
外部Internet与专用网络间的周界网关。周界网关可以是路由器、防火墙、代理服务器或
其他安全网关。另外,在专用网络内部可使用两个网关来保护网络中不信任的通讯。
当以隧道模式使用IPSec时,其只为IP通讯提供封装。使用IPSec隧道模式主要是
为了与其他不支持IPSec上的L2TP或PPTPVPN隧道技术的路由器、网关或终端系统之
间的相互操作。
SSLVPNSSLVPN,SSL协议提供了数据私密性、端点验证、信息完整性等特性。SSL
协议由许多子协议组成,其中两个主要的子协议是握手协议和记录协议。握手协议允许服务
器和客户端在应用协议传输第一个数据字节以前,彼此确认,协商一种加密算法和密码钥
匙。在数据传输期间,记录协议利用握手协议生成的密钥加密和解密后来交换的数据。
SSL独立于应用,因此任何一个应用程序都可以享受它的安全性而不必理会执行细节。
SSL置身于网络结构体系的传输层和应用层之间。此外,SSL本身就被几乎所有的Web浏
览器支持。这意味着客户端不需要为了支持SSL连接安装额外的软件。这两个特征就是SSL
能应用于VPN的关键点。
典型的SSLVPN应用如OpenVPN,是一个比较好的开源软件。我们的产品提供了PPTP
和OpenVPN两种应用,PPTP主要为那些经常外出移动或家庭办公的用户考虑;而OpenVPN
主要是针对企业异地两地总分公司之间的VPN不间断按需连接,例如ERP在企业中的应用。
OpenVPN允许参与建立VPN的单点使用预设的私钥,第三方证书,或者用户名/密码
来进行身份验证。它大量使用了OpenSSL加密库,以及SSLv3/TLSv1协议。OpenVPN能
在Linux、xBSD、MacOSX与Windows2000/XP上运行。它并不是一个基于Web的VPN
软件,也不与IPsec及其他VPN软件包兼容。
隧道加密
OpenVPN使用OpenSSL库加密数据与控制信息:它使用了OpesSSL的加密以及验证
功能,意味着,它能够使用任何OpenSSL支持的算法。它提供了可选的数据包HMAC功能
以提高连接的安全性。此外,OpenSSL的硬件加速也能提高它的性能。
验证
OpenVPN提供了多种身份验证方式,用以确认参与连接双方的身份,包括:预享私钥,
第三方证书以及用户名/密码组合。预享密钥最为简单,但同时它只能用于建立点对点的
VPN;基于PKI的第三方证书提供了最完善的功能,但是需要额外的精力去维护一个PKI证
书体系。OpenVPN2.0后引入了用户名/口令组合的身份验证方式,它可以省略客户端证书,
但是仍有一份服务器证书需要被用作加密.
网络
OpenVPN所有的通信都基于一个单一的IP端口,默认且推荐使用UDP协议通讯,同
时TCP也被支持。OpenVPN连接能通过大多数的代理服务器,并且能够在NAT的环境中
很好地工作。服务端具有向客户端“推送”某些网络配置信息的功能,这些信息包括:IP
地址、路由设置等。OpenVPN提供了两种虚拟网络接口:通用Tun/Tap驱动,通过它们,
可以建立三层IP隧道,或者虚拟二层以太网,后者可以传送任何类型的二层以太网络数据。
传送的数据可通过LZO算法压缩。IANA(InternetAssignedNumbersAuthority)指定给
OpenVPN的官方端口为1194。OpenVPN2.0以后版本每个进程可以同时管理数个并发的隧
道。
OpenVPN使用通用网络协议(TCP与UDP)的特点使它成为IPsec等协议的理想替代,
尤其是在ISP(Internetserviceprovider)过滤某些特定VPN协议的情况下。在选择协议时候,
需要注意2个加密隧道之间的网络状况,如有高延迟或者丢包较多的情况下,请选择TCP
协议作为底层协议,UDP协议由于存在无连接和重传机制,导致要隧道上层的协议进行重
传,效率非常低下。
安全
OpenVPN与生俱来便具备了许多安全特性:它在用户空间运行,无须对内核及网络协
议栈作修改;初始完毕后以chroot方式运行,放弃root权限;使用mlockall以防止敏感数据交
换到磁盘。
OpenVPN通过PKCS#11支持硬件加密标识,如智能卡。
SSLVPN介绍
SSLVPN是指应用层的VPN。用户利用浏览器内建的SecureSocketLayer封包处理功
能,用浏览器访问公司内部SSLVPN服务器,然后透过网络封包转发的方式,让用户可
以在远程计算机执行应用程序,读取公司内部服务器数据。它采用标准的安全套接层
(SSL)对传输中的数据包进行加密,从而在应用层保护了数据的安全性。
随着移动互联网的流行,SSLVPN发展非常迅速。3G手机通过SSLVPN方式就可以访
问企业资源。采用SSLVPN接入方式,具有极强的用户认证授权保护,同时数据的传输
是强加密的,密钥是经过动态协商的,能够防止信息传输被恶意篡改。但是还是有人担
心东西保存在手机上不保险。不用担心,有了云计算和云存储提供远程服务后,终端上
只是桌面级的操作,不含任何企业的应用和数据,这样具有更高的安全保障。
还有另外一个应用场景,使用SSLVPN手段穿越GFW。OpenVPN是一位善于伪装的情
报员,在你自己的国外主机上安装了一个OpenVPN,网站的操作例如FTP文件服务、
pop&smtp邮件收发以及在google查技术资料就畅通无阻了。下面我们来看看他是如
何伪装的。
OpenVPN
OpenVPN是一个开放源码的基于SSL的VPN系统,仅仅使用UDP协议,支持从NAT
设备后的连接。运行在Linux上的openvpn需要tun、openssl和LZO几个软件的支持。
我们还要做一些配置工作。
首先使用openvpn的clean-all和build-ca命令初始化PKI,然后使用build-key-server
server生成服务器key,使用build-keyclient1生成某个客户端的密钥,使用build-dh
生成DiffieHellman参数。在制造了一堆钥匙之后,我们把在easy-rsa目录下生成的keys
(例如:,,,,,,,
和等)打包后通过scp或ftp等手段搞到本地。
要想使openvpn服务器工作,还得根据实际情况配置好openvpn拥有的,
包括本地IP,根证书、服务器证书、服务器私钥和Diffiehellman参数的存放的路径和
文件名和VPN服务器子网等。如果你在中国需要访问一些域名被封掉的网站,可以通
过在国外搭建的openvpn服务器把DNSpush到你的客户机上。假设服务器的IP地址
为10.8.0.1,那么在中加入:
push"dhcp-optionDNS10.8.0.1"
push"dhcp-optionDNS8.8.8.8"
并在服务器/etc/文件中加入:
nameserver8.8.8.8
Linux系统一般都带有私有的DNS服务器,使用/etc/init.d/namedstart开启DNS服务。
除了配合openvpn自身的配置,还需要设置路由。例如使用如下命令,才能透过VPN
访问Internet。
iptables-tnat-APOSTROUTING-s10.8.0.0/24-oeth0-jSNAT--to-sourcea.b.c.d
同时,需要记住把ipforward打开,可使用如下命令实现:
_forward=1
SSLVPN比IPSsecVPN访问控制粒度要细。由于IPSECVPN部署在网络层,因此,内
部网络对于IPSecVPN的使用者来说是透明的,只要是通过了IPSecVPN网关,就可以
任意访问内网中的资源。SSLVPN重点在于保护具体的敏感数据,针对不同的客户端指
定不同的等级和权限。我们对OpenVPN服务端进行用户权限配置,而不需要修改客户
端配置文件。例如在增加:
1#10.8.0.0是给所有VPN客户端的IP段;
2server10.8.0.0255.255.255.0
3#10.8.1.0是给管理员分配的IP段;
4server10.8.1.0255.255.255.0
5#10.8.2.0就是给特定用户组分配的IP段;
6server10.8.2.0255.255.255.0
7#下面是定义服务器读取特殊客户端配置文件的目录为ccd;
8client-config-dirccd
有上面的基础,在ccd目录下可以对指定的客户进行特殊的定义,例如:
sysadmin1:ifconfig-push10.8.1.110.8.1.2
contractor1:ifconfig-push10.8.2.110.8.2.2
contractor2:ifconfig-push10.8.2.510.8.2.6
万事具备只欠东风,启动Openvpn就可以支持SSLVPN访问了。参考命令如下:
openvpn--config/usr/local/etc/
在Windows和MacOSX上都可以装openvpn客户端,下载安装后配置文
件,并将打包的key文件(、、、和)解
压到openvpn文件夹下。启动openvpn客户端点击connect即可享受vpn服务了。打
开MSN、QQ、IE等网络应用,也可以尝试访问一些被GFW禁掉的网站,有点小激动。
当你问某个移动用户:“我在咖啡馆想边喝着咖啡边接收公司的电子邮件和访问公司内
网办公。如何能保证安全地访问互联网?”知识渊博的他会回答:“用VPN呀!”是的,
用VPN!VPN是一种通过互联网把公司的私有网络和远程网络安全地连接起来的虚拟逻
辑网络技术,可以简称为虚拟专用网络技术。任何人如果想从VPN中间获取数据,那
都是无法读懂的,因为数据进行加密。VPN不是进行远程连接中出现的第一个技术。二
十世纪末,最普遍的做法是使用专线,例如用ISDN把多个不同办公地区的计算机连接
起来。但是互联网发展得非常快,ISP还提供了快速安全的VPN方案,它比专线便宜多
了。公司利用这种方法建立起只允许员工使用的虚拟内部网络,使在远程办公区或家中
的内部员工通过桌面共享技术就可以在一起工作。
更有意思的是我们可以DIY自己的VPN服务器。曾经听说过这么一个项目是用CentOS
的OpenVPN服务器实现的。一个阿拉斯加的公司老板是一个狂热的天文爱好者。他在
新墨西哥州购买了一个度假物村,在村中建了一个小型的天文观测台。该观测站内有一
台电脑能控制伸缩圆顶、望远镜以及室外视频监控摄像头。VPN帮他实现了强大的远程
控制功能。
由于望远镜系统是在互联网上运行的,具有远程访问权限,从阿拉斯加就可以控制在墨
西哥州的望远镜、可以远程监控天文台和度假屋、能够远程重启和设置天文台内外分布
在LAN上的所有设备。
在天文台中安装的是一台微型PC(Mini-ITX规格)系统,运行CentOS的LinuxOpenVPN,
通过sshd访问互联网。第二台微型PC在他的阿拉斯加家中。在两台电脑之间建立一个
持久的VPN连接。新墨西哥州的家和天文台建筑物之间用8端口或16端口以太网交换
机以及6类线缆把所用设备连接起来,交换机通过光纤与互联网相连。6类电缆作为连
接房内基础电源管理开关和天文台的客户端电源管理开关之间的线路。通过移动电话按
键就可以控制连接在8口交换机之一的电源管理开关来独立启动每个设备,6类线缆还
把这种控制能力扩展到天文台的客户端管理开关。虽然这个项目听起来不算小,但是一
台CentOSOpenVPN服务器就能完全胜任此项工作。在企业环境中一台这种服务器可以
为200多个客户提供VPN服务。还有用于承载VPN和SSH远程访问的企业及软件也是
免费的,这个方案相当划算。
实现方式
虽然VPN种类不少,但可以明确划分为以下两类:站到站接入和远程接入。站到站接
入包含IPSEC、MPLSVPN和GRE,是由传统广域网接入演变,成对管理,扩展配置相
对复杂,例如把总公司网络和分公司的网络虚拟连接起来。远程接入包含IPSEC、SSL
VPN、L2TP、L2TP/IPSEC和PPTP,有拨号演变过过来,按用户管理,扩展性比较好。
下表比较清晰地列出了各种VPN技术的特点。
表15.3
功能
PPTPIPSecL2TPL2TP/IPSecSSLVPN
部署很少广泛很少有限广泛
加密
MMPE
DES、3DES、AES
MPPE
DES、3DES、AESDES、3DES、AES、
RC4-128、RC4-40
工作层二层二层/三层二层二层/三层七层
类型远程接入站到站、远程接入远程接入远程接入远程接入
特点基本均内置于win
dows系统,缺乏
广泛性
需要安装客户端内置于较新的win
dows及iOS
内置于较新的windos,iO
S可通过安装相关包文件
支持
可选择无客户端(cl
ientless)模式及有
客户端模式
安全性低高低高高
IPSec
IPSec是目前应用最为广泛的VPN技术。IPSec可在IP层提供保护,并且IPSec可同时
支持站到站模式及远程访问模式。IPSec采用DES、AES、3DES算法,可以保证数据的
完整性及安全性。IPSec在Linux上支持主要有两个主要的分类,一为FreeS/WAN,现
在已经停止开发,其分裂为两个项目,Openswan与Strongswan。
SSLVPN
SSL是近年来兴起的VPN技术。SSL属于远程接入协议,可以存在3种部署模式:
无客户端模式(Clientless):提供对电子邮件及部分资源远程访问,不需安装任何程序或
者客户端。
瘦客户端模式:通过在客户端安装java程序或插件,提供基于TCP的访问。
全隧道模式:通过SSL客户端,使客户端与企业内部建立一条隧道,使得访问者逻辑连
接在企业网。SSL-BasedVPN其主要代表有OpenVPN。
L2TP
L2TP本质上是一种隧道传输协议,它使用两种类型的消息:控制消息和数据隧道消息。控
制消息负责创建、维护及终止L2TP隧道,而数据隧道消息则负责用户数据的真正传输。
L2TP支持标准的安全特性CHAP和PAP(2种身份验证协议),可以进行用户身份认证。
在安全性考虑上,L2TP仅定义了控制消息的加密传输方式,对传输中的数据并不加密。
因安全性低,企业较少的部署使用。
L2TP/IPSec
如果不得已使用L2TPVPN,为了弥补其安全性的缺陷,需要使用三层加密,即IPSec,
这种VPN被称为基于IPSec的L2TP。首先用户会建立IPSec会话,然后再IPSec加密
通道内建立L2TP会话。这样可以确保数据在Internet上的安全性和可靠性。
PPTP
PPTP提供PPTP客户机和PPTP服务器之间的保密通信。通过PPTP,客户可以采用拨
号方式接入公共的IP网。拨号客户首先按常规方式拨号到ISP的接入服务器,建立PPP
连接。在此基础上客户进行二次拨号建立到PPTP服务器的连接,该连接称为PPTP隧
道。PPTP把建立隧道的主动权交给了客户,但客户需要在其PC机上配置PPTP,这样
做既会增加用户的工作量,又会造成网络的安全隐患。另外,PPTP仅工作于IP,不具
有隧道终点的验证功能,需要依赖用户的验证。PoPTop可以说是PPTP在Linux下的
实现。不过,IPSec上跑L2TP更安全。
PN
几种VPN方式进行比较之后发现,IPSec和SSLVPN方式应用最广泛。我们先了解一
下IPSec标准,然后在Linux服务器上配置符合IPSec协议标准的OpenSwan软件。IPsec
协议不是一个人在作战,它是应用于IP层上网络数据安全的一整套体系结构,包括网
络认证头AH(AuthenticationHeader)协议、封装安全载荷ESP(EncapsulatingSecurity
Payload)协议、因特网密钥交换IKE(InternetKeyExchange)协议和用于网络认证及
加密的一些算法等。AH协议提供数据源认证、数据完整性校验和防报文重放功能,它
能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据。ESP协议提供加密、
数据源认证、数据完整性校验和防报文重放功能。ESP的工作原理是在每一个数据包的
标准IP包头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾。
在实际进行IP通信时,可以根据实际安全需求同时使用AH和ESP两种协议或选择使
用其中的一种。IPsec有传输和隧道两种工作模式。传输模式只是传输层数据被用来计
算AH或ESP头,AH或ESP头以及ESP加密的用户数据被放置在原IP包头后面。隧道
模式更常用一些,在两个安全网关之间一般采用隧道模式进行通讯。隧道技术就是利用
封包和解包技术,在公用网络上建立一条安全的数据通道(隧道),让数据包通过这条
隧道传输。用户的整个IP数据包被用来计算AH或ESP头以及ESP加密的用户数据被
封装在一个新的IP数据包中。
图15.18VPN隧道技术
从公众的角度来看,在整个数据包之外又加了一个保护层,保证了数据在一个虚拟的隧
道中移动。这层我们叫encapsulation,在隧道两端的计算机或网络设备我们叫tunnel
interfaces。这种技术在网络数据处理上很常用。为了更好地理解隧道协议,我举个形
象地比喻。想象一下,有个供应商通过快递公司给你运送一个很重要的包裹。供应商把
包裹(用户协议)放在一个盒子(隧道协议)里,快递员把盒子放在卡车(传输协议)
里送到仓库(隧道接口)。卡车(传输协议)在高速公路(互联网)上行驶送到你家(另
一个隧道接口)。你打开盒子(隧道协议)取出包裹(用户协议)。这样你应该明白了
吧。