Найти в Дзене

MikroTik + WireGuard: я сделал генератор конфигов, который работает прямо в браузере — без серверов и без риска утечки ключей

Привет. Я занимаюсь администрированием корпоративных сетей и уже несколько лет плотно работаю с MikroTik. WireGuard на RouterOS стал для меня основным инструментом организации VPN — он быстрый, простой в понимании и хорошо вписывается в инфраструктуру. Но каждый раз, когда нужно было поднять новый пул клиентов, я сталкивался с одной и той же головной болью. Настройка WireGuard на MikroTik — это не просто /ip vpn add. Нужно: Если клиентов трое — терпимо. Если десять — уже больно. Если нужно повторить через три месяца — снова вспоминаешь, как это всё работает. Я смотрел на существующие онлайн-генераторы. Они решают задачу, но у них есть один принципиальный изъян: вы отправляете приватные ключи на чужой сервер. Для домашнего использования — окей. Для корпоративной инфраструктуры — неприемлемо. Я написал генератор конфигураций MikroTik WireGuard, который работает полностью в браузере, без серверной части. Один HTML-файл, который можно скачать, положить на флешку, открыть на любом компьюте
Оглавление

Привет. Я занимаюсь администрированием корпоративных сетей и уже несколько лет плотно работаю с MikroTik. WireGuard на RouterOS стал для меня основным инструментом организации VPN — он быстрый, простой в понимании и хорошо вписывается в инфраструктуру.

Но каждый раз, когда нужно было поднять новый пул клиентов, я сталкивался с одной и той же головной болью.

Проблема, которую я решал

Настройка WireGuard на MikroTik — это не просто /ip vpn add. Нужно:

  • сгенерировать серверную пару ключей
  • для каждого клиента сгенерировать приватный ключ, публичный ключ и preshared key
  • собрать RouterOS-скрипт с правильными peer-записями
  • для каждого клиента собрать отдельный .conf-файл
  • не перепутать, какой ключ чей

Если клиентов трое — терпимо. Если десять — уже больно. Если нужно повторить через три месяца — снова вспоминаешь, как это всё работает.

Я смотрел на существующие онлайн-генераторы. Они решают задачу, но у них есть один принципиальный изъян: вы отправляете приватные ключи на чужой сервер. Для домашнего использования — окей. Для корпоративной инфраструктуры — неприемлемо.

Что я сделал

Я написал генератор конфигураций MikroTik WireGuard, который работает полностью в браузере, без серверной части. Один HTML-файл, который можно скачать, положить на флешку, открыть на любом компьютере без интернета — и пользоваться.

Никакие ключи никуда не уходят. Всё происходит локально, в JavaScript, прямо у вас на машине.

Как это работает изнутри

Для генерации ключей я использовал библиотеку TweetNaCl — это проверенная криптографическая библиотека, реализующая Curve25519, на которой и основан WireGuard.

Алгоритм генерации ключей полностью соответствует спецификации WireGuard:

priv[0] &= 248
priv[31] &= 127
priv[31] |= 64
pub = scalarmult.base(priv)

Публичный ключ вычисляется из приватного прямо в браузере. Preshared key — 32 байта случайных данных через nacl.randomBytes(). Всё кодируется в Base64 — именно в том формате, который ожидает RouterOS и стандартный WireGuard-клиент.

Что генерирует инструмент

RouterOS .rsc скрипт, который можно запустить через терминал или Winbox. Он создаёт:

  • WireGuard-интерфейс с приватным ключом сервера
  • Правила firewall filter (разрешение UDP на порт VPN + DNS от клиентов)
  • IP-адрес на интерфейсе
  • Записи peers для каждого клиента — с public-key, preshared-key, client-dns, client-keepalive, client-address и client-endpoint

Клиентские .conf-файлы — стандартный формат WireGuard, совместимый с официальным клиентом на Windows, macOS, iOS, Android.

QR-коды для каждого клиента — открываешь приложение WireGuard на телефоне, сканируешь, готово.

ZIP-архив со всем сразу — серверный скрипт + папка с конфигами клиентов.

Параметры, которые задаёшь

  • Server / Port — внешний адрес и порт WireGuard
  • Interface Name — имя интерфейса в RouterOS (например wg-clients)
  • Сеть — подсеть /24 для WireGuard-клиентов (например 10.20.0)
  • Первый IP — с какого хоста начинать нумерацию клиентов
  • Количество клиентов — таблица генерируется автоматически
  • Allowed IPs — что пускать через тоннель: 0.0.0.0/0 для полного туннелирования или конкретные подсети для сплит-тоннеля
  • DNS — адрес DNS-сервера для клиентов (можно указать внутренний роутер)

Каждый клиент в таблице — это строка с именем, IP-адресом и приватным ключом. Имена и ключи можно менять вручную, либо перегенерировать одной кнопкой.

Практический пример использования

Мне нужно было поднять WireGuard-сервер на MikroTik для удалённых сотрудников. Подсеть 10.20.0.0/24, интерфейс wg-clients, порт 51821.

Открываю генератор → заполняю поля → жму Generate → копирую RouterOS-скрипт в терминал роутера → отправляю каждому сотруднику его .conf-файл или QR-код. Весь процесс занял минут пять. Без единой ошибки в ключах и без ручной сборки конфигов.

Раньше это занимало полчаса и несколько итераций.

Почему это важно — про безопасность ключей

WireGuard-ключи — это не пароли, которые можно сменить нажатием кнопки. Это криптографические идентификаторы. Если приватный ключ клиента утечёт — злоумышленник может подключиться к вашему VPN, представившись этим клиентом.

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

Офлайн-инструмент снимает этот вопрос полностью.

Ограничения и планы

Инструмент сейчас покрывает самый распространённый сценарий — /24-подсеть, один сервер, стандартные настройки. Для большинства задач этого достаточно.

Что можно добавить в будущем: поддержка нескольких подсетей, IPv6, импорт существующих конфигов, шаблоны для типовых сценариев (road warrior, site-to-site).

Где взять

Файл генератора я выложу в открытый доступ. Это один .html-файл — скачиваете, открываете в браузере, пользуетесь. Никакой установки, никаких зависимостей, никакого интернета в момент использования.

Если вы администрируете MikroTik и периодически настраиваете WireGuard — попробуйте. Возможно, это сэкономит вам время так же, как сэкономило мне.

Если есть вопросы по настройке WireGuard на MikroTik или пожелания к функциональности — пишите в комментарии. Постараюсь ответить.

ссылка на генератор.