Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt
У большасці выпадкаў падлучыць роўтар да VPN не складана, але калі вы жадаеце абараніць цэлую сетку і пры гэтым захаваць аптымальную хуткасць злучэння, то найлепшым рашэннем будзе скарыстацца VPN-тунэлем WireGuard.

Роўтэры Мікратык зарэкамендавалі сябе як надзейныя і вельмі гнуткія рашэньні, але на жаль падтрымкі WireGurd на RouterOS усё яшчэ няма і не вядома калі з'явіцца і ў якім выкананні. Нядаўна стала вядома аб тым, што распрацоўшчыкі VPN-тунэля WireGuard прапанавалі набор патчаў, якія зробяць іх ПА для арганізацыі VPN-тунэляў часткай ядра Linux, спадзяемся гэта паспрыяе ўкараненню ў RouterOS.

Але а пакуль, нажаль, для налады WireGuard на роўтары Mikrotik неабходна змяніць прашыўку.

Прашываем 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

Вам трэба спампаваць абодва файлы: Усталёўваць и мадэрнізацыя.

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

1. Настройка сеткі, загрузка і настройка PXE сервера

запампуйце Tiny PXE Server для Windows апошняй версіі.

Распакуйце ў асобную тэчку. У файле config.ini дадаеце параметр rfc951=1 секцыю [dhcp]. Гэты параметр аднолькавы для ўсіх мадэляў Mikrotik.

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

Пераходзім да налад сеткі: трэба прапісаць статычны IP адрас на адзін з сеткавых інтэрфейсаў вашага кампутара.

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

IP адрас: 192.168.1.10
Маска сеткі: 255.255.255.0

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

запусціце Tiny PXE Server ад імя Адміністратара і абярыце ў поле Сервер DHCP сервер з адрасам 192.168.1.10

На некаторых версіях Windows гэты інтэрфейс можа з'явіцца толькі пасля падключэння Ethernet. Рэкамендую падлучыць роўтар і адразу камутаваць роўтар і ПК з дапамогай патчкорда.

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

Націскаем кнопку «…» (справа ўнізе) і паказваем тэчку, у якую вы спампавалі файлы прашыўкі для Mikrotik.

Выбіраеце файл, імя якога сканчаецца на "initramfs-kernel.bin або elf"

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

2. Загрузка роўтара з PXE сервера

Злучаем провадам ПК і першы порт (wan, internet, poe in,…) роўтара. Пасля гэтага бярэм калыпок, утыкаем у адтуліну з надпісам «Reset».

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

Уключаем сілкаванне роўтара і чакаем секунд 20, потым адпускаем калыпок.
На працягу наступнай хвіліны ў акне праграмы Tiny PXE Server павінны з'явіцца наступныя паведамленні:

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

Калі паведамленне з'явілася, значыць, вы ў правільным кірунку!

Аднавіце налады на сеткавым адаптары і ўсталюеце атрыманне адраса дынамічна (па DHCP).

Падлучайцеся да LAN партоў роўтара Mikrotik (2…5 у нашым выпадку) з дапамогай таго ж патчкорда. Проста пераключыце яго з 1-га порта ў 2-й порт. Адкрыйце адрас 192.168.1.1 у браўзэры.

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

Увайдзіце ў адміністрацыйны інтэрфейс OpenWRT і перайдзіце ў раздзел меню "System -> Backup/Flash Firmware"

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

У падраздзеле "Flash new firmware image" націсніце на кнопку "Абярыце файл (Browse)".

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

Пазначце шлях да файла, імя якога сканчаецца на "-squashfs-sysupgrade.bin".

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

Пасля гэтага націсніце кнопку "Flash Image".

У наступным акне націсніце кнопку "Proceed". Пачнецца загрузка прашыўкі ў роўтар.

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

!!! НІ Ў ЯКІМ РАЗЕ НЕ АДКЛЮЧАЙЦЕ ХАРЧАВАННЕ РАЎТЭРА Ў ПРАЦЭСЕ ПРАШЫЎКІ !!!

Наладжваем WireGuard на роўтары Mikrotik пад кіраваннем OpenWrt

Пасля прашыўкі і перазагрузкі роўтара вы атрымаеце Mikrotik з прашыўкай OpenWRT.

Магчымыя праблемы і іх рашэнні

У шматлікіх прыладах Mikrotik выпуску 2019г выкарыстоўваецца мікрасхема памяці FLASH-NOR тыпу GD25Q15/Q16. Праблема ў тым, што пры перапрашыўцы не захоўваюцца дадзеныя аб мадэлі прылады.

Калі вы ўбачылі памылку «Загружаны файл у файле не знойдзены ў існуючым выглядзе. Зробіце здагадку, што вы хочаце знайсці адзіны малюнак для вашай платформы.» то хутчэй за ўсё праблема ў flash.

Праверыць гэта лёгка: выконваеце ў тэрмінале прылады каманду праверкі ID мадэлі

root@OpenWrt: cat /tmp/sysinfo/board_name

І калі атрымліваеце адказ "unknown", тое трэба ўручную паказаць мадэль прылады ў выглядзе "rb-951-2nd"

Для атрымання мадэлі прылады выканайце каманду

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

Атрымаўшы мадэль прылады, які ўсталёўваецца яго ўручную:

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

Пасля гэтага можаце прашываць прыладу праз web інтэрфейс або з дапамогай каманды "sysupgrade"

Стварыце VPN сервер з WireGuard

Калі ў вас ужо ёсць сервер з настроеным WireGuard, то можаце прапусціць гэты пункт.
Я будуць выкарыстоўваць для наладкі персанальнага VPN сервера прыкладанне MyVPN.RUN аб катом я ўжо публікаваў агляд.

Настройка WireGuard Client на OpenWRT

Падключыцеся да роўтара па пратаколе SSH:

ssh [email protected]

Усталюйце 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 (дадаткова даступна інструкцыя налады L2TP, PPTP на стандартнай прашыўцы Mikrotik)
OpenWrt WireGuard Client

Крыніца: habr.com

Дадаць каментар