Настройка WireGuard на MikroTik

Схема WireGuard в MikroTikLab

Сегодня речь пойдёт о долгожданной настройки VPN WireGuard на Mikrotik RouterOS 7.3.1. Ранее данный тип соединения не был доступен, но с выходом «семерочки» мы теперь можем создавать данный тип туннеля.

Из основных плюсов его это:

  • UDP соединение;
  • Проходимость через NAT;
  • Гибкое управление интерфейсами;

Из минусов — это отсутствие сохранения состояния и ручное назначение адресов на интерфейсы, как клиентские, так и серверные. Да, тут стоит оговориться, что это не клиент-серверная технология, в понятии протокола есть Peer, который может как принимать соединения, так и инициировать.

То есть тут нет настройки wireguard server и client как в привычных VPN протоколах на MikroTik. В данном случае оба конца сети равнозначны.

Общая идеология строится на том, что у обоих пиров есть приватный и публичные ключи. Это обычная строка цифр и символов сгенерированная в BASE64 кодировке. Всякий раз, когда вы создаёте WireGuard интерфейс, генерируется случайная последовательность ключа. Приватный ключ никому передавать нельзя, а вот публичный нужен для настройки с двух сторон. Первой стороне нужен ключ со второй стороны, и наоборот, второй стороне нужен ключ первой.

Т.е. простыми словами, у вас нет логина и пароля. Все обоюдно, шифруется публичными ключами каждой из сторон. Давайте перейдём от слов к делу и посмотрим на схему сети.

Схема сети

В нашем случае ничего сверхъестественного, имеется провайдер со своей сетью, внутри которой мы будем и настраивать туннель. И далее внутри него, настроим маршрутизацию между площадками.

Wireguard сеть

Настройка Office-1

Открываем меню WireGuard и создаём интерфейс. Имя можно задать какое угодно, но я сразу помечу его для понимания куда он смотрит.

Создание WireGuard интерфейса

Listen Port можете поменять, а можете оставить по умолчанию. Нажимаем применить и видим наш Private и Public.

Генерация ключа шифрования

 

Далее переходим на вкладку Peers и создаём пира. Нам нужно указать:

  • На каком интерфейсе будет слушаться подключение;
  • Публичный ключ другой стороны;
  • Endpoint – публичный IP партнёра;
  • Endpoint Port – соответственно его порт;
  • Allowed Address – сети и адреса, которым разрешено «бегать» по коридору, т.е. через данный интерфейс.

Настройки пира WireGuard

 

Далеко не отходим, и подключаемся к Office-2. Здесь так же создаём peer с понятным именем в сторону первого офиса.

 

Настройка второго офиса Mikrotik WireGuard

 

Копируем Public Key с Office-2 и возвращаемся в Office-1 и вставляем в настройки пира.

 

Обмен ключами шифрования

 

На этом же девайсе (Office-1), задаём IP на WireGuard to-Office-2 172.16.30.1 – это адрес внутри VPN сети.

 

Назначение IP адреса на WireGuard в офисе 1

 

Далее нам нужно создать пир на втором роутере. Копируем публичный ключ первого и переходим к настройке. Все аналогично, но только зеркально. Сейчас все увидите.

 

Обмен ключами шифрования с Office-2

 

  • Public Key – публичный ключ партнёра, т.е. первого роутера;
  • Его публичный IP и порт;
  • Разрешённые адреса, и сети.
  • Сохраняем, применяем и не забываем назначить туннельный IP на Office-2.

Office 2 IP Address WireGuard

Проверка WireGuard

 

Запустим ping по туннельным адресам wireguard в направлении друг друга c двух микротиков.

 

Проверка туннеля WIreGuard

Обратите внимание на интерфейсы, трафик действительно идёт по нужным.

Маршрутизация

И вишенкой на торте, у нас остаётся создание маршрутов в соседние сети. Выше мы убедились, что WireGuard работает, остаётся научить наши маршрутизаторы ходить друг к другу.

Создаём маршрут во второй офис на первом mikrotik через раздел routes (а не через wireguard).

WireGuard Site-to-Site маршрутизация

 

И наоборот, во втором офисе создаём маршрут в первый.

 

Immediate Gateway в WireGuard

Обратите внимание на Immediate Gateway – после сохранения правила, интерфейс через который доступна сеть, Mikrotik подставит автоматически. Ваша задача проверить, чтобы был выбран верный.

Проверка связанности сетей

Для этого включаем наши виртуальный PCs, проверяем чтобы мы получили адреса корректные и пробуем прошпиговать друг друга.

Site to site VPN WireGuard

Все прекрасно работает. Далее вы можете ограничивать трафик на уровне фаервола, но это уже совсем другая история.

Подытожим, мы настроили WireGuard на двух роутерах MikroTik, объяснили что в данной технологии нет привычной клиент серверной архитектуры, создали маршруты и объединили два офиса (site to site). А самое главное, это делается все быстро и просто.