OK ok, ein altes Thema, denn noch habe ich es gerade an der Hand und somit kommt wieder ein kleiner Beitrag dazu hier 🙂

Man kann seine Server nicht zu 100% absichern. Um im Fall der Fälle einen kleinen Anhaltspunkt zu haben, lasse ich mir vom jeweiligen Server gerne eine E-Mail schicken sobald jemand eine root-shell öffnet. Selbstverständlich ist es Schlangenöl, wenn ich es als Security Feature bezeichnen würde! Warum ich es denn noch gerne einsetzte möchte ich daher kurz erklären.

Erlangt ein Angreifer (aus welchen Gründen auch immer) erweiterte Rechte auf einem System, möchte ich ungern erst später von Kunden davon hören…. Weil Mist auf der Webseite steht oder irgendwelche Abuse-Mails bei mir aufschlagen…. Hat sich ein Angreifer erweiterte Rechte auf dem Server erarbeitet, kann er natürlich seine Aktivitäten und Anwesenheit „verschleiern“.

Verschickt das System bei jeder Eröffnung einer root shell eine E-Mail an mich, habe ich zumindest einen Anhaltspunkt. Denn wenn sich auf irgendeinem Server jemand als root anmeldet ohne das ich eine solche Anmeldung erwarten würde und dann vielleicht noch von einer IP-Adresse, welche mir komisch vorkommt, ja dann habe ich meinen Anhaltspunkt dieses zu hinterfragen!

Natürlich sollte die verschickte E-Mail nicht an den gleichen Server geschickt werden, sonst frisst der Angreifer die E-Mail auf, noch bevor ich sie lesen kann. Da die E-Mail direkt mit dem Login verschickt wird, ist sie meist schon unterwegs, noch bevor der Angreifer sie aufhalten kann. Es ist und bleibt aber Schlangenöl!!!!

Die eigentliche Befehlszeile kursiert in den gängigen Suchmaschinen. Folgendes ist also copy & paste….

Das Programm mailx sorgt dabei für den Mailversand auf der Shell. Die folgende Befehlszeile tut nichts weiter als den letzten „SSH“-Login abzugreifen, den ~Absender~ des Logins heraus zu fummeln und es mir per E-Mail zu schicken. Damit es bei jedem Start der Bash des Users Root erfolgt, landet die Zeile im Home des Roots in der Datei: /root/.bashrc

echo 'ALERT - Root Shell Access (ServerName) on:' `date` `who` | mail -s "Alert: Root Access from `who | cut -d'(' -f2 | cut -d')' -f1`" root-logins@kernel-error.com

Ich darf an der Stelle noch erwähnen, das ich meinem SSH-Server verboten habe DNS Abfragen zu tätigen. So landet in meinem Fall direkt die IP Adresse in der E-Mail und kein Hostname.

/etc/ssh/sshd_config

UseDNS no

Ein Login sorgt nun also für eine E-Mail mit folgendem Inhalt:

ALERT - Root Shell Access (dlg-srv88) on: So 3. Aug 19:28:18 CEST 2014 root pts/0 2014-08-03 19:28 (1.2.3.4)

Dieses kann nun auf gleichem Wege auf andere Benutzer ausgeweitet werden. Man könnte auch zusätzlich noch die letzten und wichtigen Logdateien anhängen. Ich denke aber es sollte nur ein Hinweis bleiben und nicht versucht werden zu einer Security Lösung ausgebaut werden, denn es greift sicher nicht in jedem Fall und es lässt sich ebenfalls aushebeln.