Wer diesem Blog schon länger folgt weiß, dass ich seit längerer Zeit auf die selbstgehostete Mailserver-Lösung mailcow setze. Diese setzt auf Docker und bringt eigentlich alles mit, was man für einen Mail-Server benötigt, so auch einen Spam-Schutz in Form von rspamd. Probleme mit Spam hatte ich somit in der Vergangenheit glücklicherweise bisher selten.
Dennoch siegte der Spieltrieb und ich wollte ich mich näher mit Proxmox Mail Gateway auseinandersetzen. Proxmox wird dem ein oder anderen ein Begriff sein, am bekanntesten ist das österreichische Unternehmen wohl für seine Virtualisierungslösung Proxmox VE.
Mit Proxmox Mail Server wird - seit kurzer Zeit auch als Community-Variante - eine Sicherheitslösung für Mailserver auf Basis von ClamAV und SpamAssassin für Mailserver-Betreiber angeboten. Dieser sitzt im idealfall zwischen "Internet" und Mailserver und fungiert somit dann wie der Name schon sagt als Gateway. Ich zeige folgend, wie ich das Mail Gateway mit meiner mailcow-Installation nutze.
Voraussetzungen
Was benötigen wir? Mindestens 2 Server. Einen mit einer mailcow-, der andere mit einer Proxmox Mail Gateway-Installation. Ich erkläre die einzelnen Schritte hier nicht, mailcow bietet dafür eine super Installations-Anleitung an. Bei mir läuft es auf einem Debian 10 System. Das Mail Gateway lässt sich über mehrere Wege installieren, entweder per ISO-Image, oder aber über zusätzliche Paketquellen direkt auf einem Debian 10. Ich setze hier eine Standard-Installation voraus, welche per A- und ggf. AAA-Record im DNS korrekt aufgelöst wird.
(Unbezahlte) Empfehlung: Ich bin seit langer Zeit sehr zufriedener Kunde bei Hetzner und nutze die dortige Hetzner-Cloud. Diese bietet eine direkte Einbindung des Proxmox Mail Gateway ISO-Images an. Wer noch kein Kunde bei Hetzner ist, deren Cloud aber mal testen möchte, kann sich gerne über diesen Link registrieren und erhält 20 Euro Startguthaben und tut mir nebenbei noch etwas gutes.
In mailcow sollte mindestens eine konfigurierte und funktionierende Domain hinterlegt sein.
Einrichtung Proxmox
Beginnen wir mit den notwendigen Schritten im Proxmox Mail Gateway. Meldet euch dazu mit eurem root-Login im Webinterface an. Dieses erreicht ihr unter https://NameEuresServers:8006 - dort angemeldet werdet ihr vom Dashboard begrüßt. Wechselt nun in den Unterpunkt Mail Proy, den ihr unter Configuration vorfindet.
Relaying
Der erste Reiter lauter Relaying. Wir tragen dort als Default Relay den vollen Hostnamen der mailcow-Installation ein, so wie dieser auch von euch aufgerufen wird.
Disable MX lookup (SMTP) stellt ihr auf Yes um, die restlichen Einstellungen verbleiben bei den Standardwerten.
Relay Domains
Wir wechseln in den nächsten Reiter, Relay Domains. Über Create könnt ihr nun sämtliche Domains anlegen, die ihr auch in mailcow konfiguriert habt und die über das Mail Gateway laufen sollen.
Options (optional)
Im Reiter Options könnt ihr bei Bedarf die Message Size (bytes) hochsetzen, standardmäßig sind hier 10 MB hinterlegt, die ich für mich leicht erhöht habe. Ebenfalls kann hier auf Wunsch Greylisting deaktiviert werden.
Network
Im Reiter Network hinterlegt ihr die IP-Adresse eures mailcow-Servers. Somit weiß Proxmox Mail Gateway, dass der Server eine vertraute Zone ist.
TLS
Enable TLS unter dem Reiter TLS und schon geht es weiter.
DKIM (optional)
Wollt ihr DKIM verwenden könnt ihr das entweder über mailcow direkt oder aber Proxmox machen, entscheidet euch jedoch für eine Lösung. Solltet ihr bisher mailcow verwendet haben, aber auch DKIM über Proxmox nutzen wollen, löscht im mailcow-Interface den DKIM-Key der Domain, so dass mailcow diese nicht länger signiert.
Im Proxmox Interface setzt die Option Enable DKIM Signing auf Yes, hinterlegt einen Selector, in meinem Fall z.B. "dkim" und hinterlegt unter dem Punkt Sign Domains alle Domains, die per DKIM signieren sollen.
Das war es auf Seiten Proxmox. Wir wechseln zu mailcow.
Einrichtung mailcow
Im mailcow-Interface angemeldet, wechseln wir unter dem Punkt Konfiguration zum Reiter Routing. Interessant hier ist direkt der Punkt Senderabhängige Transport Maps.
Fügt dort euren Server mit der Proxmox-Installation nach dem Schema <euerProxmoxHostname>:26 hinzu. Eine Authentifizierung ist nicht notwendig. Anschließend sollte dieser in der Übersicht auftauchen.
Anschließend geht es in die Eigenschaften einer Domain unter Konfiguration -> E-Mail-Setup. Klickt auf Bearbeiten, der Domain, die ihr mit dem Mail Gateway nutzten wollt.
Setzt dort in der Variable Senderabhängige Transport Maps den eben eingerichteten Server und speichert die Änderungen.
Wie schon im Punkt DKIM unter Proxmox erwähnt, solltet ihr euch dafür entscheiden, Proxmox zur DKIM Prüfung und Signierung zu verwenden, löscht den DKIM-Key der Domain unter Konfiguration -> Konfiguration -> ARC/DKIM-Keys.
Abschließende Anpassungen
Damit auch eingehende Nachrichten nun auf Spam und Viren geprüft werden, müssen versendene Mail-Server natürlich wissen, dass Proxmox nun als Eingangstor fungiert. Dazu müsst ihr den MX-Record eurer jeweiligen Domain im DNS auf den Proxmox-Server umbiegen. Im gleichen Zuge könnt ihr sofern notwendig auch euren DKIM-TXT-Record anpassen. Bei Proxmox findet ihr diesen in den DKIM-Einstellungen unter View DNS Record. Solltet ihr das Ganze erst einmal testen wollen, empfiehlt es sich temporär mit einer niederigen TTL zu arbeiten um im Fehlerfall schnell wieder die DNS-Records zu ändern.
Das war's auch schon, ab sofort fungiert eur Proxmox Mail Gateway als zusätzlicher Schutz vor Spam. Admininistrieren könnt ihr diesen ab sofort unter dem Punkt Administration im Proxmox Interface.