UI Web sederhana untuk mengelola pengguna OpenVPN, sertifikat & rute mereka di Linux. Sementara backend ditulis dalam go, Frontend didasarkan pada vue.js.
PENAFIAN! Proyek ini dibuat untuk pengguna yang berpengalaman (administrator sistem) dan hanya lingkungan pribadi (misalnya, dilindungi oleh kebijakan jaringan). Dengan demikian, itu tidak diimplementasikan dengan mempertimbangkan keamanan (misalnya, itu tidak secara ketat memeriksa semua parameter yang disahkan oleh pengguna, dll.). Ini juga sangat bergantung pada file dan gagal jika file yang diperlukan tidak tersedia.
client-config-dir
) for each user;remote
yang ditentukan secara otomatis di template client.conf.tpl
).Mengelola Pengguna di OVPN-Admin:
Contoh dasbor yang dibuat menggunakan metrik ovpn-admin:
There is a ready-to-use docker-compose.yaml, so you can just change/add values you need and start it with start.sh.
Requirements: You need Docker and docker-compose installed.
Perintah untuk dieksekusi:
git clone https://github.com/palark/ovpn-admin.git
cd ovpn-admin
./start.sh
Gambar Docker Ready Tersedia di Docker Hub. Tag sederhana: $VERSION
atau latest
untuk ovpn-admin dan openvpn-$VERSION
atau openvpn-latest
untuk OpenVPN-server
Persyaratan. Anda memerlukan Linux dengan komponen berikut yang diinstal:
Perintah untuk dieksekusi:
git clone https://github.com/palark/ovpn-admin.git
cd ovpn-admin
./bootstrap.sh
./build.sh
./ovpn-admin
(Tolong jangan lupa untuk mengkonfigurasi semua param yang diperlukan terlebih dahulu.)
Anda juga dapat mengunduh dan menggunakan binari prebuilt dari halaman rilis - cukup pilih file tar.gz yang relevan.
bash
, coreutils
dan easy-rsa
, sehingga sistem Linux hanya didukung saat ini.--auth
dan --auth.db="/etc/easyrsa/pki/users.db
" bendera dan instal OpenVPN-User. Alat ini harus tersedia di $PATH
Anda dan binernya harus dapat dieksekusi ( +x
).--storage.backend=kubernetes.secrets
-WIP--storage.backend=kubernetes.secrets
-WIP--ccd
dan --ccd.path="/etc/openvpn/ccd"
Rencana ABD untuk menggunakan pengaturan alamat statis untuk pengguna jangan lupa untuk menyediakan --ovpn.network="172.16.100.0/24"
dengan valid Jaringan 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 pada awalnya dibuat dalam pipara dan digunakan secara internal selama bertahun-tahun.
Pada bulan Maret 2021, ia go public dan masih dikembangkan dalam Floant. Yaitu, @vitaliy-sn membuat versi pertamanya di Python, dan @pashcovich menulis ulang di Go.
In November 2024, this project was moved to Palark, which is currently responsible for its maintenance and development.