内容纲要

VPN (虚拟专用网) 发展至今已经不在是一个单纯的经过加密的访问隧道了,它已经融合了访问控制、传输管理、加密、路由选择、可用性管理等多种功能,并在全球的 信息安全体系中发挥着重要的作用。也在网络上,有关各种 VPN 协议优缺点的比较是仁者见仁,智者见智,很多技术人员由于出于使用目的考虑,包括访问控制、 安全和用户简单易用,灵活扩展等各方面,权衡利弊,难以取舍;尤其在 VOIP 语音环境中,网络安全显得尤为重要,因此现在越来越多的网络电话和语音网关支 持 VPN 协议。

一、PPTP

点对点隧道协议 (PPTP) 是由包括微软和 3Com 等公司组成的 PPTP 论坛开发的一种点对点隧道协,基于拨号使用的 PPP 协议使用 PAP 或 CHAP 之类的加密算法,或者使用 Microsoft 的点对点加密算法 MPPE。其通过跨越基于 TCP/IP 的数据网络创建 VPN 实现了从远程客户端到专用企业服务器之间数据的安全传输。

PPTP 支持通过公共网络 (例如 Internet) 建立按需的、多协议的、虚拟专用网络。PPTP 允许加密 IP 通讯,然后在要跨越公司 IP 网络或公共 IP 网络 (如 Internet) 发送的 IP 头中对其进行封装。

PPTP 协议是点对点隧道协议,其将控制包与数据包分开,控制包采用 TCP 控制。PPTP 使用 TCP 协议,适合在没有防火墙限制的网络中使用。

二、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) 或 ATM VCs 网络上使用。

L2TP 是国际标准隧道协议,它结合了 PPTP 协议以及第二层转发 L2F 协议的优点,能以隧道方式使 PPP 包通过各种网络协议,包括 ATM、SONET 和帧中继。但是 L2TP 没有任何加密措施,更多是和 IPSec 协议结合使用,提供隧道验证。

L2TP 使用 UDP 协议,一般可以穿透防火墙,适合在有防火墙限制、局域网用户,如公司、网吧、学校等场合使用。PPTP 和 L2TP 二个连接类型在性能上差别不大,如果使用 PPTP 不正常,那就更换为 L2TP。

三、IPSec

IPSec 隧道模式隧道是封装、路由与解封装的整个过程。隧道将原始数据包隐藏 (或封装) 在新的数据包内部。该新的数据包可能会有新的寻址与路由信息,从而使其能够通过网络传输。隧道与数据保密性结合使用时,在网络上窃听通讯的人将无法获取原始数据包数据(以及原始的源和目标)。封装的数据包到达目的地后,会删除封 装,原始数据包头用于将数据包路由到最终目的地。

隧道本身是封装数据经过的逻辑数据路径,对原始的源和目的端,隧道是不可见的,而只能看到网络路径中的点对点连接。连接双方并不关心隧道起点和终点之间的任何路由器、交换机、代理服务器或其他安全网关。将隧道和数据保密性结合使用时,可用于提供 VPN。

封装的数据包在网络中的隧道内部传输。在此示例中,该网络是 Internet。网关可以是外部 Internet 与专用网络间的周界网关。周界网关可以是路由器、防火墙、代理服务器或其他安全网关。另外,在专用网络内部可使用两个网关来保护网络中不信任的通讯。

当以隧道模式使用 IPSec 时,其只为 IP 通讯提供封装。使用 IPSec 隧道模式主要是为了与其他不支持 IPSec 上的 L2TP 或 PPTP VPN 隧道技术的路由器、网关或终端系统之间的相互操作。

四、SSL VPN

SSL 协议提供了数据私密性、端点验证、信息完整性等特性。SSL 协议由许多子协议组成,其中两个主要的子协议是握手协议和记录协议。握手协议允许 服务器和客户端在应用协议传输第一个数据字节以前,彼此确认,协商一种加密算法和密码钥匙。在数据传输期间,记录协议利用握手协议生成的密钥加密和解密后 来交换的数据。

SSL 独立于应用,因此任何一个应用程序都可以享受它的安全性而不必理会执行细节。SSL 置身于网络结构体系的 传输层和应用层之间。此外,SSL 本身就被几乎所有的 Web 浏览器支持。这意味着客户端不需要为了支持 SSL 连接安装额外的软件。这两个特征就是 SSL 能 应用于 VPN 的关键点。

典型的 SSL VPN 应用如 OpenVPN, 是一个比较好的开源软件。PPTP 主要为那些经常外出移动或家庭办公的用户考虑;而 OpenVPN 主要是针对企业异地两地总分公司之间的 VPN 不间断按需连接,例如 ERP 在企业中的应用。

五、OpenVPN 产品特点

OpenVPN 允许参与建立 VPN 的单点使用预设的私钥,第三方证书,或者用户名 / 密码来进行身份验证。它大量使用了 OpenSSL 加密库,以及 SSLv3/TLSv1 协议。OpenVPN 能在 Linux、xBSD、Mac OS X 与 Windows 2000/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(Internet Assigned Numbers Authority)指定给 OpenVPN 的官方端口为 1194。OpenVPN 2.0 以后版本每个进程可以同时管理数个并发的隧道。

OpenVPN 使用通用网络协议 (TCP 与 UDP) 的特点使它成为 IPsec 等协议的理想替代,尤其是在 ISP(Internet service provider)过滤某些特定 VPN 协议的情况下。在选择协议时候,需要注意 2 个加密隧道之间的网络状况,如有高延迟或者丢包较多的情况下,请选择 TCP 协议作为底层协议,UDP 协议由于存在无连接和重传机制,导致要隧道上层的协议进行重传,效率非常低下。

OpenVPN 与生俱来便具备了许多安全特性:它在用户空间运行,无须对内核及网络协议栈作修改;初始完毕后以 chroot 方式运行,放弃 root 权限;使用 mlockall 以防止敏感数据交换到磁盘。

OpenVPN 通过 PKCS#11 支持硬件加密标识,如智能卡。

OpenVPN 是一个基于 SSL 加密的纯应用层 VPN 协议,是 SSL VPN 的一种,支持 UDP 与 TCP 两种方式 (说明:UDP 和 TCP 是 2 种通讯协议,这里通常 UDP 的效率会比较高,速度也相对较快。所以尽量使用 UDP 连接方式,实在 UDP 没法使用的时候,再使用 TCP 连接方式)。

由于其运行在纯应用层,避免了 PPTP 和 L2TP 在某些 NAT 设备后面不被支持的情况,并且可以绕过一些网络的封锁 (通俗点讲,基本上能上网的地方就能用 OpenVPN)。OpenVPN 客户端软件可以很方便地配合路由表,实现不同线路(如国内和国外) 的路由选择,实现一部分 IP 走 VPN,另一部分 IP 走原网络。

PPTP 和 L2TP 的区别
PPTP 和 L2TP 只是 VPN 的两种连接方式,只是方式不同,因为每个人的网络环境的差异,需要用适合自己的连接方式,一般首选是 PPTP, 也有部分使用 PPTP 不稳定或者无法连接的用户,换 L2TP 方式连接即可得到很好的解决。

PPTP
点对点点对点隧道协议 (PPTP),由微软开发的,与其他技术公司一起,是最广泛支持的 Windows 客户端的 VPN 之间的方法。PPTP 是一个扩展的互联网标准的点对点点对点协议 (PPP),链路层协议,用于在串行链路上传输的 IP 数据包。PPTP 使用相同类型的身份验证的 PPP(PAP,SPAP,CHAP,MS-CHAP v.1/v.2 和 EAP)。

PPTP 建立隧道,但不提供加密,PPTP 使用微软点对点加密 (MPPE) 协议来创建一个安全的 VPN 加密链接。PPTP 具有相对较低的开销,这使得它比其他一些 VPN 方法部署更快。

如何工作:PPTP 隧道被实例化的对等通信的 TCP 端口 1723。这个 TCP 连接,然后用第二 GRE(通用路由封装) 隧道到同一个发起和管理。

端口 / 协议: 1723 TCP 协议 GRE

用户认证协议 EAP-TLS 或 MS-CHAP v2 的

MPPE(微软点对点点对点加密) 加密方法:

加密强度: MPPE 40-128 位

L2TP
第 2 层隧道协议 (L2TP),思科与微软之间的合作开发的  PPTP 的功能结合起来,与思科的专有第 2 层转发协议 (L2F)。

L2TP(第二层隧道协议) 支持 non-TCP/IP 客户和协议 (如帧中继,ATM 和 SONET)。

L2TP 不提供任何加密 orconfidentiality,本身它依赖于一种加密协议,它通过在隧道内提供保密性。如今 L2TP 连接  不谈判 PPP 加密通过使用微软点对点加密 (MPPE) 。相反,加密是通过使用 Internet 协议安全(IPSec) 的封装安全负载 (ESP) 头和尾。同样重要的是要注意,IPsec 是比 PPTP 消耗更多的资源,因此高于 PPTP 与 L2TP 溶液的开销。

端口: 1701 UDP

用户认证协议 EAP-TLS 或 MS-CHAP v2 的
* 除了提供计算机级身份验证,IPSec 提供终端到终端的发送和接收节点之间传递数据的加密。

安全加密:
加密强度: 高级加密标准 (AES)256,AES 192,AES 128 和 3DES 加密算法。

L2TP/IPSec 和 PPTP 类似在以下方面:
提供了一个逻辑的传输机制来发送 PPP 有效载荷。
提供隧道或 PPP 有效载荷基于任何协议的封装,使得可以通过 IP 网络发送。
依靠 PPP 连接过程执行用户认证和协议配置。

有关 PPTP 的一些特点:
+ PPTP 易于部署
PPTP 使用 TCP,可靠的解决方案,允许重传丢失的数据包

+ 支持 PPTP
– PPTP 的安全性较低,MPPE(最多 128 位)
– 数据加密后开始 PPP 连接过程 (因此,PPP 认证) 完成
– PPTP 连接只需要通过基于 PPP 的认证协议的用户级身份验证

一些事实 over IPSec 的 L2TP():
+ L2TP/IPSec 的数据加密之前就 ​​已经开始 PPP 连接过程
+ L2TP/IPSec 的连接使用三个 56 位密钥的 AES(256 位) 或 DESUup)
+ L2TP/IPSec 的连接需要通过计算机级别的认证证书和用户级认证通过 PPP 认证协议,提供了更强的身份验证
+ L2TP 使用 UDP。它是一个速度更快,但不太可靠,因为它并没有重新传输丢失的数据包,是常用的实时互联网通信
+ L2TP 更多的 “防火墙友好” 比 PPTP – 一个关键的优势外联网协议,由于大多数防火墙不支持 GRE
– L2TP 要求证书签发计算机证书的基础设施

共同点:
PPTP 和 L2TP 都使用 PPP 协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输,两个协议非常相似。

不同点:
1、PPTP 要求互联网络为 IP 网络。L2TP 只要求隧道媒介提供面向数据包的点对点的连接。L2TP 可以在 IP(使用 UDP),桢中继永久虚拟电路 (PVCs),X.25 虚拟电路(VCs) 或 ATM VCs 网络上使用。

2、PPTP 只能在两端点间建立单一隧道。L2TP 支持在两端点间使用多隧道。使用 L2TP,用户可以针对不同的服务质量创建不同的隧道。

3、L2TP 可以提供包头压缩。当压缩包头时,系统开销 (overhead) 占用 4 个字节,而 PPTP 协议下要占用 6 个字节。

4、L2TP 可以提供隧道验证,而 PPTP 则不支持隧道验证。但是当 L2TP 或 PPTP 与 IPSEC 共同使用时,可以由 IPSEC 提供隧道验证,不需要在第 2 层协议上验证隧道。

使用上的不同:
1、pptp 使用简单方便,不需要做额外配置,而 l2tp 需要共享密钥和修改注册表 (对 win 系列机器讲)。

2、l2tp 在穿透方面有时候会比 pptp 强一些。

3、速度方面两者由于在同一台服务器上,基本没什么差别。

PPTP 和 L2TP 都使用 PPP 协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输。尽管两个协议非常相似,但是仍存在以下几方面的不同:
1、PPTP 要求互联网络为 IP 网络。L2TP 只要求隧道媒介提供面向数据包的点对点的连接。L2TP 可以在 IP(使用 UDP),桢中继永久虚拟电路 (PVCs),X.25 虚拟电路(VCs) 或 ATM VCs 网络上使用。

2、PPTP 只能在两端点间建立单一隧道。L2TP 支持在两端点间使用多隧道。使用 L2TP,用户可以针对不同的服务质量创建不同的隧道。

3、L2TP 可以提供包头压缩。当压缩包头时,系统开销 (overhead) 占用 4 个字节,而 PPTP 协议下要占用 6 个字节。

4、L2TP 可以提供隧道验证,而 PPTP 则不支持隧道验证。但是当 L2TP 或 PPTP 与 IPSEC 共同使用时,可以由 IPSEC 提供隧道验证,不需要在第 2 层协议上验证隧道。总之,对于一般的使用者来说,L2TP 有更强的穿透率,更好的压缩,更好的加密 (双层加密),所以如果你在使用 PPTP 失败的时候可以尝试 L2TP。

PPTP、L2TP、OpenVPN 三种隧道协议的优缺点对比:

易用性:PPTP > L2TP > OpenVPN

速度:PPTP > OpenVPN UDP > L2TP > OpenVPN TCP

安全性:OpenVPN > L2TP > PPTP

稳定性:OpenVPN > L2TP > PPTP

网络适用性:OpenVPN > PPTP > L2TP

PPTP——最常用,设置最简单,大多数设备都支持

L2TP——支持 PPTP 的设备基本都支持此种方式,设置略复杂,需要选择 L2TP/IPSec PSK 方式,且设置预共享密钥 PSK

OpenVPN——最稳定,适用于各种网络环境,但需要安装第三方软件和配置文件,较复杂。

发表评论

电子邮件地址不会被公开。 必填项已用*标注