Dieses Tutorial ist VALID.

Bitte lies Dir den Disclaimer durch, bevor Du eine Anleitung umsetzt...

Haftungsausschluss / Disclaimer

Mailcow installieren – der „dockerisierte“ Mailserver

Ein Mailserver einzurichten war immer eine Qual. Gerne hat man das nicht gemacht. Es sei denn, man ist Masochist. Aber nicht mal dann. Nur, wenn es gar nicht anders geht. Aber nun:

Ciao ciao, Frankensteins Mailserver

Und ich schrieb damals noch, dass man einen Mailserver nicht einfach wie ein Paket installieren kann. Ging ja auch eigentlich nicht. Bis jetzt: Willkommen „mailcow“!

Mailcow erbringt tatsächlich den Beweis, dass man einen Mailserver richtig „einfach“ einrichten kann. Einen sicheren Mailserver. Einen komfortablen Mailserver. Mit nur einer Handvoll Kommandozeilen. Ich bin jedenfalls extrem begeistert. Und ich hoffe, ihr auch :)

Die Betreiber und Programmierer von Mailcow empfehlen, den Server auf einer dedizierten Maschine laufen zu lassen. Ich hab mich ein wenig damit gespielt und finde, dass es wirklich angebracht ist, ihn alleine laufen zu lassen, damit er unseren anderen Diensten nicht in die Quere kommt. Und umgekehrt :)

Empfohlen werden mindestens 4 GB RAM und einiges an freiem Plattenplatz. Ich empfehle hier von Netcup den RS 500 SAS G8 Server. Der hat 2 Cores, 4 GB RAM und 240 GB SAS-Speicher. Mieten wir ihn gleich für 12 Monate, kostet er uns gerade mal 5,99 Euro im Monat. Diese Maschine reicht für einen ganzen Haufen Postfächer und sollte unsere Bedürfnisse voll abdecken.

Für Mailcow brauchen wir nur ein laufendes Linux mit Docker. Also genau das, was wir in Debian 10 – Installation Teil 1 und
Debian 10 – Installation Teil 2 bereits erledigt haben… Lucky us ;)
Ansonsten arbeiten wir die beiden Tutorials jetzt durch und legen dann mit der Mailcow los!

Gut, ein paar Besonderheiten gibt es tatsächlich zu beachten, wenn wir einen richtigen Mailserver statt der anderen Web-Dienste installieren möchten:

  • Der PTR ist extrem wichtig! Dieser muss auf den „Mailname“ auflösen. Also wie in unserem Beispiel hier „mail.xp-server.de“.
  • „Hostname“ darf NICHT „Mailname“ sein. Heißt der Mailserver „mail.xp-server.de“, dann darf der Hostname nicht genau so lauten. Hostname wäre hier z.B.: „xp-server.de“.
  • Das DNS-Setup ist generell ein wenig umfangreicher. Aber keine Sorge, mit der Netcup DNS-Verwaltung ist das einfach und schnell erledigt.

Dann starten wir mal mit den Vorbereitungen. Die Jungs von Mailcow haben eine wirklich brauchbare Hilfeseite dafür erstellt. Da können sich die Leute von Docker gleich ein paar Scheiben von abschneiden!
Arbeiten wir die Liste einfach der Reihe nach ab…

Vorbereitung

Ports frei?

Nach der Basisinstallation sollten wir mit einem blanken System starten, auf dem noch keine relevanten Services laufen. Das überprüfen wir trotzdem schnell, weil nichts lästiger ist, als ein Port, der schon von einer anderen Anwendung belegt ist…

netstat -tulpn | grep -E -w '25|80|110|143|443|465|587|993|995'

Hier darf keine Anzeige erfolgen. Sollte uns etwas angezeigt werden, ist ein wichtiger Port von einer anderen Anwendung okkupiert und unser Setup wird scheitern. In dem Fall müssen wir den betreffenden Dienst erst los werden, bevor wir mit der Mailcow weiter machen…

PTR / rDNS Eintrag

Nun richten wir, falls nicht schon geschehen, den PTR (rDNS) ein. Dazu gehen wir bei Netcup entweder ins SCP unter „Netzwerk“ oder loggen im CCP ein und gehen auf „Produkte“ – [der betreffende Server] – rDNS. In beiden Fällen geben wir hier den Namen des Mailservers ein, in diesem Fall „mail.xp-server.de“. Nach dem Speichern dauert es eine Weile, bis sich die Änderung durch das DNS-System fortpflanzt.

DNS Einträge für die Mailserver-Domain

Die DNS-Einträge nehmen wir direkt an unseren Domains vor, nicht am Server. Bei Netcup geht das im CCP unter „Domains“, dann die „Lupe“ klicken und auf den Reiter „DNS“ schalten. Jetzt legen wir die DNS-Einstellung nur für die Domain des Mailservers fest (xp-server.de). Alle Domains, für die wir Postfächer und Aliase einrichten möchten, legen wir erst an, wenn Mailcow läuft und passende DKIM-Schlüssel erzeugt hat.

Mailcow DNS-Setup: Unsere Mailserver-Domain

Wir tragen folgende Werte ein:

  • [„Host“ / „Type“ / „Destination“]
  • mail / A / 94.16.119.127 [Hier natürlich die IP von Deinem Server!]
  • autodiscover / CNAME / mail
  • autoconfig / CNAME / mail
  • @ / MX 10 / mail
  • @ / TXT / v=spf1 mx ~all
  • _dmarc / TXT / v=DMARC1;p=none;sp=none

Mit diesen Einträgen läuft unser Mailserver. Den DKIM-Schlüssel tragen wir nach, sobald er von Mailcow erzeugt wurde.

Der SPF- und DMARC Eintrag sind beide so konfiguriert, dass sie nichts blocken. Wenn Du schärfere Regeln anwenden willst, bekommst Du hier weitere Informationen dazu:
SPF Syntax
DMARC Generator

Anzeige *

14 Kommentare zu „Mailcow installieren – der „dockerisierte“ Mailserver“

  1. Nachdem ich jetzt mehrmals dieses tolle Tutorial durchforstet habe, habe ich nun doch eine Frage (auf die Gefahr hin, dass ich den Bereich überlesen habe):
    Woher bekomme ich den „Crypt-Key“ für das backup oder wo lege ich diesen fest?

    1. Peter Fiedler

      So wie ich das verstanden habe, erzeugt die Mailcow den Schlüssel selbst bei der Installation. Im Backup wird der Schlüssel mit gesichert, damit Du nachher beim Rücksichern die Mails wieder entschlüsseln kannst.
      Jedenfalls hab ich „crypt-key“ beim Backup als Verzeichnis gesehen…

      1. Hallo Peter, danke für die Antwort :-)
        Ich frage nur für den Fall der Fälle. Ich sichere mir den Server auch noch regelmäßig per Backup, aber ggf. benötige ich ja nur mal die Datensicherung.
        Diese tolle ANleitung habe ich übrigens heute einem Freund weiterempfohlen :-D
        Viele Grüße Michael

  2. Ich kam wegen meiner Traefik-Probleme – nun habe ich einen Mail-Server :D

    Deine Erklärungen passen wirklich genau zu meinem Wissenstand. Macht echt Spaß sich da durchzuarbeiten! Danke

  3. Hallo Peter !
    Vielen Dank für diese klasse Anleitung !!!

    Vor allem das Thema Backup & Restore ist sehr hilfreich …
    … sehr passend, da ich es hinbekommen habe, den Cloudspeicherplatz ( HiDrive ) so einzubinden,
    dass nach Aufruf des Backup-Scriptes, die Dateien in ein Verzeichnis gespeichert werden, welches automatisch
    mit HiDrive synchronisiert.

    Jetzt muss ich nur noch die Restore Funktion testen … ;-)
    Gäbe es hier auch die Möglichkeit – wie beim Backup – alles auf einmal wieder herzustellen ?!

    Ach ja, wie sieht es denn mit einer Archiv-Funktion aus ?

    Gruß, Martin

    1. Peter Fiedler

      Gerne, Martin.

      Der Restore funktioniert seit einem der Updates nun auch auf einen Rutsch. Da wurde die Option „All“ mit eingebaut.

      Archiv gibts wohl noch keins – zumindest hab ich noch keins gefunden.

      Beste Grüße
      Peter.

  4. Hallo, hört sich gut an… Ich habe mittlerweile mehrere Container auf deiner Basis installiert. Jetzt möchte ich gerne auch Mailcow ins Leben rufen. Klappt das? Meine Ports sind ja schon sozusagen belegt.

    Danke für deine Hilfe

    1. Peter Fiedler

      Nein, leider nicht.
      Die Mailcow läuft bei mir auf einer separaten Maschine. Auch die Macher der Mailcow empfehlen eine eigene Maschine dafür.

      Beste Grüße
      Peter.

        1. Peter Fiedler

          Hi Juno,
          wow, das ist pfiffig…

          Versucht hab ich es, ja. Allerdings hatte ich damals alle Änderungen direkt in der docker-compose.yml drin, die bei jedem Update überschrieben wurde. Dann hab ich es sein lassen.
          Beste Grüße
          Peter.

          1. Schade wie es ausschaut muss ich wohl doch in einen zweiten Server investieren.

          2. Peter Fiedler

            Sorry, da hab ich mich wohl falsch ausgedrückt…
            Mit der Anleitung, die Du mir geschickt hast, ist das Betreiben von mailcow und den Anwendungen auf der selben Maschine möglich. Gibt halt die beschriebenen Konflikte, falls die IP-Range schon in Gebrauch ist. Und Du hängst von einem Image ab, das die Zertifikate von Let’s Encrypt an die mailcow weiterreicht. Aber ansonsten sollte das funktionieren.

            Ich persönlich trenne gerne Mail vom Rest des Systems, nicht nur weil die Macher von der mailcow das empfehlen, sondern auch um unterschiedliche Management-Strategien zu fahren.

          3. Verstehe deine Entscheidung. Die erwähnte Anleitung ist auch sehr kurz gehalten. Über seine DNS-Config erzählt er auch nichts…

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Verwendung
von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung.

Scroll to Top