GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> OpenVPN

So überwachen Sie OpenVPN-Verbindungen mit dem openvpn-monitor-Tool

In diesem Tutorial lernen wir, wie man OpenVPN-Verbindungen mit dem openvpn-monitor-Tool überwacht. Dieses Tutorial konzentriert sich auf die Überwachung von OpenVPN-Verbindungen, die mit der OpenVPN Community Edition hergestellt wurden. OpenVPN CE bietet einen De-facto-Standard zum Erstellen sicherer VPN-Verbindungen über das Internet unter Verwendung eines benutzerdefinierten Sicherheitsprotokolls, das SSL/TLS verwendet.

Beim Durchsuchen des Internets nach Tools, die zur Überwachung aktiver OpenVPN-Verbindungen verwendet werden können, bin ich auf ein Python-basiertes Tool namens openvpn-monitor gestoßen, das die OpenVPN-Verwaltungsschnittstelle verwendet, um einen HTML-Bericht zu erstellen, der den Status eines OpenVPN-Servers einschließlich aller aktuellen anzeigt Verbindungen.

Überwachen von OpenVPN-Verbindungen mit dem openvpn-monitor-Tool

Voraussetzungen

Bevor Sie fortfahren können, müssen einige Dinge eingerichtet werden.

Installieren und konfigurieren Sie den OpenVPN-Server

Natürlich können Sie OpenVPN-Serververbindungen überwachen wollen, ohne dass ein OpenVPN-Server läuft. Folgen Sie den Links unten, um den OpenVPN-Server auf CentOS/Ubuntu-Systemen zu installieren und einzurichten;

OpenVPN-Server unter CentOS 8 installieren und einrichten

OpenVPN-Server unter Ubuntu 20.04 installieren und einrichten

Verwaltungsschnittstelle aktivieren

openvpn-monitor Tools erfordert, dass die OpenVPN-Verwaltungsschnittstelle aktiviert ist. Die OpenVPN-Verwaltungsschnittstelle ermöglicht es, OpenVPN administrativ von einem externen Programm über einen TCP- oder Unix-Domain-Socket zu steuern. Der OpenVPN-Verwaltungsserver kann auf einem Unix-Socket oder auf einem bestimmten TCP-Port aktiviert werden. Während die Verwendung des Unix-Sockets die empfohlene Methode ist, verwendet das openvpn-monitor-Tool die TCP-Verbindung der OpenVPN-Verwaltungsschnittstelle. Es wird daher dringend empfohlen, die OpenVPN-Verwaltungsschnittstellen-IP auf 127.0.0.1 (localhost) einzustellen, um den Zugriff auf den Verwaltungsserver auf lokale Clients zu beschränken.

Die TCP-Verbindung der OpenVPN-Verwaltungsschnittstelle kann aktiviert werden, indem die Konfigurationsdatei des OpenVPN-Servers bearbeitet und die Zeile management IP port .

vim /etc/openvpn/server/server.conf
...
comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
auth SHA512
# Enable OpenVPN Management Interface on localhost using TCP port 17562
management 127.0.0.1 17562

Die Zeile;

management 127.0.0.1 17562

Legt die IP-Adresse der OpenVPN-Verwaltungsschnittstelle auf 127.0.0.1 (localhost) und den TCP-Port 17562 fest. Der openvpn-monitor erwartet, dass die OpenVPN-Verwaltungsschnittstelle TCP-Port 5555 überwacht. Wir werden das später ändern.

Stellen Sie sicher, dass der zugewiesene Port von keinem anderen Programm auf Ihrem System verwendet wird;

lsof -i :17562

Wenn keine Anwendung den Port verwendet, starten Sie den OpenVPN-Serverdienst neu;

systemctl restart [email protected]

Überprüfen Sie, ob der Port jetzt geöffnet ist;

lsof -i :17562
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
openvpn 44178 root    3u  IPv4 189028      0t0  TCP localhost:17562 (LISTEN)

Stellen Sie sicher, dass der OpenVPN-Serverdienst ausgeführt wird;

systemctl status [email protected]
[email protected] - OpenVPN service for server
     Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-08-16 16:15:46 UTC; 1h 15min ago
       Docs: man:openvpn(8)
             https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
             https://community.openvpn.net/openvpn/wiki/HOWTO
   Main PID: 44178 (openvpn)
     Status: "Initialization Sequence Completed"
      Tasks: 1 (limit: 2282)
     Memory: 1.9M
     CGroup: /system.slice/system-openvpn\x2dserver.slice/[email protected]
             └─44178 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.conf

Aug 16 16:15:46 ubuntu20.kifarunix-demo.com systemd[1]: Starting OpenVPN service for server...
Aug 16 16:15:46 ubuntu20.kifarunix-demo.com systemd[1]: Started OpenVPN service for server.

OpenVPN-Monitor-Tool installieren und einrichten

Es gibt verschiedene Methoden zur Installation des openvpn-monitor-Tools, wie im Github-Repository des Programms beschrieben. In diesem Tutorial verwenden wir Apache, um die openvpn-monitor OpenVPN-Verbindungen zu servern.

Installieren Sie Apache für openvpn-monitor

Installieren Sie Apache und die erforderlichen Paketabhängigkeiten;

apt install git apache2 libapache2-mod-wsgi python3-geoip2 python3-ipaddr python3-humanize python3-bottle python3-semantic-version geoip-database geoipupdate

Laden Sie das Programm openvpn-monitor herunter

Klonen Sie als Nächstes das Github-Repository openvpn-monitor in das Stammverzeichnis Ihres Standard-Webservers. In diesem Setup verwenden wir /var/www/html/openvpn-monitor Verzeichnis.

git clone https://github.com/furlongm/openvpn-monitor.git /var/www/html/openvpn-monitor
ls /var/www/html/openvpn-monitor/
AUTHORS COPYING images MANIFEST.in openvpn-monitor.conf.example openvpn-monitor.py README.md requirements.txt setup.py tests VERSION.txt

openvpn-monitor konfigurieren

Benennen Sie die Beispielkonfigurationsdatei um, openvpn-monitor.conf.example zu openvpn-monitor.conf .

cp /var/www/html/openvpn-monitor/openvpn-monitor.conf{.example,}

Ersetzen Sie die OpenVPN-Verwaltungsschnittstelle, wenn Sie sie auf einen anderen Port als 5555 geändert haben, der in openvpn-monitor.py Python-Programm.

cd /var/www/html/openvpn-monitor
grep -irl 5555 . | xargs -I {} sed -i 's/5555/17562/' {}

Als Nächstes können Sie jetzt die Konfigurationsdatei öffnen und den Site-Namen festlegen, ein Logo hinzufügen und den Standardkartenstandort festlegen (Breiten- und Längengrad, standardmäßig New York, USA).

So sieht unsere modifizierte Konfigurationsdatei aus:

cat /var/www/html/openvpn-monitor/openvpn-monitor.conf
[openvpn-monitor]
site=Kifarunix-demo-VPN
#logo=logo.jpg
latitude=11.016844
longitude=76.955833
maps=True
geoip_data=/var/lib/GeoIP/GeoLite2-City.mmdb
datetime_format=%d/%m/%Y %H:%M:%S

[VPN1]
host=localhost
port=17562
name=Kifarunix-demo VPN
show_disconnect=False

Notieren Sie sich den Speicherort der GeoIP2 City Database. Wenn es auf Ihrem System nicht verfügbar ist, registrieren Sie sich und laden Sie eine kostenlose Version von MaxMind herunter.

Eine weitere Sache ist, dass dieses Setup auf Ubuntu 20.04 getestet wird, wobei Python 3 der Standard ist. Da openvpn-monitor Python verwendet, erstellen Sie einfach einen symbolischen Link von Python 3 zu Python;

ln -s /usr/bin/python3 /usr/bin/python

Apache konfigurieren, um das openvpn-monitor-Skript auszuführen

Führen Sie als Nächstes den folgenden Befehl aus, um Apache für die Ausführung des Python-Skripts openvpn-monitor zu konfigurieren.

vim /etc/apache2/sites-available/openvpn-monitor.conf
ScriptAlias / /var/www/html/openvpn-monitor/openvpn-monitor.py
<Directory /var/www/html/openvpn-monitor>
	Options +ExecCGI
	AddHandler cgi-script .py
	DirectoryIndex openvpn-monitor.py

	AllowOverride None
	Require ip 192.168.0.0/16
</Directory>

Speichern und beenden Sie die Konfigurationsdatei.

Legen Sie den Besitz des openvpn-monitor-Webstammverzeichnisses auf den Apache-Benutzer www-data .

chown -R www-data: /var/www/html/openvpn-monitor/

Überprüfen Sie die Apache-Konfigurationssyntax;

apachectl -t
Syntax OK

Aktivieren Sie die Apache-Site-Konfiguration von openvpn-monitor und deaktivieren Sie die Standard-Site.

a2ensite openvpn-monitor.conf
a2dissite 000-default.conf

Starten Sie Apache und aktivieren Sie ihn für die Ausführung beim Systemstart;

systemctl enable --now apache2

OpenVPN-Monitor debuggen

Sie können openvpn-monitor von der Befehlszeile aus ausführen, um zu überprüfen, ob der HTML-Bericht tatsächlich korrekt generiert wird:

cd /var/www/html/openvpn-monitor
python openvpn-monitor.py

Sie können auch die Option -d zum Debuggen;

python openvpn-monitor.py -d

Beispielausgabe;

...
oms.addListener("click", function(marker) {
   popup.setContent(marker.alt);
   popup.setLatLng(marker.getLatLng());
   map.openPopup(popup);
});
oms.addListener("spiderfy", function(markers) {
   map.closePopup();
});
bounds.extend(centre);
map.fitBounds(bounds);
</script>
</div></div>
<div class="well well-sm">
Page automatically reloads every 5 minutes.
Last update: <b>16/08/2020 19:10:26</b></div>
</div></body></html>
DEBUG:
 === begin vpns
{'VPN1': {'host': 'localhost',
          'name': 'Staff VPN',
          'port': '17562',
          'release': 'OpenVPN 2.4.7 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] '
                     '[LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Sep  '
                     '5 2019',
          'sessions': {},
          'show_disconnect': False,
          'socket_connected': True,
          'state': {'connected': 'CONNECTED',
                    'local_ip': IPv4Address('10.8.0.1'),
                    'mode': 'Server',
                    'remote_ip': '',
                    'success': 'SUCCESS',
                    'up_since': datetime.datetime(2020, 8, 16, 16, 15, 46)},
          'stats': {'bytesin': 0, 'bytesout': 0, 'nclients': 0},
          'version': Version('2.4.7')}}
=== end vpns

Zugriff auf openvpn-monitor im Browser

Wenn alles in Ordnung ist, können Sie nun über die Adresse http://<OpenVPN-server-Address/openvpn-monitor oder http://<OpenVPN-server-Address/ gemäß unserer Weiterleitung.

Und los geht's. Schön, nicht? Alle Kredite gehen an furlongm. Wie Sie sehen können, haben wir den Verbindungsstatus für meine lokal verbundenen OpenVPN-Clients.

Damit endet unser Leitfaden zur Überwachung von OpenVPN-Verbindungen mit dem openvpn-monitor-Tool. Viel Spaß.

Referenz

openvpn-monitor

Verwandte Tutorials

OpenVPN-Server unter Ubuntu 20.04 installieren und einrichten

Konfigurieren Sie die OpenVPN-LDAP-basierte Authentifizierung

Weisen Sie OpenVPN-Clients statische IP-Adressen zu

Konfigurieren Sie den strongSwan VPN-Client auf Ubuntu 18.04/CentOS 8

OpenVPN
  1. So lassen Sie Remote-Verbindungen zu MySQL zu

  2. So richten Sie einen OpenVPN-Server unter Ubuntu 20.04 ein

  3. So richten Sie einen OpenVPN-Server unter Ubuntu 18.04 ein

  4. Wie kann man mit einem anderen Server per SSH auf einen Server zugreifen?

  5. So installieren Sie OpenVPN unter Ubuntu 18.04

So überwachen Sie die Linux-Leistung mit dem Systat-Tool

So richten Sie einen OpenVPN-Server unter Ubuntu 22.04 ein und konfigurieren ihn

So überwachen Sie die Leistung von CentOS 8/7-Servern mit Netdata

So starten Sie Serverdienste mit dem Plesk Services Monitor neu

So überwachen Sie Systemmetriken in Echtzeit mit dem Glances-Tool unter Linux

So richten Sie einen Linux-VPN-Server und -Client mit OpenVPN ein