Перейти к содержимому

Сервер OpenVPN

Процесс сервера OpenVPN предоставляет собственный канал управления — интерфейс управления (management interface): локальный TCP-слушатель, отдельный от самого VPN и предназначенный для инструмента мониторинга, а не для VPN-клиента. DumbMonit читает его как любой клиент управления: версию сервера, сообщает ли он о себе как о подключённом, и каждого клиента, находящегося сейчас в сессии, с его реальным и виртуальным адресом и его трафиком. Ничего, что могло бы изменить состояние сервера или отключить клиента, никогда не отправляется.

Клиенты по природе недолговечны: ноутбук, ушедший в спящий режим, просто исчезает из следующего считывания. DumbMonit не пытается помнить, кто был подключён пять минут назад; он сообщает только о тех, кто подключён сейчас, плюс число клиентов как метрику, которую стоит строить на графике во времени.

Все метрики имеют префикс dumbmonit_openvpn_.

МетрикаЧтоМетки
server_infoзначение 1version
server_up1, когда интерфейс управления сообщает о сервере CONNECTED, иначе 0state
server_state_age_secondsвремя с момента, как сервер перешёл в текущее состояние
clients_connectedчисло клиентов, находящихся сейчас в сессии
client_bytes_received, client_bytes_sentтрафик одного клиента (счётчики)common_name, real_address
client_connected_secondsвремя с начала сессии этого клиентаcommon_name, real_address

real_address никогда не содержит исходный порт клиента: он меняется при каждом переподключении за NAT и без пользы умножал бы число рядов. Подробный ряд получают не более 256 клиентов; clients_connected остаётся точным и сверх этого числа.

Применяются встроенные правила: Monitor unreachable, когда не удаётся установить само подключение к интерфейсу управления или пароль отклонён.

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

  1. Интерфейс управления — отдельный слушатель, по умолчанию выключенный: добавьте это в конфигурацию сервера (server.conf или, под другим именем, as.conf в OpenVPN Access Server) и перезапустите его. Привяжите его к адресу, доступному хосту DumbMonit, или к 127.0.0.1 и обращайтесь к нему через SSH-туннель или через релейный агент на той же машине.

    management 0.0.0.0 7505
  2. Необязательно, но рекомендуется: у интерфейса управления нет собственной учётной записи, только общий пароль. Поместите его в файл, читаемый только процессом OpenVPN, и добавьте как третий аргумент.

    management 0.0.0.0 7505 /etc/openvpn/management-password
  3. В DumbMonit введите адрес сервера, например «vpn.lan» (порт 7505), и пароль управления, если он задан.

  4. DumbMonit только читает: он отправляет version, state и status 3, но никогда signal, kill или client-kill. Он не может отключить клиента, изменить настройку или остановить сервер.

Учётные данныеПоля
Без пароляТолько для интерфейса управления, запущенного без аргумента с файлом пароля.
Пароль управленияОбщий пароль, заданный третьим аргументом директивы «management» сервера.

Адрес: имя хоста или IP, при желании с :port; порт по умолчанию — 7505, соглашение из собственной документации OpenVPN, а не стандарт, который навязывает сервер. Параметры: порт (7505) и тайм-аут на один обмен (10 с).

Отказ в соединении или отсутствие ответа считаются недоступностью сервера. Неверный пароль отображается как ошибка учётных данных; ни то ни другое не будит никого ночью. Подключение — обычный TCP: читаемые данные не секретны, но пароль, если он задан, при каждой проверке проходит по сети открытым текстом — обращайтесь к интерфейсу только из доверенной сети или через релейный агент на той же машине, что и сервер.