Simple Web UI เพื่อจัดการผู้ใช้ OpenVPN ใบรับรองและเส้นทางใน Linux ในขณะที่แบ็กเอนด์ถูกเขียนขึ้นใน 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 Tags นั้นง่าย: $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
(โปรดอย่าลืมกำหนดค่าพารามิเตอร์ที่จำเป็นทั้งหมดล่วงหน้า)
นอกจากนี้คุณยังสามารถดาวน์โหลดและใช้ binaries prebuilt จากหน้ารีลีส - เพียงเลือกไฟล์ 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 วางแผนที่จะใช้การตั้งค่าที่อยู่คงที่สำหรับผู้ใช้ไม่ลืมที่จะให้ --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 ถูกสร้างขึ้นใน Flant และใช้ภายในเป็นเวลาหลายปี
ในเดือนมีนาคม 2564 มันออกสู่สาธารณะและยังคงพัฒนาใน Flant กล่าวคือ @Vitaliy-SN สร้างเวอร์ชันแรกใน Python และ @pashcovich เขียนใหม่ในการเดินทาง
ในเดือนพฤศจิกายน 2567 โครงการนี้ถูกย้ายไปที่ Palark ซึ่งปัจจุบันรับผิดชอบการบำรุงรักษาและการพัฒนา