暂无描述

Mustafa Arici c3a138e0d5 chore(ci): fix deploy condition 8 年之前
api ae162139cc feat(vpn): allocate client ip addresses dynamically and statically 8 年之前
bindata b306ddebf9 feat(user): implement update user feature 8 年之前
cmd ae162139cc feat(vpn): allocate client ip addresses dynamically and statically 8 年之前
contrib 08d81ec625 chore(rpm): stop ovpmd systemd unit when removing 8 年之前
pb ae162139cc feat(vpn): allocate client ip addresses dynamically and statically 8 年之前
pki 2fe160c0c9 refactor(pki): generate certificates valid for _CrtExpireYears long 8 年之前
supervisor b6e48777d0 feat(vpn): ensure nat is enabled when starting vpn 8 年之前
template bf2a9b940e feat(user,vpn): implement no-gw capability 8 年之前
.gitignore 33a3d57151 init: add gitignore 8 年之前
.travis.yml c3a138e0d5 chore(ci): fix deploy condition 8 年之前
CHANGELOG.md 0e7a676e89 release: v0.1.1 8 年之前
Makefile 9029e2bc39 chore(ci): hopefully fix travis setup 8 年之前
README.md e25171fb57 doc(readme): title styling 8 年之前
build.sh d906339dcc chore(ci): fix variable indication 8 年之前
const.go 90fae7a65e release: v0.1.2 8 年之前
db.go 87c8f6faa1 refactor: improve api semantics and configurability 8 年之前
db_test.go 7756c0cc60 test(db): write test cases for db 8 年之前
net.go ae162139cc feat(vpn): allocate client ip addresses dynamically and statically 8 年之前
user.go ae162139cc feat(vpn): allocate client ip addresses dynamically and statically 8 年之前
user_test.go d9b2c0ea1b test(user): write test cases for ip allocator 8 年之前
vpn.go f68645f510 feat(vpn): ensure nat upon OpenVPN process restart 8 年之前
vpn_test.go d9b2c0ea1b test(user): write test cases for ip allocator 8 年之前

README.md

OVPM - OpenVPn Manager

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.

Installation

from RPM (CentOS/Fedora):

# Add YUM Repo
$ curl -s https://packagecloud.io/install/repositories/cad/ovpm/script.rpm.sh | sudo bash

# Install OVPM
$ sudo yum 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 (RPM 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

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;

$ ovpm vpn init -s <your-vpn-server's-fqdn-or-ip-addr>

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.