Добавить в корзинуПозвонить
Найти в Дзене

wg-portal: как мы подключили 80 сотрудников к корпоративному VPN за 2 минуты вместо 30

Когда в компании 80 человек и часть из них работает удалённо, ручное управление VPN превращается в источник инцидентов безопасности. Мы в IT For Prof столкнулись с этим на практике: клиент использовал WireGuard, но без централизованного управления — ключи раздавались вручную, а уволенные сотрудники сохраняли доступ к корпоративной сети. Решение нашлось в настройке wg-portal с интеграцией Active Directory. Клиент — консалтинговая компания, 80 сотрудников. Инфраструктура типичная для среднего российского бизнеса: домен Active Directory, сервер 1С, файловый сервер, внутренний портал. WireGuard уже был развёрнут — быстрый, встроен в ядро Linux, минимальная конфигурация. Но администрирование велось полностью вручную. Конфиги создавались через командную строку, передавались сотрудникам по электронной почте — включая приватный ключ в открытом виде. При увольнении VPN-доступ отзывался вручную, если вообще не забывали. Между Active Directory и VPN не было никакой связи: отдельные учётные записи
Оглавление

Когда в компании 80 человек и часть из них работает удалённо, ручное управление VPN превращается в источник инцидентов безопасности. Мы в IT For Prof столкнулись с этим на практике: клиент использовал WireGuard, но без централизованного управления — ключи раздавались вручную, а уволенные сотрудники сохраняли доступ к корпоративной сети. Решение нашлось в настройке wg-portal с интеграцией Active Directory.

Проблема: ручной WireGuard не масштабируется

Клиент — консалтинговая компания, 80 сотрудников. Инфраструктура типичная для среднего российского бизнеса: домен Active Directory, сервер 1С, файловый сервер, внутренний портал. WireGuard уже был развёрнут — быстрый, встроен в ядро Linux, минимальная конфигурация. Но администрирование велось полностью вручную.

Конфиги создавались через командную строку, передавались сотрудникам по электронной почте — включая приватный ключ в открытом виде. При увольнении VPN-доступ отзывался вручную, если вообще не забывали. Между Active Directory и VPN не было никакой связи: отдельные учётные записи, ручная синхронизация, постоянный рассинхрон.

За полгода — 3 инцидента с «мёртвыми» пирами: уволенные сотрудники сохраняли активный VPN-доступ к корпоративной сети.

Администратор не видел, кто подключён, без запуска команды в терминале. Каждый запрос нового устройства — заявка в IT-отдел и около 30 минут работы: генерация пары ключей, выбор свободного адреса из таблицы, создание конфига, добавление записи, перезагрузка интерфейса, отправка по почте.

Выбор инструмента: почему wg-portal v2

Мы рассматривали 4 варианта управления WireGuard через веб-интерфейс.

  • wg-easy — простой, но без интеграции с LDAP. С версии 14 — лицензия AGPL-3.0
  • WGDashboard — нет LDAP, нет единой авторизации через OAuth
  • wireguard-ui — архивный проект, развитие остановлено
  • wg-portal v2 — LDAP-синхронизация с автоотключением пользователей, поддержка OAuth/OIDC, WebAuthn, REST API, лицензия MIT

Ключевой критерий — интеграция с Active Directory и автоматическая синхронизация при изменениях в каталоге. Только wg-portal v2 закрывал эту задачу полностью.

Как устроено решение

Архитектура состоит из трёх компонентов: сам WireGuard как модуль ядра Linux (Ubuntu 24.04), wg-portal v2 в Docker-контейнере и контроллер домена Active Directory.

VPN-подсеть — 10.11.12.0/24, офисная сеть — 192.168.1.0/24. WireGuard слушает на порту 51820/UDP, веб-интерфейс работает на порту 8888/TCP за обратным прокси с шифрованием. Контейнер запускается в режиме host-сети — это обязательное условие, так как wg-portal управляет WireGuard напрямую через системный интерфейс.

Интеграция с Active Directory строится на нескольких параметрах:

  • Сервисная учётная запись svc-wgportal с правами только на чтение каталога
  • Группы «VPN Users» и «VPN Admins» в AD
  • Фильтр с битовой маской для исключения деактивированных учёток
  • Синхронизация каждые 15 минут
  • Параметр disable_missing: true — при удалении пользователя из группы его VPN-пиры деактивируются автоматически
  • Параметр auto_re_enable: true — при возвращении в группу доступ восстанавливается без ручного вмешательства

Мониторинг: метрики в формате Prometheus доступны на порту 8787 — объём трафика, время последнего рукопожатия, IP-адреса подключений.

Этапы внедрения

Весь процесс прошёл за 5 шагов.

1. Подготовка сервера. Ubuntu 24.04, установка wireguard-tools и Docker, фиксация конкретной версии wg-portal — v2.2.1. Фиксация версии важна: обновления могут менять формат конфигурации.

2. Базовый запуск без LDAP. Сначала настроили локальную аутентификацию, включили импорт существующих пиров (import_existing: true) и самообслуживание пользователей (self_provisioning_allowed: true). Убедились, что всё работает, прежде чем подключать AD.

3. Интеграция с Active Directory. Создали сервисную учётку, настроили параметры синхронизации, прописали фильтры групп, включили автоотключение (disable_missing: true).

4. Тестирование. Полный цикл: подключение нового сотрудника, увольнение, восстановление доступа. Ошибки LDAP диагностировали через подробный режим логирования (log_level: trace).

5. Запуск и миграция. Настроили Nginx с шифрованием, ограничили доступ к портам. Настроили резервное копирование: база SQLite, файл конфигурации, ключи. Перенесли 80 сотрудников за 2 дня — без единой заявки в IT-отдел.

Результаты

Через 3 месяца после запуска картина изменилась кардинально.

  • Подключение нового сотрудника: было ~30 минут работы администратора — стало 2 минуты самообслуживания через веб-портал с QR-кодами. Администратор только добавляет сотрудника в группу «VPN Users» в AD
  • Отзыв VPN при увольнении: было вручную и часто забывали — стало автоматически через 15 минут после деактивации в AD
  • «Мёртвые» пиры: было 3 инцидента за полгода — стало 0 за 3 месяца наблюдений
  • Видимость подключений: было только командная строка — стало веб-дашборд с данными по каждому пиру: время рукопожатия, объём данных, IP-адрес подключения
  • Привязка к Active Directory: не было — теперь полная: логин, группы, авто-деактивация

Время подключения сократилось в 15 раз. Большую часть работы выполняет сам сотрудник.

Ограничения, которые стоит знать заранее

wg-portal закрывает управление пирами, но не всю сетевую конфигурацию. Правила межсетевого экрана (PostUp/PostDown, NAT) настраиваются вручную — портал их не трогает. Настройка разрешённых адресов (AllowedIPs) на клиентских устройствах тоже ручная.

По двухфакторной аутентификации: поддерживаются WebAuthn и Passkeys, но не TOTP. Если нужны одноразовые коды — есть отдельный проект wag, он дополняет wg-portal.

Один экземпляр wg-portal управляет одним хостом. Поддержка оборудования МикроТик и pfSense — в экспериментальном статусе.

Уязвимость открытого перенаправления (GO-2026-4398) закрыта в версии 2.1.2 — обновление обязательно для всех, кто использует более старые версии.

Кому подойдёт такая схема

Решение актуально для компаний, у которых одновременно выполняется несколько условий:

  • Штат от 30 сотрудников с удалённым доступом через WireGuard
  • Домен Active Directory в инфраструктуре
  • Требование автоматического отзыва VPN при увольнении
  • Задача снизить нагрузку на IT-отдел за счёт самообслуживания
  • Необходимость аудита доступов для соответствия стандартам ИБ (ИСО 27001, PCI DSS)

Если хотя бы три пункта из пяти описывают вашу ситуацию — wg-portal с интеграцией Active Directory закроет задачу. Мы в IT For Prof внедряем такие решения под конкретную инфраструктуру: от проектирования до передачи в эксплуатацию.