前言:在20089月份,我写了和本篇同样的文章,那时的环境是基于windows server 2008windows 7 with sp1的。今次,在windows server 2008 r2windows 7的环境中重现企业sstp vpn的建置过程。

此篇文章由小弟---华北电力大学的在校生刘勇完成。

一、新的协议SSTP的支持及介绍 
windows server 2008 R2的已经发布金日,相信新的企业功能和特性让IT PRO们兴奋不已,在新的功能中,SSTP协议的支持让通过WINDOWS SERVER 2008 R2 R2进行SSL-×××访问得到了增加,配合windows 7终端系统,企业使用sstp vpn更加获利于微软提供的远程安全访问解决方案。 
SSTP是微软提供的新一代的虚拟专用网(×××)技术,它的全称是安全套接层隧道协议(Secure Socket Tunneling Protocol;sstp),和PPTP L2TP OVER IPsec一样,也是微软所提供的×××技术。在拥有最大弹性发挥的同时,又确保信息安全达到了一定程度。 
目前,支持SSTP的技术可以在如下系统中实现:Windows XP Sp3(偶在生产环境中并没有去验证)、Windows Windows 7 Sp1、windows 7、Windows server 2008 R2、windows server 2008 R2。在Windows Server 2008仅支持客户端与服务器之间的SSTP ×××,并不支持站点到站点间的SSTP ×××。但笔者仍不确认在windows server 2008 R2中是否支持。

通使用此项新技术,可以使防火墙管理员能更容易的配置策略使SSTP流量通过其防火墙。它提供了一种机制,将PPP数据包封装在HTTPS的SSL通讯中,从而使PPP支持更加安全身份验方法,如EAP-TLS等。


二、PPTP及L2TP OVER IPSEC在使用过程中的不足 
新的SSTP协议的支持,并没有完全否决PPTP及L2TP OVER IPSEC在微软产品所组成的解决方案中的作用,当企业使用基于WINDOWS 平台的×××解决方案时,这种协议仍是被常用来解决或是提升企业网络安全性。但两者的数据包通过防火墙、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 或是WINDOWS 7 WITH SP1、Windows 7等客户端是如何连接到WINDOWS SERVER 2008 R2 SSL(SSTP)×××服务器的: 
1、SSTP ×××客户端以随机的TCP端口建立TCP连接至SSTP ×××服务器(常常是SSTP ××× 网关服务器)上的TCP 443端口。 
2、SSTP ×××客户端发送一个SSL “Client-Hello”消息给SSTP ×××服务器,表明想与此建立一个SSL会话。 
3、SSTP ×××服务器发送“其机器证书”至SSTP ×××客户端。 
4、SSTP ×××客户端验证机器证书,决定SSL会话的加密方法,并产生一个以SSTP ×××服务器公钥加密的SSL会话密钥,然后发送给SSTP ×××服务器。 
5、SSTP ×××服务器使用此机器证书私钥来解密收到的加密的SSL会话,之后两者之间所有的通讯都以协商的加密方法和SSL 会话密钥进行加密。 
6、SSTP ×××客户端发送一个基于SSL的HTTP(HTTPS)请求至SSTP ×××服务器。 
7、SSTP ×××客户端与SSTP ×××服务器协商SSTP隧道。 
8、SSTP ×××客户端与SSTP ×××服务器协商包含“使用PPP验证方法验(或EAP验证方法)证使用者证书以及进行IPV4或IPV6通讯”的PPP连接。 
9、SSTP ×××客户端开始发送基于PPP连接的IPV4或IPV6通讯流量(数据)。 
 

四、SSTP ×××服务器环境搭建及说明 
测试环境较为简单,三台机器完成全部操作,其中两台是WINDOWS SERVER 2008企业版,一台是带有SP1的WINDOWS 7。注意,这其中会涉及到公有DNS解析问题,在本试验中,以HOSTS文件中写入相关信息代替。

基于Windows server 2008 R2 R2和Windows7的企业环境的SSTP(或SSL) ×××构建(一)_休闲

网络拓朴及详细说明如下: 
1、图中WIN2K8 DC是一台windows server 2008 R2 R2域制器,名为win2k8dc.contoso.com。 
充当DC、CA(企业根)、FILE SERVER角色。 
IP Add:59.65.232.199/24 
Gw:59.65.232.254 
DNS:202.106.0.20 
2、图中RRAS是一台windows server 2008 R2服务器,域成员,充当RRAS 、IIS服务器。两块网卡。 
NEI 网卡IP Add:59.65.232.199/24 
DNS:202.106.0.20 
WAI网卡IP Add:192.168.2.1/24 
DNS:202.106.0.20(真实环境中这块网卡是有网关和公有DNS的) 
3、图中WINDOWS 7是一台带有SP1的WINDOWS 7手提电脑,位于INTERNET上的任一位置。 
IP Add:59.65.232.253/24 
整个网络拓朴中的机器角色是通过HYPER-V上安装虚拟机器完成。实际生产环境中请按角色归位。 
整个实验执行流程如下: 
A、在WIN2K8 DC升级域控,安装CA角色(企业根) 
B、在RRAS这台机器上安装RRAS(×××,NAT)、IIS角色,并能发布位于DC上的CA URL。同时为本机申请证书。 
C、在WINDOWS 7机器上,建立SSL ×××连线至×××服务器。(在此机器上写HOSTS文件相关DNS域名解析结果)

在进行之前,需要强调两个问题,这两个问题是在配置和利用证书方面经常会产生的,提前告示大家在后续文章阅读时要注意:

1、 将不正确的RRAS计算机证书绑定至侦听器。

(在将RRAS角色添加到×××服务器之前,必须添加RRAS计算机证书,这样子SSTP才可以正确的用。否则,就会将错误的证书绑定到该协议。详细请见下章中的三、四部分)

2、 证书撤销站点对于×××客户端不可用。

(证书撤销列表必须可用于 Internet上的客户端。)