该笔记将记录:异地组网的解决方案(以 VPN 技术为主),以及常见问题处理;
认识
针对规模较大的企业来说,网络访问需求不仅仅局限于公司总部网络内。比如分公司、出差员工、合作单位等等,也需要访问公司总部的网络资源;
企业分支之间的数据传输只能依靠现有物理网络(例如 Internet 等等)。但是 Internet 存在多种不安全因素,报文容易被网络中的黑客窃取或篡改,最终造成数据泄密、重要数据被破坏等后果。直接使用共享且不安全的 Internet 传输数据,可能导致数据被盗取、篡改;
除了通过 Internet,还可以通过搭建一条物理专网连接保证数据的安全传输,但其费用会非常昂贵,且专网的搭建和维护十分困难。虽然有效保证企业数据传输安全性,但面临使用成本高、使用率低、部署不灵活等问题;
VPN(Virtual Private Network,虚拟专用网络)技术通常被用来实现该需求,其指的是在一个公共网络中实现虚拟的专用网络,从而使得用户能够基于该专用网络实现通信的技术。也可以说是种“通过共享的公共网络建立私有的数据通道,将各个需要接入这张虚拟网的网络或终端通过通道连接起来,构成一个专用的、具有一定安全性和服务质量保证的网络”;
在该虚拟网络中,VPN 用户传输私网流量。其在不改变网络现状的情况下,实现安全、可靠的连接。
通过公用网络来构建的虚拟专用网络的技术,都被称为 VPN 技术,所以 VPN 某类技术的统称。
发展历史:
组成
VPN 利用公网架构,通过隧道技术来搭建私有的网络,实现通过私网地址,访问远程地域的内部网络主机;
公共网络又经常被称为 VPN Backbone Network(VPN 骨干网),公共网络可以是 Internet,也可以是企业自建专网或运营商租赁专网;
其关键技术有:隧道技术、身份认证、数据认证、数据加密、密码管理;
隧道技术
解释:隧道两端封装、解封装,用以建立数据通道
隧道技术的基本过程是在源局域网与公网的接口处将数据作为载荷封装在一种可以在公网上传输的数据格式中,在目的局域网与公网的接口处将数据解封装,取出载荷。被封装的数据包在互联网上传递时所经过的逻辑路径被称为“隧道”。要使数据顺利地被封装、传送及解封装,通信协议是保证的核心;
VPN 技术的基本原理是利用 Tunnel(隧道)技术,对传输报文进行封装,利用 VPN Backbone Network 建立专用数据传输通道,实现报文的安全传输;
隧道的功能就是在两个网络节点之间提供一条通路,使数据能够在这个通路上透明传输。VPN 隧道一般是指在 VPN 骨干网的 VPN 节点之间建立的用来传输 VPN 数据的虚拟连接。隧道是构建 VPN 不可或缺的部分,用于把 VPN 数据从一个 VPN 节点透明传送到另一个上;
隧道通过隧道协议实现。目前已存在不少隧道协议,如 GRE、L2TP 等。隧道协议通过在隧道的一端给数据加上隧道协议头,即进行封装,使这些被封装的数据能都在某网络中传输,并且在隧道的另一端去掉该数据携带的隧道协议头,即进行解封装。报文在隧道中传输前后都要通过封装和解封装两个过程;
位于隧道两端的 VPN Gateway,通过对原始报文的“封装”和“解封装”,建立一个点到点的虚拟通信隧道;
部分隧道可以混合使用,如 GRE Over IPSec 隧道;
通信原理
隧道技术类似于一座桥,可以在底层网络(比如:Internet)之上构建转发通道,用户可以自行构建隧道网络,不需要底层网络的管理者(比如:ISP)介入;
构造
VPN 技术作为虚拟专用的隧道技术被广泛应用。按照不同的角度 VPN 可以分为多种类型。
体系结构
隧道技术的方案很多,常见的隧道技术有:MPLS,GRE,L2TP,VXLAN 等
VPDN | Virtual Private Dial-up Network
VPDN 是指利用公共网络(如 ISDN 和 PSTN)的拨号功能及接入网来实现 VPN,为企业、小型 ISP、移动办公人员提供接入服务;
VPDN 的具体实现是采用隧道技术,即将企业网的数据封装在隧道中进行传输;
VPDN 隧道协议有多种,目前使用最广泛的是 L2TP,还包含 PPTP(微软)、L2F(思科)等等;
- VPDN 采用专用的网络加密通信协议,在公共网络上为企业建立安全的 VPN;
- VPDN 通过虚拟加密隧道实现和企业总部之间的网络连接,而公共网络上其它用户则无法穿过虚拟隧道访问企业网内部的资源;
企业驻外机构和出差人员可从远程经由公共网络,
远程接入 VPN 技术 | Remote Access VPN Technology
远程访问 VPN(Remote Access VPN)是一种安全网络连接技术,可以使用户通过互联网连接到公司或组织内部网络,从而远程访问内部资源和服务。它通过加密和认证机制来保护远程连接的安全性,确保只有授权用户可以访问内部网络资源;
Remote access VPN(远程访问虚拟专用网)是一种通过公共网络(例如互联网)连接到公司或组织内部网络的安全方式。该技术允许远程用户像在办公室一样访问公司资源,例如文件、应用程序和数据库;
远程访问 VPN 通常需要使用 VPN 客户端软件,在用户设备上安装并配置该软件后,用户可以通过互联网连接到内部网络。VPN 客户端将会建立一个安全的连接,通过加密和认证机制来保护用户的数据和通信,使用户能够安全地访问内部资源和服务。远程访问 VPN 可以帮助企业和组织提高员工的灵活性和生产力,使员工可以在任何地点、任何时间访问内部资源和服务,从而提高工作效率;
Remote access VPN 的工作方式如下:远程用户使用 VPN 客户端软件连接到公司的 VPN 服务器。VPN 服务器验证用户身份并建立加密隧道,将远程用户的数据流量加密并将其传输到公司网络。在公司网络内部,VPN 服务器解密数据并将其路由到目标资源。同样,服务器也会将响应数据加密并通过加密隧道发送回到远程用户;
Remote access VPN 的优点包括:
- 安全性高:远程用户连接到公司网络时,所有数据都经过加密,从而保护了敏感信息的安全;
- 便捷性高:远程用户可以在任何地方与公司网络连接,不需要在办公室或其他特定位置;
- 可靠性高:由于远程访问 VPN 使用公共互联网,因此它具有高度可靠性,因为互联网本身是非常稳定的;
Remote access VPN 是现代企业中广泛使用的安全技术,为远程工作人员提供了安全、便捷、可靠的连接到公司网络的方式。在现网中,该类技术应用非常广泛,其用于远程出差用户接入企业内网。
SSL VPN(Secure Sockets Layer Virtual Private Network)IPsec VPN(Internet Protocol Security Virtual Private Network)
PPTP(Point-to-Point Tunneling Protocol)
L2TP(Layer 2 Tunneling Protocol)
OpenVPN(Open Source Virtual Private Network)
常见实现
不同的 VPN 技术拥有不同的特性和实现方式,常见的 VPN 技术包括 IPSec VPN、GRE VPN、L2TP VPN、MPLS VPN 等等;
# | 名称 | 加密 | 企业 | 描述 |
---|---|---|---|---|
07 | MPLS VPN | √ | ||
06 | L2TP VPN | √ | 实现二层 VPN 的隧道协议 软件实现:https://www.xelerance.com/archives/155 |
|
05 | GRE VPN | √ | ||
04 | IPsec VPN | √ | √ | 安全协议套件,用于认证和加密通过网络发送的数据包。 软件实现:Openswan、strongSwan、Libreswan |
03 | SSL VPN | √ | ||
01 | OpenVPN | √ | ||
00 | L2TP over IPsec | √ | √ | 由于 L2TP 协议不提供加密和保密,它通常与 IPsec 一起实现。 |
Gost | ||||
Hello World | ||||
N2N v2 VPN | ||||
OpenConnect VPN | ||||
Pass Wall | ||||
PPTP | ||||
RiseupVPN | https://riseup.net/en/vpn | |||
SoftEther VPN | https://en.wikipedia.org/wiki/SoftEther_VPN https://www.softether.org/ |
|||
SSR MuDB 服务器 | ||||
SSR Plus+ | ||||
SSR Python 服务器 | ||||
SSTP | Secure Socket Tunneling Protocol | |||
Tailscale | https://blog.laisky.com/p/tailscale/ | |||
udp2raw | ||||
V2ray | ||||
ZeroTier | 夸网络组建局域网 https://www.zerotier.com/ ZeroTier 内网穿透教程:https://zhih.me/zerotier-getting-started/ |
|||
TINC | 软件实现 https://www.tinc-vpn.org |
VPN 用户身份认证数据加密和验证备注
GRE 不支持支持简单的关键字验证、检验和验证可以结合 IPSec 使用,利用 IPSec 的数据加密和验证特性;
L2TP 支持基于 PPP 的 CHAP、PAP、EAP 认证不支持
IPSec 支持支持支持预共享秘钥验证或证书认证;支持 IKEv2 的 EAP 认证;
SSL 支持支持支持用户名 / 密码或证书认证;
MPLS 不支持不支持一般运行在专用的 VPN 骨干网络;
性质
VPN 能够在不改变现有网络结构的情况下,利用公网架构,来建立虚拟专用连接;
与传统的数据专网相比,VPN 具有如下优势:
1)专用(Private):用户可以为自己制定一个最符合自己需求的网络。VPN 网络是专门供 VPN 用户使用的网络,针对 VPN 用户,使用 VPN 与使用传统专网没有区别。VPN 能够提供足够的安全保证,确保 VPN 内部信息不受外部侵扰。VPN 与底层承载网络(通常为 IP 网络)之间保持资源独立,即 VPN 资源不被网络中非该 VPN 的用户所使用;
2)虚拟(Virtual):用户不再需要拥有实际的专用长途数据线路,而是利用 Internet 的长途数据线路建立自己的私有网络。VPN 用户的通信是通过公共网络进行的,而这个公共网络同时也可以被其他非 VPN 用户使用,VPN 用户获得的只是个逻辑意义上的专网;
3)廉价:利用公共网络进行信息通讯,企业可以用更低的成本连接远程办事机构、出差人员和业务伙伴;
5)支持移动业务:支持驻外 VPN 用户在任何时间、任何地点的移动接入,能够满足不断增长的移动业务需求;
6)可扩展性:由于 VPN 为逻辑上的网络,物理网络中增加或修改节点,不影响 VPN 的部署;
安全 | Security
在远端用户、驻外机构、合作伙伴、供应商与公司总部间,通过 VPN 建立可靠的连接,保证数据传输的安全性。这对实现电子商务或金融网络与通讯网络的融合特别重要。
身份认证
解释:保证接入 VPN 的操作人员的合法性、有效性
可用于部署了远程接入 VPN 的场景,VPN 网关对用户的身份进行认证,保证接入网络的都是合法用户而非恶意用户。也可以用于 VPN 网关之间对对方身份的认证;
数据认证
解释:数据在网络传输过程中不被非法篡改
通过数据验证技术对报文的完整性和真伪进行检查,丢弃被伪造和被篡改的报文;
数据加密
解释:保证数据在网络中传输时不被非法获取
将明文通过加密变成密文,使得数据即使被黑客截获,黑客也无法获取其中的信息;
密钥管理
解释:在不安全的网络中安全地传递密钥
应用
常见场景 and 技术方案
相关参考文档:
- pfSense / Common deployments / https://docs.netgate.com/pfsense/en/latest/vpn/common-deployments.html
- pfSense / Choosing a VPN solution / https://docs.netgate.com/pfsense/en/latest/vpn/selection.html
- pfSense / Remote Access Mobile VPN Client Compatibility / https://docs.netgate.com/pfsense/en/latest/vpn/ra-client-compatibility.html
远程接入
在选择 VPN 方案时,我们希望:
- 成本较低:提供员工接入、企业组网等等,我们希望降低维护成本、降低学习成本;
- 广泛支持:在 macOS Linux Windows Android iOS 中,都能够使用该技术;
- 其他考虑:成熟的、……
操作系统支持 VPN 协议
- 针对 macOS 环境,其系统内置支持的 VPN 协议:L2TP over IPSec、PPTP、Cisco IPSec
- 针对 Windows 10 环境,PPTP, L2TP/IPsec with Certificate, L2TP/IPsec with PSK, SSTP, IKEv2
- 针对 Xiaomi HyperOS 2.0.104.0 环境,IKEv2/IPSec PSK, IKEv2/IPSec RSA, IKEv2/IPSec MSCHAPv2
- 针对其他 VPN 协议,需要安装客户端软件;
广域互联 | 分支互联
VPN 技术被广泛地用在企业自建互联网(广域互联)的场景中;
通过公网 VPN 服务,实现多个内网互访(异地组网)
- 两个不同局域网拨同一 vpn 可实现互联互通吗?
- 连接公网 VPN 服务;并实现 VPN 实现两内网主机机器互通;
参考
Wikipedia/Virtual private network