[postfix-users] Einstellung zum Schutz vor Masssenmails
Hallo
ich habe einen Postfix 2.9.3-2 auf Ubuntu 12.04 laufen und gerade das Problem, dass ein Massenmail (Serienmail mit über 500 Adressaten) das über eine Warenwirtschaft (Büro Plus Next) versendet wird, dort sehr schnell mit unklaren Fehlermeldungen abgebrochen wird. Dort heißt es zuerst:
“E-Mail versenden abgebrochen! E-Mail 10 von 10 versenden fehlgeschlagen. Unknown” und dann: “Verbindung mit SMTP Server fehlgeschlagen. Already connected”.
Einzelne Mails lassen sich über diesen Serienmailer aber versenden, es muss an den vielen Mails liegen (über 500 Stück).
Im Mail-Log des Servers ist kein Hinweis auf eine Ablehnung, ein paar Mails des Serienmails sind dort zu finden, aber dann hört es auf. Kein Fehler dort.
Gibt es vielleicht eine Postfix Einstellung, mit der man solche Massenmails abblocken könnte? Ich erinnere mich nicht, so etwas eingestellt zu haben, finde auch nichts dazu.
Gibt es so eine Einstellung überhaupt?
Gruß franc walter
Zitat von francwalter@gmx.net:
Hallo
ich habe einen Postfix 2.9.3-2 auf Ubuntu 12.04 laufen und gerade das Problem, dass ein Massenmail (Serienmail mit über 500 Adressaten) das über eine Warenwirtschaft (Büro Plus Next) versendet wird, dort sehr schnell mit unklaren Fehlermeldungen abgebrochen wird. Dort heißt es zuerst:
?E-Mail versenden abgebrochen! E-Mail 10 von 10 versenden fehlgeschlagen. Unknown? und dann: ?Verbindung mit SMTP Server fehlgeschlagen. Already connected?.
Einzelne Mails lassen sich über diesen Serienmailer aber versenden, es muss an den vielen Mails liegen (über 500 Stück).
Im Mail-Log des Servers ist kein Hinweis auf eine Ablehnung, ein paar Mails des Serienmails sind dort zu finden, aber dann hört es auf. Kein Fehler dort.
Gibt es vielleicht eine Postfix Einstellung, mit der man solche Massenmails abblocken könnte? Ich erinnere mich nicht, so etwas eingestellt zu haben, finde auch nichts dazu.
Hallo
das einzige was Postfix "out-of-the-box" macht ist ein limit für die gleichzeitigen Verbindungen zu setzen (smtpd in master.cf meistens 100) und die Anzahl der Empfänger pro Mail auf 100 zu begrenzen (smtpd_recipient_limit). Falls eines dieser Sicherheitsmerkmale greift ist dies auch im Logfile vermerkt. Wenn also im Postfix Log wirklich keinerlei Fehler/Warnungen zu finden sind, hat eher der Sender ein Problem. Eventuell verschluckt sich der Sender mit ESMTP Pipelining, deshalb einfach mal ESMTP abschalten (smtpd_discard_ehlo_keywords).
Gruß
Andreas
* lst_hoe02@kwsoft.de lst_hoe02@kwsoft.de:
das einzige was Postfix "out-of-the-box" macht ist ein limit für die gleichzeitigen Verbindungen zu setzen (smtpd in master.cf meistens 100) und die Anzahl der Empfänger pro Mail auf 100 zu begrenzen (smtpd_recipient_limit). Falls eines dieser Sicherheitsmerkmale greift ist dies auch im Logfile vermerkt. Wenn also im Postfix Log wirklich keinerlei Fehler/Warnungen zu finden sind, hat eher der Sender ein Problem. Eventuell verschluckt sich der Sender mit ESMTP Pipelining, deshalb einfach mal ESMTP abschalten (smtpd_discard_ehlo_keywords).
Und GRUNDSÄTZLICH steht die Abweisung IMMER im Log.
* Ralf Hildebrandt Ralf.Hildebrandt@charite.de:
- lst_hoe02@kwsoft.de lst_hoe02@kwsoft.de:
das einzige was Postfix "out-of-the-box" macht ist ein limit für die gleichzeitigen Verbindungen zu setzen (smtpd in master.cf meistens 100) und die Anzahl der Empfänger pro Mail auf 100 zu begrenzen (smtpd_recipient_limit). Falls eines dieser Sicherheitsmerkmale greift ist dies auch im Logfile vermerkt. Wenn also im Postfix Log wirklich keinerlei Fehler/Warnungen zu finden sind, hat eher der Sender ein Problem. Eventuell verschluckt sich der Sender mit ESMTP Pipelining, deshalb einfach mal ESMTP abschalten (smtpd_discard_ehlo_keywords).
Und GRUNDSÄTZLICH steht die Abweisung IMMER im Log.
... ausser, soetwas wie rate limiting mittels iptables "sperrt" den einlieferenden host.
Am 08.08.2012 um 22:19 schrieb lst_hoe02@kwsoft.de:
Zitat von francwalter@gmx.net:
Hallo
ich habe einen Postfix 2.9.3-2 auf Ubuntu 12.04 laufen und gerade das Problem, dass ein Massenmail (Serienmail mit über 500 Adressaten) das über eine Warenwirtschaft (Büro Plus Next) versendet wird, dort sehr schnell mit unklaren Fehlermeldungen abgebrochen wird. Dort heißt es zuerst:
?E-Mail versenden abgebrochen! E-Mail 10 von 10 versenden fehlgeschlagen. Unknown? und dann: ?Verbindung mit SMTP Server fehlgeschlagen. Already connected?.
Einzelne Mails lassen sich über diesen Serienmailer aber versenden, es muss an den vielen Mails liegen (über 500 Stück).
Im Mail-Log des Servers ist kein Hinweis auf eine Ablehnung, ein paar Mails des Serienmails sind dort zu finden, aber dann hört es auf. Kein Fehler dort.
Gibt es vielleicht eine Postfix Einstellung, mit der man solche Massenmails abblocken könnte? Ich erinnere mich nicht, so etwas eingestellt zu haben, finde auch nichts dazu.
Hallo
das einzige was Postfix "out-of-the-box" macht ist ein limit für die gleichzeitigen Verbindungen zu setzen (smtpd in master.cf meistens 100) und die Anzahl der Empfänger pro Mail auf 100 zu begrenzen (smtpd_recipient_limit). Falls eines dieser Sicherheitsmerkmale greift ist dies auch im Logfile vermerkt. Wenn also im Postfix Log wirklich keinerlei Fehler/Warnungen zu finden sind, hat eher der Sender ein Problem. Eventuell verschluckt sich der Sender mit ESMTP Pipelining, deshalb einfach mal ESMTP abschalten (smtpd_discard_ehlo_keywords).
Gruß
Andreas
Vielen Dank schon mal. Ich hab nun in die main.cf eingefügt:
smtpd_discard_ehlo_keywords = dsn
Leider keine Änderung. Immer wieder diese Fehlermeldung “Already connected”.
Meine master.cf enthält sowas (smtpd … 100) wohl nicht:
master.cf
smtp inet n - - - - smtpd -o smtp_data_done_timeout=300 -o smtp_send_xforward_command=yes -o smtpd_proxy_timeout=300s -o smtpd_proxy_filter=[127.0.0.1]:10024 smtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING pickup fifo n - - 60 1 pickup -o content_filter= -o receive_override_options=no_header_body_checks cleanup unix n - - - 0 cleanup qmgr fifo n - n 300 1 qmgr tlsmgr unix - - - 1000? 1 tlsmgr rewrite unix - - - - - trivial-rewrite bounce unix - - - - 0 bounce defer unix - - - - 0 bounce trace unix - - - - 0 bounce verify unix - - - - 1 verify flush unix n - - 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - - - - smtp relay unix - - - - - smtp -o smtp_fallback_relay= showq unix n - - - - showq error unix - - - - - error retry unix - - - - - error discard unix - - - - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - - - - lmtp anvil unix - - - - 1 anvil scache unix - - - - 1 scache maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient} uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix - n n - - pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient scalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension} mailman unix - n n - - pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user} dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient} smtp-amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8 -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
und in meiner main.cf finde ich auch nichts entsprechendes:
main.cf
soft_bounce = no myhostname = ew6.org mydestination = lists.7fw.de, lists.bamboo4you.de, lists.ew6.org, lists.frankroehm.de, lists.galadata.de, lists.kult-wuerzburg.de, lists.mosquito-bar.com, lists.rosentalfc.de, lists.subthilo.de, www.ew6.org, localhost myorigin = /etc/mailname append_dot_mydomain = no smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) recipient_delimiter = + readme_directory = no smtpd_tls_cert_file = /etc/apache2/ssl/servercert.pem smtpd_tls_key_file = /etc/apache2/ssl/serverkey.pem smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_tls_auth_only = no alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases,hash:/var/lib/mailman/data/aliases mailbox_command = procmail -a "$EXTENSION" mailbox_size_limit = 0 message_size_limit = 51200000 virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf,mysql:/etc/postfix/mysql-email2email.cf virtual_transport = dovecot virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 dovecot_destination_recipient_limit = 1 smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = reject_unknown_sender_domain reject_unknown_recipient_domain permit_mynetworks reject_unlisted_recipient reject_non_fqdn_sender reject_non_fqdn_recipient reject_unlisted_sender permit_sasl_authenticated reject_unauth_destination reject_invalid_helo_hostname reject_non_fqdn_helo_hostname reject_unknown_client_hostname reject_unknown_helo_hostname check_recipient_access hash:/etc/postfix/roleaccount_exceptions check_client_access hash:/etc/postfix/rbl_client_exceptions check_policy_service inet:127.0.0.1:60000 smtpd_data_restrictions = reject_multi_recipient_bounce reject_unauth_pipelining smtpd_hard_error_limit = 10 smtpd_soft_error_limit = 8 smtpd_use_tls = yes broken_sasl_auth_clients = yes content_filter = smtp-amavis:[127.0.0.1]:10024 receive_override_options = no_address_mappings unknown_local_recipient_reject_code = 550 smtpd_sasl_authenticated_header = yes bounce_template_file = /etc/postfix/bounce.de-DE.cf queue_directory = /var/spool/postfix smtpd_discard_ehlo_keywords = dsn
Fällt da vielleicht sonst etwas auf, was ich übersehe?
Gruß franc
* francwalter@gmx.net francwalter@gmx.net:
smtp inet n - - - - smtpd -o smtp_data_done_timeout=300 -o smtp_send_xforward_command=yes -o smtpd_proxy_timeout=300s -o smtpd_proxy_filter=[127.0.0.1]:10024
Somit gilt default_process_limit, was 100 oder 200 ist
postconf default_process_limit
smtpd_hard_error_limit = 10 smtpd_soft_error_limit = 8
Die würde ich mal hochdrehen. 10 Fehler und Lichter gehen aus.
Am 09.08.2012 um 15:51 schrieb Ralf Hildebrandt:
- francwalter@gmx.net francwalter@gmx.net:
smtp inet n - - - - smtpd -o smtp_data_done_timeout=300 -o smtp_send_xforward_command=yes -o smtpd_proxy_timeout=300s -o smtpd_proxy_filter=[127.0.0.1]:10024
Somit gilt default_process_limit, was 100 oder 200 ist
postconf default_process_limit
Genau, das ergibt:
default_process_limit = 100
Ich habe das jetzt in der main.cf auf 500 gesetzt, das ist hoffentlich nicht zu hoch.
smtpd_hard_error_limit = 10 smtpd_soft_error_limit = 8
Die würde ich mal hochdrehen. 10 Fehler und Lichter gehen aus.
Etwa so:
smtpd_hard_error_limit = 100 smtpd_soft_error_limit = 80
Oder ist das zu viel?
Prinzipiell mal die Frage:
Ist das überhaupt “State of the art”, Serienmails (also z.B. 500 Stück auf ein Mal) über SMTP zu versenden oder macht man das sowieso nicht so? Beim Support dieser Warenwirtschaft meinte der Entwickler/Supporter am Telefon nämlich, dass sie anscheinend öfters damit Probleme hätten, er sagte es zwar nicht deutlich, aber es sickerte durch, dass die Massenmails die über dieses Warenwirtschaftsprogramm versendet würden oft nicht durchgingen. Wenn ich dort ein GMX Konto als Sender eintrage geht es auch überhaupt nicht.
Wenn ich aber Postfix direkt auf dem Server mit Massenmails bestücke (also per postifx-sendmail, z.B. mit einem PHP Mailer) hatte ich bisher keine Probleme.
Gruß franc
Am 09.08.2012 23:55, schrieb francwalter@gmx.net:
Am 09.08.2012 um 15:51 schrieb Ralf Hildebrandt:
- francwalter@gmx.net francwalter@gmx.net:
smtp inet n - - - - smtpd -o smtp_data_done_timeout=300 -o smtp_send_xforward_command=yes -o smtpd_proxy_timeout=300s -o smtpd_proxy_filter=[127.0.0.1]:10024
Somit gilt default_process_limit, was 100 oder 200 ist
postconf default_process_limit
Genau, das ergibt:
default_process_limit = 100
Ich habe das jetzt in der main.cf auf 500 gesetzt, das ist hoffentlich nicht zu hoch.
smtpd_hard_error_limit = 10 smtpd_soft_error_limit = 8
Die würde ich mal hochdrehen. 10 Fehler und Lichter gehen aus.
Etwa so:
smtpd_hard_error_limit = 100 smtpd_soft_error_limit = 80
Oder ist das zu viel?
Prinzipiell mal die Frage:
Ist das überhaupt “State of the art”, Serienmails (also z.B. 500 Stück auf ein Mal) über SMTP zu versenden oder macht man das sowieso nicht so? Beim Support dieser Warenwirtschaft meinte der Entwickler/Supporter am Telefon nämlich, dass sie anscheinend öfters damit Probleme hätten, er sagte es zwar nicht deutlich, aber es sickerte durch, dass die Massenmails die über dieses Warenwirtschaftsprogramm versendet würden oft nicht durchgingen. Wenn ich dort ein GMX Konto als Sender eintrage geht es auch überhaupt nicht.
Wenn ich aber Postfix direkt auf dem Server mit Massenmails bestücke (also per postifx-sendmail, z.B. mit einem PHP Mailer) hatte ich bisher keine Probleme.
Gruß franc
Newsletter, grosse Massenmails etc sind eine Wissenschaft fuer sich, abgesehen von vielen zb rechtlichen Parametern, muss man dabei auf die Eigenheiten seiner groessten Empfaenger Gruppen eingehen, dass faengt eben schon mal damit an, dass man besser kleinere Mengen von Mails buendelt und diese langsam ausliefert, guenstig ist wohl gleich auf der Maschine die die Mails fabriziert einen Mailservice zu haben mit dem man zumindest die Auslieferung zb an ein Postfix relay ein wenig vorsteuern kann, natuerlich sollte aber auch gleich die Software entsprechend programmiert sein, Fehler sollten an der Quelle bekaempft werden, also an dem Prozess der die Mails generiert, ein postfix relay kann dann zb eben dafuer sorgen dass Mails von einer best. Ip nicht verzoegert angenommen werden aber zb verlangsamt an grosse Mailer weiter ausgeliefert werden die ein rate Limit haben etc, ausserdem kann man evtl noch mit dkim siginieren usw
Im Grund sind technischen Mail Fragen dabei eher leicht zu bewaeltigen aber bei zb "Werbemails" usw gehts ja nicht nur darum dass die Mails jemanden erreichen sonder zb zu tracken ob ueberhaupt reagiert wurde, wie verfasst man diese Mails usw, kann man es sich leisten sollte man dafuer besser spezialisierte Dienste in Anspruch nehmen
In deinem Fall wuerde ich klar sagen dass die Warenwirtschaft hier nicht auf der hoehe der Zeit ist, denn praktisch jeder grosse Mailer heut zu Tage hat irgendwo ein was auch immer rate limit
postfix-users mailing list postfix-users@de.postfix.org http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
* francwalter@gmx.net francwalter@gmx.net:
smtpd_hard_error_limit = 10 smtpd_soft_error_limit = 8
Die würde ich mal hochdrehen. 10 Fehler und Lichter gehen aus.
Etwa so:
smtpd_hard_error_limit = 100 smtpd_soft_error_limit = 80
Oder ist das zu viel?
Probier's aus, evtl. fixt das dein Problem.
Prinzipiell mal die Frage:
Ist das überhaupt “State of the art”, Serienmails (also z.B. 500 Stück auf ein Mal) über SMTP zu versenden oder macht man das sowieso nicht so?
Doch schon. So macht das Mailman auch. Man muss natürlich als sendendes Programm (wenn dass der Fehler war) Fehler abfangen!
Beim Support dieser Warenwirtschaft meinte der Entwickler/Supporter am Telefon nämlich, dass sie anscheinend öfters damit Probleme hätten, er sagte es zwar nicht deutlich, aber es sickerte durch, dass die Massenmails die über dieses Warenwirtschaftsprogramm versendet würden oft nicht durchgingen. Wenn ich dort ein GMX Konto als Sender eintrage geht es auch überhaupt nicht.
Wenn ich aber Postfix direkt auf dem Server mit Massenmails bestücke (also per postifx-sendmail, z.B. mit einem PHP Mailer) hatte ich bisher keine Probleme.
Gruß franc
postfix-users mailing list postfix-users@de.postfix.org http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
Hallo Franc, hallo Leute,
Am Mittwoch, 8. August 2012 schrieb francwalter@gmx.net:
ich habe einen Postfix 2.9.3-2 auf Ubuntu 12.04 laufen und gerade das Problem, dass ein Massenmail (Serienmail mit über 500 Adressaten) das über eine Warenwirtschaft (Büro Plus Next) versendet wird, dort sehr schnell mit unklaren Fehlermeldungen abgebrochen wird.
Nachdem hier alle die Erhöhung diverser Limits durchgekaut haben - manchmal ist auch das Gegenteil sinnvoll ;-)
Ich hatte mal den Fall, dass der interne Mailserver eines Kunden seine Mails in vielen gleichzeitigen Verbindungen übertragen wollte. Dummerweise stand er hinter einer recht dünnen Leitung, sodass die einzelnen Verbindungen kaum noch Bandbreite bekamen und in Timeouts liefen. Das hat sich dann hochgeschaukelt - immer mehr Mails warteten auf ihren Versand, es wurden mehr Verbindungen aufgemacht, die mangels Bandbreite ziemlich sicher einen Timeout bekamen, ...
Ich habe das Problem mit smtpd_client_connection_count_limit=2 (maximal 2 Verbindungen pro IP) gelöst. Das klingt erstmal nach Ausbremsen - in der Praxis hat der Kunde seine Mail aber recht schnell rausbekommen (viel allem schneller als mit den ganzen Timeouts ;-)
Ein positiver Nebeneffekt ist die DoS-Vorbeugung - mit dieser Einstellung kann Dir eine einzelne IP nicht mehr alle smtpd blockieren.
Wichtig: für localhost:10025 (den Amavis-"Rückkanal") musst Du in der master.cf ein höheres Limit setzen, sonst wird es lustig[tm].
Im Mail-Log des Servers ist kein Hinweis auf eine Ablehnung, ein paar Mails des Serienmails sind dort zu finden, aber dann hört es auf. Kein Fehler dort.
Auch keine Hinweise auf Timeouts, Lost Connection o. ä.? Verfolge mal alles ab dem Connect (z. B. anhand der pid) - irgendwas steht garantiert im Log, und im Zweifelsfall hilft ein Vergleich mit einer funktionierenden Mail, um rauszufinden, wo es hakt.
Gruß
Christian Boltz
participants (5)
-
Christian Boltz
-
francwalter@gmx.net
-
lst_hoe02@kwsoft.de
-
Ralf Hildebrandt
-
Robert Schetterer