Spam-Versand über ein PHP Script verhindern

LL0rd

New Member
Hallo Leute,

ich hatte heute ein Problem bei mir auf dem Server. Über eine Seite, die ich hoste, wurde heute Spam verschickt. Das Script gehörte zu einer Joomla Version und der Bug schon seit Jahren bekannt. Doch der Besitzer hat sich wohl nicht drum gekümmert. Okay, das Problem habe ich nun beseitigt. Doch ich stelle mir nun die Frage, wie ich auf Dauer mit solchen Problemen umgehe.

Eine Ursache des Problems ist die Exim Konfiguration, ich habe bei mir in exim 127.0.0.1 als Server eingetragen, über den Relay erlaubt ist:

Code:
relay_from_hosts = 127.0.0.1
...
accept  hosts         = +relay_from_hosts

Aber offensichtlich hat auch ein Rate Limit nicht gegriffen:

Code:
deny    ratelimit = 100 / 1h / per_mail / leaky / $authenticated_id

Da frage ich mich momentan, wieso der nicht gegriffen hat.

Ich weiß leider momentan nicht, welche Konsequenzen es hat, wenn ich den Localhost aus der Liste der Hosts rausnehme, die über den Server relayen dürfen.

Und ein anderes Problem dürfte wohl die PHP Konfiguration sein. Momentan ist PHP so konfiguriert, dass man einfach mit mail() Mails verschicken kann. Ich denke, dass ich hier als erstes die Konfiguration so ändern werde, dass man sich per SMTP erst einmal authen muss. Aber ich glaube nicht, dass es so eine gute Lösung des Problems ist.

Die Mails wurden ja über Joomla verschickt, wäre da ein Server mit SMTP-Auth eingetragen, wären die Mails trotzdem rausgegangen, da gültiger Auth.

Kann mir jemand von euch sagen, in welche Richtung ich konzeptionell gehen soll, um Spamversand künftig zu verhindern - auch wenn die Scripte von Kunden Amok laufen.
 
Moin moin... Ich vermute mal, die erste Antwort von jemandem wird sein, Deinem "Kunden" zu erklären das er ein Update von seinem Joomla machen soll.

Ich persönlich habe auch auf meinem root-Server ein Joomla der älteren Generation auf meinem Server. Sogar drei mal! Das eine davon ist (wieso auch immer) absolut still und hat bis heute NIE ärger gemacht. Das andere von den dreien hat sehr gerne mal SPAM versandt. Ich habe, wie Du schon gesagt hast mail() verboten, dass hat schon mal einiges gebracht. Aber Du musst auch noch zusätzlich noch einen verbieten, ich glaube ini_set() war das, ansonsten kommen die wieder in das Joomla System rein, aktivieren mail() wieder und der Spaß geht von vorne los.

Zusätzlich solltest Du auch mal schauen welches Joomla das genau ist und welche Datei da einfach SPAM raus feuert. Der huschi hier aus dem Forum hat auf seiner Seite mal etwas über einen Sendmail-Wrapper geschrieben, ich glaube mit diesem Script habe ich ganz einfach herausgefunden welche PHP Datei eigentlich etwas versendet.

Und wenn Du das herausgefunden hast, schau Dir mal das root-Verzeichnis von dem Webspace in Ruhe an... Nicht das da noch komische Dinge auftauchen.

Gruß, Domi
 
Ich vermute mal, die erste Antwort von jemandem wird sein, Deinem "Kunden" zu erklären das er ein Update von seinem Joomla machen soll.

Ich habe mir am gleichen Tag eine Dose Vaseline gekauft und dem Kunden ein Foto davon geschickt, versehen mit der Unterschrift "Beim nächsten Mal >>komme<< ich bei dir vorbei!".

Sonnst ist auf dem Server alles relativ sauber.
Mein Problem ist momentan eher ein konzeptuelles. Heute hat dieses Script rumgespamt, morgen ist es ein anderes. PHP muss irgendwie in der Lage sein, Mails zu verschicken. Und hätte ich mail() verboten, hätte der Angreifer sein SPAM trotzdem (zumindest zum Teil) verschickt. Denn er hat die Mails über Joomla verschickt. Wäre bei Joomla ein SMTP Server mit SMTP-Auth eingetragen, wären die Mails trotzdem rausgegangen.

Ich habe mal in den Logs nachgeschaut. Es sind insgesamt knapp 600 Mails rausgegangen. Weitere 400 waren in der Queue. Und genau deshalb ist der Spam-Versand so schnell aufgefallen. Trotzdem haben die 600 Mails gereicht, um auf einer Blacklist zu landen und dass irgend so ein A*** eine Abuse Mail ans RZ mit "Server sofort und dauerhaft sperren" schrieb.
 
Einige Anregungen:

- Drosseln der PHP-versandten Emails. Geht nur wenn der Kunde kein shell_exec machen kann oder in einem Jail liegt. Es setzt auch voraus dass Port 25 ausgehend für den Kunden blockiert ist.

- mod_security mit aktuellen Regeln gegen Exploits (bspw Atomicorp). Kostet aber

- Filterung ausgehender Emails in Postfix, bspw Überprüfung der Links auf Blacklisting.
 
Trotzdem haben die 600 Mails gereicht, um auf einer Blacklist zu landen und dass irgend so ein A*** eine Abuse Mail ans RZ mit "Server sofort und dauerhaft sperren" schrieb.
Hast du die Mail im Original?
Dein Rechenzentrum macht wirklich das, was irgendjemand denen vorschlägt?
Na dann sei froh, dass er nicht geschrieben hat "Admin erschießen".

Dass Server, die durch Spam/DDOS auffallen, direkt gesperrt werden, ist bei einigen RZs Standard.
Warum der andere jetzt ein Arsch ist, wo dein Server ihn belästigt hat, versteh ich allerdings nicht.
 
Natürlich reichen 600 Spammails um auf einer Blacklist zu landen. Was denkst du denn? Dass erst ab 10.000 geblockt wird?

RZs sperren Server nicht einfach mal so sondern wenden sich erst an dich als Admin. Es sei denn dein Hoster ist ignorant oder du ignorierst Abusemails. :eek:

Wenn du in Joomla-Software benutzt, die Sicherheitslücken hat und zum Spammen missbraucht werden kann, dann bist DU der Schuldige und Hinternheini, nicht der Zugespammte.

Wenn der Kunde unsichere Software verwendet und dadurch Spam versandt wird, solltes du ihn drauf hinweisen und je nach deiner Vertragsgestaltung kündigen.
 
Last edited by a moderator:
- Filterung ausgehender Emails in Postfix, bspw Überprüfung der Links auf Blacklisting.
Verträgt sich das mit dem Datenschutz ausgehende Mails zu filtern und zu blockieren?

§ 206 StGB Unbefugtes Unterdrücken einer zur Übermittlung anvertrauten Sendung
gemäß § 206 Abs. 2 Nr. 2 StGB.
Unterdrücken bedeutet beim Versendens einer E-Mail, dass die E-Mail den Empfänger nicht, nicht vollständig oder erst mit einiger Zeitverzögerung erreicht.
 
Last edited by a moderator:
Verträgt sich das mit dem Datenschutz ausgehende Mails zu filtern und zu blockieren?

§ 206 StGB [...] zur Übermittlung anvertrauten Sendung

Ja, wenn man auf ein Detail achtet: Man darf sich die Mails nicht anvertrauen lassen.

Wenn du die Mails schon bei der Übergabe mit 5XX ablehnst, ist es okay, weil du die Mail nie angenommen hast. Das ist, als wenn dir die Post sagt: "Ne, Gaskartuschen können Sie hier nicht in Geschenkpapier packen und verschicken."
 
Back
Top