点对点隧道协议及其实现
扫描二维码
随时随地手机看文章
点对点隧道协议(PPTP,Point-to-Point Tunneling Protocol)是一种协议(一套通信规则),它允许企业通过私人“隧道”在公共网络上扩展自己的企业网络。
点对点隧道协议(英语:Point to Point Tunneling Protocol,缩写为PPTP)是实现虚拟专用网(VPN)的方式之一。PPTP使用传输控制协议(TCP)创建控制通道来发送控制命令,以及利用通用路由封装(GRE)通道来封装点对点协议(PPP)数据包以发送数据。这个协议最早由微软等厂商主导开发,但因为它的加密方式容易被破解,微软已经不再建议使用这个协议。PPTP的协议规范本身并未描述加密或身份验证的部分,它依靠点对点协议(PPP)来实现这些安全性功能。因为PPTP协议内置在微软视窗系统家族的各个产品中,在微软点对点协议(PPP)协议堆栈中,提供了各种标准的身份验证与加密机制来支持PPTP。 在微软视窗系统中,它可以搭配PAP、CHAP、MS-CHAPv1/v2或EAP-TLS来进行身份验证。通常也可以搭配微软点对点加密(MPPE)或IPSec的加密机制来提高安全性。在Windows或Mac OS平台之外,Linux与FreeBSD等平台也提供开放源代码的版本。
PPTP不是IETF建议的标准,是由微软、Ascend Communications(现在属于Alcatel-Lucent集团)、3Com等厂商联合形成的产业联盟开发。 1999年7月发布的 RFC 2637是第一个正式的PPTP规格书。PPTP以通用路由封装(GRE)协议向对方作一般的点对点传输。通过TCP1723端口来发起和管理GRE状态。因为PPTP需要2个网络状态,因此会对穿越防火墙造成困难。很多防火墙不能完整地传递连接,导致无法连接。 在Windows或Mac OS平台,通常PPTP可搭配MSCHAP-v2或EAP-TLS进行身份验证 ,也可配合微软点对点加密(MPPE)进行连接时的加密。与PPTP相似的另一种常见的VPN协议是第二层隧道协议(L2TP)。
通过WindowsNT上虚拟专用企业网络支持使用Internet可廉价安全地访问企业网络。该新协议通过使用对Internet的本地呼叫获得使用Internet的企业网络的安全访问来工作。PPTP这一开放的企业标准支持最流行的网络协议—IP、IPX和MicrosoftNetworking(NetBEUI)。公司可以使用PPTP将其远程拨号需要交给Internet服务提供商或其他中间商以减少费用降低复杂性。
在使用VPN的时候可以使用,也可以使用,具体设置方法如下:比如在Windows XP中,首先,在“网络连接”窗口中右键单击某个VPN连接,选择“属性”。接着,在打开的属性窗口中选择“网络”选项卡。然后在“VPN类型”中选择“PPTP VPN”,单击“确定”按钮即可。点对点隧道协议(PPTP)是微软和其他公司支持的标准;层2隧道协议是思科系统公司提出的。作为提议标准,它们都有可能成为新的互联网工程任务组(IETF)标准的基础。PPTP是互联网点对点协议(PPP)的扩展,任何具有PPP客户端支持的PC用户都能够用一个独立的服务提供商(ISP),来安全地连接用户公司的服务器。
PPTP 是第一个被Microsoft拨号网络支持的 VPN 通信协议。自Windows 95 OSR2起,所有的Microsoft Windows 版本都内置了PPTP客户端软件(虽然只能支持最多两个同时对外的连接)。 在Mobile版本上,Microsoft Windows Mobile 2003与更新的版本也支持 PPTP。Windows的路由及远程访问包有包含PPTP服务器。 Microsoft的实现在MS-CHAP认证协议内使用了单次DES加密,但单次DES常被认为无法提供数据足够档次的安全防护。Windows Vista与更新版本的PPTP开始支持PEAP。认证机制有PEAPv0 / EAP-MSCHAPv2 (使用密码) 还有PEAP-TLS (智能卡与证书)。Windows Vista同时停止了MSCHAP-v1的认证协议。Linux的PPTP服务器一般是使用PoPToP包加上PPP与MPPE的Kernel Module。PPTP的客户端程序从 1997 就开始提供了,但服务器部分要等到Matthew Ramsay在1999开发的版本从Moreton Bay以GNU GPL发行后才真正开始有人大量使用。但是,Linux发行版本一开始通常都不包含 MPPE 的部分(因为担心有专利问题)所以不完整,直到 2005/10/28 发布的Linux Kernel 2.6.14才正式支持 MPPE。SuSE Linux 10 是第一个有完整可用的PPTP客户端程序的版本。另外还有ACCEL-PPP包:它提供了PPTP / L2TP / PPPoE服务器,可提供kernel模式的PPTP协议。OpenBSD跟FreeBSD 在 "ports" 包系统里提供PoPToP。OSX与iOS则提供内置PPTP客户端程序。OS X Server内置了PPTP服务。Cisco与Efficient Networks 有另外贩卖给旧版 MacOS使用的PPTP客户端程序。 许多Android智能形手机也支持PPTP。