Proxmox MG vor Mailprovider schalten
Das Proxmox MailGateway ist dafür konzipiert, vor einem eigenen Mailserver betrieben zu werden. Diese Anleitung beschreibt, wie man es mit dem Mailpostfach eines Mailhosting Providers (hier: All-Inkl.) betreiben kann.
Welche Vorteile ergeben sich hieraus ggü. dem Betrieb eines eigenen Mailservers?
In erster Linie sind die Angebote von Mailprovidern gegenüber dem Betrieb eines eigenen Servers unschlagbar günstig. Für wenige Euro im Monat beinhalten Sie nicht nur die Serverkapazitäten und Ersteinrichtungsaufwand für den Betrieb, der so nicht im eigenen Haus aufgebracht werden muss, sondern zusätzlich auch den zugehörigen Wartungsaufwand für das Patch-Management.
Der hier beschriebene Betrieb funktioniert immer dann, wenn Änderungen an den DNS Einträgen der eigenen Domain möglich sind. Das klappt nicht für E-Mail Adressen bei Freemaildiensten wie GMX.
Gedanken und Problemstellung
Sicherheitsmechanismen im heutigen E-Mail Verkehr wie SPF und DMARC sorgen dafür, dass – wenn der Betreiber einer Domäne es wünscht – nur noch seine eigenen E-Mail Server die Erlaubnis haben, E-Mails mit seiner Absenderadresse zu versenden. Möchte ich persönlich, dass E-Mails von meine-domain.de nur noch von meinem Server 85.11.12.13 versendet werden dürfen, so trage ich diesen Server in meinen DNS Record für SPF ein und erzeuge einen DMARC Eintrag, der besagt: Sendet dir jemand anderes eine E-Mail mit Absender meine-domain.de zu, dann nehme sie nicht an (reject). Das schützt sowohl den Empfänger, als auch mich als Absender und ist eigentlich eine tolle Sache.
Genau das wird uns aber mit dem Einsatz des Proxmox MailGateways zum Verhängnis. Dein Proxmox MailGateway nimmt E-Mails von meiner meine-domain.de E-Mail an, überprüft sie und leitet sie im Anschluss an deinen E-Mail Server weiter. Dein persönlicher E-Mail Server ist so konfiguriert, dass das Proxmox MailGateway als Trusted Sender fungiert, sprich: Alle E-Mails deines Proxmox MailGateways werden von deinem E-Mail Server akzeptiert, auch wenn er laut SPF und DMARC Eintrag für meine Domain meine-domain.de gar nicht zuständig ist. Das ist sinnvoll und lässt sich in deinem E-Mail Server von dir konfigurieren, denn du bist Server Administrator eben jenes E-Mail Servers.
Möchtest du allerdings hinter deinem Proxmox Mail Gateway keinen eigenen E-Mail Server konfigurieren, sondern die Postfächer deines bisherigen Providers weiterverwenden, so hast du nicht die Möglichkeit, dein Proxmox MailGateway als Trusted Sender einzutragen und doch möchtest du alle E-Mails bedenkenlos annehmen, die dir dein Proxmox schickt. Dein E-Mail Provider weiß davon aber nichts, für ihn ist das Proxmox MailGateway ein E-Mail Spoofer, der E-Mails vonmeine-domain.de sendet, ohne laut SPF und DMARC dafür die Erlaubnis zu haben.
Das kann man umgehen, sofern sich das Proxmox MailGateway mit Postfach-Zugangsdaten bei deinem Provider anmeldet. Die Funktion heißt "Smarthost" und Proxmox erlaubt, einen einzigen, globalen Smarthost einzutragen. Hiermit meldet sich dein Proxmox MailGateway bei deinem E-Mail Provider mit Zugangsdaten an, so wie sich Thunderbird zum Versand von E-Mails bei diesem anmeldet. Dadurch, dass eine Anmeldung erfolgt, akzeptiert der Provider bedenkenlos alles und ignoriert die fehlende Übereinstimmung von SPF und DMARC – diese zu prüfen obliegt ja jetzt dem Proxmox MailGateway.
Diese Funktion ist nützlich, wenn man eine Domain betreibt. Möchte man das Gateway aber für mehr als eine Domain nutzen, weil man mit einem Proxmox Mail Gateway mehrere Kunden bedienen möchte, so muss ein invidueller Smarthost je Empfangsdomain konfiguriert werden. Das geht nur noch über die untiefen der Kommandozeile und genau hierfür ist der Artikel gemacht.
Voraussetzung
Es wird vorausgesetzt, dass Proxmox Mail Gateway erfolgreich installiert und eingerichtet wurde.
Der Hostname des eigenen Servers ist im DNS gepflegt. Dabei muss die Domain des Hostnamens des PMG nicht mit der eigenen E-Mail Domain übereinstimmen. Z.B.: mailproxy.meine-domain.de -> 85.11.12.13
Der PTR Record beim Hosting Anbieter wurde korrekt gepflegt. Dieser zeigt Rückwärts von 85.11.12.12 -> mailproxy.meine-domain.de und wird beim Hosting Anbieter gesetzt, nicht beim Domaininhaber.
Auch eine häufig notwendige Freischaltung des TCP 25 Port beim Hosting Anbieter ist erfolgt, damit dieser E-Mails auf Port 25 empfangen und weiterleiten kann.
Relay Domain + Transports
Configuration -> Mail Proxy -> Relay Domains : Hier tragen wir die weiterzuleitende Domain ein.
Configuration -> Mail Proxy -> Transports : Hier tragen wir den zuständigen Mailserver ein (w01fxxxx.kasserver.com bei All-Inkl mit Port 587 für eine StartTLS Verbindung).
Wichtig ist hier: Wir können ausschließlich StartTLS Verbindungen auf Port 587 nutzen. Das MX Häkchen ist natürlich nicht zu setzen, dieses zeigt ja auf unser Proxmox MailGateway.
Unverschlüsselte Verbindungen auf Port 25 funktionieren nicht, weil gängige Mailserver hier keine Authentifizierung erwarten und daher hier keine E-Mails von unserem Gateway annehmen werden, weil sie gegen SPF + DMARC Kriterien verstoßen.
SSL Verbindungen auf Port 465 funktionieren hingegen nicht, weil Postfix für eine gültige SSL Konfiguration im SSL-Only 'Wrappermode' "smtp_tls_security_level = encrypt" erwartet. Damit weiterhin die Kommunikation auf Port 25 mit allen Mailservern funktioniert, darf dieser Parameter jedoch höchstens auf "smtp_tls_security_level = may" stehen.
Configuration -> Mail Proxy -> Options -> Verify Receivers: No
Über StartTLS unterstützen die Mailserver i.d.R. kein Verify der Receiver-Mailboxen. Mit einem Verify konnten in meinem Fall E-Mails nicht mehr zustellt werden.
(individuelle) Smarthost Konfiguration
Die individuelle Smarthost Konfiguration wird in der main.cf Postfix Konfiguration eingetragen. Diese Datei kann jedoch nicht direkt editiert werden, da Sie von Proxmox verwaltet wird. Auch das zugrunde liegende Template kann nicht direkt editiert werden, weil es von der Proxmox Paketverwaltung mitgeliefert wird.
Es muss zuerst eine Kopie des Templates erstellt werden, um zukünftige Überschreibungen durch Proxmox Updates zu verhindern:
Code:
mkdir /etc/pmg/templates/
cp /var/lib/pmg/templates/main.cf.in /etc/pmg/templates/
Code:
#### BEGIN: SASL for individual relayhost
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_use_tls = yes
#### END: SASL for individual relayhost
Authentifizierung am Mailserver
Nun muss noch in die /etc/postfix/sasl_passwd Datei erstellt werden. Hier tragen wir Zugangsdaten nach dem folgenden Schema ein:
Code:
[w01fxxxx.kasserver.com]:587 info@gueltige-mailadresse.de:GEHEIMESPASSWORT
Datei nur lesend für root setzen und für die Erstellung der Hash-Datenbank mittels Postmap die zugehörige Datenbank erzeugen.
Code:
chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
MX Record im DNS setzen
Alle E-Mails, die eigentlich an den Hostingprovider gehen sollen, müssen nun zuerst an das PMG gesendet werden. Damit jeder Teilnehmer im Internet, der einem – verlangt oder unverlangt – E-Mails zusenden möchte, darüber in Kenntnis gesetzt ist, muss der MX Record im DNS der eigenen Domain gesetzt werden.
Hierfür loggen wir uns beim Provider ein und ändern den vorhandenen MX Record auf unser MailGateway:
Code:
mailproxy.meine-domain.de.
Nach ein paar Minuten sollte die Änderung propagiert sein, nun können wir eine Test E-Mail beispielsweise von einem Freemail Postfach senden und prüfen, ob die E-Mail bei unserem Proxmox ankommt und korrekt weitergeleitet wird.
Code:
tail -f /var/log/mail.log
Last edited: