hi,
ich habe mailcow auf meinem Homeserver installiert, der hinter einem privaten Internetanschluss eine dynamische IP hat (ändert sich alle zwei drei Jahre mal). Um nicht im Spam zu landen und einen PTR-Record anlegen zu können, möchte ich den gesamten Mail-Traffic über meinen VPS leiten.
Folgendes Setup habe ich versucht:
mail.example.com und MX- und PTR-Record auf den VPS und den VPS per WireGuard ins Heimnetz verbinden.
Auf dem VPS habe ich dann postfix für die SMTP Weiterleitung als Gateway eingerichtet, was für eingehende Mails auch funktioniert hat und haproxy als reverse proxy für IMAP und Webinterface. Das hat leider nicht funktioniert, da haproxy von mailcow nicht als proxyserver für IMAP erlaubt wird. Die notwendigen postfix-Änderungen, die ich durch googeln gefunden habe, habe ich mangels Dockerkenntnissen nicht durchführen können. Ob Updates dann noch funktionieren ist natürlich auch fragwürdig.
Alternative wäre nun mail.example.com und MX-Record auf meine private Adresse zu legen und von meiner Firewall zu Mailcow port-zu-forwarden. Auf dem VPS bleibt dann weiterhin Postfix, was die ausgehenden Mails weiterleitet. Der PTR-Record würde weiterhin auf den VPS zeigen. Vorwärts- und Rückwärtsauflösung meiner Domain wäre dann natürlich unterschiedlich. Macht das etwas bzgl. Spamerkennung?

Was wäre hier die sauberste Lösung? Mailcow direkt auf dem VPS möchte ich nicht, Aufgrund von Speicherplatz und Datenschutz.

mfg RockNLol

Hi
Ich betreibe die Konstruktion genau so wie du beschreibst:

@Home:

  • Mailcow auf virtuellem Server
  • Dynamische IP an meinem Anschluss
  • DynDNS Host für den MX Record (Mail eingehend) sowie für Activsync und Imap

@VPS:

  • Postfix mit Certbot und Letsencrypt
  • VPN zwischen Home und VPS
  • Mailname, Forward DNS und PTR Record passend zur Maildomäne
  • im SPF Record ist der VPS eingetragen
  • verschickt die eMails ausgehend
  • im Mailcow ist der VPS als SMTP Relay eingetragen

Probleme hab ich keine festgestellt. Die ganzen Antispam SPF, DKIM, DMARC funktionieren weiterhin da der Postfix an den eMails ja nichts verändert.

Gruss Florian

Have something to say?

Join the community by quickly registering to participate in this discussion. We'd like to see you joining our great moo-community!

sehr gut, dann war ich ja gar nicht weit daneben. Ich weiß, das ist viel verlangt, aber könntest du mir evtl. deine anonymisierten Postfix-Settings vom VPS geben? Ich habe so viele Tutorials gelesen, dass ich einfach gar nicht mehr weiß, was richtig ist und was ich davon wirklich brauche.

  • Mmcsurfi

      Moolevel 1

    Hi
    ich hab eigentlich nichts an der Default Config geändert. Damit das Relay von Intern funktioniert musst du folgende Zeile anpassen:

    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

    Da muss die IP Adresse oder das IP Netz vom Mailcowserver welcher sich dann per VPN verbindet drin sein. Wenn du lokal im Netzwerk 192.168.178.x / 255.255.255.0 hast dann:

    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.178.0/24

    Gruss

    8 days later

    Hi @RockNLol und @mcsurfi

    ich bin gerade auch am überlegen wie ich mir einen eigenen Mailserver sinnvoll, sicher und mit möglichst gutem Datenschutz aufsetze. Meine erste Idee war auch zuhause im Proxmox (Hypervisor) eine VM mit Ubuntu+Docker zu erstellen auf der Mailcow läuft. Dazu müsste ich jedoch viele Ports öffnen. Nach meiner Recherche zu Mailsystemen im Allgemeinen habe ich viele viele komplizierte Anleitungen gefunden und bin letztendlich bei Mailcow als saubere und für den “nicht-Profi” sichere Lösung gestoßen. Bei dem Hosting zuhause kam oft die Bemerkung von Spamlisten bei dynamischen IPs. Daher setzt ihr ja sicherlich auf den VPS mit fixer IP.
    Ich tendiere im Moment daher dazu einen VPS zu mieten auf dem ich Mailcow installiere und auch dort betreibe. Nachteil ist aber der Datenschutz, da dann die Mails ja dort gespeichert sind. Eure Lösung verstehe ich so, dass ihr Mailcow nur im Heimnetz installiert habt und den VPS dann per WireGuard VPN angebunden habt. Was genau läuft auf dem VPS dann? Noch eine Mailcow Instanz?

    Ich würde mich riesig über eine kurze Erklärung freuen, wie ihr euer System aufgebaut habt (was ist wo, was macht der VPS, Vorteile, Nachteile).

    Wenn eingehende Mails vom VPS direkt nach Hause geleitet werden, werden sie dann nicht auf dem VPS gespeichert, sondern verweist dieser direkt auf den HomeServer? Was passiert wenn dieser mal offline ist (Anbieter-Zwangstrennung, etc.)? Ist im DNS dann der HomeServer und die private IP zu sehen? Das heißt jemand meine E-Mail-Adresse bzw. reicht ja nur die Domain hat, weiß er auch meine private IP und damit in welcher Region ich bin?

    Lieben Gruß
    Daniel

    Nachtrag: Eine weitere Idee, die mir gerade einfällt ist auf dem VPS ganz normal ein Produktivsystem für den Mailempfang und Versand zu erstellen und Zuhause eine weitere Instanz. Wenn ich eine Mail auf dem VPS bekommen habe, dann ich diese ja in meine private Instanz per IMAP (z.B. mit Thunderbird, etc.) verschieben und somit ist der VPS wieder clean. Dann war die Mail zwar kurz dort, ist dann aber gelöscht und sicher bei mir zuhause gespeichert.

    Was haltet ihr von dem Ansatz?

    Alternativ kann Mailcow@Home ja auch per POP meine Mails vom Mailcow@VPS abrufen. Dann muss ich sie nur immer im VPS löschen (lassen).

    Hi

    Betrieb mit einer dynamischen IP (ist @Home meist so):
    Für den Mailversand benötigst du eine feste IP mit passenden DNS / PTR Einträgen. Alternativ einfach Amazon SES, Mailgun oder einen anderen eMail Service nutzen der für dich das Versenden der eMails übernimmt (Smarthost).

    Meine Umgebung:
    Physik: HP Microserver mit Proxmox
    Internetanschluss: VDSL 100 mit dynamischer IP
    Firewall: OPNSense als VM mit verschiedenen Netzwerken (Intern, DMZ, Smarthome, uvm.)
    Mailcow: VM in einem DMZ Netz, Ports für SMTP, IMAP und POP sind per NAT von der Firewall auf die VM weitergeleitet, HTTP und HTTPS über HAProxy auf der OPNSense Firewall. EMail Versandt erfolgt über Amazon SES und Mailcow SMTP Relay.
    Backup: Täglich per Script auf eine NAS, VM einmal in der Woche ebenfalls auf eine NAS dann per Rsync nach Außerhalb

    Klar kann das ganze auch auf einem VPS bei einem Hoster laufen, ein sinnvolles Backup hier zu erstellen ist oft das größte Problem.

    Gruss

    Hi,

    wow das hört sich echt nach einem super Setup und einer tollen Infrastruktur an! Gibt mir viel neuen Input und Ideen für mein kleines Hobby. Ich habe vor einem Jahr mit einem kleinen Raspberry Pi angefangen mich in die Welt von Linux einzuarbeiten. Durch viel Recherche und lesen, ausprobieren, sowie selbst beibringen habe ich nun mittlerweile sehr viel über Computer, Internet und das große System, welches dahintersteht, gelernt. Bin echt erstaunt wie selbstverständlich Internet (EMail, Whatsapp, Webseiten, etc. ) und deren reibungslose Funktion für alle sind - sich aber nur wenige wirklich damit auskennen (solange sie das nicht beruflich machen).

    Mittlerweile habe ich auch einen Intel NUC auf dem ich Proxmox als Hypervisor installiert habe. Bin bis jetzt sehr zufrieden damit und kann immer mal kleine Projekte ausprobieren. Beispielsweise habe ich PiHole + Unbound in einem LXC laufen und nutze diesen als DNS Server für meine Geräte. Dann habe ich zwei Nextcloud Instanzen (für mich und meine Familie sowie zum ausprobieren), die bis jetzt ganz gut laufen. In einer VM habe ich mir mit PiVPN WireGuard als VPN Server aufgesetzt um auch immer “Zuhause” zu sein und PiHole nutzen zu können. In einer VM läuft auch Mailcow. Aktuell lokal, um es mal auszuprobieren. Da es mir bis jetzt sehr gefällt, überlege ich wie gesagt einen VPS bei Netcup zu mieten und dort Mailcow laufen zu lassen. Viele Mails verschicke ich eigentlich nicht, meistens empfange ich nur (Bestellbestätigungen, Anmeldungen, Registrierungen, etc.). Berufliche und private Kommunikation wird also kaum über den VPS laufen. Meine Idee wäre (aus Datenschutz und Sicherheitsaspekten) die Mails in der Mailcow auf dem VPS ankommen zu lassen und sie dann per IMAP auf meine lokale Mailcow hinter meinem Router zu verschieben. Somit wären sie auf dem VPS nicht mehr gespeichert, wären dem Hosten nicht mehr zugänglich und falls doch mal etwas mit meiner Mailcow Instanz sicherheitstechnisch nicht stimmt (wovon ich nicht ausgehe, wenn ich die Docker-Container richtig aufsetze) ist dort eine nahezu leere Mailcow, da die Mails ja auf meiner lokalen Mailcow sind. In meiner Firewall müsste ich auch nicht mehrere Ports freigeben. Theoretisch könnte ich mit der lokalen Mailcow sogar die Mails von der VPS Mailcow per POP abholen lassen und hätte sie direkt doppelt gesichert.

    - Wie stehst du zu den Ideen?

    Ein Projekt, welches ich schon lange umsetzen wollte, jedoch immer an der Netzwerk-Konfiguration gescheitert bin ist: OPNsense bzw. pfSense.
    Welche der beiden besser ist, ist sicher eine Glaubensfrage. Ich habe mich bei meiner Recherche für OPNsense entschieden, da es offenbar unabhängiger und vielleicht etwas neuer (mit neuem Entwicklungsmotivationen) ist. Ähnlich wie Owncloud und Nextcloud. Und OPNsense hat WireGuard integriert, sodass ich die VM bei Proxmox einsparen kann und direkt auf “der ersten Ebene” meinen VPN Server mit OPNsense habe. Meine Idee ist OPNsense in Proxmox zu virtualisieren, genau wie du es gemacht hast.

    Meine Proxmox Hardware wäre dann direkt an das Modem bzw. den Router im Modem-Modus angeschlossen und zunächst ja direkt aus dem Internet erreichbar. Bei der Installation von Proxmox gibt man ja eine statische IP Adresse an (im Netzbereich vom Router den man normalerweise hat) - was würde ich denn dann dort eingeben wenn Proxmox direkt “am Internet hängt”?

    Die Konfiguration wäre in Anlehnung hierzu:
    Proxmox/OPNsense Konfiguration

    Ausnahme: Ich will die Proxmox Oberfläche natürlich nicht vom Internet erreichbar machen (Port 8006) und SSH (22) natürlich auch nicht, sondern nur WireGuard auf der OPNsense und dann vom internen Netz auf Proxmox und OPNsense zugreifen. In den wenigen Blogs und Info’s die es dazu gibt habe ich von IPtables gelesen bei dem erstmal alles vom Proxmox Host an die OPNsense weitergegeben wird. Das Thema ist für mich jedoch noch ein Fragezeichen - vor allem die vbmr/Netzwerk-Konfiguration in Proxmox.

    Meine Idee ist alles auf die OPNsense zu routen und von dort wie du schon bei dir einsetzt, unterschiedliche VLANs/DMZ einrichten zu können. Als Ausgang aus der OPNsense dann einmal die anderen virtuellen Maschinen auf Proxmox und einen LAN-Anschluss an dem ich einen Ubiquity Access Point betreiben möchte.

    - Magst du mir vielleicht einen Tipp bzw. Infos zum lesen geben, damit ich dies (genau wie du) umsetzen kann?
    - Vielleicht sogar einen Teil deiner Config, wie es bei dir funktioniert?

    Ich würde mich jedenfalls riesig darüber freuen 🙂

    Beste Grüße
    Daniel

    (Quelle vom Bild: Proxmox auf Rootserver mit nur 1 Public IP-Addresse + pfSense - NAT IPTables

    )

    Hallo zusammen,

    ich betreibe schon seit über 10 Jahren meinen eigenen Email-Server (die letzen Jahre mit Mailcow) und habe auch schon einiges getestet.

    Zunächst ein paar Anmerkungen zu den anderen Posts:

    Seit ein paar Jahren betreibe ich folgendes Setup:

    Bei Netcup habe ich zwei vServer gemietet, auf denen ich unter anderem Mailcow installiert habe. Diese beiden Server sind für Annahme und Versend von Emails zuständig.
    Da ich meine Emails jedoch nicht auf den vServern speichern will, werden die Emails mit meinem Skript (getmail) sofort abgeholt und auf meinem internen Mailcow-Server gespeichert.
    Ich nutze für den interne Mailcow-Server ein Ubuntu, welches auf einem Intel NUC mit ESXi läuft.

    Zunächst habe ich das interne Sync-Skript von Mailcow genutzt war damit jedoch aus zwei Gründen unzufrieden:

    • Emails werden nur zu einem bestimmten Intervall abgerufen, ich wollte die Emails aber immer sofort bekommen.
    • Ich konnte die abholten Emails nicht mittels sieve in meine IMAP-Ordnerstruktur einsortieren lassen.

    Daher habe ich mir selbst ein Skript geschrieben, welches die Emails mittels IMAP-IDLE sofort beim eintreffen in der Inbox der vServer ohne Zeitverzögerung abrufen.
    Danach werden die Emails mittels LMTP (vereinfachtes SMTP auf Port 24) an Dovecot des internen Mailcow-Servers übergeben.
    Da die Emails über LMTP übergeben werden, können die Emails jetzt mittels Sieve gefiltert werden.
    Mit dem Script rufe ich auch noch andere IMAP-Postfächer ab, der interne Mailcow-Server dient somit als Sammelstelle.
    Das Skript läuft als eigenständiger Docker Container
    Skript: GitHub Icon docker_projects/getmail at main · christianbur/docker_projects

    Auf meinen Endgeräte ist ein vServer bei Netcup als ausgehender SMTP Server eingetragen. Ich nutze mail.example.com dies ist ein CNAME auf mx1.example.com.
    Als IMAP-Server ist der dyndns Name (habe auch eigene DNS-Server) meines Mailcow-Servers zuhause eingetragen.
    In der pfsense Firewall (auch auf dem EXSi Nuc Server) ist nur der IMAP-Port 993 für bestimmten IP-Bereich erlaubt (für T-Mobile/Congstar z.B. 80.187.0.0/16).
    Die IP-Bereiche eines AS können z.B. über bgp.he.net ermittelt werden.
    Mit etwas NAT und Routing (sonst passt die Rückroute nicht) kann ich auch zuhause meine Emails über die dyndns Adresse abrufen.

    Wenn mal mein Internet Zuhause ausfällt, werden die Emails für unbefristete Zeit einfach im IMAP-Postfach auf den vServern bei Netcup zwischengespeichert.
    Das hat zwei Vorteile:

    • Die Email werden nicht befristet in einer Postfix Warteschlange zwischengespeichert
    • Ich kann die Emails Notfalls auch über Webmail einsehen.

    Backup erfolgt mit borg verschlüsselt auf die Storage box von Hetzner.

      2 years later
      • nulli

          Moolevel 1

        christianB Danke für das Hilfreiche Script ! Das Löst einige Probleme aber nicht alles. Alle Importierten Mails laufen nicht durch den mailcow SPAM bzw: rspamd

        Ich musste auch im Webmailinterface einen filter setzen. Der Globale Pre/post hat nicht funktioniert.

        No one is typing