I am a SPAMMER …
Verdammt … lange, lange ist’s her, dass ich hier geschrieben habe, aber nun habe ich mir vorgenommen, den Blog wieder aufleben zu lassen. Vielleicht komme ich später auch noch einmal dazu, zu schreiben warum hier so lange Pause war, aber das ist jetzt erst einmal eine gänzlich andere Geschichte.
Leider hat die lange Blogpause und genau zu meinem momentanen Problem geführt, denn ich habe nicht nur nicht gebloggt, sondern ich habe mich auch generell nicht wirklich um meinen kleinen Server gekümmert und genau das hat sich jetzt gerächt.
Was passiert, wenn man sich nicht um seinen Server kümmert? Genau! Die eventuell existierenden Schwachstellen werden früher oder später ausgenutzt. Jupp… genau das scheint hier passiert zu sein, denn mein Server hat massenhaft Spam-Mails rausgeschoben.
Doch mal langsam und von Vorne … am 25.07. habe ich eine Benachrichtigung vom Abuse-Team meines Hosters erhalten, dass mein Server als Spam-Schleuder gemeldet wurde und dass ich hier reagieren solle. Anfangs habe ich das ja noch für einen schlechten Schwerz gehalten, aber ruckizucki kamen auch schon die nächsten Meldungen über das Abuse-Team und nun wusste ich, dass ich hier aktiv werden musste. Doch wo fängt man hier genau an? Bisher ist mir ja so ein Mist nicht passiert und da habe ich ein wenig kopflos reagiert. Mein erster Schritt: Erst einmal die installierten Packages auf den aktuellen Stand bringen.
Und da war auch schon mein erster Fehler … in der ganzen Panik habe ich mir natürlich nicht genau überlegt, was ich wie aktualisieren wollte bzw. was ich vielleicht mal vorher sichern sollte. Und nachdem die ersten Updates installiert waren, da traten auch schon die ersten schwerwiegenden Fehler auf :-? . Als erstes lief der Web-Server nicht mehr richtig und nachdem ich den wieder einigermaßen hingebogen bekommen habe, musste ich feststellen, dass PHP nicht mehr korrekt eingebunden war :big_ooh_ang: .
Irgendwann lief dann der Web-Server wieder und PHP war auch wieder korrekt eingebunden, aber die SQL-Datenbank wurde nicht mehr angesprochen und ließ sich auch nicht mehr starten. So nach und nach musste ich nur noch den Reparaturen hinterlaufen und da war es einfacher, die Sache mal strukturierter anzugehen. Also kurzer Hand eins der letzten Backups eingespielt (vom 19.07.) und dann mal direkt aufgeräumt. MIST! Das war dann die nächste Kurzschlussreaktion! :big_ooh_ang:
Durch das Zurückspielen des Backups waren die Probleme zwar alle wieder weg und ich konnte den Server wieder absichern, aber so habe ich leider natürlich auch sämtliche Log-Files verloren. Also eine saubere Forensik geht definitiv anders! Heißt …. ich habe keine Ahnung, wie jetzt nun wirklich der Spam über meinen Server verbreitet wurde. Verdammt!
Egal … jetzt ging es erst einmal an’s Absichern.
- Schritt 1: soweit es geht die installierten Packages auf den aktuellsten Stand bringen
Ich habe also soweit die Packages aktualisiert, aber den Web-Server, die PHP-Installation, den SQL-Server und den Mail-Server habe ich hier erst einmal ausgespart. Nachdem ich mir die neue Packages mal genauer angeschaut hatte, musste ich feststellen, dass meine genutzten Versionen schon auf einem recht aktuellen Stand waren und somit kann ich mir die später vornehmen. - Schritt 2: komplett Aktualisierung der eingesetzten CMS
Ich habe hier also sowohl die Grundinstallationen, als auch die eingesetzten Plugins auf den jeweils aktuellsten Stand gebracht. Natürlich habe ich vorher jeweils ein Backup angelegt und nach der Aktualisierung ebenfalls ein neues Backup erstellt. - Schritt 3: ALLE eMail-Passwörter aktualisiert
Sämtliche Kennwörter aller Mailboxen wurden komplett aktualisiert. Hier wurden jetzt keine Passwörter mehr „gebaut„, sondern es wurden Zufallspasswörter mit Hilfe eines Passwortgenerators generiert, die eine neue größere Mindestlänge haben und aus sämtlichen Zeichen (groß, klein, Zahlen, Sonderzeichen) bestehen. - Schritt 4: Alte/Unbenutzte eMail-Boxen abgeschaltet
… und nicht nur abgeschaltet, sondern komplett vom System entfernt inklusive sämtlicher zugehöriger Dateien und Einträge in sämtlichen Configs. - Schritt 5: Alte/Unbenutzte User vom Server abgeschaltet
… und auch hier … nicht nur abgeschaltet, sondern komplett entfernt inklusive sämtlicher zugehöriger Dateien und Einträge in sämtlichen Configs. - Schritt 6: Alte/Unbenutzte Virtual Hosts aus dem WebServer entfernt
… abgeschaltet und aus der Config entfernt … - Schritt 7: einen Sendmail-Wrapper zwischengehängt
Um zu sehen, von wo aus gemailt wurde, habe ich einen Sendmail-Wrapper vor Sendmail geschaltet. Wie genau ich das gemacht habe, kann man unten unter „Sendmail-Wrapper“ sehen. - Schritt 8: Alte/Unbenutze Webmail-Seiten abgeschaltet
…und auch hier wieder …. abgeschaltet, archiviert und dann komplett gelöscht. - Schritt 9: Full-Virus-Scan
Auf allen Rechnern, die mir direkt unterstehen, einen vollen Virenscan laufen lassen und die Leute, die bei mir eMail nutzen, aber wo ich nicht an den Rechner komme, informiert, dass sie auch einen vollen Scan laufen lassen sollen. - Schritt 10: die komplette Einstellung des MailServer geprüft
Alle Configs und Mod-Files geprüft, um hier eine Fehlkonfiguration auszuschließen. - Schritt 11: Alte Gästebücher abgeschaltet
Teilweise waren hier noch selbstprogrammierte, alte Gästebücher auf dem Server, die teilweise auch eine Info-Mail rausgeschickt haben, wenn ein neuer Eintrag vorlag. Diese Gästebücher habe ich abgeschaltet und vom Server gelöscht. - Schritt 12: Alte Mail-Queue geprüft
… die sollte ja komplett leer sein, da ich ja dummerweise ein altes Backup eingespielt hatte … aber sicherheitshalber noch mal geprüft, dass hier nicht noch massenhaft Spammails in der Queue standen. - Schritt 13: Alle eingesetzten/benutzen CGI-Verzeichnis geprüft
Überprüft, ob und welche CGI-Verzeichnis auf dem Server eingebunden sind und dann geschaut, was dort so für Scripte lagen. - Schritt 14: Alte/Unbenutzte Domains zurückgegeben
Einige alte/unbenutzte Domains gekündigt und zurückgegeben und diese dann natürlich auch aus den entsprechenden Configs für Mail und Web entfernt.
Alles reichlich viele Schritte und das war alles auch nicht ganz so easy und reichlich Arbeit, aber ich war ja auch selbst Schuld. Wie auch immer … das ganze ist jetzt schon eine Weile her und bisher scheint es funktioniert zu haben. Bisher scheinen keine Spam-Mails mehr über meinen Server verteilt zu werden, was ja schon einmal beruhigend ist.
Bevor ich nun noch zu einem weiteren Punkt komme … die Reputation im Netz, schreibe ich erst einmal was zu meinem Sendmail-Wrapper.
Sendmail-Wrapper
Im Regelfall wird ja Sendmail benutzt, um Mails vom Server zu verschicken. Sowohl PHP als auch Perl nutzen im Regelfall Sendmail und somit wollte ich mal „tracken“, was genau sendmail benutzt. Hierzu habe ich mir einen Wrapper aufgesetzt. Hier mal Schritt für Schritt das Ganze:
- mit which sendmail rausfinden, wo sendmail liegt (bei mir /usr/sbin/)
- mit which sh rausfinden, wo sh liegt (bei mir /bin/)
- das Original-Sendmail mit mv /usr/sbin/sendmail /usr/sbin/sendmail-original wegkopieren
- den Sendmail-Wrapper mit vi /usr/sbin/sendmail schreiben und folgenden Code hinterlegen:
#!/bin/sh
TODAY=`date -Iseconds`
echo date=[$TODAY] sendmail-wrapper: USER:[$USER] from PWD:[$PWD] — site=[${HTTP_HOST}],script=[${SCRIPT_NAME}],uid=[${UID}],user=[$(whoami)],client=[${REMOTE_ADDR}] >> /tmp/mail.sendmail-wrapper
(echo X-Additional-Header: $(dirname $PWD);cat) | /usr/sbin/sendmail-original „$@“ - mit chmod 755 /usr/sbin/sendmail den neuen Wrapper ausführbar machen
Fertig! :top_ang: Ab sofort kann in der Datei /tmp/mail.sendmail-wrapper nachgeschaut werden, von wo aus Sendmail aufgerufen wurde. Leider gibt es nicht alle vollständigen Infos, aber es ist auf jeden Fall schon mal ein erster Ansatz. Ab hier kann man dann schauen, was es genau war… je nach Eintrag in diesem Log-File. Weiterhin sollten wir nun in Mails einen zusätzlichen Header-Eintrag finden, der uns später helfen könnte, sollte erneut Spam über unseren Server verteilt werden.
Die Reputation
Tja … jetzt war ich also als Spammer gebrandmarkt und leider leidet da ein wenig die Reputation drunter. Eine sehr interessante Seite hierzu ist http://multirbl.valli.org/ Auf dieser Seite kann man prüfen, ob der eigene Server (oder auch jeder x-beliebige Server) auf Blacklisten steht. Bei mir war das bei 26 Blacklisten der Fall. Die jeweiligen Blacklisten kann man nun kontaktieren und einen „remove“ beantragen. Mal muss man hierzu beschreiben, was man zur Problemlösung gemacht hat, mal muss man einfach nur abwarten und, man glaubt es kaum, mal soll man sogar für einen „frühen“ Remove zahlen. Also ich habe NICHT dafür bezahlt… soweit kommt das noch … und somit wird es wohl auch noch dauern, bis ich von allen Listen wieder runter bin. Momentan scheine ich noch auf 9 Listen zu stehen.
Sehr interessant ist auch die Seite https://www.senderscore.org/ Hier wird der Server bewertet und je höher die Score ist, desto besser ist seine Reputation. Einfach mal schauen, da das anscheinend häufiger von Firmen benutzt wird. Meine Score kommt langsam aber sicher zurück. Noch bin ich dort als „High Volume Sender“ hinterlegt, was meinen Score negativ beeinflusst.
Sodele …. das sollte es also zum Topic „Spam“ gewesen sein … hoffentlich!
Ich werde also jetzt regelmäßiger die Updates im Auge behalten und auch den Sendmail-Wrapper halte ich mal noch im Auge.
Last 10 Comments