Wie geht es meinem Server - Status Mails selbstgemacht
Betreiber eines eigenen Servers kennen sicherlich das Problem, dass man oft nicht weiß was auf dem Server gerade so vor sich geht. Denn man ist ja nicht dauerhaft eingeloggt und schaut ob alles mit rechten Dingen zu geht. Vorhandene Monitoring Funktionen können da helfen, decken aber nicht unbedingt alles ab was man gerne hätte. Aus diesem Grund habe ich das ganze für mich recht einfach und schnell gelöst, indem ich mir eine Reihe kleiner Shell Scripte geschrieben habe, die mich auf dem laufenden halten. Der Aufwand ist bei gewissen Linux Grundkenntnissen nicht sonderlich groß und wenn alle Voraussetzungen erfüllt sind sollte man schnell entsprechende für sich selbst angepasste Scripte erstellen können.
Voraussetzungen:
- Rechte zum kopieren von Dateien (ausführbar von einem Nutzer mit den nötigen Rechten) auf den Server
- Eingerichtete Mail Funktion auf dem Server
- Grundkenntnisse der Linux Befehle und vom Shell Scripting wären hilfreich
#!/bin/bash log=/home/user/log_folder/my_log.log file=/home/user/script_folder/my_script.sh touch $log echo "Aktive Prozesse" > $log date >> $log md5sum $file >> $log echo >> $log pstree >> $log mail -s "BETREFF" MAIL-ADRESSE < $log rm $log
Wir gehen nun wie oben beschrieben vor, dabei sind die ersten 3 Zeilen Dinge die vorab festgelegt werden sollten. Dies Betrifft die Festlegung der zu nutzenden Pfade / Dateien (Zeile 2 und 3) und in der ersten Zeile die Art wie das Script ausgeführt werden soll. In Zeile 4 wird die Datei erstellt, dies ist nicht unbedingt nötigt denn Zeile 5 (fügt lediglich “Aktive Prozesse” als quasi Überschrift in die Datei ein) würde dies bei nicht vorhandener Datei auch übernehmen. Der Übersicht halber habe ich diese Zeile allerdings eingefügt. Die Zeilen 6 und 7 fügen das aktuelle Datum und die Prüfsumme der Datei ein, bei einem veränderten Hash kann man so leicht eine Manipulation des Scripts feststellen, auch wenn dies natürlich keine wirklich sichere Methode ist. “echo » $log” fügt lediglich einen Zeilenumbruch ein. In Zeile 9 führen wir nun den Befehl “pstree” aus, um die aktuelle Prozesshierarchie zu sehen und in unserer temporären Datei zu speichern. Zeile 10 sendet den Inhalt der Datei, als Text innerhalb einer Mail, mit dem gewählten Betreff an die festgelegte Mail Adresse. Der Parameter “-s” gibt dabei an, dass der folgende Parameter der Betreff der E-Mail sein soll. In der letzten Zeile wird die Log Datei gelöscht, da diese ja nur temporär sein soll und bei der nächsten Ausführung wieder neu erstellt wird. Das ganze wird nun noch als Cron-Job in festen Intervallen ausgeführt und schon weiß man ob unbekannte oder ungewollte Prozesse auf dem eigenen Server aktiv sind. Dieses Script kann man nun natürlich noch sehr stark anpassen, zum einen indem man einfach andere Befehle einfügt um weitere Informationen zu erhalten oder zum anderen durch das Hinzufügen von Sicherheitsfunktionen und ähnlichem. Bei Bedarf (Rückmeldungen in den Kommentaren z.B.) werde ich auf dies noch einmal eingehen aber für den Moment soll dieser Beitrag als kleine Anregung reichen.