虚拟专用网络-VPN
虚拟网络概述
虚拟网络诞生
早期在没有 VPN 之前,企业的总部和分支机构之间的互通都是采用运营商提供的 Internet 互联网尽心通信,但是在 Internet 互联网中通讯往往是不安全的,通信的内容可能被窃取、修改等,从而造成安全隐患或者安全事件
所以就需要有一种技术既能实现总部和分支机构建的互通,也能保证数据传输的安全性。早期很多大型企业会联合运营商构建物理专线网络,在总部和分支机构之问拉条专线,只传输自己的业务;但是这个专线的费用确实不是一般公司能够承受的,而且维护也很困难
那么有没有成本比较低的解决方案呢?
因此,就引出了 VPN 技术,VPN 通过在现有的 Internet 网络中构建专用的虚拟网络,实现企业总部和分支机构的通信;解决了互通、安全、成本的问题
虚拟网络介绍
VPN(全称 VirtualPrivate Network)虚拟专用网络,是依靠 ISP 和其他的 NSP,在公共网络中建立专用的数据通信网络的技术;可以为企业之间或者个人与企业之间提供安全的数据传输隧道服务
在 VPN 中任意两点之间的连接并没有传统专网所需的端到端的物理链路,而是利用公共网络资源动态组成的
可以理解为通过私有的隧道技术在公共数据网络上模拟出来的和专网有同样功能的点到点的专线技术
所谓虚拟是指不需要去拉实际的长途物理线路,而是借用了公共 Internet 网络实现
优势
安全性高
在远端用户、驻外机构、合作伙伴、供应商与公司总部之间建立可靠的连接,保证数据传输的安全性
费用低廉
利用公共网络进行信息通讯,企业可以用更低的成本连接远程办事机构、出差人员和业务伙伴
支持移动
支持出差VPN用户在任何时间、任何地点的移动接入,能够满足不断增长的移动业务需求
可扩展性
由于 VPN 为逻辑上的网络,物理网络中增加或修改节点,不影响 VPN 的部署
虚拟网络分类
根据 VPN 建设单位不同进行划分
租用运营厂商专线搭建 VPN
运营商的虚拟专线网络大多数都是使用 MPLS VPN
企业内部自建环境搭建 VPN
企业内部自建基于 Internet 环境的 VPN 网络,常见的有 IPSeV VPN、GRE VPN、L2TP VPN、SSL VPN
根据 VPN 组网方式不同进行划分
远程访问 VPN
这种方式透用于出差员工拨号接入 VPN 的方式,员工可以在只要有 Internet 的地方都可以通过 VPN 接入访问企业内网资源。最常见类型有:SSL VPN、L2TP VPN
站点之间VPN
这种方式适合用于企业两个局域网互通的情况。最常见类型有:MPLS VPN、IPsec VPN
根据 VPN 工作网络层次进行划分
- 应用层 VPN:SSL VPN
- 网络层 VPN:IPSeCVPN、GREVPN
- 链路层 VPN:L2TP2VPN、PPTPVPN
虚拟专用网络技术
网络通讯隧道技术
VPN 技术的基本原理其实就是用的隧道技术,就类似于火车/地铁的轨道一样,从 A 站点到 B 站点都是直通的,不会堵车。对于乘客而言,就是专车
隧道技术其实就是对传输的报文进行封装,利用公网建立专用的数据传输通道,从而完成数据的安全可靠传输
隧道协议通过在隧道的一端给数据加上隧道协议头,即进行封装,使这些被封装的数据能都在某网络中传输;井且在隧道的另一端去掉该数据携带的隧道协议头,即进行解封装
网络通讯安全技术
在利用 VPN 进行数据传输通讯时,身份认证、数据加密、数据验证可以有效保证数据传输的安全性
身份认证作用
VPN 网关对接入 VPN 的用户进行身份认证,保证接入的用户都是合法用户
数据加密作用
将明文通过加密技术成密文,哪怕信息被截获窃取了,也无法识别
说明:保证数据的加密特性,会使用到对称加密技术,和非对称加密技术
数据验证作用
通过数据验证技术验证报文的完整性和真伪进行检查,防止数据被篡改
VPN类型 | 身份认证 | 数据加密和验证 | 备注 |
---|---|---|---|
GRE | 不支持 | 支持,简单的关键词验证、校验 | 可以结合 IPsec 使用 利用 IPsec 的数据假面和验证特性 |
L2TP | 支持,基于 PPP 的 chap pap eap 认证 | 不支持 | 可以结合 IPsec 使用 利用 IPsec 的数据假面和验证特性 |
IPsec | 支持 | 支持 | 支持预共享密钥验证或证书认证 支持 IKEv2 的 EAP 认证 |
SSL | 支持 | 支持 | 支持用户名/密码或证书认证 |
MPLS | 不支持 | 不支持 | 一般运行在专用的 VPN 骨干网络 |
专用网络开源产品
开源产品分类
PPTP VPN
点对点隧道协议(PPTP)是包括微软和 3com 等公司组成的 PPTP 论坛开发的一种点对点隧道协议
基于拨号使用的 PPP 协议,使用 PAP 或 CHAP 之类的加密算法,或者使用 Microsoft 的点对点加密算法 MPPE
使用 PPTP VPN 的最大优势在于,无需在 windows 客户端单独安装客户端软件,默认就支持 PPTP VPN 拨号连接功能
适用场景:适合远程的企业用户拨号到企业内部进行办公等的应用
开源软件:pptp vpn
IPsec VPN
IPSec 隧道模式是封装、路由与解封装的整个过程。隧道将原始数据包隐藏(或封装)在新的致据包内部
隧道与数据保密性结合使用时,在网络上窃听通讯的人将无法获取原始数据包数据(以及原始的源和目标)
适用场景:企业异地两地总分公司或多个IDC机房之问的VPN不问断按需连接
开源软件:openswan
SSL VPN
SSL VPN 提供了数据私密性、端点验证、信息完整性等特性
SSL独立于应用,因此任何一个应用程序都可以享受它的安全性而不必理会执行细节
适用场景:企业异地或者移动用户拔号连接总部实现VPN不问断按需连接
开源软件:openvpn
说明:属于C/S架构的软件,需要单独安装 openvpn 客户端与服务端
工作原理
SSL VPN双向认证(Mutual SSL/TLS Authentication)是一种严格的身份验证机制,要求客户端和服务器双方均提供并验证对方的数字证书,确保通信双方身份均合法
- 单向认证:仅服务器向客户端提供证书(常见于 HTTPS 网站)
- 双向认证:客户端和服务器均需提供证书,并验证对方证书的合法性(如有效期、签发者、吊销状态等)
openvpn 需要有如下文件:
- ca.crt(证书颁发机构)
- ca.key(证书私钥文件)
- server.key(服务端私钥文件)
- server.crt(服务端证书文件)
- client.key(客户端私钥文件)
- client.crt(客户端证书文件)
证书生成与配置:
- 服务器端:导入客户端证书的根CA证书
- 客户端:导入服务器证书的根CA证书
认证交互阶段(SSL/TLS握手):
Client Hello -> Server Hello
客户端发起连接,声明支持的 TLS 版本、密码套件
服务器发送自身证书链到客户端
客户端验证该证书是否由可信CA签发,检查证书是否过期、域名/IP是否匹配
客户端发送自身证书链
服务器验证该证书是否由可信CA签发,检查用户标识是否在可授权列表,若启动硬件绑定检查MD5值
密钥交换与会话建立
客户端生成预主密钥,用服务器公钥加密后发送
双方基于预主密钥生成会话密钥,用户后序数据加密
虚拟专用网络部署
架构
主机名称 | 地址规划(外网) | 地址规划(内网) | 系统环境 |
---|---|---|---|
vpnserver | 192.168.30.101/24 | 172.16.30.101/24 | centos7.9 |
vpnclient | 192.168.30.1/24 | window10 | |
webserver | N/A | 172.16.30.102/24 | centos7.9 |