在運行 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

您需要下載這兩個文件: 安裝 и 升級.

在運行 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 客戶端

來源: www.habr.com

添加評論