TranslateProject/translated/tech/20210517 Use open source tools to set up a private VPN.md
2021-06-29 10:26:10 +08:00

13 KiB
Raw Blame History

使用开源工具创建私有 VPN

使用 OpenWRT 和 Wireguard 在路由器上创建自己的虚拟专用网络。 拼写为 “VPN”

通过计算机网络从一个地方到另一个地方可能是一件棘手的事情。除了知道正确的地址和打开正确的端口之外,还有安全问题。 对于 LinuxSSH 是一种流行的默认设置,虽然您可以使用 SSH 做很多事情,但它仍然“只是”一个安全外壳(实际上,这就是 SSH 代表的)。用于加密流量的更广泛的协议是 VPN它创建了一个独特的两点之间的虚拟专用网络。有了它您可以登录到另一个网络上的计算机并使用它的所有服务文件共享、打印机等等就像您坐在同一个房间里一样并且全部的数据都是从点到点加密的。

通常,为了使 VPN 连接成为可能,进入每个网络的网关必须接受 VPN 流量,并且必须侦听目标网络上的某些计算机的 VPN 流量。但是,可以运行您自己的运行 VPN 服务器的路由器固件,使您能够连接到目标网络,而无需担心转发端口或完全考虑内部拓扑。我最喜欢的固件是 OpenWrt在本文中我将演示如何设置它以及如何启用 VPN。

什么是 OpenWrt

OpenWrt 是一个使用 Linux 面向嵌入式设备的开源项目。它已经存在超过 15 年,拥有庞大而活跃的社区。

使用 OpenWrt 的方法有很多种,但它的主要用途是在路由器中。它提供了一个具有包管理功能的完全可写的文件系统,并且由于它是开源的,您可以查看和修改代码并为生态系统做出贡献。如果您想对路由器进行更多控制,这就是您想要使用的系统。

OpenWrt 支持很多路由器,包括 CiscoASUSMikroTikTeltonika NetworksD-LinkTP-linkBuffaloUbiquiti 等知名品牌和 许多其他品牌

Wireguard 是什么?

Wireguard 是开源虚拟专用网络 (VPN) 软件,它比 OpenVPN 等其他选项更快、更简单且更安全。它使用最先进的密码学ChaCha20 用于对称密码学;用于密钥协商的曲线 25519使用椭圆曲线和用于散列的 BLAKE2 。这些算法的设计方式在嵌入式系统上是高效的。WIreguard 也可用于各种操作系统平台

先决条件

对于这个项目,你需要:

  • Teltonika RUT955 或支持 OpenWrt 的其他路由器
  • 用于从外部网络连接到 VPN 的公网 IP 地址
  • 一部安卓手机

安装 OpenWrt

首先,下载路由器的 OpenWrt 镜像。使用固件选择器检查 OpenWrt 是否支持您的路由器并下载固件。输入您的路由器型号,将显示选项:

OpenWRT 固件选择器

(Lukas Janenas, CC BY-SA 4.0)

使用搜索框右侧的下拉输入选择要下载的固件版本。

下载出厂镜像。

下载出厂镜像

(Lukas Janenas, CC BY-SA 4.0)

许多路由器允许您从 Web 界面刷入未经授权的固件,但 Teltonika Networks 不允许。要将 OpenWrt 固件刷入这样的路由器,您需要使用引导加载程序。为此,请按照下列步骤操作:

  1. 拔掉路由器的电源线。
  2. 按住重置按钮。
  3. 插入路由器的电源线。
  4. 插入电源线后,继续按住重置按钮 5 到 8 秒。
  5. 将计算机的 IP 地址设置为 192.168.1.15,将网络掩码设置为 255.255.255.0
  6. 使用以太网电缆通过 LAN 端口连接路由器和计算机。
  7. 打开网页浏览器并输入192.168.1.1:/index.html
  8. 上传并刷写固件。

刷机过程可能占用三分钟。之后,您应该可以通过在浏览器中输入 192.168.1.1 来访问路由器的 Web 界面。 默认情况下没有设置密码

OpenWrt 授权

(Lukas Janenas, CC BY-SA 4.0)

配置网络连接

网络连接是必要条件。如果您的 Internet 服务提供商 (ISP) 使用 DHCP 自动分配您的 IP 地址,您只需将以太网电缆插入路由器的 WAN 端口。

如果您需要手动分配 IP 地址,导航至 Network → Interfaces。选择 Edit 编辑您的 WAN 接口。从 Protocol 字段中,选择 Static address,然后选择 Switch protocol

手动分配 IP 地址

(Lukas Janenas, CC BY-SA 4.0)

IPv4 address 字段中,输入您的路由器地址。设置 IPv4 netmask 以匹配您的网络子网;输入您将用于连接到网络的 IPv4 gateway 地址; 并在 Use custom DNS servers 字段中输入 DNS 服务器的地址。保存配置。

就是这样!您已成功配置 WAN 接口以获得网络连接。

安装必要的包

默认情况下,固件不包含很多包,但 OpenWrt 有一个选择可安装的包管理器。导航到 System → Software 并通过选择 Update list... 更新您的包管理器。

OpenWrt 包管理器

(Lukas Janenas, CC BY-SA 4.0)

在过滤器输入中,键入 Wireguard,等待系统找到所有包含该关键字的包。找到并安装名为 luci-app-wireguard 的包。

luci-app-wireguard 包

(Lukas Janenas, CC BY-SA 4.0)

该软件包包括一个用于配置 Wireguard 的 Web 界面,并安装 Wireguard 所必需的所有依赖项。

如果您在安装 Wireguard 软件包之前收到一个软件包丢失的警告并且在存储库中找不到,请忽略它并继续。

接下来,找到并安装名为 luci-app-ttyd 的包。这将用于稍后访问终端。

安装这些软件包后,重新启动路由器以使更改生效。

配置 Wireguard 接口

接下来,创建 Wireguard 接口。导航到 Network → Interfaces 并选择左下角的 Add new interface...。在弹出窗口中,输入您想要的接口名称,从下拉列表中选择 Wireguard VPN,然后选择右下角的 Create interface

创建 Wireguard 接口

(Lukas Janenas, CC BY-SA 4.0)

在新弹出的窗口中,选择 Generate Key 为 Wireguard 接口生成私钥。在 Listen Port 字段中,输入所需的端口。我将使用默认的 Wireguard 端口,51820。在 IP Addresses 字段中,分配将用于 Wireguard 接口的 IP 地址。在这个例子中,我使用了 10.0.0.1/24。数字 24 表明我的子网的大小。

创建 Wireguard 接口

(Lukas Janenas, CC BY-SA 4.0)

保存配置并重启接口。

导航到 Services → Terminal,登录到 shell然后输入命令 wg show。您将看到有关 Wiregaurd 接口的一些信息,包括其公钥。复制公钥——稍后您将需要它来创建对等点。

Wireguard 公钥

(Lukas Janenas, CC BY-SA 4.0)

配置防火墙

导航到 Network → Firewall 并选择 Traffic Rules 选项卡。在页面底部,选择 Add。在弹出窗口的 Name 字段中,为您的规则命名,例如 Allow-wg。接下来,将 Destination zoneLan 更改为 Device,并将 Destination port 设置为 51820。

Wireguard 防火墙设置

(Lukas Janenas, CC BY-SA 4.0)

保存配置。

手机上配置 Wireguard

从 Google Play 在您的手机上安装 Wireguard 应用程序。安装后,打开应用程序并从头开始创建一个新接口。在 Name 字段中,输入要用于接口的名称。在 Private key 字段中,按右侧的双箭头图标生成密钥对。您将需要上面的公钥来在您的手机和路由器之间创建一个对等点。在 Addresses 字段中,分配您将用于通过 VPN 访问电话的 IP 地址。我将使用 10.0.0.2/24。在 Listen port中,输入端口;我将再次使用默认端口。

在 Android 上设置 VPN 接口

(Lukas Janenas, CC BY-SA 4.0)

保存配置。

要向配置中添加对等点,请选择 Add peer。在 Public key 字段中,输入路由器的 Wireguard 公钥。在 Endpoint 字段中,输入路由器的公共 IP 地址和端口,以冒号分隔,例如 12.34.56.78:51820。在 Allowed IP 字段中,输入要通过 Wireguard 接口访问的 IP 地址。 (您可以输入路由器的 VPN 接口 IP 地址和 LAN 接口地址。IP 地址必须用逗号分隔。您还可以定义子网的大小。

在 Android 上添加 VPN 对等点

(Lukas Janenas, CC BY-SA 4.0)

保存配置。

配置中还剩下最后一步:在路由器上添加一个对等点。

在路由器上添加一个对等点

导航到 Network → Interfaces 并选择您的 Wireguard 接口。转到 Peers 选项卡并选择 Add peer。 在 Description 字段中,输入对等方的名称。在 Public Key 字段中输入手机的 Wireguard 接口公钥,在 Allowed IPs 字段中输入手机的 Wireguard 接口 IP 地址。选中 Route Allowed IPs 复选框。

在路由器上添加一个对等点

(Lukas Janenas, CC BY-SA 4.0)

保存配置并重启接口。

测试配置

在手机上打开网络浏览器。在 URL 栏中,输入 IP 地址 10.0.0.1192.168.1.1。您应该能够访问路由器的网站。

从 Android 登录 VPN

(Lukas Janenas, CC BY-SA 4.0)

您自己的 VPN

这些天有很多 VPN 服务商在做广告,但是拥有和控制自己的基础设施还有很多话要说,尤其是当该基础设施仅用于提高安全性时。无需依赖其他人为您提供安全的数据连接。使用 OpenWrt 和 Wireguard您可以拥有自己的开源 VPN 解决方案。


via: https://opensource.com/article/21/5/open-source-private-vpn

作者:Lukas Janėnas 选题:lujun9972 译者:stevenzdg988 校对:校对者ID

本文由 LCTT 原创编译,Linux中国 荣誉推出