fmeyer84
Goto Top

Wireguard (piVPN): E-Mail bei Verbindungsherstellung

Hallo,

ich habe jetzt seit mehreren Wochen erfolgreich meinen Raspi 4 mit piVPN und Wireguard am laufen.

Aus verschiedensten Gründe hätte ich aber gerne, dass ich eine E-Mail kriege, wenn eine VPN Verbindung hergestellt wird.

Hat da jemand eine Idee oder sowas schon umgesetzt? Out of the Box kann das meiner Recherche nach piVPN / Wireguard nicht.

Leider hab ich null Ahnung / Erfahrung im Scripting unter Linux.

Wäre für Ideen / Hilfen dankbar!

LG
Fabian

Content-ID: 7254266327

Url: https://administrator.de/contentid/7254266327

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

7010350221
7010350221 21.05.2023, aktualisiert am 22.05.2023 um 17:20:23 Uhr
Goto Top
Bspw. etwa so
#!/bin/bash
# Public Key des peers der zu monitoren ist
PEER='xxxxxxxxxxxxxxxxxxxxxxxxxxxx'  
# WG interface
INTERFACE='wg0'  
# Mail Empfänger 
MAIL='user@domain.de'  
# -----
# Zeit des letzten Handshakes holen
oldhandshake=$(wg show $INTERFACE latest-handshakes | grep "$PEER"  | cut -f2)  
# Zeit der letzten Benachrichtigung setzen
lastnotification=0
# Dauerloop
while true;do
    # letzten Handshake mit dem peer ermitteln
    lasthandshake=$(wg show $INTERFACE latest-handshakes | grep "$PEER"  | cut -f2)  
    # wenn letzter Handshake größer als letzter ist und zwischen der letzten Benachrichtigung mindestens eine Stunde vergangen ist
    if [[ $lasthandshake -gt $oldhandshake && $lastnotification -lt $(date -d '-1 hour' +%s) ]];then  
         # sende mail
         echo "Peer $PEER is online!" | mail -s "Peer online: $PEER" $MAIL  
         lastnotification=$(date +%s)
    fi
    oldhandshake=$lasthandshake
    sleep 5
done
Setzt natürlich einen konfigurieren MUA (Mail User Agent) vorraus.

Gruß
fmeyer84
fmeyer84 22.05.2023 um 04:18:15 Uhr
Goto Top
Hallo,

danke für deine Antwort.

Kannst du mir dein Script bitte näher erklären?

Grüße
Fabian
7010350221
7010350221 22.05.2023 aktualisiert um 07:37:40 Uhr
Goto Top
Stehen doch schon Zu den Zeilen drin ?!
Leider hab ich null Ahnung / Erfahrung im Scripting unter Linux.
Wie willst du dann verstehen was ich dir hier dazu erzähle?
fmeyer84
fmeyer84 22.05.2023 um 08:15:36 Uhr
Goto Top
Hallo,

z.B. was meinst du mit zu überwachender Peer? Nehme ich dort den Namen, wie ich ihn über pivpn add angelegt habe?

Wo müsste ich das Script anlegen? Wie kriegt das Script mit, dass eine Verbindung hergestellt wurde? Muss ich das z. B. alle paar Minuten über nen Cronjob ausführen lassen?

Danke für deine Hilfe!
7010350221
7010350221 22.05.2023 aktualisiert um 08:22:21 Uhr
Goto Top
Zitat von @fmeyer84:

Hallo,

z.B. was meinst du mit zu überwachender Peer? Nehme ich dort den Namen, wie ich ihn über pivpn add angelegt habe?
Peer ist der Public Key des Peers, wg show zeigt sie dir.
Wo müsste ich das Script anlegen?
Einmal beim Boot starten.
Wie kriegt das Script mit, dass eine Verbindung hergestellt wurde?
Durch den Timestamp des letzten Handshakes. Es gibt bei Wireguard in dem Sinne keine echte Verbindung da Cryptokey-Routing, durch den Handshake Timestamp lässt sich aber ermitteln wann zuletzt Daten übertragen wurden.
Muss ich das z. B. alle paar Minuten über nen Cronjob ausführen lassen?
Läuft dauerhaft in Schleife ... Siehe Kommentare im Skript!
fmeyer84
fmeyer84 22.05.2023 um 18:06:59 Uhr
Goto Top
Hallo,

danke für deine Ausführungen, ich werde das am WE mal testen und dann berichten.

Grüße
Fabian
fmeyer84
fmeyer84 23.05.2023 um 19:02:13 Uhr
Goto Top
Hallo,

ich habe msmtp installiert und nach Google Recherche mit einem web.de Konto konfiguriert.

Test E-Mail kommt an.

Dann habe ich den Script erstellt unter /root/mon-vpn.sh und mit chmod +x ausführbar gemacht und gestartet, die betreffende VPN Peer Verbindung hergestellt und die Mail kommt an.

Jetzt meine Fragen:

1. wie starte ich das Script immer bei einem Neustart?
2. Kann ich in der E-Mail auch anstatt des Peer Schlüssel was anderes angeben, z. B. der Name wie ich ihn mit pivpn add erstellt habe?
3. Wie kann ich das Zeitintervall zwischen den Handshakes verringern (z. B. 1 Minute)?

Vielen Dank nochmal für deine Hilfe.

Grüße
Fabian