Go to file
Serjoscha Bassauer dbe3233632 - moved the configuration interface elements (logs, users, webadmins) to tabs; this makes useability a tiny bit better
- "enabled" in the user config is now a checkbox that can be toggled in order to activate or deactivate the user
2017-10-12 00:29:46 +02:00
.github Add github issue template 2017-08-16 22:52:50 +02:00
css Add beautiful chocobo favicon 2017-02-07 20:21:03 +01:00
include - moved the configuration interface elements (logs, users, webadmins) to tabs; this makes useability a tiny bit better 2017-10-12 00:29:46 +02:00
installation Fix deprecated option in server configuration 2017-08-03 13:56:26 +02:00
js - moved the configuration interface elements (logs, users, webadmins) to tabs; this makes useability a tiny bit better 2017-10-12 00:29:46 +02:00
sql Fix init script 2017-07-26 16:40:52 +02:00
.bowerrc Big refresh 2015-07-09 21:19:54 +02:00
.gitignore Fix database date: 0000-00-00 -> NULL 2017-02-05 17:07:56 +01:00
bower.json Update version 0.3.2 2017-02-07 20:36:20 +01:00
CHANGELOG.md Update version 0.3.2 2017-02-07 20:36:20 +01:00
desinstall.sh Hide root password at desinstallation step 2016-09-11 19:22:39 +02:00
index.php fixed little grammar mistake 2017-08-15 21:28:21 +02:00
install.sh Fix openrsa install 2017-08-24 08:30:27 +02:00
LICENSE.md Update to AGPL licence 2017-02-24 18:25:24 +01:00
migration.php Fix migration script 2017-02-07 22:02:14 +01:00
README.md added curl package for debian jessie 2016-12-15 14:43:26 +01:00
update.sh Fix database date: 0000-00-00 -> NULL 2017-02-05 17:07:56 +01:00

OpenVPN Admin

Summary

Administrate its OpenVPN with a web interface (logs visualisations, users managing...) and a SQL database.

Previsualisation configuration Previsualisation administration

Prerequisite

  • GNU/Linux with Bash and root access
  • Fresh install of OpenVPN
  • Web server (NGinx, Apache...)
  • MySQL
  • PHP >= 5.5 with modules:
    • zip
    • pdo_mysql
  • bower
  • unzip
  • wget
  • sed
  • curl

Debian Jessie

# apt-get install openvpn apache2 php5-mysql mysql-server php5 nodejs unzip git wget sed npm curl
# npm install -g bower
# ln -s /usr/bin/nodejs /usr/bin/node

CentOS 7

# yum install epel-release
# yum install openvpn httpd php-mysql mariadb-server php nodejs unzip git wget sed npm
# npm install -g bower
# systemctl enable mariadb
# systemctl start mariadb

Other distribution... (PR welcome)

Tests

Only tested on Debian Jessie. Feel free to open issues.

Installation

  • Setup OpenVPN and the web application:

    $ cd ~/my_coding_workspace
    $ git clone https://github.com/Chocobozzz/OpenVPN-Admin openvpn-admin
    $ cd openvpn-admin
    # ./install.sh www_base_dir web_user web_group
    
  • Setup the web server (Apache, NGinx...) to serve the web application.

  • Create the admin of the web application by visiting http://your-installation/index.php?installation

Usage

  • Start OpenVPN on the server (for example systemctl start openvpn@server)
  • Connect to the web application as an admin
  • Create an user
  • User get the configurations files via the web application (and put them in /etc/openvpn)
  • Users on GNU/Linux systems, run chmod +x /etc/openvpn/update-resolv.sh as root
  • User run OpenVPN (for example systemctl start openvpn@client)

Update

$ git pull origin master
# ./update.sh www_base_dir

Desinstall

It will remove all installed components (OpenVPN keys and configurations, the web application, iptables rules...).

# ./desinstall.sh www_base_dir

Use of