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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7254266327
Url: https://administrator.de/contentid/7254266327
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
7 Kommentare
Neuester Kommentar
Bspw. etwa so
Setzt natürlich einen konfigurieren MUA (Mail User Agent) vorraus.
Gruß
#!/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
Gruß
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?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, Hallo,
z.B. was meinst du mit zu überwachender Peer? Nehme ich dort den Namen, wie ich ihn über pivpn add angelegt habe?
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!