我们在运行OpenWrt的Mikrotik路由器上配置WireGuard

图片

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

路由器已经确立了其可靠且非常灵活的解决方案的地位,但不幸的,RouterOS上仍不支持WireGuard,并且尚不清楚何时出现以及在哪个版本中。最近,众所周知,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


您需要下载两个文件:安装升级



1.网络设置,加载和设置PXE服务器


下载适用于Windows的Tiny PXE服务器最新版本。

解压缩到一个单独的文件夹。在config.ini文件中,添加参数rfc951 = 1 section [dhcp]对于所有Mikrotik模型,此参数均相同。



我们转向网络设置:您需要在计算机的网络接口之一上注册一个静态IP地址。


IP地址:192.168.1.10网络
掩码:255.255.255.0


以Administrator身份 启动Tiny PXE Server,并在DHCP Server字段中选择地址为192.168.1.10服务器

在某些版本的Windows上,该接口仅在以太网连接后才会出现。我建议连接路由器,并立即使用跳线将路由器和PC连接起来。

图片

单击“ ...”按钮(右下角),并指出将Mikrotik固件文件下载到的文件夹。

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



2.从PXE服务器下载路由器


我们将PC线连接到路由器的第一个端口(WAN,Internet,poe in等)。之后,我们取一个牙签,将其插入刻有“ Reset”字样的孔中。



打开路由器的电源,等待20秒钟,然后松开牙签。
在下一分钟内,Tiny PXE Server窗口中将出现以下消息:



如果出现消息,则说明您的方向正确!

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

使用相同的跳线连接到Mikrotik路由器的LAN端口(在本例中为2 ... 5)。只需将其从端口1切换到端口2。在浏览器中打开地址192.168.1.1



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



在“闪存新固件映像”子区域中,单击“选择文件(浏览)”按钮。



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

图片

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

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



!!! 在固件过程中请勿断开路由器的电源!



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

可能的问题和解决方案


许多2019 Mikrotik设备使用FLASH-NOR存储芯片GD25Q15 / Q16类型。问题在于,刷新不会保存设备模型数据。

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

这很容易验证:运行命令以在设备终端中验证型号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的服务器,则可以跳过此项目。
我将使用有关cat MyVPN.RUN应用程序来配置个人VPN服务器,我已经发表了一篇评论

在OpenWRT上配置WireGuard客户端


通过SSH连接到路由器:

ssh root@192.168.1.1

安装WireGuard:

opkg update
opkg install wireguard

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

如果使用MyVPN,则在下面的配置中,只需更改WG_SERV-服务器的IP,WG_KEY -wireguard配置文件中的私钥,以及WG_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客户端

Source: https://habr.com/ru/post/undefined/


All Articles