• Bewerte uns auf OMR Reviews: Klick

  • Achtet bitte in den Beiträgen darauf, dass ihr keine Informationen teilt, die der DSGVO unterliegen können. Verpixelt bitte die entsprechenden Stellen in Screenshots, postet hier auf keinen Fall Messagatracks ohne Rücksprache und auch in den Log Files können persönliche oder sensible Daten enthalten sein.

    Macht uns auch bitte per PN darauf aufmerksam wenn ihr etwas seht. Schreibt mich (@sören) einfach direkt an. 

Ratelimiting von Postfix als Relayserver vor NSP

Hallo zusammen,

hat jemand Erfahrung mit der Anforderung des "Rate-limitings" eines Postfixservers welcher als Relayserver vor NSP steht und E-Mails entgegen nimmt und diese zeitlich verzögert weiter gibt?

Hintergrund sind Massenmailing (Newsletter, Kampagnen etc.) welche nicht direkt gegen den NSP laufen sollen, da dieser die E-Mails sofort abgeben würde.

Ziel wäre es, wie hier im Thread beschrieben (https://unix.stackexchange.com/questions/704745/rate-limiting-outgoing-via-relay-host), per Domain zu verzögern und nicht je Nachricht.

Aktuell verwende ich die folgende Konfiguration, bin mir jedoch unsicher das dies für einen Relayeintrag gilt, sondern eher wenn der Postfix direkt abliefert.
Aus Gründen der Übersichtlichkeit sowie für das LoT sollen alle E-Mails einheitlich über den NSP laufen.

Meine main.cf auf dem Postfix sieht aktuell wie folgt aus (hier nur der relevante Part):

Bash:
#Relayeintrag zum NSP
relayhost = nsp.domain.local

# The initial per-destination concurrency level for parallel delivery to the same destination. With per-destination recipient limit > 1, a destination is a domain, otherwise it is a recipient.
initial_destination_concurrency = 4
# The maximal time between attempts to deliver a deferred message.
maximal_backoff_time = 8000s
# The default amount of delay that is inserted between individual message deliveries to the same destination and over the same message delivery transport
default_destination_rate_delay = 2s
# The maximal number of parallel deliveries to the same destination via the smtp message delivery transport
smtp_destination_concurrency_limit = 5
# The default maximal number of recipients per message delivery.
default_destination_recipient_limit = 10

LG
Fabian
 
Zuletzt bearbeitet:
Hallo Fabian,
hat jemand Erfahrung mit der Anforderung des "Rate-limitings" eines Postfixservers welcher als Relayserver vor NSP steht und E-Mails entgegen nimmt und diese zeitlich verzögert weiter gibt?
Ich verstehe noch nicht eurer E-Mail-Infrastruktur. Steht der Relay-Server (Postfix) im LAN oder steht im Internet?

Hintergrund sind Massenmailing (Newsletter, Kampagnen etc.) welche nicht direkt gegen den NSP laufen sollen, da dieser die E-Mails sofort abgeben würde.
Was meinst du mit abgeben? Abgesehen davon habt ihr die Software für Mailing bei euch im LAN stehen oder ist das ein Anbieter ala SendGrid, CleverReach, etc.? Ich frage deshalb, weil die gängigen Anbieter für Mailing Software (sprich On-Premise) haben alle eigentlich die Funktion des Rate-Limit standardmäßig an Board.

Aktuell verwende ich die folgende Konfiguration, bin mir jedoch unsicher das dies für einen Relayeintrag gilt, sondern eher wenn der Postfix direkt abliefert.
Warum nicht mit einem PowerShell Skript ausprobieren? Einfach die Schwellwerte heruntersetzen, ein externes Postfach angeben und ausprobieren. Ist eine Sache von 30 Minuten.

Gruß,
Daniel
 
Hallo Daniel,
Ich verstehe noch nicht eurer E-Mail-Infrastruktur. Steht der Relay-Server (Postfix) im LAN oder steht im Internet?
der Postfix Relay-Server steht bei uns in der DMZ neben den GW-Rollen und wird von externen Dienstleistern als Relay angesprochen.

Was meinst du mit abgeben? Abgesehen davon habt ihr die Software für Mailing bei euch im LAN stehen oder ist das ein Anbieter ala SendGrid, CleverReach, etc.? Ich frage deshalb, weil die gängigen Anbieter für Mailing Software (sprich On-Premise) haben alle eigentlich die Funktion des Rate-Limit standardmäßig an Board.
Partner etc. welche E-Mails an Endkunden abliefern. Manche beherrschen Rate-Limiting, andere nicht ... letztlich wollen wir in der IT die Kontrolle als letzte, zentrale Instanz vor dem Endkundenpostfach haben.

Postfix wird bereits als interner Relayserver für die abgelösten Exchangeserver verwendet, da war es naheliegend die Anforderung darüber abzubilden.

Warum nicht mit einem PowerShell Skript ausprobieren? Einfach die Schwellwerte heruntersetzen, ein externes Postfach angeben und ausprobieren. Ist eine Sache von 30 Minuten.

Da gingen bereits mehr als 30 Minuten drauf :rolleyes: - daher die Frage in die Runde ob es hier bereits Erfahrung hierzu gibt.

Ein Test mit 4 E-Mails an verschiedene Empfänger derselben Domain mit den u.g. Einstellungen lässt eine E-Mail alle 60s durch. Annahme wäre 4 E-Mails auf einmal, dann 60s Pause für weitere E-Mails an die Domain:

Bash:
initial_destination_concurrency = 4
default_destination_rate_delay = 60s

LG
Fabian
 
Hallo Fabian,
bitte die Ausgabe des nachstehenden Befehls posten.
Code:
postconf  | grep '^\(default\|smtp\|relay\)[^ ]*concurrency[^ ]*'

By the way: Welche Postfix Version setzt ihr auf dem Server ein?


Gruß,
Daniel
 
Hallo Daniel,

wir setzen Postfix in der Version 3.5.25 (sollte mal updaten :rolleyes:).

Die Ausgabe des Befehls:

default_destination_concurrency_failed_cohort_limit = 1
default_destination_concurrency_limit = 20
default_destination_concurrency_negative_feedback = 1
default_destination_concurrency_positive_feedback = 1
relay_destination_concurrency_failed_cohort_limit = $default_destination_concurrency_failed_cohort_limit
relay_destination_concurrency_limit = $default_destination_concurrency_limit
relay_destination_concurrency_negative_feedback = $default_destination_concurrency_negative_feedback
relay_destination_concurrency_positive_feedback = $default_destination_concurrency_positive_feedback
relay_initial_destination_concurrency = $initial_destination_concurrency
smtp_destination_concurrency_failed_cohort_limit = $default_destination_concurrency_failed_cohort_limit
smtp_destination_concurrency_limit = 5
smtp_destination_concurrency_negative_feedback = $default_destination_concurrency_negative_feedback
smtp_destination_concurrency_positive_feedback = $default_destination_concurrency_positive_feedback
smtp_initial_destination_concurrency = $initial_destination_concurrency

Edit:
Ich habe es nun via dem transportmappings lösen können. Als Basis die ca. 6500 Postfachanbieter von NSP genommen (https://nospamproxynaw.blob.core.windows.net/freemailer/freemailer.txt) und einen neuen service angelegt und diesen mit einem Delay von 2s angegeben.

=> Die Freemailer bekommen 2 Sekunden zwischen die Nachrichten, was nicht definiert ist kein Delay.

LG
Fabian
 
Zuletzt bearbeitet:
Zurück
Oben