Windows Server 2003 VPN服务的使用
服务一瞥
Windows Server 2003在VPN和远程访问服务方面做了大量的改进,使其在许多特性上都优于老版本的操作系统。虽然其核心仍然支持点对点隧道协议(PPTP),第二层隧道协议(L2TP),IP安全(IPSec),扩展认证协议(EAP),微软竞争握手认证协议第二版(MS-CHAP 2)和远程访问服务(RAS),但是仍然还有一些值得关注的新特性。
在Windows Server 2003中,通过提供能够NAT(网络地址转换)的L2TP/IPSec服务,和将VPN服务与网络负载平衡服务联合一起使用,来改善VPN服务的可达性、安全性与实用性。而在以前的版本中,为了给NAT设备后面的客户端提供VPN服务,其解决方案是使用安全性较差的PPTP协议。
为了在NAT设备之后使用L2TP/IPSec服务,连接的远程访问端必须运行一个VPN客户端,这个客户端必须支持IPSec协议工作组的草案:IKE中NAT遍历的协商和IPSec数据包的UDP封装。微软的L2TP client已经对其有很好的支持。网络负载平衡服务与基于PPTP和L2TP/IPSec的连接能够一起协同工作。
通过使用运行在VPN服务器上的TCP/IP的NetBIOS(NetBT)名字解析代理服务,Windows Server 2003不需要DNS和WINS服务器就能够支持客户端的NetBIOS名字解析的能力。这样就能够解决一些客户端的名字解析问题。
在Windows Server 2003的标准版和企业版中,支持多达1000个PPTP和1000个L2TP连接,而在网页版(Web)中每种类型只支持一个连接。在Web版中只有单一的连接能够支持安全的远程管理机制。
Windows Server 2003系统为VPN服务做好准备
与Windows Server 2003中的其他服务一样,缺省情况下,路由和远程访问服务(VPN只是其中的一个组件)都没有激活。在激活这些服务之前,需要进行一定的验证工作。首先,服务器上的两个通信设备激活了吗?两者中至少有一个应该是网络适配器。毕竟,远程访问的VPN提供的是从企业的外部来访问内部的网络资源。
其次,检查核实在你的服务器和工作站上运行的协议的正确性。随着不同协议的提出,现在为了确保安全,典型的VPN使用一种是TCP/IP协议,另一种是PPTP或者L2TP协议。为了保证用户能够通过VPN连接访问内部网络的资源,你必须给用户分配IP地址。当然,你可以通过网络中的DHCP服务器或者通过在路由和远程访问服务配置中定义一个地址池来完成这项工作。这为远程的客户端提供了恰当的地址信息,使得DNS和WINS能够有效的进行名字查询。
允许和限制访问
虽然可以采取一定的步骤来减小滥用或者未授权访问内部网络的风险,但是任何类型的远程访问都为它们打开了潜在的大门。例如,在使用Windows Server 2003 的RRAS/VPN功能时,必须明确指出允许每个用户在自己的规范内通过拨号上网优先权来使用这些服务。另外,你可以在服务器上创建一些严格的策略——例如每天时间的限制、最大会话的次数以及MAC地址的限制——来降低系统本身的安全风险。
激活VPN服务
为了激活VPN服务,必须激活路由和远程访问服务,其中包括VPN服务。首先在想要支持VPN的服务器上打开“开始”|“所有程序”|“管理员工具”|“路由和远程访问”。然后,在服务器名字上单击右键并选择“配置并激活路由和远程访问”,这时将弹出一个向导来帮助你配置这些服务。
RRAS 除了包含VPN服务外,还包含了大量的其他性能,例如NAT服务和拨号上网(PPP)。在“配置”屏幕(见图A)上,你可以指定你想要激活的服务。如我只激活拨号上网/VPN服务。
在本地服务器上激活VPN和拨号上网服务
选择拨号上网/VPN后,下一步是“远程访问”在这里,你必须选择这个服务器要提供什么样的服务,可以是一个,也可以两者都选。例如,我选择的只是使用VPN组件。
由于VPN服务器通常都是安装一个接口来实现从企业的外部支持远程连接,向导现在显示的是VPN连接。你需要指定由哪一个接口执行这个功能。
在实验室的这次练习中,我的VPN服务器上有两个接口。一个接口的地址是192.168.1.120/24,另一个是192.168.2.2/24。由于这个服务器只是在我的实验室中,所以它没有一个真正的公用网的IP地址。但是,为了能够完成这个例子,我使用192.168.1.120接口。在接口列表的下面,你可以发现一个复选框,如果选择这个复选框,将在这个接口上使用静态包过滤策略,只允许VPN数据通信。在这里我建议激活这个特性,尤其是在该接口处于公司的防火墙之外时。
要想访问公司的内部网络资源,远程的客户端需要一个IP地址才能实现这一功能。“IP地址分配”(见图D)给出了两种选择自动分配IP地址。第一种选择是在确认DHCP服务器已经正确的配置后,使用网络中现存的DHCP服务器分配地址。第二种选择是为VPN服务器提供一个地址范围,VPN服务器能够将其分发给客户端。
我喜欢第二种方式,因为这种方式让我觉得能够更好的进行控制。因此我必须提供一个地址范围,这样使得我能够通过查找连接服务器的IP地址列表来快速判断该连接是内部访问还是VPN客户端。如果你选择了这种方式而又使用了与你的内部网络相同的地址空间,需要确认你已经选择的地址范围不在其他的DHCP服务器定义的DHCP范围之内,以防止出现地址冲突。对于本文,我选择这个选项。
因为我是从一个指定的地址池中分配地址,地址池必须建立,建立地址池的工作将在“指定地址范围”屏幕上实现。除非你有特殊的需求,否则你可以指定与VPN服务器一端的局域网类似的地址范围。在这个例子中,这个网络地址是192.168.2.0/24。
要增加地址范围,单击“新建”按钮。你需要指定地址范围的首地址,然后指定该地址池中的结束地址或者指定地址个数。在这个例子中,我创建了一个有25个地址的地址池,从192.168.2.100到192.168.2.124。
提供远程访问服务的关键问题是认证。如果没有认证,任何人只要能够到达你的VPN服务器就能够访问你的内部网络。如果你的网络中有一个远程认证拨号用户服务(RADIUS)的服务器,Windows Server 2003 VPN服务将利用该服务器来进行认证。如果没有RADIUS服务器,你将只好使用RRAS服务来处理认证工作。你将在“管理多个远程访问服务器”屏幕上指定如何认证。
完成这些工作之后,向导将根据你指定的参数来配置RRAS服务。这一过程完成后,如果你选择了使用现存的DHCP服务器,向导将通知你必须允许DHCP转发给客户端。然后,在RRAS屏幕上的本地服务器旁边有一个绿箭头(见图E),该箭头说明此服务已经激活。
连接客户端
由于VPN服务器的最小化安装已经支持PPTP和L2TP连接,所以只要用户有使用VPN服务的权限,现在就可以初始化这些连接。使用RRAS好的方面就是Windows并不自动激活每个用户的RRAS服务。更确切地说,管理员需要根据每个用户的需要激活这个服务。
要激活某个用户的VPN服务,首先从“活动目录用户和计算机(Active Directory Users And Computers)”开始。然后在一个用户对象上单击右键并选择属性。在该用户的属性页面上,选择“拨号上网”标签并在“远程访问权限(拨号上网或者VPN)”下选择“允许访问”选项。单击“应用(Apply)”按钮或者“确定(OK)”按钮继续。现在用户就可以使用VPN服务了。在图F中,管理员用户的VPN拨号权限是激活的,但是这只是用于示范而已。我建议除非是在实验室的设置中,一般不要激活管理员用户的权限,因为这个账号是最容易被非法利用的。
测试连接
如果这一切都没有出现异常,客户端的计算机使用它的用户凭证就可以连接到VPN服务器上。对于这一步,我将使用Windows XP Professional SP1的客户端。该系统位于网络的外部,需要使用VPN服务来访问内部网络。
开始,选择“开始”|“我的网络位置”,并从“网络任务”快捷菜单中选择“查看网络连接”。然后点击“创建一个新的连接”。这将弹出一个向导帮助你建立连接。
该向导首先会询问你,想创建什么样的连接。由于当前的例子是用于测试新的VPN服务器的,选择“连接到我的工作区网络”选项。
下一步将询问该连接是一个拨号上网连接还是一个VPN连接。由于你的用户将连接到一个VPN服务器,所以很自然地,选择一个VPN连接。向导同时还会对该连接要求一个名字。
在建立VPN连接之前,你需要拨号到一个ISP,当你建立连接的时候VPN连接先完成这项工作。如果你使用的是DSL,一个电缆调制解调器或者其他一直在线的连接,预先不必做任何拨号的工作。向导的下一步将要求VPN服务器的IP地址或者DNS名字。最后,你需要提供允许拨号访问该网络的用户名和用户