4. 大家可能会问 , 为何需要个客户端程序进行代理呢 , 使用者的应用程序不能直接和SSL VPN服务器建立SSL会话吗?这个问题很好 , 使用者的应用程序的确无法直接建立SSL会话 , 所以使用客户端程序代劳 , 这种方式可以让所有TCP应用都能够享用SSL VPN服务;
5. 服务器接收到SSL加密的请求后 , 首先会进行解密 , 然后根据端口映射 , 会向内部FTP1站点TCP 10.6.16.1:21发起访问;
6. 反向转发以及访问FTP2类似 。
我们可以发现这种端口映射使整个访问过程由三段会话组成:使用者应用程序与SSL VPN客户端程序的普通TCP会话、SSL VPN客户端程序与服务器的SSL会话、服务器与内部站点的普通TCP会话 。
文章插图
从这张图可以看出更详细的数据封装过程以及会话衔接过程 , 使用SSL VPN服务器进行端口映射的好处与WEB代理类似 , 可以牺牲SSL VPN服务器 , 保护内部服务器 。
四、IP连接
前面介绍的WEB代理是专门针对WEB应用的 , 端口映射则受制于SSL只支持TCP应用 , 如果使用者要任意访问一个内部服务器的任意协议、端口 , 该如何是好呢?IP连接应运而生 , IP连接可以完美地替代L2TP这种传统意义上的VPN:虚拟连接、内部地址、路由互联 。
文章插图
我们从上图来解释一下IP连接的原理:
1. 用户登陆SSL VPN页面后 , 会建立HTTPS会话 , 服务器通过这个会话给用户自动加载SSL VPN客户端程序;
2. 此时的SSL VPN客户端程序的目的是给用户PC创建一个虚拟网卡 , 以实现类似于L2TP那种到客户总部网络的VPN连接;
3. 虚拟网卡创建好后 , 服务器会给该用户从地址池中取一个地址分配给该用户 , 同时下发路由、DNS等信息 , 服务器针对该地址池也会有一个服务器地址192.168.1.1 , 作为所有客户端程序虚拟网卡的网关;
4. 此时SSL VPN客户端程序与服务器之间会建立一个全新的SSL会话 , 专门用来传输虚拟网卡与服务器之间的流量;
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会话中 , 通过互联网传送到服务器;
7. 服务器进行解密 , 解封装后发现IP目的地址是10.6.16.1 , 那么就转发给DNS;
8. 反向过程以及访问ERP服务器10.6.16.4与此类似 。
再来看一下数据封装过程 , 会有更加直观的认识:
文章插图
在SSL VPN的IP连接中 , 客户端访问内部服务器不再像WEB代理、端口映射那应该多个会话衔接而成 , 而是一个内部地址端到端会话 , 穿越互联网的时候直接会话被封装至SSL会话中 , 和L2TP Over IPSec非常类似 。
五、SSL VPN总结
为什么说SSL VPN可以通过多粒度的服务呢?这是一个对比:
1. WEB代理 , 可以精确到对HTTP站点某些URL的控制;
2. 端口映射 , 可以精确到对某个端口的控制;
3. IP连接 , 可以精确到对某个IP地址的控制;
L2TP只能实现3 , 无法实现1和2 , 更是很难实现行为审计功能 。因此业界非常看好SSL VPN的前景 , 但使用SSL VPN必然也有一些局限性和代价:
1. 对于站点到站点的应用 , 效率上不如IPSec , 所以通常用来取代L2TP方案 , 而不是IPSec方案;
2. SSL VPN的IP连接服务 , 在有连接的TCP中封装无连接的IP、UDP上效率不是很高 , 如果TCP中再封装TCP , 在网络状况不稳定情况下 , 传输效率可能会急剧下降 , 但这个难题在被逐步功课之中 , 将来的TLS VPN可以实现在安全UDP会话 , 那情况就会好转很多;
3. SSL VPN客户端必须配合SSL VPN服务器 , 各个厂家的客户端都是自行开发的 , 无法互相兼容 。
版权声明:本文转载自公众号“ccie_lab” , 版权归原作者所有 , 转载请保留此字段 , 感谢!
推荐阅读
- SSLH:让 HTTPS 和 SSH 共享同一个端口
- 涌溪火青茶的保存技术
- 存茶是个技术活 藏茶如何储存
- Linux环境下使用openssl生成https证书
- 泡茶既是技术也是艺术
- 茶的冲泡是门技术
- 计算机网络入侵检测技术
- 泡茶技术的三要素
- 拼多多搜索排名底层逻辑算法
- 炒青技术与蒸青技术