Представляем ovpn-admin — веб-интерфейс для управления пользователями OpenVPN

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Обслуживая большое количество проектов, мы пришли к необходимости простого управления OpenVPN (сертификатами и маршрутами для пользователей), подразумевая под этим веб-интерфейс вместо того, чтобы ходить по серверам/контейнерам и выполнять в них вручную команды. Поскольку существующие для этого решения (вроде Pritunl и OpenVPN AS) — коммерческие, несколько лет назад мы создали (и используем по сей день) свой интерфейс.

Недавно мы его переписали с Python на Go и обновили внешний вид*, что и навело на мысль поделиться разработкой с более широким сообществом. Итак, встречайте ovpn-admin!

* За первоначальный вариант на Python благодарю коллегу @vitaliy-sn, а за нескучные обои обновлённый интерфейс — erste.

Возможности и интерфейс

Ovpn-admin — это Open Source-проект, реализующий веб-интерфейс для управления OpenVPN. В настоящий момент утилита поддерживает только Linux и умеет:

  • добавлять пользователей (генерировать сертификаты для них);

  • отзывать/восстанавливать сертификаты пользователей;

  • выдавать готовый файл конфига;

  • отдавать метрики для Prometheus: срок действия сертификатов, количество пользователей (всего/подключенных), информация о подключенных пользователях;

  • (опционально) прописывать CCD (client-config-dir) для каждого пользователя;

  • (опционально) работать в режиме master/slave (синхронизация сертификатов и CCD с другим сервером);

  • (опционально) задавать/менять пароль для дополнительной авторизации в OpenVPN.

Вот как выглядит интерфейс ovpn-admin:

Список пользователей и возможные действия с ними
Список пользователей и возможные действия с ними
Окно добавления кастомных маршрутов для пользователя
Окно добавления кастомных маршрутов для пользователя
Пример панели на основе метрик, полученных от ovpn-admin
Пример панели на основе метрик, полученных от ovpn-admin

Как попробовать

Ovpn-admin можно установить в систему или запускать в Docker-контейнере. Инструкции описаны в README проекта.

Исходный код проекта распространяется на условиях свободной лицензии (Apache License 2.0). Будем рады новым фичам, а также, конечно, ожидаем ваши issues и просто обсуждения на GitHub или в комментариях к этому посту.

Планы по развитию

Что бы хотелось улучшить в проекте? На данный момент у нас такой список доделок:

  • добавить возможность дополнительной авторизации через OTP;

  • добавить Helm-чарт как вариант установки;

  • добавить группы пользователей;

  • уйти от вызова утилиты easyrsa для генерации сертификатов;

  • уйти от вызова bash.

P.S.

Читайте также в нашем блоге:

  • «Наш рецепт отказоустойчивого VPN-сервера на базе tinc, OpenVPN, Linux»;

  • другие Open Source-проекты:

    • «elasticsearch-extractor — утилита для извлечения индексов из снапшотов Elasticsearch»;

    • «Представляем k8s-image-availability-exporter для обнаружения пропавших образов в Kubernetes»;

    • «Представляем shell-operator: создавать операторы для Kubernetes стало ещё проще».

Источник: https://habr.com/ru/company/flant/blog/543986/


Интересные статьи

Интересные статьи

KubeHelper - это продукт который упрощает решение многих ежедневных задач связанных с управлением Kubernetes через веб интерфейс. Поиск, анализ, запуск команд, “cron jobs...
У большинства систем управления проектами есть бесплатные версии, но они бывают двух принципиально разных видов.1) «Честная» бесплатная версия. Система искренне хоч...
В 2006 году в МГТУ им. Н.Э. Баумана был создан Центр управления полетами малых космических аппаратов и Центр приема данных дистанционного зондирования Земли (ДЗЗ). Это уникальный студенче...
Пришло время поговорить об устройствах, предназначенных для управления тормозами. Эти устройства называются «кранами», хотя долгий путь эволюции увел их достаточно далеко от кранов в привычном на...
Не так давно мы публиковали обзор «Что нового в веб-консолях 2019», после чего подробно разобрали панель Plesk и вот теперь хотим разобрать ещё одну панель управления сайтами и сервером — ISPmana...