pptp、l2tp、ipsec、openvpn和sstp的区别-kb88凯时官网登录

时间:2018-08-01
阅读:

vpn (虚拟专用网)发展至今已经不在是一个单纯的经过加密的访问隧道,它已经融合了访问控制、传输管理、加密、路由选择、可用性管理等多种功能,并在全球的信息安全体系中发挥着重要的作用。

在网络上,有关各种vpn协议优缺点的比较是仁者见仁,智者见智,很多技术人员由于出于使用目的考虑,包括访问控制、安全和用户简单易用,灵活扩展等各方面,权衡利弊,难以取舍;尤其在voip语音环境中,网络安全显得尤为重要,因此现在越来越多的网络电话和语音网关支持vpn协议。

主流的vpn协议有pptp、l2tp、ipsec、openvpn和sstp,具体区别如下:

一、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)或atm vcs网络上使用。

三、ipsec

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

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

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

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

四、openvpn

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

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

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

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支持硬件加密标识,如智能卡。

五、sstp

安全套接字隧道协议(secure socket tunneling protocol,sstp)是一种vpn隧道的形式,提供了一种通过ssl3.0通道传输ppp或l2tp流量的机制。ssl利用密钥协商提供传输级别的安全性。通过tcp端口443使用ssl,允许sstp通过几乎所有的防火墙和代理服务器,除了需要身份验证的web代理。

sstp可用于linux、bsd和windows。mikrotik的routeros还包括一个sstp客户端和服务器端。对于windows,sstp仅可用于自windows vista sp1之后的系统。

这种sstp只适用于远程访问,通常不支持站点与站点之间的vpn隧道。routeros的版本有没有这样的限制。

返回顶部
顶部
网站地图