1
0

Тайлбар байхгүй

Mustafa Arici 9c34a5fcb1 feat(permset): apply permission checking using permsets 8 жил өмнө
api 9c34a5fcb1 feat(permset): apply permission checking using permsets 8 жил өмнө
bindata 707e209b68 refactor: correct typo 8 жил өмнө
cmd 707e209b68 refactor: correct typo 8 жил өмнө
contrib aab7a67225 refactor: preferred group is nogroup 8 жил өмнө
permset 350297cdee feat(permset): implement permset 8 жил өмнө
pki 3c59a7469c doc: fix the word usage whether 8 жил өмнө
supervisor 3c59a7469c doc: fix the word usage whether 8 жил өмнө
template 707e209b68 refactor: correct typo 8 жил өмнө
webui 707e209b68 refactor: correct typo 8 жил өмнө
.gitignore 33a3d57151 init: add gitignore 8 жил өмнө
.travis.yml 5c4c565601 chore(ci): fix on fix 8 жил өмнө
CHANGELOG.md 7692633c8c release:v0.1.18 8 жил өмнө
Dockerfile d42c20dc41 chore: fix user generation after package install 8 жил өмнө
LICENSE cd22d83ab6 Create LICENSE 8 жил өмнө
Makefile d42c20dc41 chore: fix user generation after package install 8 жил өмнө
README.md 85d6004488 doc(readme): add item to roadmap 8 жил өмнө
build.sh d42c20dc41 chore: fix user generation after package install 8 жил өмнө
const.go 7692633c8c release:v0.1.18 8 жил өмнө
db.go 55acfb6b25 refactor: major refactor of all service 8 жил өмнө
db_test.go 55acfb6b25 refactor: major refactor of all service 8 жил өмнө
doc.go 6006fb9610 feat(api): implement authentication service 8 жил өмнө
generate.go 2b1197d5c1 feat(webui): implement basic webui 8 жил өмнө
net.go 55acfb6b25 refactor: major refactor of all service 8 жил өмнө
net_test.go 8bbbb27401 feat(vpn): implement configurable dns option 8 жил өмнө
perms.go 9c34a5fcb1 feat(permset): apply permission checking using permsets 8 жил өмнө
user.go 2b1197d5c1 feat(webui): implement basic webui 8 жил өмнө
user_test.go 8bbbb27401 feat(vpn): implement configurable dns option 8 жил өмнө
vpn.go 707e209b68 refactor: correct typo 8 жил өмнө
vpn_test.go 0f211905e5 test(vpn): remove client ovpn config nopull check 8 жил өмнө

README.md

OVPM - OpenVPN Management Server

Build Status GitHub version codecov GoDoc

OVPM allows you to administrate an OpenVPN server on linux easily via command line.

With OVPM you can create and run an OpenVPN server, add/remove VPN users, generate client .ovpn files for your users etc.

This software is not stable yet. We recommend against using it for anything serious until, version 1.0 is released.

Roadmap

  • OpenVPN management functionality
  • User management functionality
  • Network management functionality
  • Command Line Interface (CLI)
  • API (REST and gRPC)
  • Web User Interface (WebUI)
  • Import/Export/Backup OVPM config
  • Effortless client profile (.ovpn file) delivery over Web
  • Monitoring and Quota functionality

Installation

from RPM (CentOS/Fedora):

# Add YUM Repo
$ sudo yum-config-manager --add-repo https://cad.github.io/ovpm/rpm/ovpm.repo

# Install OVPM
$ sudo yum install ovpm

from DEB (Ubuntu/Debian):

This is tested only on Ubuntu >=16.04.3 LTS

# Add APT Repo
$ sudo sh -c 'echo "deb [trusted=yes] https://cad.github.io/ovpm/deb/ ovpm main" >> /etc/apt/sources.list'
$ sudo apt update

# Install OVPM
$ sudo apt install ovpm

from Source (go get):

Only dependency for ovpm is OpenVPN>=2.3.

$ go get -u github.com/cad/ovpm/...

Start the Server

You need to start the start OVPM server, which is called ovpmd, before doing anything.

CentOS/Fedora/Ubuntu/Debian (RPM or DEB Package)

Just use systemd to manage ovpmd.

$ systemctl start ovpmd
$ systemctl enable ovpmd  # enable ovpmd to start on boot

If You've Installed From Source (go get)

Run in another terminal.

$ sudo ovpmd

INFO[0000] OVPM is running :9090 ...                    
ERRO[0000] can not launch OpenVPN because system is not initialized 

It complains about an error due to server not being initialized, it's completely fine getting this when you first start ovpmd.

Usage

Demo Here is a little demo of what it looks on terminal to init the server, create a vpn user and generate .ovpn file for the created user.

asciicast

Init Server

If you just installed the ovpm from scratch you have started the ovpm server (ovpmd) then now you need to initialize the server.

You can do so by invoking;

# Initialize the server by giving your VPN server's domain or IP address to ovpm.

$ ovpm vpn init -s <domain-or-ip>  

This operation will cause invalidation of existing user certificates.
After this opeartion, new client config files (.ovpn) should be generated for each existing user.

Are you sure ? (y/N)
y
INFO[0003] ovpm server initialized 

Now you have your server initialized, up and running.

Create a VPN user

If you have initialized your ovpm server now you can add users.

Add a VPN user;

$ ovpm user create -u john -p 1234            

INFO[0000] user created: john  

Please note that user password is taken but it will be used in the future releases. Such as for the Web UI and etc..

Export the OpenVPN Client Config

After creating a user, you can export the client config for them.

$ ovpm user genconfig -u john

INFO[0000] exported to john.ovpn

This .ovpn file contains all necesarray bits and pieces for the client to connect to your newly created VPN server. You can copy the OpenVPN client config file (e.g. john.ovpn) to the any OpenVPN client and use it to connect to your VPN server.