admin 管理员组文章数量: 887032
2024年3月7日发(作者:html提示框)
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)或ATM VCs网络上使用。
IPSec 隧道模式隧道是封装、路由与解封装的整个 过程。隧道将原始数据包隐藏(或封装)在新的数据包内部。该新的数据包可能会有新的寻址与路由信息,从而使其能够通 过网络传输。隧道与数据保密性结合使用时,在网络上窃听通讯的人将无法获取原始数据包数据(以及原始的源和目标)。封装的数据包到达目的地后,会删除封 装,原始数据包头用于将数据包路由到最终目的地。
隧道本身是封装数据经过的逻辑数据路径,对原始的源和目的端,隧道是不可见的,而只能看到网络路径中的点对点连接。连接双方并不关心隧道起点和终点之间的任何路由器、交换机、代理服务器或其他安全网关。将隧道和数据保密性结合使用时,可用于提供VPN。
封装的数据包在网络中的隧道内部传输。在此示例中,该网络是 Internet。网关可以是外部 Internet 与专用网络间的周界网关。周界网关可以是路由器、防火墙、代理服务器或其他安全网关。另外,在专用网络内部可使用两个网关来保护网络中不信任的通讯。
当以隧道模式使用 IPSec 时,其只为 IP 通讯提供封装。使用 IPSec 隧道模式主要是为了与其他不支持 IPSec 上的 L2TP 或 PPTP VPN 隧道技术的路由器、网关或终端系统之间的相互操作。
SSL VPNSSL VPN, SSL协议提供了数据私密性、端点验证、信息完整性等特性。SSL协议由许多子协议组成,其中两个主要的子协议是握手协议和记录协议。握手协议允许服务器 和客户端在应用协议传输第一个数据字节以前,彼此确认,协商一种加密算法和密码钥匙。在数据传输期间,记录协议利用握手协议生成的密钥加密和解密后来交换 的数据。
SSL独立于应用,因此任何一个应用程序都可以享受它的安全性而不必理会执行细节。SSL置身于网络结构体系的 传输层和应用层之间。此外,SSL本身就被几乎所有的Web浏览器支持。这意味着客户端不需要为了支持SSL连接安装额外的软件。这两个特征就是SSL能 应用于VPN的关键点。
典型的SSL VPN应用如OpenVPN,是一个比较好的开源软件。我们的产品提供了PPTP和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支持硬件加密标识,如智能卡。
L2TP(Layer Two Tunneling Protocol,第二层通道协议)是VPDN(虚拟专用拨号网络)技术的一种,专门用来进行第二层数据的通道传送,即将第二层数据单元,如点到点协议(PPP)数据单元,封装在IP或UDP载荷内,以顺利通过包交换网络(如Internet),抵达目的地。
L2TP提供了一种远程接入访问控制的手段,其典型的应用场景是:某公司员工通过PPP拨入公司本地的网络访问服务器(NAS),以此接入公司内部网络,获取IP地址并访问相应权限的网络资源该员工出差到外地,此时他想如同在公司本地一样以内网IP地址接入内部网络,操作相应网络资源,他的做法是向当地ISP申请L2TP服务,首先拨入当地ISP,请求ISP与公司NAS建立L2TP会话,并协商建立L2TP隧道,然后ISP将他发送的PPP数据通道化处理,通过L2TP隧道传送到公司NAS,NAS就从中取出PPP数据进行相应的处理,如此该员工就如同在公司本地那样通过NAS接入公司内网。
从上述应用场景可以看出L2TP隧道是在ISP和NAS之间建立的,此时ISP就是L2TP访问集中器(LAC),NAS也就是L2TP网络服务器(LNS)。LAC支持客户端的L2TP,用于发起呼叫,接收呼叫和建立隧道,LNS则是所有隧道的终点。在传统的PPP连接中,用户拨号连接的终点是LAC,L2TP使得PPP协议的终点延伸到LNS。
L2TP本质上是一种隧道传输协议,它使用两种类型的消息:控制消息和数据隧道消息。控制消息负责创建、维护及终止L2TP隧道,而数据隧道消息则负责用户数据的真正传输。
L2TP支持标准的安全特性CHAP和PAP,可以进行用户身份认证。在安全性考虑上,L2TP仅定义了控制消息的加密传输方式,对传输中的数据并不加密。
IPsec(IP Security),顾名思义,是保障IP层安全的网络技术,它并不是指某一项具体的协议,而是指用于实现IP层安全的协议套件集合。IPsec实质上也是一种隧道传输技术,它将IP分组或IP上层载荷封装在IPsec报文内,并根据需要进行加密和完整性保护处理,以此保证数据在公共网络中传输过程的安全。
IPsec支持两种协议标准,鉴别首部(Authenticaion Header,AH)和封装安全有效载荷(Encapsulation Security Payload,ESP):
AH可证明数据的起源地(数据来源认证)、保障数据的完整性以及防止相同的数据包不断重播(抗重放攻击);
ESP能提供的安全服务则更多,除了上述AH所能提供的安全服务外,还能提供数据机密性,这样可以保证数据包在传输过程中不被非法识别;
AH与ESP提供的数据完整性服务的差别在于,AH验证的范围还包括数据包的外部IP头。
为正确实施IPsec封装及解封装IP数据包,必须建立IPsec隧道,也就是需要定义加密或鉴别算法、算法使用的密钥、密钥保持有效的生命期以及授权可用的数据访问策略等信息,这也被称为"安全联盟(Security Association,SA)"。
通常采用IKE(Internet Key Exchange,因特网密钥交换)协议来协商建立IPsec隧道。IKE协商实际上有两个阶段:
第一阶段协商,是在IPsec通信双方之间建立IKE的安全通道,即建立IKE SA,这个过程有两种模式,一种是常用的主模式(Main Mode),能提供身份保护服务,但需要较多的消息交互(多达六条消息),另一种是比较迅速的积极模式(Aggressive Mode),但协商能力较弱,也不能提供身份保护功能;
第二阶段协商是在IKE SA的保护下进行的,其目的是为特定的通信流协商IPsec安全通道,即建立IPsec SA。
由此可以看出IKE的主要作用是负责建立、维护和终止IPsec安全通道,通过其他的一些消息交换过程,可以帮助维持IPsec通道的可用性和安全性,服务于IPsec数据的安全传输。
这与L2TP控制消息帮助建立和维护L2TP数据传输通道的作用有异曲同工之妙。两者都可以提供通信双方之间的身份认证,并且都可以在提供完整性保护和机密性服务的环境下进行安全的有关参数协商和消息交互;同时还能根据各自的特点,提供一种保活(keepalive)机制来负责协调隧道双方的状态的同步,提高隧道的容错性和稳定性,所不同的是,IKE是充分利用IPsec通信流存在即对方活跃状态的证明的特点,以此减少保活报文通信量,这种方式也被称为"DPD(Dead Peer Detection,死亡对端探测)"。此外IKE的协商能力也远大于L2TP控制消息交互。
L2TP与IPsec的一个最大的不同在于它不对隧道传输中的数据进行加密,从而没法保证数据传输过程中的安全。因此这个时候,L2TP常和IPsec结合使用,先使用L2TP封装第二层数据,再使用IPsec封装对数据进行加密和提供完整性保护,由此保证通信数据安全传送到目的地。
L2TP由于封装的是第二层协议数据,因此可以认为是一种L2VPN(第二层VPN)技术。最新的L2TP协议草案(L2TP v3)表明,L2TP不仅可以封装PPP数据单元,还可以封装其他第二层协议数据,如Ethernet(以太网)、Frame Relay(帧中继)等。因此L2TP的作用已经扩展到将异地的局域网通过L2TP隧道跨越公共网络连接在一起,也就是实现异地局域网互联,这样可以将某些局域网技术如VLAN(虚拟局域网)应用到异地局域网之间,从而利用公共网络来模拟局域网。当然其数据传输过程中的安全性仍然依赖于IPsec来提供。同时由于对数据进行了层层封装,这样难免影响效率,导致性能不高。
IPsec封装的是IP层数据,或是IP上层协议载荷,因此可以认为是一种构建L3VPN(第三层VPN)的技术。其最大的特点是为数据传输过程提供了机密性、完整性保护和数据源验证,从而确保承载于公共网络的VPN的安全性和可靠性,同时由于添加的协议头并不多,且还可以利用硬件加密卡加速IPsec报文的处理,因而效率上得到了很大的提高;此外IKE协商过程能提供比较完备的用户身份认证,这就使得可以对IPsec用户访问实施有力控制,从而进一步保证了网络的安全。
因此就一般企业用户构建安全的VPN而言,应该使用IPsec技术,当然如果需要实现安全的VPDN,就应该采用L2TP+IPsec组合技术。
版权声明:本文标题:VPN各种协议的区别 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1709754479h545660.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论