Einfache Web -Benutzeroberfläche zum Verwalten von OpenVPN -Benutzern, ihren Zertifikaten und Routen unter Linux. Während der Backend in Go geschrieben ist, basiert Frontend auf Vue.js.
HAFTUNGSAUSSCHLUSS! Dieses Projekt wurde nur für erfahrene Benutzer (Systemadministratoren) und private (z. B. durch Netzwerkrichtlinien geschützte Umgebungen) erstellt. Daher wird es nicht unter Berücksichtigung der Sicherheit implementiert (z. B. überprüft nicht alle von den Benutzern übergebenen Parametern usw.). Es stützt sich auch stark auf Dateien und fällt fehl, wenn die erforderlichen Dateien nicht verfügbar sind.
client-config-dir
) für jeden Benutzer;remote
in der client.conf.tpl
-Vorlage zu erhalten).Verwalten von Benutzern in OVPN-Admin:
Ein Beispiel für das Armaturenbrett, das mit OVPN-Admin-Metriken hergestellt wurde:
Es gibt eine nutzende Docker-compose.yaml, sodass Sie nur Werte ändern/hinzufügen können, die Sie benötigen, und mit start.sh starten können.
Anforderungen: Sie benötigen Docker und Docker-Compose installiert.
Befehle zum Ausführen:
git clone https://github.com/palark/ovpn-admin.git
cd ovpn-admin
./start.sh
Ready Docker -Bilder, die auf Docker Hub verfügbar sind. Tags sind openvpn-latest
: openvpn-$VERSION
$VERSION
oder latest
Anforderungen. Sie benötigen Linux mit den folgenden Komponenten:
Befehle zum Ausführen:
git clone https://github.com/palark/ovpn-admin.git
cd ovpn-admin
./bootstrap.sh
./build.sh
./ovpn-admin
(Bitte vergessen Sie nicht, alle benötigten Parameter im Voraus zu konfigurieren.)
Sie können auch vorgefertigte Binärdateien auf der Seite "Releases" herunterladen und verwenden. Wählen Sie einfach eine relevante Tar.gz -Datei.
bash
, coreutils
und easy-rsa
, sodass derzeit Linux-Systeme derzeit unterstützt werden .--auth
und --auth.db="/etc/easyrsa/pki/users.db
" -Flags und installieren Sie OpenVPN-User bereit. Dieses Tool sollte in Ihrem $PATH
erhältlich sein und seine Binärdatei sollte ausführbar sein ( +x
).--storage.backend=kubernetes.secrets
-WIP--storage.backend=kubernetes.secrets
-WIP--ccd
und --ccd.path="/etc/openvpn/ccd"
ABD -Plan verwenden, um --ovpn.network="172.16.100.0/24"
statische Adress -Setup für Benutzer zu verwenden OpenVPN-Server-Netzwerk 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 wurde ursprünglich in Flant erstellt und jahrelang intern verwendet.
Im März 2021 wurde es an die Börse und wurde immer noch in Flant entwickelt. @Vitaliy-sn hat nämlich seine erste Version in Python erstellt, und @PashCovich hat sie in Go geschrieben.
Im November 2024 wurde dieses Projekt nach Palark verlegt, das derzeit für seine Wartung und Entwicklung verantwortlich ist.