Small Rack (Ruby) application serving OpenVPN status file
Go to file
cn a78a178150 Bump version 2013-05-03 22:26:53 +02:00
bin Convert into gem 2013-05-03 15:32:08 +02:00
examples Convert into gem 2013-05-03 15:32:08 +02:00
init.d Use config file 2013-05-03 16:06:30 +02:00
lib Bump version 2013-05-03 22:26:53 +02:00
spec Add tests and bug fixed parser 2013-05-03 22:23:45 +02:00
.gitignore Convert into gem 2013-05-03 15:32:08 +02:00
.travis.yml Don't use 1.8.7 2013-05-03 21:17:27 +02:00
Gemfile Convert into gem 2013-05-03 15:32:08 +02:00
LICENSE Add license 2013-02-25 22:56:33 +01:00
README.md Allow dropping privs 2013-05-03 22:26:07 +02:00
Rakefile Convert into gem 2013-05-03 15:32:08 +02:00
openvpn-status-web.gemspec Use better_errors 2013-05-03 19:49:09 +02:00

README.md

openvpn-status-web

Build Status

Description

Small (another word for naive in this case, it's simple and serves my needs) Rack application providing the information the OpenVPN server collects in it's status file especially including a list of currently connected clients (common name, remote address, traffic, ...).

It lacks:

  • tracking multiple status at the same time
  • newer status file versions than v1
  • caching (parses file on each request, page does auto-refresh every minute as OpenVPN updates the status file these often by default)
  • management interface support
  • possibly more...

Usage

Install the gem:

gem install openvpn-status-web

Create a configuration file in YAML format somewhere:

# listen address and port
host: "0.0.0.0"
port: "8080"
# optional: drop priviliges in case you want to but you should give this user at least read access on the log files
user: "nobody"
group: "nogroup"
# logfile is optional, logs to STDOUT else
logfile: "openvpn-status-web.log"
# display name for humans and the status file path
name: "My Small VPN"
status_file: "/var/log/openvpn-status.log"

Your OpenVPN configuration should contain something like this:

# ...snip...
status /var/log/openvpn-status.log
status-version 1
# ...snip...

Advanced topics

Authentication

If the information exposed is important to you serve it via the VPN or use a webserver as a proxy to handle SSL and/or HTTP authentication.

Init scripts

The Debian 6 init.d script assumes that openvpn-status-web is installed into the system ruby (no RVM support) and the config.yaml is at /opt/openvpn-status-web/config.yaml. Modify to your needs.

License

openvpn-statsu-web is licensed under the Apache License, Version 2.0. See LICENSE for more information.