TG Telegram Group & Channel
ServerAdmin.ru | United States America (US)
Create: Update:

Для OpenVPN на первый взгляд кажется, что существует много различных веб панелей. Но когда начинаешь в них разбираться, оказывается, что одна платная, а бесплатная версия урезана, другая уже давно не поддерживается, третья в какой-то своей логике всем управляет и хранит данные. На деле выбирать особо то и не из чего. Я когда-то давно собрал список известных мне панелей:

Управление OpenVPN сервером через web интерфейс

Сегодня покажу ещё один вариант, который поначалу показался каким-то костыльным из-за недостатка документации, но когда немного разобрался, решение понравилось. Речь пойдёт про open source проект от известного аутсорсера flant - ovpn-admin.

📌 У ovpn-admin следующие возможности:

◽️Запуск через одиночный бинарник с передачей всех параметров через ключи. Есть готовый контейнер для автоматического запуска. Я тестировал в нём.
◽️Веб интерфейс для добавления и удаления пользователей, просмотра статуса их подключения и передачи маршрутов
◽️Экспортер для Prometheus и шаблон для Grafana с метриками: срок жизни сертификата, кол-во подключенных пользователей, информация о подключенных пользователях (время подключения, ip адрес, трафик)
◽️Подключение пользователем с использованием пароля или без, возможность скачать готовый конфиг сразу с включённым в него сертификатом
◽️Helm чарт для запуска в Kubernetes, собственно, продукт оптимизирован для запуска в кубере, может хранить сертификаты в секретах

Мне понравилось это решение тем, что оно, во-первых, полностью автоматизирует запуск сервера, а во-вторых, максимально похоже на администрирование стандартного openvpn сервера, установленного вручную. Тут всё на своих местах: конфиг сервера, шаблон конфига пользователей, директория с сертификатами, с настройками пользователей. Для тех, кто знаком с openvpn сервером не будет никаких проблем с тем, чтобы разобраться, как это всё работает.

Показываю, как запустить ovpn-admin в рабочем режиме. Не знаю, почему в самой репе не оставили краткой инструкции. Либо я её не нашёл. В общем, сделал в итоге так:

# git clone https://github.com/flant/ovpn-admin.git
# cd ovpn-admin

Теперь правим некоторые параметры docker-compose.yaml:

OVPN_PASSWD_AUTH: "true" # включена аутентификация по паролю, можно отключить, если не надо
OVPN_SERVER: "1.2.3.4:7777:tcp" # ip адрес, на котором запущен сервер и к которому будут подключаться клиенты, соответственно порт и протокол, по которому будут подключаться
OVPN_METRICS_PATH: "/metrics" # url, на котором будут жить метрики Prometheus

Остальные параметры я оставил по умолчанию. Собираем и запускаем контейнер:

# ./start.sh

Дожидаемся запуска и идём в веб интерфейс управления: http://1.2.3.4:8080/. Он будет доступен без аутентификации. Его нужно закрыть либо файрволом, либо basic_auth на прокси.

Расскажу про несколько полезных директорий и файлов:
- .ovpn-admin/easyrsa_master/pki - сертификаты пользователей
- .ovpn-admin/ccd_master - файлы конфигурации пользователей
- .ovpn-admin/setup/openvpn.conf - параметры сервера openvpn
- .ovpn-admin/templates - шаблон конфигурации клиента, настроек ccd

Структура и расположение файлов типичны для openvpn сервера. На эту панель легко переехать с работающего сервера, либо наоборот съехать, если не понравится, забрав все настройки и пользователей. Можно спокойно залезть в какие-то файлы и руками поправить параметры. Это ничего не сломает, так как всё состояние хранится только в них.

Я всё это запустил, настроил, попробовал. Добавил метрики Прома, установил шаблон Графаны. Забрать можно тут. У меня заработало сразу. На деле вроде бы и ничего особенного, но задачу по управлению и тем более мониторингу сильно упрощает. Не нужно самому парсить статус лог сервера. Там хоть и ничего сложного, я парсил для Zabbix, но тут это сделали за нас.

4️⃣ Исходники

#openvpn

Для OpenVPN на первый взгляд кажется, что существует много различных веб панелей. Но когда начинаешь в них разбираться, оказывается, что одна платная, а бесплатная версия урезана, другая уже давно не поддерживается, третья в какой-то своей логике всем управляет и хранит данные. На деле выбирать особо то и не из чего. Я когда-то давно собрал список известных мне панелей:

Управление OpenVPN сервером через web интерфейс

Сегодня покажу ещё один вариант, который поначалу показался каким-то костыльным из-за недостатка документации, но когда немного разобрался, решение понравилось. Речь пойдёт про open source проект от известного аутсорсера flant - ovpn-admin.

📌 У ovpn-admin следующие возможности:

◽️Запуск через одиночный бинарник с передачей всех параметров через ключи. Есть готовый контейнер для автоматического запуска. Я тестировал в нём.
◽️Веб интерфейс для добавления и удаления пользователей, просмотра статуса их подключения и передачи маршрутов
◽️Экспортер для Prometheus и шаблон для Grafana с метриками: срок жизни сертификата, кол-во подключенных пользователей, информация о подключенных пользователях (время подключения, ip адрес, трафик)
◽️Подключение пользователем с использованием пароля или без, возможность скачать готовый конфиг сразу с включённым в него сертификатом
◽️Helm чарт для запуска в Kubernetes, собственно, продукт оптимизирован для запуска в кубере, может хранить сертификаты в секретах

Мне понравилось это решение тем, что оно, во-первых, полностью автоматизирует запуск сервера, а во-вторых, максимально похоже на администрирование стандартного openvpn сервера, установленного вручную. Тут всё на своих местах: конфиг сервера, шаблон конфига пользователей, директория с сертификатами, с настройками пользователей. Для тех, кто знаком с openvpn сервером не будет никаких проблем с тем, чтобы разобраться, как это всё работает.

Показываю, как запустить ovpn-admin в рабочем режиме. Не знаю, почему в самой репе не оставили краткой инструкции. Либо я её не нашёл. В общем, сделал в итоге так:

# git clone https://github.com/flant/ovpn-admin.git
# cd ovpn-admin

Теперь правим некоторые параметры docker-compose.yaml:

OVPN_PASSWD_AUTH: "true" # включена аутентификация по паролю, можно отключить, если не надо
OVPN_SERVER: "1.2.3.4:7777:tcp" # ip адрес, на котором запущен сервер и к которому будут подключаться клиенты, соответственно порт и протокол, по которому будут подключаться
OVPN_METRICS_PATH: "/metrics" # url, на котором будут жить метрики Prometheus

Остальные параметры я оставил по умолчанию. Собираем и запускаем контейнер:

# ./start.sh

Дожидаемся запуска и идём в веб интерфейс управления: http://1.2.3.4:8080/. Он будет доступен без аутентификации. Его нужно закрыть либо файрволом, либо basic_auth на прокси.

Расскажу про несколько полезных директорий и файлов:
- .ovpn-admin/easyrsa_master/pki - сертификаты пользователей
- .ovpn-admin/ccd_master - файлы конфигурации пользователей
- .ovpn-admin/setup/openvpn.conf - параметры сервера openvpn
- .ovpn-admin/templates - шаблон конфигурации клиента, настроек ccd

Структура и расположение файлов типичны для openvpn сервера. На эту панель легко переехать с работающего сервера, либо наоборот съехать, если не понравится, забрав все настройки и пользователей. Можно спокойно залезть в какие-то файлы и руками поправить параметры. Это ничего не сломает, так как всё состояние хранится только в них.

Я всё это запустил, настроил, попробовал. Добавил метрики Прома, установил шаблон Графаны. Забрать можно тут. У меня заработало сразу. На деле вроде бы и ничего особенного, но задачу по управлению и тем более мониторингу сильно упрощает. Не нужно самому парсить статус лог сервера. Там хоть и ничего сложного, я парсил для Zabbix, но тут это сделали за нас.

4️⃣ Исходники

#openvpn
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍102👎2


>>Click here to continue<<

ServerAdmin.ru






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)