现代互联网的主要特征是它的持续可用性。无需在本地存储数据,可通过网络快速访问。如果这些数据在不可预测的时刻突然变得不可用,则会出现更多问题。大多数开发人员远程工作,如果他们来自某些部分,可能会缺乏资源。在本文中,我们将了解如何为您的 网站开发团队设置 VPN。
常见的互联网问题
互联网资源的不可访问性实际上意味着什么?
- 一些库没有下载 - 项目的开发环境不会发生。这是主要和最大的问题!
- Zoom、钉钉、微信不起作用 - 您将无法联系同事。
- 某些站点不可用,例如 GitHub - 无法发布您的作品。
这些并不是所有可能的例子,但即使是它们也会显着降低团队的生产力。
来自黑客?
在实践中,上述限制通常由 Internet 提供商实施。
但有时,提供者会变成黑客。例如,出于某种未知的原因,他们可以阻止特定 TCP 端口上的流量或修改未加密的 http 流量并更改页面的 html 代码、添加广告。
该怎么办?
一旦问题的规模明确表明应该在公司层面解决,而不是任由团队成员摆布,就可以使用 VPN 技术。
VPN 是一个虚拟专用网络。这是一组技术的名称,允许您基于现有物理计算机网络创建虚拟的、不存在的物理(覆盖)计算机网络。
这为增加隐私提供了额外的机会。在物理网络中,作为第一个近似值,网络交换中的所有参与者、所有路由器等都可以使用您的流量。虚拟网络中没有其他参与者,只有您和您连接的点。如果您要为您的网站 开发团队设置一个,这就是一个 VPN 服务器。你们两人之间正在铺设一条加密隧道。
TUN 虚拟网络接口是在客户端计算机和服务器上创建的。加密数据交换直接发生在它们之间。您的数据受到有效保护,免受中间人 (MITM) 攻击。没有人可以物理访问您的流量所经过的设备,可以拦截或替换您的信息。
它还允许您访问家庭网络上不可用但可从 VPN 服务器访问的资源。
使用 VPN 技术,客户端成为子网的一部分,而服务器是其中的一部分。并且可以访问这个子网的资源。这可用于绕过限制并解决需要远程安全连接到子网的任何其他问题。
选择 VPN 实施
决定就是不做。有几种常见的免费 VPN 技术实现。获得正确的 VPN 后,您还可以选择什么
IPsec 是一组用于安全数据传输的协议。它出现在 90 年代中期。它庞大而灵活,但难以配置且级别低。对于某些目的来说太复杂了。WireGuard 是一个年轻的项目(2015 年),旨在快速准备工作。传输数据的速度可能比不同的 VPN 更快,使用更现代的加密协议——跨平台,可在所有主要系统上使用。缺点与优点相同。为确保快速简便的安装,在程序的核心中做出了许多低级决策。例如,使用 UDP 协议,这可能不是对所有人都有效。选择启动和使用方式
手动
最明显的方法是租用 VPS,通过 SSH 连接并按照指南创建服务器。由于需要手动移动许多命令和文件,因此这是一个相当漫长的过程。使用此方法,每次创建新服务器时,您都必须重新创建。为了节省时间,您可以使用配置管理系统或容器化系统。配置管理系统是允许您自动配置远程服务器(puppet、ansible 等)的软件。这种方法的优点是您可以通过几个命令配置远程 VPN 服务器。并且所有配置、配置模板都以文本格式明确放置在控制机器上。您可以自己创建部署脚本,也可以使用现成的脚本,例如在 GitHub 上。在容器化系统中采用了一种稍微不同的方法。最常见的此类虚拟容器化系统是 docker。在远程服务器上安装带有 VPN 的 docker 容器甚至比通过 ansible 安装服务器更快,这是一个加分项。但是,可用配置列表可能会受到图像开发人员的限制。图像是二进制文件,因此如果您需要修复一些奇特的配置,它可能无法工作。服务器架构
首先,正如已经提到的,VPN 技术可用于连接到,例如,通过属于该子网一部分的计算机以及同时通过 VPN 服务器连接到封闭子网。如果您的子网上有宝贵的资源,您不希望任何人连接到 VPN 服务器。为此,大多数 VPN 通常将其设置为单独的机器,根本不链接到任何网络,也许放在安全的地方(不是开玩笑)。并且签名和签名证书的请求被传输到可移动媒体。服务器启动
要运行 ansible 脚本,您需要在您的计算机上安装 ansible,租用 Debian/Ubuntu 虚拟服务器并配置通过 SSH 访问服务器。租用服务器时,请记住,某些服务不允许您创建 tun 接口或执行数据包转发。请在购买前检查这一点。与服务器的所有交互都由三个命令执行:
1. 运行创建服务器和证书颁发机构的脚本。
2. 注册新用户。
3. 按客户名称吊销证书。绕过阻塞的方法的发展在许多方面类似于自然界中捕食者和猎物之间的关系。对于每一个新动作,都有一个反动作。VPN 连接也不例外。
使用 VPN 时,您可以使用各种网络资源。但是,由于所有数据都从 VPN 服务器通过隧道传输给您,因此对于提供商而言,您似乎只使用一个 IP 地址交换数据。