在部署Windows Server 2003中远程访问VPN服务的方法
在部署Windows Server 2003中远程访问VPN服务的方法
在阅读本文之前,建议先阅读虚拟专用网络(VPN)连接基础一文。当你了解VPN服务后,你会觉得部署VPN服务非常简单。
在虚拟专用网络(VPN)连接基础一文中我们已经提到过,远程访问VPN是一台独立的VPN客户计算机向VPN服务器发起的VPN连接,Windows的远程访问VPN服务是作为路由和远程访问(RRAS)服务的一个组件来提供,它支持PPTP或者L2TP/IPSec协议的VPN连接。在这篇文章中,我给大家介绍如何在Windows Server 2003中部署远程访问VPN服务,从而支持VPN客户端使用PPTP和L2TP/IPSec协议?性冻谭梦蔞PN连接。
其实VPN部署比较简单,你只需要考虑以下几点:
-
决定身份验证方式(Windows还是RADIUS)。在此文章中我将使用Windows来进行身份验证。
-
身份验证方法。在此文章中我 将使用默认的MS-CHAP、MS-CHAP v2和EAP-TLS;
-
用户拨入授权方式(显式允许访问还是通过远程访问策略授权)。在此文章中我将显式允许用户远程拨入访问。
-
VPN客户地址分配方式(使用内部网络中的DHCP服务或者使用静态IP地址范围)。在此试验中由于内部网络中没有DHCP服务,所以我将采用静态IP地址范围172.16.0.1~172.16.0.254。
-
对于L2TP/IPSec,你还需要部署证书服务。在此试验中内部网络中已经部署了证书权威服务器。
这篇文章的试验环境如下图所示,Internet上的VPN客户端Perth(IP地址为61.139.0.8)将通过Munich(外部IP地址为61.139.0.1,内部IP地址为10.1.1.1)上的VPN服务连接到内部网络(10.1.1.0/24)中。Milan是内部网络上的Web服务器和证书服务器,IP地址为10.1.1.9。所有计算机的操作系统均为Windows Server 2003 SP1,并且均为独立服务器,在进行试验之前已经确保网络连接工作正常。
这篇文章中的试验步骤如下:
-
在Munich上启用路由和远程访问服务中的远程访问VPN服务;
-
显式允许用户Administrator的远程拨入;
-
在Perth上创建PPTP模式的VPN连接并进行测试;
-
修改VPN连接为L2TP预共享密钥方式,然后在Perth上连接VPN进行测试;
-
为Munich、Perth申请计算机证书,取消预共享IPSec密钥,然后在Perth上连接VPN进行测试;
在Munich上启用路由和远程访问服务中的远程访问VPN服务
在Munich上以管理员身份登录,然后点击管理工具,选择路由和远程访问,在弹出的路由和远程访问管理控制台,右击服务器名,选择配置并启用路由和远程访问;
在弹出的欢迎使用路由和远程访问服务器安装向导页,点击下一步;
在配置页,选择远程访问(拨号或VPN),然后点击下一步;如果你需要对内部网络提供网络共享服务,则选择虚拟专用网络(VPN)访问和NAT,再根据向导进行配置;
在远程访问页,选择此服务器接受的远程访问类型,在此我仅勾选VPN,然后点击下一步;
在VPN连接页,选择连接到Internet的网络接口,在此我选择对应的接口WAN61,默认情况下,RRAS会设置通过设置静态数据包筛选器来对选择的接口进行保护,这将在此接口上启用只是允许VPN流量的入站筛选器(关于入站筛选器更详细的描述,请参见深入理解路由和远程访问服务中的筛选器和基本防火墙一文),从而保护这台VPN服务器。根据你的需要来决定是否启用此选项,在此我接受默认设置,点击下一步;
在IP地址指定页,选择你指定VPN客户地址的方式。由于在内部网络中并没有部署DHCP服务,所以在此我选择来自一个指定的地址范围,然后点击下一步;
在地址范围指定页,点击新建按钮,输入起止IP地址分别为172.16.0.1和172.16.0.254,然后点击确定,完成后如下图所示,点击下一步;
在管理多个远程访问服务器页,由于在此我不使用RADIUS服务器,所以接受默认的否,然后点击下一步;
最后在正在完成路由和远程访问服务器安装向导页,点击完成。在弹出的提示你需要配置DHCP中继代理的对话框上点击确定;等待片刻后,VPN服务器就部署好了,如下图所示:
默认情况下VPN具有PPTP协议和L2TP协议端口各128个,这代表它允许连接的PPTP协议和L2TP协议类型的VPN客户数量,但是VPN客户的并发连接数还受到Windows系统版本的限制。对于允许的最多端口数和VPN客户并发连接数,根据Windows服务器操作系统版本的不同有以下不同:
-
对于Windows Server 2003 Web版本和标准版本,PPTP和L2TP允许的最多端口数均为1000,但是Web版本只支持1个VPN客户并发连接,而不论协议类型;标准版本支持1000个VPN客户并发连接,而不论协议类型。
-
Windows Server 2003企业版最多支持30000个L2TP端口,16384个PPTP端口,支持的VPN客户并发连接数理论上只是受到端口数量的限制。
你可以对允许的端口数进行设置,在路由和远程访问管理控制台中右击端口,选择属性,然后在弹出的端口属性对话框中,选择端口后点击配置,
然后在弹出的配置设备对话框中修改最多端口数为你需要的数量即可。如果想取消对使用此类协议的VPN客户端的支持,你可以取消选择远程访问连接(仅入站)。
显式允许用户Administrator的远程拨入
现在,我们需要允许用户账户的远程拨入。在此例中,外部客户Perth将使用Munich上的Administrator用户账号来拨入VPN,所以,我们首先需要允许Administrator用户账户的远程拨入。
默认情况下,对于用户账户的拨入权限,根据网络环境的不同而不同:
-
独立服务器巧?腤indows Server 2003服务器会设置用户账户拨入权限为通过远程访问策略控制访问;
-
域功能级为Windows 2000 Native或Windows Server 2003的活动目录会设置用户账户拨入权限为通过远程访问策略控制访问;
-
域功能级为Windows 2000 Mix的活动目录通过远程访问策略控制访问此选项不可用,用户账户的拨入设置为拒绝访问;
Munich是独立服务器角色,因此Administrator账户的拨入权限设置为通过远程访问策略控制访问,如下图所示,但是默认情况下没有远程访问策略允许它的拨入。所以在此我修改为允许访问来显式允许它的远程拨入,选择允许访问后点击确定。
在Perth上创建PPTP模式的VPN连接并进行测试
现在我们在外部VPN客户Perth上使用管理员身份登录,在网络连接文件夹中双击新建连接向导以创建VPN连接。
在弹出的欢迎使用新建连接向导页,点击下一步;
在网络连接类型页,选择连接到我的工作场所的网络,然后点击下一步;
在网络连接页,选择虚拟专用网络连接,然后点击下一步;
在连接名中输入公司名后点击下一步;
在VPN服务器选择页,输入VPN服务器Munich的外部IP地址61.139.0.1,然后点击下一步;
在可用连接页,根据自己需要进行选择,在此我接受默认选择只是我使用,点击下一步;
最后在正在完成新建连接向导页,点击完成。
在弹出的连接对话框上,输入用于拨入VPN的用户名和密码,然后点击连接按钮。默认情况下,VPN客户端使用自动VPN类型选项,这意味着VPN客户先尝试建立一个基于L2TP/IPSec的VPN连接,如果不成功则尝试建立一个基于PPTP的VPN连接。
VPN连接成功,你可以点击任务栏弹出的气球以获得VPN连接的详细信息,如下图所示:
上面显示了当前是采用的PPTP协议的VPN连接,使用MS-CHAPv2进行的身份验证,加密方式是MPPE 128位。注意看服务器和客户端的IP地址,VPN服务器使用的是配置的静态IP地址池中的第一个IP地址。此时,由于VPN客户和内部网络不属于相同的子网,为了让VPN客户成功访问内部网络,你需要让内部网络和VPN客户知道如何访问对方(具有到达对方的路由)。在这个试验中由于VPN服务器Munich是内部网络的默认网关,所以无需额外添加内部客户到VPN客户网络的路由。
我们打开浏览器,访问内部网络中的Web服务器Milan(10.1.1.9)上的Web服务试试,访问成功,如下图所示,然后断开VPN连接。
修改VPN连接为L2TP预共享密钥方式,然后在Perth上连接VPN进行测试
现在我们修改VPN连接为L2TP的预共享密钥方式,你需要同时在VPN服务器和VPN客户端上配置使用预定义的共享密钥。由于所有的VPN客户都需要配置为使用相同的L2TP共享密钥,这会极大的降低L2TP/IPSec的安全性,所以不建议你在商用网络中使用预共享密钥的L2TP连接。
首先在VPN服务器的路由和远程访问管理控制台中右击服务器名,然后选择属性;然后点击安全标签,然后勾选预共享的密钥,然后输入预定义的共享密钥,然后点击确定。你输入的共享密钥最好在15位以上,并且使用较为复杂的密码。
然后在VPN客户端Perth上,右击创建的VPN连接,选择属性,然后在安全标签上点击IPSec设置,
在弹出的IPSec设置对话框上,勾选使用预共享的密钥作身份验证,输入和VPN服务器上配置使用的相同密钥,点击确定。
然后点击网络标签,在VPN类型栏,选择为L2TP IPSec VPN,然后点击确定。
此时VPN连接显示的端口类型从PPTP修改为L2TP,双击此VPN连接,然后点击连接按钮。此时,VPN连接成功,详细信息如下图所示,注意看,连接方式为L2TP,加密方式为IPSec, ESP 3DES。
为Munich、Perth申请计算机证书,取消预共享IPSec密钥,然后在Perth上连接VPN进行测试
现在我们为VPN服务器和VPN客户端分别申请服务器身份验证和客户端验证证书。首先需要你在每台计算机上手动创建一个计算机证书管理控制台,创建的步骤如下:
点击开始菜单中的运行,输入mmc,点击确定;
在弹出的控制台1窗口,点击文件菜单下的添加/删除管理单元;
在弹出的添加/删除管理单元对话框,点击添加;然后在弹出的添加独立管理单元对话框,选择证书,点击添加;
在证书管理单元对话框,选择计算机账户,点击下一步;
在选择计算机对话框,接受默认的本地计算机,点击完成;
点击关闭,再点击确定,此时,管理本地计算机证书的管理控制台就设置好了,如下图所示。你可以将它保存起来,以便以后使用。
然后,在VPN服务器Munich上打开浏览器,访问证书服务器Milan的Web注册登录地址http://10.1.1.9/certsrv/,如下图所示,点击申请一个证书链接;
然后点击高级证书申请链接;
然后点击创建并向CA提交一个申请链接;
在高级证书申请页,在姓名栏输入计算机名MUNICH,注意,千万不能输错;在证书类型栏,选择服务器身份验证证书;
然后在下部勾选将证书保存在本地计算机存储中,点击提交;
在弹出的警告提示框上点击是,然后在证书已颁发页,点击安装此证书(如果没有配置CA自动颁发证书则你可能需要在证书颁发机构中手动颁发证书);
在弹出的安装证书警告提示框上点击是,此时证书会安装完成。此时,回到证书注册页面首页,点击下载一个CA证书,证书链或CRL,
然后点击下载CA证书,
在弹出的文件下载对话框,点击保存将其保存在本地硬盘上。
打开创建的计算机证书管理控制台,然后展开受信任的根证书颁发机构,右击证书,点击所有任务下的导入,
在弹出的欢迎使用证书导入向导页,点击下一步;
然后在要导入的文件页,选择刚才下载的CA证书,点击下一步;
在证书存储页点击下一步;然后在正在完成证书导入向导页,点击完成。此时,提示你证书导入成功。
在计算机证书管理控制台中,展开个人下的证书,你可以看到刚才申请的服务器验证证书,
双击此证书,弹出证书属性对话框,如下图所示。至此VPN服务器上的证书安装完成,VPN服务器已经可以使用此服务器身份验证证书来验证VPN客户端的L2TP/IPSec VPN连接了。
按照同样的方式在VPN客户端Perth上申请客户端身份验证证书和下载CA证书,
完成后的客户端身份验证证书如下图所示,至此VPN客户端就可以使用此客户端身份验证证书来进行L2TP/IPSec VPN连接了。
现在我们分别在VPN服务器和VPN客户端上取消预定义的IPSec共享密钥,然后在VPN客户端上双击VPN连接进行连接,此时,VPN同样连接成功,如下图所示:
至此,整个试验成功完成。
-