OpenVPN gehört mittlerweile zu meinen regelmäßig genutzten Tools. Zum einen benötige ich einen VPN Tunnel, falls ich von außerhalb auf meine Systeme zugreifen möchte, zum anderen kann ich darüber auch meinen Internetverkehr leiten, wenn ich mit einem unbekannten Hotspot verbunden bin. Aktuell läuft mein OpenVPN Server auf einem Raspberry Pi Modell 1B, der für diesen Zweck völlig ausreichend ist. Klick
Um zu sehen, was so alles auf meinem OpenVPN Server los ist, wollte ich eine Benachrichtigung in Form einer Email erhalten, sobald eine Verbindung aufgebaut wurde. Dazu wird als erstes ein MTA (Mail Transfer Agent) benötigt, der sich um das Versenden von Nachrichten kümmert. Eine schlanke und einfache Lösung bietet „ssmtp“. Wie es installiert und konfiguriert wird, habe ich hier beschrieben: Klick
Im nächsten Schritt geht es darum, eine Aktion auszulösen, sobald eine OpenVPN Verbindung aufgebaut wird. Dazu gibt es den Konfigurationsparameter „client-connect“. Dieser sorgt dafür, dass nach einer Verbindung eine beliebige Aktion ausgelöst wird. In diesem Fall soll ein Skript gestartet werden, welches eine Email mit bestimmten Informationen versendet. Damit das funktioniert, muss der zusätzliche Parameter „script-security“ mit angegeben werden. Beide Parameter werden in die OpenVPN Server Konfiguration eingefügt.
sudo nano /etc/openvpn/server.conf
script-security 2 --client-connect /usr/local/bin/openvpn_connect.sh
Der Wert „2“ bei „script-security“ bedeutet, dass eigens erstellte Skripte ausgeführt werden dürfen. Ohne diesen Parameter würde nichts passieren. Das auszuführende Skript muss auch noch mit folgendem Inhalt erstellt werden.
sudo nano /usr/local/bin/openvpn_connect.sh
#!/bin/bash recipient=your@email.de echo " Connection Information X.509 name: $common_name Public IP: $trusted_ip VPN IP: $ifconfig_remote" | mail -s "OpenVPN connection established" $recipient exit
Der Wert der Variable „recipient“ muss noch an die eigene Empfängeradresse angepasst werden. Als Inhalt werden noch der Name des verwendeten Zertifikats, die Public IP von der aus der Zugriff stattfindet sowie die verwendete VPN Adresse mit angegeben. Da das Skript direkt von OpenVPN ausgeführt wird, können auch die dort verwendeten Variablen angesprochen werden.
Das neu erstellte Skript muss noch ausführbar gemacht werden.
sudo chmod +x /usr/local/bin/openvpn_connect.sh
Als letzter Schritt muss der OpenVPN Server neu gestartet werden, damit die Änderungen angenommen werden.
sudo systemctl restart openvpn.service
Ab jetzt wird bei jeder OpenVPN Verbindung eine Email mit den dazugehörigen Informationen versendet.