在Windows系统环境下虚拟专用网服务器
例如,如果你碰巧有一个缺少与公司办公室直接连接的一个分支办公室,使用一台路由器作为VPN客户机对你来说可能是一个很好的选择。通过这样做,你可以利用一个单个的连接把整个分支办公室与公司办公室连接起来。不需要每一台PC都单独建立一个连接。
另一方面,如果你拥有一些经常出差的雇员,这些雇员需要在旅行中访问公司的网络,你把这些雇员的笔记本电脑设置为VPN的客户机可能会有好处。
从技术上说,只要支持PPTP、L2TP或者IPSec协议,任何操作系统都可以作为一台VPN客户机。就微软而言,这意味着你可以使用 Windows NT 4.0、9X、ME、2000和XP操作系统。虽然所有这些操作系统从技术上说都可以作为客户机,我建议你坚持使用Windows 2000或者Windows XP操作系统,因为这些操作系统能够支持L2TP和PSec协议。
VPN服务器
VPN服务器可以当作VPN客户机的一个连接点。从技术上说,你可以使用Windows NT Server 4.0、Windows 2000 Server或者Windows Server 2003等操作系统作为一台VPN服务器。不过,为了保证安全,我认为你应该使用Windows Server 2003操作系统。
有关VPN服务器的最大的误解之一是VPN服务器所有的工作都是自己完成的。我的朋友无数次地对我说,他们要购买一台VPN服务器。他们没有认识到VPN服务器只是必要的组件之一。
VPN服务器本身是非常简单的。VPN服务器不过是执行路由和远程访问服务任务的一个增强的‘Windows 2003 Server’服务器。一旦一个进入VPN网络的请求被批准,这个VPN服务器就简单地充当一台路由器向这个VPN客户机提供专用网络的接入。
ISA服务器
VPN服务器的额外要求之一是你要有一台RADIUS(远程认证拨入用户服务)服务器。远程认证拨入用户服务是互联网服务提供商在用户试图建立互联网连接的时候对用户进行身份识别的一种机制。
你需要使用RADIUS服务器的原因是你需要一些身份识别机制对通过VPN连接进入你的网络的用户进行身份识别。你的域名控制器不能完成这个任务。即使你的域名控制器能够胜任这个任务,把域名控制器暴露给外部世界也不是一个好主意。
现在的问题是你从什么地方获得这个RADIUS服务器?微软有自己版本的RADIUS,名为“互联网身份识别服务”,英文缩写字是IAS。 Windows Server 2003操作系统包含IAS功能。这是一个好消息。坏消息是由于安全的原因不能在同一台计算机中把ISA当作路由和远程访问服务(RRAS)来运行。即使可以这样做,我也不能肯定在虚拟服务器设置之外是否有这个可能。
防火墙
你的VPN需要的其它组件是一个良好的防火墙。的确。你的VPN服务器接受来自外部世界的连接,但是,这并不意味着外部世界需要完全访问的VPN服务器。你必须使用防火墙封锁任何没有使用的端口。
建立VPN连接的基本要求是,VPN服务器的IP地址必须能过通过互联网访问,VPN通信必须能够通过你的防火墙进入VPN服务器。然而,还有一项可选择的组件。你可以使用这个组件让你的VPN服务器更安全。
如果你非常重视安全问题(而且你有这笔预算),你可以在ISA服务器和你的周边防火墙和VPN服务器之间放置一个ISA服务器。这个想法是,你可以设置防火墙把所有的与VPN有关的通信都指向那个ISA服务器,而不是指向VPN服务器。然后,ISA服务器将充当一个VPN代理服务器。
VPN客户机和VPN服务器仅与ISA服务器进行通信。它们相互之间从来不直接通信。这就意味着ISA服务器在保护VPN服务器,不允许直接访问VPN服务器,从而为VPN服务器增加了一个保护层。
选择一个隧道协议
当VPN客户机访问一台VPN服务器的时候,它们是通过一个虚拟的隧道进行访问的。一个隧道实际上就是通过一个不安全的媒介(通常是互联网)的安全通道。然而,隧道并不是用魔术变出来的。隧道需要使用一个隧道协议。
我以前曾讲过老式的Windows客户机能够通过PPTP(点对点隧道协议)协议连接到一个VPN网络。但是,我建议使用比较新的客户端软件,如Windows 2000和Windows XP,因为它们支持L2TP(2层隧道协议)。事实是这两个协议中的任何一个协议都可以工作,而且客户机都支持这些协议。然而,每一个协议都有其优点和缺点。选择一个适合你的机构的隧道协议是你规划VPN网络时应做出的最重要的决策之一。
同PPTP协议相比,L2TP协议最大的优势在于它依赖IPSec。IPSec加密数据,也提供数据身份识别。这意味着IPSec证明这个数据确实是由发送者发送的并且在传输的过程中没有被修改。而且IPSec可以防止重播攻击。重播攻击指的是安全捕捉身份识别数据包,然后在晚些时候重新发送这个数据包以便获得这个系统的访问权限。
L2TP还可以提供比PPTP更强大的身份识别功能。L2TP能够对用户和计算机都进行身份识别。而且在用户级身份识别期间交换的数据包总是被加密的。
虽然表面上看L2TP也许是隧道协议的选择,但是,PPTP也有一些超过L2TP的优点。我已经谈到过这些优点之一,就是兼容性。PPTP比 L2TP兼容更多的Windows系统。如果你有一些仍在使用版本比较老的Windows操作系统的VPN用户,那么,除了使用PPTP之外,你没有别的选择。
PPTP优于L2TP的另一个优势是L2TP是以IPSec为基础的。在L2TP的优点这一节,我谈到IPSec喜欢L2TP是一件好事,而且事情确实如此。然而,使用IPSec有一个重大缺陷。IPSec要求你的网络具有认证中心。
这个好消息是Windows Server 2003有自己的认证中心。认证中心的设置是相对简单的。坏消息是,从安全的观点看,认证中心不是你要处理的事情。保持认证中心完整性的惟一方法是在一台安全保护增强到最大限度的专用服务器上运行认证中心。这就意味着必须要额外投资购买一台服务器、额外的Windows服务器软件许可证、以及增加与你的网络增加一台服务器有关的额外管理负担。
不过,按照我的意见,额外的成本和管理负担是值得的。L2TP能够为你提供比PPTP更好的安全性。此外,你还可以利用认证中心做其它的事情,如通过IPSec加密本地通信等。
身份识别协议
在我谈论协议话题的时候,我要用一些时间谈一谈身份识别协议的问题。在设置VPN的过程中,系统将要求你选择一个身份识别协议。大多数人会选择 MS-CHAP v2选项。MS-CHAP是一个相对安全的选项,它兼容运行在过去的10年里制作的任何版本的Windows操作系统的VPN客户机。MS-CHAP最大的优点是容易设置。
如果你计划使用L2TP并且要更好的安全性,你应该选择EAP-TLS作为你的身份识别协议。只有运行Windows 2003或者Windows XP操作系统的客户机才能支持EAP-TLS协议。而且,必须设置VPN服务器之后认证中心才能办法用户认证。
EAP-TLS协议的设置比较复杂,如果最终用户已经获得了智能卡,这个协议会工作得更好。但是,EAP-TLS协议确实能够为你提供最佳的安全。简单地说,MS-CHAP是基于口令的协议。EAP-TLS是基于证书的协议。
结论
在你创建一个VPN之前,需要做许多规划工作。在这篇文章中,我谈了设计一个VPN必须要做的一些规划,还谈了一些你必须要做出的一些决策。