Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cad/ovpm
OpenVPN Management Server - Effortless and free OpenVPN server administration tool
https://github.com/cad/ovpm
cli golang golang-application grpc grpc-gateway iptables network openvpn openvpn-client openvpn-server rest-api route vpn vpn-server
Last synced: 2 months ago
JSON representation
OpenVPN Management Server - Effortless and free OpenVPN server administration tool
- Host: GitHub
- URL: https://github.com/cad/ovpm
- Owner: cad
- License: agpl-3.0
- Created: 2017-07-10T07:41:23.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-05-01T19:40:58.000Z (9 months ago)
- Last Synced: 2024-08-02T01:25:38.714Z (6 months ago)
- Topics: cli, golang, golang-application, grpc, grpc-gateway, iptables, network, openvpn, openvpn-client, openvpn-server, rest-api, route, vpn, vpn-server
- Language: Go
- Homepage:
- Size: 292 MB
- Stars: 361
- Watchers: 28
- Forks: 77
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-repositories - cad/ovpm - OpenVPN Management Server - Effortless and free OpenVPN server administration tool (Go)
README
# OVPM - OpenVPN Management Server
![Build Status](https://github.com/cad/ovpm/workflows/Go/badge.svg)
[![GitHub version](https://badge.fury.io/gh/cad%2Fovpm.svg)](https://badge.fury.io/gh/cad%2Fovpm)
[![codecov](https://codecov.io/gh/cad/ovpm/branch/master/graph/badge.svg)](https://codecov.io/gh/cad/ovpm)
[![GoDoc](https://godoc.org/github.com/cad/ovpm?status.svg)](https://godoc.org/github.com/cad/ovpm)*OVPM* allows you to administrate an **OpenVPN** server on linux easily via command line and web interface.
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.*
**NOTICE: Version 0.2.8 comes with `comp-lzo` option disabled by default as it is deprecated by OpenVPN.**
**Roadmap**
- [x] OpenVPN management functionality
- [x] User management functionality
- [x] Network management functionality
- [x] Command Line Interface (CLI)
- [x] API (REST and gRPC)
- [x] Web User Interface (WebUI)
- [ ] Import/Export/Backup OVPM config
- [ ] Effortless client profile (.ovpn file) delivery over Web
- [ ] Monitoring and Quota functionality**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](https://asciinema.org/a/136016.png)](https://asciinema.org/a/136016)
## Installation
**from RPM (CentOS/Fedora):**```bash
# Add YUM Repo
$ sudo yum install yum-utils -y
$ sudo yum install epel-release -y
$ sudo yum-config-manager --add-repo https://cad.github.io/ovpm/rpm/ovpm.repo# Install OVPM
$ sudo yum install ovpm# Enable and start ovpmd service
$ systemctl start ovpmd
$ systemctl enable ovpmd
```**from DEB (Ubuntu/Debian):**
This is tested only on Ubuntu >=16.04.3 LTS
```bash
# 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# Enable and start ovpmd service
$ systemctl start ovpmd
$ systemctl enable ovpmd
```**from Source (go get):**
Only dependency for ovpm is **OpenVPN>=2.3.3**.
```bash
$ go get -u github.com/cad/ovpm/...# Make sure user nobody and group nogroup is available
# on the system
$ sudo useradd nobody
$ sudo groupadd nogroup# Start ovpmd on a seperate terminal
$ sudo ovpmd
```Now ovpmd should be running.
## Quickstart
Create a vpn user and export vpn profile for the created user.```bash
# We should init the server after fresh install
$ ovpm vpn init --hostname
INFO[0004] ovpm server initialized# Now, lets create a new vpn user
$ ovpm user create -u joe -p verySecretPassword
INFO[0000] user created: joe# Finally export the vpn profile for, the created user, joe
$ ovpm user genconfig -u joe
INFO[0000] exported to joe.ovpn
```OpenVPN profile for user joe is exported to joe.ovpn file.
You can simply use this file with OpenVPN to connect to the vpn server from
another computer.# Next Steps
* [User Management](https://github.com/cad/ovpm/wiki/User-Management)
* [Network Management](https://github.com/cad/ovpm/wiki/Network-Management)
* [Web Interface](https://github.com/cad/ovpm/wiki/Web-Interface)# Troubleshooting
## Q: My clients cannot connect to VPN after updating OVPM to v0.2.8
Since `comp-lzo` is disabled by default in OVPM v0.2.8, existing clients' .ovpn profiles became invalid.
In order to solve this you have the options below:
* Generate new .ovpn profile for existing clients
* Or manually remove `comp-lzo` line from clients .ovpn profiles yourself.
* Or you can upgrade to v0.2.9 and enable lzo option back by invoking the following command.
```bash
$ ovpm vpn update --enable-use-lzo
```
But please note that this is not recommended as lzo option is [deprecated](https://community.openvpn.net/openvpn/wiki/DeprecatedOptions?__cf_chl_jschl_tk__=0468cbb180cdf21ca5119b591d260538cf788d30-1595873970-0-AY1Yn79gf57uYv2hrAKPwvzk-xuDvhY79eHrxJqWw1hpbapF-XgOJSsglI70HxmV78LDzJSz7m_A7eDhvzo_hCM-tx4UB7PfccKTtoHATGrOBqq4mHDhggN_EwJ7yee3fIzLgc9kvhL9pOCiISlE3NpbC0SOX21tYwFs1njdpOVGG4dHLMyudNKRGexapsQxiD2i23r30i_dzqS12QobGvPe96CuWS84ARjIRAUlutT6t5SxkccyOBunduDnbgYoB7RN8x7ab8y8Paim9ypizKiEHbxwP0Z2Y3lXByKdzHUUZSJzjzolHyRyQx-nSBuZQQ#Option:--comp-lzo) in OpenVPN.