image

В большинстве случаев подключить роутер к VPN не сложно, но если вы хотите защитить целую сеть и при этом сохранить оптимальную скорость соединения, то наилучшим решением будет воспользоваться VPN-туннелем WireGuard.

Роутеры Mikrotik зарекомендовали себя как надежные и очень гибкие решешния, но к сожалению поддержки WireGuard на 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


Вам нужно скачать оба файла: Install и Upgrade.



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


Скачайте Tiny PXE Server для 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. Рекомендую подключить роутер и сразу коммутировать роутер и ПК с помощью патчкорда.

image

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

Выбираете файл, имя которого заканчивается на «initramfs-kernel.bin или elf»



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


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



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



Если сообщение появилось, значит вы в правильном направлении!

Восстановите настройки на сетевом адаптере и установите получение адреса динамически (по DHCP).

Подключайтесь к LAN портам роутера Mikrotik (2…5 в нашем случае) с помощью того же патчкорда. Просто переключите его из 1-го порта во 2-й порт. Откройте адрес 192.168.1.1 в браузере.



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



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



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

image

После этого нажмите кнопку «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»

Создайте VPN сервер с WireGuard


Если у вас уже есть сервер с настроенным WireGuard, то можете пропустить этот пункт.
Я будут использовать для настройки персонального VPN сервера приложение MyVPN.RUN о котом я уже публиковал обзор.

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


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