查看文章 |
一直以来,微软都是通过PPTP实现VPN的互联功能,看来在SSL VPN市场,他也想像杀毒市场进军一样,让VPN的生存厂商难以生存吧.目前国内VPN厂商,还未有几个建立起这样的危机意识. 基于SSTP协议的VPN隧道通信 在Windows Longhron Server 以及Windows Vista SP1中,针对远程访问中的VPN连接,微软将提供一个新的协议,称为SSTP(Secure Socket Tunneling Protocol,安全套接字隧道协议)。这个协议将用来替代PPTP和L2TP协议,以提高VPN访问的灵活性,不过SSTP还不是一个标准,将来肯定还有一段路需要走。 大家在使用PPTP和L2TP协议进行VPN的时候,肯定遇到VPN连接不能正常工作的情况,很多时候是因为防火墙或者NAT路由器没有开放PPTP GRE或者L2TP ESP的端口。对于用户来说,这样的VPN连接的体验肯定是不好的,他们希望的是VPN连接就像IE连接一样好用。SSTP就是为了解决这样的问题而出现的。 为了避开防火墙或者NAT对VPN连接的影响,SSTP通过HTTPS(SSL)建立VPN隧道,大部分防火墙是允许出方向的SSL访问通过的。但是SSTP并不支持站点到站点的VPN,只适合于客户端到站点的远程访问连接。下面将描述SSTP的运作流程: 1、 客户端通过Internet和服务器建立TCP连接,这个连接是通过TCP端口443进行的。假定客户端的IP地址是100.100.100.1,服务器的IP地址是200.200.200.1。 2、 当这个TCP会话开始之初,将进行SSL协商。通过SSL协商过程,客户端将获取并验证服务器的证书(如果验证失败,连接将终止)。在这个过程中,服务器并不验证客户端的身份。 3、 客户端将通过加密的SSL会话,往服务器发送HTTPS请求。 4、 通过HTTPS会话,SSTP协议将开始运作,客户端将发送SSTP控制数据包,在客户端和服务器上开启SSTP状态机。然后将在PPP层建立链路通信。 5、 在PPP会话(这个会话建立于SSTP over HTTPS之上)的初始将进行PPP验证,验证的方法取决于验证算法,一般情况下此时服务器将验证客户端的身份,而客户端对服务器的身份验证是可选的。 6、 PPP验证结束后,SSTP将在客户端和服务器通过VPN连接接口进行通信,该接口将使用“内部IP”,比如客户端为192.168.1.2,服务器为192.168.1.1。这个IP地址是在RRAS服务器上进行配置,用来访问公司的内部网络。 7、 客户端和服务器通过SSTP进行VPN通信,发送数据包。假设客户端(192.168.1.2)需要发送一个数据包到服务器(192.168.1.1),此时SSTP将提交此数据包到SSL层进行加密,然后SSL层添加新的数据包头部(源地址为100.100.100.1,目的地址为 200.200.200.1),通过Internet连接接口将数据包发往服务器。 SSTP协议同时还具有以下的特点:
|