- Mitglied seit
- 19. Aug 2008
- Beiträge
- 18.275
- Punkte für Reaktionen
- 4
- Punkte
- 0
Hallo Forum,
ubuntulinux und ich haben gemeinsam ein hübsches kleines Script gebastelt. Das Teil dient dazu eine schnelle Übersicht über die verbundenen OpenVPN-Clients an einem Server im Browser zu haben. Man bekommt Infos zu jeder Verbindung und zum Traffic pro Client und Total. Zusätzlich sind einige Durchschnittsberechnungen beim Traffic eingebaut und man kann (wenn man will) die verbundenen Clients auf Google Maps sehen ;-)
Das Ganze ist in PHP geschrieben und sollte einigermassen OOP sein. Es gibt ein Sprachfile, das man problemlos erweitern/anpassen kann. Zum Spass haben wir als Sprache auch ch für Schwizerdütsch eingebaut ;-)
Das Script setzt folgendes voraus:
Wenn ihr aber alles nach /volume1/web/openvpn installiert, dann sollten alle Pfade der Klasse stimmen. Stellt auch sicher, dass der Webserver die Dateo geoLiteCity.dat lesen darf.
Im Verzeichnis lib/php/class gibt es ein server.php Dieses Script sollte regelmässig als cronjob ausgeführt werden, damit die Statistikfiles auf dem Server erstellt/aktualisiert werden. Zum testen reicht es jedoch, dass Script einmal auf der Konsole mit
auszuführen.
Das Script aktualisiert sich per default alle 10 Sekunden via JS-AJAX (kann ebenfalls in der Klasse angepasst werden)
Was noch angepasst werden sollte im File /volume1/web/openvpn/lib/php/class/openvpn_class.php ist die Klasseneigenschaft $auth_user. Das ist ein Array mit Usernamen/Passworten von Usern, die eine OpenVPN-Clientverbindung trennen dürfen. Dabei ist der Schlüssel des Array der Username (hier admin) und der Wert das Passwort (hier london21).
Der Quellcode sollte einigermassen kommentiert sein ;-)
Das zip ist relativ gross, weil wir noch Länderflaggen eingebaut haben, die die Herkunft der einzelnen OpenVPN-clients anzeigen
Über Rückmeldungen würden wir uns freuen, auch über Schelte ;-)
Viel Spass damit. Anschauen kann man sich es vorab hier (https://brain-force.ch/openvpn/) Login gast Kein Passwort (allerdings kann Gast keine Verbindungen beenden, das darf nur der admin)
Unter http://svn.brain-force.ch/listing.php?repname=Repos&path=%2Fdiskstation%2FOpenVPNStats%2F gibt es den aktuellsten Code (inkl aller Icons) im SVN
ubuntulinux und ich haben gemeinsam ein hübsches kleines Script gebastelt. Das Teil dient dazu eine schnelle Übersicht über die verbundenen OpenVPN-Clients an einem Server im Browser zu haben. Man bekommt Infos zu jeder Verbindung und zum Traffic pro Client und Total. Zusätzlich sind einige Durchschnittsberechnungen beim Traffic eingebaut und man kann (wenn man will) die verbundenen Clients auf Google Maps sehen ;-)
Das Ganze ist in PHP geschrieben und sollte einigermassen OOP sein. Es gibt ein Sprachfile, das man problemlos erweitern/anpassen kann. Zum Spass haben wir als Sprache auch ch für Schwizerdütsch eingebaut ;-)
Das Script setzt folgendes voraus:
- openVPN ist installiert
- in der openvpn.conf ist das Management Interface via telnet aktiviert (mehr Infos unter http://openvpn.net/index.php/open-source/documentation/miscellaneous/79-management-interface.html)
Code:management localhost 7505
- GeoLiteCity Datenbank ist vorhanden. Das File wird unter /volume1/web/openvpn/GeoLiteCity.dat erwartet (kann jedoch in der Klasse angepasst werden). Das dat-File gibt es hier: http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
Wenn ihr aber alles nach /volume1/web/openvpn installiert, dann sollten alle Pfade der Klasse stimmen. Stellt auch sicher, dass der Webserver die Dateo geoLiteCity.dat lesen darf.
Im Verzeichnis lib/php/class gibt es ein server.php Dieses Script sollte regelmässig als cronjob ausgeführt werden, damit die Statistikfiles auf dem Server erstellt/aktualisiert werden. Zum testen reicht es jedoch, dass Script einmal auf der Konsole mit
Code:
php /volume1/web/openvpn/lib/php/class/server.php
Das Script aktualisiert sich per default alle 10 Sekunden via JS-AJAX (kann ebenfalls in der Klasse angepasst werden)
Was noch angepasst werden sollte im File /volume1/web/openvpn/lib/php/class/openvpn_class.php ist die Klasseneigenschaft $auth_user. Das ist ein Array mit Usernamen/Passworten von Usern, die eine OpenVPN-Clientverbindung trennen dürfen. Dabei ist der Schlüssel des Array der Username (hier admin) und der Wert das Passwort (hier london21).
Der Quellcode sollte einigermassen kommentiert sein ;-)
Das zip ist relativ gross, weil wir noch Länderflaggen eingebaut haben, die die Herkunft der einzelnen OpenVPN-clients anzeigen
Über Rückmeldungen würden wir uns freuen, auch über Schelte ;-)
Viel Spass damit. Anschauen kann man sich es vorab hier (https://brain-force.ch/openvpn/) Login gast Kein Passwort (allerdings kann Gast keine Verbindungen beenden, das darf nur der admin)
Unter http://svn.brain-force.ch/listing.php?repname=Repos&path=%2Fdiskstation%2FOpenVPNStats%2F gibt es den aktuellsten Code (inkl aller Icons) im SVN
Anhänge
Zuletzt bearbeitet: