我们之前说到IPsec VPN远程接入方式,那这种接入方式有一个弊端,那就是必须要在电脑上安装VPN Client软件,在一台没有安装VPN Client软件的电脑上是不能建立IPsec VPN连接的,相当于IPsec VPN是C/S架构的。虽然在电脑上装个VPN Client软件并不是什么难事,但是假设出差在外你没有带电脑,或者在客户那边你不能使用自己的电脑接入Internet,在这种情况下你需要借用别人的电脑来使用VPN的时候,这很明显就有些麻烦了,因为你需要在别人的电脑上安装VPN Client软件,这并不是任何时候别人都会同意你这么做,并且软件还得考虑系统兼容性问题,并非所有的电脑都能适用。所以如果能够让我们不用安装软件就能使用VPN连接的话这就最好不过了。基于上述种种原因,SSL VPN(也叫做WebVPN)出现了。
何谓SSL VPN,首先要从SSL谈起,使用网络不能不提的是各个网站,浏览网站使用浏览器,网络上传送网页的协议叫HTTP,它是明文传播的,传播内容可以被黑客读取。而SSL全名叫Secure Session Layer(安全会话层),其最初目的是给HTTP加密使用的安全套件,使用SSL的HTTP,也就摇身一变成了HTTPS,端口也从HTTP的80变成了443。由于HTTPS具备安全性,也具备传输数据的能力,也就被研究VPN技术的专家盯上了,觉得HTTPS可以用于组建VPN方案,于是SSL VPN技术就这样诞生了。
SSL VPN的实现就可以不需要借助软件来完成,在一台没有安装任何软件的PC上同样可以建立SSL VPN连接,这就是它的优点。SSL VPN的建立只要在PC上使用支持HTTPS (HTTP over SSL)的网页浏览器就可以完成,摆脱了安装软件的困扰,这就使得SSL VPN在任何环境的PC上都能够建立,因为现在几乎没有任何一台PC上是没有网页浏览器的。只要是支持HTTPS网页浏览器的PC,无论在哪里,只要能够连接Internet,就能与公司总部建立的SSL VPN连接远程访问到公司内部服务器资源了。
如下图,我们来看一下SSL VPN IP连接建立的过程,从而能够远程访问到公司内部服务器的。
1.远程电脑用户登陆SSL VPN页面,使用网页浏览打开SSL VPN服务器的外网地址6.16.5.6,输入使用者的身份信息,如账户密码登陆,此时会建立一个HTTPS会话,服务器通过这个会话给用户自动加载SSL VPN客户端程序;
2.此时的SSL VPN客户端程序的目的是给用户PC创建一个虚拟网卡,以实现到总部网络的VPN连接;
3.虚拟网卡创建好后,SSL VPN服务器会从地址池192.168.1.0/24中取一个地址如192.168.1.2分配给该远程电脑用户,同时下发路由、DNS等信息,SSL VPN服务器针对该地址池也会有一个服务器地址192.168.1.1,作为所有客户端程序虚拟网卡的网关;
4.此时SSL VPN客户端程序与服务器之间会建立一个全新的SSL会话,专门用来传输虚拟网卡与SSL VPN服务器之间的流量;
5.假设远程电脑用户要访问公司内部DNS 10.6.16.1服务器,根据路由的关系,远程PC会通过虚拟网卡将访问公司内部DNS请求(源192.168.1.2目的10.6.16.1)转发给SSL VPN服务器192.168.1.1;
6.远程PC上的SSL VPN客户端程序会将虚拟网卡发出的IP包封装至新的SSL会话中,通过互联网传送到SSL VPN服务器;
7.SSL VPN服务器进行解密,解封装后发现IP目的地址是10.6.16.1,那么就转发给内部DNS服务器;
8.反向过程以及访问内部ERP服务器10.6.16.4与此类似。
再来看一下数据封装过程,会有更加直观的认识。
在SSL VPN的IP连接中,相当于是一个内部地址端到端会话,穿越互联网的时候直接会话被封装至SSL会话中了。