Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenVPN Monitor Enhancements #41

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 56 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,22 @@ Read the [docker installation instructions](https://github.com/ruimarinho/docker

### Install dependencies and configure apache


##### raspberryPi
raspberryPi follows instructions set out in Debian / Ubuntu below, with the exception of the python-semantic-version.
You will need to install this manually from PIP using the below command.
When following the Debian / Ubuntu instructions remember to remove the python-semantic-version item from the apt-get command

```shell
pip install semantic_version
```

#### Debian / Ubuntu
The below will install and configure the web application, applying relative Alias commands to access local resources

```shell
apt-get -y install python-geoip python-ipaddr python-humanize python-bottle python-semantic-version apache2 libapache2-mod-wsgi git wget geoip-database-extra
echo "Alias /images/ /var/www/html/openvpn-monitor/images/" > /etc/apache2/conf-available/openvpn-monitor.conf
echo "WSGIScriptAlias /openvpn-monitor /var/www/html/openvpn-monitor/openvpn-monitor.py" > /etc/apache2/conf-available/openvpn-monitor.conf
a2enconf openvpn-monitor
systemctl restart apache2
Expand All @@ -63,7 +75,6 @@ echo "WSGIScriptAlias /openvpn-monitor /var/www/html/openvpn-monitor/openvpn-mon
systemctl restart httpd
```


### Checkout OpenVPN-Monitor

```shell
Expand All @@ -75,7 +86,7 @@ git clone https://github.com/furlongm/openvpn-monitor.git
### Configure OpenVPN

Add the following line to your OpenVPN server configuration to run the
management console on 127.0.0.1 port 5555:
management console on 127.0.0.1 port 5555: (This port is arbitary, you may choose any)

```
management 127.0.0.1 5555
Expand All @@ -87,13 +98,52 @@ access to the management interface.

### Configure OpenVPN-Monitor

The example configuration file `/var/www/html/openvpn-monitor/openvpn-monitor.conf`
The provided configuration file `/var/www/html/openvpn-monitor/openvpn-monitor.conf`
should give some indication of how to set site name, add a logo, etc. You can
also set a default location (latitude and longitude) for the embedded maps.
If not set, the default location is New York, USA.

Edit `/var/www/html/openvpn-monitor/openvpn-monitor.conf` to match your site.

Complete the following by editing `/var/www/html/openvpn-monitor/openvpn-monitor.conf` to match your site.

#### OpenVPN-Monitor
The below should help you quickly configure your vpn monitor with relevant settings

| Option | Default | Description |
| --- | --- | --- |
| site | Example | The name of the monitoring box - Free text, can be anything |
| logo | None | Optional logo. This will be displayed in the top right. No default provided |
| latitude | -37.8067 | Latitude location for the centre of map and marker icon to be set. Requires longitude or no action is taken. |
| longitude | 144.9635 | Longitude location for the centre of map and marker icon to be set. Requires latitude or no action is taken. |
| Maps | False | Will the site display the map|

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
| Maps | False | Will the site display the map|
| Maps | False | Will the site display the map |

| geoip_data | /usr/share/GeoIP/GeoIPCity.dat | GeoLocation data location. Unless you are making locational changes this should not need to be changed. |
| datetime_format | %a %b %d %H:%M:%S %Y | DateTime format for server display |
| marker | False | Display a marker on the map for the OpenVPN-Monitor Box |
| externalip | 0.0.0.0 | External IP of the OpenVPN-Monitor box. If latitude and longitude not specified then this is used to locate the Monitor box |
| pervpn_control | False | Display a layer control to turn of element markers per vpn |
| itemtype_control | False | Display a layer control to turn off element markers per connection type |
| allowFullscreen | False | Allow the map to be displayed in FullScreen mode |

Note: If latitude, longitude and externalip all cannot be validated then Melbourne, Australia becomes the default centre and marker location.

#### Per VPN Settings
The below should help you quickly configure connections to vpns

| Option | Default | Description |
| --- | --- | --- |
| host | localhost | Specifies the IP or DNS name of the VPN management interface to connect. |
| port | 5555 | Specifies the Port of the management internace to connect. |
| name | default | Free Text. The name of the VPN Connection |
| show_disconnect | False | Show a button to disconnect clients |
| externalip | 0.0.0.0 | External IP of the VPN Server. If latitude and longitude not specified then this is used to locate the VPN |
| latitude | -35.308065 | Latitude location for the vpn marker icon. Requires longitude or no action is taken. |
| longitude | 149.124521 | Longitude location for the vpn marker icon. Requires Latitude or no action is taken. |
| marker | False | Display a marker on the map for the VPN Server |
| connection_lines | False | Display connection lines between the Server and the Clients. Requires marker to be on for VPN. |

Note: If latitude, longitude and externalip all cannot be validated then Canberra, Australia becomes the default marker location.

### Your Done
You should now be able to navigate to `http://myipaddress/openvpn-monitor/`

Note the trailing slash, the images may not appear without it.
Expand Down Expand Up @@ -127,3 +177,5 @@ the COPYING file.
Flags are created by Matthias Slovig ([email protected]) and are licensed under
Creative Commons License Deed Attribution-ShareAlike 3.0 Unported
(CC BY-SA 3.0). See http://flags.blogpotato.de/ for more details.
Fullscreen control provided by https://github.com/brunob/leaflet.fullscreen
Spiderfy (Closeby Marker control) provided by https://github.com/jawj/OverlappingMarkerSpiderfier-Leaflet
Binary file added images/favicon.ico
Binary file not shown.
Binary file added images/marker-icon-blue.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/marker-icon-green.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/marker-icon-orange.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/marker-icon-red.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/route-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 21 additions & 0 deletions openvpn-monitor.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,30 @@ site=Example
maps=True
geoip_data=/usr/share/GeoIP/GeoIPCity.dat
datetime_format=%d/%m/%Y %H:%M:%S
marker=True
externalip=0.0.0.0
pervpn_control=True
itemtype_control=True
allowFullscreen=True

[VPN1]
host=localhost
port=5555
name=Staff VPN
show_disconnect=False
externalip=0.0.0.0
#latitude=-35
#longitude=149
marker=True
connection_lines=True

#[VPN2]
#host=remotehost
#port=5555
#name=Test VPN
#show_disconnect=False
#externalip=0.0.0.0
#latitude=-35
#longitude=149
#marker=True
#connection_lines=True
Loading