用Windows 2000架起VPN

江宁

---- 微软公司在Windows 2000操作系统中集成了许多功能以适合各种用户,其中的虚拟专用网(VPN)会使用户受益匪浅。无论装有Windows 2000 操作系统的计算机处在什么位置,VPN 都可以保护它们之间的数据传输。

---- Windows 2000常用的传输协议有2个,即微软公司的点到点隧道协议 (Point-to-Point Tunneling Protocol,PPTP) 和IP加密协议(IP Security,IPSec)下的第2 层隧道协议(Layer 2 Tunneling Protocol,L2TP)。尽管Windows 2000支持多种隧道协议,但是一般用户只用PPTP(有的内含L2TP,有的不含L2TP)和IPSec。 如果仅仅关注隧道IP 拥塞,PPTP 或IPsec将很好地工作。然而,如果想让其他网络协议(如IPX)做隧道封装,就必须采用PPTP 或具有L2TP 功能的IPsec。

---- 如果在端到端之间装有Windows 2000,便可以使用VPN功能,例如服务器到服务器之间或客户机到服务器之间,或者采用拨号网络(Dial-Up Networking,DUN)。DUN建立了远程接入连接,动态地分配IPsec 网关的地址。另外,可以通过L2TP承载非IP 的网络协议,而用其他方法则必须在端点间有可路由的地址。

建立VPN

---- Windows 2000提供了建立VPN的灵活工具。在 Windows 2000专业版和所有Windows 2000的服务器版都可以使用统一的微软管理控制台(Microsoft Management Console,MMC)。配置的核心是基于本地节点的IPsec 机制。当安装完Windows 2000后,可选用多种预定义的安全机制,但这些安全机制都没有被激活。安全机制可以对所有的IP流量进行控制,或通过一些选项进行限制。例如,可以将台式机与指定的Web服务器间的所有通信报文加密,而到其他节点的报文是透明的。同样,也可以根据用户的需要将通信报文加密。尽管存在多种预定义的安全机制,在特定阶段内只有一种安全机制是激活的。

---- 假如没有计划或更多的VPN经验,为每个端点建立IPsec是很复杂的。如图1所示,要在用户端计算机和2个服务器上建立加密机制。显然,不能在公共Web服务器上配置安全机制。简单的方法是,如果对终端计算机提出IPsec的请求,就采用相应的方式。当终端计算机发出一个连接请求,服务器就发出一个安全握手的请求作为回应。如果握手成功,那么就表明实现了连接。

---- 对于图1,在配置人力资源服务器和内部Web服务器时,一般需要加密。当服务器需要配置安全机制时,在工作站和不具有IPsec功能的服务器之间建立IPsec 连接速度较慢,但与正常的连接速度相比并不明显。

---- 尽管在每台计算机上都可以建立VPN机制,但一些机制并不能很好地扩充,并且需要终端用户手工修改系统。这样做往往会弊大于利。但可以通过主动目录(Active Directory,AD)机制建立一种安全机制,包括IPsec 配置。本地安全机制经常采用AD机制的配置。需要注意的是,IPsec 机制是激活的。在Windows 2000中可以采用多种安全机制,并可以配置基于VPN的缺损的安全机制。

端点认证

---- 对于单台计算机,更需要加强安全性。内部人员可以有很多机会采用被动的方式如网络分析仪将窃取数据,通过加密可以限制这种行为。如果所有的计算机都运行Windows 2000,在装有Windows 2000 Pro的工作站之间,以及服务器与服务器之间就自动采用VPN。

---- 建立VPN有3种认证方法:即Kerberos 5、证书和预定义加密。其中应用最广的是可扩展的Kerberos和证书,这需要AD技术。证书认证需要连接到CA(Certificate Authority,证书授权)。如果2台计算机在一个域内,或在可信任的域内,便可以采用Kerberos认证。这是最简单的一种方式,它不需要额外的管理,因为认证基于现有用户间的信任情况。

---- 弄懂在IPsec VPN上如何认证身份很重要。传统上认证一直与终端用户有关。例如,如果想用S/MIME,就从VeriSign得到证书来确定身份。通常证书发给用户存在本地,这意味着用户只能在一台机器上得到自己的证书,或者他们的证书可以存在智能卡上。在Windows 2000中,IPsec VPN 的认证对象是计算机,并且在终端用户之上还可以建立到域的VPN。

---- 如果运行用户自己签署的CA,并且想和域外的计算机建立VPN,必须选择点对点认证的CA。如果没有运行AD,或者打算在第三方VPN计算机间建立VPN连接,那么用户必须用约定加密技术。约定加密技术用字符串来认证身份。所有准备连接的计算机都必须使用同一个约定加密来完成通信。由于需要安全地分配和管理密钥,这种方法不常用。但对于基本的IPsec来说,约定加密是最常用的。当在没有共享信任域或CA的计算机之间建立IPsec VPN时,这是惟一的解决之道。

拨号网络

---- DUN上的VPN 与简单的IPsec VPN不同 。因为L2TP与PPP传输不一样,它可以传输多种协议,并分配远程计算机的网络地址。而使用DUN则需要用 RRAS (Routing and Remote Access Service,路由和远程接入服务)来组建Windows 2000服务器。用IAS (Internet Authentication Service,因特网身份认证服务),即微软公司的RADIUS (Remote Authentication Dial-In User Service,远程身份认证拨号用户服务)服务器也一样。IAS用于认证用户身份,并提供PPP 所需的参数。为了确保安全地连接,远程用户首先要验证身份,再建立VPN。

---- 接着确立L2TP,用户就可以得到远程接入连接。顺序很重要,因为IPsec会保证所有的VPN上传输的安全性。不必亲临现场,IPsec DUN连接需要在远程客户工作站上确认身份。用户可从自己专门的机器上确认身份。IPsec DUN也可以使用预定的密钥。然而,必须首先编辑注册表并将HKEY_Local_Machine\System\CurrentControl Set\Services\RasMan\Parameters\ProhibitIpSec的值从0改为1。

---- RRAS 连接建立在基于MMC的信息上。多种RRAS协议可以同时存在,每一个协议都有其独立的参数。例如,一个中心位置的RRAS VPN网关可以同时为本地和企业用户提供服务。具体决定是基于远程用户组的内部成员。通过将这个组附加在RRAS档案里,就不用单独地定义每一台机器。

可变的路由

---- 在测试一个活动的以太网和一个DUN 连接时,路由表中都出现了“路由故障”。在图2中,黑的记录是从原来的以太网路由中产生的,红的记录是由DUN产生的。可以看到,由以太网连接产生的第一条的路由的度量是2, 因此不会使用它。不在本地网中的所有报文,在这个例子中10.10.10.0,都将首先通过VPN 192.168.9.4送到VPN网关。通过这个网关再送到Internet,然而通过清除在DUN TCP/IP高级特性中的选项“Use default gateway on remote network”,就可以将这条路由确定到本地。这样既可以连接到Internet,也可以连接到远程网,例子中192.168.9.0.就是远程网。或者使用“route delete 0.0.0.0 mask 0.0.0.0 192.168.9.4”命令来删除DUN缺损路由。

---- 另一种方式是不能连接到192. 168.10.0子网中,因为客户端不知道192.168.10.0网络在哪里,所以需要用命令“route add 192.168.10.0 mask 255.255.255.0 192.168.9.4”来增加一个路由。将所有192.168.10.0开头的报文都发送到192. 168.9.4节点,这些命令可以编成一个批处理文件而无须逐个输入。当DUN会话结束时,所有到DUN 192. 168.9.4地址的路由都会被删除。

---- 责任编辑:杜飞龙 du_feilong@ccw.com.cn
---- 责任美编:刘玥 liu_yue@ccw.com.cn