在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard
在大多数情况下,将路由器连接到 VPN 并不困难,但如果您想保护整个网络并同时保持最佳连接速度,那么最好的解决方案是使用 VPN 隧道 WireGuard.

路由器 MikroTik的 事实证明是可靠且非常灵活的解决方案,但不幸的是 RouterOS 上的 WireGurd 支持 仍然没有,不知道它什么时候会出现以及表现如何。 最近 сталоизвестно 关于 WireGuard VPN 隧道的开发人员的建议 补丁集,这将使他们的 VPN 隧道软件成为 Linux 内核的一部分,我们希望这将有助于在 RouterOS 中采用。

但不幸的是,目前要在 Mikrotik 路由器上配置 WireGuard,您需要更改固件。

刷写 Mikrotik,安装和配置 OpenWrt

首先你需要确保 OpenWrt 支持你的模型。 查看模型是否与其营销名称和图像匹配 你可以访问 mikrotik.com.

去 openwrt.com 到固件下载部分.

对于这个设备,我们需要 2 个文件:

downloads.openwrt.org/releases/18.06.2/targets/ar71xx/mikrotik/openwrt-18.06.2-ar71xx-mikrotik-rb-nor-flash-16M-initramfs-kernel.bin|elf

downloads.openwrt.org/releases/18.06.2/targets/ar71xx/mikrotik/openwrt-18.06.2-ar71xx-mikrotik-rb-nor-flash-16M-squashfs-sysupgrade.bin

您需要下载这两个文件: Install 安装 и 升级.

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

1.网络设置、下载和设置PXE服务器

下载 微型 PXE 服务器 适用于 Windows 最新版本。

解压到一个单独的文件夹。 在config.ini文件中添加参数 rfc951=1 部分 [DHCP]. 此参数对于所有 Mikrotik 型号都是相同的。

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

让我们继续进行网络设置:您需要在计算机的一个网络接口上注册一个静态 IP 地址。

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

IP地址:192.168.1.10
网络掩码:255.255.255.0

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

微型 PXE 服务器 代表管理员并在字段中选择 DHCP服务器 有地址的服务器 192.168.1.10

在某些版本的 Windows 上,此界面可能仅在以太网连接后出现。 我建议连接路由器并使用跳线立即切换路由器和 PC。

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

按“...”按钮(右下角)并指定下载 Mikrotik 固件文件的文件夹。

选择名称以“initramfs-kernel.bin 或 elf”结尾的文件

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

2.从PXE服务器启动路由器

我们用电线和路由器的第一个端口(wan、internet、poe in、...)连接 PC。 之后,我们拿一根牙签,将其插入带有“重置”字样的孔中。

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

我们打开路由器的电源并等待20秒,然后松开牙签。
在接下来的一分钟内,Tiny PXE 服务器窗口中应该会出现以下消息:

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

如果出现该消息,那么您的方向是正确的!

恢复网络适配器上的设置并设置为动态接收地址(通过 DHCP)。

使用相同的跳线连接到 Mikrotik 路由器的 LAN 端口(在我们的例子中是 2…5)。 只需将其从第一个端口切换到第二个端口即可。 打开地址 192.168.1.1 在浏览器中。

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

登录OpenWRT管理界面,进入“系统->备份/闪存固件”菜单部分

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

在“Flash new firmware image”小节中,单击“Select file (Browse)”按钮。

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

指定名称以“-squashfs-sysupgrade.bin”结尾的文件的路径。

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

之后,单击“Flash Image”按钮。

在下一个窗口中,单击“继续”按钮。 固件将开始下载到路由器。

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

!!! 在任何情况下都不要在固件过程中断开路由器的电源!

在运行 OpenWrt 的 Mikrotik 路由器上设置 WireGuard

刷新并重启路由器后,您将收到带有 OpenWRT 固件的 Mikrotik。

可能出现的问题及解决方案

2019 年发布的许多 Mikrotik 设备都使用 GD25Q15 / Q16 类型的 FLASH-NOR 存储芯片。 问题是刷机时,没有保存设备型号的数据。

如果您看到错误“上传的图像文件不包含支持的格式。 请确保为您的平台选择通用图像格式。” 那么很可能问题出在闪存中。

这个很容易查:在设备终端运行命令查看型号ID

root@OpenWrt: cat /tmp/sysinfo/board_name

如果您得到“未知”的答案,则需要以“rb-951-2nd”的形式手动指定设备型号

要获取设备型号,请运行命令

root@OpenWrt: cat /tmp/sysinfo/model
MikroTik RouterBOARD RB951-2nd

收到设备型号后,手动安装:

echo 'rb-951-2nd' > /tmp/sysinfo/board_name

之后,您可以通过 Web 界面或使用“sysupgrade”命令刷新设备

使用 WireGuard 创建 VPN 服务器

如果您已经有配置了 WireGuard 的服务器,则可以跳过此步骤。
我将使用该应用程序设置个人 VPN 服务器 我的VPN.RUN 关于猫我已经 发表评论.

在 OpenWRT 上配置 WireGuard 客户端

通过 SSH 协议连接到路由器:

ssh [email protected]

安装 WireGuard:

opkg update
opkg install wireguard

准备配置(将下面的代码复制到一个文件中,用你自己的替换指定的值并在终端中运行)。

如果您使用的是 MyVPN,那么在下面的配置中您只需要更改 服务工作组 - 服务器IP WG_KEY - 来自 wireguard 配置文件的私钥和 工作组_PUB - 公钥。

WG_IF="wg0"
WG_SERV="100.0.0.0" # ip адрес сервера
WG_PORT="51820" # порт wireguard
WG_ADDR="10.8.0.2/32" # диапазон адресов wireguard

WG_KEY="xxxxx" # приватный ключ
WG_PUB="xxxxx" # публичный ключ 

# Configure firewall
uci rename firewall.@zone[0]="lan"
uci rename firewall.@zone[1]="wan"
uci rename firewall.@forwarding[0]="lan_wan"
uci del_list firewall.wan.network="${WG_IF}"
uci add_list firewall.wan.network="${WG_IF}"
uci commit firewall
/etc/init.d/firewall restart

# Configure network
uci -q delete network.${WG_IF}
uci set network.${WG_IF}="interface"
uci set network.${WG_IF}.proto="wireguard"
uci set network.${WG_IF}.private_key="${WG_KEY}"

uci add_list network.${WG_IF}.addresses="${WG_ADDR}"

# Add VPN peers
uci -q delete network.wgserver
uci set network.wgserver="wireguard_${WG_IF}"
uci set network.wgserver.public_key="${WG_PUB}"
uci set network.wgserver.preshared_key=""
uci set network.wgserver.endpoint_host="${WG_SERV}"
uci set network.wgserver.endpoint_port="${WG_PORT}"
uci set network.wgserver.route_allowed_ips="1"
uci set network.wgserver.persistent_keepalive="25"
uci add_list network.wgserver.allowed_ips="0.0.0.0/1"
uci add_list network.wgserver.allowed_ips="128.0.0.0/1"
uci add_list network.wgserver.allowed_ips="::/0"
uci commit network
/etc/init.d/network restart

这就完成了 WireGuard 设置! 现在所有连接设备上的所有流量都受到 VPN 连接的保护。

引用

来源 #1
修改了 MyVPN 上的说明 (另外还有关于在标准 Mikrotik 固件上设置 L2TP、PPTP 的说明)
OpenWrt WireGuard 客户端

来源: habr.com

添加评论