- PVSM.RU - https://www.pvsm.ru -

В большинстве случаев подключить роутер к VPN не сложно, но если вы хотите защитить целую сеть и при этом сохранить оптимальную скорость соединения, то наилучшим решением будет воспользоваться VPN-туннелем WireGuard [1].
Роутеры Mikrotik зарекомендовали себя как надежные и очень гибкие решешния, но к сожалению поддержки WireGurd на RouterOS [2] все еще нет и не известно когда появится и в каком исполнении. Недавно стало известно [3] о том, что разработчики VPN-туннеля WireGuard предложили набор патчей [4], которые сделают их ПО для организации VPN-туннелей частью ядра Linux, надеемся это поспособствует внедрению в RouterOS.
Но а пока, к сожалению, для настройки WireGuard на роутере Mikrotik необходимо сменить прошивку.
Для начала вам необходимо убедиться в том, что OpenWrt поддерживает вашу модель. Посмотреть соответствие модели ее маркетинговому названию и изображению можно на сайте mikrotik.com [5].
Перейдите на сайт openwrt.com в раздел загрузки прошивок [6].
Для данного устройства нам нужно 2 файла:
Вам нужно скачать оба файла: Install и Upgrade.

Скачайте Tiny PXE Server [9] для Windows последней версии.
Распакуйте в отдельную папку. В файле config.ini добавляете параметр rfc951=1 секцию [dhcp]. Этот параметр одинаковый для всех моделей Mikrotik.

Переходим к настройкам сети: нужно прописать статический ip адрес на один из сетевых интерфейсов вашего компьютера.

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

Запустите Tiny PXE Server от имени Администратора и выберите в поле DHCP Server сервер с адресом 192.168.1.10
На некоторых версиях Windows этот интерфейс может появиться только после подключения Ethernet. Рекомендую подключить роутер и сразу коммутировать роутер и ПК с помощью патчкорда.

Нажимаем кнопку «…» (справа внизу) и указываем папку, в которую вы скачали файлы прошивки для Mikrotik.
Выбираете файл, имя которого заканчивается на «initramfs-kernel.bin или elf»

Соединяем проводом ПК и первый порт (wan,internet,poe in,…) роутера. После этого берем зубочистку, втыкаем в отверстие с надписью «Reset».

Включаем питание роутера и ждем секунд 20, потом отпускаем зубочистку.
В течение следующей минуты в окне программы Tiny PXE Server должны появиться следующие сообщения:

Если сообщение появилось, значит вы в правильном направлении!
Восстановите настройки на сетевом адаптере и установите получение адреса динамически (по DHCP).
Подключайтесь к LAN портам роутера Mikrotik (2…5 в нашем случае) с помощью того же патчкорда. Просто переключите его из 1-го порта во 2-й порт. Откройте адрес 192.168.1.1 [10] в браузере.

Войдите в административный интерфейс OpenWRT и перейдите в раздел меню «System -> Backup/Flash Firmware»

В подразделе «Flash new firmware image» нажмите на кнопку «Выберите файл (Browse)».

Укажите путь к файлу, имя которого заканчивается на «-squashfs-sysupgrade.bin».

После этого нажмите кнопку «Flash Image».
В следующем окне нажмите кнопку «Proceed». Начнется загрузка прошивки в роутер.

!!! НИ В КОЕМ СЛУЧАЕ НЕ ОТКЛЮЧАЙТЕ ПИТАНИЕ РОУТЕРА В ПРОЦЕССЕ ПРОШИВКИ !!!

После прошивки и перезагрузки роутера вы получите Mikrotik с прошивкой OpenWRT.
Во многих устройствах Mikrotik выпуска 2019г используется микросхема памяти FLASH-NOR типа GD25Q15/Q16. Проблема в том, что при перепрошивке не сохраняются данные о модели устройства.
Если вы увидели ошибку «The uploaded image file does not contain a supported format. Make sure that you choose the generic image format for your platform.» то скорее всего проблема в 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»
Если у вас уже есть сервер с настроенным WireGuard, то можете пропустить этот пункт.
Я будут использовать для настройки персонального VPN сервера приложение MyVPN.RUN [11] о котом я уже публиковал обзор [12].
Подключитесь к роутеру по протоколу 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 [13]
Доработанная инструкция на MyVPN [14] (дополнительно доступна инструкция настройки L2TP, PPTP на стандартной прошивке Mikrotik)
OpenWrt WireGuard Client [15]
Автор: Олег
Источник [16]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/vpn/345988
Ссылки в тексте:
[1] WireGuard: https://habr.com/ru/post/432686/
[2] поддержки WireGurd на RouterOS: https://forum.mikrotik.com/viewtopic.php?t=134093
[3] стало известно: https://habr.com/ru/company/it-grad/blog/419769/
[4] набор патчей: https://git.kernel.org/pub/scm/linux/kernel/git/zx2c4/linux.git/commit/?h=jd/wireguard&id=f19531431a28c98c47462a81c8c203e9d88e493b
[5] можно на сайте mikrotik.com: https://mikrotik.com/products/group/wireless-for-home-and-office
[6] в раздел загрузки прошивок: https://openwrt.org/toh/views/toh_fwdownload?datasrt=model&dataflt%5BBrand*~%5D=mikrotik
[7] downloads.openwrt.org/releases/18.06.2/targets/ar71xx/mikrotik/openwrt-18.06.2-ar71xx-mikrotik-rb-nor-flash-16M-initramfs-kernel.bin|elf: http://downloads.openwrt.org/releases/18.06.2/targets/ar71xx/mikrotik/openwrt-18.06.2-ar71xx-mikrotik-rb-nor-flash-16M-initramfs-kernel.bin%7Celf
[8] downloads.openwrt.org/releases/18.06.2/targets/ar71xx/mikrotik/openwrt-18.06.2-ar71xx-mikrotik-rb-nor-flash-16M-squashfs-sysupgrade.bin: http://downloads.openwrt.org/releases/18.06.2/targets/ar71xx/mikrotik/openwrt-18.06.2-ar71xx-mikrotik-rb-nor-flash-16M-squashfs-sysupgrade.bin
[9] Tiny PXE Server: http://reboot.pro/files/file/303-tiny-pxe-server/
[10] 192.168.1.1: http://192.168.1.1
[11] MyVPN.RUN: https://myvpn.run/
[12] публиковал обзор: https://habr.com/ru/post/486388/
[13] Источник #1: https://global-hotspot.ru/%D0%BF%D1%80%D0%BE%D1%88%D0%B8%D0%B2%D0%BA%D0%B0-mikrotik-%D0%B2-openwrt/
[14] Доработанная инструкция на MyVPN: https://myvpn.run/faq/setup/mikrotik
[15] OpenWrt WireGuard Client: https://openwrt.org/docs/guide-user/services/vpn/wireguard/client
[16] Источник: https://habr.com/ru/post/487450/?utm_source=habrahabr&utm_medium=rss&utm_campaign=487450
Нажмите здесь для печати.