В большинстве случаев подключить роутер к 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. Рекомендую подключить роутер и сразу коммутировать роутер и ПК с помощью патчкорда.
Нажимаем кнопку «…» (справа внизу) и указываем папку, в которую вы скачали файлы прошивки для 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».
После этого нажмите кнопку «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
Voiddancer
Тут вопрос, какие подводные камни у опенврт на железе микротика? как с производительностью?
gecube
Не только. Вообще не понимаю смысла шить openwrt в микротик. Хорошо раньше было — был MetaROUTER, но вероятно правильно, что его выпилили
develop7
в routeros 6.42.2 metarouter есть
gecube
Как бы текущая 6.45.8 + на подходе 7 + есть микроты, где метароутера в принципе не было (типа CHR)
AcidVenom
А на кой он на CHR? Или на CSR?
develop7
Поправочка, 6.46.3 в stable. В любом случае, metarouter не выглядит выпиленным.