Ermittle Spammer auf meinem Server

12

Ich habe kürzlich einen erhalten Undelivered Mail Returned to Sender, als ich meinen Newsletter an einen meiner 1500 Kunden gesendet habe. Meine Website verwendet ein Double-Opt-In-Verfahren, um sicherzustellen, dass der Benutzer meinen Newsletter ausdrücklich erhalten möchte.

Die Fehlermeldung:

smtp; 554 ...
    Swisscom AG IP: 94.130.34.42, You are not allowed to send us mail. Please
    refer to xyz.com if you feel this is in error.

Ich habe ein Beispiel für eine Spam-Mail erhalten (vom E-Mail-Anbieter des empfangenden Mailservers):

Received: from mail.com ([94.130.34.42])
        by smtp-27.iol.local with SMTP
        id itOWeYZ6O42IFitOWe35TR; Tue, 13 Feb 2018 03:54:09 +0100
From: "Servizi online - Poste Italiane" <[email protected]>
Subject: Abbiamo ricevuto una segnalazione di accredito
Date: Mon, 12 Feb 2018 11:32:03 -0500

Der Provider gab auch an, dass mein Server gehackt zu sein scheint. Er erklärte weiter, dass "der Empfänger-Mail-Server in diesem Fall einfach das rDNS aufgezeichnet hat, das ihm durch die Verbindungs-IP präsentiert wurde mail.com ([94.130.34.42])" - was definitiv NICHT so ist, wie ich meinen rDNS-Eintrag (mail.lotsearch.de) für meine IP-Adresse konfiguriert habe. Wenn ich rDNS richtig verstanden habe, fragt der empfangende Mailserver die Absender-IP nach einem rDNS-Eintrag ab (94.130.34.42 => sollte in => mail.lotsearch.de aufgelöst werden, was definitiv der Fall ist, wenn ich es von meinem lokalen Computer aus über teste $ host 94.130.34.42).

Wie ist es möglich, rDNS zu fälschen? Ich kann mir nicht vorstellen, wie das technisch funktionieren kann (nur bei einem Man-in-the-Middle-Angriff irgendwo in der Infrastruktur zwischen dem empfangenden Mailserver und meinem Server).

Der Anbieter erwähnte auch, dass "es wahrscheinlich ist, dass ein Computer, der eine Verbindung von meiner IP-Adresse aus herstellt, kompromittiert wurde und diese Nachrichten über direkte Verbindungen an den Empfänger-Mail-Server (auch als direkter MX bezeichnet) sendet". Was direct MXbedeutet Jemand hat an einem meiner E-Mail-Konten gesendete E-Mail-Anmeldeinformationen gestohlen oder gefunden und diese zum Senden von E-Mails verwendet?

Was ich bisher getan habe, um sicherzustellen, dass mein Server NICHT gehackt wird / wird:

  • suchte in den Mail-Protokollen ( var/log/mail*): nichts besonderes drin
  • überprüfte die SSH-Anmeldeprotokolle ( last, lastb): nichts Ungewöhnliches
  • geprüft, ob Postfix Relaying macht: nein, tut es nicht (geprüft über Telnet)
  • via clamav auf schädlinge überprüft: keine ergebnisse
  • installiert und konfiguriert fail2ban für ssh, postfix und dovecot
  • installierte die neuesten Patches / Updates für Ubuntu 16.04 (mache ich jede Woche)
  • Überprüft, ob meine IP-Adresse auf einer schwarzen Liste steht
  • Verifizierter rDNS-Eintrag in der Management-Konsole meines Hosting-Providers: Richtig eingestellt auf mail.lotsearch.de.
  • geänderte Passwörter aller Mail-Accounts
  • öffentliche Schlüssel für den Shell-Zugriff geändert

Wichtiger: [email protected]In den Protokollen gab es keine Informationen über . Wenn also mein Server von einem Spammer missbraucht worden wäre (z. B. wegen durchgesickerter SMTP-Anmeldeinformationen eines der E-Mail-Konten), würde ich das in den Protokolldateien sehen.

Die letzte Möglichkeit, die ich mir vorstellen kann, ist, dass ein Eindringling Malware auf meinem Server platziert hat, die ich noch nicht gefunden habe.

Wie kann ich den ausgehenden Mailverkehr (pro Prozess und pro Port) überwachen?

Nur die Überwachung von Port 25 für ausgehende E-Mails würde nicht helfen, da hierdurch nur unregelmäßige E-Mails, die per Postfix gesendet werden, abgefangen werden, jedoch nicht der E-Mail-Verkehr, der durch eine potenzielle Malware-Infektion verursacht wird (wenn die Malware einen anderen Port als 25 für den direkten Versand von E-Mails / die Kommunikation mit Empfängerservern verwendet). . Wenn ich den ausgehenden Verkehr an allen Ports überwache, erhalte ich eine Möglichkeit, eine große Protokolldatei zu erstellen, die ich nicht effizient nach verdächtigen Aktivitäten durchsuchen kann.

BEARBEITEN - Test für offenes Relais hinzugefügt:

$ telnet mail.lotsearch.de 25
$ HELO [email protected]
250 mail.lotsearch.de
$ MAIL FROM: [email protected]
250 2.1.0 Ok
$ RCPT TO:<[email protected]>
454 4.7.1 <[email protected]>: Relay access denied

EDIT - Ausführen von Webapps

mfuesslin
quelle
"Wenn ich ausgehenden Verkehr an allen Ports überwache" ... Warum? Welchen anderen Datenverkehr sendet dieser Mailserver? Sind Sie sicher, dass Sie kein offenes Relais konfiguriert haben? Und niemand mit Zugriff zum Senden von E-Mails auf dem Server hat Anmeldeinformationen verloren?
Daniel Widrick
@DanielWidrick Der Mailserver wird auch als Webserver verwendet, sodass auch Datenverkehr bei 443 und 80 möglich ist. Ich dachte an eine Art Malware auf meinem Server, die direkt mit externen Mailservern kommuniziert (nicht über das standardmäßige Postfix des Mailservers). Über offenes Relais: Ich habe meine Frage mit der von mir durchgeführten Überprüfung bearbeitet, um sicherzustellen, dass es kein offenes Relais gibt. Ihre letzte Frage ist schwer zu beantworten, da ich nichts über den "Zustand" der Computer meiner Kunden weiß (auf denen die E-Mail-Konten meines Servers konfiguriert sind) oder wenn sie mit Malware / Keylogger infiziert sind, die Anmeldeinformationen usw. erhalten haben.
mfuesslin
Festplatte ist billig. In Ihrer Situation gibt es einen gültigen Fall für die Aufbewahrung von Protokollen im Wert von einem Jahr. Erwägen Sie, Syslog usw. zu verwenden, um sie direkt vom Server zu versenden.
Criggie

Antworten:

13

Bevor ich zu meinem Vorschlag komme, möchte ich noch etwas zu etwas sagen, was Ihr Provider Ihnen gesagt hat:

 Received: from mail.com ([94.130.34.42])
        by smtp-27.iol.local with SMTP
        id itOWeYZ6O42IFitOWe35TR; Tue, 13 Feb 2018 03:54:09 +0100

Dies bedeutet nicht , dass der umgekehrte DNS für 94.130.34.42 mail.com ist (oder war). Es zeigt vielmehr an, dass der SMTP-Client mail.comin seiner HELO(oder EHLO) Zeile gesendet hat . (Ein gut konfigurierter Mailserver hätte diese Verbindung vollständig abgelehnt, aber das liegt bei Swisscom, nicht bei Ihnen ...) Diese Zeile zeigt keinen umgekehrten DNS-Eintrag an. Wenn ja, wäre es in den Klammern aufgetaucht. Beispielsweise:

Received: from mail-io0-f197.google.com (mail-io0-f197.google.com [209.85.223.197])

In diesem Fall ist der erste Hostname der Name, als den sich der Mailserver identifiziert hat EHLO. Der zweite Hostname ist der zum Zeitpunkt der Verbindungsherstellung aufgezeichnete Reverse-DNS.

RFC 5321 Abschnitt 4.4 erläutert das Format der Received: -Zeile mit einer formalen Grammatik.

In Ihrem Fall wurde kein Reverse-DNS aufgezeichnet. Da Ihre IP-Adresse einen PTR-Eintrag enthält, kann dies daran liegen, dass sie nicht nachgeschlagen haben oder dass ein vorübergehender DNS-Fehler aufgetreten ist.


Nun haben Sie anscheinend einen Webhosting-Service und zahlreiche Web-Apps. Wenn eine dieser Bedrohungen kompromittiert ist, wird möglicherweise Spam gesendet. Diese stellen häufig direkte Verbindungen zu Remotemailservern her, indem sie ihre MX-Einträge abrufen und eine Verbindung zu Port 25 herstellen, als wären sie tatsächlich ein Mailserver, anstatt Mail an den lokalen Mail-Spool oder einen authentifizierten Mail-Dienst an den Ports 587 oder 465 zuzustellen wie es legitime Web-Apps tun.

Eine Möglichkeit, dies zu verhindern, besteht darin, eine Firewall-Regel zu implementieren, die ausgehende Verbindungen an Port 25 verhindert, es sei denn, der Benutzer ist der Mailserver-Benutzer. Beispielsweise:

iptables -I OUTPUT -m owner ! --uid-owner postfix -m tcp -p tcp --dport 25 -j REJECT

Web-Apps können E-Mails nicht mehr direkt an Remote-SMTP-Server übermitteln, sondern müssen den lokalen E-Mail-Spool oder einen authentifizierten E-Mail-Dienst verwenden.

Michael Hampton
quelle
Vielen Dank für Ihre Antwort. Wie muss ich die iptablesRegel festlegen, nach der Postfix- und Plesk-Benutzer E-Mails senden können? Ist es auch möglich, Crondaemon (meine Cronjobs) so zu konfigurieren, dass E-Mails über SMTP via Postfix gesendet werden? Ich möchte den cron-Benutzer nicht zu iptables hinzufügen (als weitere Ausnahme), da es sicherer wäre, den E-Mail-Verkehr nach Möglichkeit durch Postfix laufen zu lassen. Ist es möglich, dass crontab postfix zum Versenden von Fehlerprotokollen verwendet? Sollte ich das hier auf serverfault in eine neue Frage stellen?
Mfuesslin
Ich weiß nicht, wie ich das mit Plesk machen soll. Wir behandeln hier sowieso keine Fragen zu Plesk .
Michael Hampton
OK, aber wenn ich mehrere Benutzer angeben möchte, die Daten über Port 25 senden dürfen, kann ich einfach die iptables-Regel kopieren und eine zweite mit dem anderen Benutzer hinzufügen, oder muss ich sie innerhalb einer Regel angeben?
Mfuesslin
Wahrscheinlich nicht; Sie müssten eine Benutzerkette erstellen, denke ich.
Michael Hampton
Eine Sache über die bereitgestellte iptables-Regel: Sind Sie sicher, dass wir die Regel nicht für Benutzer festlegen müssen root? Weil der Master-Prozess von Postfix rootin den meisten Fällen von ausgeführt wird. Oder postfixspawnt der Postfix-Master-Prozess Unterprozesse mit -user, um E-Mails zu senden / zu erledigen? Ich habe deine iptables-Regel ausprobiert, E-Mails konnten nicht zugestellt werden ... Wenn ich ps -ef | grep "postfix"sehe, dass einige postfixUnterprozesse vom -user und ein Hauptprozess vom root... ausgeführt werden
mfuesslin
7

In der heutigen Zeit ist der Versuch, einen eigenen Mail-Server einzurichten, größtenteils eine Niederlage, und Sie sind besser dran, einen erschwinglichen Dienst zu finden. Davon abgesehen ..

  • Sehen Sie sich Ihre Protokolle an, die an den Anbieter gehen, der Sie blockiert hat, und prüfen Sie, ob Sie Verdacht auf etwas haben. Es ist möglich und kommt häufig vor, dass jemand vergisst, dass er Ihren Newsletter abonniert hat, und Sie als Spam markiert. Dann können Sie je nach Anbieter auf die Blacklist des Anbieters gelangen, obwohl Sie nichts falsch gemacht haben.

  • Trennen Sie Massensendungen von all Ihren anderen E-Mails auf zwei Server.

  • Halten Sie Protokolle für Wochen auf ein Minimum und bessere Monate. Wenn also etwas passiert, recherchierst du.

  • Überprüfen Sie Ihre Protokolle täglich auf ähnliche Situationen von jedem Anbieter und prüfen Sie sie täglich oder schneller. Sobald Sie blockiert werden und weiterhin versuchen, sie zu senden, kann sich die Situation verschlechtern. Sie können von einem temporären Block zu einem permanenten Block wechseln, um an eine schwarze Liste gemeldet zu werden.

  • Ich bin mir nicht sicher, wie sie es implementieren, aber ich weiß, dass viele Anbieter für ausgehende Mail-Dienste Folgendes tun: Wenn ein Anbieter / eine IP-Adresse eine E-Mail blockiert, werden keine weiteren E-Mails gesendet. Im Idealfall möchten Sie so etwas. Da der zweite blockiert wird, wird das Problem nur durch das Senden von mehr verschlimmert.

Francisco1844
quelle
4
@mfuesslin Mailchimp wäre die falsche Plattform. Mailchimp ist ein E-Mail-Marketing-Service. Was Sie brauchen, ist ein Transaktions-E-Mail-Service. Schauen Sie in Mandrill (im Besitz der gleichen Leute, die Mailchimp besitzen). Ein Block mit 25.000 E-Mails kostet 20 US-Dollar im Monat. Nicht sehr teuer. Wenn Sie so viele E-Mails täglich von Ihrer eigenen IP-Adresse senden, wird nur eine hohe Spam-Box-Rate erreicht. Dies ist ein verlorener Kampf. Sie könnten ein ganzes Team einstellen, das nichts anderes tut, als sich den ganzen Tag über um Ihre Zustellbarkeitsraten zu kümmern, und trotzdem nicht so gut sein wie die Nutzung eines Transaktionsdienstes.
SnakeDoc
1
Benutzer von serverfault.com sollten in der Lage sein, einen Mailserver auszuführen. es ist nicht so schwer zu tun. Es scheint jedoch nicht, dass der Mail-Server fehlerhaft ist, es sieht aus wie eine kompromittierte Webseite, die den Spam direkt versendet.
Wurtel
1
@wurtel nur weil man weiß, wie man etwas macht, heißt das nicht, dass es Sinn macht, es zu tun. Wenn Sie einen Service für X / Monat finden, um das zu tun, was Sie brauchen, und Sie 4X / Monat Zeit / Mühe benötigen, um es selbst zu tun, dann ist es wirklich nicht sinnvoll, es selbst zu tun.
Francisco1844
1
@ Wurtel fähig? Ja. Konsequent an den Posteingang senden und täglich mehr als 1500 E-Mails senden? Fragwürdig und wahrscheinlich eine Nr. - Niemand sagt, dass Sie es nicht können ... nur, dass Sie es gut, konsequent und über einen langen Zeitraum hinweg viel mehr als 20 US-Dollar pro Monat kosten .
SnakeDoc
2
Ich habe einen solchen Server über 15 Jahre gewartet und regelmäßig 30-50.000 Mailinglisten-Nachrichten sowie Hunderte von Nachrichten pro Tag für mehrere Domains gesendet. Außerdem verbringe ich selten mehr als eine Stunde pro Monat (abgesehen von den regelmäßigen Aptitude-Upgrades). Der Server bedient sowieso mehrere Websites, sodass dort keine zusätzlichen Investitionen getätigt werden. Ich bin ein bisschen traurig, dass die Leute den Kauf von Dienstleistungen befürworten, um Dinge zu tun, die Sie leicht selbst tun können. Es ist nichts Falsches daran, ein bisschen zu lernen.
Wurtel