VPN可以扩大局域网的覆盖范围,而不需要拥有或者租赁专用线路,其成本通常比专线低得多。企业可以使用VPN让远程用户和移动用户接入网络,把分散在不同地区的分支机构连入统一网络,并且能够远程使用依靠内部服务器的应用系统。
VPN可以使用两种机制:其一,向可信赖的通信提供商租赁专用线,这种VPN名叫可信VPN(TrustedVPN);其二,通过公共因特网传送经过加密的流量,名叫安全VPN(SecureVPN)。使用基于可信VPN的安全VPN名为混合VPN(HybridVPN),把两种安全VPN(譬如IPSec和SSL)结合到一个网关也属于混合VPN。
可信VPN
这些年来,可信VPN已从向电信供应商租赁原始专用线,改为向因特网提供商租赁专用IP网络线路。在IP网络上实施可信VPN所用的技术主要有:异步传输方式(ATM)、帧中继和多协议标记交换(MPLS)。
ATM和帧中继在数据链路层工作,数据链路层是开放系统互连(OSI)模型的第二层,它基于分组交换网络,MPLS模拟了线路交换网络的一些属性,它在通常所谓的“第2.5层”工作,这一层介于数据链路层和网络层之间。MPLS正开始取代ATM和帧中继,实施面向大型企业及服务提供商的可信VPN。
安全VPN
安全VPN可以使用IPSec、第二层隧道协议(L2TP,Layer2TunnelingProtocol)、安全套接层(SSL,SecuritySocketLayer)3.0、传输层安全(TLS,TransportLayerSecurity)、第二层转发协议(L2F,Layer2TunnelingProtocol)或者点对点隧道协议(PPTP,Point-to-PointTunnelingProtocol)。
IPSec即IP安全,是在网络层对IP数据包进行加密和验证的一项标准。IPSec有一系列加密协议,它的两个主要用途是:保护网络数据包安全和交换加密密钥。有些安全专家认为,自上世纪90年代末以来,IPSec是VPN的优先协议。支持IPSec的操作系统包括WindowsXP/2000/2003/Vista、Linux2.6及更高版本、MacOSX、NetBSD、FreeBSD、OpenBSD、Solaris、AIX、HP-UX和VxWorks。许多厂商都提供IPSecVPN服务器和客户机软件。
微软在Windows95OSR2以后的所有版本里面都添加了PPTP客户机软件,并且在WindowsNT4.0以后的所有服务器产品中添加了PPTP服务器软件。Linux、MacOSX、PalmPDA设备及WindowMobile2003设备里都有PPTP客户端软件。
PPTP可以通过密码身份验证协议(PAP)、可扩展身份验证协议(EAP)等方法增强安全性,可以使远程用户通过拨入ISP直接连接Internet或其他网络安全地访问企业网。它具有随处可得、免费、易于安装等优点。
Schneier和黑客组织LophtHeavyIndustries的Mudge在前些年发现并公布了微软PPTP存在的安全漏洞。微软利用MS-CHAPv2和微软点对点加密(MPPE)协议迅速解决了这些问题,后来Schneier和Mudge指出:微软PPTP的安全性仍取决于每个用户的密码有多安全。微软于是在操作系统中执行密码强度策略,从而解决了这个问题,但Schneier和Mudge仍建议在构建安全VPN时采用IPSec,而不是采用PPTP,因为前者天生更安全。
L2F是由思科公司开发的一种比较旧的协议。L2TP借鉴了L2F和PPTP的概念,从而成为数据链路层协议。L2TP可以提供隧道,但不提供安全或者验证,L2TP可以在隧道里面传输PPP会话。思科将L2TP实施在路由器中,并且有好几种采用开放源代码的L2TP是针对Linux实施的。
L2TP/IPSec结合了L2TP的隧道和IPSec的安全通道功能,这样一来,安全的因特网密钥交换(IKE)比纯粹的IPSec更容易实现。自2002年以来,微软为Windows98/ME/NT提供了免费的L2TP/IPSecVPN客户机软件,并且随同WindowsXP/2000/2003/Vista交付L2TP/IPSecVPN客户机软件,WindowsServer2003和Windows2000Server都包括L2TP/IPSec服务器软件。
SSL和TLS都是在OSI模型的第4层保护数据流安全的协议。SSL3.0及其后续版本TLS1.0通常都与能够实现安全Web浏览的HTTP(名为HTTPS)一起使用。不过,SSL/TLS也可以用来创建VPN隧道。譬如,OpenVP就是一款采用开放源代码的VPN软件包,适用于Linux、xBSD、MacOSX、PocketPC和Windows2000/XP/2003/Vista。OpenVP使用SSL来提供对数据通道和控制通道进行加密的功能。
VPN的安全风险
在某些时候,使用VPN会让公司面临潜在的安全风险。虽然如今使用的VPN大多数就其本身而言相当安全,但VPN加大了合理保护网络边界安全的难度,网络管理员必须对通过VPN连接到网络的计算机和直接连接到LAN的计算机实行同样的安全标准。
结合使用两个VPN可能会把一家公司的网络暴露在另一家公司的网络面前。此外,如果PCAnywhere、GoToMyPC或者VNC等远程控制软件与VPN一起使用,公司的网络可能会暴露在驻留本身并没有连接到VPN的远程计算机上的恶意软件面前。
建造功能均衡的VPN
因为安全VPN依靠加密来保证性能,而一些加密功能属于计算密集型,所以使用频繁的VPN可能会让服务器不堪重负。管理员通常可以把同时连接的数量限制在服务器能够处理的水平,从而管理服务器的负载。
如果试图连接到VPN的用户数量突然达到高峰,譬如在导致交通中断的暴风雨期间,员工可能会发现自己无法连接上VPN,因为所有VPN端口都处于忙碌状态。管理员应确保不需要VPN的关键应用系统正常运行,例如设置代理服务器或者因特网消息访问协议(IMAP)服务器,让员工可以在家里或者在路上使用电子邮件。
就特定的情形而言,决定使用IPSec还是SSL/TLS可能很难。要考虑的一个因素就是,SSL/TLS能够透过基于网络地址转换(NAT)的防火墙工作,IPSec却不能,不过这两种协议都可以透过并不转换地址的防火墙工作。
IPSec可以对两台计算机之间传输的所有IP流量进行加密,而SSL/TLS只针对某种应用进行加密。SSL/TLS使用成本高昂的异步加密功能来建立连接,并使用更有效的同步加密功能来保护通路的安全。
在远程应用中,管理员可能会混合搭配各种协议,以求VPN在性能和安全之间获得最佳平衡。例如,客户机使用由SSL/TLS保护的浏览器,通过防火墙连接到基于Web的前端程序;Web服务器使用IPSec连接到应用服务器;而应用服务器可能使用SSL,跨另一个防火墙连接到数据库服务器。另外,使用专门的服务器硬件有时可以增强VPN的扩展性。
【编辑推荐】