Teil 1.4.1: E-Mail Benachrichtigungen bei Logins

Wie im Abschnitt zur Serversicherheit beschrieben haben wir jetzt bereits einiges getan um den Server sicherer zu machen.

Ein optionale kleine Unterstützung ist es, sich über alle erfolgreichen SSH-Logins informieren zu lassen. Das macht natürlich nur Sinn bei Servern, auf die nur wir oder wenige andere Zugriff haben. Auch erhöht es nicht wirklich die Sicherheit des Systems, kann einem aber (ähnlich wie bei den Benachrichtigungen zum Raid-Status) über mögliche fremde Zugriffe frühzeitig informieren.

Da wir im Abschnitt zuvor bereits die Möglichkeit, E-Mails zu versenden, konfiguriert haben, lässt sich dies auch ganz leicht umsetzen. Wir halten uns dabei grob an die Anleitung hier.

Zuerst erstellen wir eine neue Bash-Script Datei mit

sudo nano /etc/ssh/login-notify.sh

Hier kopieren wir nun folgenden Text hinein:

#!/bin/sh

# Setup:
recepient="EureEmail@Adresse.de"

if [ "$PAM_TYPE" != "close_session" ]; then
    host="`hostname`"
    subject="Benachrichtigung: SSH-Login auf $host"
    message="Erfolgreicher SSH-Login auf $host registriert - Benutzer: $PAM_USER ($PAM_RHOST)"
    echo "$message" | mail -s "$subject" "$recepient"
fi

Unter „recipient“ tragt ihr nun die E-Mail Adresse in, unter welcher ihr die Benachrichtigungen empfangen wollt.

Was macht das Script? Ganz einfach, wenn es aufgerufen wird schickt es eine E-Mail über euren zuvor konfigurierten E-Mail Dienst an die von euch angegebene E-Mail Adresse und informiert über den Nutzer, welcher sich angemeldet hat, und dessen IP-Adresse. „subject“ und „message“ könnt ihr euren Wünschen entsprechend anpassen.

Wir speichern und schließen die Datei. Nun machen wir die Datei noch ausführbar mit

sudo chmod +x /etc/ssh/login-notify.sh

und beschränken ihren Benutzer auf root

sudo chown root:root /etc/ssh/login-notify.sh

Jetzt kommt der wichtige Teil. Wir öffnen die Datei

sudo nano /etc/pam.d/sshd

und fügen ganz unten folgendes hinzu

session optional pam_exec.so seteuid /etc/ssh/login-notify.sh

und speichern die Datei ab. Diese Zeile gibt im Grunde nur an, dass bei jeder erfolgreich geöffneten Session das eben erstellte Script gestartet werden soll, wodurch die E-Mail versendet wird. Das funktioniert übrigens auch bei der Verbindung über SFTP.

Damit werdet ihr nun über jeden erfolgreichen Login informiert. Solltet ihr einen Login feststellen, der nicht von euch kam, so wisst ihr, dass sich jemand Fremdes auf eurem Server über SSH eingeloggt hat.