UI Web simple pour gérer les utilisateurs OpenVPN, leurs certificats et itinéraires dans Linux. Alors que le backend est écrit en Go, Frontend est basé sur Vue.js.
CLAUSE DE NON-RESPONSABILITÉ! Ce projet a été créé pour les utilisateurs expérimentés (administrateurs système) et les environnements privés (par exemple, protégés par les politiques réseau). Ainsi, il n'est pas mis en œuvre avec la sécurité à l'esprit (par exemple, il ne vérifie pas strictement tous les paramètres passés par les utilisateurs, etc.). Il s'appuie également fortement sur les fichiers et échoue si les fichiers requis ne sont pas disponibles.
client-config-dir
) pour chaque utilisateur;remote
automatiquement définie dans le modèle client.conf.tpl
).Gestion des utilisateurs dans OVPN-ADMIN:
Un exemple de tableau de bord fabriqué à l'aide de mesures OVPN-Admin:
Il y a un docker-compose.yaml prêt à l'emploi, vous pouvez donc simplement modifier / ajouter des valeurs dont vous avez besoin et le démarrer avec start.sh.
Exigences: vous avez besoin de Docker et Docker-Compose installé.
Commandes à exécuter:
git clone https://github.com/palark/ovpn-admin.git
cd ovpn-admin
./start.sh
Images Docker Ready disponibles sur Docker Hub. Les balises sont simples: $VERSION
ou latest
pour ovpn-admin et openvpn-$VERSION
ou openvpn-latest
pour openvpn-server
Exigences. Vous avez besoin de Linux avec les composants suivants installés:
Commandes à exécuter:
git clone https://github.com/palark/ovpn-admin.git
cd ovpn-admin
./bootstrap.sh
./build.sh
./ovpn-admin
(Veuillez ne pas oublier de configurer tous les paramètres nécessaires à l'avance.)
Vous pouvez également télécharger et utiliser des binaires prédéfinis à partir de la page des versions - choisissez simplement un fichier TAR.gz pertinent.
bash
, coreutils
et easy-rsa
, donc les systèmes Linux sont uniquement pris en charge pour le moment.--auth
et --auth.db="/etc/easyrsa/pki/users.db
" Flags et installer openvpn-user. Cet outil doit être disponible dans votre $PATH
et son binaire doit être exécutable ( +x
).--storage.backend=kubernetes.secrets
- WIP--storage.backend=kubernetes.secrets
- WIP--ccd
et --ccd.path="/etc/openvpn/ccd"
Plan ABD pour utiliser la configuration d'adresse statique pour les utilisateurs, n'oubliez pas de fournir --ovpn.network="172.16.100.0/24"
avec valide réseau OpenVPN-Server 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 a été créé à l'origine à Flant et utilisé en interne pendant des années.
En mars 2021, il est devenu public et a toujours été développé à Flant. À savoir, @ Vitaliy-SN a créé sa première version dans Python, et @pashcovich le réécrit dans Go.
En novembre 2024, ce projet a été transféré à Palark, qui est actuellement responsable de sa maintenance et de son développement.