配置windows 2008 作为远程访问SSL-VPN服务器。

2011年6月8日 | 分类: 乱七八糟 | 标签: , ,

一、新的协议SSTP的支持及介绍
随着windows server 2008的发布,相信新的功能和特性让IT PRO们兴奋不已,在新的功能中,SSTP协议支持让通过WINDOWS 2008进行SSL-VPN访问成为了可能。
SSTP是微软提供的新一代的虚拟专用网(VPN)技术,它的全称是安全套接层隧道协议(Secure Socket Tunneling Protocol;sstp),和PPTP L2TP OVER IPsec一样,也是微软所提供的VPN技术。在拥有最大弹性发挥的同时,又确保信息安全达到了一定程度。
目前,支持SSTP技术的仅限于如下OS:Windows Vista Sp1、Windows 7以及Windows 2008。通使用此项新技术,可以使防火墙管理员能更容易的配置策略使SSTP流量通过其防火墙。它提供了一种机制,将PPP数据包封装在HTTPS的 SSL通讯中,从而使PPP支持更加安全身份验方法,如EAP-TLS等。

二、PPTP及L2TP OVER IPSEC在使用过程中的不足
新的SSTP协议的支持,并没有完全否决PPTP及L2TP OVER IPSEC在微软产品所组成的解决方案中的作用,当企业使用基于WINDOWS 平台的VPN解决方案时,这种协议仍是被常用来解决或是提升企业网络安全性。但两者的数据包通过防火墙、NAT、WEB PROXY时却都有可能发生一些连线方面的问题。

PPTP数据包通过防火墙时,防火墙需被设定成同时充许TCP连接以及GRE封装的数据通过,但大部分ISP都会阻止这种封包,从而造成连 线的问题;而当你的机器位于NAT之后,NAT亦必需被设定成能转发GRE协议封装的数据包。否则就会造成只能建立PPTP的TCP连接,而无法接收 GRE协议封装的数据包;WEB PROXY是不支持PPTP 协议的。

L2TP OVER IPSEC的情况和此类似,需要在防火墙上充许IKE 数据和ESP封装的数据同时通过,否则也会出现连接问题。且WEB PROXY也是不支持L2TP OVER IPSEC协议的。

三、SSTP的执行过程
上面简要介绍了SSTP协议的优势以及PPTP等之前两种协议的不足,下面就来说下XP WITH SP3 或是VISTA WITH SP1等客户端是如何连接到WINDOWS 2008 SSL(SSTP)VPN服务器的:
1、SSTP VPN客户端以随机的TCP端口建立TCP连接至SSTP VPN服务器(常常是SSTP VPN 网关服务器)上的TCP 443端口。

2、SSTP VPN客户端发送一个SSL “Client-Hello”消息给SSTP VPN服务器,表明想与此建立一个SSL会话。

3、SSTP VPN服务器发送“其机器证书”至SSTP VPN客户端。

4、SSTP VPN客户端验证机器证书,决定SSL会话的加密方法,并产生一个以SSTP VPN服务器公钥加密的SSL会话密钥,然后发送给SSTP VPN服务器。

5、SSTP VPN服务器使用此机器证书私钥来解密收到的加密的SSL会话,之后两者之间所有的通讯都以协商的加密方法和SSL 会话密钥进行加密。

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 VPN服务器环境搭建及说明
测试环境较为简单,三台机器完成全部操作,其中两台是WINDOWS SERVER 2008企业版,一台是带有SP1的VISTA。注意,这其中会涉及到公有DNS解析问题,在本试验中,以HOSTS文件中写入相关信息代替。网络拓朴及详细说明如下:

1、图中WIN2K8 DC是一台windows 2008 域制器,名为win2k8dc.contoso.com。
充当DC、CA(企业根)、FILE SERVER角色。
IP Add:10.0.0.2/24
Gw:10.0.0.1
DNS:10.0.0.2
2、图中RRAS是一台windows 2008服务器,域成员,充当RRAS 、IIS服务器。两块网卡。
NEI 网卡IP Add:10.0.0.1/24
DNS:10.0.0.2
WAI网卡IP Add:166.111.8.2/24
DNS:10.0.0.2(真实环境中这块网卡是有网关和公有DNS的)
3、图中VISTA是一台带有SP1的VISTA手脑电脑,位于INTERNET上的任一位置。
IP Add:166.111.8.1/24

整个网络拓朴中的机器角色是通过HYPER-V上安装虚拟机器完成。实际生产环境中请按角色归位。

整个实验执行流程如下:
A、在WIN2K8 DC升级域控,安装CA角色(企业根)
B、在RRAS这台机器上安装RRAS(VPN,NAT)、IIS角色,并能发布位于DC上的CA URL。同时为本机申请证书。
C、在VISTA机器上,建立SSLVPN连线至VPN服务器。(在此机器上写HOSTS文件相关DNS域名解析结果)
一、在WIN2K8 DC上安装AD证书服务,并设置为企业根。
二、在SSTP VPN服务器上安装IIS7.0
三、在SSTP VPN服务器上使用IIS7.0中的证书请求向导,为SSTP VPN服务器请求一个机器证书。
四、在SSTP VPN服务器安装RRAS角色,并配置其为VPN和NAT服务器。
五、配置NAT服务器以发布CRL(证书吊销列表)

一、在WIN2K8 DC上安装AD证书服务,并设置为企业根。
1、在WIN2K8 DC上,打开服务器管理器,在“角色”中点选“添加角色”,并在弹出添加角色向导中点选“ACTIVE DIRECTORY 证书服务”,下一步:

2、在“选择角色服务”窗口中,选择“证书颁发机构”以及“证书颁发机构WEB注册”两项,同时,在选择“证书颁发机构WEB注册”后弹出的窗口中,点“添加必要的角色服务”。下一步:

3、在“指定安装类型”窗口中,选择“企业“项。(当然也可以选择独立项,但显然,这不是这次实验的目的,如果今后有时间,我会以此次实验拓朴为原型,改变CA角色到SSTP VPN服务器上,并设置成独立CA。也许还简单些。)下一(几)步:

4、中间一些过程略去,实在没有什么可要说明的。在“为CA配置加密“以及”配置CA名称“两个界面,均按默认设置,并下一步:

5、在“确认安装选择“界面,通过下拉右侧按钮可以清楚的看到之前的设定,如果你认为没有问题,就选择安装,如果你认为还需要更改,就选上一步。此处,选择”安装“。

6、“AD CS“,AD证书服务安装完成后的界面如下。至此,完成了AD CS的角色及角色服务安装。

二、在SSTP VPN服务器上安装IIS7.0
在上一个板块,已介绍了如何在WIN2K8上安装CA角色,并同时安装了WEB注册程序。接下来的操作将会在SSTP VPN服务器进行。
进行安装之前,请确认SSTP VPN服务器加入了域:contoso.com。且在此机器登陆时是以域用户登陆。在此场景中,偶是以域管理员身份在SSTP VPN服务器上登陆域的(contoso\administrator)。
通常情况下,并不建议把WEB服务器安装在一个负责网络安全的设备中,在此场景中,在SSTP VPN服务器中安装IIS7.0的目的,就是借此来在线递交企业CA一个其机器证书申请。
如果采用的是独立CA,且把证书服务安装在SSTP VPN服务器上,你就可以省去一些麻烦,至少不用在接下来图中安装一些IIS7.0的安全组件了。但很显然,这不是设计此次实验的目的。

接下来,请根据我的图示一步一步进行操作:
1、在SSTP VPN服务器中,打开“服务器管理器”,并在角色面板中选择“添加角色”。

2、在“选择服务器角色”界面,选择”WEB服务器(IIS)”,并在弹出的“添加角色向导”界面中,点“添加必需的功能”按钮。(此时,所安装的只是默认配置,还需要进行定制)才能满足实验需求并下一步:

3、在“选择角色服务”界面,拖动按钮至中间,并在“安全性”选项前全部打上对勾,请务必如此,这些动作是为下面的服务器证书做好组件安装准备的,否则你就不能使用证书申请向导了。选择后,下一步:

4、在出现的“确认安装选择”界面,点下方的“安装”按钮,进行角色及角色服务的安装进程。一些时间后出现“安装结果”窗口,安装完成。“关闭”窗口。

三、在SSTP VPN服务器上使用IIS7.0中的证书请求向导,为SSTP VPN服务器请求一个机器证书。

在二中,我们定制安装了IIS7.0服务器,接下来的操作就是为SSTP VPN服务器申请一个机器证书。
SSTP VPN服务器需要一个机器证书来创建与SSL VPN客户端的SSL VPN确连接。这个机器证书中的“通用名称”必需是SSL VPN客户端连接SSTP VPN服务器所使用的名子(DNS域名)。故为了解析SSTP VPN服务器的公网IP地址,需要为此名字创建DNS 记录。

以下操作是在SSTP VPN服务器中进行。
1、打开服务器管理器,展开“角色”至“INTERNET信息服务器”(也可以通过管理工具打开它)项。并点选中间控制面板中的 VPN(VPN\administrator)(严重注意,此处应是contoso\administrator,这个截图是我没有以域用户登陆的结果, 但此时,并不会影响接下来的实验的)。在右侧控制面板中可以看到“服务器证书”选项。接下的操作都与此有关。双击或是点右上角的“打开功能”以打开它。

2、在打开的“服务器证书”控制面板中,选择右侧的“创建域证书”,并在弹出的“可分辨名称属性”对话框中,填入图中所示内容(你可以有所不同,根 据环境需要)。值得注意的是,这里的sstp.contoso.com,是对应当到SSTP VPN服务器的外部IP的,由于这里只是测试环境,你需要在SSTP VPN客户端的主机文件里新建DNS A记录。下一步:

3、此时的登陆帐号是contoso\administrator,实际上第一步开始就应当是如此显示,但做到这一步时才发现,故之前两张截图并没 有更改过来,请有心人注意。也只有显示contoso\users这样的情况时,才会出现图中标示的“选择”按钮可用。否则,你只有手动填写,并有可能出 现验证问题。
点选“选择”按钮,在弹出的对话框中选择证书颁发机构。确定。并在“好记名称”对话框中填上你认为的好记的称便可。然后,点“完成“按钮。

3、下图所示是创建完成后的证书申请属性的“详细信息“界面。

四、在SSTP VPN服务器安装RRAS角色,并配置其为VPN和NAT服务器。
在WINDOWS 2008里,路由和远程访问服务器安装方法和之前的WINDOWS系统有所不同,它作为一项角色服务包含在“网络策略和访问服务”角色中。而“网络策略和 访问服务”提供网络策略服务器(NPS)、路由与远程访问、健康注册颁发机构(HRA)和主机凭据授权协议(HCAP),这些都有助于网络的健康和安全。
在此次实验中,本不需要NAT 服务器角色的,为何,不但要把此SSTP VPN服务器做为VPN服务器,还要实现其NAT的功能呢?前面已讲到,SSL VPN客户端需要下载CRL,这时的NAT功能就是起到转发此通讯流量至内部网络的AD CA服务器上。否则,SSTP VPN服务器连接将失效。
同时,为了能访问内部网络的CRL,不但要配置SSTP VPN服务器做为NAT服务器,还要在通过NAT来发布CRL(也许,在生产环境中,你需要通过一个防火墙来发布此CRL)。

1、打开服务器管理器,并展开“角色”项。点右侧面板的“添加角色”按钮。在弹出的“选择服务器角色”窗口中,选择“网络策略与访问服务”。下一步:

2、在弹出的“选择角色服务”窗口中,选择“路由和远程访问服务”,并确保“远程访问服务”、“路由”两项被选定。并点下一步,直至完成此角色的安装。

3、完成安装后,展开“角色”、“网络策略和访问服务”,右键选择“配置并启用路由和远程访问”。

4、在“路由和远程访问服务欢迎向导”界面,点下一步。
5、在弹出的“配置”界面,在“虚拟专用网络(VPN)和NAT”打上对勾。下一步:

6、在“VPN连接”界面,选择名称为“WAI”的网卡,下一步:

7、在接下来的界面中选择“来自一个指定的地址范围”,并下一步,在“地址范围分配”界面,输入新的地址范围,并确定后,下一步:

8、在“管理多个远程访问服务器”界面,由于没有内部的RADIUS服务器,此处选择第一项“否,使用路由和远程访问来对连接进行身份验证”。下一步:

9、在“正在完成路由和远程访问服务服务器安装向导”界面,点完成,并在弹出的消息对话框中点”OK”。

10、完成配置后,展开至“端口”处,并下拉右侧按钮至中间,此时,可以看到SSTP已创建。

五、配置NAT服务器以发布CRL(证书吊销列表)
为了能使SSL VPN客户端下载到CRL,就需要配置NAT服务器,以发布位于内部的AD CA服务器上的CRL。
但访问CRL的URL地址是什么呢,也许你可以通过下图的操作来发现(标示为黄色部分)URL为win2k8dc.contoso.com:

1、展开“路由各远程访问”至“NAT”项,在右侧的面板中,右键单击“WAI”,选属性:

2、在“WAI属性”界面中,移动鼠标至“服务和端口”项,并找到“WEB服务器(HTTP)”,点选后,会弹出“编辑服务”界面,在“专用地址”对话框中,填入内部的AD CA服务器的IP地址:10.0.0.2,并两次确定后,完成此次操作。
此处注意的是考虑到是实验环境,需要在SSL VPN客户端的主机文件中添加上针对此次发布的DNS A记录项。


 

在这部分中,将进行如下操作:
六、在DC上配置拨入连接账号。
七、在AD CA服务器上配置IIS,以使能通过HTTP连接至CRL目录。
八、在SSTP VPN客户端设置HOSTS文件。
九、在SSTP VPN客户端使用PPTP协议连接SSTP VPN服务器。
十、在SSTP VPN客户端从企业CA下载CA证书,并在客户端机器上安装。
十一、配置SSTP VPN客户端使用SSTP技术连接SSTP VPN服务器。在前面两篇博文中,介绍了如何设置WINDOWS 2008作为VPN、NAT服务器角色,以及如何设置DC成为AD CA服务器。接下来,将重点放在SSTP VPN客户端,通过配置来实现SSTP技术的应用。
同时,强烈建议对企业根CA不了解的朋友,在网络上找相关资料加深了解。学会使用GOOGLE是一个不错的建议。 

六、在DC上配置拨入连接账号
无论WINDOWS的任何版本,在使用VPN技术时,都应当在VPN服务器创建用户账户,并充许其拨入的权限。
WINDOWS 2008有所不同的时,用户账号属性中“拨入”的“网络访问权限”增加了一项“通过NPS网络策略控制访问”。这是一个不错的主意:通过网络策略来充许达 到策略要求的拨入账户访问或有限访问特殊的网络(如企业内部网络)。安全性上有很大的提升,管理上也更加方便。但NPS不是这次实验的主要目的,而且并没 有安装此角色服务。
在此场景中,用户账号拨入的网络权限仍与之前WINDOWS版本的做法相同:充许访问。

1、在DC机器中,依次打开–开始—管理工具—Active Directory 用户和计算机。
2、展开至“用户”节点,在右侧面板中选择administrator,右键属性,在拨入—网络访问权限—充许访问前面打上对勾。
这里需要说明的是,由于是域环境,且SSTP VPN服务器是域成员服务器,所以只需在DC上充许一个账户具有拨入访问权限便可。

七、在AD CA服务器上配置IIS,以使能通过HTTP连接至CRL目录
基于一些原因,使用安装向导安装证书服务WEB站点时,会设置成需要SSL 连接至CRL目录。从安全角度来说,看起来是一个好主意,但问题是连接至证书在线注册申请站点的URL并不使用SSL。
由此,在进行接下来的操作之前,先要确认CRL目录并不需要使用SSL 连接。
1、在DC机器中,依次打开–开始—管理工具-Internet信息服务(IIS)管理器
2、展开至“CertEnroll”节点,并选择中间控制面板下方的“内容视图”,这些就是CRL目录的内容了。

3、在同一窗口中,选择“功能视图”,并找到“SSL 设置”项,双击后可以看到“需求SSL”前面的按钮是灰色的。OK,这就说明不需要SSL连接。

八、在SSTP VPN客户端设置HOSTS文件
在生产环境中,这一步是可以省略的,只需要在域名ISP那注册相应域名便可以。但本场景为实验环境,最大的区别就是在于没有新建DNS来解析。
OK,在SSTP VPN客户端,运行命令notepad c:\windows\system32\drivers\etc\hosts(注意,在保存之前应确保这个文件具有被修改的权限哟),然后输入:
166.111.8.2  sstp.contoso.com
166.111.8.2 win2k8dc.contoso.com(这个为域控的,可以省去)

九、在SSTP VPN客户端使用PPTP协议连接SSTP VPN服务器
由于SSTP VPN客户端不是域成员机器,故CA证书不会自动安装在“受信受的根证书颁发机构”中。
那如何才能解决在客户端上安装CA证书的问题呢?呵呵,可以新建一个PPTP连接至SSTP VPN服务器,然后呢,通过WEB的方式来下载一个CA证书。
当然,也可以先下载后,直接传到这台机器上。
在这个场景中,是以先建立PPTP连接来实现的。

1、在SSTP VPN客户端,打开“网络和共享中心”,在右侧的任务栏,选择“设置连接或网络”,在弹出的“选择一个连接选项”界面中,选择“连接到工作区”。并在接下 来的“你想如何连接”中,选择“使用我的INTERNET连接至VPN”,并下一步,(如果出现,现在设置INTERNET连接,选择“稍后设置”,至于 原因嘛,很明了哟,咱们现在不是实验环境)在“键入要连接的INTERNET地址”,输入图中所示内容:sstp.contoso.com,至于目标名 称,随意填写。下一步:

2、在“键入您的用户名和密码”窗口,输入用户名:administrator及密码。(此时的用户名就是前面章节域管理员的名字,实际生产环境中请尽量不要用)

3、OK,进行到这一步,就可以进行拨号连接了,一切顺利。下图就是连接后的截图,请注意图中的标为绿色的部分:PPTP。

4、命令行下也可以看到分配的IP地址,以及可以和内部网络的DC通讯了。

5、打开IE浏览器,输入AD CA服务器的WEB注册网址:http://10.0.0.2/certsrv,并在弹出的用户认证界面输入用户名和密码。在出现的“欢迎使用”页,点“下载CA证书、证书链或CRL”。

6、此步,会出现图中所示的现象,当然是充许并运行了,不然,就没戏了。嘿嘿。

7、运行了“证书注册控制”后,就可以从“下载CA证书、证书链或CRL”页面,点“下载CA证书”了,保存CA证书至桌面上。并关掉IE浏览器。

8、证书下载后,接下来的工作是相当重要的,就是把下载的证书安装在“受信任的证书颁发机构”的证书存储中。

9、在SSTP VPN客户端机器上,运行“MMC”,并在UAC对话框,点“继续”按钮。

10、在控制台界面,打开“文件”下接栏中的“添加或删除管理单元”。

11、在“添加或删除管理单元”对话框中,下拉按钮至中间,找到“证书”,点右侧中间的“添加”。在弹出的对话框中,选择“计算机账号”。下一步:

12、在“选择计算机”对话框中,选择“本地计算机”,并点完成。

13、在“证书”控制台窗口中,移动鼠标至证书(本地计算机)–受信任的根证书颁发机构—证书—右健所有任务—导入。

14、在“要导入的文件”界面中,浏览至桌面之前保存的证书文件。下一步:

15、在“证书存储”中,选择“将所有的证书放入下列存储”,并确保证书存储下面的对话框为“受信任的根证书颁发机构”,下一步并完成操作:

16、完成以前操作后,可以在右侧看到相关详细信息。

17、接下来,就要进行VPN拨号连接设置了。断开之前的PPTP VPN连接,并右键至属性,在弹出的“SSTP VPN”属性对话框中,选定“网络”。并在“VPN类型”下拉框中选定“安全套接字隧道协议(SSTP)”。并确定。

18、再次进行拨号连接,OK,下图展示的就是连接后的状态,看到了吧,SSTP已经被使用。

19、OK,基本上完成所有操作了,为了更进一步说明使用的是SSTP技术来进行的VPN连接,可以在SSTP VPN服务器看到如下图示。足以说明啦。

原文http://wholdman.yo2.cn/2009/10/25/%E9%85%8D%E7%BD%AEwindows-2008-%E4%BD%9C%E4%B8%BA%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AEssl-vpn%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%82/

  1. Achilles Wong
    2011年6月11日19:41

    在Mac下有可行方法麼

    google搜索的都是windows的 Mac就悲劇了麼

    我是SnowLeopard…

    • iGFW
      2011年6月12日10:28

      这个是微软的ssl vpn貌似只能在win 7 2008 v等几个新系统下可用,其他系统及win xp都不能。