Auf DNS Blocklist ohne SPAM

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
reox
Beiträge: 2464
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Auf DNS Blocklist ohne SPAM

Beitrag von reox » 28.09.2016 22:20:31

Hi,
Ein Mailserver landete jetzt schon das 3. mal auf einer Domain Blocklist. Ich vermute wenn man da mal irgendwo drauf war, kommt man nicht so schnell wieder von den anderen runter.
Nun hab ich aber ein wenig den Maillog durchgeschaut und bemerkt, dass doch recht einige Mails an Adressen gehen, wo ich aktiv nichts hinsende. Scheinbar spoofen manche Spammer den Sender und die mail wird bei mir rejected. Die Nachricht geht dann zurück an den gespooften Sender und erzeugt somit Traffic an Adressen die ggf nen SPAM Honeypot sind und mich dann auf die Blocklist setzen.
Kann das sein?
Macht es daher Sinn Mails leise zu droppen? Aus Anti-Spam sicher sicherlich aber für einen normalen Nutzer ist das sicher ziemlich schlecht...

Hat da jemand Konfigurationshinweise oder Tools zum testen ob der eigene Mailserver vielleicht doch SPAM anfällig ist?

Benutzeravatar
heisenberg
Beiträge: 3556
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Auf DNS Blocklist ohne SPAM

Beitrag von heisenberg » 28.09.2016 22:51:39

Scheinbar spoofen manche Spammer den Sender und die mail wird bei mir rejected.
Spam-Absender sind idR gefälscht. Wenn Du die Mail, die an Deine eigene Domain erst einmal annimmst, statt die sofort zu verweigern und dann immer wieder versuchst die Nichtzustellbarkeits-Nachricht an den gefälschten Absender zurückzusenden(der ja wahrscheinlich gar nicht existiert), dann landest Du evtl. auf irgendwelchen Backscatter-Listen. Wegen Backscatter-Listings würde ich aber keine Mails blocken. Am besten Du schaust Dir Dein Mailserverprotokoll mal etwas genauer an für einzelne Mails. Es können viele Gründe sein.

Protokollanalyse

Mails die vom Mailserver versandt werden haben eine Mail-ID. Du könntest alle Logeinträge aus Deinem Mailserver mit der entsprechenden ID rausgreppen und zusätzlich noch die Mail-IDs, die dazu in Bezug stehen. Sprich,wenn Mail mit ID A nicht zugestellt werden kann, dann wird eine Mail(Nichtzustellbarkeitsnachricht) mit ID B generiert. In einem Logeintrag ist dann ein Eintrag mit der ID A der Ursprungsnachricht enthalten mit ID B der Unzustellbarkeitsnachricht im Logtext.

Postfix-Beispiel für den Zusammenhang von ID der Originalnachricht und ID der Unzustellbarkeitsmeldung

Code: Alles auswählen

Sep 28 13:09:14 koala postfix/pickup[2945]: EA55A80C5C: uid=1006 from=<absender@domain.com>
Sep 28 13:09:14 koala postfix/cleanup[20801]: EA55A80C5C: message-id=<e942a1b467b8496d8eb5a6b00978c5b3@blablub.de>
Sep 28 13:09:15 koala postfix/qmgr[3473]: EA55A80C5C: from=<absender@domain.com>, size=23413, nrcpt=1 (queue active)
Sep 28 13:09:15 koala postfix/smtp[20825]: EA55A80C5C: to=<unbekannter-empfaenger@domain.de>, relay=mx01.kundenserver.de[217.72.192.67]:25, delay=0.54, delays=0.16/0/0.13/0.25, dsn=5.0.0, status=bounced (host mx01.kundenserver.de[217.72.192.67] said: 550 Requested action not taken: mailbox unavailable (in reply to RCPT TO command))
Sep 28 13:09:15 koala postfix/cleanup[20800]: 6A05780C62: message-id=<20160928110915.6A05780C62@koala.blablub.com>
Sep 28 13:09:15 koala postfix/bounce[20827]: EA55A80C5C: sender non-delivery notification: 6A05780C62
Sep 28 13:09:15 koala postfix/qmgr[3473]: 6A05780C62: from=<>, size=25329, nrcpt=1 (queue active)
Sep 28 13:09:15 koala postfix/qmgr[3473]: EA55A80C5C: removed
Sep 28 13:09:15 koala postfix/smtp[20824]: 6A05780C62: to=<absender@domain.com>, relay=absende-mx.domain.com[1.2.3.4]:25, delay=0.4, delays=0.04/0/0.01/0.35, dsn=2.0.0, status=sent (250 2.0.0 Queued mail for delivery.)
Sep 28 13:09:15 koala postfix/qmgr[3473]: 6A05780C62: removed
Mailtraffic kontrollieren

Eine gute Massnahme ist es den Mailtraffic zu kontrollieren. Dafür gibt's z. B. die Werkzeuge pflogsumm(Postfix, Mailstatistiken, Kommandozeile) und Mailgraph(grafische Auswertung des Mailtraffics). Damit bekommst Du die Information wie viele Mails von Deim Server versendet werden.

Wenn es ein Problem gibt, dann füllt sich die Mailqueue, weil Mails von Deinem Server wegen Spamverdacht, bzw. überschreiten von eingestellten Limits erst einmal vom Empfänger auf die Warteliste gesetzt werden. Besser ist es natürlich schon vorher informiert zu sein(Siehe voriger Absatz).
Macht es daher Sinn Mails leise zu droppen?
Leise droppen auf keinen Fall. Im Zweifelsfall haftest Du als Mailserverbetreiber für eine angenommene aber nicht zugestellte Mail. Entweder ablehnen, das bekommt der Absender mit oder annehmen und dem Empfänger tatsächlich zustellen.

Ich würde einfach mal vermuten, dass Dein Mailserver nicht-existierende Adressen annimmt.
Hier kannst Du Deinen Server auf Backscatter testen: http://its-netzwerk.com/bscatter/
(Alternativ telnet :) )
Jede Rohheit hat ihren Ursprung in einer Schwäche.

reox
Beiträge: 2464
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Auf DNS Blocklist ohne SPAM

Beitrag von reox » 29.09.2016 08:19:45

Danke für den Link, der sagt mir mein Server backscattered nicht. Allerdings seh ich im mail log eben sehr viele Mails die wegen SPAM oder Malware im Anhang abgewiesen werden, wo allerdings eine Nachricht zurückgeht (mailq hat auch schon einige nachrichten drin...).
Die frage ist zB auch ob der Test richtig arbeitet:

Code: Alles auswählen

Sep 29 08:15:54 mail postfix/smtpd[29826]: connect from its-netzwerk.com[83.151.28.48]
Sep 29 08:15:54 mail postfix/smtpd[29826]: improper command pipelining after HELO from its-netzwerk.com[83.151.28.48]: MAIL FROM:<backscatter_test@itsecurity-network.com>\r\nRCPT TO:<local_part_only_test>\r\nDATA\r\nThis is a
Sep 29 08:15:54 mail postfix/smtpd[29826]: NOQUEUE: reject: RCPT from its-netzwerk.com[83.151.28.48]: 503 5.5.0 <its-netzwerk.com[83.151.28.48]>: Client host rejected: Improper use of SMTP command pipelining; from=<backscatter_test@itsecurity-network.com> to=<local_part_only_test> p
roto=SMTP helo=<its-netzwerk.com>
Sep 29 08:15:54 mail postfix/smtpd[29826]: lost connection after UNKNOWN from its-netzwerk.com[83.151.28.48]
Sep 29 08:15:54 mail postfix/smtpd[29826]: disconnect from its-netzwerk.com[83.151.28.48]
Sep 29 08:16:00 mail postfix/smtpd[29826]: connect from its-netzwerk.com[83.151.28.48]
Sep 29 08:16:00 mail postfix/smtpd[29826]: improper command pipelining after HELO from its-netzwerk.com[83.151.28.48]: MAIL FROM:<backscatter_test@itsecurity-network.com>\r\nRCPT TO:<non_existing_mailbox@mail.example.com>\r\nDA
Sep 29 08:16:00 mail postfix/smtpd[29826]: NOQUEUE: reject: RCPT from its-netzwerk.com[83.151.28.48]: 503 5.5.0 <its-netzwerk.com[83.151.28.48]>: Client host rejected: Improper use of SMTP command pipelining; from=<backscatter_test@itsecurity-network.com> to=<non_existing_mailbox@mail.example.com> proto=SMTP helo=<its-netzwerk.com>
Sep 29 08:16:00 mail postfix/smtpd[29826]: lost connection after UNKNOWN from its-netzwerk.com[83.151.28.48]
Sep 29 08:16:00 mail postfix/smtpd[29826]: disconnect from its-netzwerk.com[83.151.28.48]
Sep 29 08:16:05 mail postfix/smtpd[29826]: connect from its-netzwerk.com[83.151.28.48]
Sep 29 08:16:05 mail postfix/smtpd[29826]: improper command pipelining after HELO from its-netzwerk.com[83.151.28.48]: MAIL FROM:<backscatter_test@itsecurity-network.com>\r\nRCPT TO:<non_existing_mailbox@example.com>\r\nDATA\r\nT
Sep 29 08:16:05 mail postfix/smtpd[29826]: NOQUEUE: reject: RCPT from its-netzwerk.com[83.151.28.48]: 503 5.5.0 <its-netzwerk.com[83.151.28.48]>: Client host rejected: Improper use of SMTP command pipelining; from=<backscatter_test@itsecurity-network.com> to=<non_existing_mailbox@example.com> proto=SMTP helo=<its-netzwerk.com>
Sep 29 08:16:05 mail postfix/smtpd[29826]: lost connection after UNKNOWN from its-netzwerk.com[83.151.28.48]
Sep 29 08:16:05 mail postfix/smtpd[29826]: disconnect from its-netzwerk.com[83.151.28.48]
Der wird ja schon rejected bevor die mail überhaupt geprüft wird?

Benutzeravatar
heisenberg
Beiträge: 3556
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Auf DNS Blocklist ohne SPAM

Beitrag von heisenberg » 29.09.2016 08:45:44

Die frage ist zB auch ob der Test richtig arbeitet
Das ist in der Tat die Frage. Deswegen auch mein Verweis auf telnet an der Stelle nochmal :) Den Check habe ich mir auch nur kurz ergoogelt.

Code: Alles auswählen

shell> telnet deinserver 25
telnet> EHLO dein-rdns-aufloesender-client-hostname
telnet> MAIL FROM:<ich@beimir.de>
telnet> RCPT TO:<ungueltiger-empfaenger@deinedomain.de>
Normalerweise sollte die Mail an der Stelle bereits abgelehnt werden. Evtl. aber auch erst nach den folgenden Kommandos:

Code: Alles auswählen

telnet> DATA
telnet> test
telnet> .
telnet>
Spätestens hier sollte die Mail wegen falschem Empfänger abgelehnt sein. Wenn nicht, dann muss die Konfiguration angepasst werden.

Pipelining ist das Parallelisieren von Anfragen, bzw. das senden von Anfragen ohne warten auf die Antwort, was auch eine gute Möglichkeit sein kann um in einen Server möglichst viel Spam in kurzer Zeit reinzudrücken :)
Jede Rohheit hat ihren Ursprung in einer Schwäche.

reox
Beiträge: 2464
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: Auf DNS Blocklist ohne SPAM

Beitrag von reox » 29.09.2016 14:57:04

Gerade eine Antwort von dem Entwickler des Tests erhalten:
ich habe de Test vor 6 Jahren geschrieben, dieser wird aktuell nicht mehr
weiter entwickelt.
denke mal das heißt der Test ist mittlerweile fehlerhaft...

Mir scheint aber trotzdem, dass Backscatter nicht funktioniert:

Code: Alles auswählen

MAIL FROM:<backscatter_test@itsecurity-network.com>
250 2.1.0 Ok
RCPT TO:<ungueltiger-empfaenger@reox.at>           
450 4.1.8 <backscatter_test@itsecurity-network.com>: Sender address rejected: Domain not found
kam da jetzt bei telnet raus...
Zuletzt geändert von reox am 29.09.2016 16:06:14, insgesamt 1-mal geändert.

Benutzeravatar
heisenberg
Beiträge: 3556
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Auf DNS Blocklist ohne SPAM

Beitrag von heisenberg » 29.09.2016 15:14:40

Du hast jetzt aber keine gueltige Absenderdomain verwendet.

Da Du Deinen Mailserver nun genannt hast, habe ich den selbst mal getestet. Die Mail sollte nicht angenommen werden(Es sei denn, du hast tatsächlich ein Catch all eingerichtet):

Code: Alles auswählen

 telnet mail.blablub.com 25
Trying 1.2.3.4...
Connected to mail.blablub.com.
Escape character is '^]'.
220 mail.reox.at ESMTP Postfix (Debian/GNU)
EHLO backoffice.blablub.de
250-mail.blablub.com
250-PIPELINING
250-SIZE 104857600
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
MAIL FROM:<info@blablub.de>
250 2.1.0 Ok
RCPT TO:<fsjkfhskjfhsfjksdj@blablub.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
blablub
.
250 2.0.0 Ok: queued as E0941587430
quit
221 2.0.0 Bye
Connection closed by foreign host.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
heisenberg
Beiträge: 3556
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Auf DNS Blocklist ohne SPAM

Beitrag von heisenberg » 27.10.2016 13:35:00

Kleiner Nachtrag nochmal:

Einen Catch-All für E-Mail einzurichten ist grundsätzlich keine gute Idee:

Was da so an reingehämmert wird, dass kann keiner mehr ertragen:
Bei mir ca. 50 Mails pro Domain pro Stunde auf willkürliche Zufallsadressen -
nicht nur Zeichenmüll sondern auch tatsächlich richtig klingende Namen wie
"markus.weiss@...", "tschlegel@...".

Ein Teil wird bei mir da vor der Empfängerprüfung schon weggeblockt wegen
fehlendem RDNS, RBL-Einträgen und falschem HELO.

Wenn davon auch nur einen teil durch die anderen Sicherheitsmassnahmen
durchkommt, macht E-Mail wirklich keinen Spass mehr.
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Benutzeravatar
heisenberg
Beiträge: 3556
Registriert: 04.06.2015 01:17:27
Lizenz eigener Beiträge: MIT Lizenz

Re: Auf DNS Blocklist ohne SPAM

Beitrag von heisenberg » 29.10.2016 00:28:07

Hier mal so eine Mailstatistik(von pflogsumm) von einem Server von gestern. Man kann erahnen was einem da so blüht, wenn man da ein bisschen mehr durchlassen würde:

Code: Alles auswählen

   3271   received
   3561   delivered
      0   forwarded
    178   deferred  (2452  deferrals)
    475   bounced
 344449   rejected (98%)
      0   reject warnings
      0   held
      0   discarded (0%)
Jede Rohheit hat ihren Ursprung in einer Schwäche.

Antworten