Налаштовуємо 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. Проблема в тому, що під час перепрошивки не зберігаються дані про модель пристрою.

Якщо ви побачили помилку «Завантажений зображення файлу не містить supported формат. Make sure that you choose 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 [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

Додати коментар або відгук