Push Benachrichtigung bei SSH Anmeldung

Wenn man sich mal mit dem Thema „Push Benachrichtigung“ auseinander setzt, wird man ganz schnell feststellen, dass die Möglichkeiten fast unendlich sind. Aktuell beschäftige ich mich mit Pushover. Pushover macht eigentlich nichts anderes als Benachrichtigung an dein Smartphone, Tablet oder Computer  zu senden.

So kannst du zum Beispiel deinem Raspberry Pi oder anderem Linux System verklickern, dass eine Push Benachrichtigung an dein Device verschickt werden soll. Im folgenden Beispiel geht es um eine Push Benachrichtigung, die beim Anmelden per SSH verschickt werden soll.

Was wird benötigt: Ein Konto bei Pushover, ein Smartphone und eine dauerhafte Internetverbindung. 😉

Pushover

Zu allererst muss ein Konto eingerichtet werden und ein Device hinterlegt werden. Dazu einfach die App „Pushover“ aus dem jeweiligen AppStore installieren. Konto erstellen oder in ein bereits vorhandenes einloggen und das Device wird direkt in deinem Konto hinterlegt. Für die iOS-App gibt es eine 7-tägige Testversion, die Vollversion für die Plattform kostet dann einmalig 4,99€.

Auf der Startseite legst du dir eine neue Application an, hier habe ich „Plugin“ ausgewählt. Pro Application dürfen im Monat 7.500 Push Benachrichtigungen verschickt werden. Wer möchte darf auch gerne sein Benachrichtigungslimit gegen eine Gebühr aufheben. Pro Application wird auch eine einmalige Application API erstellt, die wir später benötigen.

Pricing for messages

Konfiguration

 

Wir arbeiten mit folgenden Daten: Github

Unter /usr/local/bin erstellen wir die Datei pushover-ssh.sh:

nano /usr/local/bin/pushover-ssh.sh
#!/bin/sh
#
# pushover-ssh.sh
#
# Dieses Script versendet eine Pushover Nachricht wenn eine Anmeldung per SSH durchgefuehrt wird.
#
# Thomas Wenzlaff  15.04.2014 Installationsanleitung unter http://www.wenzlaff.info
#
#
#   (C) 2014 Thomas Wenzlaff http://www.wenzlaff.de
#
#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program.  If not, see {http://www.gnu.org/licenses/}.

# Hier den User Key von der https://pushover.net Seite eingeben:
PUSHOVER_USER=""
# Hier den API Token/Key eingeben. Zu finden unter dem Menü: Apps & Plugins dann die Application
PUSHOVER_API_TOKEN=""

# Ab hier nichts mehr anpassen
if [ -z "$PUSHOVER_USER" ]
 then echo "Der Pushover User muss im Script angegeben werden. Einen Wert für PUSHOVER_USER setzen."
 return 1
fi
if [ -z "$PUSHOVER_API_TOKEN" ]
 then echo "Der Pushover Token muss im Script angegeben werden. Einen Wert für PUSHOVER_API_TOKEN setzen."
 return 1
fi
echo "SSH Zugriff wird nun überwacht"

tail -F /var/log/auth.log | gawk '{if(NR>10 && $0 ~ /sshd/ && $0 ~ /Accepted/)\
{ cmd=sprintf("curl -s \
-F \"token='$PUSHOVER_API_TOKEN'\" \
-F \"user='$PUSHOVER_USER'\" \
-F \"message=SSH Zugriff erfolgt durch %s von %s\" \
-F \"title=Raspberry Pi\" https://api.pushover.net/1/messages.json",$9,$11); \
system(cmd)}}'

Hierbei müssen natürlich noch Daten angepasst werden. Einmal der PUSHOVER_USER mit dem User Key, den ihr auf der Startseite von Pushover findet, wenn ihr eingeloggt seid. Und der PUSHOVER_API_TOKEN, den ihr unter eurer registrierten Application findet.

Damit die gerade erstelle Datei pushover-ssh.sh auf dem System ausführbar ist schießen wir folgenden Befehlt hinterher:

sudo chmod 711 /usr/local/bin/pushover-ssh.sh

Wir führen das Skript aus und schauen ob es funktioniert:

sudo /usr/local/bin/pushover-ssh.sh

Mir wurde folgende Fehlermeldung ausgegeben:

Zeile 41: /usr/local/bin/pushover-ssh.sh: gawk: not found

Also mit folgendem Befehl noch schnell gawk nachinstalliert und das Skript erneut getestet:

apt-get install gawk

Sollte nun die letzte Zeile blinken als würde er arbeiten hat das soweit geklappt und ihr könnt euch auf einem anderen System oder in einem anderen Terminal auf dem gleichen System anmelden. Wichtig: Eine neue Konsole, nicht die vorhanden beenden.

Nun sollte die Push Benachrichtigung auf deinem Device angekommen sein. Hat alles geklappt wollen wir das Skript in den Autostart legen:

crontab -e

und am Ende der Datei in der ersten freien Zeile folgendes einfügen:

@reboot sudo /usr/local/bin/pushover-ssh.sh

 

Die Nachrichten kommen jetzt normal in Pushover an. Wollt ihr den Text in den Benachrichtigungen ändern, eine anderen Priorität auswählen oder den Titel anders gestalteten, könnt ihr das Skript in pushover-ssh.sh anpassen. Die ganzen Optionen findet ihr ganz gut dokumentiert auf Pushover.

Leave a reply:

Your email address will not be published.