SSL/VPN远程接入技术架构

这篇具有很好参考价值的文章主要介绍了SSL/VPN远程接入技术架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 什么是SSL VPN

SSL VPN (Secure Sockets Layer Virtual Private Network) 通过SSL协议进行加密传输的VPN即可称之为SSL VPN,可通过Web浏览器或重型客户端(OpenVPN,AnyConnect)访问。它允许用户使用正确的Web浏览器或客户端从任何计算机建立与Intranet的安全连接。

最初的SSL VPN,其实是指纯web、免客户端(clientless)的VPN,其实现原理为HTTPS反向代理,主打是避免繁琐的客户端安装过程。

2. SSL/VPN的应用场景和技术演进

SSL VPN的核心应用场景是Point-to-Site终端远程接入场景,用于员工接入。

SSL/VPN有两种类别:

  1. SSL Portal VPN: 这是最初的SSL VPN,可称为7层SSL VPN。是可以通过纯浏览器、无需额外安装其他客户端(clientless)的方式访问web站点,通过SSL/TLS进行加密传输。
    劣势:不支持非web协议,如RDP、SSH及其他本地CS客户端访问内网业务。

  2. SSL Tunnel VPN : 通过对4层TCP或3层IP包进行隧道转发,以支持RDP、SSH及其他CS客户端应用,按转发层次不同,分为4层(Layer 4)或3层(Layer 3)SSL VPN。
    劣势:需要安装客户端,丢失了免客户端特性(clientless)。

从实际的演进中,在SSL VPN早期,以WEB化免客户端为主打价值,除了WEB(HTTP、HTTPS)的7层代理外,还会额外支持类似FTP/NFS/SMB代理,以实现文件共享需求;甚至还有基于可自动安装的浏览器的插件(如IE ActievX插件)来实现加密端口转发,从而使得CS资源也可访问(RDP、SSH等)。

到SSL VPN中后期,在Point-to-Site战场基本上大局抵定后,各厂商的SSL VPN实际也转变为了以Tunnel VPN为主打。

从基于浏览器的SSL Portal VPN,切换为基于客户端的SSL Tunnel VPN的这个变化,主要是几个因素:

  1. SSL Client下载安装体验被接受:SSL VPN支持在web portal页面下载并安装客户端,下载安装比IPSEC容易;下载后登录体验也比IPSEC VPN客户端简单。虽然丢失了免客户端(Clientless)特性,但是仍然可被接受。

  2. 跨浏览器、非windows操作系统群雄并起,基于IE的ActievX插件方案受限:ActievX插件机制只能适应IE,兼容性不足。多操作系统场景也不断增加(如Mac OS/Android/IOS),并非只使用windows。而ActiveX插件只支持IE,使用面越来越局限,最终浏览器插件机制被淘汰。

3. 隧道协议

3.1 隧道协议

隧道协议会分为 传输协议(Transport Protocol)、封装协议(Encapulation Protocol)、乘客协议(Passenger Protocol) 三个部分,同时其过程非常类似于货运过程。

  1. 物流快递:收件、运输(需要加固、装车、卸车)、派送 三步曲。
  2. 隧道转发:引流、传输(需要加密、封装、解封装)、转发 三步曲。
    引流:将需要转发的访问流量,捕捉起来,以便进行加密传输。类似于收件揽件。一般引流技术有路由表、虚拟网卡、hooking、配置透明代理等。
    传输:通过代理网络线路,将封装后的业务流量,加密传输至Proxy Server。类似于快递运输。
    转发:Proxy Server收到待转发流量后,转发给目标业务Server。 类似于快递派送。

3.2 SSL/VPN 工作层次

有时候我们一聊协议,很容易就问到,“XX VPN”是OSI第几层的?
其实这个要区分,到底是指 传输协议(Transport Protocol) 所处的OSI层,还是指 乘客协议(Passenger Protocol) 所处的OSI层次。
对于SSL VPN来说,传输协议都是SSL,乘客协议根据其资源类型不同,数据代理能力上同时支持Layer 3、Layer 4、Layer 7。

  1. WEB资源:乘客协议是7层。
  2. TCP资源/代理资源/端口转发资源:多数情况下,这些模式下,只能发布TCP的IP域名。
  3. IP资源: 该模式一般能够发布UDP、TCP的IP域名+端口,通常还可以支持ICMP。乘客协议为3层。
    SSL/VPN远程接入技术架构,网络,架构,安全,网关,远程接入技术

3层代理的技术流程

  1. 认证登录成功:PC客户端上安装好的认证模块,向SDP-Controller通信并完成认证登录,确认其安全性。
  2. 获取SDP策略:认证登录成功后,需要向SDP-Controller获取相关策略,比如资源列表、隧道模式以及其他相关的策略配置。
  3. 初始化隧道(阶段1):本地操作,初始化虚拟网卡,包括设置虚拟IP、设置路由等
  4. 初始化隧道(阶段2):根据延迟、丢包选路等策略,选择一个有效的SDP-Gateway初始化隧道连接,便于后续快速转发3层IP数据包。
  5. APP发起访问请求:本例中为浏览器,发起对内网业务OA的访问请求。
  6. 抓取IP数据包:SSL/VPN客户端-Layer3Tunnel模块负责从虚拟网卡/网络扩展中,提取出IP数据包,以供转发。
  7. 加密转发数据包:SSL/VPN客户端-Layer3TunnelLayer3Tunnel模块负责将IP数据包,加密转发至SDP-Gateway。
  8. 鉴权并代理转发:SDP-Gateway经过鉴权流程后,向真实业务(如OA) 正式转发IP数据包请求。

4层代理的典型流程

在关键流程上,4层代理和3层代理相当接近。在流程上通常是有几步有所不同:

  1. 差异1:3层代理通常是提前建立隧道,后续直接转发IP数据包;而4层代理,则是当APP应用发起请求时,才建立隧道。
  2. 差异2:引流技术有差异,3层代理通常使用虚拟网卡/系统网络扩展,而4层代理则通过网络过滤驱动。
  3. 差异3:虚拟IP机制有所差异。3层代理直接转发IP数据包,通常为了保证IP包的完整性,是将虚拟IP设置到虚拟网卡中,即设置到PC终端上。4层代理则调整为在SDP-Gateway中进行设置(根据策略不同,既可以设置虚拟IP,也可以使用代理网关IP作为源IP进行访问)。

4. 代理技术

传统SSL VPN通过4层端口代理的方法实现,代理服务器根据应用协议的类型(如http,telnet等)做相应的端口代理,客户端与代理服务器之间建立SSL安全连接,客户端与应用服务器之间的所有数据传输通过代理服务器转发。

在提到代理能力时,有一个经常被问及的问题:“XX资源是正向代理还是反向代理?”

4.1 正向代理

为Client工作的称之为正向代理,对客户端负责,最基础的作用是 隐藏真实客户端。自然世界中,正向代理的场景类比有 代购、跑腿 ,以及电影名场面:“请和我的律师谈”。

  • 代理客户端上网:比如说内网多台PC,通过指定一台代理网关代理可访问互联网。
  • 客户端匿名上网:实现匿名化访问,让服务方(Server)无法知道真实访问者身份。

不论是代理上网还是匿名上网场景,因为正向代理是为客户端服务的,所以客户端事先都需要要知道正向代理的存在。在代理上网场景,可能表现为 浏览器的代理设置中要填写 正向代理的地址等信息;

4.2 反向代理:

为Server 工作的称之为反向代理,对服务端负责,最基础的作用是 隐藏真实服务端。自然世界中,反向代理的场景类比,较典型的就是 长租公寓平台 ,可以简单理解为是 规模化的二房东。

反向代理 则是 位于一个或多个WEB服务器前面的代理服务,用于代理客户端的网络请求,防止客户端直接访问服务器。
参考 wiki ( https://en.wikipedia.org/wiki/Proxy_server#Forward_proxies ),可以看到反向代理典型用途如下:

  1. SSL加密/ SSL卸载:通过前置代理网关,对互联网发布HTTPS站点,后端内网服务只需要实现http,即可实现对外SSL加密、对内SSL卸载。
  2. 负载均衡:比如说 OA业务有3台Server服务器,3个内网IP,通过代理网关进行轮询负载,能够既对互联网提供统一服务、对内实现多服务器间的负载均衡调度。
  3. 缓存/加速:通过前置代理,对静态资源(css、js、图片、视频等)进行缓存和加速,降低真实业务Server的性能占用。
  4. 防DDOS:当前一些抗DDOS防护,也会采用7层防护,如Cloudflare的CDN,就可通过全球的CDN代理节点,可对7层资源进行DDOS防护。

如果正向代理相关场景,是客户端需要感知到正向代理的存在;相对应地,反向代理场景,则是服务端需要感知到反向代理的存在,感知项包括如:域名解析需要调整至反向代理、SSL证书需要配置至反向代理等等,需要完成一定的前置配置。

4.3 正向代理和反向代理在vpn上的应用

最初的SSL/VPN更多是正向代理(转发代理,Forward Proxy)技术思路的延展。
正向代理的一些特征:

  1. 一个互联网入口,即可代理访问多个不同的目标业务
  2. 不依赖于公网域名:如下gif图, croxyproxy 是使用IP提供的访问代理服务,也可以正常实现访问代理。

基于正向代理的WEB资源,最核心需要解决的问题,是一个公共入口下,如何区分目标业务系统。主流方案是基于参数区分:比如说 https://125.93.20.90/?__origin=BASE64(源站地址) 。比如:Proxyium所使用的机制。

近几年包含WEB资源的SDP/SSLVPN产品,默认都采用了反向代理的机制去实现。切换为反向代理后,最大的差异是采取多域名方案,实现一站一域名。反向代理型WEB资源,通常会选择主要的中间件,如apache、nginx,以后者居多。

5. OpenVpn

OpenVPN是近年来新出现的开放源码项目,实现了SSL VPN的一种解决方案。

传统端口代理(4层代理)实现方式烦琐,应用范围也比较窄,对每个需要代理的端口进行单独配置;对于每个需要用到动态端口的协议都必须重新开发,且在代理中解析应用协议才能实现代理,如FTP协议;代理服务器前端的防火墙也要根据代理端口的配置变化进行相应调整。

OpenVPN以一种全新的方式实现了SSL VPN的功能,克服了传统SSL VPN的一些缺陷,扩展了应用领域,并且防火墙上只需开放TCP或UDP协议的一个端口。

5.1 虚拟网卡(tun)

对虚拟网卡的使用是OpenVPN实现其SSL VPN功能的关键。
在Linux2.4版本以上,操作系统支持一个名为tun的设备,tun设备的驱动程序中包含两个部分,一部分是字符设备驱动,一部分是网卡驱动。

  • 网卡的驱动把从TCP/IP协议栈收到的数据包结构skb放于tun设备的读取队列,
  • 用户进程通过调用字符设备接口read获得完整的IP数据包,字符驱动read函数的功能是从设备的读取队列读取数据,将核心态的skb传递给用户;
  • 反过来字符驱动write函数给用户提供了把用户态的数据写入核心态的接口,write函数把用户数据写入核心空间并穿入TCP/IP协议栈。该设备既能以字符设备的方式被读写,
  • 作为系统的虚拟网卡,也具有和物理网卡相同的特点:能够配置IP地址和路由。

5.2 数据包的处理过程

TUN设备连接的是主机内核协议栈IP层,客户端使用openvpn访问web服务流程:文章来源地址https://www.toymoban.com/news/detail-847593.html

  1. 客户端启动openvpn client进程连接openvpn server
  2. server下发路由条目到客户端机器路由表中,同时生成虚拟网卡tun1(tun设备,openvpn client进程与openvpn server一样会注册tun虚拟网卡)
  3. 客户端通过浏览器访问web服务
  4. 浏览器生成的数据包在协议栈IP层进行路由选择,决定通过虚拟网卡tun1发出
  5. 虚拟网卡tun1另一端连接用户层openvpn client进程
  6. openvpn client进程收到原始请求数据包
  7. openvpn client封装原始请求数据包,通过udp协议发送vpn封包到openvpn server上的9112端口
  8. openvpn server上的openvpn进程收到vpn封包,解包,写数据到/dev/net/tun
  9. 文件描述符/dev/net/tun与虚拟网卡tun0关联,主机从tun0网卡收到数据包
  10. 主机进行Routing decision,根据数据包目的IP(用户访问web网站IP地址)从相应网卡发出

到了这里,关于SSL/VPN远程接入技术架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Site-to-Site VPN配置和调试实践:构建安全的远程网络连接

    Site-to-Site VPN配置和调试实践:构建安全的远程网络连接 【实验目的】 理解Site to Site VPN的含义。 掌握Site to Site VPN的含义。 验证配置。 【实验拓扑】 实验拓扑如下图所示。 实验拓扑 设备参数表如下表所示。 设备参数表 设备 接口 IP地址 子网掩码 默认网关 R1 S0/1/0 69.1.0.1

    2024年02月09日
    浏览(29)
  • 安全防御 --- SSL VPN

    有浏览器的设备就可以使用 SSL ,进而使用 SSL VPN 。无需担心客户端问题,所以SSL VPN也称为无客户端VPN。SSL VPN在client to lan场景下特别有优势。 实际实现过程( 基于TCP实现 ) 握手阶段 SSL协议握手第一阶段 客户端首先发送client hello消息到服务端,服务端收到client hello消息后

    2024年02月12日
    浏览(28)
  • 安全防御------SSL VPN篇

    目录 一、SSL工作过程 1.SSL握手协议的第一阶段 2.SSL握手协议的第二阶段 3.SSL握手协议的第三阶段​编辑 4.SSL握手协议的第四阶段​编辑 二、SSL预主密钥有什么作用? 三、SSL VPN主要用于那些场景? 四、SSL VPN的实现方式有哪些? 1.虚拟网关 2.WEB代理 3.文件共享 4.端口转发 5.网

    2024年02月06日
    浏览(26)
  • 网络防御之SSL VPN

    1. SSL工作过程是什么? 第一阶段:         客户端发送client hello消息到服务端,服务端收到client hello消息后,再发送server hello消息到客户端。 第二阶段:         服务器的证书,用于客户端给客户端发送信息时加密         server key exchange服务端密钥交换:决定密

    2024年02月13日
    浏览(27)
  • 用户远程访问公司内网---防火墙配置SSL VPN,操作及原理讲解

    SSL VPN(Secure Sockets Layer Virtual Private Network)是一种利用SSL/TLS协议来提供安全的远程访问解决方案。与IPSec VPN相比,SSL VPN的优势在于它不需要在客户端安装特定的软件,用户可以通过任何支持SSL/TLS的Web浏览器来访问企业网络。 SSL VPN的工作原理如下: 客户端认证 :用户通过浏

    2024年04月27日
    浏览(28)
  • 【网络安全技术】传输层安全——SSL/TLS

    TLS建立在传输层TCP/UDP之上,应用层之下。 所以这可以解决一个问题,那就是为什么抓不到HTTP和SMTP包,因为这两个在TLS之上,消息封上应用层的头,下到TLS层,TLS层对上层消息整个做了加密,然后套了TLS头下到传输层,套上TCP头给IP,IP套上IP头然后路由,找到下一跳之后AR

    2024年02月03日
    浏览(39)
  • 安全防御------SSL VPN篇_防范 ssl 隧道内部的攻击流量

    目录 一、SSL工作过程 1.SSL握手协议的第一阶段 2.SSL握手协议的第二阶段 3.SSL握手协议的第三阶段​编辑 4.SSL握手协议的第四阶段​编辑 二、SSL预主密钥有什么作用? 三、SSL VPN主要用于那些场景? 四、SSL VPN的实现方式有哪些? 1.虚拟网关 2.WEB代理 3.文件共享 4.端口转发 5.网

    2024年01月25日
    浏览(35)
  • SSL/TLS加密技术:保护网络通信安全的关键技术

    SSL/TLS加密技术是一种常用的网络通信协议,用于确保数据在传输过程中的安全性和完整性。该技术可以帮助防止黑客、间谍、欺诈和其他形式的网络攻击,同时保护用户隐私和敏感信息。在本文中,我们将深入了解SSL/TLS加密技术的原理、功能和使用方法。 SSL(Secure Sockets

    2024年02月11日
    浏览(40)
  • 远程访问VPN配置与验证实验:构建安全的远程连接

    远程访问VPN配置与验证实验:构建安全的远程连接 【实验目的】 理解远程访问 VPN的含义。 掌握远程访问 VPN的含义。 掌握VPN Client软件的使用。 验证配置。 【实验拓扑】 实验拓扑如下图所示。 实验拓扑 设备参数表如下表所示。 设备参数表 设备 接口 IP地址 子网掩码 默认

    2024年02月09日
    浏览(30)
  • 【软考网络管理员】2023年软考网管初级常见知识考点(18)-安全协议SSL与PGP、数据加密技术

    安全套接层协议SSL详解,PGP协议是什么?数据加密技术有哪些?软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 原创于:CSDN博主-《拄杖盲学轻声码》,更多考点汇总可以去他主页查看 更多考试总结可关注CSDN博主-《拄杖盲学轻声码》 SSL可以对

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包