Linux의 OpenVPN 사용자, 인증서 및 경로를 관리하는 간단한 웹 UI. 백엔드는 GO에 작성되었지만 Frontend는 vue.js를 기반으로합니다.
부인 성명! 이 프로젝트는 숙련 된 사용자 (시스템 관리자) 및 개인 (예 : 네트워크 정책에 의해 보호 된) 환경만을 위해 만들어졌습니다. 따라서 보안을 염두에두고 구현되지는 않습니다 (예 : 사용자가 전달하는 모든 매개 변수를 엄격하게 확인하지는 않습니다). 또한 파일에 크게 의존하며 필요한 파일을 사용할 수없는 경우 실패합니다.
client-config-dir
) 지정;client.conf.tpl
템플릿에서 자동 정의 된 remote
가져옵니다).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 Hub에서 사용할 수있는 Ready Docker 이미지. 태그는 간단합니다 : $VERSION
또는 OVPN-ADMIN 및 openvpn-$VERSION
의 latest
또는 OpenVPN-Server의 경우 openvpn-latest
요구 사항. 다음 구성 요소가 설치된 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 계획 사용자에게 정적 주소 설정을 사용하려는 ABD 계획 --ovpn.network="172.16.100.0/24"
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은 원래 Flant에서 만들어졌으며 몇 년 동안 내부적으로 사용되었습니다.
2021 년 3 월, 그것은 공개되었으며 여전히 플랜트에서 개발되었습니다. 즉, @vitaliy-sn은 Python에서 첫 번째 버전을 만들었고 @pashcovich는 그것을 다시 작성했습니다.
2024 년 11 월,이 프로젝트는 현재 유지 보수 및 개발을 담당하는 Palark로 옮겨졌습니다.