Mailserver Dimensionieren

Hallo zusammen,

sollte das Thema bereits besprochen worden bitte ich um einen kurzen Link; ich habe über die Suche leider nichts gefunden.

Ich wurde dazu angehalten, einen Mailserver in unserer UCS-Domain aufzusetzen um systemgenerierte Mails zu verschicken.

Wir reden hier von ca. 4 Mailaccounts, welche im Schnitt insgesamt 30k-50k Mails pro Tag verschicken.
Die Anhänge sind im Schnitt 1MB pro Mail groß.

Kann mir kurz jemand bei der Dimensionierung der Hardware weiterhelfen? Softwareseitig sollte es hier keine Probleme geben, oder? Muss ich noch was bei den Domain-Controllern beachten? Werden diese bei jeder Anmeldung per SMTP nochmals angefragt?

Danke schonmal für eure Hilfe.

LG, Balu

Hallo!

Als kurzer Benchmark: ein Kunde hatte mal eine Sicherheitslücke in einem PHP-Script. Der Server war ein alter (Baujahr 2010) Dualcore mit 4 GB RAM. Der Hoster hat den Netzzugriff nach einer Stunde gekappt. Bis dahin wurden 20.000 Mails (aber ohne Spam- / Virenprüfung) rausgeschickt. :joy:

Für die Dimensionierung würde ich folgende Fragen stellen:

  1. Werden die 30-50k Mails relativ gleichmäßig über 24 h verteilt verschickt? Oder gibt es Peaks innerhalb der Office-Hours?
  2. (Erweiterung zu Frage 1: Ist die Netzanbindung breit genug, um nicht zum Flaschenhals zu werden?)
  3. Sollen noch Viren- und Spam-Checks gemacht werden oder stammen die Mails ausschließlich von vertrauenswürdigen Systemen (z.B. mit eigenen Scannern) und kann auf die Prüfungen verzichtet werden?
  4. Was für Anhänge sind das? Individuelle wie z.B. Rechnungen oder gleiche / ähnliche wie z.B. verkaufte E-Books?
  5. Was müsst ihr für den Traffic bezahlen?

Ich würde noch ein paar Dinge beachten:

  1. Wenn die sendenden Systeme vertrauenswürdig sind, kann über check_client_access in der main.conf vom Postfix die IP-Adresse eingetragen werden. Das spart dann die Authentifizierung am LDAP.
  2. Falls Authentifizierung ein Muss ist, dann die Authentifizierungs-Anfragen am LDAP benchmarken und Domaincontroller, Caches + Netzwerk ausreichend dimensionieren. Evtl. LDAP-Replikat auf dem / den Mailserver(n). Im Univention-Blog gab es mal einen Artikel von einer riesigen Installation mit irgendwie 30 Mio. Objekten im LDAP. Ich meine, da stand was zu den Abfragen pro Sekunde in einer Standard-Installation.
  3. Unbedingt auf die Reputation der Absender-IPs achten. Bei der Größenordnung landen die gerne schnell auf Blacklists. Da sollte man ein gutes Monitoring und Ersatz-IPs haben.
  4. Überlegen, ob man die Anhänge nicht besser als personalisierte Download-Links zur Verfügung stellt, um (bezahlten) Traffic zu sparen. Durch Encoding werden die Anhänge bei Mails ca. 1/3 größer.
  5. Falls du Viren- und Spamfilter betreiben willst: die Temp-Verzeichnisse in eine ausreichend große RAMDisk packen und genügend Worker starten.
  6. An Wartungsfenster denken. Wenn der Mailserver nicht erreichbar ist und dann nach der Wartung alle aufgelaufenen Mails reingekippt bekommt, sollte er nicht gleich in die Knie gehen. Evtl. zwei Server betreiben, Mails gleichmäßig verteilen und die Wartung bei jeweils nur einem Server in der Off-Peak-Zeit machen.

Je nachdem, was das für Anhänge sind, würde ich evtl. sogar diese Architektur bauen:

  • Mails verschicken via Amazon Web Services (AWS) SES
  • Wenn die Anhänge sowas wie Rechnungen sind: personalisierten Download-Link generieren mit Gültigkeit von 1-2 Jahren (bzw. nach gesetzlicher Notwendigkeit) und die Rechnung dann erst On-Demand beim Klick auf den Link erstellen.
  • Wenn die Anhänge oft die gleichen sind, über einen Storage-Dienst (z.B. AWS S3) bereitstellen (Speicherpreise + ausgehenden Traffic beachten!)

Hier hast du dann keine Skalierungs- und Reputationsprobleme. SES kostet 0,10 USD pro 1000 Mails (+ ausgehender Traffic 0,12 USD / GB), also etwa 150,- USD im Monat bei 50k Mails am Tag ohne Anhang.

Wie gesagt, kommt auf eure Providerkosten und die Art der Anhänge an. Würde ich einmal komplett durchrechnen inkl. Hardware-, Personal- und Traffickosten. Wenn ihr tatsächlich pro Mail den Anhang verschicken müsst, ist AWS kostenmäßíg sicher raus.

(alles bitte nochmal selbst nachrechnen, keine Gewähr! ;-))

Vorweg einmal Danke für die ausführliche Antwort zugleich eine “kleine” Entwarnung: Nachdem ich nochmals mit der verantwortlichen Abteilung Rücksprache gehalten habe, handelt es sich um ca. 12k Mails /Tag, nicht 50k…

Die Hälfte zwischen 3-6h, die andere Hälfte über den Tag verteilt.

Die ist nicht das Problem. Aktuell nutzen wir SES und konnten dabei auch keinen Flaschenhals feststellen.

Ja, eine Virenprüfung ist nicht notwendig.

Reine Text-Files (Base64-Codiert.)
5. Was müsst ihr für den Traffic bezahlen?

Super Tip, werde ich umsetzen.

Sollte kein größeres Problem sein. Bei den Mails handelt es sich um Edifact-Verkehr. Die Systeme die da annehmen, machen idR weder einen Spam- noch einen Virencheck.

Leider nicht möglich da der Standart das nicht vorsieht. -> E-Mail ist hier tatsächlich nur der Übertragungsweg und die Vorgaben, wie solche Mails auszusehen haben sind recht streng.

Wir kommen aktuell von SES und wollen dort weg. Hintergrund: SES setzt den From-Header einer Mail nur dann korrekt, wenn eine Subdomain für den Versand verwendet wird. Dieser ist jedoch bei mehreren Empfängern zwingend notwendig. Das umstellen auf eine Subdomain ist mit auch zu vielen Kosten verbunden, daher der Umstieg auf eine eigene Infrastruktur.

Wieviel RAM sollten wir möglichst einplanen? Gibt es dazu Richtwerte?