Простой веб -интерфейс для управления пользователями OpenVPN, их сертификаты и маршруты в Linux. В то время как бэкэнд написан в Go, Frontend основан на Vue.js.
Отказ от ответственности! Этот проект был создан только для опытных пользователей (системных администраторов) и частных (например, защищенных сетевых политик) сред. Таким образом, он не реализован с учетом безопасности (например, он не строго проверяет все параметры, передаваемые пользователями и т. Д.). Он также в значительной степени полагается на файлы и не сбои, если необходимы, файлы недоступны.
client-config-dir
) для каждого пользователя;remote
в шаблоне client.conf.tpl
).Управление пользователями в ovpn-admin:
Пример приборной панели, сделанный с использованием метрик OVPN-ADMIN:
Существует готовый к использованию docker-compose.yaml, так что вы можете просто изменить/добавить значения, которые вам нужны и начать с start.sh.
Требования: вам нужно установить Docker и Docker-Compose.
Команды для выполнения:
git clone https://github.com/palark/ovpn-admin.git
cd ovpn-admin
./start.sh
Готовые изображения Docker доступны на Docker Hub. Теги просты: $VERSION
или latest
для ovpn-admin и openvpn-$VERSION
или openvpn-latest
для openvpn-server
Требования. Вам нужен Linux со следующими компонентами:
Команды для выполнения:
git clone https://github.com/palark/ovpn-admin.git
cd ovpn-admin
./bootstrap.sh
./build.sh
./ovpn-admin
(Пожалуйста, не забудьте настроить все необходимые параметры заранее.)
Вы также можете загрузить и использовать предварительно построенные двоичные файлы со страницы релизов - просто выберите соответствующий файл tar.gz.
bash
, coreutils
и easy-rsa
, поэтому в настоящее время поддерживаются системы Linux .--auth
и --auth.db="/etc/easyrsa/pki/users.db
" и установить openvpn-user. Этот инструмент должен быть доступен в вашем $PATH
, и его двоичный файл должен быть исполняемым ( +x
).--storage.backend=kubernetes.secrets
-WIP--storage.backend=kubernetes.secrets
-WIP--ccd
и --ccd.path="/etc/openvpn/ccd"
ABD Plan для использования настройки статического адреса для пользователей не забудьте предоставить --ovpn.network="172.16.100.0/24"
OpenVPN-Server Network usage: ovpn-admin [<flags>]
Flags:
--help show context-sensitive help (try also --help-long and --help-man)
--listen.host="0.0.0.0" host for ovpn-admin
(or OVPN_LISTEN_HOST)
--listen.port="8080" port for ovpn-admin
(or OVPN_LISTEN_PORT)
--listen.base-url="/" base URL for ovpn-admin web files
(or $OVPN_LISTEN_BASE_URL)
--role="master" server role, master or slave
(or OVPN_ROLE)
--master.host="http://127.0.0.1"
(or OVPN_MASTER_HOST) URL for the master server
--master.basic-auth.user="" user for master server's Basic Auth
(or OVPN_MASTER_USER)
--master.basic-auth.password=""
(or OVPN_MASTER_PASSWORD) password for master server's Basic Auth
--master.sync-frequency=600 master host data sync frequency in seconds
(or OVPN_MASTER_SYNC_FREQUENCY)
--master.sync-token=TOKEN master host data sync security token
(or OVPN_MASTER_TOKEN)
--ovpn.network="172.16.100.0/24"
(or OVPN_NETWORK) NETWORK/MASK_PREFIX for OpenVPN server
--ovpn.server=HOST:PORT:PROTOCOL ...
(or OVPN_SERVER) HOST:PORT:PROTOCOL for OpenVPN server
can have multiple values
--ovpn.server.behindLB enable if your OpenVPN server is behind Kubernetes
(or OVPN_LB) Service having the LoadBalancer type
--ovpn.service="openvpn-external"
(or OVPN_LB_SERVICE) the name of Kubernetes Service having the LoadBalancer
type if your OpenVPN server is behind it
--mgmt=main=127.0.0.1:8989 ...
(or OVPN_MGMT) ALIAS=HOST:PORT for OpenVPN server mgmt interface;
can have multiple values
--metrics.path="/metrics" URL path for exposing collected metrics
(or OVPN_METRICS_PATH)
--easyrsa.path="./easyrsa/" path to easyrsa dir
(or EASYRSA_PATH)
--easyrsa.index-path="./easyrsa/pki/index.txt"
(or OVPN_INDEX_PATH) path to easyrsa index file
--ccd enable client-config-dir
(or OVPN_CCD)
--ccd.path="./ccd" path to client-config-dir
(or OVPN_CCD_PATH)
--templates.clientconfig-path=""
(or OVPN_TEMPLATES_CC_PATH) path to custom client.conf.tpl
--templates.ccd-path="" path to custom ccd.tpl
(or OVPN_TEMPLATES_CCD_PATH)
--auth.password enable additional password authorization
(or OVPN_AUTH)
--auth.db="./easyrsa/pki/users.db"
(or OVPN_AUTH_DB_PATH) database path for password authorization
--log.level set log level: trace, debug, info, warn, error (default info)
(or LOG_LEVEL)
--log.format set log format: text, json (default text)
(or LOG_FORMAT)
--storage.backend storage backend: filesystem, kubernetes.secrets (default filesystem)
(or STORAGE_BACKEND)
--version show application version
OVPN-ADMIN первоначально создавался в фланце и использовался внутри много лет.
В марте 2021 года он стал публичным и все еще развивался в фланце. А именно, @Vitaliy-Sn создал свою первую версию в Python, а @pashcovich перезаписывает ее.
В ноябре 2024 года этот проект был перенесен в Паларк, который в настоящее время отвечает за его обслуживание и разработку.