VPN 到家庭 LAN

VPN 到家庭 LAN

TL博士:我在 VPS 上安装 Wireguard,从 OpenWRT 上的家庭路由器连接到它,并从手机访问我的家庭子网。

如果您将个人基础设施保存在家庭服务器上,或者家里有许多 IP 控制的设备,那么您可能希望在工作场所、公共汽车、火车和地铁上访问它们。大多数情况下,对于类似的任务,IP 是从提供商处购买的,然后将每个服务的端口转发到外部。

相反,我设置了一个可以访问我的家庭 LAN 的 VPN。该解决方案的优点:

  • 透明度: 在任何情况下我都有宾至如归的感觉。
  • 缓解:设置好后就不用管了,无需考虑转发每个端口。
  • 价格区间:我已经有一个 VPS;对于此类任务,现代 VPN 的资源几乎是免费的。
  • 安全:没有什么突出的,你可以在没有密码的情况下离开 MongoDB,没有人会窃取你的数据。

一如既往,也有缺点。首先,您必须单独配置每个客户端,包括服务器端。如果您有大量想要访问服务的设备,这可能会很不方便。其次,您可能有一个工作范围相同的局域网 - 您必须解决这个问题。

我们需要:

  1. VPS(在我的例子中是 Debian 10)。
  2. OpenWRT路由器。
  3. 电话。
  4. 带有一些用于测试的 Web 服务的家庭服务器。
  5. 直臂。

我将使用的 VPN 技术是 Wireguard。这个解决方案也有优点和缺点,我不会描述它们。对于 VPN,我使用子网 192.168.99.0/24,还有我家 192.168.0.0/24.

虚拟专用服务器配置

即使是最惨的 VPS,每月 30 卢布也足够做生意了,如果你足够幸运拥有一个的话 抢夺.

我在干净的机器上以 root 身份执行服务器上的所有操作;如有必要,添加“sudo”并调整说明。

Wireguard 没有时间进入稳定状态,因此我运行 apt edit-sources 并在文件末尾的两行中添加向后移植:

deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main

该软件包以通常的方式安装: apt update && apt install wireguard.

接下来,我们生成密钥对: wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public。对参与电路的每个设备再重复此操作两次。更改另一台设备的密钥文件的路径,不要忘记私钥的安全性。

现在我们准备配置。至文件 /etc/wireguard/wg0.conf 配置放置:

[Interface] Address = 192.168.99.1/24
ListenPort = 57953
PrivateKey = 0JxJPUHz879NenyujROVK0YTzfpmzNtbXmFwItRKdHs=

[Peer] # OpenWRT
PublicKey = 36MMksSoKVsPYv9eyWUKPGMkEs3HS+8yIUqMV8F+JGw=
AllowedIPs = 192.168.99.2/32,192.168.0.0/24

[Peer] # Smartphone
PublicKey = /vMiDxeUHqs40BbMfusB6fZhd+i5CIPHnfirr5m3TTI=
AllowedIPs = 192.168.99.3/32

在该部分 [Interface] 指示机器本身的设置,并在 [Peer] — 对于那些将连接到它的人的设置。在 AllowedIPs 以逗号分隔,指定将路由到相应对等方的子网。因此,VPN 子网中“客户端”设备的对等点必须具有掩码 /32,其他一切都将由服务器路由。由于家庭网络将通过 OpenWRT 进行路由,因此 AllowedIPs 我们添加相应对等点的归属子网。在 PrivateKey и PublicKey 相应地分解为VPS生成的私钥和对等点的公钥。

在 VPS 上,剩下的就是运行打开接口并将其添加到自动运行的命令: systemctl enable --now wg-quick@wg0。可以通过命令查看当前连接状态 wg.

OpenWRT配置

此阶段所需的一切都在 luci 模块(OpenWRT Web 界面)中。登录并打开“系统”菜单中的“软件”选项卡。 OpenWRT 不在计算机上存储缓存,因此您需要通过单击绿色的更新列表按钮来更新可用软件包的列表。完成后,驶入过滤器 luci-app-wireguard 然后,查看带有漂亮依赖关系树的窗口,安装此软件包。

在“网络”菜单中,选择“接口”,然后单击现有接口列表下的绿色“添加新接口”按钮。输入姓名后(也 wg0 在我的例子中)并选择 WireGuard VPN 协议,将打开一个带有四个选项卡的设置表单。

VPN 到家庭 LAN

在“常规设置”选项卡上,您需要输入为 OpenWRT 准备的私钥和 IP 地址以及子网。

VPN 到家庭 LAN

在“防火墙设置”选项卡上,将接口连接到本地网络。这样,来自 VPN 的连接将自由进入本地区域。

VPN 到家庭 LAN

在“对等方”选项卡上,单击“唯一”按钮,然后以更新的形式填写 VPS 服务器数据:公钥、允许的 IP(您需要将整个 VPN 子网路由到服务器)。在端点主机和端点端口中,分别输入 VPS 的 IP 地址以及先前在 ListenPort 指令中指定的端口。检查要创建的路由的路由允许 IP。并且一定要填写Persistent Keep Alive,否则如果后者位于NAT之后,从VPS到路由器的隧道将会被破坏。

VPN 到家庭 LAN

VPN 到家庭 LAN

之后,您可以保存设置,然后在接口列表页面上单击“保存并应用”。如有必要,请使用“重新启动”按钮显式启动该界面。

设置智能手机

您将需要 Wireguard 客户端,它可以在 F-的Droid, Google Play 和应用商店。打开应用程序后,按加号,然后在接口部分输入连接名称、私钥(公钥将自动生成)和带有 /32 掩码的电话地址。在对等部分中,指定 VPS 公钥、地址对:作为端点的 VPN 服务器端口,以及到 VPN 和家庭子网的路由。

粗体的手机截图
VPN 到家庭 LAN

单击角落里的软盘,将其打开并...

完成

现在您可以访问家庭监控、更改路由器设置或在 IP 级别执行任何操作。

本地截图
VPN 到家庭 LAN

VPN 到家庭 LAN

VPN 到家庭 LAN

来源: habr.com

添加评论