当前位置: 首页 > news >正文

虚拟专用网络 之 VPN

虚拟专用网络

  1. 虚拟专用网络诞生
    一个技术的出现都是由于某种需求触发的。那么为什么会出现VPN技术呢?VPN技术解决了什么问题呢? 早期在没有VPN之前,企业的总部和分支机构之间的互通都是采用运营商提供的Internet互联网尽心通信; 但是在Internet互联网中通讯往往是不安全的,通信的内容可能被窃取、修改等,从而造成安全隐患或者安全事件;

在这里插入图片描述

所以就需要有一种技术既能实现总部和分支机构建的互通,也能保证数据传输的安全性!
早期很多大型企业会联合运营商构建物理专线网络,在总部和分支机构之间拉条专线,只传输自己的业务; 但是这个专线的费用确实不是一般公司能够承受的,而且维护也很困难;
在这里插入图片描述

那么有没有成本比较低的解决方案呢?
因此,就引出了VPN技术,VPN通过在现有的Internet网络中构建专用的虚拟网络,实现企业总部和分支机构的通信;
解决了互通、安全、成本的问题。

一、虚拟专用网络介绍

VPN(全称Virtual Private Network)虚拟专用网络,是依靠ISP和其他的NSP,在公共网络中建立专用的数据通信网络的技术; 可以为企业之间或者个人与企业之间提供安全的数据传输隧道服务。
在VPN中任意两点之间的连接并没有传统专网所需的端到端的物理链路,而是利用公共网络资源动态组成的; 可以理解为通过私有的隧道技术在公共数据网络上模拟出来的和专网有同样功能的点到点的专线技术; 所谓虚拟是指不需要去拉实际的长途物理线路,而是借用了公共Internet网络实现。
为了便于理解VPN概念,利用一个网络示意图进行说明:

1.1虚拟专用网络作用

VPN功能可以帮助公司里的远程用户(出差、家里),公司的分支机构,商业合作伙伴及供应商等公司和自己的公司内部网络之间; 建立可信的安全连接或者是局域网连接,确保数据的加密安全传输和业务访问; 对于运维工程师来说,还可以连接不同的机房构成局域网,处理相关的业务流。
应用虚拟专用网络的优势特点:

  • 安全性高
    在远端用户、驻外机构、合作伙伴、供应商与公司总部之间建立可靠的连接,保证数据传输的安全性。
    这对于实现电子商务或金融网络与通讯网络的融合特别重要。
  • 费用低廉
    利用公共网络进行信息通讯,企业可以用更低的成本连接远程办事机构、出差人员和业务伙伴。
  • 支持移动
    支持出差VPN用户在任何时间、任何地点的移动接入,能够满足不断增长的移动业务需求。
  • 可扩展性
    由于VPN为逻辑上的网络,物理网络中增加或修改节点,不影响VPN的部署。

1.2 虚拟专用网络分类

01 根据VPN建设单位不同进行划分
  • 租用运营厂商专线搭建VPN
    运营商的虚拟专线网络大多数都是使用 MPLS VPN; 企业通过购买运营商提供的VPN专线服务实现总部和分支机构间的通信需求;VPN网关为运营商所有。

在这里插入图片描述

  • 企业内部自建环境搭建VPN
    企业内部自建基于Internet环境的vpn网络,常见的有IPsev VPN、GRE VPN、L2TP VPN、SSL VPN 企业自己购买VPN网络设备,搭建自己的VPN网络,实现总部和分支机构的通信,或者是出差员工和总部的通信;

在这里插入图片描述

02 根据VPN组网方式不同进行划分
  • 远程访问VPN
    这种方式适用于出差员工拨号接入VPN的方式,员工可以在只要有Internet的地方都可以通过VPN接入访问企业内网资源。 最常见类型有:SSL VPN、L2TP VPN
  • 站点之间VPN 这种方式适合用于企业两个局域网互通的情况;例如企业的分支机构访问总部; 最常见类型有:MPLS VPN、IPsec VPN
03 根据VPN工作网络层次进行划分
  • 应用层VPN:SSL VPN
  • 网络层VPN:IPsec VPN、GRE VPN
  • 链路层VPN:L2TP2 VPN、PPTP VPN

1.3 虚拟专用网络技术

1.3.1 网络通讯隧道技术

VPN技术的基本原理其实就是用的隧道技术; 就类似于火车/地铁的轨道一样,从A站点到B站点都是直通的,不会堵车。对于乘客而言,就是专车; 隧道技术其实就是对传输的报文进行封装,利用公网建立专用的数据传输通道,从而完成数据的安全可靠传输;
在这里插入图片描述

从上图中可以看到原始报文在隧道的一端进行封装,封装后的数据在公网上传输,在隧道另一段进行解封装;
从而实现了数据的安全传输。 隧道协议通过在隧道的一端给数据加上隧道协议头,即进行封装,使这些被封装的数据能都在某网络中传输;
并且在隧道的另一端去掉该数据携带的隧道协议头,即进行解封装。

1.3.2 网络通讯安全技术

在利用VPN进行数据传输通讯时,身份认证、数据加密、数据验证可以有效保证数据传输的安全性;
01 身份认证作用 VPN网关对接入VPN的用户进行身份认证,保证接入的用户都是合法用户。
02 数据加密作用 将明文通过加密技术成密文,哪怕信息被截获窃取了,也无法识别。

注意:保证数据的加密特性,会使用到对称加密技术,和非对称加密技术。

03 数据验证作用 通过数据验证技术验证报文的完整性和真伪进行检查,防止数据被篡改。 不同VPN隧道身份认证、数据加密、数据验证区别如下表所示:在这里插入图片描述

二、专用网络开源产品

2.1 开源产品分类介绍

01 PPTP VPN

点对点隧道协议(PPTP)是由包括微软和3com等公司组成的PPTP论坛开发的一种点对点隧道协议;
基于拨号使用的PPP协议,使用PAP或CHAP之类的加密算法,或者使用Microsoft的点对点加密算法MPPE。
使用PPTP VPN的最大优势在于,无需在windows客户端单独安装客户端软件,默认就支持PPTP VPN拨号连接功能。

适用场景:适合远程的企业用户拨号到企业内部进行办公等的应用。

开源软件:pptp vpn

02 IPsec VPN

IPSec隧道模式是封装、路由与解封装的整个过程。隧道将原始数据包隐藏(或封装)在新的数据包内部;
隧道与数据保密性结合使用时,在网络上窃听通讯的人将无法获取原始数据包数据(以及原始的源和目标);

适用场景:企业异地两地总分公司或多个IDC机房之间的VPN不间断按需连接
开源软件:openswan

03 SSL VPN

SSL VPN提供了数据私密性、端点验证、信息完整性等特性; SSL独立于应用,因此任何一个应用程序都可以享受它的安全性而不必理会执行细节。http+ssl == https

适用场景:企业异地或者移动用户拨号连接总部实现VPN不间断按需连接
开源软件:openvpn

注意:属于C/S架构的软件,需要单独安装openvpn客户端与服务端。

2.2 开源产品工作原理

openvpn 工作原理–部署过程 每一步在做什么

  • 需要先关注保证数据安全传输的三要素:数据机密性 数据完整性 身份认证
  • 需要掌握秘钥加密技术应用实现;
  • 需要掌握证书概念的企业应用;

相关文章:

  • 国有企业数字化转型常见思考框架与路线图
  • golang中的内存缓存如何避免被GC扫描,BigCache实现原理
  • 浅谈微服务架构中实现单点登录
  • WHAT - HTTP keep-alive 持久性连接和内存泄漏问题
  • 何在 Vue3 中使用 Cytoscape.js 创建交互式网络图
  • 前端面试题(六)答案版
  • 内网安全[3]-代理Socks协议路由不出网后渗透通讯CS-MSF控制上线
  • 跨境电商的大麻烦——黑客攻击
  • 数据中心:AI范式下的内存挑战与机遇
  • 神经网络的卷积操作中不同的卷积核和不同的填充获得同样的输出
  • 【Linux】进程信号2——阻塞信号,捕捉信号
  • Serverless如何赋能餐饮行业数字化?乐凯撒思变之道
  • C++ Day1
  • Python 用相对名称来导入包中的子模块
  • 怎么添加网页到桌面快捷方式?
  • 【node学习】协程
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 10个最佳ES6特性 ES7与ES8的特性
  • Android Volley源码解析
  • CentOS 7 防火墙操作
  • CSS 三角实现
  • golang 发送GET和POST示例
  • Java,console输出实时的转向GUI textbox
  • MySQL-事务管理(基础)
  • Netty 4.1 源代码学习:线程模型
  • Python实现BT种子转化为磁力链接【实战】
  • session共享问题解决方案
  • spring cloud gateway 源码解析(4)跨域问题处理
  • spring学习第二天
  • SQL 难点解决:记录的引用
  • vue-router 实现分析
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 成为一名优秀的Developer的书单
  • 初识 webpack
  • 对JS继承的一点思考
  • 官方解决所有 npm 全局安装权限问题
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 判断客户端类型,Android,iOS,PC
  • 前端面试之闭包
  • 详解NodeJs流之一
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • k8s使用glusterfs实现动态持久化存储
  • Nginx实现动静分离
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • #HarmonyOS:Web组件的使用
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (pycharm)安装python库函数Matplotlib步骤
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)springboot 基于HTML5的个人网页的网站设计与实现 毕业设计 031623
  • (接上一篇)前端弄一个变量实现点击次数在前端页面实时更新
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (四) 虚拟摄像头vivi体验
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**