Mailrelayarchitektur mit seperatem Submissionserver

Berger, Sören soeren.berger at tik.uni-stuttgart.de
Mi Mai 11 11:40:12 CEST 2016


Hallo zusammen,
ich baue gerade an einem neuen Mailrelaysetup und hätte eine Architekturfrage für meinen Submissionserver. Ich habe inzwischen verschiedene Ansätze (siehe unten) ausprobiert und bin mir nicht sicher welchen ich implementiere bzw. weiter verfolgen soll.

Nehmen wir mal folgende Konfiguration an:

mx1.example.de 192.168.10.1
mx2.example.de 192.168.10.2
mx3.example.de 192.168.10.3

mailrelay.example.de 192.168.10.1 192.168.10.2 192.168.10.3
smtp.example.de 192.168.10.1 192.168.10.2 192.168.10.3
 
Die 3 Mailrelays sind für die Spam- und Virenfilterung, Zustellung der Mails in den Mailcluster und Versand ins Internet. smtp.example.de zeigt auf die gleichen Mailrelays. Auf ihnen ist auf Submission konfiguriert.

Aus folgenden Gründen würde ich gerne den Submission Server davon trennen:

* Mailclients kommen eventuell mit dem DNS Round Robin nicht klar. Das heißt, dass ich die MX nicht einfach neu booten kann.
* Eine Trennung der Dienste ist eine klarer strukturierte Architektur
* Die Konfiguration wird zwar auf mehr Hosts verteilt, aber dadurch übersichtlicher.

Ich habe bis jetzt folgende Ansätze verfolgt:

1.) Getrennter Submission Server

Die gesamte Logik der Benutzerautentifizierung liegt dann im Submission Server. Die MX sind nur noch für das Relaying zuständig. Ich habe einfach ein weiteres Mailrelay genommen und auf den alten Mailrelays Submission deaktiviert habe.

+ Konfiguration getrennt
+Komplettes Setup außer Submission Server kann gebootet werden.
- Doppelter Datenbestand und Resourcenverbrauch für Spamassassin/Amavis, da auf dem Submissionserver auch ausgehende Mails geprüft werden sollen. Ich würde die Spam gern im SMTP Dialog ablehnen und ungern einen Bounce erzeugen.
- Relaykonfiguration wie virtual_mailbox_maps muss geclont werden um Mails im SMTP Dialog abzulehnen, falls sie nicht in den Mailcluster zugestellt werden können. Sonst wird auch hier ein Bounce erzeugt.

2.) Getrennter Submission Server mit Proxy Filter zu den MX

Ich habe das so konfiguriert, dass meine master.cf ungefähr so aussieht:

submission inet n       -       n       -       -       smtpd
  -o smtpd_enforce_tls=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_tls_cert_file=/etc/ssl/certs/smtp.example.de.crt
  -o smtpd_tls_key_file=/etc/ssl/private/smtp.example.de.key
  -o smtpd_tls_protocols=!SSLv2,!SSLv3
  -o smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3
  -o smtpd_proxy_filter=mailrelay.example.de:25                        <----- Das ist das wichtige
  -o smtpd_proxy_options=speed_adjust
  -o syslog_name=postfix/submission

+ Konfiguration getrennt
+Komplettes Setup ausser Submission Server kann gebootet werden.
+Kein Amavis (!) auf dem Submission Server
+Falls die Mail nicht zugestellt werden kann oder Spam/Viren enthält, kann sie im SMTP Dialog angelehnt werden.
+ Schlanke Konfiguration

Ich habe für diese Idee im Netz absolut nichts gefunden. Ist das vielleicht eine dumme Idee? Wenn ja warum? Für mich sieht sie auf den ersten Blick recht elegant aus. :-)

3.) Konfiguration mit HA Proxy (HA Proxy, nginx?)

smtp.example.de auf einen einzelnen Host, der als HA-Proxy für die 3 MX konfiguriert ist.

+ MX können transparent gebootet werden
+kein zusätzlicher Amavis
+Falls die Mail nicht zugestellt werden kann oder Spam/Viren enthält, kann sie im SMTP Dialog angelehnt werden, da der Server ja nur ein Proxy ist.
- Zusätzliche (aber schlanke) Komponente
-+ Konfiguration von Submission und Relay ist auf einem Host

Hat jemand von euch Erfahrungen mit einem solchen Setup oder eine Meinung zu meinen 3 Ansätzen? Ich persönlich tendiere zu Version 2. Eine komplett neue/andere Idee ist natürlich auch gerne gesehen.

Viele Grüße
Sören



Mehr Informationen über die Mailingliste Postfixbuch-users