VPN

Модуль организует защищённое VPN-подключение MikoPBX к удалённой сети. Поддерживает OpenVPN, WireGuard (в том числе с обфускацией трафика) и Tailscale на платформах x86_64 и arm64.

Модуль VPN позволяет подключить MikoPBX к удалённой сети по защищённому туннелю. Это удобно, когда станция стоит за NAT и к ней нужен доступ извне или когда требуется объединить несколько площадок в одну сеть.

MikoPBX выступает в роли VPN-клиента: вы готовите конфигурацию на стороне VPN-сервера, а затем переносите её в модуль. Модуль сам поднимает туннель после настройки сети и при загрузке станции, следит за его состоянием и автоматически переподнимает соединение, если оно оборвалось.

Поддерживаемые типы VPN

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

Тип
Назначение
Особенности

WireGuard

Современный быстрый туннель

Минимум настроек, высокая скорость, шифрование ChaCha20‑Poly1305

WireGuard (обфускация)

WireGuard с обфускацией трафика

Те же возможности WireGuard, плюс изменение сигнатуры трафика

OpenVPN

Универсальный совместимый туннель

Поддержка TUN/TAP, в том числе устаревших шифров (BF‑CBC, DES, RC4)

Tailscale

Управляемая mesh‑сеть

Авторизация по ключу, работа через облако Tailscale или собственный Headscale

Бинарные файлы всех VPN-клиентов (включая модуль ядра для режима обфускации) поставляются прямо в составе модуля и собраны статически под архитектуры x86_64 и arm64. Устанавливать что-либо на саму станцию вручную не требуется.

Создание подключения

  1. Убедитесь, что модуль VPN установлен и включён в разделе «Управление модулями».

  2. Откройте настройки модуля и добавьте новое подключение.

  3. Заполните общие поля и в зависимости от выбранного типа — конфигурацию или параметры Tailscale.

  4. Включите подключение и сохраните изменения. Туннель поднимется автоматически.

Каждое соединение описывается единым набором общих полей:

Поле
Назначение

Название подключения

Произвольное имя для удобства (обязательное поле).

Тип VPN

OpenVPN, WireGuard (в том числе с обфускацией) или Tailscale.

Конфигурация

Текст конфигурационного файла VPN (для Tailscale заменяется отдельными полями). Обязательное поле.

Описание

Необязательный комментарий.

Включено

Поднимать ли туннель. Выключенное соединение хранится, но не запускается.

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

WireGuard

WireGuard — это компактный современный протокол: текстовый конфиг, высокая скорость и стойкое шифрование. Подходит как основной вариант для большинства сценариев.

Пример конфигурации

Опции

Параметр
Секция
Назначение

PrivateKey

[Interface]

Приватный ключ MikoPBX. Уникален, хранится только на станции. Обязателен.

Address

[Interface]

IP-адрес и подсеть станции внутри туннеля.

PublicKey

[Peer]

Открытый ключ VPN-сервера. Обязателен.

Endpoint

[Peer]

Адрес и порт сервера (IP:порт, по умолчанию 51820). Обязателен.

AllowedIPs

[Peer]

Подсети, трафик в которые направляется в туннель. Обязателен.

PersistentKeepalive

[Peer]

Интервал keepalive (сек). Нужен, когда станция за NAT (рекомендуется 25).

Директива DNS = … автоматически удаляется при запуске: в MikoPBX нет resolvconf, и её наличие помешало бы поднять интерфейс.

Обязательные секции и параметры: [Interface] с PrivateKey, [Peer] с PublicKey, AllowedIPs и Endpoint.

WireGuard с обфускацией

Это вариант WireGuard с обфускацией трафика: за счёт служебного «шума» и модификации заголовков сигнатура потока отличается от стандартного WireGuard. Скорость остаётся близкой к WireGuard.

Пример конфигурации

Опции обфускации

К стандартным параметрам WireGuard добавляются параметры маскировки. Все они должны точно совпадать со значениями на сервере, иначе туннель не поднимется.

Параметр
Назначение

Jc

Количество «мусорных» пакетов, добавляемых для зашумления потока.

Jmin / Jmax

Минимальный и максимальный размер случайного джиттера.

S1 / S2

Размеры «магических» заголовков, маскирующих служебные пакеты.

H1H4

Числовые маркеры заголовков, изменяющие сигнатуру пакетов относительно стандартного WireGuard.

Обязательные параметры: все обязательные параметры WireGuard плюс параметр обфускации Jc.

OpenVPN

OpenVPN — наиболее универсальный вариант: работает с большинством существующих серверов, поддерживает режимы TUN и TAP, аутентификацию по сертификатам или по статическому ключу. Конфигурация задаётся в формате обычного .ovpn-файла.

Пример конфигурации (статический ключ)

Опции

Директива
Назначение

dev tun / dev tap

Тип интерфейса: tun (уровень IP) или tap (уровень Ethernet). Обязательна.

remote

Адрес и порт сервера. Обязательна (либо блок <connection>).

proto

Транспорт: udp (быстрее) или tcp (надёжнее проходит фильтры).

cipher

Алгоритм шифрования (например, AES-256-CBC).

ifconfig

IP клиента и сервера в туннеле (для режима статического ключа).

secret

Статический ключ: [inline] — встроен в блок <secret>, либо путь к файлу.

keepalive

Интервал и таймаут проверки соединения.

allow-deprecated-insecure-static-crypto

Разрешает режим статического ключа в OpenVPN 2.7+.

Если в конфигурации используются устаревшие шифры (BF‑CBC, DES, RC4, IDEA, CAST5, SEED), модуль автоматически запускает специальную сборку openvpn-legacy со встроенным legacy-провайдером OpenSSL. Это нужно только для совместимости со старыми серверами OpenVPN (например, 2.2.x); вручную ничего переключать не требуется.

Обязательные директивы: remote (или блок <connection>) и dev tun/dev tap.

Tailscale

Tailscale — это не просто туннель, а управляемая mesh‑сеть. Узлы находят друг друга через сервер управления (control plane), получают адреса из диапазона 100.64.0.0/10 и соединяются напрямую. Для Tailscale в модуле вместо текстового конфига используются отдельные поля.

Поля Tailscale

Поле
Назначение

Сервер авторизации

URL control plane. Оставьте пустым для облака Tailscale или укажите адрес своего Headscale.

Ключ авторизации

Auth key для неинтерактивного входа. Если оставить пустым — будет предложена авторизация через браузер.

Имя хоста

Имя станции в сети (tailnet), например mikopbx-office.

Дополнительные параметры

Прочие флаги tailscale up, по одному на строку (например, --advertise-exit-node).

Пример дополнительных параметров

Состояние Tailscale (идентичность узла и ключи) сохраняется на постоянном хранилище модуля и переживает перезагрузку станции и переустановку модуля. Поэтому при последующих запусках выполняется «тёплый» старт — без повторной авторизации.

Для уже подключённого соединения в интерфейсе доступны действия переавторизации (получить новую ссылку для входа) и выхода (logout с удалением сохранённого состояния).

Сборка Tailscale в модуле поддерживает транспорт с обфускацией: при наличии параметров обфускации они автоматически применяются к туннелю Tailscale. Это позволяет совместить удобство mesh‑сети с обфускацией транспорта.

Обязательный параметр для автоматического (неинтерактивного) подключения — ключ авторизации (--authkey). Без него потребуется ручная авторизация по ссылке.

Запуск и контроль состояния

Модуль поднимает все включённые соединения автоматически: после настройки сети и после загрузки станции. Состояние каждого туннеля проверяется по расписанию (раз в минуту) — если соединение оборвалось, оно поднимается заново.

В списке соединений отображается текущий статус, а для активных туннелей — назначенный IP-адрес, время последнего рукопожатия и объём переданных данных.

Настройка VPN-сервера

Модуль — это клиентская часть. Конфигурацию для вставки готовят на стороне VPN-сервера. В репозитории модуля (каталог samples-server-configs) есть готовые скрипты для быстрого разворачивания тестового сервера каждого типа (WireGuard, WireGuard с обфускацией, OpenVPN со статическим ключом, Headscale для Tailscale) — они генерируют пары ключей и сразу формируют клиентский конфиг, который остаётся скопировать в модуль.

Ключевые параметры по умолчанию в этих примерах:

Тип
Порт
Подсеть туннеля

WireGuard

51820/udp

10.10.0.0/24

WireGuard (обфускация)

51821/udp

10.30.0.0/24

OpenVPN

1194/udp

10.20.0.0/24

Tailscale / Headscale

443/tcp

100.64.0.0/10

Пошаговый пример объединения двух АТС MikoPBX по WireGuard (включая ручную настройку на стороне сервера) приведён здесь:

WireGuard - VPN

Last updated

Was this helpful?