WireGuard MikroTik сервер

Рассмотрим пример настройки VPN-сервера на WireGuard на оборудование MikroTik.

Для чего это решение?

Настроим безопасное подключение к корпоративным ресурсам. Это требуется для доступа к терминальному серверу, общему диску или рабочей станции в офисе.

Подключение не предназначено для обхода блокировок или доступа к запрещенным ресурсам.

Инструкция составлена для новичков, подробно и без лишних настроек.

Условия

У нас есть:

  1. Белый статический внешний адрес;
  2. MikroTik с ROS7+;
  3. Установленный WireGuard-клиент на компьютере. Это нужно для обмена ключами с сервером и создании конфигурации;
  4. Локальная сеть с адресом 192.168.51.0/24;

Процесс настройки WireGuard на MikroTik

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

Переходим на вкладку WireGuard, нажимаем на «+«.

  1. Name — это название нашего интерфейса. Оно может быть любым;
  2. Listen Port — это порт на котором будет работать WireGuard. Его тоже можно назначить любым.
  3. Поля Private Key и Public Key — не трогаем, они сгенерируются автоматически.

Это произойдет после нажатия на кнопку Apply.

Назначение адреса интерфейсу WG

Назначим IP-адрес созданному интерфейсу. Подсеть выбираем произвольно, избегая пересечения с другими. Подходящие варианты для VPN: 10.0.0.0/24, 172.16.0.0/12. В примере используем 10.15.0.0/24. Действия:

    1. Переходим на вкладку IP;
    2. Переходим в Addresses;
    3. Нажимаем на «+«;

  1. Вводим необходимую подсеть в Address;
  2. Выбираем наш интерфейс в WireGuard;
  3. При указании маски в поле Address (/24) — поле Network заполниться автоматически;

Добавить интерфейс в список LAN

Это необходимо сделать, если Вы используете стандартные правила FireWall. Это действие позволяет избежать проблем с доступом к локальной сети из-за этого правила.

  1. Переходим в раздел Interfaces;
  2. Вкладка Inteface List;
  3. Нажимаем на синий «+»;

Выбираем список LAN и наш интерфейс WireGuard, и принимаем.

Открыть порт для внешних подключений к WG

Чтобы VPN клиенты могли подключиться — необходимо открыть порт в FireWall.

В этом примере, мы указали порт на первом шаге «Создание интерфейса Wireguard» в поле Listen Port. В этом примере это порт 13231.

WireGuard работает исключительно по UDP, поэтому правило мы сделаем одно, на открытие 13231 порта по UDP в интерфейс провайдера (наш аплинк). Для этого:

  1. Переходим на вкладку IP;
  2. Открываем FireWall;
  3. Нажимаем на «+«;

  1. Выбираем Chaininput, так как у нас входящий запрос;
  2. Протокол указываем UDP, как писал выше WireGuard работает по UDP;
  3. Указываем наш порт подключение, который мы задали на шаге «Создание интерфейса» в поле Listen Port;
  4. Указываем интерфейс на котором работает интернет;

На вкладке Action разрешаем входящее подключение.

И по правилам хорошего тона: ставим комментарий к нашему правилу. Для этого нажимаем на Comment и подпишем правило.

Новое правило поднимаем в FireWall над запрещающими.

Наш интерфейс готов для подключения. Теперь необходимо создать клиентов и обменяться ключами.

Создание Peer / Обмен ключами

Для начала надо открыть WireGuard клиент (на Windows, MacOS, Linux они одинаковые).

Дальше нажимаем на «Создать пустую конфигурацию», и можно вставить вот такой шаблон:

Обратить внимание на строчку Address, это адрес VPN-клиента в нашей сети. Его надо менять для каждого клиента. Это основной недостаток использования WireGuard: назначение IP адресов и маршрутов происходит в ручном режиме.

PrivateKey тоже оставляем тот который сгенерировало приложение.

Далее:

  1. Переходим в раздел в WireGuard;
  2. переходим на вкладку Peers;
  3. Нажимаем «+«;

После этого:

  1. Указываем созданный интерфейс WireGuard;
  2. Public Key берем из WireGuard клиента (см картинку ниже);
  3. В Allowed Address указываем, куда может подключаться клиент, в данном примере никаких запретов нет, поэтому укажем, что можно, куда угодно;

Теперь нам необходимо внести публичный ключ сервера в конфигурацию. Его мы берем из интерфейса WireGuard и вставляем в конфигурацию. Как на картинке ниже.

Всегда рекомендую указывать комментарий к учетной записи пира. Чтобы было проще идентифицировать в будущем.
На мой взгляд, самый удобный формат это: логин и ip внутри сети WireGuard, например вот так: Заполняем оставшиеся поля:

  1. Addreses — это внутренний IP адрес клиента в нашей WireGuard сети;
  2. AllowedIPs — список ip адресов, куда прокладывается туннель;
  3. Endoint — куда подключаться WireGuard клиенту. Формируется так: IP адрес:порт;

Проверка

Чтобы проверить работу нашего WireGuard VPN: можно подключиться из вне нашей сети и попробовать отправить ping на Mikrotik по его ip адресу. В данном примере адрес Mikrotik — 192.168.51.1

Но пинги до роутера это не то ради чего мы это всё делали. Лучше всего проверить путем попытки входа на сервер / NAS / или веб-страничку какого нибудь принтера.

Неудобства WireGuard на Mikrotik

Основным недостатком такого VPN-сервера является ручное указание маршрутов на клиентах. Ручное указание IP адресов для клиентов. Фактически, Вы являетесь DHCP-сервером. 😂

Это не является проблемой, если у Вас задача связать несколько точек. Но, если Вы планируете использоваться VPN сервер Wireaurd на Mikrotik для доступа пользователей в сеть — тут и происходит проблема из-за ручных настроек.

Пример из практики: мы приняли на обслуживание клиента у которого использовался такой тип VPN сервера. Ниже картинка, что я увидел, когда открыл Peers

33 Peers. Нельзя было разом удалить всех и перенастроить. Пришлось по-методичному, руками, перебирать каждую строчку и выяснять, кто за ней прятался.

Повезло, что всего 33, а не 333.


Если мой материал был полезен, то можете угостить меня кофе ☕️


Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Приглашение в телеграм! 💙


Приглашаю подписаться в Telegram
У меня там новости, маленькие рассказы и полезные ссылки.
Плюс так мы никогда не потеряемся!

👉 https://t.me/bitebyteru  👈

Он будет закрыт в 11 секунд