Tutorial
Налаштування VPN WireGuard на MikroTik
Налаштуйте маршрутизатор MikroTik як клієнт WireGuard з маршрутизацією за політикою та Kill Switch у п'ять кроків на RouterOS v7.
Короткий опис WireGuard працює на маршрутизаторах MikroTik нативно починаючи з RouterOS v7 і є найшвидшим і найпростішим способом пропускати конкретні пристрої LAN через VPN-тунель. У цьому посібнику MikroTik налаштовується як клієнт WireGuard, додається маршрутизація за політикою, щоб тунель використовували лише обрані пристрої, і встановлюється blackhole-маршрут у ролі Kill Switch, який скидає трафік під час падіння тунелю замість того, щоб випускати його через ISP.
Як WireGuard працює на MikroTik?
WireGuard — це сучасний VPN-протокол, який постачається нативно у RouterOS v7: без додаткових пакетів, без контейнера, без модулів ядра, які треба компілювати. На маршрутизаторі MikroTik ви створюєте інтерфейс WireGuard, призначаєте йому IP тунелю від VPN-провайдера, додаєте peer (віддалений сервер) із його публічним ключем та endpoint, а потім за допомогою маршрутизації за політикою вирішуєте, який саме локальний трафік піде через тунель.
Результат — швидкий і перевірений криптографічний тунель, який помітно випереджає OpenVPN або L2TP/IPsec на тому ж обладнанні. Протокол спроектовано так, щоб займати кілька тисяч рядків коду замість десятків тисяч, тому він працює швидше і його легше перевіряти дослідникам безпеки.
Отримайте свої облікові дані WireGuard
Перш ніж відкривати Winbox, зберіть конфігурацію у вашого VPN-провайдера (Proton VPN, Mullvad, NordVPN або власний сервер WireGuard). Вам потрібні чотири параметри:
- Private Key: призначається інтерфейсу вашого MikroTik. Портал провайдера зазвичай надає конфіг-файл, що містить цей ключ.
- Public Key: належить віддаленому серверу. MikroTik використовує його для автентифікації peer.
- Адреса та порт Endpoint: IP або ім’я хоста сервера й UDP-порт, на якому він слухає (зазвичай
51820). - Allowed IPs: зазвичай
0.0.0.0/0для повного тунелю, через який піде весь трафік. Звузьте, якщо хочете пропускати лише окремі підмережі.
Крок 1: Створіть інтерфейс WireGuard
У Winbox відкрийте меню WireGuard і натисніть +, щоб додати новий інтерфейс. Назвіть його WG-Client, вставте Private Key, отриманий від провайдера, і натисніть OK — MikroTik автоматично виведе відповідний публічний ключ. У IP → Addresses додайте IP, який провайдер призначив вашому тунелю (наприклад, 10.66.66.2/32).
Крок 2: Налаштуйте peer
Peer — це віддалений сервер, до якого ви підключаєтесь. У вікні WireGuard перейдіть на вкладку Peers і додайте peer, що вказує на інтерфейс WG-Client:
- Public Key: публічний ключ сервера.
- Endpoint та Endpoint Port: IP і UDP-порт сервера.
- Allowed IPs:
0.0.0.0/0. Це дозволяє всьому трафіку проходити через тунель — але поки що нічого не маршрутизує. Маршрутизація відбувається на Кроці 4.
Крок 3: Маршрутизація за політикою (PBR)
Зазвичай вам не потрібно пускати через VPN увесь LAN — лише окремі пристрої, наприклад робочу станцію, якій потрібен доступ до географічно обмеженого сервісу, або медіасервер, що обробляє чутливий до приватності трафік. MikroTik вирішує це правилами Mangle, які маркують пакети, і таблицями маршрутизації, що діють за цими мітками.
- Перейдіть до
IP → Firewall → Mangle. - Додайте нове правило з
Chain: prerouting. - Встановіть Src. Address на локальний IP пристрою, який потрібно пропустити через тунель (наприклад,
192.168.88.50). - Встановіть Action на
mark routing. - Встановіть New Routing Mark на
via-wireguard. - Зніміть прапорець “Pass Through” — без цього наступні правила можуть переписати мітку і тунель зникне.
Крок 4: Маршрутизація та Kill Switch
Тепер скажіть маршрутизатору, що будь-який пакет із міткою via-wireguard має йти через тунель.
- Перейдіть до
IP → Routes. - Додайте новий маршрут:
Gateway: WG-Client,Routing Table: via-wireguard,Distance: 1. - Додайте Kill Switch — додайте другий маршрут із тією ж
Routing Table(via-wireguard), встановіть Type наblackholeі задайте більшуDistance(наприклад,10).
Blackhole-маршрут — це ключова частина. Якщо тунель WireGuard падає, звичайний маршрут зникає, blackhole бере гору, і пакети, що потрапили під правило Mangle, тихо скидаються замість повернення через ISP — без витоків DNS, без витоків IP, без нешифрованого трафіку через WAN.
Перевірте тунель
З пристрою, який ви позначили для проходу через тунель, відкрийте сайт типу ifconfig.me чи whatismyip.com. Він має показати IP VPN-сервера, а не вашого ISP. Потім на MikroTik виконайте:
/interface/wireguard/peers print statsРобочий peer показує свіжі лічильники байтів rx і tx, які зростають у міру генерації трафіку. Якщо лічильники залишаються на нулі, найчастіша причина — відсутній або неправильний endpoint port, або firewall на WAN, що скидає вихідний UDP.
Поради
- Тримайте дистанцію Kill Switch вищою за дистанцію робочого маршруту — якщо випадково поміняти їх місцями, blackhole стане основним і увесь тунельований трафік пропаде, навіть коли тунель піднятий.
- Якщо ви керуєте кількома пристроями MikroTik віддалено через той самий тунель, перегляньте наш посібник з віддаленого керування через SSTP для додаткового протоколу або WireGuard для віддаленого керування MikroTik для повного сценарію віддаленого адміністрування.
- WireGuard не намагається агресивно повторювати рукостискання, коли endpoint недоступний; якщо ваш VPN-провайдер ротує сервери, плануйте також ротувати конфігурацію endpoint.
Зробіть наступний крок
WireGuard на одному MikroTik налаштовується за двадцять хвилин. Підтримувати ту ж конфігурацію — ті ж ключі, ротовані за розкладом, те ж правило Kill Switch, ті ж мітки Mangle — на парку майданчиків уже вимагає операційної дисципліни. З’являється дрейф: інженер змінює правило Mangle для одного клієнта, маршрутизатор скидається й Kill Switch зникає, ротація ключів пропускає один пристрій.
MKController доставляє ту ж конфігурацію WireGuard, Mangle і маршрутизації на кожен MikroTik у вашому інвентарі та виділяє пристрої, що відхиляються від шаблону. Коли тунель падає або у клієнта зникає Kill Switch, панель сигналізує про це раніше, ніж клієнт помітить.