Email nach SSH Login auf Linux-Server
Aus znilwiki
Ich nutze den SSh Zugang zu meinem Webserver ausschliesslich allein - wenn sich also jemand anders einloggt ist ALARM angesagt!
Von meinem Kollegen Timo F. habe ich die Idee eine Email nach dem Login versenden zu lassen. Dann ist es nämlich schon zu spät um eine Meldung zu verhindern :-)
Die eine geht auf jeden Fall noch raus!
Changelog
- 31.07.2014 erste Version
- 22.03.2015 Nachbesserung sendemail Aufruf + Voraussetzungen
Voraussetzungen
Das Programm sendemail muss installiert sein:
apt-get install sendemail libio-socket-ssl-perl libnet-ssleay-perl perl
Email Benachrichtigung per sshrc
Meldet euch per SSH an und macht folgendes:
sudo -i touch /etc/ssh/sshrc nano /etc/ssh/sshrc
Im Normalfall gibt es die Datei noch nicht und ist ergo leer. Fügt folgende Zeilen ein:
ip=`echo $SSH_CONNECTION | cut -d " " -f 1` name=`nslookup $ip | grep "name =" | cut -d " " -f 3` logger -t ssh-login $USER login from $ip - $name echo "Benutzer -> $USER <- hat sich von IP: $ip / Hostname: $name per SSH angemeldet" | sendemail -q -o tls=no -u "SSH Login: $USER" -f "SSH Spy <sshspy@znil.net>" -t "Bernhard Linz <bernhard@znil.de>" -s localhost &
Erklärung:
- In Zeile 1 ermitteln wir die IP von welcher der SSH Login kommt
- In Zeile 2 ermitteln wir den DNS-Namen zur IP
- In Zeile 4 schreiben wir das ganze ins SYSLOG, siehe /var/log/syslog
- In Zeile 5 senden wir eine Email mit
- Betreff "SSH Login: $USER" -> $USER wird durch den Login Namen ersetzt, z.B. root
- Text "Benutzer -> $USER <- hat sich von IP: $ip / Hostname: $name per SSH angemeldet"
- Absender Email-Adresse: "SSH Spy <sshspy@znil.net>"
- Empfänger Email-Adresse: "Bernhard Linz <bernhard@znil.de>"
- Über Mailserver: localhost
- & startet den Task/das Senden im Hintergrund
Hinweis: In Zeile 1 und 2 müssen die Befehle hinter dem =
unbedingt in diesen Hochkommas von mitte-nach-rechts-unten stehen, zu erreichen mit Shift und der Taste links neben Löschen / Backspace, Rechts neben dem ß
Nun speichern und nano
verlassen - und FINGER WEG! Erst lesen!
Wenn Ihr die Nachricht verschlüsselt senden wollt so entfernt das -o tls=no
aus der letzten Zeile
Testen
Lasst eure erste SSH Sitzung in der Ihr gerade die Einstellungen gemacht habt in Ruhe und eröffnet eine 2. SSH Sitzung!
Wenn etwas schiefgeht habt Ihr so noch eine Türe offen um es rückgängig zu machen!
Sobald Ihr euch zum 2. mal angemeldet hat sollte folgendes passieren:
1. ein Eintrag im SYSLOG, kontrollieren wir wie folgt:
cat /var/log/syslog | grep ssh-login
Ausgabe:
Apr 23 22:43:59 h2108591 ssh-login: root login from 87.167.192.162 - p57A7C0A2.dip0.t-ipconnect.de.
2. Ihr bekommt eine Email wie folgt:
Betreff: SSH Login: root Benutzer -> root <- hat sich von IP: 87.167.192.162 / Hostname: p57A7C0A2.dip0.t-ipconnect.de. per SSH angemeldet
Fehler?
Deshalb sollt Ihr die erste Sitzung offen lassen - falls Ihr euch nicht mehr per SSH anmelden könnt ist nun die Zeit der Fehlersuche gekommen!