1、windows之虚拟专用网络虚拟专用网络虚拟专用网络(virtual private network,VPN)可以让远程用户通过internet安全地访问公司内部的网络资源。本文主要讲解以下内容:虚拟专用网络综述实例演练:PPTP VPN实例演练:L2TP/IPSEC VPN(预共享密钥)实例演练:L2TP/IPSEC VPN(计算机证书)实例演练:SSTP(SSL) VPN实例演练:站点对站点PPTP VPN实例演练:站点对站点L2TP/IPSEC VPN(预共享密钥)实例演练:站点对站点L2TP/IPSEC VPN(主算机证书)实例演练:网络策略实例演练:RADIUS服务器的架设1、虚拟专
2、用网络综述VPN让分布在不同地点的网络之间通过因特网来新建安全的私有隧道(tunnel),而远程用户也可以通过因特网与公司内部网络创建VPN,让用户能够安全地访问公司网骆中的资源。VPN的部署场合中:一般来说,你可以在以下两种情况下部署VPN。1)远程访问VPN连接如图所示:公司内部网络已经连接到因特网,而VPN客户端在远地通过无线网络或局域网等方式也连接到因特网,就可以通过因特网与公司的VPN服务器创建VPN隧道,并通过VPN与内部计算机安全地通信,VPN用户感觉上就是在公司内部网络的计算机上工作。2)站点对站点的VPN连接它又称为路由器对路由器VPN连接,如图所示,两个或多个局域网的VPN
3、服务器都连接到因特网,并且通过因特网新建VPN遂道,它让两个网络中的计算机之间可以通过VPN安全地通信。两地的用户感觉上好像位于同一个地点。此时的VPN服务器又称为VPN网关(vpn gateway)。远程访问协议:让分别位于两地的客户端与服务器、服务器与服务器之间能够相互通信。Windows server 2008所支持的远程访问协议为PPP(point to point protocol,点到点协议)。例如:分别位于两地、采用TCP/IP协议的两台计算机之间相互通信的IP数据包可以被封装到PPP帧内来发送。PPP是目前应用最广泛的远程访问协议,而且其安全措施好、扩展性较强,能够符合目前与未
4、来的需求。验证协议:VPN客户端连接到远程VPN服务器(或VPN服务器连接到另一台VPN服务器)时,必须验证用户的身份(用户名与密码)。身份验证成功后,用户就可以通过VPN服务器来访问有权访问的资源。Windows server 2008支持以下的验证协议1) PAP:从客户端发送到VPN服务器的密码是以明文的形式来发送,也就是没有经过加密,因此若发送过程中被拦截,密码就会外泄,因此比较不安全。2) CHAP:是采用挑战-响应的方式来验证用户的身份,它并不会在网络上直接发送用户的密码,因此比PAP安全。所谓挑战-响应,是指客户端用户连接到VPN服务器时:服务器会发送一个挑战信息给客户端。客户端
5、根据挑战信息的内容与用户的密码来计算出一个哈希值。VPN服务器、客户端是利用标准的MD5算法来计算哈希值。VPN服务器收到哈希值后,会到用户账户数据库读取用户的密码,然后根据它来计算出一个新的哈希值,如果此新哈希值与客户端传来的相同,就允许客户端用户来连接,否则拒绝其连接。若采用CHAP验证方法,则用户存储在账户数据库中的密码必须以可逆的式来存储,否则VPN服务器无法读取用户的密码。例如:AD数据库中的用户账户必须选择“使用可逆加密来存储密码”后,再重新设置密码。如下图:PAP与CHAP在验证用户身份时并提供用户更改密码的功能,因此如果用户在登录时密码的使用期限已过,将无法登录。3) MS-C
6、HAP v2:也是采用挑战-响应的方式来验证用户的身份,不过用户存储在账户数据库中的密码不需要以可逆的方式来存储;而且它不但可以让VPN服务器来验证客户端用户的身份,还可以让客户端来验证VPN服务器的计算机身份,也就是可以确认所连接的是正确的VPN服务器。(MS-CHAP v2具备相互验证功能)MS-CHAP v2支持用户更改密码的功能,因此如果用户在登录时密码的使用期限已过,仍然可以更改密码并正常登录。4) EAP(扩展验证协议)EAP允许自定义验证方法,而windows server 2008所支持的EAP-TLS是利用证书来验证身份。如果用户是利用智能卡来验证身份,就需要使用EAP-TL
7、S。EAP-TLS具备双向验证功能。VPN服务器必须是AD域的成员才支持EAP-TLS。VPN协议Windows server 2008支持PPTP、L2TP/IPSEC与SSTP(SSL)三种VPN协议1) PPTP协议:是搭建VPN时最常使用的协议,它默认使用MS-CHAP v2验证方法。身份验证完成后,双方发送的文件可以使用MPPE(microsoft point to point encryption)加密,不过仅支持128位的RC4加密方式2) L2TP/IPSEC:支持IPSEC的预共享密钥与证书两种身份验证方法,由于证书验证方法的安全性高,因此建议采用证书验证方法,而预共享密钥验
8、证方法只在测试时使用。身份验证完成后,双方发送的数据可采用IPSEC ESP的3DES或AES加密方法。虽然L2TP/IPSEC VPN的安全性比PPTP VPN高,不过客户端与VPN服务器都需要申请证书,因此比较麻烦。3) SSTP(SSL)协议:也是安全性较高的协议,SSTP隧道是采用HTTPS协议,因此可以通过SSL来确保传输的安全性。PPTP与L2TP/IPSEC协议使用的端口复杂度较高,会增加防火墙设置的难度,而HTTPS仅使用端口443,故只要在防火墙中开放443即可。另外,HTTPS也是企业普遍采用的协议。你可以将windows server 2008设置为SSTP VPN服务器
9、,而VPN客户端需要windows server 2008、windows 7、windows vista service pack1或windows xp service pack3。Windows server 2008仅支持客户端与服务器之间的SSTP VPN,并不支持站点对站点的SSTP VPN。2、实例演练:PPTP VPN实验拓朴图:在上图中我们需要一个AD域,假设域名为,域控制器由DC1扮演,它同时也扮演DNS服务器;VPN服务器由VPNS1扮演,它是域的成员服务器;FILESERVER扮演内网的一台文件服务器;VPN客户端VPNC1并没有加入域,我们将用它来测试是否可以与VPN
10、服务器创建VPN连接,并通过此VPN连接与内部计算机通信。1) 按照实验拓朴图搭建好实验环境,为了确认每一台计算机的IP地址等配置都正确,先暂时关闭所有计算机的防火墙,然后利用ping命令来确认DC1、FILESERVER和VPNS1之间、VPNS1和VPNC1之间可以正常通信,确认完成后重新启动防火墙。2) 在DC1上安装AD服务和DNS服务(过程略),域控制器安装好并重启后将FILESERVER主机和VPNS1主机加入域。3) 架设PPTP VPN服务器Windows server 2008是通过路由和远程访问服务(RRAS)来提供VPN服务器的功能。VPN客户端的用户在连接VPN服务器时
11、,可以使用VPN服务器的本地用户账户或AD用户账户来连接。若使用VPN服务器的本地用户账户,此时直接由VPN服务器通过其本地安全性数据库(SAM)来验证用户(检查用户名与密码是否正确);若使用AD用户账户,如果VPN服务器未加入域,则需要通过RADIUS机制来验证用户,本例中采用将VPN加入域的方式,所以可以直接使用AD进行验证用户,故不需要RADIUS在VPNS1上利用域administrator身份登录,然后选择“开始“-”服务器管理器”,选择“角色”右方的“添加角色”安装“网络策略和访问服务”。安装过程如下图:出现“安装结果”界面时单击“关闭”按钮完成安装选择“开始“-”管理工具“-”路
12、由和远程访问”,在“VPNS1(本地)”上单击右键,选择“配置并启用路由和远程访问”选择“远程访问(拨号或VPN)”,如下图所示:(如果你要让内部客户端也可以通过VPN服务器上网,可以在下图中选择“虚拟专用网络(VPN)和NAT”)上图中也可以选择“自定义配置”方式完成VPN服务器的设置。单击下一步,选择VPN,单击一下,如下图:选择用来连接因特网的网络接口,如下图所示:选择IP地址分配方式(自动和静态地址池)若选择“动态主机配置协议(DHCP)”则由VPN服务器为远程连接的VPN客户端分配IP地址,分配的IP段可以和内网是同一IP地址段,也可以和内网不是同一IP地址段。若选择“自动”时,VP
13、N服务器会先向DHCP服务器租用10个IP地址,而当VPN客户端连上VPN服务器时,VPN服务器便会从这些IP地址中选择一个给VPN客户端使用,若这10个IP地址用完了,VPN服务器会继续向DHCP服务器再租用10个IP地址。本例中我选择了“来自一个指定的地址范围”,由VPN服务器为VPN客户端分配IP地址,所分配的IP段可以内部网相同也可以不同。因为我们的VPN服务器属于域,可以直接通过域控制器的AD来验证用户名和密码,故不需要使用RADIUS验证。如下图所示:最后完成RRAS的配置。附注:采用AD验证的VPN服务器,其计算机账户必须加入到AD的RAS and IAS Servers组中,而
14、且会在此时自动被加入。不过你必须利用域administrator身份登录,若你利用本地administrator身份登录,则加入此组的操作会失败,而且会弹出警告信息来提醒你。此时请在VPN服务器架设完成后,自行在域控制器上利用“AD用户和计算机”控制台手动将VPN服务器的计算机账户加入到此组中。4) 赋予用户远程访问的权限在DC1(域控制器)上创建用于远程VPN连接时所用的域用户账户(如lisi),并赋予用户远程访问的权限。系统默认是所有用户都没有连接VPN服务器的权限,因此必须另行开放。如下图所示:5) VPN客户端的设置VPN客户端与VPN服务器都必须已经连上因特网,然后在VPN客户端上新
15、建与VPN服务器之间的VPN连接6) 在创建好的VPN连接上,右键选择“连接”,用在AD中创建的的用户lisi测试VPN连接。如下图所示:VPN连接成功后,在远程客户端上测试访问内网的文件服务器FILESERVER。附:VPN客户端连上VPN服务器上,虽然可以访问内部网络资源,但是无法访问因特网的资源,这是因为VPN客户端默认会选择“在远程网络上使用默认网关”。在VPN客户端上执行route print命令,查看本机的路由表VPN连接前的路由记录VPN连接后的路由记录,发现多出一条默认路由记录。从该图可以看出一旦VPN客户端连接上VPN服务器,路由表中就会多出第二条默认网关路径,跃点数为11,
16、而原来的第1条默认网关路径的跃点数会变为4491当VPN客户端访问因特网时,它会使用第二条默认路由记录(因为此记录跃点数小),访问因特网的数据发给VPN服务器。所以能和内网通信但和外网通信就会失败。解决方法1:在VPN客户端上消取“在远程网络上使用默认网关”,操作如下:在创建好的VPN连接上右击,选择“网络”选项卡,选 择“internet协议版本4(TCP/IPv4)”,单击“属性”,再单击“高级”,消取“在远程网络上使用默认网关”如下图:设置完后重新连接VPN服务器,再次查看路由表记录由于本例中VPN服务器分配给VPN客户端的IP段和内网的IP段不同,此时,VPN客户能访问因特网,但又不能
17、访问内网(除非VPN服务器分配给VPN客户端的IP段和内网的IP段相同,按方法1解决就可以实现VPN客户端即能访问内网又能访问因特网,因为在路由表中会存在到达内网的路由路径。)若VPN服务器分配给VPN客户端的IP段与内部网络不同的话,则需要在VPN客户端上新建一个送往内网(192.168.5.0、24)的专有路径,不过你需要先找出此VPN连接中VPN服务器的IP地址,如图所示:然后在VPN客户端上执行以下命令,添加到达内网的路由记录完成上述操作后VPN客户端即可访问内网又可访问因特网了。若为了安全考虑而不希望VPN客户端可以同时上网与连接内部网络,请让VPN客户端采用默认值,也就是选择“在远
18、程网络上使用默认网关”。3、实例演练:L2TP/IPSEC VPN(预共享密钥)此处采用预共享密钥来验证身份的L2TP/IPSEC VPN 。环境搭建方法与前面的PPTP VPN的相同,因此我将直接采用PPTP VPN的环境。在PPTP VPN实现成功的环境中只需要在VPN客户端和VPN服务器两端都设置相同的预共享密钥,其方法如下:VPN服务器的设置:右击VPNS1(本地),选择“属性”,在属性窗口中选择“安全”选项卡,选择“允许L2TP连接使用自定义IPsec策略”,在“预共享的密钥”中输入密钥字符串,此处字符串需要与VPN客户的设置相同,如图所示:要重新启动路由和远程访问服务,使修改生效。
19、如下图所示:VPN客户端的配置:VPN类型选择“使用IPSEC的第2层隧道协议(L2TP/IPSEC)”测试:在VPN客户端使用VPN用户连接VPN服务器。若配置都正确,但连接失败,可以将VPN服务器重启。4、实例演练:L2TP/IPSEC VPN(计算机证书)实验拓扑:L2TP/IPSEC(计算机证书) VPN的实验环境与PPTP VPN的实验环境类似,不过因为VPN服务器与VPN客户端都需要向CA(证书颁发机构)申请与安装计算机证书,因此在PPTP VPN实验环境中的计算机DC1上另外安装企业根CA,同时也安装IIS网站,以便可以利用浏览器向企业根CA申请证书。1) 安装企业根CA我们需要
20、通过新建AD证书服务(AD CS)角色的方式将企业根CA安装到计算机DC1上,其安装方法如下图所示:(具体过程略)其他操作步骤一路下一步即可。2) VPN服务器的设置在VPN服务器VPNS1上执行信任CA的操作,必须让VPN服务器信任CA所发放的证书,也就是将CA的证书安装到VPN服务器。不过我们架设的是企业根CA,而域成员会自动信任企业CA,因此属于域的VPN服务器不需要再执行任何操作。若是独立CA,需要手动执行信任CA的操作。若是独立CA,请进行信任CA操作:在VPN服务器通过http:/CA服务器IP/certsrv访问CA服务器。单击下图中的“下载CA证书、证书链或CRL”超链接。分别
21、单击下图中的“下载CA证书”、“下载CA证书链”和“下载最新的基CRL”超链接。将它们下载并保存到本地。安装刚才下载下来的“下载CA证书”、“下载CA证书链”和“下载最新的基CRL”,让VPN服务器信任CA服务器。安装方法如下:以安装“CA证书”为例,在下载下来的“CA证书”上右击选择“安装证书”安装位置按下图进行操作:其他两个(CA证书链和CRL)的安装方法同“CA证书”的安装方法完全一样。这里不现重复介绍,请参照上面的操作完成安装。至此VPN服务器就会信任CA分发的证书了。为VPN服务器申请证书:在VPN服务器的浏览器中输入网址:http:/CA服务器的IP/certsrv,在验证对话框中
22、输入域系统管理员的用户名和密码,在申请证书的WEB页中单击“申请证书”、“高级证书申请”、“创建并向此CA提交一申请”。在“证书模板”下拉列表框中选择“系统管理员”,确认已选择“标记密钥为可导出”,其他选项采用默认值,然后单击“提交”,如下图所示:如果是向独立CA申请证书,请在“需要证书类型”处选择“客户端身份验证证书”或“IPSEC证证”,并增加选择“标记密钥为可导出”。最后单击“安装此证书”将证书转移以计算机证书缓存区:我们刚才申请的证书会被安装到VPN服务器的用户证书缓存区,然而此证书必须安装到计算机证书缓存区才有效,因此我们将通过MMC将证书转移到计算机证书缓存区。具体操作方法如下:选
23、择“开始”-“运行”,输入MMC,选择“文件”菜单中的“添加删除管理单元”,在可用的管理单元列表中选择“证书”后单击“添加”,添加到所选管单元中,重复操作两次,分别将“我的用户账户”和“计算机账户”添加到所选管单元中。添加结果如下图所示:最后单击确定按钮。展开“证书-当前用户”“个人”-“证书”选择VPN服务器的证书,右击,选择“所有任务”-“导出”,选择“是,导出私钥”,如下图所示:按向导完成其他操作。接下来将导出来的证书导入计算机证书缓存区,展开“证书-(本地计算机)”“个人”上单击右键,选择“所有任务”-“导入”,按向导完成其他操作任务。在VPN服务器按上面的相关操作设置好证书后,通过路
24、由和远程访问控制台来重新启动路由和远程访问服务。3) VPN客户端设置VPN客户端同样需要申请证书后才可以利用L2TP/IPSEC来连接VPN服务器,不过VPN客户端是位于外部网络,它目前无法连接到内部的企业根CA,因此它如何向企业根CA申请证书与执行信任CA操作呢?此处我建议在VPN客户端中先利用PPTP VPN连上VPN服务器,它就可以通过PPTP VPN来连接内部企业根CA网站,然后执行信任CA与申请证的操作。VPN客户端信任CA服务器和申请证书的操作与VPN服务器完全相同,请参考上面的有关操作。这里就不再重复讲解了。4) 测试L2TP/IPSEC(计算机证书)L2TP/IPSEC VP
25、N客户端的VPN连接设置与PPTP VPN客户端类似,因此仍沿用前面的VPN连接,只要作小幅度的修改即可,如下图所示:完成后,VPN客户端就可以通过此VPN连接与VPN服务器创建采用计算机证书的L2TP/IPSEC VPN。若要进一步测试计算机证书是否有发后功效,可以在VPN客户端中利用证书控制台将计算机证书删除,此时重新利用VPN连接时将失败。5、实例演练:SSTP(SSL) VPN新的协议SSTP的支持及介绍:在WINDOWS2008新的功能中,SSTP协议支持让通过WINDOWS 2008进行SSL-VPN访问成为了可能。SSTP是微软提供的新一代的虚拟专用网(VPN)技术,它的全称是安
26、全套接层隧道协议(Secure Socket Tunneling Protocol;sstp),和PPTP 、L2TP / IPsec一样,也是微软所提供的VPN技术。在拥有最大弹性发挥的同时,又确保信息安全达到了一定程度。目前,支持SSTP技术的仅限于如下OS: Windows Vista Sp1、WIN7以及Windows 2008。通过使用此项新技术,可以使防火墙管理员能更容易的配置策略使SSTP流量通过其防火墙。它提供了一种机制,将PPP数据包封装在HTTPS的SSL通讯中,从而使PPP支持更加安全身份验方法,如EAP-TLS等PPTP及L2TP / IPSEC在使用过程中的不足新的S
27、STP协议的支持,并没有完全否决PPTP及L2TP / IPSEC在微软产品所组成的解决方案中的作用,当企业使用基于WINDOWS 平台的VPN解决方案时,这种协议仍是被常用来解决或是提升企业网络安全性。但两者的数据包通过防火墙、NAT、WEB PROXY时却都有可能发生一些连线方面的问题。PPTP数据包通过防火墙时,防火墙需被设定成同时允许TCP连接以及GRE封装的数据通过,但大部分ISP都会阻止这种封包,从而造成连线的问题;而当你的机器位于NAT之后,NAT亦必需被设定成能转发GRE协议封装的数据包。否则就会造成只能建立PPTP的TCP连接,而无法接收GRE协议封装的数据包;WEB PRO
28、XY是不支持PPTP 协议的。 L2TP / IPSEC的情况和此类似,需要在防火墙上允许IKE 数据和ESP封装的数据同时通过,否则也会出现连接问题。且WEB PROXY也是不支持L2TP / IPSEC协议的。有关PPTP、L2TP、SSTP隧道协议的封装包格式可以查看WIN2008的帮助。SSTP的执行过程:上面简要介绍了SSTP协议的优势以及PPTP等之前两种协议的不足,下面就来说下XP WITH SP3 或是VISTA WITH SP1、WIN7等客户端是如何连接到WINDOWS 2008 SSL(SSTP)VPN服务器的:1、SSTP VPN客户端以随机的TCP端口建立TCP连接至
29、SSTP VPN服务器(常常是SSTP VPN 网关服务器)上的TCP 443端口。2、SSTP VPN客户端发送一个SSL “Client-Hello”消息给SSTP VPN服务器,表明想与此建立一个SSL会话。3、SSTP VPN服务器发送“其机器证书”至SSTP VPN客户端。4、SSTP VPN客户端验证机器证书,检查CRL验证服务器证书是否被吊销,决定SSL会话的加密方法,并产生一个以SSTP VPN服务器公钥加密的SSL会话密钥,然后发送给SSTP VPN服务器。5、SSTP VPN服务器使用此机器证书私钥来解密收到的加密的SSL会话,之后两者之间所有的通讯都以协商的加密方法和SS
30、L 会话密钥进行加密。6、SSTP VPN客户端发送一个基于SSL的HTTP(HTTPS)请求至SSTP VPN服务器。7、SSTP VPN客户端与SSTP VPN服务器协商SSTP隧道。8、SSTP VPN客户端与SSTP VPN服务器协商包含“使用PPP验证方法验(或EAP验证方法)证使用者证书以及进行IPV4或IPV6通讯”的PPP连接。9、SSTP VPN客户端开始发送基于PPP连接的IPV4或IPV6通讯流量(数据)。实验拓朴:SSTP(SSL) VPN实验练习中,实验拓朴仍然采用和L2TP/IPSEC(计算机证书)实验时的环境一样,不过完成环境创建后,还需要执行以下两个更改工作。1
31、、因为VPN服务器需要向CA申请与安装证书,因此要确保安装CA服务和IIS(通过WEB方式申请证书),有关CA服务的安装参考L2TP/IPSEC VPN(计算机证书)实验。但SSTP VPN中VPN客户端不需要证书。2、因为VPN客户端在新建SSTP VPN之前,必须要能利用HTTP通信协议从CA下载证书吊销列表(CRL),否则SSTP VPN连接会失败,然而此时VPN客户端无法连接到内部网络的企业根CA,解决此问题的方法是在VPN服务器中启用NAT,然后通过NAT的端口对应功能将HTTP数据流转到内部企业根CA网站,这样VPN客户端就可以通过NAT从企业根CA网站下载证书吊销列表(CRL)了。具体操作步骤如下:1) 环境搭建并初始测试环境由于SSTP VPN的初始环境与PPTP VPN相同,因此若你还未新建PPTP VPN,请先按照前面的说明完成环境搭建,并测试PPTP VPN是否可以成功连接。2) 安装企业根CA参考L2TP/IPSEC VPN(计算机证书)实验3) VPN服务器的设置请在VPN服务器上启用NAT功能,信任CA并为VPN服务器申请证书。有关信任CA和为VPN服务器申请证书请参考前面有关L2TP/IPSEC VPN(计算机证书)的实验启用VPN服务器的NAT功能:为了让VPN客户端
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1